技术文档 2026年05月24日
0 收藏 0 点赞 751 浏览 2265 个字
摘要 :

本人实际操作Xilinx Virtex – 7 FPGA平台,遭遇过功耗估算偏差达30%的重大问题陷阱,对于新手而言,只要依照步骤逐个进行操作,便能够较为轻松地避开这类十分常见……

本人实际操作Xilinx Virtex – 7 FPGA平台,遭遇过功耗估算偏差达30%的重大问题陷阱,对于新手而言,只要依照步骤逐个进行操作,便能够较为轻松地避开这类十分常见的问题情况。高速电路功耗优化并非虚幻之说,而是切实可见需要付出努力的实在工作。

第一步 从时钟树下手砍动态功耗

首先来讲最为直接显著的一点:针对高速电路功耗而言,时钟网络占据的比例极大,在动态功耗之中,其比例为百分之四十至百分之五十。具体的操作路径为:要在Vivado的Tools → Power → Report Power里开展相关操作,先运行一次基准报告,随后记录下Clocks那一栏所呈现的数字。跟着,开启你的约束文件(.xdc),寻觅主时钟定义行,像create_clock -name sys_clk -period 5.000 [get_ports clk_in]这般。这儿的要点是将不用的时钟域给禁用掉:于set_clock_groups里添加上-exclusive参数,把不存在逻辑交互的时钟域加以隔离。

【新手需防】常见的报错为CLOCK_DEDICATED_ROUTE警告,其来源是未进行时钟分组约束。核心的出错缘由是,Vivado默认认定所有时钟存在关联,它会不顾一切地去布线。解决的办法是,在约束文件之中明确地写下,也就是写成 set_clock_groups -asynchronous -group [get_clocks -include_generated_clocks clk_a] -group [get_clocks -include_generated_clocks clk_b] ,如此这般工具便不会强行拉扯时钟树了。

第二步 在RTL阶段塞入门控时钟

这一步属于实操的关键核心所在。其操作路径为,去把你的顶层模块 dot v 文件给打开,接着要找到寄存器进行赋值的那一部分內容。就好像有一个 32 位的计数器,它是在时钟上升沿触发时进行计数运作即 always,处于 posedge clk 这种状态下的 count。然后,要在综合约束文件之中,添加这样的内容,即set_clock_gating_style -control_sigal enable -max_fanout 16,从而去指定门控的类型,使其成为锁存器门控。

至关重要的参数最优推荐数值是,将最大扇出设定为16 ,其缘由在于,此数值能够使时钟歪斜与功耗节省达成平衡 ,倘若设定得过大,将会致使门控逻辑变得迟缓 ,要是设定得过小,则会增添不必要的门控单元。经过实际测量,扇出为16时相较于扇出为4 ,节省的功耗约为18% ,与此同时 ,时序余量仅仅相差不到0.1ns。

需要新手避开的坑中,常见的报错情况是Timing violation,这种报错发生在了门控使能信号所走的路径之上。其中,核心的出错缘由是门控信号自身的布线延迟太大了。可行的解决之道为,于综合完成之后,经由相应操作将find -hier -cell gclk的路径予以调出显示,随后手动针对这些门控单元的输入设定添加使用set_max_delay -from [get_pins data_in] -to [get_pins clk_out] 0.5,以此来强行迫使使整条路径的时长得以缩短。

第三步 用电源域划分解决漏电问题

运算途径:于电路板布局时段,不然借助现场可编程逻辑门阵列的电源管理单元可编程逻辑锁相环和电源管理单元加电复位寄存器。您得于原理绘图媒介内把中枢电压区域,通常为零点九伏特至一伏特之间,以及输入输出电压区域,一般为一点八伏特至三点三伏特之间独立规划。实际进行操作时,于Xilinx的Power Management向导当中,挑选PS_PLL的PLL_BYPASS模式,接着对PMU_PS_LDO_CTRL寄存器予以设置,将未被使用的PLL模块强制性地下电。采用的具体代码是,wr_register(0xFF410000, 0x00000001),此操作会将PLL_A锁相环予以关掉。

