💡 由於本科畢設女朋友準備使用 FPGA 完成,因此寫這篇文章幫助她快速上手 HDL coder 的使用,降低前期入門的難度。
支持生成 HDL 代碼的 simulink 庫#
名字中含有 HDL 的庫中的模塊一般都可以用來生成 HDL 代碼。直接搜索模塊名稱,比如搜索 fir,
可以看到旁邊會顯示位於哪個庫中,模塊有可能位於多個庫,只要有一個庫的名字裡面有 HDL,就代表這個模塊可以用來生成 HDL 代碼。
一些常用操作#
創建子系統#
將庫中的模塊拖到主界面組合好後,可能會佔據很大的空間,如果工程較大,模塊越連越多就特別臃腫,因此當我們完成某個功能以後,就可以將這部分的模塊全部選中,此時右下角會出現三個點,將鼠標移到上面後會展開,出現很多不同的功能。下圖是一個 AM 調製的過程,可以看到選中所有相關的模塊後點擊創建子系統,即可得到右圖的子系統。剛生成的子系統的命名為 subsystem,可以將命名改為更清晰易懂的名字。
觀察節點的信號波形#
當選中某根連線時,同樣會出現三個點,鼠標移動到上面後會展開,選擇 WiFi 形狀的選項即可記錄該連線上的信號。運行仿真後再次點擊 WiFi 圖標即可打開邏輯分析儀,即可查看該連線上的信號。
邏輯分析儀內部選中某個信號後即可在波形中調節數制、高度等設置。
也可以使用 scope 模板看節點信號。
頻譜分析#
使用 Spectrum Analyzer 模塊進行頻譜分析。
當樣點比較少的時候可以將估計方法改為 welch。
信號數據格式顯示#
可以顯示模塊輸入輸出信號的數據類型和小數位數。
采樣時間一欄中的時間圖例選中以後,會用不同的顏色顯示不同采樣速率的模塊,在多速率系統設計中有很大的用處。
生成 HDL 代碼#
前期準備#
設置診斷類型#
模型設置中選擇診斷 / 采樣時間
單任務和多任務數據傳輸必須設置成錯誤。
兼容性檢測#
選擇代碼生成的目標文件夾,運行兼容性檢查器,如果工程沒有問題的話會出現如下界面
目標平台選擇#
根據使用的 FPGA 選擇綜合工具和 FPGA 的系列。
模塊設置#
在要生成代碼的子系統上右鍵,選擇 HDL 模塊屬性:
可以對流水線、乘法器等參數進行設置
如果生成的代碼在 EDA 工具中編譯以後無法滿足時序約束,可以加輸入和輸出的流水線
💡 如果模塊的輸出對前面的模塊有反饋信號的話不能添加流水線,詳細見
bookmark
[bookmark](https://blog.sawenmoerjie.top/article/ec96aebc-b5a5-4059-bbef-02f0003e7a45)
代碼生成#
點擊為子系統生成 HDL 代碼後會自動進行一次編譯,命令行窗口會出現如下信息
同時會生成一個 report
沒有報錯的話即可在上面選擇的文件夾裡面看到生成的 Verilog 代碼文件
將這些文件導入到 EDA 工具中即可直接例化使用。
💡 所有文件都要導入,不能只導入需要的某個名字的模塊!
💡 一定要看 EDA 軟件編譯後的報告,尤其是大型設計,很容易不滿足時序要求,這個時候就要回去 simulink 裡面優化設計,如果時序報告裡面是 A 模塊的某個地方時序滿足不了要求,那麼就要在 simulink 中在 A 模塊中添加流水線。(注:Quartus 中我沒有遇見過時序報錯的,可能是沒有在 Quartus 中開發大工程)