2017-09-16 94 views
0

我想用Yosys來實現連接的合成後處理。即,我想在合成過程完成後手動操作Verilog模塊之間的連接。Verilog連接的手動操作

我試着調查一段時間的代碼,我發現我需要創建一個實現我需要的確切功能的「Pass」結構的子類。

我需要找出如何操縱連接本身。所以,我需要知道「Design」結構是否包含用作工具輸入的Verilog設計表示。如果這是真的,我到底能在哪裏找到連接(哪些變量用於表示連接)?另外,如果我需要自動操作連接,我需要知道該工具如何爲每個連接分配特定名稱,以便我能夠實現自動化算法,該算法可以自動選擇要刪除的特定連接,或根據現有連接的名稱添加新連接。通過連接的名稱,我的意思是Yosys顯示的名稱,以便GraphViz用於以圖形方式呈現設計。

在此先感謝。 最好的問候

回答

0

我在哪裏可以找到連接(哪些變量用於表示連接)?

如果兩個模塊端口連接到相同的網絡或兩個相互連接的網絡(Module::connections()),則端口已連接。

SigMap類可以幫助您處理相互連接的導線情況。

我需要知道此工具如何具體名稱分配給每個連接

連接沒有名字。

電線有名稱。他們的名字來自HDL設計或自動生成(大多數情況下使用NEW_ID宏)。

如果你需要猜測一個自動生成的線的名稱,那麼你肯定是做錯了什麼。不幸的是你沒有確切地描述你正在嘗試做的,爲什麼你認爲你已經猜出自動生成導線的名字,所以我不能告訴你,這是你在做什麼錯..

確保您已經閱讀並理解了CodingReadme文件,examples/cxx-api/中的示例以及處理Yosys API的presentation slides(位於該幻燈片的末尾)。

+0

我試圖遍歷電路,並有選擇地刪除一些特定的連接,使端口仍然存在,但它們不再相互連接。即如果設計包含一個與門,其輸出連接到一個或門的輸入之一,我想要移除連接它們的導線。可能不需要知道爲此生成的電線名稱,但我需要遍歷整個設計,並根據特定條件刪除一些電線。 – AbdelAziz