EDA復(fù)習(xí)要點5月32_第1頁
EDA復(fù)習(xí)要點5月32_第2頁
EDA復(fù)習(xí)要點5月32_第3頁
EDA復(fù)習(xí)要點5月32_第4頁
EDA復(fù)習(xí)要點5月32_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、主要知識點1、 從執(zhí)行方式看VHDL的描述語句包括那些描述語句?用VHDL語言進(jìn)行設(shè)計時,按描述語句的執(zhí)行順序進(jìn)行分類,可將VHDL語句分為順序執(zhí)行語句(Sequential)和并行執(zhí)行語句(Parallel)。2、 目前流行的硬件描述語言有那些?常用的硬件描述語言有ABEL-HDL AHDL.VHDL和Verilog-HDL.而VHDL和Verilog-HDL是當(dāng)前最流行的并成為IEEE標(biāo)準(zhǔn)的硬件描述語言。3、 MAX+PLUS2中各種文件的擴(kuò)展名有哪些?*.vhd *.sym *.gdf *.scf 4、 基于MAX+PLUS2的設(shè)計流程設(shè)計輸入、編譯處理、驗證(包括功能仿真、時序仿真、和

2、定時分析)和器件編程5、 目前較流行的EDA設(shè)計軟件有那些?ALTERA公司: MAX+PLUS II QUARTUS II(全新的EDA軟件,正在逐步替代 MAX+PLUS)LATTICE萊迪思公司: isp EXPERT SYSTEM isp DesignExpert SYSTEMXILINX西林公司: FOUNDATION ISE(全新的EDA軟件,正在逐步替代FOUNDATION)6、 可編程邏輯器件的分類?按照變成工藝分哪些類?SPLD 簡單可編程邏輯器件CPLD 復(fù)雜可編程邏輯器件FPGA 現(xiàn)場可編程門陣列ISP 在系統(tǒng)(線)可編程邏輯器件按編程工藝分為:熔絲開關(guān)(一次可編程,要求

3、大電流)可編程低阻電路元件(多次編程,要求中電壓)EPROM型(紫外線擦除電可編程邏輯器件)E PROM型(電可擦寫編程器件)基于SRAM的編程元件7、 VHDL程序設(shè)計中常用的庫有那些?哪些庫是顯式(默認(rèn)打開的)的,哪些是隱式的?P159VHDL程序設(shè)計的常用庫:IEEE庫、STD庫、WORK庫、VITAL庫、用戶定義庫。顯示庫:IEEE庫 用戶定義庫 VITAL庫隱式庫:、STD庫、WORK庫 8、 程序包由那兩部分組成?分別有什么作用? P161程序包由兩部分組成:程序包首和程序包體,程序包首為程序包定義接口,聲明包中的類型、元件、函數(shù)和子程序。程序包體規(guī)定程序包的實際功能,存放說明中的

4、函數(shù)和子程序。9、 常用的預(yù)定義程序包有哪些?如何調(diào)用?P163常用的預(yù)定義的程序包:STD_LOGIC_1164程序包、STD_LOGIC_ARITH程序包、STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED程序包、STANDARD和TEXTIO程序包。10、 目前國際上較大的EDA器件制造公司有那些?ALTERA公司、LATTICE萊迪思公司、XILINX西林公司11、 VHDL常用的預(yù)定義數(shù)據(jù)類型有哪幾種,分別在哪些程序包中?如何調(diào)用?答:布爾(BOOLEAN)數(shù)據(jù)類型,位(BIT)數(shù)據(jù)類型,位矢量(BIT_VECTOR)數(shù)據(jù)類型 ,字符(CHARACTER)數(shù)據(jù)類型

5、 。12、 數(shù)據(jù)類型的轉(zhuǎn)換有哪幾種方法?P114 函數(shù)轉(zhuǎn)換法、類型標(biāo)記轉(zhuǎn)換法和常數(shù)轉(zhuǎn)換法。13、 可以構(gòu)成標(biāo)識符的字符有? 有效的字符:(1)包括26個大小寫英文字母,數(shù)字09以及下劃線“_”。 (2)任何標(biāo)識符必須以英文字母開頭。(3)必須是單一下劃線“_”,且其前后都必須有英文字母或數(shù)字。(3)標(biāo)識符中的英文字母不分大小寫。(4)允許包含圖形符號(如回車符、換行符等),也允許包含空格符。(5)VHDL的保留字不能用于作為標(biāo)識符使用。14、 可編程器件(PLD)分為哪兩類?答:根據(jù)編程特性分為一次編程和重復(fù)編程兩類15、 標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型常用的數(shù)值有哪幾種?U-未初始化的,X-強未知的,0

