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