VHDL習(xí)題解答_第1頁
VHDL習(xí)題解答_第2頁
VHDL習(xí)題解答_第3頁
VHDL習(xí)題解答_第4頁
VHDL習(xí)題解答_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、VHDL 程序設(shè)計教程習(xí)題參考解答第一章 習(xí)題參考答案1什么是VHDL?VHDL的實現(xiàn)有哪幾種形態(tài)?硬件描述語言(Hardware Description Language,HDL),顧名思義,是電子系統(tǒng)硬件行為描述、結(jié)構(gòu)描述、數(shù)據(jù)流描述的語言。VHDL語言的英文全名是Very High Speed Integrated Circuit Hardware Description Language,即超高速集成電路硬件描述語言。2簡述VHDL的發(fā)展史。1981年6月VHDL工作小組成立,提出了一個滿足電子設(shè)計各種要求的能夠作為工業(yè)標(biāo)準(zhǔn)的硬件描述語言。1983年第三季度,由IBM公司、TI公司、I

2、nter metrics公司簽約,組成開發(fā)小組,工作任務(wù)是提出語言版本和開發(fā)軟件環(huán)境。1986年IEEE標(biāo)準(zhǔn)化組織開始工作,討論VHDL語言標(biāo)準(zhǔn),歷時一年有余,于1987年12月通過標(biāo)準(zhǔn)審查,VHDL1.0版本宣布實施,即IEEE STD 1076-1987。1993年經(jīng)過重新修訂,發(fā)布VHDL2.0版本,從而形成新的標(biāo)準(zhǔn)即IEEE STD 1076-1993。2006年VHDL發(fā)布VHDL3.0版本;2008年8月,VHDL 4.0版本發(fā)布,解決了3.0版本中發(fā)現(xiàn)的多個問題。2009年1月,IEEE公布了VHDL 4.0的標(biāo)準(zhǔn)版本,最新VHDL標(biāo)準(zhǔn)IEEE 1076-2008在2009年1月

3、實施。3. 詳述VHDL設(shè)計IP模塊的流程。第1種設(shè)計形態(tài),VHDL程序以IP模塊的形態(tài)存在,VHDL-IP設(shè)計流程如圖1.6所示。IP模塊是與集成電路工藝無關(guān)的芯片設(shè)計方案,可以移植到不同的設(shè)計環(huán)境。IP產(chǎn)品形態(tài)有規(guī)范,有IP包裝規(guī)則和復(fù)用規(guī)則,是原生態(tài)的芯片硬件設(shè)計產(chǎn)品。圖1.6 VHDL-IP設(shè)計流程4. 簡答VHDL設(shè)計用FPGA實現(xiàn)的意義。可編程器件FPGA具有容量大、密度高等特點,是科學(xué)實驗、小批量生產(chǎn)、樣機(jī)研制的載體。這種產(chǎn)品形態(tài)可以作為科學(xué)實驗、小批量產(chǎn)品研發(fā)的最佳實現(xiàn)方案。5. 敘述用VHDL設(shè)計ASIC的流程。VHDL設(shè)計的ASIC芯片實現(xiàn),流程如圖1.8所示。工程項目的V

4、HDL功能設(shè)計與某一集成電路工藝相結(jié)合,形成集成電路版圖設(shè)計,并在晶圓上實現(xiàn)實現(xiàn)集成電路芯片的制造。圖1.8 VHDL- ASIC 設(shè)計流程工程項目經(jīng)過集成電路前端設(shè)計(VHDL設(shè)計、功能時序設(shè)計)、后端設(shè)計(版圖設(shè)計),后端仿真、設(shè)計規(guī)則檢查(DRC)、形式驗證后的版圖,交付集成電路芯片代工廠進(jìn)行工業(yè)化大規(guī)模生產(chǎn)。6. 怎樣建立一個基本VHDL設(shè)計環(huán)境?把VHDL語言輸入界面、編輯界面、編譯工具、器件庫、函數(shù)庫的組合稱為VHDL設(shè)計環(huán)境。許多EDA工具均提供了VHDL設(shè)計環(huán)境,如ALTERA公司的Quartus II。7. 開展IP 設(shè)計需要什么條件? VHDL程序以IP模塊的形態(tài)存在。IP