6、-強0,1-強1,Z-高阻態(tài),W-弱未知的,L-弱0,H-弱1,-忽略。16、 完整的條件語句將產(chǎn)生什么電路,不完整的條件語句將產(chǎn)生什么電路?完整的條件語句將產(chǎn)生組合電路,不完整的條件語句將產(chǎn)生時序電路17、 信號和變量有什么區(qū)別?P121(1)信號賦值至少有延時,而變量賦值沒有延時。(2)信號除當(dāng)前值外有許多相關(guān)的信息,而變量只有當(dāng)前值。(3)進(jìn)程對信號敏感而對變量不敏感。(4)信號可以是多個進(jìn)程的全局 信號;而變 量 只在 定義它 們 的順序域 可見(共享 變 量 除外)。(5)信號 是 硬 件 中 連 線 的 抽 象 描 述,它們的功能是保存變化的數(shù)據(jù)和連接子元件,信號在元件的端口連接元

7、件。變量在硬件中沒有類似的對應(yīng)關(guān)系,它們用于硬件特性的高層次建模所需要的計算中。(6)信號賦值和變量賦值分別使用不同的賦值符號“<=”和“:=”,信號類型和變量類型可以完全一致,也允許兩者之間相互賦值,但要保證兩者的類型相同。18、 VHDL作為工業(yè)標(biāo)準(zhǔn),是由那個機構(gòu)制定并公布的。IEEE19、 實體部分的端口模式有四個類型。OUT單向輸出端口IN 單向輸入端口INOUT 輸入輸出雙向端口BUFFER 反饋式雙向端口20、 從執(zhí)行方式看VHDL的基本描述語句包括哪兩大基本描述語句? 順序語句 并行語句21、 VHDL文件存盤時,其主文件名應(yīng)與實體名一致,擴(kuò)展名應(yīng)為什么呢?.VHD22、

8、硬件描述語言(HDL)的種類很多?ABEL-HDL,AHDL,VHDL,Verilog-HDL.23、 EDA技術(shù)的含義。EDA技術(shù)就是以計算機為工作平臺、以EDA軟件工具為開發(fā)環(huán)境、以硬件描述語言為設(shè)計語言、以ASIC(Application Specific Integrated Circuits)為實現(xiàn)載體的電子產(chǎn)品自動化設(shè)計的過程24、 目前較流行的集成EDA開發(fā)環(huán)境(軟件)有那些? 同第5題25、 簡述EDA技術(shù)的CPLD/FPGA的設(shè)計流程。26、 寫出實體中的PORT語句結(jié)構(gòu)并說明其作用。實體端口說明的一般書寫格式如下:PORT(端口名:端口模式 數(shù)據(jù)類型; . 端口名:端口模式

9、 數(shù)據(jù)類型);作用:由PORT語句引導(dǎo)的端口說明語句是對一個設(shè)計實體界面的說明。端口為設(shè)計實體和外部環(huán)境的動態(tài)通信提供通道。27、 簡述EDA技術(shù)經(jīng)歷了那幾個發(fā)展階段。1)CAD(計算機輔助設(shè)計)階段2)CAE(計算機輔助工程)階段3)ESDA(電子系統(tǒng)設(shè)計自動化)階段28、 寫出元件例化語句語句格式,并說明其作用。元件例化語句由兩部分組成,第一部分是對一個現(xiàn)成的設(shè)計實體定義為一個元件,語句的功能是對待調(diào)用的元件作出調(diào)用聲明,它的最簡表達(dá)式如下所示: COMPONENT 元件名 IS PORT (端口名表) ; END COMPONENT 文件名 ; 元件例化語句的第二部分則是此元件與當(dāng)前設(shè)計

10、實體(頂層文件)中元件間及端口的連接說明。語句的表達(dá)式如下: 例化名 : 元件名 PORT MAP( 端口名 => 連接端口名,.);29、 試比較圖形輸入法和文本輸入法有何優(yōu)缺點?30、 結(jié)構(gòu)體的語言格式與作用。ARCHITECTURE 結(jié)構(gòu)體名OF 實體名 IS (說明語句) 用來說明和定義數(shù)據(jù)對象,類型等,可省略 BEGIN (功能描述語句) 用來描述內(nèi)部電路功能的,不可省略 END ARCHITECTURE 結(jié)構(gòu)體名;結(jié)構(gòu)體用來描述設(shè)計實體的結(jié)構(gòu)或行為,即描述一個實體的功能,把設(shè)計實體的輸入和輸出之間的聯(lián)系建立起來。31、 寫出PROCESS語句結(jié)構(gòu)的一般表達(dá)格式? PROCES

