LeonardoSpectrum中的Exemplar软件包定义了几种常用于VHDL的函数。应将它们视为典型函数,如以下使用预定义add
函数的代码所示:
库; 使用ieee.std_logic_1164.all; 库范例; 使用exemplar.exemplar_1164.all; 实体加法器是 港口 ( a:在std_logic_vector中(3 downto 0); b:在std_logic_vector中(3 downto 0); 结果:输出std_logic_vector(4 downto 0) ); 结束加法器; 加法器的架构altera是 信号q:std_logic_vector(4 downto 0); 开始 q <= add(a,b); 结果<= q; 结束altera;
add函数接受两个向量并返回比输入向量的最大值大一位的向量。因此, result
和q
都比输入矢量a
和b
。额外位用作进位。
其他运算符(如+
必须以稍微不同的方式使用。由于+
运算符不考虑进位, result
和q
可以与输入a
和b
大小相同。您还必须将赋值替换为q
,如下所示:
q <= a + b;
有关这些功能的更多信息,请参见在线HDL综合手册和在线LeonardoSpectrum手册。
没有回复内容