日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jchdl - GSL Node

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jchdl - GSL Node 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://mp.weixin.qq.com/s/Oa4qgjIUccu5Y-Jlqcyn_A org.jchdl.model.gsl.core.meta.Node.java ?? generated by Intellij IDEA powered by yFiles Node為所有節點的父類。所有用戶創建的節點,必須繼承Node類。Node為用戶創建了節點提供了很多支持方法,但把logic()方法留給子類自行定義。 一. 類結構 ?? 主要屬性:
  • netI:連接在節點Input接口上的線;
  • netO: 鏈接在節點Output接口上的線;
  • ioI:節點的Input接口,與netI中的線一一對應;
  • ioO:接口Output接口,與netO中的線一一對應;
  • 主要方法:
  • 收集連接在接口Input接口上的線的方法:
  • in(Net): 添加一條輸入線;
  • in(Net[]):添加一組輸入線;
  • 收集連接在接口Output接口上的線的方法:
  • out(Net): 添加一條輸出線;
  • out(Net[]):添加一組輸出線;
  • 獲取節點Input接口的方法:
  • in(int index): 獲取第index個Input接口;
  • inputs(): 獲取所有的Input接口;
  • inputs(int from):獲取從from開始的所有接口;
  • inputs(int from, int to):[from, to),獲取從from(包含)到to(不包含)的所有接口;
  • 獲取節點Output接口的方法:
  • out(int index): 獲取第index個Output接口;
  • outputs(): 獲取所有的Output接口;
  • outputs(int from):獲取從from開始的所有接口;
  • outputs(int from, int to):[from, to),獲取從from(包含)到to(不包含)的所有接口;
  • 節點內部邏輯構建方法:logic()
  • 該方法為抽象方法,留給子類自行定義,即用戶通過重新定義該方法,來實現節點的自定義邏輯。
  • 節點構建方法:construct()
  • 輔助方法,下面單講。
  • 轉換為Verilog的方法:toVerilog()
  • 把節點轉換為Verilog的(門和開關層結構建模)實現。 二. 構建節點 當前構建節點的方法如下:
  • 收集節點構造方法中提供的輸入線和輸出線;
  • 調用construct()方法:
  • 根據收集的輸入線和輸出線,分別創建足夠數量的Input接口和Output接口與之對應;
  • 調用用戶自定義的logic()方法構建節點內部邏輯;
  • 將輸入線和輸出線與節點的Input接口和Output接口一一連接;
  • 如此即完成節點構建。 三. 用戶自定義邏輯:logic() 用戶自定義邏輯的方法是在子類中覆蓋logic方法。logic方法主要做以下事情:
  • 創建線或一組線從Input接口牽出。(創建線時即可自動將Input接口連接到新創建的線的Input接口上,從而驅動(driven)線)
  • 創建線或一組線連接到Output接口。(創建線時即可自動把線的Output接口連接到節點的Output接口上)
  • 創建內部子節點;(創建內部子節點時,即可自動把Input牽出作為子節點輸入線的線,連接到子節點的Input接口上;并且自動把子節點的Output接口連接到子節點的輸出線上)
  • 另外,可以通過pullup/pulldown來處理臨時需要的線;使用toGround()處理不再需要的線。 注意:logic內部使用的線,屬于節點的一部分,最好是定義為節點類的屬性。 四. 總結 可以看出,節點的構建其實就是連線:
  • 把輸入線連到Input接口上;
  • 從Input接口牽出線連到內部子節點上;
  • 從內部子節點牽出線連接到Output接口上;
  • Output接口牽出線以供后續使用;(連接到下一個節點,或者接地,或者懸空供觀察使用)
  • 五. 實例Mux Mux為二選一。
  • 構造函數
  • ?? 構造函數的參數為輸入線和輸出線,使用in()和out()分別收集:
  • 收集輸入線 in1, in2, sel;
  • 收集輸出線out;
  • 調用construct方法構建Mux節點;
  • 內部邏輯
  • ??
  • 從輸入口牽出線,比如:
  • in1 = new Wire(in(0)) 其中,in(0)方法為Node類提供的輔助方法,獲取第0個Input接口; 然后創建一條線,從這第0個Input接口牽出。
  • 創建線連接到輸出口,比如:
  • out = new Wire(out(0)) out(0)方法為Node類提供的輔助方法,獲取第0個Output接口; 然后創建一條線,連接到這個輸出口上;
  • 創建子節點Not需要的輸出線selNot;
  • 創建字節點Not:sel作為輸入線,selNot作為輸出線;
  • 同理,逐個創建子節點:兩個與門,一個或門;
  • 節點內部的線
  • 節點內部使用的線,推薦作為節點屬性聲明: ??
  • 創建Mux節點
  • ?? PS. inst靜態方法可以省略new關鍵字,使代碼更緊湊。 六. 原子節點(AtomicNode) 原子節點是節點的子類。覆蓋了logic方法,但實現為空。 該類定義了抽象方法atomic()供子類覆蓋,以實現從輸入到輸出的轉化邏輯。最簡單的比如非門: ?? atomic()方法調用not()方法,實現從輸入到輸出值的轉換。

    轉載于:https://www.cnblogs.com/wjcdx/p/9616068.html

    總結

    以上是生活随笔為你收集整理的jchdl - GSL Node的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。