VHDL中的转换函数
转换函数有两个形式参数:需要转换的整型数number及该整数的长度len。返回值则为经过转换以后的一个七值逻辑位向量。
(1)转换函数源描述
function I2B(Number : integer; len : integer) return MVL7_VECTOR is
variable temp : MVL7_VECTOR(len - 1 downto 0);
--临时变量,保存得到的向量的各个位
variable NUM : integer := 0;
--计数变量
variable QU0TIENT : integer := 0;
--整数不断除以2得到的余数
begin
QU0TIENT := Number;
for I in 0 to len - 1 loop
NUM := 0;
while QU0TIENT > 1 loop
QU0TIENT := QU0TIENT - 2; -- 不断除以2,得到余数
NUM := NUM + 1;
end loop;
case QU0TIENT is
when 1 =>
temp(I) := '1';
when 0 =>
temp(I) := '0';
when others =>
temp(I) := 'null';
end case;