数电第4版 课件 第9章课件 6 数字乘法器设计_第1页
数电第4版 课件 第9章课件 6 数字乘法器设计_第2页
数电第4版 课件 第9章课件 6 数字乘法器设计_第3页
数电第4版 课件 第9章课件 6 数字乘法器设计_第4页
数电第4版 课件 第9章课件 6 数字乘法器设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9.4.2相加-移位乘法器设计1.设计题目

设计一4×4相加-移位结构乘法器,示意图如下图所示。当发出一个高电平的START信号以后,乘法器开始乘法运算,运算完成以后发出高电平的DONE信号。9.4.2相加-移位乘法器设计2.设计方案方案一:用ROM来设计乘法器;方案二:设计成组合逻辑电路;方案三:相加-移位结构的乘法器。8根地址线,8根数据线,其容量为256×8。需要列出8输入、8输出的真值表,复杂。从数字系统的角度来设计乘法器,通用性好。乘法运算过程:乘法运算可分解为加法和移位两种操作。

若Bi=0,部分积P右移1位后与0000相加,相当于只移位不累加;若Bi=1,部分积P右移1位后与A相加,最终的部分积P即为A与B的乘积。3.算法设计9.4.2相加-移位乘法器设计乘法器的算法流程图(类似程序流程图)控制器+数据处理单元数据处理单元:寄存器,加法器,计数器。控制器:状态机。9.4.2相加-移位乘法器设计4.顶层原理图设计右移:从高位到低位9.4.2相加-移位乘法器设计(1)REGA模块的设计

REGA模块为4位并行寄存器。当LD=0时,处于保持状态;当LD=1时,处于并行置数状态。5.底层模块设计moduleREGA(CP,LD,D,Q);input[3:0]D;inputCP,LD;output[3:0]Q;reg[3:0]Q;always@(posedgeCP)beginif(LD)Q<=D;end endmodule9.4.2相加-移位乘法器设计(2)REGB模块的设计5.底层模块设计moduleREGB(CP,DIR,S,D,Q);input[3:0]D;inputCP,DIR;input[1:0]S;output[3:0]Q;reg[3:0]Q;always@(posedgeCP)begincase(S)2'b01:Q<={DIR,Q[3:1]};2'b11:Q<=D;endcaseend endmodule右移置数9.4.2相加-移位乘法器设计(3)REGC模块的设计5位多功能移位寄存器。moduleREGC(CP,RD,DIR,S,D,Q);input[4:0]D;inputCP,RD,DIR;input[1:0]S;output[4:0]Q;reg[4:0]Q;always@(posedgeCPorposedgeRD)beginif(RD)Q<=5'b00000;异步清零右移置数9.4.2相加-移位乘法器设计elsebegincase(S)2'b01:Q<={DIR,Q[4:1]};2'b11:Q<=D;endcaseendend endmodule(4)CNT模块的设计5进制加法计数器。RD=1,异步清零。ET=1,允许计数。if(ET)beginif(Q==3'b100)Q<=3'b000;elseQ<=Q+3'b001;endendendalways@(Q)beginif(Q==3'b100)CO=1'b1;elseCO=1'b0;end endmodulemoduleCNT(CP,RD,ET,CO);inputCP,RD,ET;outputCO;regCO;reg[2:0]Q;always@(posedgeCPorposedgeRD)beginif(RD)Q<=3'b000;elsebegin异步清零计数允许计数进位输出9.4.2相加-移位乘法器设计(5)ADD4B模块的设计4位二进制加法运算。moduleADD4B(A,B,S);input[3:0]A;input[3:0]B;outputreg[4:0]S;always@(A,B)beginS=A+B;end endmodule9.4.2相加-移位乘法器设计(6)MULCON模块的设计状态BiDONERDCACB1CB0CC1CC0ETS0S1S2S2S3××01×1000001000010000100001001000100001100110S1:控制器发出高电平有效的RD信号,对REGC和CNT清零,并通过CA和CB0、CB1信号将被乘数和乘数分别置入REGA和REGB。S2:通过ET信号使能计数器加1。若Bi为0,不对REGC置数;若Bi为1,则把加法器的结果置入REGC。S3:通过CC1、CC0与CB1、CB0信号使寄存器REGC和寄存器REGB右移一位。S0:初始状态。9.4.2相加-移位乘法器设计moduleMULCON(START,I4,BI,CP,DONE,RD,CA,CB1,CB0,CC1,CC0,ET);inputSTART,I4,BI,CP;outputDONE,RD,CA,CB1,CB0,CC1,CC0,ET;regDONE,RD,CA,CB1,CB0,CC1,CC0,ET;parameterS0=2‘b00;

parameterS1=2'b01;parameterS2=2'b10;parameterS3=2'b11;reg[1:0]current_state;reg[1:0]next_state;MULCON的Verilog代码输入信号输出信号状态定义9.4.2相加-移位乘法器设计always@(current_stateorSTARTorBIorI4)beginDONE=1'b0;RD=1'b0;CA=1'b0;CB1=1'b0;CB0=1'b0;CC1=1'b0;CC0=1'b0;ET=1'b0;case(current_state)S0:beginDONE=1'b1;if(START==1'b1)next_state=S1;elsenext_state=S0; end输出信号初始化用always语句实现摩尔型状态机中的组合电路9.4.2相加-移位乘法器设计S2:beginif(BI==1’b1)beginCC1=1'b1;CC0=1’b1;endET=1'b1;next_state=S3;endalways@(posedgeCP)begincurrent_state<=next_state;endendmoduleS3:beginif(I4==1'b1)next_state=S0;elsenext_state=S2; CB0=1'b1;CC0=1'b1; endendcaseend S1:beginRD=1'b1;CA=1'b1;CB1=1'b1;CB0=1’b1;next_state=S2;end用always语句实现状态机中的触发器9.4.2相加-移位乘法器设计状态BiDONERDCACB1CB0CC1CCETS0S1S2S2S3××01×1000001000010000100001001000100001100110MULCON仿真结果9.4.2相加-移位乘法器设计6乘法器顶层原理图设计9.4.2相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论