0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

開發(fā)板KC705設(shè)計中涉及到兩個時鐘域問題

FPGA之家 ? 來源:XILINX開發(fā)者社區(qū) ? 作者:賽靈思開發(fā)者 ? 2021-08-26 10:48 ? 次閱讀

Q1

背景:

軟件 vivado2018.2

開發(fā)板 KC705

設(shè)計中涉及到兩個時鐘域(外部提供的238MHz時鐘和200MHz板上時鐘)

問題:

布局布線后的時序分析結(jié)果顯示:intra-clock path的setup時序違例,查看具體路徑的時序信息,發(fā)現(xiàn)數(shù)據(jù)路徑上有一個net延時高達(dá)8.6ns導(dǎo)致了時序違例。然后在device中看到這個net布線繞路了,看起來是擁塞所致,可是查看擁塞報告又顯示擁塞度很小。

而且第一幅圖中的幾個setup違例,幾乎都包含了這個net,所以是集體違例了。

下圖是這條net所在的電路,做好標(biāo)記后,在device中查看具體布線情況。

下圖是device視圖,可見FDCE和LUT3挨得很近,但是他們之間的走線卻繞了很遠(yuǎn)!上網(wǎng)查過,說可能是擁塞的原因。

于是查看了布局布線后的擁塞報告以及復(fù)雜度報告。。

看起來擁塞程度和復(fù)雜度程序都不算大,為什么net繞線很嚴(yán)重呢?

為了解決這個問題,我做了兩個嘗試:

1)將synthesis中的“no_lc*”選項(xiàng)勾選,取消LUT合并。

2)將implementation中的策略設(shè)置為congestion_spreadlogic_high。

但是這樣做之后setup時序依舊違例。

所以具體是什么問題導(dǎo)致的呢?

時序分析結(jié)果中,還有好幾項(xiàng)與上述信號同module的跨時鐘域的setup違例,有沒可能是因?yàn)闆]有將這些跨時鐘域路徑set false path的原因呢?

A1

你提到的時序有問題的路徑本身沒有問題,主要原因是你沒有對異步跨時鐘路徑作有效的隔離。一旦去掉這些異步跨時鐘路徑的分析,之前提到的路徑就會正常布線了. (在邏輯上需要保障這些路徑上數(shù)據(jù)傳遞的正確性:握手信號或者是異步FIFO)

最后一條路徑是PLL時鐘直接連接寄存器D端導(dǎo)致的,全局時鐘信號一般只連Cell 的C/CLK 端. 能否通過代碼修改掉這種結(jié)構(gòu)?

主時鐘建立的對象要盡量是端口,而不是pll的輸入 pin腳

Ex: 時鐘 clk_wiz_119MHz_inst/inst/clk_in1 (對象應(yīng)該是get_ports clk_ab_p )

Q2

是不是因?yàn)闆]有隔離時鐘,所以系統(tǒng)占用了大量的布線資源去盡量滿足這些跨時鐘的setup和hold,導(dǎo)致有些net只能繞路了呢?

A2

是的,Vivado是timing driven的工具,意味著會盡力對slack最差的路徑做修復(fù),浪費(fèi)了大量資源以及runtime. 其他net或者繞路,或者已經(jīng)提前放棄,不作努力了.

Q3

如果隔離了時鐘,那么布局布線工具對待跨時鐘域的信號是不是就直接布線(比如走最近的路線),完全不去考慮setup和hold這些是否滿足條件了?

A3

是的,如果加了忽略時鐘的約束,那么布局布線工具對待跨時鐘域的信號就直接布線,完全不去考慮setup和hold要求,因?yàn)楦緵]有這些要求.

同時請注意之前提到的一點(diǎn):在邏輯上需要保障這些異步時鐘域路徑上數(shù)據(jù)傳遞的正確性:考慮握手信號或者是異步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]]

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 時鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1740

    瀏覽量

    131625
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5090

    瀏覽量

    97800

