名称:能够计算A平方减1的算术单元设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
该项目的目标是设计一个能够计算A平方减1的算术单元。该单元将接收操作数A,8位有符号数。LOAD引脚处的1到0转换将操作数锁存到内部寄存器RA中。该单元在16位寄存器RZ输出端口中输出结果。每次计算都以LOAD信号开始,以END_FLAG信号结束。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
设计文档:
1.工程文件
2.程序运行
3.程序RTL图
4.Testbench
5.时序仿真图
5.1 整体仿真图
A为输入,Z为输出,可见Z=A2-1;图中-100的结果未计算完成时CLR清零信号拉高,故输出为0。
5.2 分模块仿真
下降沿检测模块仿真:检测LOAD的下降沿
取绝对值模块仿真:
平方减一模块仿真,CLR信号清1,减一后输出为0
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY arithmetic_unit IS PORT ( CLK : IN STD_LOGIC; A : IN STD_LOGIC_VECTOR(15 DOWNTO 0); CLR : IN STD_LOGIC; LOAD : IN STD_LOGIC; Z : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); END_FLAG : OUT STD_LOGIC ); END arithmetic_unit; ARCHITECTURE arithmetic_u OF arithmetic_unit IS --例化下降沿检测模块 component down_delect IS PORT ( CLK : IN STD_LOGIC; LOAD : IN STD_LOGIC; LOAD_down : OUT STD_LOGIC ); END component; --例化求平均值值-1模块 component square IS PORT ( CLK : IN STD_LOGIC; CLR : IN STD_LOGIC; LOAD_down : IN STD_LOGIC; unsigned_operand : IN STD_LOGIC_VECTOR(15 DOWNTO 0); END_FLAG : OUT STD_LOGIC; square_out : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END component; --例化取绝对中模块 component mod_operand IS PORT ( operand : IN STD_LOGIC_VECTOR(15 DOWNTO 0); Model_operand : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) ); END component; SIGNAL LOAD_down : STD_LOGIC; SIGNAL RA : STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL Model_operand : STD_LOGIC_VECTOR(15 DOWNTO 0); -- Declare intermediate signals for referenced outputs SIGNAL Z_signal : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL END_FLAG_signal : STD_LOGIC; BEGIN -- Drive referenced outputs Z <= Z_signal; END_FLAG <= END_FLAG_signal; --调用检测下降沿模块,因为要求在LOAD的下降沿加载数据,故需要检测下降沿 downdelect : down_delect PORT MAP ( clk => CLK, load => LOAD, load_down => LOAD_down ); --在LOAD下降沿时加载A到RA模块 PROCESS (CLK) BEGIN IF (CLK'EVENT AND CLK = '1') THEN IF (LOAD_down = '1') THEN--下降沿信号为1 RA <= A; ELSE RA <= RA; END IF; END IF; END PROCESS; --调用取绝对值模块,将将负数转换为其绝对值 Model : mod_operand PORT MAP ( operand => RA, model_operand => Model_operand );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=921
阅读全文
421