了解系統(tǒng)設計流程的人員都知道,,從系統(tǒng)建模到硬件實現(xiàn)的過程是一個設計復雜,、需要不斷測試與不斷調整的迭代過程。作為上層的系統(tǒng)設計工程師,,他們側重于系統(tǒng)本身的性能,,關注整個系統(tǒng)的算法設計與系統(tǒng)建模,,而非過多得考慮系統(tǒng)的可實現(xiàn)性。但對于硬件工程師來說就不一樣了,他們更側重于整個系統(tǒng)的硬件實現(xiàn),,即在給定指標的情況下將系統(tǒng)以硬件的形式呈現(xiàn)出來,,而不去考慮系統(tǒng)性能如何。
正是因為這兩類工程師的側重點不一樣,,使用的工具不一樣,,開發(fā)流程也是不同的,這就造成了兩個環(huán)節(jié)之間存在巨大的鴻溝,。需要浪費大量的時間去迭代,,完成設計驗證與設計測試。這個過程中還可能需要通過另外一套完全不一樣的工具來進行溝通,。這種方式使得我們設計或調試一個簡單的系統(tǒng)時,,可能需要幾個星期甚至幾個月的時間完成一次迭代。
圖1 從系統(tǒng)建模到硬件實現(xiàn)的簡化流程
而今年春天Mathworks公司推出的2012a(R2012a) 版 MATLAB 和Simulink 產(chǎn)品系列幫助設計者解決了這一難題,。新版本的 MATLAB 和Simulink引進了HDL Coder,,可以從MATLAB 或Simulink中 自動生成HDL 代碼,用于FPGA 或 ASIC 上的原型設計和實現(xiàn),;此外,,還發(fā)布了HDL Verifier,用來取代EDA Simulator Link 并增加Altera FPGA 硬件在環(huán)支持,。有了這兩個產(chǎn)品,,MathWorks 現(xiàn)在可提供利用MATLAB 和Simulink 進行HDL 代碼生成和驗證的能力。R2012a 還更新了84 種其它產(chǎn)品,,包括Polyspace 嵌入式軟件驗證產(chǎn)品,。
HDL Coder 利用MATLAB 功能和Simulink 模型生成可移植和可綜合的VHDL 和Verilog 代碼,可用于FPGA 編程或ASIC 原型開發(fā)和設計,。因此,,工程師隊伍再也不用手動編寫HDL 代碼,也不再需要手寫HDL測試平臺了,。就可以立即識別出針對硬件實現(xiàn)的最佳算法,。Simulink 模型和所生成HDL 代碼之間的可追溯性同時也支持開發(fā)遵循DO-254 和其他標準的高完整性應用程序。
這款工具的發(fā)布,,跨越了系統(tǒng)設計與硬件設計鴻溝,。幫助系統(tǒng)工程師在設計的初期考慮更多硬件實現(xiàn)因素,從而使得系統(tǒng)設計更加貼近可實踐性,。幫助硬件工程師加深對系統(tǒng)全局的理解,,真正將精力放在關鍵之處。它不僅降低了系統(tǒng)設計復雜度,、縮短了設計周期,,提高了設計效率,,還對設計中的一些環(huán)節(jié)進行了優(yōu)化,例如浮點到定點的自動轉換,、算法和HDL之間的可追溯性、HDL資源優(yōu)化和報告等,。
圖2 HDL Coder 為FPGA和ASIC設計生成VHDL和Verilog代碼
題外話:Mathwork代碼生成類工具族譜
HDL Coder與之前的Simulink Coder,、MATLAB Coder、Embedded Coder和HDL Coder共同構成了Mathworks代碼生成類工具系列?,F(xiàn)在我們把集中工具所針對的不同應用領域做一個歸納,。
更多信息