新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 業(yè)界動態(tài) > 在賽靈思FPGA設(shè)計中保留可重復(fù)結(jié)果

在賽靈思FPGA設(shè)計中保留可重復(fù)結(jié)果

作者: 時間:2011-04-29 來源:電子產(chǎn)品世界 收藏

  滿足設(shè)計的時序要求本身已非易事,而要實現(xiàn)某項設(shè)計的整體時序具有完全可重復(fù)性有時候卻是不可能的任務(wù)。幸運的是,設(shè)計人員可以借助有助于實現(xiàn)可重復(fù)時序結(jié)果的設(shè)計流程概念。影響最大的四個方面分別是 HDL 設(shè)計實踐、綜合優(yōu)化、平面布局和實施方案。

本文引用地址:http://www.butianyuan.cn/article/119148.htm

  就獲得可重復(fù)結(jié)果而言,資源利用和頻率要求都很高的設(shè)計是最大的挑戰(zhàn)。它們也是可重復(fù)結(jié)果流程需求最高的設(shè)計。得到可重復(fù)結(jié)果的第一步是在 HDL設(shè)計階段運用設(shè)計合理的實踐。遵循出色的分層邊界實踐有助于保持邏輯整體性,而這在設(shè)計變更時有助于保持可重復(fù)結(jié)果。一條不錯的規(guī)則就是把那些需要整體優(yōu)化、實施和驗證的邏輯放在同一層級。另外需要記錄模塊的輸入和輸出。這樣就可以把時序路徑保持在模塊內(nèi)部,從而避免模塊改變時引起相互影響。最后,把所有需要放入更大 資源 (如 Block RAM 或 DSP)的邏輯全部設(shè)置在相同層級。

  邏輯電平

  從所需 QoR 結(jié)果需要太多查詢表(LUT) 邏輯電平的設(shè)計很難獲得可重復(fù)結(jié)果。LUT 延遲一般不是問題所在,而問題是 LUT 之間的路由延遲。這在設(shè)計的高性能領(lǐng)域至關(guān)重要。

  邏輯電平過多往往歸因于 i f /else結(jié)構(gòu)較大和選擇語句較長。如果合適,可以采用 “ful l_case”和 “paral lel_case” Veri log 指令優(yōu)化較少邏輯的選擇語句,這種技巧一般能夠減少邏輯電平。較大的多路復(fù)用器或者解碼器可能造成路由擁塞,從而導(dǎo)致不可重復(fù)的結(jié)果。多級注冊多路復(fù)用器 / 解碼器路徑有助于解決此問題。對于加算器而言,用注冊的加算器鏈代替注冊加算器樹可以提高性能。如果加算器全部注冊的話,則鏈會比樹造成更長時延。有關(guān)編碼最佳實踐的更多信息, 請參考賽靈思白皮書 《提高設(shè)計性能的 HDL 編碼實踐》 (WP231), http://www.xilinx.com/support/documentation/white_papers/wp231.pdf。

  復(fù)位與其他控制信號

  復(fù)位的選擇會影響到設(shè)計的性能、面積和功率。加電時電路初始化并不需要全局復(fù)位,但是它會對設(shè)計過程中能夠采用的資源類型產(chǎn)生重大影響。如果在 HDL 中存在全局復(fù)位,則無法推斷移位寄存器。一個移位寄存器產(chǎn)生的可重復(fù)結(jié)果比十個寄存器還多。

  另外,DSP 和塊 RAM 寄存器僅僅包含同步復(fù)位。如果編碼中包含異步復(fù)位,則無法使用此類寄存器,從而迫使設(shè)計中轉(zhuǎn)而使用可配置邏輯塊 (CLB)寄存器。而把寄存器放入 DSP、塊 RAM 或者同時放入二者中更容易保持相同結(jié)果。在一般邏輯中運用同步重置可減少邏輯電平。slice 寄存器能擁有異步或同步復(fù)位。如果設(shè)計采用同步復(fù)位,那么組合邏輯就可以采用同步置位。這樣就可以降低一個 LUT 的邏輯電平。

  一個控制置位包含一組獨特的時鐘、時鐘啟用、置位與復(fù)位信號,而且在分布式 RAM 中還包含可寫入信號。控制置位信息非常重要,因為寄存器必須共享封裝在同一片中的同一控制置位信號。這可能影響封裝和利用率, 造成可重復(fù)結(jié)果問題。有關(guān)復(fù)位的更多信息,請參閱賽靈思 WP272 《復(fù)位訣竅: 考慮局部而非全局》 (http://www.xilinx.com/support/documentation/white_papers/wp272.pdf) 。有關(guān)控制置位的更多信息,請參閱WP309 《Spartan®-6 定向與重定向指南》 (http://www.xilinx.com/support/documentation/white_papers/wp309.pdf ) 。盡管此白皮書專用于 Spartan-6器件,但其中還包含了適用于所有 的有益通用信息。

  了解FPGA資源

  了解什么樣的 FPGA 資源可用以及何時是最佳利用時機(jī)至關(guān)重要。一般會有綜合指令來定義使用哪些資源。例如,塊 RAM 最適合深存儲器 (deepmemory)需求,而分布式 RAM 適用于寬總線,尤其是在局部時鐘為高速數(shù)據(jù)計時的情況下。塊 RAM 和分步式 RAM在控制信號具有較大扇區(qū)出時會出現(xiàn)某種問題。重復(fù)控制信號并且采用布局規(guī)劃技巧把塊與相同信號融合在一起有助于維持可重復(fù)結(jié)果。

  移位寄存器會降低設(shè)計的利用率,而其能夠促進(jìn)可重復(fù)性。有一些性能問題值得注意。SRL 的時鐘到輸出比觸發(fā)器的時鐘到輸出慢; 因此,最好把觸發(fā)器用作移位寄存器的最后一級。大部分綜合工具都能自動實現(xiàn)這一點,但是,如果涉及移位寄存器的路徑出現(xiàn)問題,則最好確認(rèn)其最后一級是否為寄存器。

  初始寄存器也存在類似問題。SRL前端設(shè)置觸發(fā)器能讓放置器有更多選以擇滿足時序要求,進(jìn)而維持結(jié)果。同樣,大部分綜合工具都能自動實現(xiàn)這一點,但是,如果涉及移位寄存器的路徑出現(xiàn)問題,則最好確認(rèn)其最后一級是否為寄存器。

  FPGA 有許多寄存器,從而使得流水線技術(shù)可在提高性能方面發(fā)揮重要作用。其中,重要的一點是禁用經(jīng)多重流水線優(yōu)化的觸發(fā)器 SRL 推論。上文引用的關(guān)于 HDL 編碼實踐的白皮書 (WP231)提供了關(guān)于塊 RAM 的更多信息。有關(guān)移位寄存器的更多信息,請參閱 WP271 《借助 SRL16E 節(jié)約成本》 (http://www.xi l inx.com/support/docume n t a t i o n /wh i t e _ p a p e r s /wp271.pdf ) 。

  時鐘域問題

  設(shè)計人員必須慎重正確約束跨越不相關(guān)時鐘域的路徑。相關(guān)工具會自動關(guān)聯(lián)來自相同源時鐘 (如 DCM)的時鐘。PERIOD 約束條件也能關(guān)聯(lián)外部時鐘。不是器件內(nèi)部創(chuàng)建的無關(guān)時鐘需要特殊考慮。系統(tǒng)默認(rèn)不約束此類時鐘。如果有特殊時序考慮,設(shè)計人員必須采用FROM:TO 約束條件正確約束相關(guān)路徑。DATAPATHONLY 關(guān)鍵詞會指示相關(guān)工具在等式中不包含時鐘偏移。

  更多信息,請參閱 UG625 《賽靈思約束條件指南》 (http://www.xilinx.com/support/documentation/ sw_manuals/xi l inx11/cgd.pdf)或者 WP257 《何為PERIOD 約束條件?》 (http://www.xilinx.com/support/documentation/ white_papers/wp257.pdf)之中的 “異步時鐘域”章節(jié)。

  另外關(guān)鍵一點是確保不發(fā)生競態(tài)狀態(tài)。從一個領(lǐng)域跨越另一個領(lǐng)域時可以采用 FIFO。否則,設(shè)計人員需要雙重同步一個 (僅有一個)控制信號,并且在接收時鐘域利用其接收其它信號。


上一頁 1 2 3 4 下一頁

關(guān)鍵詞: Xilinx FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