11、S語句格式 PROCESS語句的表達(dá)格式如下: 進(jìn)程標(biāo)號:PROCESS(敏感信號參數(shù)表)IS 進(jìn)程說明部分 BEGIN 順序描述語句 END PROCESS進(jìn)程標(biāo)號; 32、 進(jìn)程語句的設(shè)計(或使用)要點?P140(1) 雖然同一結(jié)構(gòu)體中的進(jìn)程之間是并行運行的,但同一進(jìn)程中的邏輯描述語句則是順序運行的,因而在進(jìn)程中只能設(shè)放置順序語句。(2) 進(jìn)程的激活必須由敏感信號表中定義的任一敏感信號的變化來啟動,否則必須有一顯式的WAIT語句來激活。(3) 結(jié)構(gòu)體中多個進(jìn)程之所以能并行同步運行,一個很重要的原因是進(jìn)程之間的通信是通過傳遞信號和共享變量值來實現(xiàn)的。(4) 進(jìn)程是重要的建模工具。進(jìn)程結(jié)構(gòu)不但

12、為綜合器所支持,而且進(jìn)程的建模方式將直接影響仿真和綜合結(jié)果。33、 并行信號賦值語句有哪幾種?其語句格式為何?1) 簡單信號賦值語句 賦值目標(biāo)<=表達(dá)式;2) 條件信號賦值語句 賦值目標(biāo)<=表達(dá)式1 WHEN 賦值條件1 ELSE 表達(dá)式2 WHEN賦值條件2 ELSE . 表達(dá)式n;3)選擇信號賦值語句的語句格式如下: WITH 選擇表達(dá)式SELECT 賦值目標(biāo)信號<=表達(dá)式1 WHEN 選擇值1, 表達(dá)式2 WHEN 選擇值2, . 表達(dá)式n WHEN 選擇值n;34、 EDA技術(shù)常用的輸入方法有?原理圖輸入 HDL文本輸入eda設(shè)計輸入的三種形式:原理圖輸入,狀態(tài)輸入,

13、波形輸入 35、 什么是實體和結(jié)構(gòu)體,其功能是什么?實體是一個設(shè)計實體的表層設(shè)計單元,其功能是對這個設(shè)計體與外部電路進(jìn)行接口描述。它規(guī)定了設(shè)計單元的輸入輸出接口信號或引腳,是設(shè)計實體經(jīng)封裝后對外界的一個通信界面。結(jié)構(gòu)體用來描述設(shè)計實體的結(jié)構(gòu)或行為,即描述一個實體的功能,把設(shè)計實體的輸入和輸出之間的聯(lián)系建立起來。36、 MAX+puls的原理圖輸入法、文本輸入法、波形輸入法生成的文件擴(kuò)展名為?原理圖輸入法生成的文件擴(kuò)展名為*.gdf 文本輸入法生成的文件擴(kuò)展名為*.vhd 波形輸入法生成的文件擴(kuò)展名為*.scf37、 VHDL的操作符有那幾大類?每一類的操作符分別是什么?每一類操作符可以對那些數(shù)

14、據(jù)進(jìn)行操作(運算)? 見最后的圖38、 VHDL操作符的優(yōu)先級?最后的圖39、 結(jié)構(gòu)體常見的功能語句有那些?信號(SIGNA)、數(shù)據(jù)類型(TYPE)、常數(shù)(CONSTANT)、元件(COMPONENT)、 函數(shù)(FUNCTION)和過程(PROCEDURE)等加以說明的語句。40、 子程序分為那兩類,其結(jié)構(gòu)為什么。P152-153子程序包括過程和函數(shù),包括過程(可單獨存在,多個返回值,有輸入/出、雙向參數(shù),一般看做一種語句結(jié)構(gòu))和函數(shù)(作為語句的一部分調(diào)用,一個返回值,所有參數(shù)都是輸入?yún)?shù),看作表達(dá)式的一部分),可在VHDL的結(jié)構(gòu)體或程序包中任何位置調(diào)用子程序。41、 VHDL的標(biāo)識符由什么構(gòu)

