购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 整数加法运算的HDL描述

本节将使用VHDL和Verilog HDL描述有符号和无符号整数加法运算。整数加法运算块的符号描述如图3.1所示。

图3.1 整数加法运算块的符号描述

3.2.1 无符号数加法运算的HDL描述

本小节将使用VHDL语言描述无符号数加法运算。在描述无符号数加法运算时,需要考虑进位标志和加法运算的范围。

1.无符号数加法运算的VHDL描述

本部分给出了无符号数加法运算的VHDL描述,如代码清单3-1所示。

代码清单3-1 top.vhd

:读者可以定位到本书所提供资料的\intel_dsp_example\example_3_1路径中,使用Quartus P rime P ro 19.4集成开发环境打开该设计。

2.无符号数加法运算的Verilog HDL描述

本部分给出了无符号数加法运算的Verilog HDL描述,如代码清单3-2所示。

代码清单3-2 top.v

:读者可以定位到本书所提供资料的\intel_dsp_example\example_3_2路径中,使用Quartus P rime P ro 19.4集成开发环境打开该设计。

使用ModelSim-INTEL FPGA STARTER EDITION 2019.2仿真工具对无符号数的加法运算进行仿真,其结果如图3.2所示。很明显,当两个8位的二进制数相加时,需要9位的二进制数保存运算结果。其中最高位保存进位标志,而剩余的8位用于保存和。

图3.2 无符号数加法运算的仿真结果(反色显示)

思考与练习3-1 :对无符号数加法运算的仿真结果进行分析。

思考与练习3-2 :在Quartus Prime Pro 2019.4集成开发环境下,分别对无符号数加法运算的VHDL和Verilog HDL设计进行Analysis Synthesis,然后使用RTL Viewer查看所生成的RTL网表结构,并对该结构进行分析。

3.2.2 有符号数加法运算的HDL描述

与无符号数的加法运算相比,有符号数的加法运算要复杂一些。在实现上需要考虑下面3种情况。

(1)一个正数和一个负数相加,不会产生溢出。

(2)一个正数和一个正数相加,如果结果为负数,则产生溢出。

(3)一个负数和一个负数相加,如果结果为正数,则产生溢出。

1.有符号数加法运算的VHDL描述

本部分给出了有符号数加法运算的VHDL描述,如代码清单3-3所示。

代码清单3-3 top.vhd

:读者可以定位到本书所提供资料的\intel_dsp_example\example_3_3路径中,用Quartus P rime P ro 19.4集成开发环境打开该设计。

2.有符号数加法运算的Verilog HDL描述

本部分给出了有符号数加法运算的Verilog HDL描述,如代码清单3-4所示。

代码清单3-4 top.v

:读者可以定位到本书所提供资料的\intel_dsp_example\example_3_4路径中,打开该设计。

使用ModelSim-INTEL FPGA STARTER EDITION 2019.2仿真工具对有符号数的加法运算进行仿真,其结果如图3.3所示。从图中可知,测试向量给出了两个操作数都是正数、都是负数,以及一个操作数是正数、另一个操作数是负数的4种情况。

图3.3 有符号数加法运算的仿真结果(反色显示)

思考与练习3-3 :对有符号数加法运算的仿真结果进行分析。

思考与练习3-4 :在Quartus Prime Pro 19.4集成开发环境下,分别对有符号数加法运算的VHDL和Verilog HDL设计进行Analysis Synthesis,然后使用RTL Viewer打开生成的网表结构,并对该结构进行分析。 Aejf3O7KAxS7PWjNADm6Ol7wgGvmj2xbdmf7Gp4QVJBiQuX4Djs3SPHEf8eLrK8A

点击中间区域
呼出菜单
上一章
目录
下一章
×