Vivado_IDE(2)使用Vivado进行工程设计综合【下】

在这里插入图片描述

(2)使用Vivado进行工程设计综合【下】

作者:Saint
掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a
微博:https://weibo.com/5458277467/profile?topnav=1&wvr=6&is_all=1
GitHub:github.com/saint-000
知乎:https://www.zhihu.com/people/saint-80-61/columns

7)Report_methodology在每个设计阶段做设计方法论相关的设计规则检查 (DRC),在Vivado 2016.1之后的版本中,将部分DRC检查组合为一个新功能Report Methodology中,该功能运行一些简化的规则检查来验证设计(比如逻辑映射),遵从UltraFast设计方法。打开某一阶段设计后,在Flow Navigator中点击此功能:如果有设计违规会显示在Methodology窗口,信息查看方式与DRC相同。最好的做法是在Elaborated Design阶段就运行该功能,可以帮助设计者在早期发现设计问题,节约开发成本。
在这里插入图片描述
8)Report_DRC中默认设置后运行结果,DRC是管脚规划中最严苛的一个步骤,DRC使用一套设计检查项(通常称作rule deck),来检查当前设计是否违反这套规则。
在这里插入图片描述
① default:Xilinx推荐的默认规则检查;
② opt_checks:与逻辑优化相关的规则检查;
③ placer_checks:与布局相关的规则检查;
④ router_checks:与布线相关的规则检查;
⑤ bitstream_checks:与bit流生成相关的规则检查;
⑥ timing_checks:与时序约束相关的规则检查;
⑦ incr_eco_checks:与增量ECO设计修改的有效性相关的规则检查;
⑧ eco_checks:完成一个修改网表的ECO之后,与连通性和布局相关的规则检查。

交互式DRC:在I/O布局过程中,Vivado IDE会运行基本检查以确保合理的引脚分配,但是只有在实现后设计中的检查才能确保最终引脚分配完全合法。管脚布局时,交互式的I/O布局例行检查会报告常见的错误,这项功能可以在Package窗口或Device窗口的设置中通过Auto check I/O Placement复选框选择是否开启:
在这里插入图片描述
在这里插入图片描述
交互式DRCs的检查规则:
① 阻止将高速收发器GTs的管脚赋值给噪声敏感的管脚;
② 避免I/O标准违反设计规则;
③ 确保I/O标准不会用于不支持它们的I/O Bank;
④ 确保Bank没有不兼容的Vcc端口赋值;
⑤ 确保需要Vref端口的Bank有可自由使用的Vref管脚;
⑥ 确保全局时钟和局部时钟有合适的赋值;
⑦ 确保差分I/O端口设置在合适的管脚上;
⑧ 确保输出管脚不会布局在仅支持输入的管脚上。
Vivado默认开启交互式DRCs功能(交互式指的是用户每执行操作后都运行相关检查)。

查看DRC结果:
违规信息根据严重性分为4个等级,图标显示为不同的颜色:
① Advisory:提供设计过程中的普通状态和反馈;
② Warning:约束和设置可能没有按设计者意图那样实现,设计结果进行了一些优化;
③ Critical warning:某些用户输入和约束将不会应用或没有遵守最佳做法(必须解决此类问题,否则会在生成bit流过程中升级为error);
④ Error:表明使设计结果不可用和没有设计者干涉软件无法自动解决的问题,会终止设计流程。

Details信息中给出了具体描述和解决方案,供设计者参考是否要修改设计。有的信息会包含一些蓝色链接,单击可以在其它窗口中交叉探测到产生违规的对象。

在这里插入图片描述

9)Report_NoiseSSN(Simultaneously Switching Noise)分析可以估计I/O Bank中管脚在同时转换输出状态时对其它输出端口造成的干扰。这是一个常见的问题,许多总线有大量的位宽,当总线数据有多位同时变化时,很容易在其它I/O上产生噪声,SSN分析中,将会预测转换对系统电源网络和I/O Bank中其它输出管脚的影响,分析输出信号和双向端口的输出状态,计算中会忽略输入信号,SSN分析可以帮助设计者发现设计中潜在的噪声问题。
在这里插入图片描述
① I/O Std,Vcco,Slew,Drive Strength:显示I/O端口的参数值;
② Off-Chip Termination:显示每个I/O标准的默认端接。比如FP_VTT_50表示远端并联50Ω的VTT端接类型;HSTL_1表示远端并联40Ω的VTT端口类型。
③ Remaining Margin %:显示Bank中剩余的噪声裕量;
④ Notes:显示与I/O Bank相关的信息。

如果SSN结果中有违规出现,可以通过下面方法来降低影响:
① 增加Phase信息进行分析;
② 将失败的I/O的电平标准更换为具有更低SSN影响的I/O标准。减小驱动强度,使用并行端接的DCI I/O标准,或者更换为更低的驱动等级都可以改善SSN结果,比如将SSTL Class II标准更换为SSTL Class I;
③ 将失败的管脚分散在多个Bank中,可以减少在同一个Bank中多个输出管脚同时对电源系统造成影响;
④ 将失败的管脚分散在多个同步阶段中(即所有输出端口不会同时转换)。

可以在XDC中规定温度等级,时钟信息必须在约束中用create_clock和create_generated_clock定义,定义中需要提供相群(phase group)、周期、占空比、相移等来提高SSN分析的精度。

set_operating_conditions -grade Commercial
set_operating_conditions -grade Industrial
set_operating_conditions -grade Military
set_operating_conditions -grade Q-Grade
set_operating_conditions -grade Extended

10)Report_utilization:资源利用率分析,该栏可查看设计的资源利用率。
在这里插入图片描述
上面对应的是详细的逻辑资源利用率,其实在实际的动态测试中,我们会考虑余量测试之一指标,余量测试分时钟余量和逻辑资源余量,在查看总的逻辑资源余量时可直接在Project summary中查看,主要是LUT,slice的余量情况:例如spartan6中CLB由两个SLICE构成,每个SLICE由四个LUT和八个FFS构成,我们查看LUT,SLICE都不超过80%,符合逻辑资源占用率余量要求。
在这里插入图片描述

11)Report_Power:分析芯片功耗,包括温度和功率。
在这里插入图片描述
功耗优化:设计之初就应考虑,设计中应遵循RTL代码规则,尽量避免对触发器和BRAM使用异步复位或置位,功耗优化的目的是最大限度地降低FPGA功耗同时最小限度地避免其对时序的影响。但有时会出现功耗优化之后时序恶化甚至无法收敛的情况,此时可通过Tcl命令set_power_opt管理优化对象。例如,对alu模块中的store_ram不进行优化,可通过程序1实现;若只对某时钟域进行优化,可通过程序2实现;若只对某类型的cell优化,可通过程序3实现。
在这里插入图片描述

程序1:set_power_opt-exclude cells参数
01 set_power_opt-exclude cells[get_cell alu/store_ram]
程序2:set_power_opt-clocks参数
01 set_power_opt-clocks[get_clocks clk]
程序3:set_power_opt-cell_types参数
01 set_power_opt-cell_types{bram reg}

12)Schematic:原理图,可视化框图,直观分析信号连接映射关系和输入输出IO,就像active-vhdl里面的BDE框图,结构型设计。
在这里插入图片描述

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值