5、模塊是與集成電路工藝無關(guān)的芯片設(shè)計方案,可以移植到不同的設(shè)計環(huán)境。IP產(chǎn)品形態(tài)有規(guī)范,有IP包裝規(guī)則和復(fù)用規(guī)則,是原生態(tài)的芯片硬件設(shè)計產(chǎn)品。開展IP設(shè)計需要EDA工具提供VHDL語言編譯環(huán)境。8. 片上系統(tǒng)設(shè)計的知識要求和實驗條件有那些? 片上系統(tǒng)設(shè)計需要SOC系統(tǒng)知識,嵌入式計算機(jī)體系結(jié)構(gòu)知識,IP復(fù)用知識,底層驅(qū)動軟件編寫技能。實驗條件,需要相對高級、復(fù)雜一些的FPGA開發(fā)板。第二章 習(xí)題參考答案1什么是對象?對象有哪幾種類型?在VHDL語言中,對象(Objects)是具有特定數(shù)據(jù)類型且可以被賦值的客體。VHDL語言中的對象有4類:常量(Constant)、信號(Signal)、變量(Va

6、riable)和文件(Files)。2變量和信號的區(qū)別是什么?變量(Variable)是一個局部量,主要用于對臨時數(shù)據(jù)進(jìn)行局部存儲。信號(Signal)可用于電路內(nèi)部硬件設(shè)計實體相互連接的抽象表示。信號是全局量,通常在實體說明、結(jié)構(gòu)體和包中使用。3VHDL語言定義的標(biāo)準(zhǔn)數(shù)據(jù)類型有哪些?VHDL語言預(yù)定義的數(shù)據(jù)類型包括: 整數(shù)類型(Integer Type)、 實數(shù)類型或浮點類型(Real Type Floating Type)、 位類型(Bit Type)、 位矢量類型(Bit_Vector Type), 布爾類型(Boolean Type)、 字符類型(Character Type), 時間

7、類型或物理類型(Time Type Physical Type)、 錯誤類型(Note,Warning,Error,F(xiàn)ailure Type), 自然數(shù)、整數(shù)類型(Natural Type) 字符串類型(Tring Type)。用戶自定義的數(shù)據(jù)類型:枚舉類型(Enumerated Type)、 數(shù)組類型(Array Type)、 存取類型(Access Type)、 文件類型(Files Type) 記錄類型(Recode Type)。4哪些數(shù)據(jù)類型不能被綜合?物理類型是不能被綜合的。5簡述VHDL語言操作符的優(yōu)先級。運(yùn)算符的優(yōu)先級優(yōu)先級順序運(yùn)算操作符類型操 作 符操作符功能高低邏輯運(yùn)算符NO

8、T取非算術(shù)運(yùn)算符ABS取絕對值*指數(shù)運(yùn)算REM取余MOD求模/除法*乘-負(fù)+正并置運(yùn)算符&并置算術(shù)運(yùn)算符-減+加關(guān)系運(yùn)算符>=大于等于<=小于等于>大于<小于/=不等于=等于邏輯運(yùn)算符XOR異或NOR或非NAND與非OR或AND與6哪3種方法可用來進(jìn)行類型轉(zhuǎn)換?有3種方法:類型標(biāo)記法、函數(shù)轉(zhuǎn)換法和常數(shù)轉(zhuǎn)換法。7. 狀態(tài)運(yùn)算符的有哪兩個值? “TRUE”,和“FALSE”。8. 標(biāo)示符與保留字有何不同?對VHDL編程有何約束?標(biāo)識符用于命名實體、結(jié)構(gòu)體、信號和變量等。VHDL語言中的保留字不可以用于標(biāo)識符的命名中,保留字有些用于VHDL程序設(shè)計的關(guān)鍵字。 第三章

