Verilog逻辑设计实例系列.ppt

上传人:小飞机 文档编号:6522833 上传时间:2023-11-08 格式:PPT 页数:36 大小:300.99KB
返回 下载 相关 举报
Verilog逻辑设计实例系列.ppt_第1页
第1页 / 共36页
Verilog逻辑设计实例系列.ppt_第2页
第2页 / 共36页
Verilog逻辑设计实例系列.ppt_第3页
第3页 / 共36页
Verilog逻辑设计实例系列.ppt_第4页
第4页 / 共36页
Verilog逻辑设计实例系列.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《Verilog逻辑设计实例系列.ppt》由会员分享,可在线阅读,更多相关《Verilog逻辑设计实例系列.ppt(36页珍藏版)》请在三一办公上搜索。

1、组合逻辑与时序逻辑的综合,前 言,ASIC的设计流程依赖于那些用来管理和控制能描述大型复杂电路的数据库的软件工具。在这些工具中,设计引擎的作用是自动完成使一组布尔函数最简化,并将该结果映射成能满足设计目标(如要求速度最快或者是面积最小等等)的硬件设计的任务。,前 言(续),综合工具可以完成很多工作,但是必须严格遵循如下步骤(1)检测并消除冗余逻辑,(2)查找组合反馈环路,(3)使用无关紧要条件,(4)检测出未用状态,(5)查找和避免相等的状态,(6)进行状态分配,(7)在物理工艺满足面积和/速度限制的条件下,综合出最佳多级逻辑实现。最后一步包括了最优化和工艺映射。那些可由人工完成的(卡诺图化简

2、等)的步骤将通过综合工具自动运行。这样将会缩短设计周期,减轻设计者的负担,增加设计正确的可能性。,前 言(续),HDL是面向综合的现代设计方法进行ASIC和FPGA设计的切入点。设计者必须懂得如何运用语言结构来描述组合、时序逻辑,以及如何编写易于综合的描述。在本讲中,我们将给出几个例子,说明如何编写组合、时序逻辑的可综合模型(也就是那些可用综合工具来完成所描述功能的门级实现的模型)。这些例子将帮助我们预测综合结果-也就是知道从描述中可以生成什么样的电路。,关于综合的介绍,电路设计是从电路所要完成的功能指标开始的,并以真正实现能满足特性、成本要求及功能的物理硬件而结束。整个设计过程应该从高级别抽

3、象开始,直到完成物理实现后结束。在起始和结束的中间,通过提供不同电路结构的HDL描述而简化了设计过程。综合设计过程中会产生电路描述之间的转换,而且转换的每个步骤都将设计引向对物理实现更详尽的描述。,下面的Y图,它从行为、结构和物理三个视轴描述了电路。,结构描述,行为描述,物理描述,视图,1,2,3,算法,数据流/RTL,布尔代数,1行为综合3表示逻辑综合,逻辑网表,原理图,过程赋值,非阻塞赋值,连续赋值,单元几何图形,光掩模,布图,设计库,分层模块与基本门实例化,处理器存储器外围接口,寄存器,ALU等,逻辑综合,逻辑综合是由一个逻辑级电路描述产生的一个电路结构视图。最终得到的结构图是一个结构化

4、的基本门原语的网表。接下来看例子,了解如何进行逻辑综合以及在逻辑综合过程中是如何实现设计优化的。先看综合过程中的优化。,下面说明优化的第一种方法:解组合方法。这种方法是通过新节点来表示一个单一的布尔函数,既能表示电路节点逻辑值的布尔表达式来变换电路。,例 4.1 图4.1是一个可被新的节点X和Y分解的函数F的原理图。F的原始形式可由如下布尔方程描述:F=abc+abd+acd+bcd,图 4.1 分解前的电路,分解运算可以用两个附加内部节点X和Y表示函数F,形成如图6.5所示的电路。可通过重复利用这些内部节点来形成其他的表达式,以此达到减少电路面积的目的。F=a b c+a b d+acd+b

5、cd F=XY+XY X=a b Y=c+d,图 4.2 分解后的电路,例 4.2 图4.2给出了一个由一组函数F,G和H表示的有向无环图(DAG),利用新节点X,Y可对该图进行分解。其函数组为 F=(a+b)cd+e G=(a+b)e H=c d e 并且X、Y可由下式给出:X=a+b Y=c d 图中的节点表示在与进入节点的边相关的数据上的布尔操作,抽取过程找到了具有因式(a+b)和cd的函数组关系。从函数抽取这些因式,并且新的内部节点X和Y来代替,产生如图4.3所示的新的DAG。,图 4.2 抽取前函数组的DAG,图 4.3 抽取后函数组的DAG,下面说明优化的第二种方法:因式分解法,例

6、 4.3 图4.4表示的是函数F的DAG,为了能识别和之积表达式中的布尔因式,需要将F因式分解。DAG所表示的函数可由如下布尔等式来描述:F=ac+ad+bc+bd+e,图 4.4 分解前函数F的DAG,F可分解成为:F=(a+b)(c+d)+e因式分解就是寻找能用最少的字母表示的函数的因式表达式。用因式来表达式F的DAG,如图4.5所示。,图4.5 用因式表示的函数的DAG,下面说明优化的第三种方法:替代法,例 4.4 图4.6(a)中的DAG表示了在用函数G替代之前,函数F的DAG:,图 4.6(a)替代前函数F的DAG,(b)代替后函数F的DAG,G=a+b F=a+b+c替代后,F的形

