在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5974|回复: 6

[求助] 关于vivado缓解congestion的策略

[复制链接]
发表于 2019-1-21 14:07:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
最近跑的工程比较大,congestion比较严重,出来的时序经常很差。这里贴一个xilinx论坛里关于congestion的帖子:Vivado Congestion,不知道大家还有没有别的什么招。
 楼主| 发表于 2019-1-22 09:21:11 | 显示全部楼层
回复 1# IC.Michael

贴一个链接,关于时序检查优化的:
   UltraFast设计法实践(1) -- 初始设计检查
 楼主| 发表于 2019-2-27 16:05:01 | 显示全部楼层

一、CLB、LUT、SRL、slice

Xilinx器件的基本逻辑单元是slice。

1)CLB(ConfigurableLogic Block)--含2个Slice 或1个Slice和1个slicem;

2)每个Slice--含4个6-输入LUT,  8个flip-flops (Slicem用LUTs作为专属RAM【1LUT=64*1】或者移位寄存器SRL【1LUT=32bit SRL】),另还有专属高速进位逻辑,宽位选择器。

3)LUT的本质是RAM,可以把多输入的地址当成输入,通过查表的形式得到逻辑输出。所以Slice里的资源也可以是分布存储和移位寄存器。


二、分布式RAM与Block RAM

分布式RAM:

特点:位宽不限,可以很大,深度很小,适用于小型的RAM设计,特别是深度较小,位宽较大的设计需求;

缺点:不能跨时钟;

Block RAM :

特点:端口位宽受限,深度可以很深,可跨时钟域设计,适用于端口位宽较小,深度需求较大的设计;


三、CLB

Xilinx器件的基础单元,中文名为可配置逻辑块。 Xilinx的CLB是在FPGA内实现大部分逻辑的地方,CLB是由slice组成的。

设计注意点:

1、CLB进位链做得比较好,因此做大位宽数据的加法比较好;

2、CLB做MUX时不要做太大,时序不好,建议MUX多打几拍流水;


四、SRL

SRL:移位寄存器,延迟可动态配置


五、Block RAM

最小单元为18k,位宽最大为36bit

对应地,36k的Block RAM的位宽为72bit

多个RAM可以合成使用,RAM可以拼位宽、深度,从时序角度分析,拼位宽比较好;

若RAM输入输出的数据位宽不等,且需要拼RAM使用,最好采用原语,或者在软件界面生成IPcore。

遗留任务:

1、将RAM通用CBB中的BRAM_SDP_MACRO替换成RAM模块(MARCO是一个中间层,是RAM较高一级的封装)

2、将FIFO通用CBB中的RAM替换成FIFO36E1/FIFO18E1


六、DSP48E

进位链:主要用于大位宽的乘法、加法;

17bit位移:主要在进行大位宽乘法时,用于高位的数据位移;

patterndetect:主要用于符号位比较,溢出饱和判断,用来溢出保护作用;

DSP48E输入输出最好各打一拍,时序比较好,可以跑到较高的速率;特殊情况下,输出最好打一拍,特别是对于利用DSP48E做累加计算,则必须要打一拍,否则会出现功能错误;


七、多die设计


1、多die器件设计原则:

(1)尽可能减少跨DIE信号数量;

(2)跨DIE信号频率尽量低,尽可能降低跨DIE信号的时序要求;

(3)跨DIE信号发端和收端必须是寄存器。推荐收发两端各两拍寄存器。

(4)IO管脚分布充分考虑全局逻辑方案,严格避免出现高速数据总线信号跨DIE;

(5)跨DIE处理部分推荐独立成module,与功能模块分开,便于添加约束文件;

(6)一级模必须增加pblock约束,使模块按照设计意图在指定DIE内布局布线;

(7)高速跨DIE信号,可通过额外的布线约束满足时序。包括:发端寄存器约束成laguna寄存器(跨带提升时序用的专用寄存器);clockregion约束;plock约束;小工程反标;

(8)复位信号现在CPU时钟域下进行分DIE处理,再传输到各个DIE内进行独立的同步化处理。


                               
登录/注册后可看大图

 楼主| 发表于 2019-2-27 16:07:47 | 显示全部楼层
回复 3# IC.Michael


   贴一个帖子,感觉自己以前做工程真的是啥都不懂,下了时序约束跑就是了,其实还有很多需要注意的细节,需要关注器件的特性。
 楼主| 发表于 2019-3-26 22:38:38 | 显示全部楼层
今天学习了一招:vivado -mode batch -source xxx.tcl 定制一些特殊的流程以及优化条件
发表于 2022-3-1 22:01:38 | 显示全部楼层
thanks alot.
very helpful
发表于 2022-3-1 22:05:23 | 显示全部楼层
thanks alot.
very helpful
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-16 18:50 , Processed in 0.023742 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表