版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 逻辑设计EDA设计技术设计技术 逻辑设计包括组合逻辑设计和时序逻辑设计两大类,一个系统可能由数十个至数百万个规模不等的组合逻辑电路和时序逻辑电路构成。 7.1 组合逻辑设计 表7-1 四选一多路开关的输入输出逻辑表EnS0,S1Z12b00A12b 01B12b 10C12b 11D02b xxx7.1.2 译码器译码器是多输入口、多输出口逻辑电路,将编码输入按一对一方式转换为编码输出,输入端和输出端采用不同的编码方式。例如74x138译码器,n=3,可获得23共8个编码,输入端比输出端的端口数少。74x138译码器逻辑图如图7-2所示。图7-2 74x138译码器逻辑图(1)利用ca
2、se多分支语句描述。将使能控制端G1、G2An和G2Bn连接在一起,与使能条件比较: G1, G2An,G2Bn=3b100;再将输入端连接在一起C,B,A ,以多分支语句描述。 译码器建模步骤:module Decoder38(Y,G1,G2An,G2Bn,C,B,A);input G1,G2An,G2Bn,C,B,A;output 7:0Y;reg 7:0Y;always(G1 or G2An or G2Bn or A or B or C) begin if(G1, G2An,G2Bn=3b100) case(C,B,A ) 3b000: Y = 8b1111_1110; 3b001: Y
3、 = 8b1111_1101;3b010: Y = 8b1111_1011;3b011: Y = 8b1111_0111;3b100: Y = 8b1110_1111;3b101: Y = 8b1101_1111;3b110: Y = 8b1011_1111;3b111: Y = 8b0111_1111;default: Y = 8b1111_1111; endcase endendmodule (2)利用for循环语句描述。多分支语句描述有8条语句有相同的表达形式,可将其归纳为循环8次的for循环语句,开始循环之前,将所有位置为无效位,在for循环中,按循环次数作为索引值,判断并操作相应输出
4、端。always(G1 or G2An or G2Bn or A or B or C) begin Y = 8b1111_1111;if(G1, G2An,G2Bn=3b100) for(i=0;i8;i=i+1) if(i=C,B,A ) Yi = 0; endendmodulemodule Decoder38(Y,G1,G2An,G2Bn,C,B,A); input G1,G2An,G2Bn,C,B,A; output 7:0Y; reg 7:0Y; integer i; 与译码器相反,编码器通常是输出端总线宽度比输入端总线宽度更少,按既定的编码规则输出。7.1.3 编码器图7-3 74x
5、148优先编码器其最高优先级为I7,最低优先级为I0。8端口输入3端口输出module M74x148(A,EO,GS,I,En); input En; input 7:0I; output 2:0A; output EO,GS; reg 2:0A; reg EO,GS; integer k;always(En or I) begin if(En =1) /禁止编码器 begin GS = 1; /编码无效 EO = 1; /允许输出 A = 3b111; /无效编码 end【例】对M74x148编码器建模。设A为3位二进制编码输出,EO为编码输出使能端,高电平有效;GS为有效编码输出端,低电
6、平有效;I为8位编码输入端,En为编码器使能端,低电平有效。else if(En=0)&(I=8b1111_1111) /禁止编码输出 begin GS = 1; EO = 0; A = 3b111; end;else for (k=0;kY) /若X大于Y,将ZXgtY置为高电平 begin ZXgtY = 1b1; ZXeqY = 1b0; ZXltY = 1b0; endelse if(XY) /若小于Y,将ZXltY置为高电平 begin ZXgtY = 1b0; ZXeqY = 1b0; ZXltY = 1b1; end else /不当条件处理 begin ZXgtY =
7、1bx; ZXeqY = 1bx; ZXltY = 1bx; end endmodule7.1.5 加法器和减法器(1)加法器 8个全加器串行级联的总体结构,如图7-5所示: 图7-5 8个全加器串行级联7.1.5 加法器和减法器(2)(2)减法器减法器 利用n个全减器级联构建n位减法器,如图7-6所示的8位减法器。顶层模块由4个全减器构成4位减法器,两个4位减法器级联设计8位减法器。 图7-6 8位减法器的级联结构7.1.6 7.1.6 乘法器乘法器vVerilog HDL的乘法运算是两个无符号的矢量相乘,积的总线宽度是被乘数或乘数的一倍。例如,采用行为描述设计一个8x8的乘法器:vmodu
8、le Multiplier(p,x,y);v input 7:0 x,y;voutput 15:0p; vassign p=x*y;vendmodule该模块占用该模块占用100100个逻辑单元!为了优化资源和个逻辑单元!为了优化资源和速度,一般采用组合逻辑乘法结构的移位相加法、速度,一般采用组合逻辑乘法结构的移位相加法、流水线等设计乘法器。如图流水线等设计乘法器。如图7-97-9。图7-9 8x8乘法器的移位相加法8x88x8乘法器的顺序相乘示意下图所示。乘法器的顺序相乘示意下图所示。图7-10 8x8乘法器的顺序相乘 算法实现的主要程序如下: 图7-10 预处理乘积单元(1)预处理乘积单元
9、。如图7-10所示。(2)预处理加数。如图)预处理加数。如图7-11所示。所示。 图7-11 预处理加数(3)例化8位加法器,和、进位输出、被加数、加数、进位输入分别为PCS0、PCC0、PC1、T0及0。参见图7-10。(4)输出乘法结果。参见图7-10,p15对应第七个加法器的进位输出,p14至p7在dut7模块例化语句中对端口赋值,p6至p1对应第一个至第六个8位加法器求和结果PCS的最低位,即PCSi-10。7.1.7 7.1.7 初等函数与通用查找表初等函数与通用查找表v初等函数是应用最广泛的一类函数,包括正弦函数、余弦函数、正切函数、指数函数及对数函数等。v通用查找表将初等函数的解
10、保存在RAM、ROM、Flash类存储器中,采用寻址方法查找初等函数的解,间接获得计算结果。7.2 7.2 时序逻辑设计时序逻辑设计7.2.1 锁存器和触发器锁存器和触发器 锁存器和触发器是时序逻辑电路的基本结构块,以实现一定的时序逻辑功能。常用的锁存器和触发器见表7-5。 表7-5 常用的锁存器和触发器及其特征方程7.2.1.1 同步RS触发器 RS触发器的输出受clk同步。依照特征函数,利用case语句描述置位端S和复位端R的不同条件组合,控制输出。module RSFF(clk,R,S,Q,Qn); input clk,R,S; output Q,Qn; reg Q,Qn; always
11、(posedge clk)begin: Block_Q case(R,S) 2b00:Q = 1b0; 2b01:Q = 1b1; 2b10:Q = 1b0; 2b11:Q = 1bx; endcase endalways(posedge clk)begin:Block_Qn case(R,S) 2b00:Qn = 1b1; 2b01:Qn = 1b0; 2b10:Qn = 1b1; 2b11:Qn = 1bx; endcase end endmodule7.2.1.2 D7.2.1.2 D触发器及触发器及D D锁存器锁存器 当clk上升沿到来时,利用语句“Q = D;”对Q进行非阻塞赋值,否
12、则Q一直保持过去的值,即实现特征方程对D触发器的行为描述。利用上升沿对表7-5的D触发器建模:module DFF(Q,clk,D); input clk,D; output Q; reg Q; always(posedge clk) Q = D;endmodule将D触发器改为D锁存器,锁存使能控制端为C:module DLatch(Q,D,C); parameter Buswidth = 8; input Buswidth-1:0D; input C; output Buswidth-1:0Q; reg Buswidth-1:0Q; always(C or D or Q)begin if(
13、C=1)Q = D; /如果锁存使能无效,则输入信号D else Q = Q; /否则,锁存信号 end endmodule 带使能端、复位控制和反向输出端的D触发器。设D触发器为上升沿触发,复位信号rst为低电平有效,使能控制En为高电平有效。当En为低电平时,锁存输出。module DFF(Q,Qn,clk,D,En,rst); input clk,D,En,rst; output Q,Qn; reg Q,Qn; always(posedge clk)begin if(rst=0)Q = 1b0; else begin if(En = 1)Q = D; else Q= Q; end end
14、assign Qn = Q; endmodule7.2.1.3 JK触发器对于JK触发器,其状态输出分类见表7-6表7-6 JK触发器的状态输出及分类 module JKFF(clk,J,K,Q, Qn); input clk,J,K; output Q,Qn; reg Q,Qn; always(posedge clk) begin case (J,K) 2b01: Q = 1b0; /置0输出 2b10: Q = 1b1; /置1输出 2b11: Q = Q; /逆保持输出 default:Q=Q; /锁存输出 endcase end7.2.1.4 T触发器当T触发器可由D 触发器或JK触发
15、器例化而来,当J=1、K=1时,即构成T触发器,如图7-14(a)所示。图7-14(a) 由JK触发器(a)或D触发器(b)构成T触发器 module TFF(T,Q,Qn); input T; output Q,Qn; reg Q,Qn;JKFF init1(T,1,1,Q, Qn); /例化JK触发器 endmodule当J=1、K=1时,即构成T触发器图7-14(a) 由JK触发器(a)或D触发器(b)构成T触发器 当D连接至Qn端,则可构成兼有使能端的T触发器。如图7-14(b)所示。在端口列表中,反相输出口Qn与输入口D相连,因此Qn应设为双向口。module TFF(Q,Qn,T,
16、 En,rst); input T, En,rst; inputQ; inout Qn; /将Qn设为双向口 reg Q,Qn; DFFP init1(Q,Qn,T,Qn,En,rst); /例化D触发器endmodule图7-14(a) 由JK触发器(a)或D触发器(b)构成T触发器7.2.2有限状态机有限状态机(简称FSM)是一种顺序事件控制模型,由外部输入和现状态驱动状态机的次状态跳转,其输出与模型的现态和输入有关,在有限状态范围内由时钟同步,控制输出,结构如图7-15(a)所示。图7-15有限状态机 (a)结构示意图 (b)四状态FSM的状态转换图S0状态有两个状态跳转条件:若A=3b
17、000,则跳转到现态S0;若A=3b001,则跳转到次态S1。同理,S1状态也有两个状态跳转条件。对于S0状态来说,S1是次态;对于S1来说,S2和S3是次态。在S0状态,输出为Z=1;在S1状态,输出为Z=2。 每个现态可以设置有限个次态,但跳转条件必须是唯一条件,每个状态有相应的输出,一个模块或状态机可以设置有限个状态,即有限状态机。【例7-6】四状态有限状态机。module FSM4(Z,A,clk);input 3:0A;input clk;output 2:0Z; reg Z; reg 1:0State; /定义状态寄存器变量,以保存现态 parameter S0 = 2b00,S1
18、=2b01,S2 = 2b10,S3=2b11; /定义状态参数 always(posedge clk) case(State) S0:begin Z = 1; /输出Zif(A = =3b000)State = S0; /跳转至现态else State = S1; /跳转至次态endS1:begin Z = 2;if(A = =3b100)State = S2;else State = S3;endS2:begin Z = 3; if(A = 3b100)State = S3;else State = S2; endS3:begin Z = 4; State = S1; /无条件跳转至S1e
19、ndendcaseendmodule 图7-16 现态保持的FSM状态转换【例7-6】状态寄存器变量State若采用三位宽度:reg 2:0State;将有23=8个状态:S0、S1、S2、S3、S4、S5、S6、S7,但实际上仅S1、S1、S2和S3为有效状态,因此,状态枚举和输出控制需相应修改:always(posedge clk) case(State) S0: State= (A = 3b001)? S1:S0; default:State = S0; /跳转到初始状态Endcase always(posedge clk) case(State) S0: Z= 1; default:Z
20、 = 1; /默认输出为1endcase7.2.3 计数器计数器通常是一周期状态的时序逻辑电路,一个计数器含有m个状态,则称该计数器是模为m的计数器常用的计数器按结构可分为:二进制计数器、环形计数器、同步计数器、移位寄存计数器7.2.3.1 二进制计数器二进制计数器分为递增计数器和递减计数器常用if-else 判断是否达到边界条件若未达到边界条件,计数器递增或递减计数;若达到边界条件,则计数器回到初始值。对于模为medulo_m的递增计数器建模,边界条件为计数值小于模值,即count medulo_m。else if(count medulo_m) count = count + 8h01;
21、else count = 8h00; endendmodulemodule counter (count, clk, rst); parameter medulo_m = 18; output 7:0 count; input clk, rst; reg 7:0 count;always (posedge clk or posedge rst) begin if (rst) count = 8h00;图7-17 计数器用于定时器利用计数器对应的时间单位,可将计数器用于定时器。7.2.3.2环形计数器 环形计数器由n个T触发器级联组成,当且仅当时钟跳变时,触发器的输出按权值翻转一次。与各种类型的
22、计数器比较,环形计数器所需的触发器数目最少,但时钟级联结构降低了系统的速度,计数输出的每一位跳变是异步的。若一个T触发器的传输延时为tTTF,则最高位在ntTTF之后才开始跳变。如图7-18所示。图7-18 环形计数器 图7-19 模为16的环形计数器仿真结果7.2.3.3同步计数器将所有触发器的时钟端连接在一起,即构成同步计数器的同步时钟,所有的触发器在同步时钟的作用下同步变化。 图7-20 模为4的同步计数器 module SyncCount_testbench;reg CLK,En,rst;wire 3:0Q,Qn;wirew1En,w2En,w3En;TFF TFF1(Q0,Qn0,C
23、LK, En,rst); /例化第一个T触发器and A1(w1En,En,Q0); /例化与门,生成TFF2的使能控制信号TFF TFF2(Q1,Qn1,Qn0, w1En,rst);and A2(w2En,En,Q1,Q0);TFF TFF3(Q2,Qn2,Qn1, w2En,rst);and A3(w3En,En,Q2,Q1,Q0);TFF TFF4(Q3,Qn3,Qn2, w3En,rst);endmodule7.2.3.4移位寄存器及移位计数器 移位寄存器是在时钟作用下,将所存储的数据向既定的存储位置移动的寄存器。若每个时钟节拍下,移入的1位数据存储在最后一个存储单元,则称之为串行输
24、入-串行输出移位寄存器。如图7-21所示。 图7-21 串行输入-串行输出移位寄存器结构以8位数据宽度的移位寄存器示例如下:module SSR #(parameter word_size = 8) (SO,SI,CLK,rst);input SI,CLK,rst; output word_size-1:0SO;reg word_size-1:0 Data_reg; assign SO = Data_reg0;always(posedge CLK or posedge rst)beginif(rst =1b0) Data_reg = word_size1b0;else Data_reg = SI,Data_regword_size-1:1; endendmodule【例7-9】具有综合功能的并行移位寄存器。设移位寄存器需要清零、数据加载、左移、右移、保持等功能,分别将上述综合功能进行方式编码Mode,采用case多分支语句描述,见下表。左移数据输入端SL,右移数据输入端SR,并行数据输入端D。工作方式编工作方式编码码功能定义功能定义描述描述3b000清零3b000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题申报参考:明代戏曲的少数民族书写研究
- 二零二五年度智慧城市人工费承包合同协议2篇
- 二零二五年度民房租赁合同终止协议范本
- 2025年度建筑模板施工班组质量保修服务合同
- 2025年度个人在线教育平台会员贷款合同(含课程更新)4篇
- 河南省郑州市智林学校高三上学期期末考试语文试题(含答案)
- 二零二五年度抹灰施工安全教育培训资源共享合同4篇
- 二零二五年度新型木门安装与绿色建材采购合同4篇
- 2025年度企业内部培训项目合同书范本4篇
- 2025年度苗木养护与生态园林景观改造合同4篇
- CONSORT2010流程图(FlowDiagram)【模板】文档
- 脑电信号处理与特征提取
- 游戏综合YY频道设计模板
- 高中数学知识点全总结(电子版)
- GB/T 10322.7-2004铁矿石粒度分布的筛分测定
- 2023新译林版新教材高中英语必修一重点词组归纳总结
- 苏教版四年级数学下册第3单元第2课时“常见的数量关系”教案
- 弘扬中华传统文化课件
- 基于协同过滤算法的电影推荐系统设计
- 消防应急预案流程图
- 人教统编版高中语文必修下册第六单元(单元总结)
评论
0/150
提交评论