2016-04-08 118 views
5

我試圖理解或研究verilog中ASIC設計的最佳實踐。我正在研究一個具有〜20個子模塊的中等大小的塊(每個〜1000行代碼)。手動實例化所有子模塊並執行端口連接以創建頂層RTL是一項艱鉅的工作。有沒有推薦的方法來自動模塊端口連接?

我想編寫一個腳本來自動執行此操作。只要我們可以定義所有子模塊的輸入/輸出以及每個子模塊如何相互連接,自動生成頂層應該不會太難。雖然我沒有足夠的設計自動化專業知識。我想知道是否有人可以給我一些關於如何入門的指導。

  • 是否有任何開源工具可以實現我想要做的事情?到目前爲止我沒有找到任何東西。
  • 是否有任何標準化的方法來生成這種合成代碼?

我會高度讚賞任何形式的輸入或建議。

+2

如果專利模塊具有相同的變量子模塊端口名稱,您可以使用'*'隱含的端口連接。但仔細使用它。 – rahulcodesinverilog

+0

您可以製作perl腳本並輸入模塊的文件,並生成一個頂級文件,您可以在頂級文件中執行一些刺擊邏輯並實例化子模塊。嘗試使用小模塊,然後根據您的要求進行擴展。你不能要求直接腳本,但你可以,但這是可能的。 –

+0

不是一個自動解決方案,但這是我經常做的。粘貼子模塊定義(即'module#(...)(輸入邏輯...,輸出邏輯...);'然後添加實例名稱並刪除所有的端口方向和類型現在使用宏記錄函數在您的編輯器中執行此操作:'CUT。PASTE(PASTE)'。然後雙擊每個端口名稱以突出顯示它,然後執行宏,並將'some_name'改爲'.some_name(some_name)'如果端口和連接名稱是相同的,然後工作完成,如果沒有,很容易做更多的雙擊,複製和粘貼,我不喜歡'。*'。 –

回答

相關問題