VHDL中的转换函数
转换函数有两个形式参数:需要转换的整型数number及该整数的长度len。返回值则为经过转换以后的一个七值逻辑位向量。
(1)转换函数源描述
function I2B(Number : integer; len : integer) return MVL7_VECTOR isvariable temp : MVL7_VECTOR(len - 1 downto 0);--临时变量,保存得到的向量的各个位variable NUM : integer := 0;--计数变量variable QU0TIENT : integer := 0;--整数不断除以2得到的余数
beginQU0TIENT := Number;for I in 0 to len - 1 loopNUM := 0;while QU0TIENT > 1 loopQU0TIENT := QU0TIENT - 2; -- 不断除以2,得到余数NUM := NUM + 1;end loop;case QU0TIENT iswhen 1 => temp(I) := '1';when 0 => temp(I) := '0';when others => temp(I) := 'null';end case;QU0TIENT := null;end loop;return temp;
end;
(2)转换函数
VHDL属于强类型语言,每一个对象只能有一种类型,并且只能取该类型的值。由于VHDL中没有隐式类型转换,所以在赋值时,若值类型和对象