15、成。.同13題42、 CASE語句的一般形式?在使用當(dāng)中的注意事項。P125-126CASE語句的一般形式為:CASE 表達(dá)式 ISWHEN 值1=> 語句A;WHEN 值2=> 語句B;.WHEN OTHERS=> 語句C;END CASE注意事項:(1)WHEN條件句中的選擇值或標(biāo)識符所代表的值必須在表達(dá)式的取值范圍內(nèi)。2)除非所有條件句中的選擇值能完整覆蓋CASE語句中表達(dá)式的取值,否則最后一個條件句中的選擇必須用關(guān)鍵詞OTHERS表示以上已列的所有條件句中未能列出的其它可能的取值。(3)CASE語句中的選擇值只能出現(xiàn)一次,不允許有相同選擇值的條件語句出現(xiàn)。(4)CAS

16、E語句執(zhí)行中必須選中,且只能選中所列條件語句中的一條。43、 試著比較IF和CASE語句的差異?P127與IF語句相比,CASE語句組的程序可讀性比較好,這是因為它把條件中所有可能出現(xiàn)的情全部列出來了,可執(zhí)行條件比較清晰。而且CASE程序的執(zhí)行過程不像IF語句中那樣有一個逐項條件條件順序比較的過程。CASE語句中條件句的次序是不重要的,它的執(zhí)行過程更接近于并行方式。但是在一般情況下,經(jīng)過綜合后,對相同的邏輯功能,CASE語句比IF語句的描述耗用更多的硬件資源,而且有的邏輯功能CASE語句無法描述,只能使用IF語句來描述.44、 FOR循環(huán)語句的一般形式?P127FOR循環(huán)語句的一般形式為:循環(huán)

17、標(biāo)號: FOR 循環(huán)變量 IN 循環(huán)次數(shù)范圍 LOOP 順序處理語句END LOOP循環(huán)標(biāo)號;45、 VHDL數(shù)據(jù)對象有哪幾種?P101在VHDL中,數(shù)據(jù)對象有三種(1)常量(CONSTANT)(2)變量(VARIABLE)(3)信號(SIGNAL)。46、 變量和信號的區(qū)別?P105同18題47、 賦值語句分哪些類,分別寫出一句賦值語句。賦值語句分為信號賦值語句和變量賦值語句。變量賦值語句和信號賦值語句的語法格式如下: 變量賦值目標(biāo) :=賦值源; 信號賦值目標(biāo) =賦值源;48、 實現(xiàn)時序電路和邏輯組合電路分別用什么語句實現(xiàn),分別寫出他們的一般表式。完整的條件語句將產(chǎn)生組合電路,不完整的條件語

18、句將產(chǎn)生時序電路完整的條件語句格式:49、 寫出實體、結(jié)構(gòu)體的一般語句結(jié)構(gòu)并說明其作用。50、 簡述VHDL中順序語句有哪些?1、賦值語句2、轉(zhuǎn)向控制語句3.WAIT語句4、子程序調(diào)用語句5、返回語句6、 NULL語句7.其他語句51、 簡述VHDL中并行語句有哪些?1、進(jìn)程語句2、并行信號賦值語句3、塊語句結(jié)構(gòu)(BLOCK)4、并行過程調(diào)用語句5、元件例化 語句6 、生成語句52、 試寫出三種IF語句的語句結(jié)構(gòu)。IF語句是一種條件語句,它根據(jù)語句中所設(shè)置的一種或多種條件,有選擇地執(zhí)行指定的順序語句,常見的IF語句有以下種形式。 (1)     

19、; IF 條件 THEN 語句 END IF; (2)       IF 條件 THEN 語句 ELSE 語句 END IF;(3)      IF 條件THEN 語句 ELSIF 條件THEN 語句 ELSE 語句 END IF;53 轉(zhuǎn)向控制語句有哪幾種? P123轉(zhuǎn)向控制語句共有五種:(1)IF語句(2)CASE語句(3)LOOP語句(4) next語句(5) exit語句54 什么是重載操作符?常用的重載操作符定義在那個程序包中?為了方便各種不同數(shù)據(jù)類型間的運算,VHDL允許用

