前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >System Generator系列之时序分析

System Generator系列之时序分析

作者头像
狂人V
发布2020-06-29 11:33:26
5050
发布2020-06-29 11:33:26
举报
文章被收录于专栏:电子狂人
在很多时候,进行FPGA的设计都是需要注意时序的问题,因为时序一旦不正确将导致最终的结果与预期的不同,因此今天将分享一下在System Generaotr中是如何分析时序,并且在设计中找到违反时序的根源。

~Show Time~

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

双击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 分析的功能找到时序错误的地方,然后通过增加寄存器,使得延迟改变,最终导致时序被纠正,但是这样会增加资源的消耗。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 电子狂人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档