0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发板KC705设计中涉及到两个时钟域问题

FPGA之家 来源:XILINX开发者社区 作者:赛灵思开发者 2021-08-26 10:48 次阅读

Q1

背景:

软件 vivado2018.2

开发板 KC705

设计中涉及到两个时钟域(外部提供的238MHz时钟和200MHz板上时钟)

问题:

布局布线后的时序分析结果显示:intra-clock path的setup时序违例,查看具体路径的时序信息,发现数据路径上有一个net延时高达8.6ns导致了时序违例。然后在device中看到这个net布线绕路了,看起来是拥塞所致,可是查看拥塞报告又显示拥塞度很小。

而且第一幅图中的几个setup违例,几乎都包含了这个net,所以是集体违例了。

下图是这条net所在的电路,做好标记后,在device中查看具体布线情况。

下图是device视图,可见FDCE和LUT3挨得很近,但是他们之间的走线却绕了很远!上网查过,说可能是拥塞的原因。

于是查看了布局布线后的拥塞报告以及复杂度报告。。

看起来拥塞程度和复杂度程序都不算大,为什么net绕线很严重呢?

为了解决这个问题,我做了两个尝试:

1)将synthesis中的“no_lc*”选项勾选,取消LUT合并。

2)将implementation中的策略设置为congestion_spreadlogic_high。

但是这样做之后setup时序依旧违例。

所以具体是什么问题导致的呢?

时序分析结果中,还有好几项与上述信号同module的跨时钟域的setup违例,有没可能是因为没有将这些跨时钟域路径set false path的原因呢?

A1

你提到的时序有问题的路径本身没有问题,主要原因是你没有对异步跨时钟路径作有效的隔离。一旦去掉这些异步跨时钟路径的分析,之前提到的路径就会正常布线了. (在逻辑上需要保障这些路径上数据传递的正确性:握手信号或者是异步FIFO)

最后一条路径是PLL时钟直接连接寄存器D端导致的,全局时钟信号一般只连Cell 的C/CLK 端. 能否通过代码修改掉这种结构?

主时钟建立的对象要尽量是端口,而不是pll的输入 pin脚

Ex: 时钟 clk_wiz_119MHz_inst/inst/clk_in1 (对象应该是get_ports clk_ab_p )

Q2

是不是因为没有隔离时钟,所以系统占用了大量的布线资源去尽量满足这些跨时钟的setup和hold,导致有些net只能绕路了呢?

A2

是的,Vivado是timing driven的工具,意味着会尽力对slack最差的路径做修复,浪费了大量资源以及runtime. 其他net或者绕路,或者已经提前放弃,不作努力了.

Q3

如果隔离了时钟,那么布局布线工具对待跨时钟域的信号是不是就直接布线(比如走最近的路线),完全不去考虑setup和hold这些是否满足条件了?

A3

是的,如果加了忽略时钟的约束,那么布局布线工具对待跨时钟域的信号就直接布线,完全不去考虑setup和hold要求,因为根本没有这些要求.

同时请注意之前提到的一点:在逻辑上需要保障这些异步时钟域路径上数据传递的正确性:考虑握手信号或者是异步FIFO

Q4

上面提到的“主时钟建立的对象尽量是pin脚,而不是pll的端口”,这句话是什么意思?是在写xdc文件的时候,尽量用get port做时钟约束的意思?

是不是意味着上面的set_clcok_group语句改成这样更合适:

set_clock_groups -asynchronous -name my_ASYNC -group {get_ports adc_clk_p} -group {get_clocks mmcm_clkout1}

A4

这里是指create_clock 约束中的对象是FPGA的PORT,而不是用Cell(如PLL的Pin).

Ex:正确的写法:

create_clock -name clk -period 10.000 [get_ports adc_clk_p]

推荐的写法:

create_clock -name clk -period 10.000 [get_pins clk_wiz_119MHz_inst/inst/plle2_adv_inst/CLKIN1]

在set_clock_groups中这么用get_ports adc_clk_p是不对的, 可以写成 [get_clocks -of [get_ports adc_clk_p]]

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130306
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93991

