(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;
==============================================
还有别点算法,本人觉得从二进制思考比较经典。
吞风吻雨葬落日未曾彷徨 8023U1314