版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Verilog的邏輯綜合學(xué)習(xí)目標(biāo)對(duì)邏輯綜合的概念進(jìn)行定義,解釋邏輯綜合的優(yōu)點(diǎn)。弄清楚哪些VerilogHDL結(jié)構(gòu)和操作符能用于邏輯綜合,理解邏輯綜合工具如何解釋這些結(jié)構(gòu)。解釋使用邏輯綜合進(jìn)行設(shè)計(jì)的典型流程,描述基于邏輯綜合設(shè)計(jì)流程的主要組成部分。描述如何驗(yàn)證由邏輯綜合生成的門級(jí)網(wǎng)表。了解編寫高效率RTL描述的各種技巧。描述能為邏輯綜合提供最佳門級(jí)網(wǎng)表的分割技術(shù)。使用邏輯綜合的方法進(jìn)行組合電路和時(shí)序電路的設(shè)計(jì)。EDA技術(shù)什么是邏輯綜合邏輯綜合是在標(biāo)準(zhǔn)單元庫(kù)和特定的設(shè)計(jì)約束的基礎(chǔ)上,把設(shè)計(jì)的高層次描述轉(zhuǎn)換成優(yōu)化的門級(jí)網(wǎng)表的過程。標(biāo)準(zhǔn)單元庫(kù):與門、或門、非門等基本邏輯門;加法器、多路選擇器和特殊的觸發(fā)器。設(shè)計(jì)約束:時(shí)序、面積、可測(cè)試性和功耗等方面。將設(shè)計(jì)者的大腦用作邏輯綜合工具EDA技術(shù)什么是邏輯綜合計(jì)算機(jī)輔助邏輯綜合工具的出現(xiàn)把高層次描述向邏輯門的轉(zhuǎn)化過程自動(dòng)化了。該綜合工具在內(nèi)部進(jìn)行幾次反復(fù),生成最優(yōu)化的門級(jí)描述?;镜挠?jì)算機(jī)輔助邏輯綜合過程EDA技術(shù)邏輯綜合對(duì)數(shù)字設(shè)計(jì)行業(yè)的影響手動(dòng)設(shè)計(jì)的限制:手動(dòng)轉(zhuǎn)換更容易帶來(lái)人為的錯(cuò)誤。把高層次設(shè)計(jì)轉(zhuǎn)換成邏輯門占去整個(gè)設(shè)計(jì)周期的大部分時(shí)間。推測(cè)難以驗(yàn)證。如,設(shè)計(jì)者設(shè)計(jì)了一個(gè)20ns時(shí)鐘周期工作的門級(jí)模塊。如果分析該電路是否能優(yōu)化到以15ns。為驗(yàn)證這種推測(cè),重新設(shè)計(jì)。不同設(shè)計(jì)者設(shè)計(jì)風(fēng)格缺乏一致性。最終門級(jí)設(shè)計(jì)中發(fā)現(xiàn)了一個(gè)錯(cuò)誤,需要重新設(shè)計(jì)數(shù)以千計(jì)的邏輯門。庫(kù)單元的時(shí)序、面積和功耗是與特定制造工藝相關(guān)的。如果改變IC制造商,可能意味著重新設(shè)計(jì)整個(gè)電路,還可能要改變?cè)O(shè)計(jì)方法。設(shè)計(jì)技術(shù)是不能重用的。設(shè)計(jì)是特定于工藝的,難以改變,也難以重用。
EDA技術(shù)自動(dòng)邏輯綜合工具解決方式:采用高層次設(shè)計(jì)方法,人為錯(cuò)誤會(huì)更少。高層次設(shè)計(jì)無(wú)需過多關(guān)注設(shè)計(jì)約束。邏輯綜合工具確保滿足所有的約束。從高層次設(shè)計(jì)到邏輯門的轉(zhuǎn)換非常迅速。模塊重新設(shè)計(jì)僅需在寄存器傳輸級(jí)完成,重新綜合獲得門級(jí)網(wǎng)表。推測(cè)容易驗(yàn)證。高層描述不變,只把時(shí)序約束從20ns變到15ns,重新綜合。邏輯綜合工具在整體上優(yōu)化了設(shè)計(jì)。如果發(fā)現(xiàn)門級(jí)設(shè)計(jì)中有錯(cuò)誤,設(shè)計(jì)者回頭修改高層次描述以消除錯(cuò)誤。在不考慮IC制造工藝的情況下編寫高層次描述。改變工藝或者IC制造商,設(shè)計(jì)者只需在新工藝的標(biāo)準(zhǔn)單元庫(kù)的基礎(chǔ)上使用邏輯綜合,重新綜合到邏輯門。設(shè)計(jì)重用變成了可能。邏輯綜合對(duì)數(shù)字設(shè)計(jì)行業(yè)的影響EDA技術(shù)VerilogHDL綜合RTL級(jí)風(fēng)格寄存器傳輸級(jí)層次用硬件描述語(yǔ)言(HDL)編寫設(shè)計(jì)該風(fēng)格的HDL描述采用了數(shù)據(jù)流和行為結(jié)構(gòu)相結(jié)合的方式?;赗TL的綜合邏輯綜合工具接受寄存器傳輸級(jí)HDL描述并把它轉(zhuǎn)化為優(yōu)化的門級(jí)網(wǎng)表。用于把行為描述轉(zhuǎn)換成RTL描述的行為綜合工具發(fā)展緩慢EDA技術(shù)可綜合的verilog結(jié)構(gòu)如下所示,使用時(shí)有一定的限制。
Verilog結(jié)構(gòu)
VerilogHDL綜合EDA技術(shù)①?gòu)?qiáng)制具有周期到周期的行為,避免組合反饋②邏輯綜合忽略所有由#<delay>指定的延遲③用復(fù)位機(jī)制取代initial結(jié)構(gòu),進(jìn)行電路信號(hào)初始化中國(guó)科學(xué)技術(shù)大學(xué)軟件學(xué)院SchoolofSoftwareEngineeringofUSTCVerilogHDL綜合EDA技術(shù)Verilog中幾乎所有的操作符都可用于邏輯綜合。只有===和!==這種與x和z相關(guān)的操作符不能用于邏輯綜合。編寫表達(dá)式時(shí),推薦使用圓括號(hào)來(lái)使邏輯更清晰,達(dá)到預(yù)期的目的。如果依賴操作符的優(yōu)先級(jí),邏輯綜合工具有可能產(chǎn)生不盡人意的邏輯結(jié)構(gòu)。
Verilog操作符
VerilogHDL綜合EDA技術(shù)部分Verilog結(jié)構(gòu)的解釋
賦值語(yǔ)句賦值結(jié)構(gòu)是在RTL級(jí)用于描述組合邏輯的最基本的結(jié)構(gòu)。轉(zhuǎn)換成的門級(jí)電路實(shí)現(xiàn):如果a,b,c和out是兩位的向量[1:0],上面的賦值語(yǔ)句會(huì)被轉(zhuǎn)換成兩個(gè)完全相同的電路,分別對(duì)應(yīng)其中一位。EDA技術(shù)
用到算術(shù)操作符例如設(shè)計(jì)一個(gè)一位全加器,假設(shè)邏輯綜合工具內(nèi)部有一位全加器可用,邏輯綜合工具直接調(diào)用內(nèi)部全加器模塊,如果綜合多位加法器,會(huì)進(jìn)行優(yōu)化,可能得到一個(gè)不同的結(jié)果。使用條件操作符(多路選擇器)綜合后:部分Verilog結(jié)構(gòu)的解釋EDA技術(shù)
if-else語(yǔ)句
單個(gè)if-else語(yǔ)句被轉(zhuǎn)換成多路選擇器,控制信號(hào)是if子句中的信號(hào)或者變量。多個(gè)if-else-if語(yǔ)句不會(huì)綜合成龐大的多路選擇器。
case語(yǔ)句
case語(yǔ)句用于生成多路選擇器。龐大的case語(yǔ)句可以用來(lái)生成龐大的多路選擇器。
for循環(huán)語(yǔ)句
for循環(huán)可用于產(chǎn)生級(jí)聯(lián)的鏈?zhǔn)浇M合邏輯。
always語(yǔ)句
always語(yǔ)句可用于生成時(shí)序和組合邏輯。對(duì)于時(shí)序邏輯來(lái)說,always語(yǔ)句必須由時(shí)鐘信號(hào)clk的變化所控制。部分Verilog結(jié)構(gòu)的解釋EDA技術(shù)
例:
對(duì)于組合邏輯來(lái)說,always語(yǔ)句必須由clk,reset或者preset之外的其他信號(hào)觸發(fā)(所有的觸發(fā)信號(hào)都必須寫在敏感列表中)。部分Verilog結(jié)構(gòu)的解釋EDA技術(shù)
函數(shù)語(yǔ)句
函數(shù)綜合成具有一個(gè)輸出變量的組合模塊。輸出變量可以是標(biāo)量或者向量。
中國(guó)科學(xué)技術(shù)大學(xué)軟件學(xué)院SchoolofSoftwareEngineeringofUSTC部分Verilog結(jié)構(gòu)的解釋EDA技術(shù)邏輯綜合流程設(shè)計(jì)者在高層次使用RTL描述設(shè)計(jì)。功能正確后輸入到邏輯綜合工具RTL描述被邏輯綜合工具轉(zhuǎn)換為一個(gè)未經(jīng)優(yōu)化的內(nèi)部中間表示。不考慮面積、時(shí)序和功耗等設(shè)計(jì)約束,僅完成簡(jiǎn)單的內(nèi)部資源分配。邏輯綜合工具根據(jù)內(nèi)部的數(shù)據(jù)結(jié)構(gòu)在內(nèi)部表示設(shè)計(jì)。刪除冗余邏輯,大量使用與工藝無(wú)關(guān)的布爾邏輯優(yōu)化技術(shù),產(chǎn)生該設(shè)計(jì)優(yōu)化后的內(nèi)部表示。設(shè)計(jì)被映射到需要的目標(biāo)工藝,滿足約束要求生成由目標(biāo)工藝部件所描述的優(yōu)化后的門級(jí)網(wǎng)表。如果該網(wǎng)表滿足要求的約束,就制作最終版圖。否則,修改RTL描述或約束EDA技術(shù)工藝庫(kù)
單元的集合稱為工藝庫(kù)。單元描述信息:功能、版圖面積、時(shí)序信息、功耗設(shè)計(jì)約束
設(shè)計(jì)約束通常包含下列內(nèi)容:
1.
時(shí)序。電路必須滿足一定的時(shí)序要求。一個(gè)內(nèi)部的靜態(tài)時(shí)序分析器會(huì)檢查時(shí)序。
2.
面積。最終的版圖面積不能超過一定的限制。
3.功耗。電路功耗不能超過一定的界限。
一般來(lái)說,面積和時(shí)序約束之間有一個(gè)相反的關(guān)系。
邏輯綜合流程EDA技術(shù)設(shè)計(jì)說明設(shè)計(jì)一個(gè)具有如下說明的四位數(shù)值比較器IC芯片:
設(shè)計(jì)名稱是magnitude_comparator。輸入A和B是4位輸入,輸入端A和B不會(huì)出現(xiàn)x或者z值。如果A大于B,那么輸出A_gt_B為真。如果A小于B,那么輸出A_lt_B為真。如果A等于B,那么輸出A_eq_B為真。數(shù)值比較器電路必須盡可能快,為提高速度,可以犧牲面積。
邏輯綜合流程EDA技術(shù)RTL描述工藝庫(kù)每個(gè)單元的功能、時(shí)序、面積和功耗都在工藝庫(kù)中說明邏輯綜合流程EDA技術(shù)設(shè)計(jì)約束
只有一個(gè)設(shè)計(jì)約束:優(yōu)化最終電路,獲得最快時(shí)序邏輯綜合邏輯綜合工具讀取數(shù)值比較器的RTL描述。把針對(duì)目標(biāo)工藝abc_100的設(shè)計(jì)約束和工藝庫(kù)提供給邏輯綜合工具。邏輯綜合工具進(jìn)行必要的優(yōu)化,并產(chǎn)生針對(duì)abc_100工藝優(yōu)化后的門級(jí)描述。最終優(yōu)化后的門級(jí)描述
邏輯綜合工具產(chǎn)生最終的門級(jí)描述。門級(jí)電路的邏輯圖
邏輯綜合工具為該電路生成的門級(jí)Verilog描述。IC制造
邏輯綜合流程EDA技術(shù)門級(jí)網(wǎng)表的驗(yàn)證
功能驗(yàn)證:
最初編寫的RTL模塊和其綜合后的門級(jí)模塊用同一個(gè)測(cè)試激勵(lì)模塊進(jìn)行測(cè)試。比較它們的輸出結(jié)果,找出其中的不一致。對(duì)于門級(jí)描述,必須有一個(gè)由工藝廠商提供的仿真庫(kù)支持。
時(shí)序驗(yàn)證:
通常使用時(shí)序仿真或者靜態(tài)時(shí)序驗(yàn)證工具來(lái)檢查門級(jí)網(wǎng)表的時(shí)序。如果違反任何時(shí)序約束,設(shè)計(jì)者必須重新設(shè)計(jì)RTL模塊或者改變?cè)O(shè)計(jì)約束。循環(huán)反復(fù),直到滿足時(shí)序要求為止。EDA技術(shù)邏輯綜合建模技巧:Verilog編碼風(fēng)格使用有意義的信號(hào)和變量名稱
信號(hào)和變量的命名應(yīng)具有意義,使代碼自身有清晰的注釋信息。避免混合使用上升沿和下降沿觸發(fā)的觸發(fā)器
混合使用上升沿和下降沿觸發(fā)的觸發(fā)器可能在時(shí)鐘樹中引入反向器和緩沖器。這將在電路中引入時(shí)鐘偏斜。使用基本構(gòu)造模塊與使用連續(xù)賦值語(yǔ)句的對(duì)比
連續(xù)assign語(yǔ)句非常簡(jiǎn)潔的表示功能,通常能生成性能很好的隨機(jī)邏輯電路。但最終的邏輯結(jié)構(gòu)不一定對(duì)稱。
調(diào)用基本構(gòu)造模塊可以產(chǎn)生對(duì)稱的設(shè)計(jì),且邏輯綜合工具能更高效地優(yōu)化小模塊。但不太簡(jiǎn)潔,制約了針對(duì)變化工藝的重定向,并且通常會(huì)降低仿真器性能。EDA技術(shù)調(diào)用多路選擇器與使用if-else或者case語(yǔ)句的對(duì)比
結(jié)構(gòu)化的實(shí)現(xiàn),最好直接使用多路選擇器,更容易控制,綜合速度更快,但依賴于工藝,且表達(dá)代碼比較長(zhǎng)。
if-else和case常用于建立不依賴工藝的RTL描述。使用圓括號(hào)優(yōu)化邏輯結(jié)構(gòu)
設(shè)計(jì)者可以使用圓括號(hào)將邏輯組合起來(lái),以便于控制最終的結(jié)構(gòu),也提高了Verilog描述的可讀性。邏輯綜合建模技巧:Verilog編碼風(fēng)格EDA技術(shù)使用算術(shù)操作符*,/和%與使用現(xiàn)有構(gòu)造模塊的對(duì)比
乘、除、取模操作在邏輯和面積上實(shí)現(xiàn)代價(jià)高,但不依賴于工藝;設(shè)計(jì)自定義模塊完成乘、除和取模操作,可能要花費(fèi)大量的時(shí)間,并且RTL描述會(huì)變得與工藝相關(guān)。注意多條賦值語(yǔ)句對(duì)同一個(gè)變量賦值的情況
多條賦值語(yǔ)句對(duì)同一個(gè)變量賦值可能導(dǎo)致生成意料之外的電路。前面的賦值可能被忽略,只最后一次賦值起作用。
顯式地定義if-else或者case語(yǔ)句
在if-else或者case語(yǔ)句中必須說明各種可能的條件分支,否則可能產(chǎn)生電平敏感的鎖存器,而不是多路選擇器。邏輯綜合建模技巧:Verilog編碼風(fēng)格EDA技術(shù)設(shè)計(jì)劃分水平劃分
使用位劃分方式為邏輯綜合工具提供更小的模塊進(jìn)行優(yōu)化,這種方式稱為水平劃分。
降低了問題的復(fù)雜度,為每個(gè)模塊產(chǎn)生了更為優(yōu)化的結(jié)果。EDA技術(shù)垂直劃分(編寫的大模塊包含多種功能)
把模塊按功能劃分成更小的子模塊。
設(shè)計(jì)劃分EDA技術(shù)并行化設(shè)計(jì)結(jié)構(gòu)
用更多的資源來(lái)生成運(yùn)行速度更快的設(shè)計(jì)。
將順序操作轉(zhuǎn)換成并行操作,以提高運(yùn)行速度。
超前進(jìn)位加法器比較
脈動(dòng)進(jìn)位加法器
設(shè)計(jì)劃分EDA技術(shù)小結(jié)邏輯綜合:把設(shè)計(jì)的高層次描述轉(zhuǎn)換成優(yōu)化的、使用工藝庫(kù)中單元描述的門級(jí)描述。并非所有的Verilog結(jié)構(gòu)都能被邏輯綜合工具接受。邏輯綜合工具接受RTL描述、設(shè)計(jì)約束和工藝庫(kù),產(chǎn)生優(yōu)化的門級(jí)網(wǎng)表。翻譯、邏輯優(yōu)化和工藝映射是邏輯綜合工具內(nèi)部的過程,它們對(duì)用戶通常是不可見的。EDA技術(shù)通過把相同的激勵(lì)應(yīng)用到RTL描述和門級(jí)網(wǎng)表并比較輸出結(jié)果,驗(yàn)證優(yōu)化后的門級(jí)網(wǎng)表的功能。必須使用適當(dāng)?shù)腣erilog編碼技術(shù)編寫高效的RTL模塊。必須評(píng)估設(shè)計(jì)的各種選擇方案。設(shè)計(jì)劃分是用于將設(shè)計(jì)分割成更小模塊的重要技術(shù)。更小的模塊減少了綜合工具優(yōu)化的復(fù)雜度。精確的設(shè)計(jì)約束指定是邏輯綜合的重要組成部分。小結(jié)EDA技術(shù)返回EDA技術(shù)返回EDA技術(shù)編程語(yǔ)言接口(PLI)EDA技術(shù)本章學(xué)習(xí)目標(biāo)解釋在Verilog仿真中如何使用PLI子程序。定義用戶自定義系統(tǒng)任務(wù)和函數(shù)以及用戶自定義C子程序。理解用戶自定義系統(tǒng)任務(wù)的連接和調(diào)用。從概念上解釋在Verilog仿真器內(nèi)部如何表示PLI。區(qū)別并描述怎樣使用兩類PLI庫(kù)子程序:access子程序和utility子程序。學(xué)習(xí)如何創(chuàng)建用戶自定義系統(tǒng)任務(wù)和函數(shù),并學(xué)習(xí)如何在仿真中使用它們。EDA技術(shù)概述在設(shè)計(jì)時(shí),經(jīng)常會(huì)遇到一些特殊情況,需要通過定義自己的系統(tǒng)任務(wù)和函數(shù)才能實(shí)現(xiàn)設(shè)計(jì)目標(biāo)。編程語(yǔ)言接口提供了一組接口子程序,用于訪問內(nèi)部的數(shù)據(jù)表示,并可以提取仿真環(huán)境信息。用戶自定義的系統(tǒng)任務(wù)和函數(shù)可以通過這組預(yù)定義的PLI接口子程序來(lái)創(chuàng)建。EDA技術(shù)VerilogPLI的發(fā)展經(jīng)歷了三代。1.任務(wù)/函數(shù)(tf_)子程序(又稱實(shí)用子程序)。主要用于:用戶自定義的任務(wù)和函數(shù)、實(shí)用函數(shù)、回調(diào)機(jī)制和把數(shù)據(jù)寫到輸出設(shè)備。2.存?。╝cc_)子程序??芍苯釉赩erilogHDL內(nèi)部數(shù)據(jù)結(jié)構(gòu)中進(jìn)行面向?qū)ο蟮臄?shù)據(jù)存取。這些子程序能用于訪問和修改VerilogHDL描述的多種對(duì)象。3.Verilog過程接口(vpi_)子程序。這些子程序是acc_和tf_子程序功能擴(kuò)展的集合。概述EDA技術(shù)
難以用標(biāo)準(zhǔn)的Verilog結(jié)構(gòu)實(shí)現(xiàn)系統(tǒng)任務(wù)和函數(shù):監(jiān)控任務(wù)、激勵(lì)任務(wù)、調(diào)試任務(wù)和復(fù)雜操作等。
提取設(shè)計(jì)信息,比如層次、互連、扇出等。
編寫專用或自定義的輸出顯示子程序。
為仿真提供激勵(lì)的子程序也可以用PLI編寫。
普通的基于Verilog的應(yīng)用軟件,可以與任何Verilog仿真器一起工作,因?yàn)镻LI接口提供了統(tǒng)一的存取方式。概述EDA技術(shù)使用PLI子程序的規(guī)范仿真流程用戶自定義系統(tǒng)任務(wù)連接到一個(gè)用戶自定義C子程序以PLI接口子程序標(biāo)準(zhǔn)庫(kù)的方式實(shí)現(xiàn)PLI接口允許用戶:讀取/修改內(nèi)部數(shù)據(jù)結(jié)構(gòu)、存取仿真環(huán)境EDA技術(shù)PLI任務(wù)的連接和調(diào)用功能:當(dāng)系統(tǒng)任務(wù)$hello_verilog被調(diào)用時(shí),輸出一條消息“HelloVerilogWorld”。首先,實(shí)現(xiàn)該任務(wù)的C子程序必須用PLI庫(kù)子程序定義。hello_verilog.c中的子程序hello_verilog如下:io_printf是PLI庫(kù)子程序,其功能類似于printf。hello_verilog是用戶自定義C子程序$hello_verilog是用戶自定義系統(tǒng)任務(wù)EDA技術(shù)仿真器要連接到C子程序hello_verilog,
意識(shí)到存在一個(gè)名為$hello_verilog的新系統(tǒng)任務(wù)。生成一個(gè)包含$hello_verilog新系統(tǒng)任務(wù)的特殊的二進(jìn)制可執(zhí)行文件,設(shè)文件名為hverilog,這已不是慣用的運(yùn)行仿真器的二進(jìn)制可執(zhí)行文件。仿真時(shí),不要運(yùn)行慣用的仿真器可執(zhí)行文件(如Verilog-XL),只需要運(yùn)行hverilog就可以。用戶自定義任務(wù)被連接到Verilog仿真器中,可以像任何其他Verilog系統(tǒng)任務(wù),通過關(guān)鍵字$hello_verilog來(lái)調(diào)用。①
PLI任務(wù)的連接PLI任務(wù)的連接和調(diào)用EDA技術(shù)hello.v中定義了一個(gè)名為hello_top的Verilog模塊,該模塊調(diào)用了用戶自定義任務(wù)$hello_verilog:輸出結(jié)果:
②
PLI任務(wù)的調(diào)用PLI任務(wù)的連接和調(diào)用EDA技術(shù)PLI任務(wù)的連接和調(diào)用③
添加和調(diào)用PLI任務(wù)的典型流程EDA技術(shù)PLI內(nèi)部數(shù)據(jù)表示每個(gè)模塊被看做一組對(duì)象類型,對(duì)象類型是Verilog中定義的元素,如:
模塊實(shí)例、模塊端口、模塊的端到端路徑以及模塊之間的路徑頂層模塊原語(yǔ)實(shí)例和原語(yǔ)端口(terminal)線網(wǎng)類型(net)、寄存器類型(register)、參數(shù)類型(parameter和specparam)整型、時(shí)間型和實(shí)型變量時(shí)序檢查名事件每種對(duì)象類型都有一個(gè)相應(yīng)集合,包含模塊中所有該類型的對(duì)象,所有對(duì)象類型的集合互連在一起。EDA技術(shù)PLI內(nèi)部數(shù)據(jù)表示雙向EDA技術(shù)PLI內(nèi)部數(shù)據(jù)表示包括原語(yǔ)實(shí)例、原語(yǔ)實(shí)例端口(terminal)、模塊端口和網(wǎng)絡(luò)。其他對(duì)象類型在本模塊中沒有出現(xiàn)
EDA技術(shù)EDA技術(shù)PLI庫(kù)子程序PLI庫(kù)子程序提供了對(duì)表示設(shè)計(jì)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)進(jìn)行存取的標(biāo)準(zhǔn)接口,用戶自定義C子程序是用PLI庫(kù)子程序編寫的。
PLI庫(kù)子程序有兩大類:
存取子程序----提供了對(duì)內(nèi)部數(shù)據(jù)結(jié)構(gòu)訪問的接口,它允許用戶的C子程序遍歷數(shù)據(jù)結(jié)構(gòu)并提取與設(shè)計(jì)有關(guān)的信息。
實(shí)用子程序----主要用于在Verilog和編程語(yǔ)言的邊界之間傳送數(shù)據(jù)并做一些日常管理維護(hù)工作。EDA技術(shù)PLI庫(kù)子程序詳細(xì)參見《VerilogHDL數(shù)字設(shè)計(jì)與綜合》(第二版)的附錄BEDA技術(shù)PLI庫(kù)子程序存取子程序通常也稱為acc子程序。可以完成下列工作:1.從內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有關(guān)項(xiàng)讀取特定對(duì)象的信息2.把特定對(duì)象的信息寫入內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有關(guān)項(xiàng)可以讀取設(shè)計(jì)中的對(duì)象的類型:1.模塊實(shí)例、模塊端口、模塊的端到端路徑以及模塊之間的路徑2.頂層模塊3.原語(yǔ)實(shí)例和原語(yǔ)端口4.網(wǎng)絡(luò)類型(net)、寄存器類型(register)、參數(shù)類型(parameter和specparam)、整型、時(shí)間型和實(shí)型變量5.時(shí)序檢查6.命名事件①存取子程序EDA技術(shù)PLI庫(kù)子程序存取子程序的特征
ⅰ存取子程序總是以前綴acc_開頭。
ⅱ使用存取子程序的用戶自定義C子程序必須調(diào)用子程序acc_initialize(),以初始化環(huán)境。退出時(shí),用戶自定義子程序必須調(diào)用acc_close()。
ⅲ
如果一個(gè)文件中用到存取子程序,那么必須包含頭文件acc_user.h。所有存取子程序的數(shù)據(jù)類型和常量都預(yù)定義在文件acc_user.h中。ⅳ存取子程序使用句柄的概念來(lái)訪問對(duì)象。對(duì)象句柄標(biāo)識(shí)符由關(guān)鍵字handle聲明。EDA技術(shù)PLI庫(kù)子程序存取子程序的分類ⅰ句柄子程序。返回句柄給設(shè)計(jì)中對(duì)象,名字以前綴acc_handle_開頭。ⅱ后繼子程序。返回句柄給設(shè)計(jì)中特定類型對(duì)象集合中的下一個(gè)對(duì)象。以前綴acc_next_開頭,以引用的對(duì)象作為參數(shù)。ⅲ值變鏈接(VCL)子程序。從監(jiān)視對(duì)象值變化的對(duì)象列表中添加和刪除對(duì)象。以前綴acc_vcl_開頭,沒有返回值。ⅳ取值(fetch)子程序。提取各種對(duì)象信息,比如完整的層次路徑名、相對(duì)名以及其他屬性信息。以前綴acc_fetch_開頭。ⅴ實(shí)用存取子程序。執(zhí)行與存取子程序相關(guān)的雜項(xiàng)操作。如,acc_initialize()和acc_close()都是實(shí)用子程序。ⅵ修改子程序。修改內(nèi)部數(shù)據(jù)結(jié)構(gòu)??蓞⒖糏EEEStandardVerilogHardwareDescriptionLanguage文檔。EDA技術(shù)PLI庫(kù)子程序存取子程序例1:獲取模塊端口列表功能描述:寫一個(gè)用戶自定義系統(tǒng)任務(wù)$get_ports尋找模塊中的所有input,output和inout端口的完整層次名稱;計(jì)算input,output和inout端口的數(shù)目。
這個(gè)用戶自定義系統(tǒng)任務(wù)在Verilog中以$get_ports(“<hierarchical_module_name>”)的形式調(diào)用。文件get_ports.c的用戶自定義C子程序get_ports:EDA技術(shù)EDA技術(shù)PLI庫(kù)子程序頂層模塊:仿真輸出:EDA技術(shù)PLI庫(kù)子程序②實(shí)用子程序?qū)嵱米映绦虻奶卣?/p>
1.實(shí)用子程序總是以前綴tf_開頭。2.文件使用實(shí)用子程序,必須包含頭文件veriuser.h。實(shí)用子程序的類型
1.獲取Verilog系統(tǒng)調(diào)用任務(wù)的信息2.獲取參數(shù)列表信息3.獲取參數(shù)值4.把參數(shù)新值回傳給調(diào)用它的系統(tǒng)任務(wù)5.監(jiān)視參數(shù)值的改變6.獲取仿真時(shí)間和被調(diào)度事件的信息7.執(zhí)行日常管理維護(hù)任務(wù),例如保存工作區(qū),保存任務(wù)指針8.執(zhí)行l(wèi)ong類型的算術(shù)運(yùn)算9.顯示信息10.掛起、終止、保存和恢復(fù)仿真EDA技術(shù)PLI庫(kù)子程序?qū)嵱米映绦蚺e例
功能描述:定義自己的系統(tǒng)任務(wù)$my_stop_finish,根據(jù)不同的參數(shù)值,分別完成掛起和終止兩項(xiàng)任務(wù),如下表所示。EDA技術(shù)PLI庫(kù)子程序程序源碼:見書《VerilogHDL數(shù)字設(shè)計(jì)與綜合(第二版)》P197---P198頂層模塊:仿真輸出:EDA技術(shù)實(shí)例(計(jì)數(shù)器)EDA技術(shù)EDA技術(shù)EDA技術(shù)modelsim仿真器調(diào)用PLI,需要?jiǎng)?chuàng)建函數(shù)列出所有在verilog中要使
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版牛只運(yùn)輸車輛駕駛?cè)藛T培訓(xùn)與考核合同3篇
- 二零二五年度暖氣設(shè)備安裝工程安全生產(chǎn)管理合同3篇
- 二零二五年度農(nóng)業(yè)科技創(chuàng)新農(nóng)副業(yè)承包合同書模板4篇
- 美容院與互聯(lián)網(wǎng)平臺(tái)合作開展直播帶貨合同4篇
- 公共管理導(dǎo)論知到智慧樹章節(jié)測(cè)試課后答案2024年秋西北大學(xué)
- 買賣雙方2024年蔬菜交易合同3篇
- 2025年度木門原材采購(gòu)合同4篇
- 二零二五寵物醫(yī)院獸醫(yī)職務(wù)聘任與培訓(xùn)合同4篇
- 2025年度南京市二手房買賣合同電子版范本4篇
- 二零二五版農(nóng)業(yè)綜合開發(fā)農(nóng)資采購(gòu)項(xiàng)目合同4篇
- 基因突變和基因重組(第1課時(shí))高一下學(xué)期生物人教版(2019)必修2
- 內(nèi)科學(xué)(醫(yī)學(xué)高級(jí)):風(fēng)濕性疾病試題及答案(強(qiáng)化練習(xí))
- 音樂劇好看智慧樹知到期末考試答案2024年
- 辦公設(shè)備(電腦、一體機(jī)、投影機(jī)等)采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 查干淖爾一號(hào)井環(huán)評(píng)
- 案卷評(píng)查培訓(xùn)課件模板
- 2024年江蘇省樣卷五年級(jí)數(shù)學(xué)上冊(cè)期末試卷及答案
- 人教版初中英語(yǔ)七八九全部單詞(打印版)
- 波浪理論要點(diǎn)圖解完美版
- 金融交易數(shù)據(jù)分析與風(fēng)險(xiǎn)評(píng)估項(xiàng)目環(huán)境敏感性分析
- 牛頓環(huán)與劈尖實(shí)驗(yàn)論文
評(píng)論
0/150
提交評(píng)論