1. 程式人生 > >Chisel錯誤總結與思考

Chisel錯誤總結與思考

1.Chisel是硬體語言,所以最好每個when都跟著.otherwise
2.暫存器中的數都是按照補碼形式存的,所以在做tmp(63,32)這種截斷取值時要格外注意,取出的是補碼的相應位。
3.Test檔案中每一個step對應一個cycle,step(1)代表著讓電路向前執行一個時間單位。
4.peek(a)可以在test檔案中取出a的值
5.線用:=連上後就連上了,是並行執行的,右端一改,左端立刻會變,不是順序執行的,所以要注意。
6.所有的輸出線都要有值,不能有地方是空的,不賦值的
7.模組中輸出如果定義的是UInt,那麼在測試的時候也要注意把期望的輸出從Int變為UInt,具體函式:
Big_tot一定要是BigInt型別。

var Big_tot = BigInt(0)
Big_tot = intToUnsignedBigInt(tot) // 將有符號數轉化為無符號數

8.在寫狀態機時,每個狀態一定要想清楚再寫程式碼。
9.在有狀態機時,暫存器更新時機一定要注意,一定要寫清楚。
10.暫存器的值只會在下一個step更新,Wire型別的值會實時更新。