20、戶對原有的基本操作符重新定義,賦予新的含義和功能,從而建立一種新的操作符,這就是重載操作符。常用的重載操作符程序包:STD_LOGIC_UNSIGNED、STD_LOGIC_ARITH、STD_LOGIC_SIGNED55 什么是重載函數(shù),什么是重載過程同樣名稱的函數(shù)可以用不同的數(shù)據(jù)類型作為此函數(shù)的參數(shù)定義多次,以此定義的函數(shù)稱為重載函數(shù)56 VHDL設(shè)計的有限狀態(tài)機從信號輸出方式上分為哪兩類?主要區(qū)別是什么?有限狀態(tài)機從信號輸出方式上分為Mealy(米立)型和Moore(摩爾)型兩種狀態(tài)機。?57 一般有限狀態(tài)機的的組成有哪幾部分?一般的狀態(tài)機通常包含說明部分、時序進(jìn)程、組合進(jìn)程、輔助進(jìn)程等

21、幾個部分。58 VHDL的描述風(fēng)格有哪幾種?行為描述、數(shù)據(jù)流描述和結(jié)構(gòu)描述第四章習(xí)題答案2 VHDL的基本結(jié)構(gòu)是什么?各部分的功能分別是什么?答:參考課本77頁,最下面一段。4、寫出3輸入與非門的實體描述。ENTITY nand_3 IS PORT (a , b, c: IN STD_LOGIC); q: OUT STD_LOGIC );END nand_3;5、例4-1是2選1的多路選擇器的VHDL描述,在結(jié)構(gòu)體的描述中使用了“WHEN-ELSE”語句,但也可以用其他語句來進(jìn)行描述,試描述之。用IF語句描述:ENTITY mux21aISPORT(a,b:IN BIT; s:INBIT; q

22、:OUT BIT);END mux21a;ARCHITECTURE one OF mux21a ISBEGINPROCESS (a,b,s)BEGINIF s='0' THENq<=a; ELSE q<= b;END IF;END PROCESS;END one;6、試寫出4選1多路選擇器的VHDL描述。選擇控制信號為s1和s0,輸入信號為a,b,c,d,輸出信號為y。也可以參考P125頁,例5-9那樣 使用IF語句LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4_1 ISPORT(a,b,c,d,s0,s1:

23、IN STD_LOGIC; y:OUT STD_LOGIC);END mux4_1;ARCHITECTURE behave OF mux4_1 ISSIGNAL sel:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN sel <= s1&s0;PROCESS(sel,a,b,c,d)BEGINCASE sel ISWHEN "00" => y<=a;WHEN "01"=> y<=b;WHEN "10"=> y<=c;WHEN "11"=>

24、 y<=d; WHEN others=>null;END CASE;END PROCESS;END behave;7 試給出1位全減器的VHDL描述,要求首先設(shè)計1位半減器,然后用例化語句將它們連接起來。設(shè)x為被減數(shù),y為減數(shù),sub_in是借位輸入,diff是輸出差,sub_out是借位輸出。-半減器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_sub ISPORT(a,b:IN STD_LOGIC; co,so:OUT STD_LOGIC);END ENTITY h_sub ;ARCHITECTURE fh1 OF h_

25、sub ISBEGINso<=a XOR b; co<=NOT a AND b; END ARCHITECTURE fh1;-或門描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a ISPORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC);END ENTITY or2a;ARCHITECTURE one OF or2a ISBEGINc<=a OR b; END ARCHITECTURE one;-全減器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;US

26、E IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY f_sub1 ISPORT(x,y,sub_in:IN STD_LOGIC;sub_out,diff:OUT STD_LOGIC);END ENTITY f_sub1 ;ARCHITECTURE strl OF f_sub1 ISCOMPONENT h_sub PORT(a,b:IN STD_LOGIC; co,so:OUT STD_LOGIC);END COMPONENT;COMPONENT or2aPORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC);END COMPONENT;SIGNAL

27、 d,e,f:STD_LOGIC;BEGINu1:h_sub PORT MAP(x,y,d,e);u2:h_sub PORT MAP(e,sub_in,f,diff);u3:or2a PORT MAP(d,f,sub_out); END ARCHITECTURE strl ;第五章5-1.試說明實體端口模式BUFFER和INOUT的不同之處?答: BUFFER端口:緩沖模式,具有讀功能的輸出模式,即信號輸出到實體外部,但同時也在內(nèi)部反饋使用,不允許作為雙向端口使用。而INOUT端口:雙向模式,即信號的流通是雙向的,既可以對此端口賦值,也可以通過此端口讀入數(shù)據(jù)。5-2.VHDL的數(shù)據(jù)對象有哪幾種

