1. 程式人生 > >jchdl - RTL例項 - And2And(結構體巢狀的使用)

jchdl - RTL例項 - And2And(結構體巢狀的使用)

https://mp.weixin.qq.com/s/PQIPkDymvcGc_re8ux50vA

  結構體可以巢狀使用。   參考連結 https://github.com/wjcdx/jchdl/blob/master/src/org/jchdl/model/rtl/example/And2/And2And.java   1.建立And2And.java, 並生成構造方法和logic()方法   2. 根據邏輯原理,新增輸入輸出介面 輸入輸出線作為類成員存在。使用註解標明是input port還是output port。
  這裡的Abcd型別,是一個巢狀的結構體型別,裡面巢狀包含了Abc結構體型別:   除了abcd輸入介面外,模組內部還包含了Abcd型別的結構體變數e。   3. 在構造方法中搜集輸入輸出線並呼叫construct()方法 首先呼叫父類即Module類的構造方法,以構建模組hierarchy。 然後逐個把輸入輸出引數與input/output port對應上。 然後呼叫construct()方法構造模組(呼叫一次logic()方法,蒐集模組的assign/always程式碼塊、子模組)。
  4. 在logic()方法中建立assign/always程式碼塊,以及子模組 這裡包含兩個子模組:And2和And,直接把abcd下的子成員abc傳給And2;   5. 建立inst靜態方法方便後續使用   6. 建立main方法執行驗證 執行結果為:   7. 生成Verilog 生成定製化模組名:   呼叫toVerilog()方法生成Verilog實現。
  執行結果如下: