新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于高阻態和OOC(out of context)綜合方式

        關于高阻態和OOC(out of context)綜合方式

        作者: 時間:2017-10-11 來源:網絡 收藏

        Vivado工具支持僅將系統設計的一部分進行綜合,即(out of context)綜合方式。綜合方式的流程就是將設計的某個模塊單獨完成綜合操作,這會帶來如下可能性:

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

        通過綜合實現這個模塊的快速迭代,不用綜合系統的其余部分整個設計的迭代也更快了

        利于系統其余部分的快速迭代,如果某部分確定穩定不變了,可以對這個模塊進行綜合操作,保留這個綜合版本,這樣就可以方便迭代其余部分

        某個模塊的改變只需要再對此模塊進行綜合即可,節省的時間用于模塊功能設計

        OOC綜合方式非常適合IP核的設計,我們可以將自己的IP核采用OOC方式進行綜合然后使用綜合后的輸出結果

        這意味著當我們使用IP核時我們不需要在進行IP核的綜合操作,就可以完善系統設計

        然而如果設計中存在三態(),OOC綜合操作就會受到影響

        FPGA僅支持I/O輸出端口的,在器件內部是不允許的

        如果你使用OOC綜合方式,Vivado工具并不知道某個具體的信號是連接I/O輸出還是在器件內部進行連接

        最后,綜合工具會將這個高阻信號轉換為某個邏輯值,而不是最為進行綜合

        舉個例子,下面的代碼就會帶來不好的影響:
        assign my_signal = enable?din1:1’bz;

        通過OOC方式綜合后,my_signal信號值就不會是高阻值Z了

        Vivado綜合有兩個選擇:
        1. 綜合操作完全符合HDL代碼
        (當這個模塊單元與其余部分有連接時,如果這個信號會最為I/O輸出,那么就不會有什么影響)
        2. 不保留三態

        Vivado工具會選擇第2項,原因是有可能出現任何問題之前最好讓用戶知道

        這種OOC使用模式比較受到IP開發者的歡迎,但是如果IP集成到大型系統中出現問題就比較麻煩了,因此應該避免第1項

        這同時也會給我們帶來如下問題:
        如果my_signal信號只連接到外部輸出I/O呢?
        舉個例子,所有可用的情況下my_signal都連接到I/O接口,我想讓它驅動一個三態
        我也希望能夠使用OOC方式對這部分模塊進行綜合——同時保留三態

        滿足上述需求的方式就是在RTL中實例化一個三態緩存(buffer)

        具體如下所示:
        OBUF u1(.l(din1), .T(n_enable), .O(my_signal));

        這樣就能夠保證即使采用OOC綜合方式,my_signal也會保持三態值

        同時,如果該模塊與其他部分有連接,那么這個連接也是不可用的(例如my_signal信號與“內部”模塊有連接),綜合過程會報錯



        關鍵詞: 高阻態 OOC Xilinx

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 林甸县| 连平县| 黎城县| 交口县| 利津县| 弋阳县| 印江| 洪泽县| 鹤庆县| 桃源县| 雅江县| 康保县| 青阳县| 大埔县| 罗甸县| 景谷| 阿克陶县| 嫩江县| 缙云县| 藁城市| 塘沽区| 馆陶县| 镇坪县| 沙坪坝区| 遂溪县| 嘉善县| 隆尧县| 咸阳市| 象州县| 北碚区| 临漳县| 广州市| 普陀区| 中卫市| 盘山县| 湖北省| 新疆| 抚顺县| 伊宁县| 阿拉善左旗| 革吉县|