乘法器的设计.ppt_第1页
乘法器的设计.ppt_第2页
乘法器的设计.ppt_第3页
乘法器的设计.ppt_第4页
乘法器的设计.ppt_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

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

文档简介

1、2008年3月,EDA室 卢庆莉 编写,EDA教研室 3-318,TEL:85866146,E-MAIL: ,指导教师:卢庆莉,实验室开放项目讲课课件,开放项目: 分别用图形法和VHDL语言实现44位乘法器的设计,2008年3月,EDA室 卢庆莉 编写,(1)学习和掌握将实践中的要求抽象为逻辑需求关系的方法。 (2)掌握将小型数字系统划分为控制器和处理器的方法。 (3)掌握依据ASM图设计小型数字系统的方法。 (4)掌握小型数字系统的调试方法。 (5)掌握可编程器件的及其开发软件的使用方法和烧录方法。 (6)掌握VHDL硬件描述语言设计小型数字系统的设计方法.,实验目的:,2008年3月,ED

2、A室 卢庆莉 编写,小型数字系统学习要点:(P323),1、透彻理解数字系统的含义 按一定方式联系起来的一群事物所构成的总体,称为系统。能够对数字信息进行传递,加工,处理的电子设备,称为数字系统。 系统与部件的区别: 凡是包含控制器又能按程序进行操作的系统,不论其规模大小,均称为数字系统。 没有控制器,且又不能按程序进行操作的电路,不管其规模大小(如:大容量存储器),均不能称为系统,只能算一个部件。,2008年3月,EDA室 卢庆莉 编写,数字系统由数据处理器和控制器构成:,(1)数据处理器的主要任务: 传送数据,并对数据进行运算和判断。(2) 控制器的主要任务: 保证数据处理器有条不紊地按正

3、确的时序进行数据处理和加工。(3)控制器有统一的模型,设计方法规范。(4)数据处理器因处理数据形式繁多,没有统一模型,通常采用列明细表的方式来进行设计。(5) 同步时序电路,2008年3月,EDA室 卢庆莉 编写,2、透彻理解数字系统的一般模型,数字系统的一般模型,1) 输入接口:完成信号转换、同步化处理等; 2) 输出接口:输出整个系统的各类信号; 3) 数据处理器; 4) 控制器,2008年3月,EDA室 卢庆莉 编写,(1)数据处理器的构成:,组合网络、寄存器组和控制网络,数据处理器模型,2008年3月,EDA室 卢庆莉 编写,2008年3月,EDA室 卢庆莉 编写,(2)明细表(操作表

4、和状态变量表),数据处理器的描述采用明细表来描述它的具体操作过程,也就是把一个时钟期间能同时实现的操作归并在一起,作为一个操作步骤,再用助记符号表示控制信号。,2008年3月,EDA室 卢庆莉 编写,(3)控制器的作用,1)实现一个计算任务,必存在一个算法,控制器就是用来规定算法的步骤。,2)控制器决定算法步骤,必须有记忆能力,所以它是一个时序电路,应包含存储器,2008年3月,EDA室 卢庆莉 编写,组合逻辑网络,外部输入控制信号,外部输出控制信号,S,(Q)状态寄存器,C,现态,激励信号,控制器模型,C=F(S,Q),Qn+1=G(S,Qn),(4)控制器的模型,2008年3月,EDA室

5、卢庆莉 编写,(5)控制器的描述方法: 状态转移图或状态转移表,(6)控制器的实现方法: 1)用每态一位触发器的方法; 2)用数据选择器、时序寄存器、译码器的方法。,2008年3月,EDA室 卢庆莉 编写,3、数字系统的描述工具,1)方框图; 2)算法流程图 ; 3)算法状态机(ASM)图;,2008年3月,EDA室 卢庆莉 编写,4、算法流程图与ASM图的区别,算法流程图:一般用来表示算法,它只是按照算法的先后顺序排列计算步骤,与电路的时序无对应关系,不能作为设计的依据。 ASM图:则与时序有关,是设计控制器和处理器的依据。,2008年3月,EDA室 卢庆莉 编写,5、 ASM图符号,状态框

6、、判断框 、条件框,2008年3月,EDA室 卢庆莉 编写,2008年3月,EDA室 卢庆莉 编写,2008年3月,EDA室 卢庆莉 编写,6、ASM块,(2)一个ASM块由一个状态框和若干与之相连的判断框和条件框组成;,(1)一个ASM块表示一个时钟周期内系统的状态;,(3)一个ASM块内所有操作在同一有效时钟沿完成。,A0和 R0在同一个时钟沿完成。 且在T2状态的有效时钟沿完成。,若E=1,则发出CLRA,CLRR的命令。 若E=0,只发出CLRA的命令。,2008年3月,EDA室 卢庆莉 编写,7、ASM图的建立,原则1:在算法的起始点安排一个状态; 原则2:必须用状态来分开不能同时实

7、现的寄存器传输操作; 原则3:判断如果受寄存器操作的影响,应在它们之间安排一个状态。,从算法流程图 ASM图,2008年3月,EDA室 卢庆莉 编写,解释:(1)原则2,2008年3月,EDA室 卢庆莉 编写,2008年3月,EDA室 卢庆莉 编写,(2)原则3,由算法流程图转换为ASM图时,判断 A+1之后的值,需要插入一个方框。,图12.3.16 算法流程图和ASM图的对应关系,2008年3月,EDA室 卢庆莉 编写,开放项目:分别用图形法和VHDL语言实现44位乘法器的设计,设计要求:,(1)系统设计必须按照课题的设计指标及要求,导出算法流程图。 (2)导出ASM图、初始结构图和处理器的

8、明细表。 (3)根据ASM图和处理器的明细表设计控制器和处理器。 (4)系统的控制器可采用每态一位DFF的方法来进行设计。 (5)系统分别用图形法和VHDL语言设计方法实现。,2008年3月,EDA室 卢庆莉 编写,整体功能要求:,设计一个求两个4位二进制数之积的数字乘法器。乘数存于寄存器Q中,被乘数存于寄存器M中,求两数之积的命令信号为MF,Z为8位乘积。,系统结构要求:,2008年3月,EDA室 卢庆莉 编写,1、RESET:开机后按复位键,为整个系统的复位,同时将被乘数和乘数传送给M和Q存储器中。 2、数据输入采用并行送数,系统收到两组四位二进制码(即:被乘数和乘数)后进行乘法运算,并用

9、十进制数显示出来。 3、运算结果用三位BCD码显示。,各部分功能的说明:,2008年3月,EDA室 卢庆莉 编写,一、系统级设计,1.算法设计(第一种算法),(1)手算过程,(一次相加),2008年3月,EDA室 卢庆莉 编写,表 12.4.1 乘法的手算过程,2008年3月,EDA室 卢庆莉 编写,算法规律:,两个r位的二进制数相乘,乘积为2r位。,乘数的第i位为0时,第i位的部分积为0;,第i位的部分积相对于第i-1位的部分积求和时左移一位。,为了用数字电路完成求和运算,必须改变乘法过程,把一次多数相加改成累计求和,累计的和称为部分和,把它存入累加寄存器中。,乘数的第i位为1时,第i位的部

10、分积是被乘数。,(2)电路实现过程,(多次相加),2008年3月,EDA室 卢庆莉 编写,表 12.4.2 累计部分积的乘法过程,2008年3月,EDA室 卢庆莉 编写,(3)算法流程图,(a)算法流程图,2008年3月,EDA室 卢庆莉 编写,A,Q,M,2008年3月,EDA室 卢庆莉 编写,图12.4.1 乘法器的算法与结构,(b)结构,组合逻辑,控制器,累加寄存器,乘数寄存器,加法命令,被乘数寄存器,左移命令,右移指令,数据处理器,2008年3月,EDA室 卢庆莉 编写,缺点:寄存器的使用效率低。,优点:运算时间短。,例如:10100001 运算一次,就结束了。 10100011运算二

