新聞中心

        FPGA時(shí)序收斂分析

        作者: 時(shí)間:2012-08-01 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/148674.htm

        程序

          某些設(shè)計(jì)采用單個(gè)主時(shí)鐘的分割版本來處理反序列化數(shù)據(jù)。以下 VHDL 代碼(nibble_proc進(jìn)程)舉例說明了按系統(tǒng)時(shí)鐘頻率的四分之一采集的數(shù)據(jù)。

          

        程序

          

        程序
        看起來好像一切都已經(jīng)同步化,但是 nibble_proc 采用乘積項(xiàng) divide_by_4 對來自時(shí)鐘域sys_clk_bufg 的 nibble_wide_data 進(jìn)行采樣。由于路由延遲,divde_by_4 與 sys_clk_bufg 之間并無明確的相位關(guān)系。將 divide_by_4 轉(zhuǎn)移到 BUFG 也于事無補(bǔ),因?yàn)榇诉M(jìn)程會(huì)產(chǎn)生路由延遲。解決方法是將 nibble_proc 保持在 sys_clk_bufg 域,并且采用 divide_by_4 作為限定符,如下所示。

          

        程序

          約束的重要性

          如果您希望自己的邏輯正確運(yùn)行,則必須采用正確的約束。如果您已經(jīng)慎重確保代碼全部同步且注冊了全部 I/O,則這些步驟可以顯著簡化。在采用上述代碼并且假定系統(tǒng)時(shí)鐘為100MHz 時(shí),則只需四行代碼就可以輕松完成時(shí)序約束文件,如下所示:

          

          請注意:賽靈思 中 I/O 注冊邏輯的建立與保持時(shí)間具有很高的固定性,在一個(gè)封裝中切勿有太大更改。但是,我們?nèi)匀徊捎盟鼈儯饕米骺纱_保設(shè)計(jì)符合其系統(tǒng)參數(shù)的驗(yàn)證步驟。

          三步簡單操作

          僅需遵循以下三步簡單操作,設(shè)計(jì)人員即可輕松實(shí)施可靠的代碼。

          • 切勿讓綜合工具猜測您的預(yù)期。采用賽靈思原語對所有 I/O 引腳和關(guān)鍵邏輯進(jìn)行明確定義。確保定義 I/O 引腳的電氣特性;

          • 確保邏輯 100% 同步,并且讓所有邏輯參考主時(shí)鐘域;

          • 應(yīng)用時(shí)序約束確保時(shí)序

          只要遵循上述三個(gè)步驟,您就能夠消除綜合與時(shí)序?qū)е碌牟町悺叱@兩個(gè)主要障礙會(huì)讓您獲得具有 100% 可靠性的代碼。


        上一頁 1 2 3 下一頁

        關(guān)鍵詞: 分析 收斂 時(shí)序 FPGA

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 新密市| 白山市| 正镶白旗| 五寨县| 砚山县| 临邑县| 陆良县| 太白县| 林口县| 尚义县| 分宜县| 蒙阴县| 保靖县| 当雄县| 阿拉尔市| 南昌县| 南靖县| 商都县| 赤城县| 德江县| 沅江市| 石景山区| 铜川市| 新沂市| 临洮县| 麟游县| 通河县| 昭通市| 珲春市| 平果县| 宁河县| 应城市| 彰化县| 通化县| 福鼎市| 桓台县| 莱阳市| 利辛县| 惠东县| 开封县| 于都县|