Chisel Tutorial(三) 組合電路

2021-07-04 11:57:13 字數 1142 閱讀 7907

以下內容依據

2015-7-10

版的chisel 2.2 tutorial整理

組合電路

在chisel

中每個電路都是一些

node

的集合,每個

node

是乙個硬體操作單元,具有0個、

1chisel

的資料型別」中介紹的變數就可以認為是乙個0

輸入的node

,其輸出是乙個固定值,也就是變數的值。不同的

node

可以通過操作符連線在一起,例如可以通過如下表示式表示乙個簡單的組合邏輯電路:

(a & b) | (~c & d)
上述表示式的語法應該很好理解,&

表示bit與,|

表示bit或,~

表示bit

反,a-d

表示一些命名

wire。

任何乙個簡單地表示式都可以被轉化為乙個電路樹,命名wire

作為葉子節點,操作符組成中間節點,電路的最終輸出是電路樹根節點的輸出,對於上面的簡單表示式而言,根節點就是

bit或。

在chisel

中給乙個

wire

命名就是宣告乙個變數,使用

scala

val。如下:

val sel = a | b

val out = (sel & in1) | (~sel & in2)

針對不同資料型別,chisel

定義了不同的硬體操作符,如下表所示。

chisel有乙個很大的特點就是變數寬度推測,

wire

的寬度是可以推測出來的,按照如下規則推測:

此處的wz就是

z的寬度。

除了右移操作外,寬度推測機制得到的輸出wire

的寬度始終大於或者等於輸入

wire

的寬度。

三消遊戲(三)

後面一些更改就是實現下落下標更改的方法。這個方法要在一開始檢測三色的時候呼叫 with3arr this.filterdelsame with3arr,return with3arrupdatecellfalldownnum function cell 還要刪除陣列裡的相同元素 filterdels...

三周C 總結三

1 陣列概念 陣列名變數代表陣列首位址。定義 int x1 new int 10 string names 2.折半查詢演算法 要求陣列按照大小有序 static int quickfind int arr,int x 形式引數 int index 1 int low 0,high arr.leng...

C 學習(三) 基礎(三)

include using namespace std 1 引用的基本語法 引用 給一段記憶體空間起別名 語法 型別 別名 原名 void test1 注意 1 引用必須要初始化 void test2 2 建立乙個對陣列的引用 1 先定義出陣列的型別,在定義引用 陣列型別定義 typedef int...