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