carry-select adder
兩種(進位與不進位)都算一遍,再依據低位元的結果選擇輸出,相較於ripple-carry adder可增加運算效率

Adder-Substractor
將b 與32[sub]做XOR的結果,與A相加。當sub = 1時即為a-b,反之則為a+b


case/casez
用casez可以在case中忽略不在乎的位元。
進入case/casez時會依照順序往下進行比對,一旦符合件則跳出case/casez。

Avoid latch
***初始化變數很重要***
因為default只能設定一個輸出,且最多只能有一個default。當有多個輸出要處理時,可以透過在case之前給定初始值,可以避免一個default無法處理的狀況。

parity
資料內有幾個1。
e.g. 10110,有3個1,為odd; 1001,有2個1,則為even
parity bit
加入一個額外的位元進入原先的資料,使得整個資料為奇/偶。
e.g. 若需求為 even parity, parity bit of 10110 = 1
反之若需求為 odd parity, parity bit of 10110 = 0

For loop
兩種都可以用,可以直接宣告int。


Generate_For
畫圖、畫圖、畫圖,如果不知道在寫什麼就把電路圖畫出來。

Bit Slicing
不能使用註解的那種寫法,會出現錯誤 "… is not a constant" 代表verilog不能證明"sel"是一個常數,必須用bit slicing的寫法,兩種寫法如下。