28、?它們之間有什么不同?答:VHDL的數(shù)據(jù)對象有三種:信號、變量、常量。 它們之間的的區(qū)別如下:信號賦值至少有延時,而變量和常量沒有;信號除當(dāng)前值外,有許多相關(guān)信息,變量只有當(dāng)前值,常量的值在設(shè)計實體中始終不變;進(jìn)程對信號敏感而對變量及常量不敏感;信號可以是多個進(jìn)程的全局信號,變量只在定義它們的順序域可見,而常量的使用范圍取決于它被定義的位置;信號是硬件連線的抽象描述信號賦值,賦值符號 <= 而變量和常量的賦值符號 :=。5-3.說明下列各定義的意義: 答SIGNAL a , b , c : BIT : =0;- - 定義3個位數(shù)據(jù)類型的信號a、b、c,它們?nèi)≈禐?;CONSTANT TI

29、ME1 , TIME2 : TIME : 20ns ;- -定義2個時間數(shù)據(jù)類型的常量TIME1、TIME2,它們值為20ns;VARIABLE x , y , z : STD_LOGIC :=x;- - 定義3個標(biāo)準(zhǔn)邏輯位 STD_LOGIC數(shù)據(jù)類型的變量x、y、z,它們的值是強未知的。 5-4.什么是重載函數(shù)?重載運算符有何用處?如何調(diào)用重載運算符函數(shù)?答:為了方便各種不同數(shù)據(jù)類型間的運算,VHDL允許用戶對原有的基本操作符重新定義,賦予新的含義和功能,從而建立一種新的操作符,這就是重載操作符,定義這種操作符的函數(shù)成為重載函數(shù)。重載運算符的作用是為了方便各種不同的數(shù)據(jù)類型間的運算。要調(diào)用重

30、載運算符函數(shù),先要在程序包中進(jìn)行函數(shù)體的定義,調(diào)用的格式如下 : x <=函數(shù)名(參數(shù)1,參數(shù)2,····) 參數(shù)個數(shù)和類型與所定義的函數(shù)要保持一致。5-5.數(shù)據(jù)類型BIT INTEGER BOOLEAN分別定義在哪個庫中?哪些庫和程序包總是可見的?.答:數(shù)據(jù)類型BIT INTEGER BOOLEAN均定義在STD庫中。IEEE庫和程序包STD_LOGIC.1164 、STD_LOGIC_UNSIGNED、STD_LOGIC_SIGNED、STD_LOGIC_ARITH等總是可見的。 5-6.函數(shù)和過程有什么區(qū)別?答:子程序有兩種類型,即過程(PR

31、OCEDURE)和函數(shù)(FUNCTION)。它們的區(qū)別在于:過程的調(diào)用可以通過其界面獲得多個返回值,而函數(shù)只能返回一個值;在函數(shù)入口中,所有參數(shù)都是輸入?yún)?shù),而過程有輸入?yún)?shù)、輸出參數(shù)和雙向參數(shù);過程一般被看作一種語句結(jié)構(gòu),而函數(shù)通常是表達(dá)式的一部分;過程可以單獨存在,而函數(shù)通常作為語句的一部分調(diào)用。 5-7.若在進(jìn)程中加入WAIT語句,應(yīng)注意哪幾個方面的問題?答:應(yīng)注意以下問題:已列出敏感信號的進(jìn)程中不能使用任何形式的WAIT語句;一般情況下,只有WAIT UNTIL格式的等待語句可以被綜合器所接受,其余語句格式只能在VHDL仿真器中使用;在使用WAIT ON語句的進(jìn)程中,敏感信號量應(yīng)寫在進(jìn)

32、程中的WAIT ON語句后面;在不使用WAIT ON語句的進(jìn)程中,敏感信號量應(yīng)在開頭的關(guān)鍵詞PROCESS后面的敏感信號表中列出。5-8.哪些情況下需用到程序包STD_LOGIC_UNSIGNED?試舉一例。答:調(diào)用數(shù)據(jù)類型變換函數(shù)或重載運算符函數(shù)時;定義UNSIGNED類型的數(shù)據(jù)時。舉例如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; · · IF temp="11111111"THEN temp:= "00000000"

