<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

            高扇出信號(hào)

          本文引用地址:http://www.ex-cimer.com/article/119148.htm

            高扇出信號(hào)通常會(huì)成為設(shè)計(jì)中的決定因素。即使大部分綜合工具支持扇出控制,在 HDL 中復(fù)用這些信號(hào)來(lái)得到可重復(fù)性更高的結(jié)果也是明智之舉。設(shè)計(jì)人員應(yīng)該把這種策略和指令結(jié)合起來(lái),以確保綜合工具不會(huì)移除這些重復(fù)信號(hào)。如果一個(gè)高扇出信號(hào)位于邏輯頂層,則可以復(fù)用該信號(hào),然后用單獨(dú)信號(hào)驅(qū)動(dòng)每一個(gè)頂層模塊。

            如果綜合工具扇出控制不能得到預(yù)期結(jié)果并且無(wú)法修改 HDL,那么在BRAM 的 MAP 邏輯中采用寄存器復(fù)用約束條件以及最高扇出約束條件,往往會(huì)產(chǎn)生比綜合更好的寄存器復(fù)用選擇。更多相關(guān)信息,請(qǐng)參閱 《約束條件指南》(UG625) 中的 MAX_FANOUT。做為一個(gè)常見(jiàn)的調(diào)試問(wèn)題,跨越層級(jí)時(shí)保持一致的信號(hào)名稱更便于追蹤存在問(wèn)題的路徑。如果信號(hào)名稱經(jīng)常改變,則很難追蹤時(shí)序報(bào)告和其它調(diào)試輸出。把信號(hào)方向放入所有模塊或?qū)嶓w的端口定義中也有所裨益。

            綜合優(yōu)化

            綜合會(huì)對(duì)可重復(fù)結(jié)果產(chǎn)生巨大影響。如果從綜合過(guò)程得不到最佳輸出網(wǎng)表,就無(wú)法在實(shí)施工具中產(chǎn)生理想條件。設(shè)計(jì)人員可以采用多種綜合技術(shù)幫助改善實(shí)施結(jié)果。

            在執(zhí)行綜合時(shí)采用時(shí)序約束條件至關(guān)重要。用戶往往會(huì)在綜合過(guò)程中過(guò)度約束,然后在賽靈思實(shí)施工具中放寬時(shí)序約束條件。這樣可以增加綜合工具負(fù)擔(dān), 從而減輕實(shí)施工具的負(fù)擔(dān)。

            接下來(lái)使用綜合工具產(chǎn)生的時(shí)序報(bào)告。如果一條路徑在綜合與實(shí)施過(guò)程中無(wú)法滿足時(shí)序要求,則可以修改 HDL或綜合選項(xiàng),以便在綜合之后滿足時(shí)序要求。這樣可以在實(shí)施階段節(jié)約時(shí)間。

            在綜合過(guò)程中得到可重復(fù)結(jié)果是在實(shí)施工具中得到可重復(fù)結(jié)果的最佳途徑。大多數(shù)綜合工具支持自下而上的流程,其為設(shè)計(jì)的頂層以及各個(gè)下層模塊建立了獨(dú)立綜合項(xiàng)目。用戶可以根據(jù)HDL 變更情況控制更新網(wǎng)表。大多數(shù)商用綜合工具都具有增量流程。

            平面布局規(guī)劃的重要性

            平面布局規(guī)劃把組件定位到設(shè)計(jì)中的一個(gè)具體位置或者范圍。這可以減少布局變化,從而提高設(shè)計(jì)的可重復(fù)性。通過(guò)平面布局規(guī)劃或者采用位置約束 (或兼而用之)通??梢詫?shí)現(xiàn)更高的性能。

            也就是說(shuō),糟糕的平面布局規(guī)劃或位置約束會(huì)導(dǎo)致無(wú)法達(dá)到時(shí)序要求。平面布局規(guī)劃有一定技術(shù)含量,要求具備工具和設(shè)計(jì)方面的高級(jí)知識(shí)。你可以采用符合時(shí)序要求的實(shí)施結(jié)果做為指導(dǎo)原則來(lái)創(chuàng)建理想的布局。

            如果主板需求是選擇引腳布局的

            主要因素, 實(shí)施工具可能很難獲得時(shí)序維持可重復(fù)結(jié)果。但是設(shè)計(jì)人員可以借助多種有助于實(shí)現(xiàn)可重復(fù)性的技巧。

            首先要清楚數(shù)據(jù)流。比如,數(shù)據(jù)會(huì)從中心 I/O 流向側(cè) I/O。可以把與總線相關(guān)的所有引腳保持在 的同一領(lǐng)域,以此限制控制信號(hào)的布線距離。I/O總線控制信號(hào)布置在相關(guān)地址與數(shù)據(jù)總線附近。需要一起優(yōu)化的信號(hào)應(yīng)當(dāng)布置在一起。如果更關(guān)注主板布線,則在 I/O上利用流水線技術(shù)優(yōu)化寄存器有助于改進(jìn)引腳布局差強(qiáng)人意的 布線。

            區(qū)域組平面布局規(guī)劃

            區(qū)域組平面布局規(guī)劃是一種高級(jí)平面布局規(guī)劃技術(shù),其定義了模塊在FPGA 之內(nèi)的位置。雖然該技術(shù)易于使用, 但常常被誤用, 從而導(dǎo)致所解決的問(wèn)題比所造成問(wèn)題更多這一糟糕平面布局結(jié)果。有一些出色平面布局規(guī)劃的總體指導(dǎo)原則可以幫助您避免走入上述誤區(qū)。應(yīng)當(dāng)使所有區(qū)域組保持相似的利用率。比如,應(yīng)避免讓一個(gè)分組利用率達(dá)到 60% 而讓另一個(gè)達(dá)到 99%。不要重疊區(qū)域組。唯一的例外情況是,如果兩個(gè)不同的區(qū)域組具有需要布置在一起的某些邏輯單元 , 則允許重疊 CLB 的一、兩行或列。此時(shí)用戶負(fù)責(zé)確保為兩個(gè)區(qū)域組約束提供足夠資源。

            如果需要把設(shè)計(jì)的兩個(gè)不同邏輯部分放在相同物理位置,則應(yīng)當(dāng)把它們放入同一個(gè)區(qū)域組。一般允許一層嵌套,也就是父區(qū)域組中的一個(gè)子區(qū)域組。如果一個(gè)大區(qū)域組里的一小部分需要布置到某個(gè)狹窄區(qū)域, 則需要上述分層。僅對(duì)設(shè)計(jì)中的關(guān)鍵部分進(jìn)行平面布局規(guī)劃而讓相關(guān)工具決定非關(guān)鍵邏輯的布局非常重要。連接到固定資源 (如 I/O、收發(fā)器或處理器塊)的邏輯可能會(huì)從平面布局規(guī)劃中受益??梢圆捎庙樌麑?shí)施的結(jié)果做為準(zhǔn)則來(lái)確定布局或時(shí)序問(wèn)題。諸如賽靈思 PlanAhead ™軟件 (圖 1)和時(shí)序分析器等工具有助于可視化顯示相關(guān)問(wèn)題。

            盡可能減少各個(gè)全局時(shí)鐘所用區(qū)域數(shù)量以及各個(gè)區(qū)域的時(shí)鐘 (區(qū)域與全局)數(shù)量一般會(huì)有所裨益。如果您準(zhǔn)備為某個(gè)時(shí)鐘域的增加更多邏輯,切勿過(guò)度約束,而應(yīng)當(dāng)進(jìn)行相應(yīng)規(guī)劃。如果某個(gè)時(shí)鐘域的時(shí)鐘全部投入使用,則很難找到有效布局。而 PlanAhead 軟件所提供的對(duì)齊時(shí)鐘域功能可以簡(jiǎn)化上述平面布局規(guī)劃工作。對(duì)于擁有 10 多個(gè)時(shí)鐘域的Virtex® FPGA 設(shè)計(jì)而言,當(dāng)前實(shí)施方案所用的時(shí)鐘域位于 .map 報(bào)告文件中, 同時(shí)還附帶了 UCF 約束條件。



          關(guān)鍵詞: Xilinx FPGA

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();