9、習(xí)題參考答案1簡述VHDL設(shè)計實體的結(jié)構(gòu)。實體(Entity)提供了被設(shè)計系統(tǒng)或器件的公共信息,指明了輸入與輸出引腳。實體由實體名、類型說明、端口說明、實體說明部分和實體語句部分組成。實體的一般格式為:ENTITY 實體名 IS GENERIC語句; -可選項(參數(shù)說明) PORT語句; -必需項(端口說明) 實體說明部分; -可選項 BEGIN 實體語句部分;END ENTITY 實體名;2用結(jié)構(gòu)體的3種描述法設(shè)計一個4位計數(shù)器。3什么叫進(jìn)程?簡述進(jìn)程的工作方式。進(jìn)程語句不是一條語句,而是一段程序結(jié)構(gòu),這段程序描述了一個靠敏感信號觸發(fā)的硬件模塊反復(fù)執(zhí)行的工作過程。進(jìn)程語句(Process)是

10、并行處理語句,即在結(jié)構(gòu)體中多個進(jìn)程語句是同時并發(fā)運(yùn)行的。進(jìn)程語句的一般書寫形式為:進(jìn)程名:PROCESS敏感信號表 變量聲明語句 BEGIN 順序語句 END PROCESS 進(jìn)程名;進(jìn)程語句中一般帶有一個敏感信號表。這些信號無論哪一個發(fā)生變化都將啟動進(jìn)程,進(jìn)程中的程序?qū)纳系较马樞驁?zhí)行一遍,產(chǎn)生新的結(jié)果并輸出。當(dāng)進(jìn)程執(zhí)行完畢,就返回進(jìn)程開始處,等待敏感量的新變化,引發(fā)進(jìn)程的下一次執(zhí)行。周而復(fù)始,循環(huán)往復(fù),以至無窮。 4什么叫模塊?區(qū)分模塊與進(jìn)程。模塊(Block)語句是結(jié)構(gòu)體中的一系列并行語句的組合,適用于復(fù)雜項目的模塊化設(shè)計。模塊調(diào)用必須說明屬性、配置和連接關(guān)系。模塊語句的一般格式如下:塊

11、名:BLOCK 控制條件的布爾表達(dá)式 ISGENERIC子句 GENERIC映射; 端口子句 端口映射; 塊說明部分 BEGIN 并行語句A ; 并行語句B ;END BLOCK塊名;模塊是一個獨(dú)立的子結(jié)構(gòu),可以包含PORT語句和GENERIC語句,允許設(shè)計者通過這兩個語句將模塊的內(nèi)部信號變化傳遞給模塊的外部信號。同樣,也可以將模塊的外部信號變化傳遞給模塊的內(nèi)部信號。進(jìn)程不是獨(dú)立的硬件結(jié)構(gòu)描述,進(jìn)程用于含有觸發(fā)條件的、需要反復(fù)運(yùn)行的程序結(jié)構(gòu)。5. 簡述過程與函數(shù)的區(qū)別。過程語句(procedure)結(jié)構(gòu)過程語句的一般格式如下:PROCEDURE過程名|運(yùn)算符號generic 子句;generi

12、c映射; parameter(參數(shù)列表)IS 子程序聲明區(qū);BEGIN 順序處理語句;END PROCEDURE 過程名|運(yùn)算符號;過程語句中的輸入輸出參數(shù)列在過程名后面的括號里,一般地,IN作為常量,OUT和INOUT作為變量。當(dāng)過程語句在主程序調(diào)用結(jié)束后,將變量OUT和INOUT拷貝到調(diào)用者的信號和變量中。函數(shù)是具有某一特定功能的程序段,能夠被主程序調(diào)用。函數(shù)被調(diào)用時,首先要初始化,執(zhí)行處理功能后,將處理結(jié)果傳遞給主程序。函數(shù)內(nèi)部的值不能保持,函數(shù)返回后,才能被再次調(diào)用,再次初始化。VHDL程序中函數(shù)語句的結(jié)構(gòu)與其他語句一樣,也有規(guī)定的書寫格式:FUNCTION函數(shù)名|運(yùn)算符號generi

