




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4*4数字乘法器设计1设计任务试设计一4位二进制乘法器。4位二进制乘法器的顶层符号图如图1所示。 图1 4位乘法器顶层符号图 图2 4位乘法运算过程输入信号:4位被乘数A(A3 A2 A1 A0),4位乘数B(B3 B2 B1 B0),启动信号START。输出信号:8位乘积P(P7 P6 P5 P4 P3 P2 P1 P0),结束信号END。当发出一个高电平的START信号以后,乘法器开始乘法运算,运算完成以后发出高电平的END信号。2顶层原理图设计从乘法器的顶层符号图可知,这是一个9输入9输出的逻辑电路。一种设计思想是把设计对象看作一个不可分割的整体,采用数字电路常规的设计方法进行设计,先列出真值表,然后写出逻辑表达式,最后画出逻辑图。这种设计方法有很多局限性,比如,当设计对象的输入变量非常多时,将不适合用真值表来描述,同时,电路功能任何一点微小的改变或改进,都必须重新开始设计。另一种设计思想是把待设计对象在逻辑上看成由许多子操作和子运算组成,在结构上看成有许多模块或功能块构成。这种设计思想在数字系统的设计中得到了广泛的应用。对于4位乘法器而言,设A=1011,B=1101,则运算过程可由图2所示。从乘法运算过程可知,乘法运算可分解为移位和相加两种子运算,而且是多次相加运算,所以是一个累加的过程。实现这一累加过程的方法是,把每次相加的结果用部分积P表示,若B中某一位 Bi=1,把部分积P与A相加后右移1位;若B中某一位Bi= 0,则部分积P与0相加后右移1位(相当于只移位不累加)。通过4次累加和移位,最后得到的部分积P就是A与B的乘积。为了便于理解乘法器的算法,将乘法运算过程中部分积P的变化情况用图3表示出来。存放部分积的是一个9位的寄存器,其最高位用于存放在做加法运算时的进位输出。先把寄存器内容清零,再经过4次的加法和移位操作就可得到积。注意,每次做加法运算时,被乘数A与部分积的D7D4位相加。图3 乘法运算过程中部分积P的变化情况示意图乘法器的算法可以用如图4所示的算法流程图来描述。当START信号为高电平时,启动乘法运算。在运算过程中,共进行4次累加和移位操作。当i=4时,表示运算结束,END信号置为高电平。图4 乘法器的算法流程图在明确乘法器的算法之后,便可将电路划分成数据处理单元和控制单元。数据处理单元实现算法流程图规定的寄存、移位、加法运算等各项运算及操作。控制单元接收来自数据处理单元的状态信号并向其发出控制信号。经过划分成控制单元和数据处理单元的乘法器顶层原理图如图5所示。图5 乘法器的顶层原理图REGA和REGB为4位寄存器,分别用于存放被乘数A、乘数B。REGS为一5位寄存器,用于存放加法器输出的结果(考虑进位时为5位)。在运算过程中,寄存器REGS和REGB合起来用于存放部分积P,因此,REGS和REGB还应具有右移功能,以实现部分积的右移。寄存器REGS的移位输出送寄存器REGB,寄存器REGB的移位输出信号Bi送至控制器,以决定部分积是与被乘数相加还是与零相加。并行加法器ADDER用于实现4位二进制加法运算。计数器CNT用于控制累加和移位的循环次数。当计数值等于4时,计数器的输出信号i4输出高电平。控制器MULCON的功能是接收来自寄存器REGB的移位输出信号Bi和计数器输出信号i4,发出CA、CB0、CB1、CS0、CS1、CLR、CC等控制信号。其中,CA为寄存器REGA的控制信号,用于选择置数或保持功能;CS0、CS1为寄存器REGS的控制信号,用于选择置数、右移和保持等功能;CB0、CB1为寄存器REGB的控制信号,用于选择置数、右移和保持等功能;CLR为寄存器REGS和计数器CNT的异步清零信号;CC为计数器CNT计数使能信号。乘法器的控制单元采用CP脉冲上升沿触发,而数据处理单元采用CP的下降沿触发。其目的有二:一是使控制器无需产生数据处理单元的时钟信号,降低了控制器复杂程度;二是为了避免时钟偏移对电路的不良影响。需要指出的是,在设计顶层原理图时,只是从系统的功能和工作时序的关系上分析了各功能模块必须满足的要求,并没有考虑各模块所采用元器件的型号和工艺。根据如图4所示的乘法器逻辑框图,寄存器A和寄存器B选择4位多功能移位寄存器74LS194,寄存器S采用8位多功能移位寄存器74LS198,加法器选用4位二进制超前进位加法器74LS283,计数器则选用74LS161,以上这些模块均可以从Max+plusII元件库直接调用。将这些模块连接起来如图6所示的乘法器数据处理单元的原理图。74LS194(1)只需置数、保持操作,因此将M0M1连在一起由一根控制线CA控制,当CA为高电平(M1M0=11)时,选择置数功能;当CA为低电平(M1M0=00)时,选择保持功能。74LS194(2)和74LS198既要置数(M1M0=11)又要右移(M1M0=01),因此M1M0分别由两根控制线CB1、CB0和CS1、CS0控制。乘法器的控制单元采用CP脉冲上升沿触发,而数据处理单元采用CP的下降沿触发。其目的有二:一是使控制器无需产生数据处理单元的时钟信号,降低了控制器复杂程度;二是为了避免时钟偏移对电路的不良影响。图6数据处理单元原理图4控制单元的设计乘法器控制单元实际上是一同步时序逻辑电路,或者说是一有限状态机。根据乘法器的算法流程图,乘法器控制单元应具有如下逻辑功能:(1)当启动信号START变为高电平后,控制器发出CLR信号(低电平有效)对寄存器74LS198和计数器74LS161清零,并通过CA和CB0、CB1信号将被乘数和乘数分别置入寄存器74LS194(1)和寄存器74LS194(2)。(2)控制器根据输入信号Bi实现不同的操作:若Bi为1,则把加法器的结果置入寄存器74LS198;否则,不对寄存器置数(相当于不做累加操作)。通过CC信号使能计数器加1。(3)通过CS1、CS0与CB1、CB0信号使寄存器74LS198和寄存器74LS194(2)右移一位。(4)重复(2)、(3)步骤4次,当输入信号i4有效时,电路回到等待状态,一次乘法运算结束。根据上述逻辑功能,将乘法器控制单元定义4个状态:S0、S1、S2、S3。S0为初始状态;S1完成对计数器和寄存器清零,同时将两个乘数置入寄存器;S2完成加法运算;S3完成移位操作。为了更加简洁明了,乘法器控制单元的逻辑功能通常采用ASM(Algorithmic State Machine)图来描述,如图7所示。在ASM图中,矩形框用来表示一个状态框,其左上角表示该状态的名称,右上角的一组二进制码表示该状态的二进制编码。为了消除输出信号中的毛刺,状态编码采用Gray码。状态框内定义该状态的输出信号。菱形框表示条件分支框,将外部输入信号放入条件分支框内。当控制算法存在分支时,次态不仅决定于现态,还与外输入有关。椭圆框表示条件输出框,表示在某些状态下只有满足一定条件才能输出的命令。图7 乘法器控制单元的ASM图乘法器控制单元可设计为摩尔型状态机,其基本结构由同步时序逻辑电路和组合逻辑电路组成。同步时序逻辑电路在外部时钟的作用下实现状态转移,组合逻辑电路对时序电路的状态译码发出控制信号。根据控制单元的ASM图,每个状态发出的控制信号如表1所示。 S0为初始状态;S1完成对计数器和寄存器清零,同时将两个乘数置入寄存器;S2完成加法运算;S3完成移位操作。然后s2 s3重复四次结束。直到4次结束。移位寄存器:“11”载入,“00”保持,“01”右移表1 控制器每个状态发出的控制信号状态符号输入信号输出信号BiENDCLRCACB1CB0CS1CS0CCS0S1S2S2S3011000010111010000100001001000100001100110在以上分析的基础上,得到控制单元的VHDL语言源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mulcon IS PORT (start,i4,bi,clk:IN STD_LOGIC; endd,clr,ca,cb1,cb0,cs1,cs0,cc:OUT STD_LOGIC); END mulcon;ARCHITECTURE one OF mulcon IS SIGNAL current_state,next_state:BIT_VECTOR(1 DOWNTO 0); CONSTANT s0:BIT_VECTOR(1 DOWNTO 0):=“00”; CONSTANT s1:BIT_VECTOR(1 DOWNTO 0):=“01”; CONSTANT s2:BIT_VECTOR(1 DOWNTO 0):=“11”; CONSTANT s3:BIT_VECTOR(1 DOWNTO 0):=“10”;BEGINcom1:PROCESS(current_state,start,i4)BEGIN CASE current_state IS when s0 = IF (start=1) THEN next_state=s1; ELSE next_state next_state next_state IF (i4=1) THEN next_state=s0;-4次运算完成 ELSE next_state endd=1;clr=1;ca=0;cb1=0;cb0=0;- cs1=0;cs0=0;cc endd=0;clr=0;ca=1;cb1=1;cb0=1;-并行存入B cs1=0;cs0=0;cc IF (bi=1) THEN endd=0;clr=1;ca=0;cb1=0;cb0=0; cs1=1;cs0=1;cc=1; ELSE endd=0;clr=1;ca=0;cb1=0;cb0=0; cs1=0;cs0=0;cc endd=0;clr=1;ca=0;cb1=0;cb0=1; cs1=0;cs0=1;cc=0;END CASE;END PROCESS com2;reg:PROCESS (clk) BEGIN IF clk=1 AND clkEVENT THEN current_state=next_state; END IF; END PROCESS reg;END; 上述乘法控制单元的VHDL源程序的结构体由三个进程组成。其中com1和com2实现组合电路,reg实现时序电路。5设计输入及仿真在完成上述设计的基础上,利用Max+plusII完成设计输入及仿真。先将乘法控制单元的VHDL程序MULCON.VHD用文本输入法输入,编译后进行仿真。仿真结果如图8所示。将仿真结果与表1比较可知,乘法控制单元的逻辑功能正确。图8乘法器控制单元仿真结果利用图形输入法将如图6的乘法器原理图输入,得到如图9所示的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 难点解析人教版八年级上册物理物态变化《温度》同步练习试题(含答案解析)
- 起重设备安装安全管理与风险防控方案
- 加味参芪地黄汤联合耳穴压豆治疗慢性肾脏病3-4期合并睡眠障碍的临床研究
- 2025国考赤峰市英语翻译岗位申论必刷题及答案
- 2025国考阜新市阿拉伯语翻译岗位申论必刷题及答案
- 考点解析-人教版九年级《电功率》同步测试试卷(含答案详解)
- 解析卷人教版八年级上册物理物态变化《升华和凝华》单元测试试题(含答案解析)
- YVAD-CHO-TFA-生命科学试剂-MCE
- Vurolenatide-生命科学试剂-MCE
- 基于改进蜣螂算法的六自由度机械臂逆解和轨迹规划研究
- 淀粉加工工培训考核试卷及答案
- 网站推广代理服务合同5篇
- 2025年燃气职业技能鉴定全真模拟模拟题【各地真题】附答案详解
- 2025-2026学年辽海版(2024)小学美术二年级上册《巧用材料》教学设计
- 具身智能+农业种植智能农业机器人应用研究报告
- 量子计算在人工智能领域的发展趋势与2025年应用案例分析报告
- 医疗风险与安全培训课件
- 2025年未来就业报告
- 外研版高中英语新教材必修一单词(默写版)
- 2025综合能力测试真题题库及答案
- 2025-2026学年沪教牛津版(深圳用)小学英语五年级上册教学计划及进度表
评论
0/150
提交评论