在(zài)软(ruǎn)件(jiàn)环(huán)境下(xià),验(yàn)證電(diàn)路(lù)的(de)行为(wèi)和(hé)設想(xiǎng)中(zhōng)的(de)是(shì)否一(yī)致(zhì)。
2、 仿真(zhēn)的(de)分(fēn)類(lèi):
a) 功能(néng)仿真(zhēn):在(zài)RTL层進(jìn)行的(de)仿真(zhēn),其特(tè)點(diǎn)是(shì)不(bù)考慮構成(chéng)電(diàn)路(lù)的(de)邏輯和(hé)門(mén)的(de)时(shí)間(jiān)延遲,着重(zhòng)考慮電(diàn)路(lù)在(zài)理想(xiǎng)环(huán)境下(xià)的(de)行为(wèi)和(hé)設計(jì)構想(xiǎng)的(de)一(yī)致(zhì)性(xìng);
b) 时(shí)序仿真(zhēn):又稱为(wèi)後(hòu)仿真(zhēn),是(shì)在(zài)電(diàn)路(lù)已經(jīng)映射到(dào)特(tè)定(dìng)的(de)工藝环(huán)境後(hòu),将電(diàn)路(lù)的(de)路(lù)徑延遲和(hé)門(mén)延遲考慮進(jìn)对(duì)電(diàn)路(lù)行为(wèi)的(de)影響後(hòu),来(lái)比較電(diàn)路(lù)的(de)行为(wèi)是(shì)否還(huán)能(néng)够在(zài)一(yī)定(dìng)条(tiáo)件(jiàn)下(xià)滿足設計(jì)構想(xiǎng)。
3、 功能(néng)仿真(zhēn)的(de)目的(de):
a) 設計(jì)出(chū)能(néng)工作的(de)電(diàn)路(lù):因(yīn)此(cǐ)功能(néng)仿真(zhēn)不(bù)是(shì)一(yī)个(gè)孤立的(de)过(guò)程,其和(hé)綜合、时(shí)序分(fēn)析等形成(chéng)一(yī)个(gè)反(fǎn)饋工作过(guò)程,只(zhī)有(yǒu)这(zhè)个(gè)过(guò)程收(shōu)斂,各(gè)个(gè)环(huán)节(jié)才有(yǒu)意(yì)義。而(ér)孤立的(de)功能(néng)仿真(zhēn)通(tòng)过(guò)是(shì)沒(méi)有(yǒu)意(yì)義的(de),如(rú)果(guǒ)在(zài)时(shí)序分(fēn)析过(guò)程中(zhōng)發(fà)現(xiàn)时(shí)序不(bù)滿足需要(yào)更(gèng)改代(dài)碼,則功能(néng)仿真(zhēn)必須從新進(jìn)行。因(yīn)此(cǐ)正(zhèng)确的(de)工作流程是(shì):
b)代(dài)碼排錯:功能(néng)仿真(zhēn)是(shì)代(dài)碼排錯的(de)最(zuì)重(zhòng)要(yào)的(de)手(shǒu)段(duàn)之一(yī)。
4、 modelsim的(de)高(gāo)級功能(néng):Code Coverage
a) 代(dài)碼覆蓋率是(shì)验(yàn)證激勵是(shì)否完備,檢验(yàn)代(dài)碼質(zhì)量(liàng)的(de)一(yī)个(gè)重(zhòng)要(yào)手(shǒu)段(duàn)。测試激勵的(de)代(dài)碼覆蓋率至(zhì)少(shǎo)要(yào)达(dá)到(dào)95%以(yǐ)上(shàng),才能(néng)基本(běn)認为(wèi)代(dài)碼在(zài)邏輯上(shàng)是(shì)通(tòng)过(guò)質(zhì)量(liàng)控制的(de),才能(néng)進(jìn)入(rù)綜合步驟;
b) 代(dài)碼覆蓋率是(shì)保證高(gāo)質(zhì)量(liàng)代(dài)碼的(de)必要(yào)条(tiáo)件(jiàn),但卻不(bù)是(shì)充分(fēn)条(tiáo)件(jiàn)。即便代(dài)碼行覆蓋和(hé)分(fēn)支覆蓋都能(néng)够达(dá)到(dào)100%,也(yě)不(bù)能(néng)肯定(dìng)的(de)说(shuō)代(dài)碼已經(jīng)得到(dào)100%的(de)验(yàn)證。除非(fēi)所(suǒ)有(yǒu)的(de)分(fēn)支覆蓋都能(néng)够進(jìn)行組合遍(biàn)曆。
c) 在(zài)大的(de)設計(jì)中(zhōng),如(rú)果(guǒ)想(xiǎng)通(tòng)过(guò)一(yī)个(gè)激勵就(jiù)验(yàn)證完一(yī)个(gè)設計(jì)或(huò)者(zhě)模块(kuài)是(shì)不(bù)現(xiàn)实的(de)。一(yī)方(fāng)面(miàn)是(shì)從邏輯功能(néng)上(shàng)很難做到(dào);另(lìng)外(wài)一(yī)方(fāng)面(miàn)是(shì)因(yīn)为(wèi)如(rú)果(guǒ)在(zài)一(yī)个(gè)激勵中(zhōng)包(bāo)括了(le)各(gè)種(zhǒng)情(qíng)況,整个(gè)仿真(zhēn)过(guò)程的(de)速度(dù)会(huì)随着計(jì)算機(jī)內(nèi)存的(de)消耗而(ér)成(chéng)線(xiàn)性(xìng)下(xià)降,效率低下(xià)。
d) 通(tòng)常的(de)做法是(shì)每一(yī)个(gè)激勵只(zhī)验(yàn)證電(diàn)路(lù)功能(néng)的(de)某个(gè)方(fāng)面(miàn)。整个(gè)電(diàn)路(lù)的(de)功能(néng)验(yàn)證由(yóu)數个(gè)激勵共(gòng)同(tóng)完成(chéng)。在(zài)这(zhè)種(zhǒng)验(yàn)證方(fāng)法中(zhōng)代(dài)碼覆蓋率更(gèng)顯重(zhòng)要(yào),因(yīn)为(wèi)可(kě)以(yǐ)通(tòng)过(guò)代(dài)碼覆蓋率来(lái)控制激勵对(duì)功能(néng)的(de)覆蓋程度(dù)。
e) modelsim的(de)Code coverage不(bù)但能(néng)記(jì)录(lù)各(gè)个(gè)激勵对(duì)代(dài)碼的(de)“行覆蓋”和(hé)“分(fēn)支覆蓋”,而(ér)且能(néng)够将各(gè)个(gè)激勵的(de)覆蓋記(jì)录(lù)進(jìn)行合并,做到(dào)对(duì)覆蓋率的(de)全(quán)面(miàn)監测。
f) 演示。。。。。。。。。。。。。。。。。。。。。。。。
5、 Debussy:仿真(zhēn)輔助調試工具:
a) 看(kàn)仿真(zhēn)波(bō)形无疑是(shì)代(dài)碼排錯的(de)主(zhǔ)要(yào)手(shǒu)段(duàn),在(zài) Modelsim中(zhōng)的(de)波(bō)形窗(chuāng)口(kǒu)在(zài)大的(de)仿真(zhēn)中(zhōng)有(yǒu)如(rú)下(xià)缺陷:a、只(zhī)能(néng)顯示出(chū)在(zài)仿真(zhēn)前(qián)設置好(hǎo)的(de)信(xìn)号(hào)波(bō)形,如(rú)果(guǒ)在(zài)仿真(zhēn)完成(chéng)後(hòu)想(xiǎng)观察其他(tā)的(de)信(xìn)号(hào),唯一(yī)的(de)辦(bàn)法就(jiù)是(shì)添加需要(yào)观察的(de)信(xìn)号(hào)從新開(kāi)始仿真(zhēn)。b、波(bō)形只(zhī)是(shì)簡單顯示,和(hé)代(dài)碼沒(méi)有(yǒu)对(duì)應(yìng)和(hé)關(guān)聯關(guān)系(xì),不(bù)能(néng)借(jiè)助波(bō)形直(zhí)观的(de)調試代(dài)碼;c、如(rú)果(guǒ)观察的(de)信(xìn)号(hào)太多(duō),由(yóu)于(yú)其是(shì)实时(shí)全(quán)信(xìn)号(hào)顯示,在(zài)仿真(zhēn)时(shí)間(jiān)較长後(hòu),仿真(zhēn)速度(dù)明(míng)顯減慢(màn),屏幕的(de)刷新速度(dù)也(yě)明(míng)顯減慢(màn)。
b) 这(zhè)些缺點(diǎn)不(bù)單Modelsim有(yǒu),其他(tā)的(de)优秀仿真(zhēn)工具也(yě)有(yǒu),而(ér)且曆史由(yóu)来(lái)以(yǐ)久,因(yīn)此(cǐ)很早(zǎo)人(rén)们(men)就(jiù)提(tí)出(chū)了(le)“先(xiān)轉(zhuǎn)儲後(hòu)观察調試”方(fāng)法,在(zài)verilog語(yǔ)言中(zhōng)以(yǐ)$dumpXXX開(kāi)头(tóu)的(de)系(xì)統函(hán)數就(jiù)是(shì)做波(bō)形轉(zhuǎn)儲用(yòng)的(de)。就(jiù)是(shì)先(xiān)将波(bō)形先(xiān)存在(zài)文(wén)件(jiàn)中(zhōng),等仿真(zhēn)結束(shù)後(hòu)在(zài)調出(chū)来(lái)顯示观察和(hé)調試。
c) 这(zhè)種(zhǒng)观察功能(néng)很多(duō)EDA工具都有(yǒu),并不(bù)足为(wèi)奇;但Debussy的(de)独特(tè)之处在(zài)于(yú),它(tā)不(bù)但能(néng)顯示波(bō)形,而(ér)且還(huán)能(néng)非(fēi)常智能(néng)化(huà)的(de)将波(bō)形中(zhōng)的(de)任何一(yī)个(gè)變(biàn)化(huà)和(hé)引起这(zhè)个(gè)變(biàn)化(huà)的(de)RTL代(dài)碼聯系(xì)起来(lái),使代(dài)碼排錯的(de)效率大幅度(dù)提(tí)高(gāo)。在(zài)原来(lái)IC所(suǒ)的(de)一(yī)个(gè)大型項目中(zhōng),由(yóu)于(yú)引進(jìn)了(le)Debussy,使調試效率至(zhì)少(shǎo)提(tí)高(gāo)了(le)3倍。
d) 先(xiān)介紹verilog語(yǔ)言中(zhōng)的(de)轉(zhuǎn)儲系(xì)統函(hán)數。其实轉(zhuǎn)儲函(hán)數就(jiù)是(shì)一(yī)種(zhǒng)典型的(de)文(wén)件(jiàn)操作函(hán)數,最(zuì)为(wèi)常用(yòng)的(de)为(wèi)一(yī)下(xià)幾(jǐ)種(zhǒng):
i. $dumpfile(“filename.vcd”):打(dǎ)開(kāi)一(yī)个(gè)文(wén)件(jiàn)準備轉(zhuǎn)儲波(bō)形數據(jù);
ii. $dumpall:轉(zhuǎn)儲所(suǒ)有(yǒu)信(xìn)号(hào)的(de)波(bō)形數據(jù);
iii. $dumpvars:轉(zhuǎn)儲层次(cì)信(xìn)号(hào);
iv. $dumpon:開(kāi)始轉(zhuǎn)儲;
v. $dumooff:停止轉(zhuǎn)儲;
e) 演示Modelsim轉(zhuǎn)儲功能(néng)
f) 演示Debussy工具中(zhōng)的(de)輔助調試功能(néng);
6、 SDF反(fǎn)标(biāo)注
a) SDF是(shì)一(yī)種(zhǒng)标(biāo)準延时(shí)格式文(wén)件(jiàn),用(yòng)于(yú)記(jì)录(lù)綜合布(bù)線(xiàn)後(hòu)電(diàn)路(lù)的(de)線(xiàn)延遲和(hé)門(mén)延遲信(xìn)息。如(rú)果(guǒ)在(zài)仿真(zhēn)輸出(chū)的(de)波(bō)形上(shàng)疊加上(shàng)这(zhè)些信(xìn)息,将使波(bō)形更(gèng)接近(jìn)实際。
b) 演示。。。。。。。。。。。。。。。。。。。。。。。。。。
c) 但是(shì)由(yóu)于(yú)電(diàn)路(lù)已經(jīng)被(bèi)綜合布(bù)線(xiàn)过(guò),原来(lái)的(de)RTL代(dài)碼的(de)邏輯层次(cì)和(hé)代(dài)碼命名都已經(jīng)發(fà)生(shēng)變(biàn)化(huà),即便看(kàn)到(dào)波(bō)形也(yě)很難直(zhí)接对(duì)應(yìng)到(dào)RTL代(dài)碼上(shàng),因(yīn)此(cǐ)後(hòu)仿真(zhēn)来(lái)确定(dìng)電(diàn)路(lù)是(shì)否符合要(yào)求的(de)方(fāng)法已經(jīng)逐漸被(bèi)新的(de)方(fāng)法所(suǒ)代(dài)替。另(lìng)外(wài)還(huán)有(yǒu)後(hòu)仿真(zhēn)速度(dù)緩慢(màn)也(yě)是(shì)一(yī)个(gè)主(zhǔ)要(yào)原因(yīn)。新的(de)方(fāng)法是(shì):时(shí)序分(fēn)析、静(jìng)态时(shí)序分(fēn)析、形式验(yàn)證。
7、 一(yī)个(gè)重(zhòng)要(yào)的(de)观念:電(diàn)路(lù)的(de)性(xìng)能(néng)取(qǔ)決于(yú)電(diàn)路(lù)構思(sī)和(hé)Coding Style:
a) 經(jīng)常有(yǒu)人(rén)说(shuō)“不(bù)要(yào)用(yòng)写软(ruǎn)件(jiàn)的(de)方(fāng)法去(qù)写硬(yìng)件(jiàn)”,或(huò)者(zhě)说(shuō)“要(yào)用(yòng)樸实无華的(de)語(yǔ)言风格来(lái)写代(dài)碼”,这(zhè)些说(shuō)法只(zhī)是(shì)描述了(le)事(shì)务的(de)表(biǎo)明(míng)現(xiàn)象(xiàng),并沒(méi)有(yǒu)真(zhēn)正(zhèng)指出(chū)問(wèn)題(tí)的(de)真(zhēn)正(zhèng)症結所(suǒ)在(zài);
b) RTL描述語(yǔ)言,虽然是(shì)一(yī)種(zhǒng)語(yǔ)言,但它(tā)是(shì)描述RTL的(de)語(yǔ)言,所(suǒ)以(yǐ)其着眼(yǎn)點(diǎn)是(shì)電(diàn)路(lù)实現(xiàn)而(ér)非(fēi)邏輯推理;RTL就(jiù)是(shì)電(diàn)路(lù)在(zài)寄存器层的(de)一(yī)種(zhǒng)表(biǎo)現(xiàn),虽然已經(jīng)不(bù)像門(mén)級那(nà)樣(yàng)具體(tǐ),但也(yě)沒(méi)有(yǒu)抽象(xiàng)到(dào)邏輯层。
c) 因(yīn)此(cǐ)写代(dài)碼的(de)真(zhēn)正(zhèng)正(zhèng)确的(de)方(fāng)法是(shì):在(zài)大腦中(zhōng)構思(sī)出(chū)電(diàn)路(lù)的(de)結構,然後(hòu)用(yòng)代(dài)碼把它(tā)點(diǎn)滴(dī)不(bù)漏的(de)表(biǎo)現(xiàn)出(chū)来(lái),而(ér)不(bù)是(shì)先(xiān)写一(yī)些只(zhī)是(shì)邏輯上(shàng)行得通(tòng)的(de)代(dài)碼等待工具幫你綜合成(chéng)能(néng)实現(xiàn)的(de)電(diàn)路(lù)。工具永遠(yuǎn)只(zhī)能(néng)做繁重(zhòng)而(ér)低級的(de)工作,至(zhì)少(shǎo)要(yào)比人(rén)的(de)工作低級,这(zhè)是(shì)未来(lái)幾(jǐ)百(bǎi)年(nián)內(nèi)不(bù)会(huì)改變(biàn)的(de)公理。因(yīn)此(cǐ)如(rú)果(guǒ)你的(de)電(diàn)路(lù)性(xìng)能(néng)不(bù)好(hǎo),说(shuō)明(míng)你对(duì)如(rú)何实現(xiàn)電(diàn)路(lù)還(huán)沒(méi)有(yǒu)清(qīng)晰的(de)思(sī)路(lù)。
d) 不(bù)要(yào)只(zhī)使像通(tòng)过(guò)提(tí)高(gāo)器件(jiàn)的(de)速度(dù)等級来(lái)使你的(de)電(diàn)路(lù)达(dá)到(dào)要(yào)求,恰恰相反(fǎn),正(zhèng)确的(de)方(fāng)法是(shì):如(rú)果(guǒ)你的(de)電(diàn)路(lù)在(zài)第(dì)一(yī)次(cì)綜合後(hòu)已經(jīng)有(yǒu)80%的(de)路(lù)徑滿足时(shí)間(jiān)要(yào)求了(le),那(nà)麼(me)就(jiù)不(bù)要(yào)想(xiǎng)着用(yòng)更(gèng)快(kuài)的(de)器件(jiàn),而(ér)應(yìng)該考慮改變(biàn)你的(de)電(diàn)路(lù)拓撲結構和(hé)設計(jì)構架,来(lái)使另(lìng)外(wài)的(de)20%逐漸达(dá)到(dào)要(yào)求。
温(wēn)馨提(tí)示:明(míng)德揚2023推出(chū)了(le)全(quán)新課程——
邏輯設計(jì)基本(běn)功修煉課,降低学習FPGA門(mén)檻的(de)同(tóng)时(shí),增加了(le)学習的(de)趣味性(xìng)
http://old.mdy-edu.com/chanpinzhongxin/peixunkecheng/2023/0215/1889.html
(點(diǎn)擊→了(le)解(jiě)課程詳情(qíng)☝)
明(míng)德揚除了(le)培訓学習還(huán)有(yǒu)項目承接業务,擅长的(de)項目主(zhǔ)要(yào)包(bāo)括的(de)方(fāng)向(xiàng)有(yǒu)以(yǐ)下(xià)幾(jǐ)个(gè)方(fāng)面(miàn):
1. MIPI視頻拼接
2. SLVS-EC轉(zhuǎn)MIPI接口(kǒu)(IMX472 IMX492)
3. PCIE采集系(xì)統
4. 图(tú)像項目
5. 高(gāo)速多(duō)通(tòng)道(dào)ADDA系(xì)統
6. 基于(yú)FPGA板卡(kǎ)研發(fà)
7. 多(duō)通(tòng)道(dào)高(gāo)靈敏電(diàn)荷放(fàng)大器
8. 射頻前(qián)端
http://old.mdy-edu.com/xmucjie/2023/0201/1865.html
(點(diǎn)擊→了(le)解(jiě)項目承接業务詳情(qíng)☝)
需要(yào)了(le)解(jiě)相關(guān)信(xìn)息可(kě)以(yǐ)聯系(xì):吴老(lǎo)师(shī)18022857217(微信(xìn)同(tóng)步)