13、c子句;generic映射;parameter(參數(shù)列表)RETURN數(shù)據(jù)類型名 IS子程序聲明區(qū);BEGIN 順序處理語句; RETURN返回變量名;ENDFUNCTION函數(shù)名|運(yùn)算符號;6. 用結(jié)構(gòu)化描述方法設(shè)計一個加法器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY half_adder IS -實體名half_adderPORT(a,b:IN Bit; S,C:OUT Bit); -實體端口說明END ENTITY half_adder;ARCHITECTURE addr1 OF half_add IS-結(jié)構(gòu)體1的名字為addr1BE

14、GIN S <= a XOR b; C <= a AND b;END ARCHITECTURE addr1;- - - - - - - - - - - - - ARCHITECTURE addr2 OF half IS -結(jié)構(gòu)體2的名字為addr2BEGIN example:block -模塊名example PORT(a,b: IN Bit; -端口子句 s,c: OUT Bit); PORT MAP (a,b,s,c); -端口映射BEGIN P1: PROCESS (a,b) IS -進(jìn)程1的標(biāo)號P1 BEGIN s <= a XOR b; END PROCESS P1

15、; P2: PROCESS (a,b) IS -進(jìn)程2的標(biāo)號P2 BEGIN c <= a and b; END PROCESS P2;END Block example;END ARCHITECTURE addr2;7. 采用多模塊設(shè)計方法設(shè)計一個日歷時鐘 見教材。8. 單模塊的端口信號與芯片引腳是什么關(guān)系?PORT MAP語句通過映射實現(xiàn)了block塊內(nèi)信號和結(jié)構(gòu)體信號的連接,實現(xiàn)了實體端口引腳的連接,當(dāng)實體端口信號發(fā)生變化時,通過映射,block塊內(nèi)信號也會發(fā)生變化,即這種信號變化被傳遞到了塊內(nèi),block塊的行為根據(jù)新的輸入信號的變化而變化。9. 多模塊的端口信號與模塊間互聯(lián)信號

16、是什么關(guān)系?一個結(jié)構(gòu)體中可以含有多個模塊,一個模塊中可以含有多個進(jìn)程。如此嵌套、循環(huán),就構(gòu)成一個復(fù)雜的電子系統(tǒng)。模塊的端口信號用于模塊間的互聯(lián)信號。多模塊構(gòu)成的新系統(tǒng),端口信號重新定義。第四章 習(xí)題參考答案1 什么叫進(jìn)程?簡述進(jìn)程的工作方式。略2什么叫模塊?區(qū)分模塊與進(jìn)程。略3用結(jié)構(gòu)描述法和GENERATE語句設(shè)計一個8位移位寄存器。 上機(jī)編程并編譯實現(xiàn)。4設(shè)計一個3-8優(yōu)先級編碼器。上機(jī)編程并編譯實現(xiàn)。5設(shè)計一個4-16譯碼器。上機(jī)編程并編譯實現(xiàn)。6. 設(shè)計一個十進(jìn)制計數(shù)器。上機(jī)編程并編譯實現(xiàn)。7. 用生成語句設(shè)計一個數(shù)組存儲陣列。上機(jī)編程并編譯實現(xiàn)。8. 用斷言語句、report語句,編寫

17、一段測試診斷報告VHDL程序。上機(jī)編程并編譯實現(xiàn)。第五章 習(xí)題參考答案1配置語句的書寫格式是怎樣的?配置的一般書寫格式為:CONFIGURATION 配置名 OF 實體名 IS FOR 選配結(jié)構(gòu)體名USE ENTITY 實體名(結(jié)構(gòu)體名);GENERIC MAP 語句;PORT MAP 語句;塊配置 END FOR;END CONFIGURATION 配置名;2配置說明中的映射有哪兩種方法?形式端口與實際端口可以是名字關(guān)聯(lián)映射,也可以是位置順序關(guān)聯(lián)映射。3在配置語句中用GENERIC指定參數(shù),設(shè)計一個譯碼器。上機(jī)編程實驗。4設(shè)計一個加法器,元件例化后放入庫中備用。上機(jī)編程實驗。5簡述層次化設(shè)計

