基于FPGA的正整数除法器设计.docx
《基于FPGA的正整数除法器设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的正整数除法器设计.docx(1页珍藏版)》请在冰豆网上搜索。
![基于FPGA的正整数除法器设计.docx](https://file1.bdocx.com/fileroot1/2023-1/27/7692004b-d5d8-42cf-9284-7b4bae1f2660/7692004b-d5d8-42cf-9284-7b4bae1f26601.gif)
基于FPGA的正整数除法器设计
1.顶层模块
`timescale1ns/1ps
//////////////////////////////////////////////////////////////////////////////////
//Company:
西安电子科技大学
//Engineer:
piger朱
//
//CreateDate:
16:
08:
4205/11/2012
//DesignName:
基于FPGA的正整数除法器设计(被除数8位,除数4位)
//moduleName:
div
//ProjectName:
div
//TargetDevices:
virtex-5
//Toolversions:
ISE12.4 modelsim6.5se
//Description:
除法运算的过程就是被除数不断的减去除数,直到二者的差为负数为止
// 但这样做有一个缺点,比如100/100,只需要减一次就能得出结果,
// 而100/1需要减100次才能得出结果,如果一个时钟周期做一次减法的
// 话,100/1需要100个时钟周期,效率太低了!
!
!
我们可以这样做
// 以23/3为例,23(用a表示)的二进制为0001_0111,3( 用b表示)的
// 二进制为0011,首先设置一个16为的寄存器reg16,用以辅助计算
// 令reg16={8'b0,a}={0000_0000,0001_0111},每个周期令
// reg16左移一位,如果reg16的高8位(reg16[15:
8])大于b,则令
// reg16[15:
8]=reg[15:
8]-b,同时令reg16的最低位(reg16[0])