org.jchdl.model.gsl.core.meta.Port.java
generated by Intellij IDEA powered by yFiles.
一. 類結構
主要屬性:
表明接口的值,Value類的對象,有四種值:0, 1, x, z。默認值爲x。
Port的全部者,Wire的Port的全部者爲Wire,Node的Port的全部者爲Node。
與之相連的上級和下級Port。Port只能有一個上級,能夠有多個下級。
主要方法:
鏈接。portA.connect(portB)則portA是portB的upstream,而portB是portA的downstream之一。
其餘方法無需關心。
Port沒法直接使用,須要使用它的子類,Input(port)和Output(port)。
二. Input/Output
Input/Output並沒有其餘屬性,他們實現Propagatable接口的propagate()方法。也就是說,他們向下傳播值的行爲不一樣(這個單獨說明)。
三. 線的Port
線有兩個Port,Input和Output。Input port沒有downstream,Output port沒有upstream。值傳播的邏輯由Wire實現,當前的實現邏輯時直接把Input port的值,賦值給Output port。
這是顯而易見的嗎?不是。線,不僅有wire一種,Verilog規範中定義了多種Net type:
他們的輸出值並不都等於輸入值,甚至有多個輸入值,如wor:
這裏只實現了一種最普通的wire。
四. 節點的Port
節點的Input port上級老是一個Wire的Output port。
1.若是節點是一個原子節點,則該節點的Input port沒有downstreams。
2.若是節點是一個複合節點,則該節點的Input的下級是線的Input port。節點Input的值由上級Wire的Output肯定,而後直接賦值給下級Wire的Input。
節點 Output port的下級老是連着Wire的Input port。
1.若是該節點是一個原子節點,則該節點的Output port沒有上級,他們的值由原子節點定義的邏輯,根據Input port的值最終肯定。好比與門是一個原子節點,他的Output的值,是兩個輸入的值相與。
2.若是該節點是一個複合節點,則該節點的Output的上級是Wire的Output。節點Output的值,直接有上級Wire Output的值肯定,而後傳遞給下級Wire的Input。