18、的過程。層次化設(shè)計是指在一個大型設(shè)計任務(wù)中,將目標(biāo)層層分解,在各個層次上分別進(jìn)行設(shè)計的方法。在有些設(shè)計中,設(shè)計者先構(gòu)建一些模塊,然后再將這些模塊組合起來,最終完成整個系統(tǒng)的設(shè)計。有人把在整個設(shè)計任務(wù)上的層面上展開行為描述的設(shè)計方法,稱為高層次設(shè)計,而對某一模塊、某一元件的結(jié)構(gòu)描述稱為底層設(shè)計。6什么是庫、程序包、子程序、過程調(diào)用、函數(shù)調(diào)用?庫(Library)用來存儲已編譯的設(shè)計單元,通過其目錄可查詢、調(diào)用其中的設(shè)計單元。包(package)用來封裝一些類別相近的元件。包是庫中一個存儲單元。多個包存儲在一個元件庫中。子程序包含過程與函數(shù)。過程與函數(shù)是兩種不同VHDL程序片段。反復(fù)完成一些數(shù)學(xué)計

19、算的元件行為,寫VHDL函數(shù)較合適;反復(fù)完成某一處理過程的元件行為,寫VHDL過程較合適。在系統(tǒng)設(shè)計中,過程的調(diào)用程序編寫,稱為過程調(diào)用,函數(shù)的調(diào)用程序的編寫,稱為函數(shù)調(diào)用。這些調(diào)用的前提是過程模塊、函數(shù)模塊在庫中已經(jīng)存在。 7. 編寫一個OR函數(shù),重載它,對不同的數(shù)據(jù)類型進(jìn)行OR運(yùn)算。上機(jī)編程實驗。8. 寫一段textio程序,并給出實驗報告。 上機(jī)編程實驗。第六章 習(xí)題參考答案1CLK信號怎樣用VHDL語言描述?時鐘上升沿的描述語句:IF clk' CURRENT_VALUE = 0 AND clk' EVENT AND clk LAST_VALUE = 1;時鐘下降沿的描

20、述語句:IF clk' CURRENT_VALUE = 1 AND clk' EVENT AND clk LAST_VALUE = 0;2異步復(fù)位怎樣用VHDL語言描述?清零語句在時鐘語句外執(zhí)行時,與時鐘無關(guān),稱謂“異步清零”。P1: PROCESS (clk,clr) BEGIN IF (clr = 0) THEN -異步清零 Q <= 0 ; ELSIF(clkEVENT AND clk = 1 ) THEN Q <= d ; -時鐘上升沿時刻,q=d; END IF; END PROCESS P1;3設(shè)計一個8位循環(huán)移位寄存器。學(xué)生上機(jī)編程實踐4. 設(shè)計一個六

21、十進(jìn)制計數(shù)器。學(xué)生上機(jī)編程實踐5. 設(shè)計一個八位編碼器。學(xué)生上機(jī)編程實踐6. 設(shè)計一個三八譯碼器。學(xué)生上機(jī)編程實踐7. 設(shè)計一個N位通用加法器。學(xué)生上機(jī)編程實踐8.為什么要層次化設(shè)計? 大型項目,需要多人協(xié)同設(shè)計。就需要把項目層層分解,把子項目分配給團(tuán)隊成員。 復(fù)雜項目,需要基礎(chǔ)模塊設(shè)計和頂層設(shè)計,這樣模塊間的組裝時,構(gòu)成的電子門系統(tǒng)結(jié)構(gòu)比較清晰。9Moore型狀態(tài)機(jī)和Mealy型狀態(tài)機(jī)有什么相同和不同?Moore型狀態(tài)機(jī)的輸出信號僅與現(xiàn)態(tài)相關(guān)。Mealy型狀態(tài)機(jī)輸出是現(xiàn)態(tài)和輸入的函數(shù)。兩種類型的區(qū)分如圖所示。狀態(tài)機(jī)的區(qū)分10一位有效狀態(tài)機(jī)有什么優(yōu)點?一般情況下,運(yùn)行速度的提高,是以犧牲資源、

