10位的移位相加乘法器仿真

10位的移位相加乘法器仿真

ID:14312887

大小:395.00 KB

页数:10页

时间:2018-07-27

10位的移位相加乘法器仿真_第1页
10位的移位相加乘法器仿真_第2页
10位的移位相加乘法器仿真_第3页
10位的移位相加乘法器仿真_第4页
10位的移位相加乘法器仿真_第5页
资源描述:

《10位的移位相加乘法器仿真》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、玉林师范学院本科生课程设计论文基于10位的移位相加乘法器的设计院系电子与通信工程学院专业通信工程学生班级通信111班姓名学号201108402132指导教师单位电子与通信工程学院指导教师姓名陈宇宁2014年6月22日基于10位的移位相加乘法器设计1.设置要求:设计一个10位的移位相加乘法器。要求作出功能和时序仿真。2.设置原理:移位相加乘法器将乘法变为加法实现,乘法通过逐次移位相加实现,每次判断乘数的最低位,若为1则将被乘数移位相加,若为0左移后以全零相加直至被乘数的最高位。为了实现NxN乘法,需要一个2N位的左移

2、寄存器,一个N位的右移寄存器,一个2N位加法器,再加少量的控制逻辑即可实现。一、新建工程:1.设置电路原理图如下:上图共包括5个子模块,shiftA,shiftB模块分别实现操作数A和B的移位,sum模块实现P+A,reg16模块存储结果,multshift_cntrl模块式控制逻辑,完成状态间的转移,并控制其他模块。2.设置参数如下:shiftA模块源代码:moduleshiftA(R,L,E,CLK,Q);input[9:0]R;inputL,E,CLK;outputreg[19:0]Q;integerK;wi

3、re[19:0]R20;assignR20={{10{1'b0}},R};always@(posedgeCLK)beginif(L)Q<=R20;elseif(E)beginQ[0]<=1'b0;for(K=1;K<20;K=K+1)Q[K]<=Q[K-1];endendendmoduleshiftB模块源代码:moduleshiftB(R,L,E,CLK,Q0,Z);input[9:0]R;inputL,E,CLK;outputQ0;outputZ;reg[9:0]Q;integerK;always@(posed

4、geCLK)beginif(L)Q<=R;elseif(E)beginfor(K=9;K>0;K=K-1)Q[K-1]<=Q[K];Q[9]<=1'b0;endendassignZ=(Q==0);assignQ0=Q[0];endmoduleSUM模块源代码:moduleSum(A,P,Psel,sum);input[19:0]A,P;inputPsel;output[19:0]sum;reg[19:0]sum;wire[19:0]AP_sum;integerK;assignAP_sum=A+P;always@(P

5、selorAP_sum)beginsum=Psel?AP_sum:20'b0;endendmoduleReg16模块源代码:modulereg16(R,CLK,Rst,E,Q);input[19:0]R;inputCLK,Rst,E;outputreg[19:0]Q;always@(posedgeCLKornegedgeRst)beginif(Rst==0)Q<=0;elseif(E)Q<=R;endendmodulemultshift_cntrl模块源代码:modulemultshift_cntrl(Clock,

6、Reset,s,z,B0,EA,EB,EP,Psel,Done);inputClock,Reset,s,z,B0;outputregDone;outputregEA,EB,EP,Psel;reg[1:0]t,Y;parameterS1=2'b00,S2=2'b01,S3=2'b10;always@(sortorz)begin:State_tablecase(t)S1:if(s==0)Y=S1;elseY=S2;S2:if(z==0)Y=S2;elseY=S3;S3:if(s==1)Y=S3;elseY=S1;def

7、ault:Y=2'bxx;endcaseendalways@(posedgeClockornegedgeReset)begin:State_flipflopsif(Reset==0)t<=S1;elset<=Y;endalways@(sortorB0)begin:FSM_outputsEA=0;EB=0;EP=0;Done=0;Psel=0;case(t)S1:EP=1;S2:beginEA=1;EB=1;Psel=1;if(B0)EP=1;elseEP=0;endS3:Done=1;endcaseendendmo

8、dule二、编译和仿真:1.编译:如图2.引脚设置:如图:Assignments---pins2.1时序仿真:设置引脚后的时序仿真图:2.2功能仿真:功能仿真图如下:点击Processing--Simulator--点击开始仿真图标StartSimulation.三、分析总结:通过这次EDA的学习设计,掌握了系统的数字电子设计的方法,解决了一些常常忽略的问题

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。