33、ELSE temp:=temp+16;END IF;···5-9.為什么說一條并行賦值語句可以等效為一個進(jìn)程?如果是這樣的話,怎樣實現(xiàn)敏感信號的檢測?答:因為信號賦值語句的共同點是賦值目標(biāo)必須都是信號,所有賦值語句與其它并行語句一樣,在結(jié)構(gòu)體內(nèi)的執(zhí)行是同時發(fā)生的,與它們的書寫順序沒有關(guān)系,所以每一信號賦值語句都相當(dāng)于一條縮寫的進(jìn)程語句。由于這條語句的所有輸入信號都被隱性地列入此縮寫進(jìn)程的敏感信號表中,故任何信號的變化都將相關(guān)并行語句的賦值操作,這樣就實現(xiàn)了敏感信號的檢測。 5-10.比較CASE語句和WITH_SELECT語句,敘述它們的異同點?答:相同點:CAS

34、E語句中各子句的條件不能有重疊,必須包容所有的條件;WITH_SECLECT語句也不允許選擇值有重疊現(xiàn)象,也不允許選擇值涵蓋不全的情況。另外,兩者對子句各選擇值的測試都具有同步性,都依賴于敏感信號的變化。不同點:CASE語句只能在進(jìn)程中使用,至少包含一個條件語句,可以有多個賦值目標(biāo);WITH_SECLECT語句根據(jù)滿足的條件,對信號進(jìn)行賦值,其賦值目標(biāo)只有一個,且必須是信號。5-11.將以下程序段轉(zhuǎn)換為WHEN_ELSE語句: PROCESS (a , b ,c ,d) BEGIN IF a=0AND b=1THEN NEXT1 <="1101" ELSEIF a=0

35、THEN NEXT1 <=d; ELSEIF b=1THEN NEXT1 <=c; ELSE NEXT1 <="1011" END IF; END PROCESS;原程序轉(zhuǎn)換如下: ARCHITECTURE one OF mux IS BEGIN NEXT1 <="1101"WHEN a=0AND b=1ELSE d WHEN a=0ELSE c WHEN b=1ELSE "1011" END one; END PROCESS;5-12試給出一位全減器的算法描述、數(shù)據(jù)流描述、結(jié)構(gòu)描述和混合描述。行為(算法)描述

36、 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY f_sub ISPORT(x,y,sub_in:IN STD_LOGIC;sub_out,diff:OUT STD_LOGIC);END f_sub ;ARCHITECTURE bhv OF f_sub ISSIGNAL tmp:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN tmp<=x&y&sub_in; PROCESS(tmp) BEGIN CASE tmp IS WHEN "

37、;000"=> diff<='0'sub_out<='0' WHEN "001"=> diff<='1'sub_out<='1' WHEN "010"=> diff<='1'sub_out<='1' WHEN "011"=> diff<='0'sub_out<='1' WHEN "100"=> diff

38、<='1'sub_out<='0' WHEN "101"=> diff<='0'sub_out<='0' WHEN "110"=> diff<='0'sub_out<='0' WHEN "111"=> diff<='1'sub_out<='1' WHEN OTHERS=> NULL; END CASE; END PROCESS;END b

39、hv ;數(shù)據(jù)流描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY f_sub ISPORT(x,y,sub_in:IN STD_LOGIC;sub_out,diff:OUT STD_LOGIC);END f_sub ;ARCHITECTURE rtl OF f_sub ISBEGIN diff<=x XOR y XOR sub_in; sub_out<=(NOT x AND y )OR (x XNOR y) AND sub_in);END rtl ; 結(jié)構(gòu)描述:LIBRA

40、RY IEEE; - - 半減器USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_sub ISPORT(a,b:IN STD_LOGIC; co,so:OUT STD_LOGIC);END h_sub ;ARCHITECTURE fh1 OF h_sub ISBEGIN so<=a XOR b; co<=NOT a AND b; END fh1; LIBRARY IEEE; - -或門描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a ISPORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC);END

41、or2a;ARCHITECTURE one OF or2a ISBEGINc<=a OR b; END one; LIBRARY IEEE; - -全減器描述USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY f_sub1 IS PORT(x,y,sub_in:IN STD_LOGIC; sub_out,diff:OUT STD_LOGIC);END f_sub1 ;ARCHITECTURE strl OF f_sub1 IS COMPONENT h_sub PORT(a,b:IN STD_LOGIC; c

42、o,so:OUT STD_LOGIC); END COMPONENT; COMPONENT or2aPORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC); END COMPONENT; SIGNAL d,e,f:STD_LOGIC;BEGIN u1:h_sub PORT MAP(x,y,d,e); u2:h_sub PORT MAP(e,sub_in,f,diff); u3:or2a PORT MAP(d,f,sub_out); END strl ; 5-13用VHDL描述下列器件的功能:(1)十進(jìn)制BCD碼編碼器,輸出使能為低電平有效。library ieee;us

