简单乘法器和除法器的FPGA设计

△串行乘法器设计

--见模块serial_multplier ,8位的乘法器实现

基本思路为,a的值,分别乘以b的每一个值(b<<1),然后相加。

主要计算程序如下。流水线乘法:节约资源,浪费时间。算一次乘法要13个时钟。若用多个寄存器同时缓存中间变量,可设计并行的乘法器。

简单乘法器和除法器的FPGA设计_第1张图片

简单乘法器和除法器的FPGA设计_第2张图片

仿真程序

简单乘法器和除法器的FPGA设计_第3张图片

仿真结果

简单乘法器和除法器的FPGA设计_第4张图片

小结:乘法器的设计思想,其实就是把乘法还原成加法来实现。注意一点,就是进入乘法器的数据和结果数据,要在正确的时间提取。乘法不能过快,要慢于计算周期。

 

△简单除法器设计

--代码为simple_divider模块。计算 a/b 的值,限制8位的整数除法,得到商和余数。

思路,将a的值不断减去b,减一次,累记一次值,得到商,最后的剩余值为余数。核心代码为

简单乘法器和除法器的FPGA设计_第5张图片

仿真99÷12的结果,商8余3,如下图,正确。仿真代码和结果如下。

简单乘法器和除法器的FPGA设计_第6张图片

简单乘法器和除法器的FPGA设计_第7张图片

254÷7的结果:

简单乘法器和除法器的FPGA设计_第8张图片

除数 = 0时:

简单乘法器和除法器的FPGA设计_第9张图片

除数大于被除数时,即23÷55结果:商0,余数23.

简单乘法器和除法器的FPGA设计_第10张图片

小结:简单除法的思想,就是将除法,还原为减法的过程。

完整源代码和注释见资源下载 https://download.csdn.net/my

你可能感兴趣的:(科研学习)