原文标题:本周一问 | 数据路径的net延时过大导致setup时序违例

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    哪里可以找到KC705开发板的REV编号?

    时,在配置的第一页(PCIE-BASICS),它显示了用于哪个版本KC705?它有三选项:KC705 REVA,KC705 REVB和
    发表于 09-23 13:26

    如何实现kc705以太网10千兆位设计?

    上没有此频率的输入。我主要看两个选择: - 通过FPGA内的MMCM生成这个时钟(我读过它不是好主意) - 使用电路上的SI5324抖
    发表于 09-27 09:51

    请问在Kintex 7(KC705)评估能使用没有PCIe的PCIe GTK端口吗?

    嗨,我想在Kintex 7(KC705)评估获得尽可能多的端口12GHZ。PCIe端口是Kintex 7(KC705)评估
    发表于 09-29 08:21

    [xilink KC705] 通过FMC转USB3.0 识别KC705的问题

    port并没有设置成类似U盘那种数据传输或者存储模式。另一方向是xilinx官网提供的USB2.0的demo应用固件不适配USB3.0。希望能获得一些解答或者提示。PS: 刚接触FPGA开发板,希望涉及到的相关概念通俗一点。
    发表于 01-17 16:47

    怎么使用kc705上的用户可编程时钟?

    我想在我的设计中使用kc705上的用户可编程时钟。我已阅读有关Si570编程的用户指南,但我想知道在调整时钟后是否会对电路进行编程会重置用户可编程
    发表于 03-27 10:36

    KC705的EEPROM接口问题

    我正在为KC705的EEPROM I2C接口工作。它看起来像“xiic_eeprom_example.c”代码在“while((TransmitComplete)||(XIic_IsIicBusy
    发表于 04-03 10:03

    怎么使用以太网和sma收发器实现两个kc705之间的连接?

    大家好!我是Verilog和FPGA编程的新手。我正在尝试使用以太网和sma收发器实现两个kc705之间的连接。对于以太网,我使用了Tri模式以太网mac IP核,对于板卡连接,我使用了7系列
    发表于 04-16 09:31

    使用提供的UCF文件用于KC705评估的问题如何解决

    我正在使用提供的UCF文件用于KC705评估:200MHz系统时钟(SYSCLK_P / N)指定为LVDS(1.8v)进入bank 33,其vcco为1.5V,我使用的LED设置为LVCMOS15。MAP不喜欢这样并抛出错误
    发表于 07-14 11:32

    如何通过KC705实现以下时钟多路复用功能吗?

    嗨,我尝试使用KC705来实现以下时钟Mux功能。CLK_P / CLK_N是KC705 200MHz参考时钟。但它总是报告FPGA实现过程
    发表于 07-21 14:27

    KC705评估错误的解决办法?

    嗨,我在KC705上发现了一错误。它产生200MHz差分时钟,由SIT9102用于DDR3,电压为2.5V。但是,HP BANK的VCCO仅为1.5V。它是否匹配?但在VC709主
    发表于 07-25 11:00

    如何从KC705的200 MHz VCO输出实现500 MHz时钟

    LogiCORE IP产品指南的第68页,他说:它是否适用于后置和路径时序仿真?如果在硬件中看到问题但在时序仿真中没有出现问题,则可能表明存在PCB问题。确保所有时钟源都处于活动状态且干净。因此,问题是:如何使用KC705
    发表于 08-24 06:29

    FMC插入器&Xilinx KC705参考设计

    FMC插入器&Xilinx KC705参考设计
    发表于 05-23 18:08 13次下载
    FMC插入器&Xilinx <b class='flag-5'>KC705</b>参考设计

    DC2226的KC705 FPGA源代码

    DC2226的KC705 FPGA源代码
    发表于 05-28 15:27 6次下载
    DC2226的<b class='flag-5'>KC705</b> FPGA源代码

    KC705开发板英文使用手册

    KC705开发板英文使用手册
    发表于 11-01 10:19 4次下载

    KC705开发板原理图

    KC705开发板原理图免费下载。
    发表于 11-01 10:17 5次下载