11、次,就结束了。,2008年3月,EDA室 卢庆莉 编写,A,Q,M,2008年3月,EDA室 卢庆莉 编写,第二种算法的流程图和结构图,2008年3月,EDA室 卢庆莉 编写,(b)算法流程图,2008年3月,EDA室 卢庆莉 编写,乘法器的ASM图,2008年3月,EDA室 卢庆莉 编写,S1,S2,SHIFT,1,0,0,0,T0,T1,T2,1,10,01,1,00,CLR,ADD,S3,T3,乘法器的ASM图,CNT= r,2008年3月,EDA室 卢庆莉 编写,S1,S2,SHIFT,1,0,0,0,T0,T1,T2,1,10,01,1,00,CLR,ADD,S3,CNT= r-1,

12、图12.4.4 乘法器的ASM图,2008年3月,EDA室 卢庆莉 编写,控制器,CLR,ADD,SHIFT,S1(START),S2(Qr),S3(CNT=3),(a)控制器,(b)数据处理器,图 12.4.3 乘法器细化结构图,2.确定系统的初始结构图和ASM图,2008年3月,EDA室 卢庆莉 编写,乘法器的初始结构图,M,并加器,A,A0,Q,CNT,控制器,CNT=3(S3),Qr(S2),START(S1),数据处理器,2008年3月,EDA室 卢庆莉 编写,二、逻辑设计,1. 数据处理器的设计,(1) 列出数据处理器的明细表,操作明细表,状态变量表,建立明细表,2008年3月,E

13、DA室 卢庆莉 编写,2008年3月,EDA室 卢庆莉 编写,表 12.4.3 乘法器明细表,(2)说明,1)把可能实现的操作归并在一起,作为一个操作步骤,再用适当的助记符表示控制信号,获得处理器操作表。,2008年3月,EDA室 卢庆莉 编写,2)NOP表示控制器处于等待状态,处理器无操作。,3)CLR表示 A“0”,CNT“0”,MX3-X0,QY3=Y0 。,4)ADD表示 A A+M 。,5)SHIFT表示 AQ联合右移一次,使CNT+1,2008年3月,EDA室 卢庆莉 编写,(3)分析,1)观察乘法器操作表, 处理器应包含:,A,Q,M,CNT,2008年3月,EDA室 卢庆莉 编

14、写,2)以累加器A为目标的 寄存器的操作有:,清“0”(CLR),并入(AA+M),右移 (SR(A),2008年3月,EDA室 卢庆莉 编写,3)如将清“0”操作用并入“0”来实现,A可选用4位多功能移位寄存器74194实现。,2008年3月,EDA室 卢庆莉 编写,4)根据乘法器操作表和74194的功能表,可填写出74194功能控制端M1M0的真值表。,2008年3月,EDA室 卢庆莉 编写,M1 =CLR+ADD,M0= CLR+ADD+SHIFT,或 Di=ADD Fi,2008年3月,EDA室 卢庆莉 编写,M1,M0,SHIFT,1,1,CLR,ADD,DSR,A(74194),Q

15、3Q0,D3D0,M1=ADD+CLR M0=CLR+ADD+SHIFT,Fi,1,累加寄存器A的电路实现,2008年3月,EDA室 卢庆莉 编写,乘数寄存器Q的实现,乘法器处理器明细表,2)为减少集成电路的种类,乘数寄存器Q也选用74194实现。,1)以乘数寄存器Q为目标的操作有:移位、保持和置数。,2008年3月,EDA室 卢庆莉 编写,M1=CLR,M0=SHIFT+CLR,2008年3月,EDA室 卢庆莉 编写,M0=SHIFT+CLR,M1=CLR,乘数寄存器Q的电路实现,2008年3月,EDA室 卢庆莉 编写,被乘数寄存器M 的实现,M寄存器:只有置数和保持功能。,乘法器处理器明细

16、表,M1=M0=CLR,2008年3月,EDA室 卢庆莉 编写,被乘数寄存器M的电路实现,2008年3月,EDA室 卢庆莉 编写,乘法器处理器明细表,加法器的实现,2008年3月,EDA室 卢庆莉 编写,B3 B0,F3 F0,A3 A0,4,CI,CO,74283,M的输出端,A的输出端,A的数据输入端,DFF的输入端,加法器的实现电路,2008年3月,EDA室 卢庆莉 编写,1) 用74283来实现。 2) 被加数A4A3A2A1接被乘数寄存器M输出,加数B4B3B2B1接累加器A输出。输出F4F3F2F1送累加器A的数据端。 3) 由于A在CLR信号到时,需要置0,所以将F4F3F2F1

