chisel學習筆記1

2021-10-08 15:00:55 字數 1230 閱讀 4815

chisel是在scala的基礎上建立起來的,初學chisel可能有點摸不著頭腦,建議去菜鳥學學scala先。碼一下scala的筆記,賊適合入門。

scala是乙個物件導向的程式語言,了解這一點很重要,這也是scala和chisel的乙個很大的優勢。

變數是物件。

運用val宣告的常量也是物件。

甚至literal也是物件(例如,1,2,3,字串等)。

函式本身也是物件。這之後會詳細說明。

物件(object)是類(class)的例項。

事實上,物件導向中的物件(object) 在scala中被稱為例項。

在定義乙個類的時候,需要指定:

類中的資料(val,var

類的操作,稱為方法(method)或者函式(function)。這些方法可以通過該類的例項來呼叫。

類可以從其他類繼承。

被繼承的類叫做父類,繼承的類叫做子類。

在這種情況下,子類繼承父類的所有資料成員和方法。

子類也可以擴充套件或過載從父類繼承的這些方法。

類也可以繼承自特徵(traits)。traits可以被看作是輕量級的類,它可以允許多繼承。

(singleton)object物件在scala中是乙個特殊的類。

它們不是上面所說的物件,上面那些我們稱之為例項。

下面是乙個建立scala類的例子:

// wrapcounter從0開始計數,一直到最大值然後歸零

class wrapcounter(counterbits: int)

counter

} println(s"counter created with max value $max")

}

在上面的**中:

所以在這裡,方法inc的返回值就是counter

println(s'counter created with max value $max')在標準輸出stdout中列印出乙個字串。由於println直接位於定義類的**塊中,所以它會在每一次建立該類的例項時都會被執行。

這裡列印的字串是乙個被解析(interpolated)的 字串。

除非您正在除錯,否則應該避免類似這樣每次建立類的例項時都要列印的內容,以避免標準輸出顯示了太多東西。

chisel學習筆記2

第乙個chisel模組 1 直接上 chisel 定義乙個模組 class passthrough extends module io.out io.in 以上 定義了乙個名字叫做passthrough的chiselmodule,它有乙個4位元的輸入,名字叫做in,還有乙個4位元的輸出out。這個模...

Chisel 學習筆記(七)

chisel 在chisel中,我們既可以使用scala中自帶的集合,包括list,seq,arraybuffer list的使用方式在學習筆記 一 中有所體現 seq與list類似,但是在chisel中,我們更常使用seq來表述某個模組的引數 arraybuffer的特性是不用描述出長度,且通過 ...

Chisel 學習筆記(四)

chisel chisel中的所有類都要繼承module 類中必須要定義io型別,用來表示該模組的輸入輸出埠 每乙個輸入輸出埠,需要說明是有符號數還是無符號數,以及資料位寬 class myoperatorstwo extends module class myoperators val lengt...