本节将使用VHDL和Verilog HDL语言实现有符号整数和无符号整数的除法运算。
两个无符号二进制数(11001) 2 =(25) 10 和(101) 2 =(5) 10 执行除法运算的过程如图3.13所示。在执行完除法运算后,产生商和余数。本节将使用HDL语言描述无符号整数的除法运算。
图3.13 两个无符号二进制数(11001) 2 =(25) 10 和(101) 2 =(5) 10 除法运算的过程
1.无符号整数除法运算的VHDL描述
无符号整数除法运算的VHDL描述如代码清单3-13所示。
代码清单3-13 无符号整数除法运算的VHDL描述
注 :读者可以定位到本书所提供资料的\fpga_dsp_example\integer_div_vhdl\unsigned_div路径中,打开该设计。
2.无符号整数除法运算的Verilog HDL描述
无符号整数除法运算的Verilog HDL描述如代码清单3-14所示。
代码清单3-14 无符号整数除法运算的Verilog HDL描述
注 :读者可以定位到本书所提供资料的\fpga_dsp_example\integer_div_verilog\unsigned_div路径中,打开该设计。
无符号整数除法运算的仿真结果如图3.14所示。
图3.14 无符号整数除法运算的仿真结果
思考与练习3-13 :对无符号整数除法运算的仿真结果进行分析。
思考与练习3-14 :使用HDL语言描述无符号整数除法运算的优势体现在哪些方面?
思考与练习3-15 :在Vivado 2017.2环境下,打开对无符号整数除法运算的HDL描述综合后的Schematic,查看所生成的逻辑结构,并对该结构进行分析。
本节将使用HDL语言描述有符号整数的除法运算。
1.有符号整数除法运算的VHDL描述
有符号整数除法运算的VHDL描述如代码清单3-15所示。
代码清单3-15 有符号整数除法运算的VHDL描述
注 :读者可以定位到本书所提供资料的\fpga_dsp_example\integer_div_vhdl\signed_div路径中,打开该设计。
2.有符号整数除法运算的Verilog HDL
有符号整数除法运算的Verilog HDL描述如代码清单3-16所示。
代码清单3-16 有符号整数除法运算的Verilog HDL描述
注 :(1)读者可以定位到本书所提供资料的\fpga_dsp_example\integer_div_verilog\signed_div路径中,打开该设计。
(2)对于VHDL和Verilog HDL而言,“a%b”结果的符号由a的符号确定。
有符号整数除法运算的仿真结果如图3.15所示。
图3.15 有符号整数除法运算的仿真结果
思考与练习3-16 :对有符号整数除法运算的仿真结果进行分析。
思考与练习3-17 :使用HDL语言描述有符号整数除法运算的优势体现在哪些方面?
思考与练习3-18 :在Vivado 2017.2环境下,打开对有符号整数除法运算的HDL描述综合后的Schematic,查看所生成的逻辑结构,并对该结构进行分析。