如何使用LeonardoSpectrum的预定义VHDL算术函数? (Leonardo,VHDL)

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函数接受两个向量并返回比输入向量的最大值大一位的向量。因此, resultq都比输入矢量ab 。额外位用作进位。

其他运算符(如+必须以稍微不同的方式使用。由于+运算符不考虑进位, resultq可以与输入ab大小相同。您还必须将赋值替换为q ,如下所示:

 q <= a + b; 

有关这些功能的更多信息,请参见在线HDL综合手册和在线LeonardoSpectrum手册。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-06 16:43:43 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它