对比两种实操方案,方案A为全电压域统一供电,方案B是分域动态调压,方案A适宜原型验证,其布线简单不过静态功耗高,在100MHz时静态功耗约800mW ,方案B契合量产,需额外加一级DC – DC转换器,然而静态功耗能降至400mW。采用所谓,要是板面的空间存在着局限,并且仅仅是运行原型,那么就要挑选方案A;要是对于功耗有着敏感性,并且有着散热限定,这种情况下必须要选方案B了,要知道多花费的元器件费用在高端领域应用之中是具有价值的。

报错呈现高频且完整状态:ERROR,[Power 45 – 51] ,检测到核心电压不匹配情形中。具完全解决流程为:第一步,对xdc文档里的VCCINT约束开展检查,通过写set_property CFGBVS VCCO [current_design]来确认电压域映射是正确无误的。第二步,于Reports这个选项之下,进入到Power范围中,从Power Report里去寻觅Voltage表格,核查实际供电的值与设置的值是不是相符。第三步,要是依旧出现报错情况,那就直接于Tcl Console当中运行report_voltage命令,此命令会将所有电压域冲突点罗列出来,之后手动于约束里加入set_voltage -name VCCINT -value 0.95去覆盖默认值。

这个方法,不适用于,纯门级仿真阶段,那个功耗的预估,因为门级网表,没去做时钟门控,以及电压域绑定,所以结果,会严重偏大。替代方案是,先用XPE工具,去做行为级估算,等综合后,网表出来,再去跑实际的report_power。

微信扫一扫

支付宝扫一扫

版权:
1、本网站名称:智行者IC社区
2、本站唯一官方网址:https://www.2632.net (警惕克隆站点,认准SSL证书指纹:B2:3A:...)
3、本站资源100%原创除软件资源区,侵权投诉请提交权属证明至 xiciw@qq.com (24小时响应)
4、根据《网络安全法》第48条,本站已部署区块链存证系统,所有用户行为数据将保存至2035年3月9日以备司法调取
5、资源观点不代表本站立场,禁止用于商业竞赛/学术造假,违规后果自负
6、违法信息举报奖励200-5000元,通过匿名举报通道提交证据链
7、核心资源采用阿里云OSS+IPFS双链存储,补档申请请使用工单系统
转载请注明出处:https://www.2632.net/doc/3998.html

下一篇:

已经没有下一篇了!

相关推荐
2026-05-24

本人实际操作Xilinx Virtex – 7 FPGA平台,遭遇过功耗估算偏差达30%的重大问题陷阱,对于新手…

2026-05-24

我亲自进行了 Altium Designer 22 的测试,遭遇过批量更改器件标号后原理图同 PCB 没有实现同步的情…

2026-05-24

经本人实际测试Cadence 17.4版本,曾遭遇诸多新手通常会碰到的难题,像是原理图与PCB库无法建立关联…

2026-05-24

自我实际测试DDR3 – 1600高速电路设计,经历跨过信号反射以及串扰的坑,新手依照下面步骤逐个…

2026-05-23

这次是自己本人实际测试的RT – AC86U路由器,其固件版本是3.0.0.4.386_48260,之前曾踩过因飞…

2026-05-23

本人实际测试了立创EDA专业版V7.1,和嘉立创打样回来的双面板,踩过二极管装反直接冒烟的火坑,也踩…

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

870555860

客服电话

173-5410-9521

客服邮箱

xiciw@qq.com

扫描二维码

手机访问本站

头部图片
弹窗背景

PCB+嵌入式硬件5月实训预约报名

为助力学员快速掌握 PCB + 嵌入式硬件核心技能,精准匹配电子行业热门岗位需求,直通高薪就业赛道、打通职场晋升通道,2026 年 5 月 PCB + 嵌入式硬件实训课现已正式开启预约报名!老学员推荐报名可享专属惊喜福利,诚邀各位踊跃参与!

立即报名 我知道了