基于FPGA的数字系统设计6a.ppt
《基于FPGA的数字系统设计6a.ppt》由会员分享,可在线阅读,更多相关《基于FPGA的数字系统设计6a.ppt(116页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第6章章 组合逻辑与时序逻辑组合逻辑与时序逻辑 的综合的综合卡诺图:卡诺图:人工设计方法的关键人工设计方法的关键可综合的可综合的HDL模型:模型:自动化设计方法的关键自动化设计方法的关键综合技术:综合技术:描述与实现的关键引擎描述与实现的关键引擎2综合的步骤综合的步骤(1 1)检测并消除冗余逻辑;)检测并消除冗余逻辑;(2 2)查找组合反馈环路;)查找组合反馈环路;(3 3)使用无关紧要条件;)使用无关紧要条件;(4 4)检测出未用状态;)检测出未用状态;(5 5)查找和避免相等的状态;)查找和避免相等的状态;(6 6)进行状态分配;)进行状态分配;(7 7)在物理工艺满足面积和)在物理工
2、艺满足面积和/或速度限制的或速度限制的 条件下,综合出最佳多级逻辑实现。条件下,综合出最佳多级逻辑实现。3 数字系统各个层次的描述与综合的关系:数字系统各个层次的描述与综合的关系:行为领域描述结构领域描述物理领域描述 算法层寄存器传输层逻辑层电路层版图层高层次综合RTL综合逻辑综合版图综合6.1 综合介绍综合介绍4 系统描述的系统描述的Y图:图:56.1.1 逻辑综合逻辑综合逻辑级描述:逻辑级描述:一系列连续赋值语句或等效电平敏感行一系列连续赋值语句或等效电平敏感行为描述的一组布尔方程。为描述的一组布尔方程。逻辑综合:逻辑综合:将逻辑电路描述将逻辑电路描述转换转换成一个成一个优化优化的基本的基
3、本门原语网表,并把优化网表门原语网表,并把优化网表映射映射成由目标工成由目标工艺物理资源组成的等效电路结构。艺物理资源组成的等效电路结构。6逻辑综合工具的构成逻辑综合工具的构成76.1.2 RTL综合综合RTL描述描述:一个有限状态机;或一个可以在一个预一个有限状态机;或一个可以在一个预定义的时钟周期边界上进行寄存器传输的更定义的时钟周期边界上进行寄存器传输的更一般的时序状态机。一般的时序状态机。RTL综合综合:从一个结构开始,把基于语言的从一个结构开始,把基于语言的RTL描描述转换成可通过逻辑综合工具进行优化的一述转换成可通过逻辑综合工具进行优化的一组布尔方程。组布尔方程。86.1.3 高级
4、综合高级综合行为(算法)描述行为(算法)描述:仅描述电路的功能,不涉及具体实现细节。仅描述电路的功能,不涉及具体实现细节。高级综合高级综合:行为综合、结构综合。其目标是寻找一个能实行为综合、结构综合。其目标是寻找一个能实现某种算法,且资源可被调度和分配的结构形式。现某种算法,且资源可被调度和分配的结构形式。两个主要步骤两个主要步骤:资源分配、资源调度。产生一个包含数据通道资源分配、资源调度。产生一个包含数据通道单元、控制单元和存储器的电路结构。单元、控制单元和存储器的电路结构。910行为描述行为描述/综合的优点:综合的优点:1.代码简洁直观代码简洁直观 代码长度是代码长度是RTL级代码的级代码
5、的 1/5 1/32.仿真速度快仿真速度快3.设计空间大设计空间大4.提高了设计再利用性提高了设计再利用性5.自动化程度高自动化程度高116.2 组合逻辑综合组合逻辑综合可综合的组合逻辑描述方式:可综合的组合逻辑描述方式:(1)结构化的基本门网表;)结构化的基本门网表;(2)一系列连续赋值语句;)一系列连续赋值语句;(3)一个电平敏感的周期性行为。)一个电平敏感的周期性行为。12例6.6 结构化基本门网表的综合结构化基本门网表的综合1314综合工具:综合工具:一般要求所需综合的逻辑是无反馈环的一般要求所需综合的逻辑是无反馈环的结构形式(如:没有交叉耦合的与非门)。结构形式(如:没有交叉耦合的与
6、非门)。函数和任务:函数和任务:不包含不完整的不包含不完整的case语句和语句和 if语句,也语句,也不包含内嵌的时间控制(不包含内嵌的时间控制(#、或或wait),),则可综合成为组合逻辑。则可综合成为组合逻辑。156.2.1 优先级结构的综合优先级结构的综合 case语句语句:通常隐含指定对首先解码的项赋予较高的优先权。通常隐含指定对首先解码的项赋予较高的优先权。if 语句语句:隐含指定第一个分支具有比其余分支较高的优先权。隐含指定第一个分支具有比其余分支较高的优先权。综合工具处理综合工具处理:(1)如分支选择项互不相同,则认为具有相等的优先)如分支选择项互不相同,则认为具有相等的优先级别
7、,综合成为一个级别,综合成为一个mux而不是优先级结构。而不是优先级结构。(2)即使分支选择项不是互不相同,也可由用户决定)即使分支选择项不是互不相同,也可由用户决定处理方式。处理方式。16 例例6.10 具有优先级的具有优先级的4选选1电路电路 module mux_4pri(output reg y,input a,b,c,d,sel_a,sel_b,sel_c);always (sel_a,sel_b,sel_c,a,b,c,d)/always (*)begin if(sel_a=1)y=a;else if(sel_b=0)y=b;else if(sel_c=1)y=c;else y=d
8、;end endmodule1718b_late 如果b_late比其它信号晚到,如何在保证原优先级不变的条件下,修改设计使电路的时序更加优化?19设计思路:将晚到的信号移向输出端,并增设计思路:将晚到的信号移向输出端,并增 加相关控制逻辑。加相关控制逻辑。控制逻辑20 针对针对b_late信号优化的信号优化的4选选1电路电路always (sel_a,sel_b,sel_c,a,b_late,c,d)begin if(sel_b=0)&(sel_a=0)y=b_late;else if(sel_a=1)y=a;else if(sel_c=1)y=c;else y=d;end216.2.2 逻
9、辑无关项的使用逻辑无关项的使用 case语句、条件分支(语句、条件分支(if语句)和条件赋语句)和条件赋值(值(?:)中)中default语句的使用:语句的使用:(1)default语句赋明确的语句赋明确的0值或值或1值。前、值。前、后仿真一致。后仿真一致。(2)default语句赋明确的语句赋明确的x值或值或z值。前、值。前、后仿真可能不一致。后仿真可能不一致。x、z作为任意项处理,可综合出更简洁作为任意项处理,可综合出更简洁的电路。的电路。22例例6.11 带锁存的七段码显示带锁存的七段码显示2324252627例6.12 使用无关项对电路综合的影响使用无关项对电路综合的影响 module
10、 alu_with_z1(output alu_out,input 2:0 opcode,input 3:0 data_a,data_b,input enable);reg 3:0 alu_reg;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=4b0;endcase endmodule28
11、综合电路:综合电路:29 module alu_with_z2(output alu_out,input 2:0 opcode,input 3:0 data_a,data_b,input enable);reg 3:0 alu_reg;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;
12、endcase endmodule30综合电路:综合电路:316.2.3 资源共享资源共享 可用括号来控制操作符分组,使资源在一条或多条路可用括号来控制操作符分组,使资源在一条或多条路径上共享。径上共享。assign y_out=sel?data_a+accum:data_a+data_b;module res_share(output 4:0 y_out,input 3:0 data_a,data_b,accum,input sel);assign y_out=data_a+(sel?accum:data_b);endmodule32共享资源数据通道的实现:共享资源数据通道的实现:336.3
13、 带锁存器的时序逻辑综合带锁存器的时序逻辑综合锁存器产生的两种方法锁存器产生的两种方法:(1)有意识综合)有意识综合 (2)无意识综合)无意识综合34锁存器的弱点锁存器的弱点:锁存器占用较多的触发器资源,不稳定,锁存器占用较多的触发器资源,不稳定,并且对并且对FPGA常常是无效的。常常是无效的。35组合逻辑综合要点组合逻辑综合要点:(1)一个无反馈的)一个无反馈的组合基本门网表组合基本门网表可以综合成可以综合成 无锁存功能的组合逻辑。无锁存功能的组合逻辑。(2)一组无反馈的)一组无反馈的连续赋值语句连续赋值语句可以综合为可以综合为 无锁存功能的组合逻辑。无锁存功能的组合逻辑。(3)使用一个带有
14、反馈的条件操作符的连续赋)使用一个带有反馈的条件操作符的连续赋 值语句可以综合成为一个值语句可以综合成为一个锁存器锁存器。例例6.15 SRAM存储器单元的建模存储器单元的建模 assign data_out=(CS_b=0)?(WE_b=0)?data_in:data_out:1bz;366.3.1 锁存器的无意识综合锁存器的无意识综合避免出现锁存的方法避免出现锁存的方法:1、使用完备的、使用完备的 if else,或,或 case 语句;语句;2、避免组合逻辑反馈环路;、避免组合逻辑反馈环路;3、为每个输入条件,定义输出操作;、为每个输入条件,定义输出操作;4、事件控制表达式中的敏感信号必
15、须完整;、事件控制表达式中的敏感信号必须完整;5、状态机设计中,定义、状态机设计中,定义default 的状态转移;的状态转移;6、定义缺省值(、定义缺省值(default值)值)。37例6.16 4输入或门y_behav38例6.16 4输入或门y_gatey_latchy_or4394041例例6.17 不完备的不完备的case语句语句 module mux_latch(output reg y_out,input sel_a,sel_b,data_a,data_b);always (sel_a or sel_b or data_a or data_b)case(sel_a,sel_b)2
16、b10:y_out=data_a;2b01:y_out=data_b;endcase endmodule42综合电路:综合电路:436.3.2 锁存器的有意识综合锁存器的有意识综合 (1)在电平敏感行为中,如果)在电平敏感行为中,如果if语句语句在某些分支而不是全在某些分支而不是全部分支中对一个寄存器变量赋值(即语句不完整),部分支中对一个寄存器变量赋值(即语句不完整),则可综则可综合成为一个锁存器。合成为一个锁存器。例例6.19 常用的锁存器描述常用的锁存器描述 module latch_if2(output reg 3:0 data_out,input 3:0 data_in,input
17、latch_enable);always (latch_enable or data_in)if(latch_enable)data_out=data_in;endmodule44综合电路:综合电路:45 (2)在)在case 语句、语句、if语句、条件操作符(语句、条件操作符(?:)中,)中,如果如果变量将其值显式赋给它本身变量将其值显式赋给它本身,综合工具将形成一个具有,综合工具将形成一个具有反馈的反馈的mux结构,综合成为一个锁存器。结构,综合成为一个锁存器。例例6.18 具有反馈具有反馈mux结构的锁存器结构的锁存器 module latch_if1(output reg 3:0 da
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 数字 系统 设计
限制150内