1. 程式人生 > >Chisel3 - model - connect

Chisel3 - model - connect

https://mp.weixin.qq.com/s/w8NqM3GVlF0NydpsB65KPg   介紹建立模組順序邏輯的connect命令。     0. 這裡先簡單對 "=" 和 ":="做一個討論。   假設 a & b 的結果輸出到一個匿名變數,記為anonymousVariable。   a & b的用法有兩種:   1) c := a & b   ":="的意思為連線。變數c作為下游,連線到anonymousVariable,接收其值。即anonymousVariable的值的變化會傳播到下游c中。
  2) c = a & b   "="的意思是賦予。之所以不說賦值,是因為更多情況下賦予的不是值,而是引用。   這裡就是把anonymousVariable賦給c。就相當於給a & b的輸出這個匿名變數取了一個名字,叫做c。   因為anonymousVariable是匿名的,所以這裡使用c來簡化引用也是有意義的。   總結下來: 1) 兩者的區別在於,一個是匿名變數本身,一個是匿名變數的下一級連線。 2) ":="是連線到的意思(connect to);
3) "="也不是賦值,而是賦引用,取名字或者起別名的意思;     1. connect   連線符號為:   ":=" 使用connect方法實現: final def := (that: Data)(implicit sourceInfo: SourceInfo, connectionCompileOptions: CompileOptions): Unit = this.connect(that)(sourceInfo, connectionCompileOptions)
  connect定義在Data類中:   sink為下游,source為上游:       2. bulkConnect   批量連線的呼叫過程如下: