基于FPGA的数字系统设计6a.ppt

上传人:tia****nde 文档编号:8767192 上传时间:2020-03-31 格式:PPT 页数:116 大小:4MB
返回 下载 相关 举报
基于FPGA的数字系统设计6a.ppt_第1页
第1页 / 共116页
基于FPGA的数字系统设计6a.ppt_第2页
第2页 / 共116页
基于FPGA的数字系统设计6a.ppt_第3页
第3页 / 共116页
点击查看更多>>
资源描述
1 第6章组合逻辑与时序逻辑的综合 卡诺图 人工设计方法的关键可综合的HDL模型 自动化设计方法的关键综合技术 描述与实现的关键引擎 2 综合的步骤 1 检测并消除冗余逻辑 2 查找组合反馈环路 3 使用无关紧要条件 4 检测出未用状态 5 查找和避免相等的状态 6 进行状态分配 7 在物理工艺满足面积和 或速度限制的条件下 综合出最佳多级逻辑实现 3 数字系统各个层次的描述与综合的关系 6 1综合介绍 4 系统描述的Y图 5 6 1 1逻辑综合 逻辑级描述 一系列连续赋值语句或等效电平敏感行为描述的一组布尔方程 逻辑综合 将逻辑电路描述转换成一个优化的基本门原语网表 并把优化网表映射成由目标工艺物理资源组成的等效电路结构 6 逻辑综合工具的构成 7 6 1 2RTL综合 RTL描述 一个有限状态机 或一个可以在一个预定义的时钟周期边界上进行寄存器传输的更一般的时序状态机 RTL综合 从一个结构开始 把基于语言的RTL描述转换成可通过逻辑综合工具进行优化的一组布尔方程 8 6 1 3高级综合 行为 算法 描述 仅描述电路的功能 不涉及具体实现细节 高级综合 行为综合 结构综合 其目标是寻找一个能实现某种算法 且资源可被调度和分配的结构形式 两个主要步骤 资源分配 资源调度 产生一个包含数据通道单元 控制单元和存储器的电路结构 9 10 行为描述 综合的优点 1 代码简洁直观代码长度是RTL级代码的1 5 1 32 仿真速度快3 设计空间大4 提高了设计再利用性5 自动化程度高 11 6 2组合逻辑综合 可综合的组合逻辑描述方式 1 结构化的基本门网表 2 一系列连续赋值语句 3 一个电平敏感的周期性行为 12 例6 6结构化基本门网表的综合 13 14 综合工具 一般要求所需综合的逻辑是无反馈环的结构形式 如 没有交叉耦合的与非门 函数和任务 不包含不完整的case语句和if语句 也不包含内嵌的时间控制 或wait 则可综合成为组合逻辑 15 6 2 1优先级结构的综合 case语句 通常隐含指定对首先解码的项赋予较高的优先权 if语句 隐含指定第一个分支具有比其余分支较高的优先权 综合工具处理 1 如分支选择项互不相同 则认为具有相等的优先级别 综合成为一个mux而不是优先级结构 2 即使分支选择项不是互不相同 也可由用户决定处理方式 16 例6 10具有优先级的4选1电路modulemux 4pri outputregy inputa b c d sel a sel b sel c always sel a sel b sel c a b c d always beginif sel a 1 y a elseif sel b 0 y b elseif sel c 1 y c elsey d endendmodule 17 18 b late 如果b late比其它信号晚到 如何在保证原优先级不变的条件下 修改设计使电路的时序更加优化 19 设计思路 将晚到的信号移向输出端 并增加相关控制逻辑 控制逻辑 20 针对b late信号优化的4选1电路always sel a sel b sel c a b late c d beginif sel b 0 end 21 6 2 2逻辑无关项的使用 case语句 条件分支 if语句 和条件赋值 中default语句的使用 1 default语句赋明确的0值或1值 前 后仿真一致 2 default语句赋明确的x值或z值 前 后仿真可能不一致 x z作为任意项处理 可综合出更简洁的电路 22 例6 11带锁存的七段码显示 23 24 25 26 27 例6 12使用无关项对电路综合的影响 modulealu with z1 outputalu out input 2 0 opcode input 3 0 data a data b inputenable reg 3 0 alu reg assignalu out enable 1 alu reg 4 bz always opcodeordata aordata b case opcode 3 b001 alu reg data a data b 3 b010 alu reg data a data b 3 b110 alu reg data b default alu reg 4 b0 endcaseendmodule 28 综合电路 29 modulealu with z2 outputalu out input 2 0 opcode input 3 0 data a data b inputenable reg 3 0 alu reg assignalu out enable 1 alu reg 4 bz always opcodeordata aordata b case opcode 3 b001 alu reg data a data b 3 b010 alu reg data a data b 3 b110 alu reg data b default alu reg 4 bx endcaseendmodule 30 综合电路 31 6 2 3资源共享 可用括号来控制操作符分组 使资源在一条或多条路径上共享 assigny out sel data a accum data a data b moduleres share output 4 0 y out input 3 0 data a data b accum inputsel assigny out data a sel accum data b endmodule 32 共享资源数据通道的实现 33 6 3带锁存器的时序逻辑综合 锁存器产生的两种方法 1 有意识综合 2 无意识综合 34 锁存器的弱点 锁存器占用较多的触发器资源 不稳定 并且对FPGA常常是无效的 35 组合逻辑综合要点 1 一个无反馈的组合基本门网表可以综合成无锁存功能的组合逻辑 2 一组无反馈的连续赋值语句可以综合为无锁存功能的组合逻辑 3 使用一个带有反馈的条件操作符的连续赋值语句可以综合成为一个锁存器 例6 15SRAM存储器单元的建模assigndata out CS b 0 WE b 0 data in data out 1 bz 36 6 3 1锁存器的无意识综合 避免出现锁存的方法 1 使用完备的if else 或case语句 2 避免组合逻辑反馈环路 3 为每个输入条件 定义输出操作 4 事件控制表达式中的敏感信号必须完整 5 状态机设计中 定义default的状态转移 6 定义缺省值 default值 37 例6 164输入或门 y behav 38 例6 164输入或门 39 40 41 例6 17不完备的case语句modulemux latch outputregy out inputsel a sel b data a data b always sel aorsel bordata aordata b case sel a sel b 2 b10 y out data a 2 b01 y out data b endcaseendmodule 42 综合电路 43 6 3 2锁存器的有意识综合 1 在电平敏感行为中 如果if语句在某些分支而不是全部分支中对一个寄存器变量赋值 即语句不完整 则可综合成为一个锁存器 例6 19常用的锁存器描述modulelatch if2 outputreg 3 0 data out input 3 0 data in inputlatch enable always latch enableordata in if latch enable data out data in endmodule 44 综合电路 45 2 在case语句 if语句 条件操作符 中 如果变量将其值显式赋给它本身 综合工具将形成一个具有反馈的mux结构 综合成为一个锁存器 例6 18具有反馈mux结构的锁存器modulelatch if1 outputreg 3 0 data out input 3 0 data in inputlatch enable assigndata out latch enable data in data out always latch enableordata in if latch enable data out data in elsedata out data out endmodule 46 综合电路 47 6 4三态器件的综合和总线接口 单向总线接口 48 例6 21单向总线接口moduleUni dir bus output 31 0 data to bus inputbus enable reg 31 0 ckt to bus assigndata to bus bus enable ckt to bus 32 bz 驱动ckt to bus的电路描述endmodule 49 双向总线接口 50 例6 22双向总线接口moduleBi dir bus inout 31 0 data to from bus inputsend data rcv data wire 31 0 ckt to bus wire 31 0 data to from bus data from bus assigndata from bus rcv data data to from bus 32 bz assigndata to from bus send data ckt to bus 32 bz 产生ckt to bus和使用data from bus的行为在此描述endmodule 51 6 5带触发器的时序逻辑综合 触发器的综合 由边沿敏感周期性行为中寄存器变量赋值而综合产生的 问题 在边沿敏感的行为中赋值的每一个寄存器变量是否都能综合成触发器 52 边沿敏感行为中触发器综合的条件 1 如果寄存器变量在行为描述的范围以外被使用 2 如果寄存器变量在被赋值之前 已在行为描述中使用 3 如果寄存器变量仅在行为描述动作的某些分支上被赋值 均隐含着对存储器或对原有值保存的需求 53 例6 25empty circuitmoduleempty circuit inputD in inputclk regD out always posedgeclk beginD out D in endendmodule 仅在行为内部使用 而在行为外部不使用的变量将被综合工具删除 54 55 例6 23同步数据交换moduleswap synch outputregdata a data b inputclk set1 set2 always posedgeclk beginif set1 begindata a 1 data b 0 endelseif set2 begindata a 0 data b 1 endelsebegindata b data a data a data b endendendmodule 56 57 例6 23同步数据交换moduleswap synch outputregdata a data b inputclk set1 set2 always posedgeset1orposedgeset2orposedgeclk beginif set1 begindata a 1 data b 0 endelseif set2 begindata a 0 data b 1 endelsebegindata b data a data a data b endendendmodule 58 在一个边沿敏感周期性行为的事件控制表达式后的语句中 信号由译码的顺序决定哪一个边沿敏感信号是控制信号 哪一个是时钟 同步信号 控制信号必须在if语句的分支中显式译码 同步时钟不会被显式译码 但同步动作必须在if语句的最后一个分支中描述 控制信号与同步信号 59 6 6显式状态机的综合 显式状态机 一个已明确定义的状态寄存器 一个能够在输入的作用下控制状态转换的逻辑 描述方式 同步状态转换过程的边沿敏感行为 时序逻辑 用 非阻塞赋值 描述下一个状态和输出逻辑的电平敏感行为 组合逻辑 用 阻塞赋值 60 Mealy型和Moore型状态机 61 6 6 1BCD码到余3码转换器的综合 本设计是将一个串行发送的BCD码B in转换成一个余3码串行比特流B out 余3码的定义 给BCD码对应的十进制数加上310 并将其转换为等价的二进制数即为该十进制数的余3码 62 BCD码与余3码 63 BCD码到余3码串行转换器的输入 输出位流 64 BCD码到余3码串行转换器的状态转移图 65 bcd to excess 3b的Verilog描述 66 67 bcd to excess 3c的Verilog描述 68 69 综合电路比较 70 仿真结果 71 仿真结果 72 结论 Bcd to excess 3c中的任意项赋值相比bcd to excess 3b的隐含锁存器结构可以给综合工具带来更大的灵活性 建议 在所有的case语句中都包含default赋值语句 73 可综合的状态机设计要求 1 必须为显式状态机的状态寄存器分配一个集合值 即不能对变量的部分位赋值 2 全部寄存器都要赋值 3 异步控制信号 如set和reset 在行为的事件控制表达式中必须是标量 4 状态寄存器赋值必须是常量 或是可静态求值的变量 74 6 6 2Mealy型NRZ码 Manchester线性码转换器的综合 线码 linecode 用于数据传输或存储系统 优点如下 1 降低串行通信信道噪声的影响 2 减小数据通道的宽度 3 有利于接收端数据时钟的恢复 75 串行线码格式与样本波形 76 Mealy型NRZ 曼彻斯特线码转换器 a 状态转移图 b 下一状态表 77 Mealy型NRZ 曼彻斯特线码转换器Verilog描述 78 79 仿真结果 80 6 6 3Moore型NRZ码 Manchester线性码转换器的综合 81 82 83 仿真结果 84 6 6 4序列检测器的综合 当在串行输入中接收到一个给定模式的连续比特流时 序列检测器将产生一个有效输出 状态机状态的转换和数据同步可以分别采用时钟的相反边沿 序列检测器可用Mealy型或Moore型确定状态机实现 85 设计考虑 1 Mealy机的输出与输入直接相关 Moore机的输出与输入无关 与状态相关 111 序列检测器的Mealy Moore输出 86 设计考虑 2 区分复位与非复位状态机当输入序列出现重叠时 非复位状态机的输出保持有效 复位状态机对于嵌入在更长序列中的一个m位序列 当第m 1位出现时 输出复位 且对后续的输入进行新的检测 87 111 序列检测器的复位与非复位输出 88 111 序列检测器Mealy型ASM图 89 111 序列检测器Moore型ASM图 90 序列检测器Mealy型描述 91 92 序列检测器Moore型描述 93 94 序列检测器的testbench 95 96 序列检测器仿真结果 97 Mealyglitch 98 99 序列检测器的简化描述 序列检测器可作为一个对输入数据进行移位操作的移位寄存器 并检测该寄存器的内容是否与要检测的序列相匹配 100 基于移位寄存器的Mealy型序列检测器 101 基于移位移位寄存器的Mealy型序列检测器 102 基于移位寄存器的Moore型序列检测器 103 基于移位寄存器的Moore型序列检测器 104 基于移位寄存器的序列检测器仿真结果 105 6 7寄存逻辑 变量输出的寄存处理 利用时钟信号同步进行赋值的变量称为被寄存 被寄存的信号在时钟的有效沿处更新 在其它时间保持稳定 Mealy型和Moore型的输出均是未被寄存的 106 带寄存器输出的Mealy机 107 带寄存器输出的Moore机 108 带下一状态功能寄存器输出的Mealy机 109 带下一状态功能寄存器输出的Moore机 110 序列检测器寄存器输出的描述Mealy型 regd out always negedgeclk d out state s 2 111 带寄存器输出的序列检测器仿真结果 112 113 例6 28NRZI mealy波形生成 114 NRZI mealy波形生成的状态转移图 115 116 仿真结果 invalid
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!