学习网站后台维护,中国电力工程造价信息网,网站开发一定要用框架嘛,怎么制作网站平台目录
触发器的动态参数
同步时序电路分析
1. 时钟脉冲的特性
2. 同步时序电路分析
Timing Analyzer的应用
异步时序与亚稳态问题 时序分析就是对时序电路进行时序检查#xff0c;通过分析电路中所有寄存器之间的路径延迟以检查电路的传输延迟是否会导致触发器的建立时间…
目录
触发器的动态参数
同步时序电路分析
1. 时钟脉冲的特性
2. 同步时序电路分析
Timing Analyzer的应用
异步时序与亚稳态问题 时序分析就是对时序电路进行时序检查通过分析电路中所有寄存器之间的路径延迟以检查电路的传输延迟是否会导致触发器的建立时间或者保持时间违例检查触发器的异步端口信号变化是否满足恢复时间和撤除时间的要求以及分析时钟的传输延迟以检查时钟树的偏移和延时等情况。通过时序约束文件告诉EDA软件该设计应该达到的时序指标指导EDA软件优化布局布线以达到时序设计要求。 时序分析包括静态时序分析和动态时序分析两种类型。 静态时序分析Static Timing Analyzier简称STA就是采用穷尽分析方法来提取出整个电路存在的所有时序路径计算信号在这些路径上的传播延时检查信号的建立和保持时间是否满足时序要求通过对最大路径延时和最小路径延时的分析找出违背时序约束的错误。静态时序分析不需要输入向量就能穷尽所有的路径且运行速度很快、占用内存较少不仅可以对芯片设计进行全面的时序功能检查而且还可利用时序分析的结果来优化设计因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。
触发器的动态参数 1. 建立时间 建立时间setup time是指时钟脉冲的有效沿到来时触发器的输入信号必须提前到达并且保持稳定的最短时间用tSU表示。
2. 保持时间 保持时间hold time是指时钟脉冲的有效沿作用后触发器的输入信号还必须维持稳定的最短时间用tH表示。
3. 时钟到输出时间 时钟到输出时间clock-to-output time是指从时钟的有效沿开始算起到触发器完成状态更新的延迟时间用tCO表示。 触发器的异步复位信号与时钟脉冲之间关系用恢复时间和撤除时间两个参数来定义。 4. 恢复时间和撤除时间 恢复时间recovery time是指在时钟脉冲的有效沿到来之前异步复位信号应该恢复无效状态的最短时间用trec表示。 撤除时间remove time是指在时钟脉冲的有效沿作用之后异步复位信号应该保持无效状态的最短时间用trem表示。
同步时序电路分析 同步时序逻辑电路内部所有的寄存器共享同一个时钟源寄存器的状态更新在严格的时钟控制下完成的。为了避免同步电路产生时序违例同步电路中时钟脉冲的周期与触发器的建立时间、保持时间之间应满足一定的关系。
1. 时钟脉冲的特性 在实际的数字系统中时钟脉冲受到传输路径、线路负载以及环境温度等因素的影响会出现时钟偏斜、时钟抖动和占空比失真等现象。 设时钟CLK1和CLK2来源于同一时钟CLK。正偏斜是指CLK2滞后于CLK1即tSKEW0如图所示。负偏斜是指CLK2超前于CLK1即tSKEW 0。 时钟偏斜clock skew是指同源时钟到达两个寄存器时钟端的时间差异用tSKEW表示分为正偏斜和负偏斜两种类型。 时钟抖动clock jitter是指时序电路中某些触发器的时钟周期发生了变化分为周期抖动和周期间抖动两种。 周期抖动period jitter是指时钟脉冲的周期相对于理想周期的偏差。对周期抖动进行差分运算就可以得到周期间抖动cycle-cycle jitter。 占空比失真是指时钟信号在传输过程中由于时延等因素的影响造成脉冲宽度发生了变化即脉冲高电平和低电平持续时间的比例发生了改变。在高速电路中由占空比失真引起的问题很普遍。例如DDR系列片外高速存储器在时钟的上升沿和下降沿都需要对信号采样占空比失真会改变系统的时序裕量造成数字信号的失真。
2. 同步时序电路分析 将FF1称为源寄存器source register将CLK1称为源时钟或者发送时钟同时将CLK1的有效沿称为发送沿launch edge 发起沿和捕获沿两者相差一个时钟周期。 设同步时序电路时钟脉冲的周期用tCYCLE表示。 将FF2称为目的寄存器destination register将CLK2称为目的时钟或者捕获时钟同时将CLK2的有效沿称为捕获沿capture edge。 1建立时间裕量分析 用tSU_SLACK表示目的寄存器的建立时间裕量收tSU_SLACK可以表示为 tSU_SLACK tCYCLE-(tCOtLOGIC)-tSU 当tSU_SLACK≥0时说明目的寄存器的输入数据D2相对于CLK2的接收沿到达触发器并且稳定的时间满足触发器建立时间的要求。 考虑到时钟CLK2与CLK1之间存在正偏斜时如图所示则建立时间裕量可表示为: tSU_SLACK tCYCLE-(tCOtLOGIC)-tSUtSKEW 由于tSKEW0因此建立时间裕量tSU_SLACK增加说明正偏斜对建立时间是有益的。
2保持时间裕量分析 如果不考虑时钟偏斜在时钟CLK2的有效沿作用后新的数据D2需要经过tCOtLOGIC时间才到达目的寄存器的输入端如图所示。因此要求触发器的保持时间为tH时如果tCOtLOGIC≥tH即满足保持时间要求。 如果用tH_SLACK表示目的寄存器的保持时间裕量则tH_SLACK可以表示为tHOLD_SLACKtCOtLOGIC-tH 考虑时钟CLK2与CLK1之间存在正偏斜时如图所示则保持时间裕量tH_SLACK可表示为tHOLD_SLACKtCOtLOGIC-tHOLD-tSKEW 由上述分析可知时钟发生正偏斜时对建立时间有益但对保持时间有害反之如果时钟发生负偏斜时则对保持时间有益但对建立时间有害。因此对于同步时序电路最好是使时钟脉冲无偏斜即tSKEW0这样对建立时间和保持时间都没有影响这就要求同步时序电路中所有触发器的时钟不但来源于同一时钟并且时钟网络具有良好的特性。
3最高工作频率分析 当tSU_SLACK0时对应的时钟脉冲周期最小此时时序电路的工作频率最高。由于tSU_SLACK tCYCLE-(tCOtLOGIC)-tSU令tSU_SLACK0时即可以推出该同步时序电路可靠工作时时钟脉冲的最小周期为 tCYCLE(min)tCOtLOGICtSU
因此电路工作的最高时钟频率为 fmax1/tCYCLE(min)1/(tCOtLOGICtSU)
Timing Analyzer的应用 Timing Analyzer是内嵌于Quartus Prime开发环境中的时序分析工具能够提取同步电路中存在的所有时序路径计算信号在这些路径中的传输延迟时间根据指定的时序约束检查信号的建立时间和保持时间是否满足设计要求通过对最大路径延时和最小路径延时的分析找出违背时序约束的错误。 应用Timing Analyzer进行时序分析的基本流程如图所示分为建立和综合工程、指定时序需求、在工程中添加.sdc约束文件重新编译工程以及查看时序分析报告等主要步骤。 module HC160(clk,rd_n,ld_n,ep,et,d,q,co);input wire clk;input wire rd_n,ld_n,ep,et;input wire [3:0] d;output reg [3:0] q;output wire co;// 进位逻辑assign co (( q 4b1001 ) et ); // 计数过程always ( posedge clk or negedge rd_n ) if ( !rd_n ) q 4b0000; else if ( !ld_n )q d;else if ( ep et )if ( q 4b1001 )q 4b0000; elseq q 1b1; endmodule1.建立和编译工程 全编译完成后展开Tasks任务栏下Timing Analyzer中的Clocks项可以看到图所示的时钟参数设置表示在未指定时序约束的情况下Timing Analyzer默认计数器的时钟周期Period为1ns频率Frequency为1000MHz在0时刻上升Rise、在0.5ns时刻下降Fall即时序分析默认计数器模块的时钟为1000MHz的方波。
2.指定时序约束
1启动Timing Analyzer。
2创建Timing Netlist。 选择Netlist菜单下的“Create Timing Netlist”命令将弹出生成时序网表对话框。修改Input netlist栏下Post-fit为Post-map点击OK后生成时序分析网表。 返回Timing Analyzer窗口后可以看到Timing Analyzer窗口左侧的task子窗口中的Create Timing Netlist前已经打“√”如图所示表示时序网表生成成功。
3指定时序需求。 选择Constraints菜单栏下的Create Clock命令弹出生成时钟对话框。 在Clock name栏中填入clk400”周期栏填入“2.5”在Waveform edges的Rising和Falling栏中不填入任何数值默认占空比为50%将时钟clk400设置为400MHz的方波。 点击对话页中的List图标显示工程所有的端口名选中clk后移至右侧的selected name栏中如图所示再点击OK图标返回Create Clock对话页即将设置的时钟clk400与HC160的时钟clk关联起来。 4更新Timing Netlist。 点击“Read SDC File”可以查看生成的约束文件信息再点击图中的“Update Timing Netlist”更新时序网表文件。 3.添加约束文件到工程中 在Quartus Prime主界面下选择Project菜单下的Add/Remove Files in Project命令在弹出的添加和删除文件对话页中选择浏览图标查找生成的时序约束文件HC160.out.sdc。
4.重新编译工程 在Quartus Prime主界面下选择Processing菜单栏下的Start Complication命令或者直接点击主界面中的图标启动全编译过程。
5.查看时序分析报告 全编译完成后展开Tasks任务栏下Timing Analyzer中的Clocks项。在时钟约束下三种时序分析模型的分析结果如表示。从表中可看出两种慢速模型的建立时间裕量为负值转变为正值表示计数器模块HC160在FPGA中能够稳定地工作在400MHz时钟下而且能够测量的最高工作频率也有所提高。 修改时钟频率为500MHz重新建立约束文件进行分析可以看到计数器模块HC160仍然能够稳定地工作在500MHz时钟下。
异步时序与亚稳态问题 异步时序逻辑电路内部寄存器的时钟脉冲来自两个及以上的时钟源而且时钟源之间没有确定的关系。 对于右图所示的时序电路当时钟CLK1与CLK2来自不同的时钟源时为异步时序逻辑电路。 相应地把信号从源寄存器FF1传输到目的寄存器FF2称为跨时钟域(clock domain crossing缩写为CDC)传输。 信号在跨时钟域传输时由于源寄存器的时钟和目的寄存器的时钟之间相位没有确定的相位关系所以源寄存器发出数据后数据有可能在任何时刻到达另一个时钟域的目的寄存器因此无法保证信号能够满足目的寄存器建立时间和保持时间的要求。 如果信号不能在建立时间和保持时间的窗口内保持稳定那么目的寄存器的输出有可能进入非0非1介于VOHmin和VOLmax之间的不确定状态如图所示这个状态称为亚稳态metastability。相应的把目的寄存器脱离亚稳态进入稳态的时间称为决断时间resolution time用tmet表示。经过决断时间后目的寄存器的输出稳定到0还是1是随机的与输入信号没有必然的关系。
亚稳态概率(建立时间保持时间)/时钟周期 亚稳态是触发器固有的特性。除了降低时钟频率和选用更好的器件外还可以通过改善时钟脉冲的质量采用边沿陡峭的时钟信号等措施以减小建立时间和保持时间窗口的宽度。 在基于FPGA的数字系统设计中主要通过以下三种技术手段来减小亚稳态传播的概率 1引入同步器来减小单bit信号亚稳态传播的概率实现异步信号与目的时钟域的同步 2应用异步FIFO实现多bit数据跨时域的传输 3应用异步复位同步释放信号来改善纯异步复位信号的特性。
应用同步释放电路改善异步复位信号的特性 异步复位信号不受时钟的控制具有直接快速的优点。但是当异步复位信号的释放时间不满足触发器的恢复时间和撤除时间要求时有可能产生亚稳态。 改进方法是应用异步复位信号对系统内部所有的寄存器复位后释放时再经过时钟脉冲进行同步。这样做的好处是既能够应用异步复位信号对系统进行快速复位又避免了异步复位信号直接释放时带来的亚稳态风险。 根据上述工作原理描述异步复位同步释放电路模块的Verilog代码参考如下
module async_rst_sysn_recover (input wire clk,input wire async_rst_n,output wire rstn_sync_out);// 内部变量定义reg sync_rst_reg0,sync_rst_reg1;// 描述输出 assign rstn_sync_out sync_rst_reg1;// 描述异步复位同步释放逻辑always ( posedge clk or negedge async_rst_n ) beginif ( !async_rst_n ) begin // 异步复位sync_rst_reg0 1b0;sync_rst_reg1 1b0; endelse begin // 同步释放sync_rst_reg0 1b1;sync_rst_reg1 sync_rst_reg0; end end
endmodule