首先,設計工程師接收一個設計定義的輸入,這個定義可以是文本、圖表、算法或某種描述語言(如UML、SLD、MATLAB等的描述)。
設計工程師根據這個輸入的定義,完成算法的開發,提出一種系統的結構,用ESL語言來描述這種系統結構,即系統級描述,并在此基礎上完成軟硬件的初步劃分。
在完成基本的軟硬件劃分后,可以開始軟件和系統級硬件的設計。這里的系統級硬件設計是指對功能單元在高抽象層次上進行建模,并完成功能設計,如用SystemC進行事務級的建模。
軟件設計是指根據系統結構中指定的處理器和軟件任務的定義,用如C/C++或匯編語言完成應用軟件的設計。
在這個階段,開始軟硬件的協同驗證,即軟件運行在系統的虛擬平臺上。根據協同驗證的結果反饋給系統結構和軟硬件劃分。后者根據性能、成本等因素重新做出調整。軟硬件的設計和驗證,包括軟硬件的協同驗證,是一個迭代的過程。在整個設計過程中都要根據驗證的結果對系統做出調整。
軟硬件的設計和驗證,包括軟硬件的協同驗證,是一個迭代的過程。在整個設計過程中都要根據驗證的結果對系統做出調整。
完成驗證的硬件和軟件設計就可以組成一個完整的系統級設計,并傳遞給下一級的設計作為輸入。例如,ESL設計為軟件應用提供C或C++語言描述的程序;為定制電路提供Verilog或VHDL語言描述的硬件設計;為硬件平臺提供PCB板的功能部件或抽象層IP,如基于SystemC的IP。
需要指出的是,關于軟硬件的劃分有許多方法。最初是設計工程師根據經驗手工劃分,20世紀90年代開始出現了自動劃分的方法。
由于SoC系統復雜,算法的求解難度較大,只在一些EDA工具中得到了初步的應用。ESL工具可以幫助進行快速的系統級建模,進行定量的系統性能分析。
在實現ESL設計流程的具體過程中,有不同的實現方法可以采用。直接由軟件參考代碼開始,從已有事務級(TLM)模型庫中選取硬件結構(如通用處理器等),或者重新設計IP庫中沒有的模塊的事務級模型,創建系統虛擬平臺,在此基礎上將任務并行化,映射到硬件結構上,然后進行驗證和性能的分析。根據分析得到結果,再調整系統結構和軟件,再分析,直到性能滿意。
通常,軟件參考代碼已實現了基本功能,特別是保證了算法及數據流等的正確性。例如,軟件參考代碼可以是某一標準協議用C語言寫的參考代碼。在軟件參考代碼和主要的事務級模型的基礎上分別進行軟件和硬件的設計。在軟件設計中,會把建立完成的虛擬平臺和構架作為集成開發環境的一部分。集成開發環境還包括編譯器和調試工具的開發。在設計過程中要通過軟硬件的協同驗證調整設計的內容。
-
soc
+關注
關注
38文章
4204瀏覽量
219113 -
硬件
+關注
關注
11文章
3382瀏覽量
66461 -
ESL
+關注
關注
1文章
74瀏覽量
21417
發布評論請先 登錄
相關推薦
評論