17、先与CLR相与,再送至A的数据端。 4) 74283的CO输出应送DFF的D端,但送时受ADD信号控制,所以应先与ADD信号相与再送给D。,加法器的实现说明,2008年3月,EDA室 卢庆莉 编写,CNT的操作:增1和同步清零。所以采用四位二进制同步计数器74163来实现,乘法器处理器明细表,计数器CNT 的实现,2008年3月,EDA室 卢庆莉 编写,表 12.4.6 74163功能表,P=T=SHIFT,2008年3月,EDA室 卢庆莉 编写,P,T,CR,Q1,Q0,74163,CNT,5V,计数器CNT 的实现电路,cp,2008年3月,EDA室 卢庆莉 编写,2008年3月,EDA室

18、 卢庆莉 编写,2、控制器的实现,(1)传统设计方法 该控制器有3个状态T0、T1、T2,所以必须选用2个DFF触发器Q2Q1,设编码分别为00,01,10(标注在ASM图上)。另外有3个输入条件S1S2S3。所以可得乘法器控制器状态转移图为:,2008年3月,EDA室 卢庆莉 编写,(2)用每态一个触发器的方法,不需要进行状态分配,不用列状态转移表。,用这种方法设计控制器: 缺点:采用了最大数目的FF。 优点:1)设计简单、调试、维修方便,而且系统的组合电路简单。 2)不用列状态转移表,直接根据ASM图求得触发器的激励函数。,2008年3月,EDA室 卢庆莉 编写,图 12.4.4 乘法器的

19、ASM图,S1,S2,SHIFT,1,0,0,0,T0,T1,T2,1,10,01,1,00,CLR,ADD,S3,D0=T0S1+T2S3,D1=T0S1+T2S3;,D2=T1S2+T1S2=T1,CLR=T0S1,ADD=T1S2,SHIFT=T2,2008年3月,EDA室 卢庆莉 编写,S2,START,图 12.4.8 用每态一个触发器的乘法控制器逻辑图,1, use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cfq is port ( x,y: in STD_LOGIC_VECTOR (3 do

20、wnto 0); clk: in STD_LOGIC; c: out STD_LOGIC_VECTOR (7 downto 0) ); end cfq;,1、乘法器的设计:,2008年3月,EDA室 卢庆莉 编写,architecture cfq_arch of cfq is signal qa , qb:std_logic_vector(3 downto 0); signal cc,ss1,ss2,ss3,ss4:std_logic_vector(7 downto 0); begin c=cc; qa=x; qb=y; process(clk) begin if clkevent and c

21、lk=1 then if qb(0 )=1 then ss1=0000 ,2008年3月,EDA室 卢庆莉 编写,if qb(1)=1 then ss2=000 ,2008年3月,EDA室 卢庆莉 编写,2、B/BCD的设计:,library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity b4_bcd is port ( b: in STD_LOGIC_VECTOR (3 downto 0); d: out STD_LOGIC_VECTOR (3 downto 0) ); end b4_bc

22、d;,2008年3月,EDA室 卢庆莉 编写,Architecture b4_bcd_arch of b4_bcd is begin with b select d =0000 when 0000 , 0001 when 0001 , 0010 when 0010 , 0011 when 0011 , 0100 when 0100 , 1000 when 0101 , 1001 when 0110 , 1010 when 0111 , 1011 when 1000 , 1100 when 1001 , 0000 when others; End b4_bcd_arch;,2008年3月,EDA

23、室 卢庆莉 编写,3、八位B/三位BCD的设计:,library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity b8_bcd is port ( b: in STD_LOGIC_VECTOR (7 downto 0); b1,b2,b3,b4:in STD_LOGIC; dd: out STD_LOGIC_VECTOR (11 downto 0) ); end b8_bcd;,2008年3月,EDA室 卢庆莉 编写,Architecture b8_bcd_arch of b8_bcd is