7、式是:F=G+c,其DAG如图4.6(b)所示。,例 4.5 图4.7(a)中的DAG表示函数G未被消去前的函数F:F=Ga+Gb G=c+d消去之后为 F=ac+ad+bcd函数F的新DAG如图4.7(b)所示。,(b),图 4.7 内部节点消去之前及之后的函数F的DAG,(a),首先了解综合的第一步:高级综合 高级综合又称行为综合,目标是寻找一个算法,要综合的算法仅仅描述了电路的功能,并没有明确指明寄存器和数据通道的结构,因此可能有多种不同的电路结构可以实现同一功能特性。见下例,A=B+CD=A*EM=D-A,图4.8 行为模型表示(a)语义树,(b)数据流图,(a),(b),其次了解综合

8、的第二步-逻辑综合(A):组合逻辑综合可综合的组合逻辑可由以下方式描述:(1)结构化的基本门网表,(2)一系列连续赋值语句,(3)一个电平敏感的周期性行为。接下来分别举例说明,module boole_opt(y_out1,y_out2,a,b,c,d,e);output y_out1,y_out2;intput a,b,c,d,e;and(y1,a,c);and(y2,a,d);and(y3,a,e);or(y4,y1,y2);or(y_out1,y3,y4);and(y5,b,c);and(y6,b,d);and(y7,b,e);or(y8,y5,y6);or(y_out2,y7,y8);

9、endmodule,例 4.6 图4.9(a)给出了用boole_opt程序块中的基本门网表所描述的经过优化的电路原理图。综合后的电路如图4.9(b)所示,这是在基本门可以用单元库中的部件替代的情况的下进行的综合,所得到的电路是一种比原电路更为有效的门级实现(占用更小的面积)。,(a),图 4.9逻辑综合:(a)基本门网表的原理图(b)用网表综合得到的电路,例 4.7 在or_nand模块中的连续赋值语句可综合成图4.10所示的电路。module or_nand(y,enable,x1,x2,x3,x4);output y;input enable,x1,x2,x3,x4;assign y=(

10、enable endmodule,图 4.10 组合逻辑综合:由连续赋值语句得到的综合电路,例4.8(a):一个八位数据通路控制器它的Verilog HDL描述如下:define ON 1 b 1 wire ControlSwitch;wire 7:0 Out,In;assign Out=(ControlSwith=ON)?In:8 h00;,它的逻辑电路结构如下:,图4.11 数据通道开关的逻辑图,它对数据通路所起的作用如下:,图4.12 数据通道的开关和数据流波形图,例4.8(b):一个八位三态数据通路控制器它的Verilog HDL描述如下:define ON 1 b 1 wire Li

11、nkBusSwitch;wire 7:0 outbuf;inout 7:0 bus;assign bus=(LinkBusSwitch=ON)?outbuf:8 hzz,图4.13 三态数据通道开关逻辑图和数据流通断波形图它与组合逻辑举例之一的差别只在前者在开关断开时输出为零,而后者在开关断开时输出为高阻,即与总线脱离连接。,例 4.9 不能通过互不相同条件管理mux_4pri中的有条件行为流。这就导致了对数据通道a的一个隐含优先级综合,如图4.11所示。,图 4.14 带有输入条件优先级解码的mux所综合的电路,always(a or b or c or d or sel_a or sel_

12、b or sel_c)begin if(sel_a=1)y=a;else if(sel_b=0)y=b;else if(sel_c=1)y=c;else y=d;end,例4.10一个简单的ALU,注意case语句中的default复制所隐含的任意项,assign alu_out=(enable=1)?alu_reg:4bz;always(opcode or data_a or data_b)case(opcode)3b001:alu_reg=data_a data_b;3b010:alu_reg=data_a data_b;3b110:alu_reg=data_b;default:alu_r

13、eg=4b0;endcase,图 4.15(a)上述程序综合的电路,assign alu_out=(enable=1)?alu_reg:4bz;always(opcode or data_a or data_b)case(opcode)3b001:alu_reg=data_a data_b;3b010:alu_reg=data_a data_b;3b110:alu_reg=data_b;default:alu_reg=4bx;endcase,图 4.15(b)上述程序综合的电路,例4.11 ASIC单元库通常包含比组合基本门电路复杂得多的单元,(复杂单元的制造掩模是固定的,并可以创建比相 同功

14、能的简单单元平 均更有效且更快速的 功能实现。)例如,大多数的库都包含 有全加器的模型。,图 4.16(a)上述程序综合的电路,output C_out;output 3:0 Sum;input 3:0 A,B;input 3:0 C_in;assign C_out,Sum=A+B+C_in;,output C_out;output 3:0 Sum;input 3:0 A,B;input 3:0 C_in;assign C_out,Sum=A+B+C_in;,图 4.16(b)上述程序综合的电路,例4.12综合过程中的资源共享,output 4:0 y_out;input 3:0 data_a,data_b,accum;input sel;assign y_out=data_a+(sel?accum:data_b);,assign y_out=sel?data_a+accum:data_a+data_b;思考上边赋值语句综合所的电路是什么结构的?,图 4.17 上述程序综合的电路,(P113-115),其次了解综合的第二步-逻辑综合(B):时序逻辑综合,always(posedge clk)if(!rst)out=0;else if(ena)out=data;,图 4.18 带使能端和复位端的时钟同步8位寄存器组模块接口图,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号