22、提高成本為代價的。一位有效編碼,比順序編碼方式占用資源多,這種方法在某些情況下不是最佳設(shè)計方案。當(dāng)目標(biāo)器件具有較多寄存器資源,并且寄存器之間組合邏輯較少時,一位有效編碼是一個比較合適的方法。一位有效編碼方式下狀態(tài)機(jī)輸出由狀態(tài)位譯碼輸出。這是因為各個狀態(tài)編碼僅對應(yīng)單獨(dú)的狀態(tài)位。11設(shè)計一個3位8狀態(tài)機(jī)。學(xué)生上機(jī)編程實踐12設(shè)計一個基于PCI BUS數(shù)字圖像處理芯片,畫出層次分解圖,由幾個人分別編程,再組合通調(diào),寫出一個團(tuán)體協(xié)作的案例,總結(jié)成功失敗的經(jīng)驗學(xué)生上機(jī)編程實踐第七章 習(xí)題參考答案1. 簡答功能仿真和時序仿真的不同。功能仿真:在RTL層進(jìn)行的仿真,其特點是不考慮構(gòu)成電路邏輯延遲和門時間延遲

23、,著重考慮電路在理想環(huán)境下的行為和設(shè)計結(jié)構(gòu)的一致性;時序仿真:在電路已經(jīng)映射到特定的工藝環(huán)境后,將電路的路徑延遲和門延遲考慮進(jìn)對電路行為的影響后,來比較電路的行為是否還能夠在一定條件下滿足設(shè)計要求。2. 為什么VHDL設(shè)計僅需要功能仿真? VHDL 設(shè)計硬件電路,以功能設(shè)計為設(shè)計目標(biāo),與具體的集成電路工藝無關(guān)。在不同工藝條件下,時序延時是不同的。由于VHDL設(shè)計與工藝無關(guān),因此僅需要功能仿真。當(dāng)VHDL模塊移植在不同工藝條件下,時序仿真才有意義。3. 為什么集成電路設(shè)計版圖設(shè)計需要時序仿真? 集成電路版圖設(shè)計的前提是在某一特定的工藝條件下,進(jìn)行芯片的物理層設(shè)計,由于不同工藝時序不同,所以需要時

24、序仿真,同時也需要功能仿真。在集成電路設(shè)計行業(yè)內(nèi),把版圖設(shè)計的時序仿真和功能仿真徹稱為“后仿真”。4. 熟練掌握使用仿真工具進(jìn)行功能仿真和時序仿真,并寫出仿真步驟。 學(xué)生上機(jī)實驗5. 設(shè)計一個10進(jìn)制計數(shù)器,編寫仿真Testbench,用ModeSim工具仿真出波形。 學(xué)生上機(jī)實驗6. 設(shè)計一個串行移位寄存器,編寫仿真Testbench,用ModeSim工具仿真出波形。 學(xué)生上機(jī)實驗7. 設(shè)計一個千兆網(wǎng)絡(luò)收發(fā)器,編寫仿真Testbench,用ModeSim工具仿真出波形 學(xué)生上機(jī)實驗8. 設(shè)計一個512MB容量的DDR3控制器,仿真出狀態(tài)機(jī)功能和讀寫時序波形。 學(xué)生上機(jī)實驗第八章 習(xí)題參考答案

25、1. VHPI有哪些功能?VHPI為每個功能提供了一個VHPI操作。在VHPI頭文件中,對每個功能都定義了一個vhpiCapabilitiesT類型的枚舉型常量。VHPI功能有:1. 層次化功能:用于訪問設(shè)計層次信息模型,對應(yīng)的枚舉型常量為vhpiProvidesHierachy,表示靜態(tài)解釋區(qū)域的對象、聲明的對象,以及訪問聲明過的對象的值。2. 靜態(tài)訪問功能:用于訪問設(shè)計層次信息模型,對應(yīng)的枚舉型常量為vhpiProvidesStaticAccess,表示靜態(tài)解釋語句的對象和表達(dá)式。3. 互聯(lián)功能:用于訪問設(shè)計層次信息模型中,對應(yīng)的枚舉型常量為vhpiProvidesConnectivity

26、,表示驅(qū)動、負(fù)載和端口關(guān)聯(lián)等的對象。4. 事后分析功能:用于訪問庫信息模型中的對象,以及訪問由本地靜態(tài)表達(dá)式初始化的已聲明對象的值。對應(yīng)的枚舉型常量為vhpiProvidesPostAnalysis。5. 基本外部模型功能:該功能支持外部模型的創(chuàng)建和回調(diào);支持訪問層次信息模型中,表示外部模型的對象。對應(yīng)的枚舉型常量為vhpiProvidesForeignModel。6. 高級外部模型功能:該功能支持外部驅(qū)動的創(chuàng)建、處理和事務(wù)調(diào)度。對應(yīng)的枚舉型常量為vhpiProvidesAdvanceForeignModel。 7. 保存/重啟能力:用于支持外部模型和應(yīng)用程序的保存和重啟。對應(yīng)的枚舉型常量為v

27、hpiProvidesSaveRestart。8. 重置功能:用于支持外部模型重置和回調(diào)。對應(yīng)的枚舉型常量為vhpiProvidesReset。9. 基本調(diào)試和運(yùn)行時仿真功能:對應(yīng)的枚舉型常量為vhpiProvidesDebugRuntime。支持vhpi_control、vhpi_get_time和vhpi_get_next_time函數(shù);支持信號、端口和驅(qū)動對象值的變動和更新回調(diào),支持時間和動作回調(diào)。10. 高級調(diào)試和運(yùn)行時仿真功能:支持變量的對象值的變動和更新回調(diào)以及LineOffset屬性。對應(yīng)枚舉型常量為vhpiProvidesAdvancedDebugRuntime。11. 動態(tài)解

28、釋功能:對應(yīng)的枚舉型常量為vhpiProvidesDynamicElab,這一能力集需要基本調(diào)試和運(yùn)行仿真功能、高級調(diào)試和運(yùn)行仿真功能。支持訪問動態(tài)解釋區(qū)域、聲明或構(gòu)造對象。2. 在VHPI工具運(yùn)行的各個階段分別可以進(jìn)行何類操作?VHDL工具各個運(yùn)行階段為:l vhpiRegistrationPhase:工具開始注冊、執(zhí)行階段。注冊階段包括兩個步驟,具體如下:(1)完成外部模型應(yīng)用以及外部模型的庫注冊。(2)完成每個已注冊和已激活的vhpiCbStartOfTool回調(diào)運(yùn)行。當(dāng)所有的已注冊和已激活的vhpiCbStartOfTool回調(diào)返回到VHPI工具后,注冊階段完成。在注冊階段,調(diào)用函數(shù)v

29、hpi_get(vhpiPhaseP,NULL),返回vhpiRegistrationPhase。l vhpiAnalysisPhase:開始分析設(shè)計文件階段。分析階段包含3個步驟,具體如下:(1)每個已注冊和激活的vhpiCbStartOfAnalysis回調(diào)都已運(yùn)行。(2)一個或多個設(shè)計文件已完成分析。(3)每個注冊和激活的vhpiCbEndOfAnalysis回調(diào)都已運(yùn)行。在分析階段,調(diào)用函數(shù)vhpi_get(vhpiPhaseP,NULL),返回vhpiAnalysisPhase。l vhpiElaborationPhase:開始靜態(tài)解釋(Elaboration)設(shè)計層次階段。解釋階段

30、包含下列步驟:(1)每個已注冊和激活的vhpiCbStartOfElaboration回調(diào)都已運(yùn)行。(2)設(shè)計層次已解釋。如果存在注冊過的外部結(jié)構(gòu)體,這一行為會為這些外部結(jié)構(gòu)體喚起解釋函數(shù)。(3)每個注冊和激活的vhpiCbEndOfElaboration回調(diào)都已運(yùn)行。在解釋階段,調(diào)用vhpi_get(vhpiPhaseP, NULL),返回vhpiElaborationPhase。l vhpiInitializationPhase:開始初始化階段。初始化階段用于設(shè)計層次的初始化。初始化階段可以包含為已注冊的外部結(jié)構(gòu)體調(diào)用運(yùn)行函數(shù)。在初始化階段,調(diào)用函數(shù)vhpi_get(vhpiPhaseP,

31、 NULL),返回vhpiInitializationPhase。l vhpiSimulationPhase:開始執(zhí)行仿真階段。仿真階段涉及仿真周期的運(yùn)行,包括已注冊和激活的vhpiCbStartOfSimulation(開始仿真)和vhpiCbEndOfSimulation(結(jié)束仿真)回調(diào)的運(yùn)行。在仿真階段,調(diào)用vhpi_get(vhpiPhaseP, NULL),返回vhpiSimulationPhase。(仿真結(jié)果)l vhpiSavePhase:保存VHDL模型的當(dāng)前狀態(tài)階段。保存階段包含下列步驟:(1)設(shè)計工具保存當(dāng)前VHDL模型狀態(tài)的一些行為,包括下個仿真周期的時間Tn。(2)已注

32、冊和已激活的vhpiCbStartOfSave回調(diào)運(yùn)行完成。(3)已注冊和已激活的vhpiCbEndOfSave回調(diào)運(yùn)行完成。在保存階段,調(diào)用vhpi_get(vhpiPhaseP, NULL),返回vhpiSavePhase。l vhpiRestartPhase:VHDL模型重新啟動階段。重啟階段包含下列步驟:(1)恢復(fù)先前保存的VHDL模型狀態(tài)的一些行為,包括下個仿真周期的時間Tn。(2)已注冊和激活的vhpiCbStartOfRestart回調(diào)運(yùn)行完成。(3)已注冊和激活的vhpiCbEndOfRestart回調(diào)運(yùn)行完成。在重啟階段,調(diào)用vhpi_get(vhpiPhaseP, NULL

33、),返回vhpiRestartPhase。l vhpiCbStartOfReset:重置階段重置階段包含下列步驟:(1)已注冊和激活的vhpiCbStartOfReset回調(diào)運(yùn)行完成。(2)所有除vhpiCbEndOfReset以外的回調(diào)都被清除。(3)每個驅(qū)動的輸出波形都被重置為初始內(nèi)容。(4)當(dāng)前時間Tc被重置為0 ns。(5)已注冊和激活的vhpiCbEndOfReset回調(diào)運(yùn)行完成。在重置階段,調(diào)用vhpi_get(vhpiPhaseP, NULL),返回vhpiResetPhase。l vhpiTerminationPhase:工具終止階段。終止階段涉及運(yùn)行每個已注冊和激活的vhpi

34、CbEndOfTool回調(diào)。當(dāng)所有的回調(diào)都已返回到工具時,工具可以終止。3. 回調(diào)的作用是什么?回調(diào)是VHPI工具在VHDL模型運(yùn)行程序時獲得控制的一種機(jī)制,用于VHPI/C代碼和VHDL模型之間的通信。4. VHPI工具、C+程序、VHDL模塊三者的聯(lián)系與區(qū)分,相互作用關(guān)系是什么?VHPI提供訪問數(shù)據(jù)到VHDL模型,對其評估與仿真。這個接口是作為C語言的庫來實現(xiàn)的,由IEEE研發(fā)并滿足VHPI標(biāo)準(zhǔn)。VHPI應(yīng)用程序必須編譯、連接的共享庫,它們能進(jìn)一步VHDL設(shè)計單元、子程序綁定。5. 熟悉Active-HDL工具。學(xué)生上機(jī)實習(xí)6. 熟悉Eclipse軟件開發(fā)環(huán)境。學(xué)生上機(jī)實習(xí)7. 設(shè)計一個DDR3控制器,使用VHPI工具、C+程序進(jìn)行仿真、測試。學(xué)生上機(jī)實

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論