最新Verilogppt课件 第十一讲 数字系统设计原则与设计实例.ppt
《最新Verilogppt课件 第十一讲 数字系统设计原则与设计实例.ppt》由会员分享,可在线阅读,更多相关《最新Verilogppt课件 第十一讲 数字系统设计原则与设计实例.ppt(60页珍藏版)》请在三一办公上搜索。
1、第十一讲 数字系统设计原则与设计实例,硬件原则面积和速度的平衡与互换原则同步设计原则同步系统时钟与复位规划自顶向下设计原则设计实例本讲要点与实验要求,硬件原则,硬件原则主要是针对HDL设计代码编写而言,特别是具有软件编程经验的初学者,片面追求代码的简短、整洁,如大量使用for循环,而对HDL描述要实现的电路不胜了解。HDL仿真代码不受硬件原则约束。硬件原则主要是指:硬件描述语言(HDL),如verilog,本质上是硬件的抽象描述。HDL描述的最终目标是生成芯片内部的实际电路。HDL描述与软件语言,如C语言,有本质的区别。因C语言编译后,基本上是在设计好的硬件电路(CPU)中按顺序运行的,而HD
2、L描述的是硬件电路本身。评价一个HDL描述的质量,主要看该HDL是否能够与综合工具配合,按设计者的构想合理地生成硬件电路。,硬件原则,按硬件原则,HDL的正确编写方法是:设计者要对所设计的硬件电路功能十分清楚。合理安排电路的数据流和控制逻辑,构思RTL级电路体系结构。掌握综合工具要求和性能。用适当的、综合工具能理解的HDL语言描述出来。目前纯行为级的综合还不成熟,RTL级综合仍是主流。在目前主流综合工具中,部分行为描述语句可以综合,如c=a*b 的乘法语句,quartus2内嵌综合工具会综合成LPM乘法宏模块。那些行为描述可以综合,决定于具体的综合工具,可参考综合工具的使用手册。,面积和速度的
3、平衡与互换原则,面积是指一个设计消耗的逻辑资源数量,对FPGA可以用触发器和组合逻辑单元来度量。速度指设计在芯片上稳定运行时能够达到的最高频率。面积和速度是一对矛盾的需求。要求一个设计同时具有设计面积最小,运行速度最高是不现实的。平衡的设计目标是:在满足设计工作速度要求的前提下,占用最小的芯片面积;或芯片面积一定的情况下,使设计的工作速度最高。对应的综合工具有相关的综合策略,如面积优先、速度优先或平衡方式。面积和速度的互换是IC设计的重要思想。如果一个设计时序余量较大,即工作速度远高于设计要求,就可以考虑采用串行方式复用部分逻辑,用速度换面积;反之工作速度不够时,可采用并行处理提高工作速度,即
4、用面积换速度。当面积和速度设计要求不能同时满足时,采用速度优先原则。,乒乓操作,串并转换,流水线概念,同步设计原则,早期的IC设计常用异步设计,如行波计数器和异步脉冲发生器等,以减少设计面积。异步设计时序控制相当繁杂而困难,且目前EDA工具多不支持异步设计,较大规模的异步设计十分费时费力。随着IC技术发展,减少器件资源已不是主要问题,设计的稳定可靠、与工艺无关,减少设计周期更为重要。因此同步设计是目前IC设计的重要原则之一。同步系统设计中的基本问题:设计必须满足同步触发器的建立、保持时间。同步系统时钟、复位的合理规划。注意同步时钟域间信号的转换。,同步系统时钟的规划,在同步数字系统设计中,设计
5、不良的时钟将导致系统错误的行为,特别是在温度、电压或制造工艺存在偏差的情况下,很容易出现问题,所以可靠的时钟规划设计是非常关键的。在数字逻辑设计时通常有以下三种时钟方式:全局时钟 门控时钟 行波时钟,全局时钟,对于一个同步数字系统设计项目来说,全局时钟是最简单和可预测的时钟。在FPGA设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动单个主时钟去控制设计项目中的每一个触发器。FPGA一般都具有专门的全局时钟引脚,在设计项目时应尽量采用全局时钟,它能够提供器件中最短的时钟到输出的延时和时钟偏移。,时钟偏移,时序电路在FPGA中实现时,若不用全局时钟,由于时钟各部分连线长短不一致,虽然多个触发器
6、共用一个时钟信号,但触发器时钟端的信号延时并不相同,信号会发生不同的畸变,构成时钟信号偏移。,不可靠门控时钟例,如图示门控时钟将不能正常工作,因RCO信号有毛刺。,不希望的毛刺,希望的时钟上升沿,不可靠的门控时钟转换为全局时钟,Q,D,PRN,CLRN,ENA,OUT,QA,QB,QC,EN,CLK,ENABLE,RCO,DATA,3,位二进制,可逆计数器,使能的时钟上升沿与原设计等效,作为使能信号毛刺无影响,行波时钟,所谓行波时钟是指一个触发器的输出用作另一个触发器的时钟输入。如果仔细设计,行波时钟可以像全局时钟一样可靠工作,但是行波时钟使得与电路有关的定时计算变得很复杂。行波时钟在行波链上
7、各触发器时钟之间产生较大的时间偏移,使系统的实际速度下降。同步数字系统设计中一般只用全局时钟和门控时钟,不用行波时钟用T触发器构成异步计数器时,常采用行波时钟,一个触发器的输出作为时钟控制下一个触发器的输入,如下图:,多时钟域系统,许多系统要求在同一设计内采用多时钟,每个时钟驱动的触发器集合称为一个时钟域。最常见的例子是两个异步微处理器之间的接口,或微处理器和异步通信通道的接口。在同步逻辑电路的系统中,如果存在两个时钟域或异步输入,对属于其它时钟域的信号,在输入CLK2域时需要和CLK2同步。同步方式与时钟频率有关。,CLK1时钟域,CLK2时钟域,异步接口,D触发器的亚稳态(metastab
8、ility)概念,当某个异步信号被送入一个同步触发器时,就可能发生亚稳态现象。如图所示,当输入D与时钟CLK1同时在亚稳态时间窗内翻转时,D触发器的输出可能出现一种不是1,也不是0的不确定中间状态,并可能维持一段时间,称亚稳态。,亚稳态时间窗,CLK1频率小于CLK2的情况,一般要求输入信号脉冲宽度至少为1个CLK2的周期以上(即CLK1慢于CLK2),同步电路和波形如下。注意,同步输出有一个CLK2周期的不确定性。,CLK1频率大于CLK2的情况,假设输入信号脉冲宽度可能会小于1个CLK2时钟周期宽度,且输入信号的速率较慢,三个CLK2时钟后才会再来,同步电路和波形如下。,多时钟域的其它情况
9、,若CLK1域的输出信号瞬时速率高于CLK2,但平均速率低于CLK2,可以用异步FIFO实现互连。若CLK1域的输出信号平均速率高于CLK2,无法互连。多时钟域电路的互连要按异步输入信号处理,同步化实现方法应具体电路具体分析,核心是减小亚稳态的影响。在许多应用中只将异步信号同步化还是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,设计人员将面临复杂的时序分析问题。同时FPGA的全局时钟资源有限,可能不够。较好的方法是将非同源时钟进行时钟域合并。这时就需要使用带使能端的D触发器,并引入一个高频时钟来实现时钟域合并。,一种时钟域合并方法,如图示,系统有两个不同源
10、时钟3 MHz、5 MHz,分两个时钟域。现引入一个20 MHz时钟,将3 MHz和5 MHz 时钟同步化。图中的D触发器及其后的非门和与门构成了时钟上升沿检测电路,输出分别为3M-EN和5M-EN。把20 MHz的时钟作为系统时钟,同时让3M-EN和5M-EN控制所有触发器的使能端。这样我们就实现了非同源时钟域的合并。,=,一种时钟域合并方法,如图示时钟时序波形,时钟使能3M_EN、5M_EN分别使能20M_CLK部分时钟,使有效的时钟信号平均等效频率分别为3M_CLK、5M_CLK。,使能的时钟信号,同步系统复位的规划,为使系统工作稳定,并便于测试,所有触发器都应设置复位端。触发器的复位信
11、号是一个异步逻辑输入端,对毛刺非常敏感。较好的全局复位方式是设置一个芯片主复位引脚RESET,并用专门模块设计复位电路,给电路中每个触发器送复位信号。与全局时钟引脚类似,几乎所有FPGA器件都有专门的全局清零引脚和全局置位引脚。在一般情况下使用芯片的全局同步或异步清零/置位信号,可以简化设计、节省面积。如果必须从器件内产生清零或置位信号,则要按照“门控时钟”的设计原则去建立这些信号,确保复位信号中不会出现毛刺。,复位电路,1、用FPGA的PLL锁定输出LOCK作为电路复位rst_n;2、设计RESET同步电路。,PLL,clk,reset,clk_pll,lock,复位同步电路,clk,res
12、et,rst_n,自顶向下系统设计原则,自顶向下的设计原则是首先定义好顶层功能,然后再用底层的具体实现去充实这些功能。它是设计复杂数字系统普遍采用的设计方法。自顶向下的设计方法是从一个写好的系统设计规范开始,通过系统设计、模块设计与仿真验证、系统功能仿真验证、系统实现与仿真验证几个阶段,逐步细化设计,直到实现系统设计规范要求。在自顶向下设计中,撰写完善的设计文档是与设计同样重要的。对于一个比较复杂的设计来说,系统和各模块之间关系较复杂,在设计文档中对整个设计进行详细的描述,才能保证设计者能够在较短时间内掌握整个设计方案,顺利完成设计工作。,自顶向下设计系统设计规范,系统概述系统目标(包括系统实
13、现的功能定义及性能指标)系统设计依据(主要的工作原理,关键算法等)关键技术系统实现其它要求(包括硬件体系结构、数据流、控制流的特殊要求,系统实现价格、面积、功耗、封装等其它要求)系统验证及测试要求,自顶向下设计系统设计,系统设计论述。包括对系统详细的分析与设计策略、系统体系结构框图、层次结构框图、各个模块的划分和功能定义、系统时钟和复位规划。芯片与封装选择,包括芯片引脚功能和时序说明,输出驱动能力、输入输出电平。系统各模块输入输出引脚功能和时序说明。系统各模块的实现策略,如是否用IP;关键算法流程或时序设计。系统验证、测试方案与可测性设计。,自顶向下设计层次化与模块划分原则,顶层设计:只包含功
14、能模块、独立时钟模块、独立复位模块和输入输出管脚定义,不含逻辑电路。模块划分应无跨层间信号互连。,顶层,模块A,模块B,模块A.U1,模块A.U2,模块B.U1,模块B.U2,自顶向下设计层次化与模块划分原则,独立模块尽量加寄存器输出,便于时序调整。相关逻辑电路划在一个模块内,使模块间互连最少。将相同优化目标的逻辑划在一个模块内,便于优化。如速度要求一样的逻辑放在一个模块中,便于对模块设置速度约束。时序要求不高的逻辑可放在一个模块。异步输入输出接口和时钟域间接口划分为单独模块,并尽量小。存储器划分为独立模块。模块规模要适当,便于验证和管理。,自顶向下设计模块设计,模块的体系结构与电路设计模块中
15、关键路径设计及说明模块的测试方法与可测性设计模块的HDL描述,功能仿真检查结果模块的综合约束条件(包括扇入、扇出,速度要求、面积要求等)模块的面积、速度和功耗估算,组合逻辑设计规则,设计无组合环:组合电路输出不能在没有通过同步延时单元的情况下反馈回同一组合逻辑。,组合逻辑设计规则,不用组合逻辑产生延时,延时总是由时序电路产生。不要用组合逻辑产生脉冲,用时序电路产生。,组合逻辑设计规则,三态门要防止多驱动竞争(总线竞争)。三态总线不要处于悬浮状态。三态逻辑只用于芯片的双向端口。FPGA内部总线使用多路选择器实现。,同步逻辑设计规则,多驱动在测试平台中常出现,但在设计中应禁止使用。例:always
16、(posedge clk)if(rst)sig=4b0;else if(condition1)sig=express1;always(posedge clk)if(condition2)sig=express2;除非特殊情况,不建议在同一模块中上、下时钟沿混用。等效减少时钟周期,不利于时序分析。,多驱动,同步逻辑设计规则,不用if-else作为完整选择,容易出错。例:always(posedge clk)if(rst)sig=4b0;if(condition1)/else if sig=express1;Case语句不要遗漏default,if语句条件要完备。Always语句应使用完整的敏感量
17、表,否则容易使仿真与综合不一致,或产生非预期的锁存器。,同步逻辑设计规则,不要混合使用同步和异步复位,综合可能出问题。always(posedge clk or posedge rst)if(rst|syn_rst)sig=4b0;else if(condition1)sig=express1;改为:always(posedge clk or posedge rst)if(rst)sig=4b0;if(syn_rst)sig=4b0;else if(condition1)sig=express1;,同步逻辑设计规则,状态机设计一定要有初始复位状态。较大状态机建议用one-hot编码方式。未用状
18、态一定要明确处理。建议使用单独的状态转移always过程块,输入组合逻辑和输出组合逻辑always过程块的设计方式。,同步逻辑设计规则,资源共享。例:always(a or b or c or d or sel)sum=sel?(a+b):(c+d);-always(a or b or c or d or sel)begin s1=sel?a:c;s2=sel?b:d;sum=s1+s2;end,冗余逻辑。例:reg sig1/*synthesis preserve*/;reg sig2/*synthesis preserve*/;always(posedge clk or posedge r
19、st)if(rst)begin sig1=1b0;sig2=1b0;end else if(condition1)begin sig1=express1;sig2=express1;end,自顶向下设计系统级仿真与实现,系统最终完成的HDL设计描述。系统仿真激励文件、测试文件及功能仿真结果分析。系统级综合约束条件(包括器件扇出配置,关 键路径约束,输入输出约束,时钟约束,速度、面积和功耗约束等);得到综合后网表文件。系统布局布线约束条件及布局布线结果。系统静态时序分析和时序仿真结果分析。设计实现后系统电路面积、速度和功耗估算。最终产生FPGA的编程文件。验证本设计实现的系统满足系统设计规范要求
20、。,系统级常用约束,I/O驱动约束:电平值、驱动电流、集电极开路、上拉电阻I/O驱动约束:Tsu,Th,Tco,Tpd定位约束(location):管脚定位、逻辑单元定位。全局时钟约束:多个独立时钟、关联时钟时序约束:多周期路径,伪路径切断,扇出约束:FPGA一般取12,16,24,32等,取决与速度需求。修正保持时间违例,设计实例:自动交通控制系统,系统设计规范:系统概述 设计一个具有主、支干道十字路口的交通灯自动控制芯片。系统目标当主干道与支干道均无车辆要求通行时,主干道应保持畅通,亮绿灯,支干道亮红灯。如果主干道无车,支干道有车,则允许支干道通行,主干道亮红灯,支干道亮绿灯。如果主干道和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新Verilogppt课件 第十一讲 数字系统设计原则与设计实例 最新 Verilogppt 课件 第十一 数字 系统 设计 原则 实例
链接地址:https://www.31ppt.com/p-2157980.html