用varilog從最基本的邏輯閘,組成加法器,再分成Controller 和DataPath的架構去完成一個程式
相較於Finite state machine的架構很多的電路都交由編譯去處理,所以可以降低開發的時程,但是所合成出來的電路,所耗費的硬體資源卻是比較多。
HLSM
數波形的時候一直不了解明明是打+1但是卻一直是+2的結果,放大後發現原來是在一個狀態內加了兩次,所以計算後的結果也要再除以對應的值,應該是因為在一個IF敘述中跑了兩個cycle。
當代測頻率設為47時,總計算的CLOCLK為376,除以32等於11.75但是只能取整數,所以頻率算出來等於11*4=44。
Controller & Datapath
需要使用較多的STATE,程式要寫的模組比較多
結論:
直接使用HLSM合成使用了394個元件,大於Controller&Datapath 使用了42個元件,所以直接用HLSM寫雖然可以縮短開發得時程,但是也會使用較多的資源,而且有很多的邏輯都交由編譯去處理,所以會有一些不如預期的結果,在要上傳檔案時也發現HLSM檔案的大小是4.34MB遠大於Controller&Datapath的801KB,所以不只是合成後所要用到的資源比較多,合成時所要耗費的電腦資源也比較多,因為moodle只能上傳1MB的檔案所以刪除了HLSM裡面的一些檔案,和剪裁和壓縮了圖片,才能上傳作業。
心得:
HLSM的寫法雖然比較簡單,開發的時程也比較快,但是有很多的內部細節都是交由編譯器去處理,無法像Controller 的架構清楚的了解資料處理的過程,金過了這兩個Verilog 的作業,使我對於大程式的開發又有了更多的了解,原本修完程式語言的課,要去愾別人寫的程式還是很困難,因為雖然大部分的格式都看得懂,但是要去理解整個城市的運作原理還是有困難,但是現在就漸漸地可以去了解了。