24、component b4_bcd is port (b: in STD_LOGIC_vector(3 downto 0); d: out STD_LOGIC_vector(3 downto 0); end component; signal dd1,dd2,dd3,dd4,dd5: STD_LOGIC_vector(3 downto 0); Begin dd(0)b1, b(2)=c(7), b(1)=c(6), b(0)=c(5),d(3)=dd1(3),d(2)=dd1(2),d(1)=dd1(1),d(0)=dd1(0); U2: b4_bcd port map (b(3)=dd1(2)

25、,b(2)=dd1(1),b(1)=dd1(0),b(0)=c(4),d(3)=dd2(3), d(2)=dd2(2),d(1)=dd2(1),d(0)=dd2(0);,2008年3月,EDA室 卢庆莉 编写,U3: b4_bcd port map (b(3)=dd2(2),b(2)=dd2(1),b(1)=dd2(0),b(0)=c(3), d(3)=dd3(3),d(2)=dd3(2),d(1)=dd3(1),d(0)=dd3(0); U4: b4_bcd port map (b(3)=dd3(2),b(2)=dd3(1),b(1)=dd3(0),b(0)=c(2), d(3)=dd4(3

26、),d(2)=dd4(2),d(1)=dd4(1),d(0)=dd4(0); U5: b4_bcd port map (b(3)=dd4(2),b(2)=dd4(1),b(1)=dd4(0),b(0)=c(1),d(3)=dd(4),d(2)=dd(3),d(1)=dd(2),d(0)=dd(1); U6: b4_bcd port map (b(3)=b2 ,b(2)=dd1(3),b(1)=dd2(3), b(0)=dd3(3),d(3)=dd5(3),d(2)=dd5(2),d(1)=dd5(1), d(0)=dd5(0); U7: b4_bcd port map (b(3)=dd5(2)

27、,b(2)=dd5(1),b(1)=dd5(0), b(0)=dd4(3), d(3)=dd(8),d(2)=dd(7),d(1)=dd(6),d(0)=dd(5); End b8_bcd_arch;,2008年3月,EDA室 卢庆莉 编写,4、4位动态显示的设计:,library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity xsq is port ( c: in STD_LOGIC_VECTOR (11 downto 0); clk: in STD_LOGIC; clr: in STD_

28、LOGIC; w: out STD_LOGIC_VECTOR (3 downto 0); d: out STD_LOGIC_VECTOR (3 downto 0) ); end xsq;,2008年3月,EDA室 卢庆莉 编写,architecture xsq_arch of xsq is signal cnt:std_logic_vector(1 downto 0); signal x,y,z:std_logic_vector(3 downto 0); Begin x=c(11 downto 8); y=c(7 downto 4); z=c(3 downto 0); process(clk,

29、clr) begin if(clr=1) then cnt=00; elsif clkevent and clk=1 then cnt=cnt+1; end if; end process;,2008年3月,EDA室 卢庆莉 编写,with cnt select w=0111when 00, 1011 when 01, 1101 when 10, 1110 when others; with cnt select d= x when 00, y when 01, z when 10, 1111 when others; end xsq_arch;,2008年3月,EDA室 卢庆莉 编写,5、顶

30、层图功能模块,2008年3月,EDA室 卢庆莉 编写,顶层电路的功能模块:,library IEEE; use IEEE.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity dct is port ( clk: in STD_LOGIC; clr: in STD_LOGIC; a: in STD_LOGIC_VECTOR (3 downto 0); b: in STD_LOGIC_VECTOR (3 downto 0); w: out STD_LOGIC_VECTOR (3 downto 0); d: out STD_LOGI

31、C_VECTOR (3 downto 0); end dct;,2008年3月,EDA室 卢庆莉 编写,architecture dct_arch of dct is signal cc:std_logic_vector(7 downto 0); signal dd:std_logic_vector(11 downto 0); component cfq is port ( x: in STD_LOGIC_VECTOR (3 downto 0); y: in STD_LOGIC_VECTOR (3 downto 0); clk: in STD_LOGIC; c: out STD_LOGIC_VECTOR (7 downto 0) ); end component; component b8_bcd is port ( b: in STD_LOGIC_VECTOR (7 downto 0); b1,b2,b3,b4: in STD_LOGIC; d: out STD_LOGIC_VECTOR (11

温馨提示

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

评论

0/150

提交评论