43、e ieee.std_logic_1164.all;entity bin_bcd isport(bin : in integer range 0 to 20; ena : in std_logic; BCD_out : out std_logic_vector(7 downto 0);end;architecture a of bin_bcd isbeginBinary_BCD : BlockBEGINBCD_out <="00000000" WHEN BIN = 0 ELSE"00000001" WHEN BIN = 1 ELSE"00

44、000010" WHEN BIN = 2 ELSE"00000011" WHEN BIN = 3 ELSE"00000100" WHEN BIN = 4 ELSE"00000101" WHEN BIN = 5 ELSE"00000110" WHEN BIN = 6 ELSE"00000111" WHEN BIN = 7 ELSE"00001000" WHEN BIN = 8 ELSE"00001001" WHEN BIN = 9 ELSE&quo

45、t;00010000" WHEN BIN = 10 ELSE"00010001" WHEN BIN = 11 ELSE"00010010" WHEN BIN = 12 ELSE"00010011" WHEN BIN = 13 ELSE"00010100" WHEN BIN = 14 ELSE"00010101" WHEN BIN = 15 ELSE"00010110" WHEN BIN = 16 ELSE"00010111" WHEN BIN =

46、 17 ELSE"00011000" WHEN BIN = 18 ELSE"00011001" WHEN BIN = 19 ELSE"00100000" WHEN BIN = 20 ELSE "00000000"end block;end a;(2)時鐘(可控)RS觸發(fā)器。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY ffrs ISPORT(s,r: IN std_logic; q,qb: OUT std_logic);END ffrs;ARCHITECTURE r

47、tl OF ffrs ISSIGNAL qn,nqn: std_logic;BEGIN qn<= r NOR nqn;nqn<= s NOR qn; q<=qn;qb<=nqn;END rtl; (3)帶復(fù)位端、置位端、延遲為15ns的響應(yīng) CP下降沿觸發(fā)的JK觸發(fā)器。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jkff isport( j,k,rst,clr : IN bit; clk : in bit; q,nq : out bit );end;arc

48、hitecture a of jkff issignal q_s,nq_s : bit;begin process(j,k,rst,clr,clk) begin if rst='1' then q_s<='1' nq_s<='0' elsif clk'event and clk='0' then if clr='1' then q_s<='0' nq_s<='1' elsif j='0' and k='1' then q

49、_s<='0' nq_s<='1' elsif j='1' and k='0' then q_s<='1' nq_s<='0' elsif j='1' and k='1' then q_s<=not q_s; nq_s<=not nq_s; end if; else null; end if; q<=q_s; nq<=nq_s;end process;end a;(4)集成計數(shù)器74161Library ieee;use

50、 ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt4 isport( clk,LDN,CLRN : in std_logic; d,c,b,a : in std_logic; carry : out std_logic; qd,qc,qb,qa : out std_logic );end;architecture a of cnt4 is signal data_in: std_logic_vector(3 downto 0);begin data_in<=d&c&b&a; pro

51、cess(data_in,clk,ldn,clrn) variable cnt:std_logic_vector(3 downto 0); begin if clrn='0' then cnt:=(others=>'0'); elsif clk'event and clk='1' then if ldn='0' then cnt:=data_in; else cnt:=cnt+1; end if; end if; case cnt is when "1111"=> carry<=

52、9;1' when others=> carry<='0' end case; qa<=cnt(0); qb<=cnt(1); qc<=cnt(2); qd<=cnt(3); end process; end a;程序2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY S_C74161 ISPORT(clk, ldn,clrn,enp,ent: IN STD_LOGIC; din:IN STD_LOGIC_VECTOR(3 D

53、OWNTO 0); q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; rco: OUT STD_LOGIC );END S_C74161 ;ARCHITECTURE behav OF S_C74161 ISSIGNAL q1: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk, clrn) BEGIN IF clrn = 0' THEN q1 <= "0000" ; ELSIF (clk'EVENT AND clk = '1') THEN IF ldn=0' THEN q1<=din ; ELSIF (enp=1

溫馨提示

  • 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

提交評論