System Generator系列之时序分析

前言

在很多时候,进行FPGA的设计都是需要注意时序的问题,因为时序一旦不正确将导致最终的结果与预期的不同,因此今天将分享一下在System Generaotr中是如何分析时序,并且在设计中找到违反时序的根源。

开始

这次直接准备好了一个设计文件,打开如下所示,可以直接回复文末的关键字获取,

双击System Generator,将Compilation菜单下的Compilation改为HDL Netlist,语言可以改成Verilog,也可以默认使用VHDL,然后将目标路径更改下,与以前进行设计时所用的文件做个区分,更改的配置如下:

然后在Clocking菜单下,主要做以下更改,将Perform analysis改成Post Synthesis, Analyzer type选择位Timing,如下所示:

然后点击Generate,等待编译结果,编译完成后,会出现以下的结果,一个FAILED的状态;

在上面分析的表格中,是按Slack的数值从小到大排列的,违反时序的会变成红色的,直接单击红色的(其他的也可以),然后会在Simulink模型界面突出显示其位置,模块违反了时序的就会以红色进行高亮显示,如下:

单击一个未违反时序,就以表格中的第二行为例,然后就会以绿色高亮显示,表示未违反时序,如下所示:

在做完时序分析,也就是刚刚Generate完成后,如果时序分析的对话窗口被关闭,或者整个软件被关闭,在下次使用时,可以直接使用Launch加载之前运行的数据,并在窗口进行显示,这是由于之前运行的结果已经储存在设定的目标文件夹中,所以可以重新加载。

 

违反时序的故障排除

通过在组合路径中插入一些寄存器,可能会提供更好的时序分析结果,并有助于克服时序违规(如果有)。这可以通过更改组合块的延迟来完成,解决如下。

继续点击表格中第一行违反时序的那一项,也就是标红的那个,然后打开违反的地方。

双击Mult,打开它的变量窗口,然后将Basic菜单下的Latency的值由1改为2,然后点击OK保存并关闭。

然后重新打开System Generator,确定“Analyzer Type” “Timing” 就点击Generate重新进行生成。

等待完成后,观察右上角的状态,此时已经变成了PASSED,代表该设计中已无违反时序的源。



通过今天简单的使用System Generator中的Timing 分析的功能找到时序错误的地方,然后通过增加寄存器,使得延迟改变,最终导致时序被纠正,但是这样会增加资源的消耗。



我将本次用于时序分析学习的文件传到了云端

网盘链接
提取码:9stf 



 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值