关键词不能为空

当前您在: 主页 > 英语 >

高效除法器verilog实现

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-17 02:04
tags:

-

2021年2月17日发(作者:wog)




西北工业大学





院:





号:





名:







业:


实验 时间:


实验地点:


指导教师:


FPGA


技术实验》



实验报告二



(


高效除法器


)










软件与微电子学院






微电子学



2011.10.12



毅字楼


335



王少熙



西北工业大学



2010



10













一、实验目的及要求



实验目的


:


1.

进一步了解熟悉


verilog


语句语法掌握条件语句在简 单建模中的应



,


学会建模仿真综合< /p>


.


2.


熟练运用


modelsim


进行调试模拟仿真


.

3.


初步学会运用综合工具进行综合


,

熟悉


synplify.


实验要求


:



二、实验设备(环境)及要求



ModelSim SE 6.2b



Synplify Pro 9.6.2



三、实验内容与步骤



1.



实验总体设计思路



< p>
由于只有加法器


,


除法在计算机中是通过部分余数 左移加除数补码或


0


实现


,

< p>
我们由此可以得到启示


,


也按照如此的思路进行< /p>


.


整体思路是先将八位


(


本来余数


是四位的但是我们这里的余数不仅仅充当余数


,


还当中间变量把被除数从最高位


一位一位的移到余数里


)


余数清零


,


然后把 被除数的最高位拼接到余数后面


,


此时


余数与除数比较


,


若余数大于除数


,


则把他们俩的差作为新的余数


,


且把对 应的商


值为记


1;


若余数小于除数


,


则把对应位的商值记


0;


进行下一步之前把被除数的第


二高位继续拼接到余数后面


,


如此进行


,


循环八次即可


.


最后结果是得到商和余数


的形式


.


其算法流图如下所示


:









verilog

< br>实现一个被除数为


8


位,除数为


4


位的高效除法器


.





余数


rem=0;


Start





quo=0;



i=7


rem={rem[6:0],
















did[i]}


rem>dis




quo[i]=1;i=i-1;


rem=rem-dis;


quo[i]=0;


rem=rem;i=i-1;


i<0




得到


quo,rem


为了能清楚的展 示以上算法我们看下面例子


:


为了简单期间我们假设被除数


(did)



4



,


除数


(dis)


2



,



(quo)



4


,


余数


(rem)



4



,

< br>设


did=0110,dis=10,


我们来看看是怎么 执行的


.


首先余数和商都清零


,



rem=0,quo=0;


把被除数的最高 位


0


拼接到


rem

的最低位


,


此时


rem=0000 B,


由于


rem


小于除数


dis=10,


则商


quo[3]=0;

< p>
下面进行第二次计算


,



did[2]


拼接到


rem


最低位


,


此时


rem=0001,dis=10> rem,



quo[2]=0;


继续计 算


,



did[1]

< br>拼接到


rem


最低位


,


此时


rem=0011,dis=10



quo[1]=1,rem=rem- quo=0011-10=0001;


进行最后一轮运算


, < /p>



did[0]


拼接到

< br>rem


最低位


,


此时

< p>
rem=0010,dis=10=rem,


因此


quo[0]=1,rem=rem-dis=0010-10=0000,


至此我们已 计算完毕商


quo=0011,


余数


r em=0000;


计算简单快速


.


2.



测试平台设计



模块设计



`timescale 1ns/1ns


module divider_8_4(did,


dis,






// Divident


被除数



// Divisor


除数



quo, // Quotient





rem, // Remainder


余数



error //


错误


,


如果除数为


0.



erro r



1


);


parameter M=7;


//





,




,









parameter N=3; //


除数的位数



input [M:0] did;


input [N:0] dis;



output [M:0] quo;



output [M:0] rem;


output error;



reg [M:0] quo;



reg [M:0] rem;



reg error;



integer i;






//

< br>整数


,


用于计数




always @(did or dis) //


被除数


,


除数


-


-


-


-


-


-


-


-



本文更新与2021-02-17 02:04,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/660684.html

高效除法器verilog实现的相关文章