集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2686|回复: 8

FPGA设计的高级技巧

[复制链接]
小舍YZ 发表于 2017-7-7 11:28:49 | 显示全部楼层 |阅读模式
FPGA设计的高级技巧

本节主要介绍一些能够使System Generator有效生成高性能硬件电路的方法和技巧。

1.关注模块对话框中的注释

在基于System Generator设计时,需要特别注意其模块对话框中对硬件电路的说明。大多数Xilinx模块库中都有如何达到最高效硬件电路实现的注释,在使用时要仔细阅读和体会。例如:缩放模块(Scale block)的注释会指出该模块并不消耗任何硬件资源(因为可通过交换硬件连线实现),而移位模块(Shift block)的注释就表明需要一定的硬件资源。对于这样的细节信息,只有从注释中才能获取。

2.寄存设计的输入和输出

寄存输入、输出变量可以通过在“Gateway In“之后和“Gateway Out“之前加入时延为1的延迟模块或者寄存器模块实现。选择寄存器模块的任一属性即可添加硬件。在某些应用中,对数据需要进行双寄存才能达到目的,这可以通过例化两个独立的寄存器模块或者例化两个时延为1的延迟模块实现。这样可以做到一个寄存器负责I/O端口,另外一个寄存器负责和FPGA内部逻辑接口。一个延迟为2的寄存器模块并不能达到上述效果,这是因为它是由SRL16单元组成的,并不能直接嵌入I/O端口中。

3.加入流水线寄存器

尽可能在设计中插入流水线寄存器,较多的流水线级数能有效地提高硬件实现的性能,且占用较少的资源(使用SRL16结构来实现)。此外,如果在设计中要将变量初始化,就必须通过使用寄存器模块来完成。

4.使用System Generator时序分析器

时序分析器可以帮助设计人员解决与时序有关的问题,以报告的形式反馈最慢的路径和不满足时序要求的路径。System Generator也提供了时序分析器来辅助用户提高电路性能。

双击打开设计中的System Generator模块,在“Compilation”下拉框中选择Timing Analysis选项,然后单击“Generator”按键,会自动生成设计的NGC网表、NGD网表文件以及NCD文件,时序分析器分析NCD文件,跟踪最差路径,并最终给出时序报告。该编译过程完成后,会自动弹出图7-61到图7-64所示的时序分析报告,分为最慢路径、图表显示、统计结果以及跟踪信息4个页面。

1) 最慢路径分析结果

图7-61 时序分析器最慢路径列表

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:29:28 | 显示全部楼层
直接获取最慢路径可帮助用户快速修改设计,打破时序瓶颈。在图7-61的Source区单击分析源之后,在“Path”区会显示该源的所有路径延迟以及延迟类型。选中右下角的“Display low-level names”选项,还可显示出相应路径在实现后详细的网表名称。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:30:32 | 显示全部楼层
2) 图表分析结果

点击左侧栏的“Charts”图标,即可切换到图表分析结果。在一般的时序分析中,设计人员只获取到最高时钟频率,但不明白设计的整体时序性能。例如用户期望设计达到100MH,但经过时序分析后只达到99MHz,那么设计究竟离约束的性能差距有多大,是重新设计还是局部修改,这些困惑都是不确定的。图标分析结果弥补了这一缺陷,直观地将所有的路径列表统计,如图7-62所示,大多数路径的延迟处于8ns左右,只有一条路径为9.96ns,比较接近10ns。整体设计的时序裕量还是比较富裕的。

图7-62 时序分析器性能直方图统计结果示意图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:31:32 | 显示全部楼层
3) 统计结果

统计结果列出设计的时序约束个数以及所分析的路径,并给出设计的最小周期和可达到的最高工作频率。如时钟约束为100MHz,经过分析可达100.371MHz,基本满足需求。

图7-63 时序分析报告的简要指示信息

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:32:47 | 显示全部楼层
4) 路径跟踪信息

路径跟踪信息列出了每条路径的详细时序报告,对于不满足的路径将以红色显示。其中各路径信息的解读方法和指标参见后面内容。

图7-64 时序分析报告的路径跟踪指示信息

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-7 11:33:22 | 显示全部楼层
5.设置所有“Gateway”模块的速率

速率设置通过选择I/O端口时序约束选项中的数据速率来实现。一旦数据速率选项被选中,则I/O端口只能工作在约束的频率上。约束频率是由设计中的系统周期、“Gateway In”模块的采样速率以及其他模块的采样速率共同决定的。

6.减少时钟使能信号的扇出

Xilinx ISE的映射器在高扇出网络中采用复制和放置寄存器的方法递归地分割负载,意味着在System Generator中亦可以该方法来改善时钟使能信号高扇出的情况。System Generator具备该项特征,但需要在实现过程中使能下列选项:
•        Perform Timing-Driven Packing and Placement : on
•        Map Effort Level : High
•        Register Duplication : on
在ISE开发流程中,上述MAP选项是默认打开的。但在System Generator中完成比特流的生成,需要通过修改bitstream .opt文件或提供用户自定义的.opt文件才能打开上述选项。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
zxopenljx 发表于 2020-6-11 10:04:02 | 显示全部楼层
FPGA设计的高级技巧
zxopenljx 发表于 2023-9-22 16:10:01 | 显示全部楼层
FPGA设计的高级技巧
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-27 18:41 , Processed in 0.067295 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表