原文標(biāo)題:本周一問 | 數(shù)據(jù)路徑的net延時過大導(dǎo)致setup時序違例

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    哪里可以找到KC705開發(fā)板的REV編號?

    時,在配置的第一頁(PCIE-BASICS),它顯示了用于哪個版本KC705?它有三選項(xiàng):KC705 REVA,KC705 REVB和
    發(fā)表于 09-23 13:26

    如何實(shí)現(xiàn)kc705以太網(wǎng)10千兆位設(shè)計?

    上沒有此頻率的輸入。我主要看兩個選擇: - 通過FPGA內(nèi)的MMCM生成這個時鐘(我讀過它不是好主意) - 使用電路上的SI5324抖
    發(fā)表于 09-27 09:51

    [xilink KC705] 通過FMC轉(zhuǎn)USB3.0 識別KC705的問題

    port并沒有設(shè)置成類似U盤那種數(shù)據(jù)傳輸或者存儲模式。另一方向是xilinx官網(wǎng)提供的USB2.0的demo應(yīng)用固件不適配USB3.0。希望能獲得一些解答或者提示。PS: 剛接觸FPGA開發(fā)板,希望涉及到的相關(guān)概念通俗一點(diǎn)。
    發(fā)表于 01-17 16:47

    KC705評估錯誤的解決辦法?

    嗨,我在KC705上發(fā)現(xiàn)了一錯誤。它產(chǎn)生200MHz差分時鐘,由SIT9102用于DDR3,電壓為2.5V。但是,HP BANK的VCCO僅為1.5V。它是否匹配?但在VC709主
    發(fā)表于 07-25 11:00

    AD7980 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計

    AD7980 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計
    發(fā)表于 04-26 14:00 ?9次下載
    AD7980 FMC-SDP轉(zhuǎn)接器和評估<b class='flag-5'>板</b>/Xilinx <b class='flag-5'>KC705</b>參考設(shè)計

    CN0204 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計

    CN0204 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計
    發(fā)表于 05-16 09:56 ?11次下載
    CN0204 FMC-SDP轉(zhuǎn)接器和評估<b class='flag-5'>板</b>/Xilinx <b class='flag-5'>KC705</b>參考設(shè)計

    AD5449 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計

    AD5449 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計
    發(fā)表于 05-19 14:14 ?6次下載
    AD5449 FMC-SDP轉(zhuǎn)接器和評估<b class='flag-5'>板</b>/Xilinx <b class='flag-5'>KC705</b>參考設(shè)計

    AD5780 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計

    AD5780 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計
    發(fā)表于 05-19 18:21 ?8次下載
    AD5780 FMC-SDP轉(zhuǎn)接器和評估<b class='flag-5'>板</b>/Xilinx <b class='flag-5'>KC705</b>參考設(shè)計

    AD9671評估、ADC-FMC轉(zhuǎn)接器和Xilinx KC705參考設(shè)計

    AD9671評估、ADC-FMC轉(zhuǎn)接器和Xilinx KC705參考設(shè)計
    發(fā)表于 05-19 18:29 ?2次下載
    AD9671評估<b class='flag-5'>板</b>、ADC-FMC轉(zhuǎn)接器和Xilinx <b class='flag-5'>KC705</b>參考設(shè)計

    AD9833 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計

    AD9833 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計
    發(fā)表于 05-20 14:05 ?11次下載
    AD9833 FMC-SDP轉(zhuǎn)接器和評估<b class='flag-5'>板</b>/Xilinx <b class='flag-5'>KC705</b>參考設(shè)計

    AD7658-1 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計

    AD7658-1 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計
    發(fā)表于 05-22 09:57 ?7次下載
    AD7658-1 FMC-SDP轉(zhuǎn)接器和評估<b class='flag-5'>板</b>/Xilinx <b class='flag-5'>KC705</b>參考設(shè)計

    AD7656-1 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計

    AD7656-1 FMC-SDP轉(zhuǎn)接器和評估/Xilinx KC705參考設(shè)計
    發(fā)表于 05-22 12:33 ?12次下載
    AD7656-1 FMC-SDP轉(zhuǎn)接器和評估<b class='flag-5'>板</b>/Xilinx <b class='flag-5'>KC705</b>參考設(shè)計

    KC705開發(fā)板英文使用手冊

    KC705開發(fā)板英文使用手冊
    發(fā)表于 11-01 10:19 ?5次下載

    KC705開發(fā)板原理圖

    KC705開發(fā)板原理圖免費(fèi)下載。
    發(fā)表于 11-01 10:17 ?8次下載

    KC705原理圖

    XILINX KC705開發(fā)板原理圖
    發(fā)表于 01-15 14:46 ?0次下載