(VHDL小程序007)用VHDL设计将整数转换为位向量的函数

function int2bits(in1:integer;len:integer) return bit_vector is

variable in2:integer;

variable temp:bit_vector((len-1) downto 0);

variable digitl:integer:=2**(len-1);                   --求出最高位为1的数值

begin

     in2:=in1;

     for i in (len-1) to 0 loop                             --以二进制形式思考比较容易

          if (in2>=digitl) then                              --i可以不必声明直接使用,编译可通过

               temp(i):='1';

               in2:=in2-digitl;                                 --第i位左边为'0'

          else

               temp(i):='0';

          end if;

          digitl:=digitl/2;                                   --将比较值digitl右移一位

     end loop;

     return temp;

end int2bits;

==============================================

还有别点算法,本人觉得从二进制思考比较经典。

posted @ 2008-08-14 17:21  安达米特  阅读(836)  评论(0)    收藏  举报