版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、答案由個人做出,可能有不全或錯誤之處,歡迎大家批評指正。第一章 1.EDA的英文全稱及其中文含義是什么?答:EDA是Electronic Design Automation,其中文含義是“電子設(shè)計自動化”。2.什么叫EDA技術(shù)?簡述EDA技術(shù)的發(fā)展歷程。答:EDA技術(shù)有狹義和廣義之分,狹義EDA技術(shù)就是以大規(guī)??删幊踢壿嬈骷樵O(shè)計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達(dá)方式,以計算機(jī)、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設(shè)計工具,通過有關(guān)的開發(fā)軟件,自動完成用軟件的方式設(shè)計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至完成對于特定
2、目標(biāo)芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù),或稱為IES/ASIC自動設(shè)計技術(shù)。 3.簡述用EDA技術(shù)設(shè)計電路的設(shè)計流程。答 EDA設(shè)計流程包括:設(shè)計準(zhǔn)備、設(shè)計輸入、設(shè)計處理、設(shè)計校驗、器件編程、器件測試和設(shè)計驗證。4.什么叫”綜合”和”網(wǎng)表文件”?答: (A)在電子設(shè)計領(lǐng)域中綜合的概念可以表示為:將用行為和功能層次表達(dá)的電子系統(tǒng)轉(zhuǎn)換為低層次的便于具體實現(xiàn)的模塊組合裝配的過程。(1)從自然語言轉(zhuǎn)換到 VHDL 語言算法表示,即 自然語言綜合。(2)從算法表示轉(zhuǎn)換到寄存器 傳輸級(RegisterTransport Level,RTL),即從行為
3、域到結(jié)構(gòu)域的綜合,即行為綜合。(3)從 RTL 級表示轉(zhuǎn)換到邏 輯門(包括觸發(fā)器)的表示,即邏輯綜合。(4)從邏輯門表示轉(zhuǎn)換到版圖表示(ASIC 設(shè)計),或轉(zhuǎn)換到 FPGA 的配置網(wǎng)表 文件,可稱為版圖綜合或結(jié)構(gòu)綜合。 綜合在電子設(shè)計自動化中處于核心地位。 (B)網(wǎng)表文件是描述電路的連接關(guān)系的文件,一般以文本文件的形式存在。英文為 netlist file格式有cdl, spice, aucdl.等5. 從使用的角度來講,EDA技術(shù)主要包括幾個方面的內(nèi)容?這幾個方面在整個電子系統(tǒng)的設(shè)計中分別起什么作用?答: EDA技術(shù)的學(xué)習(xí)主要應(yīng)掌握4個方面的內(nèi)容: 大規(guī)??删幊踢壿嬈骷?; 硬件描述語言; 軟
4、件開發(fā)工具; 實驗開發(fā)系統(tǒng)。6.目前流行的主流廠家的EDA的軟件工具有哪些?比較這些EDA軟件的差異。答: (1)目前比較流行的主流廠家的EDA的軟件工具有Altera的MAX+plus II、Quartus II 、Lattice的ispEXPERT、Xilinx的Foundation Series。 (2)Max+plus II 是A1tera公司推出的一個使用非常廣泛的EDA軟件工具,它支持原理圖、VHDL和Verilog語言的文本文件,以及波形圖與EDIF等格式的文件作為設(shè)計輸入,并支持這些文件的任意混合設(shè)計。它具有門級仿真器,可以進(jìn)行功能仿真和時序仿真,能夠產(chǎn)生精確的仿真結(jié)果。在適配
5、之后,Max+plus II生成供時序仿真用的Edif、VHDL和Verilog 3種不同格式的網(wǎng)表文件。Max+plus II界面友好,使用便捷,被譽(yù)為業(yè)界最易學(xué)易用的EDA軟件,并支持主流的第三方EDA工具,支持除APEx20K系列之外的所有A1tera公司的FPGACPLD大規(guī)模邏輯器件。 Quartus II是A1tera公司新近推出的EDA軟件工具,其設(shè)計工具完全支持VHDL和Verilog的設(shè)計流程,其內(nèi)部嵌有VHDL、Verilog邏輯綜合器。第三方的綜合工具,如Leonardo Spectrum、Synplify pro和FPGA Compiler II有著更好的綜合效果,Qu
6、artus II可以直接調(diào)用這些第三方工具,因此通常建議使用這些工具來完成VHDL/Verilog源程序的綜合。同樣,Quartus II具備仿真功能,也支持第三方的仿真工具,如Modelsim。此外,Quartus II為A1tera DSP開發(fā)包進(jìn)行系統(tǒng)模型設(shè)計提供了集成綜合環(huán)境,它與MATLAB和DSP Builder結(jié)合可以進(jìn)行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實現(xiàn)的關(guān)鍵EDA工具。Quartus II還可與SOPC Builder結(jié)合,實現(xiàn)SOPC系統(tǒng)開發(fā)。ispExPERT是Lattice公司的主要集成環(huán)境。通過它可以進(jìn)行VHDL、Verilog及ABEL語言的設(shè)計輸入
7、、綜合、適配、仿真和在系統(tǒng)下載。ispExPERT是目前流行的EDA軟件中最容易掌握的設(shè)計工具之一,它界面友好、操作方便、功能強(qiáng)大,并與第三方EDA工具兼容良好。 Foundation Series是Xilinx公司較成熟的集成開發(fā)EDA工具。它采用自動化的、完整的集成設(shè)計環(huán)境。Foundation項目管理器集成Xilinx實現(xiàn)工具,并包含了強(qiáng)大的書館Synopsys FPGA Express綜合系統(tǒng),是業(yè)界最強(qiáng)大的EDA設(shè)計工具之一。7. 簡要闡述EDA技術(shù)的發(fā)展趨勢和應(yīng)用領(lǐng)域答:從目前的EDA技術(shù)來看,其發(fā)展趨勢是政府重視、使用普及、應(yīng)用文泛、工具多樣、軟件功能強(qiáng)大。EDA的范疇包括:機(jī)械
8、、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個領(lǐng)域,都有 EDA的應(yīng)用。第二章 VHDL硬件描述語言1、簡述實體(ENTITY)、結(jié)構(gòu)體(ARCHITECTURE)與原理圖的關(guān)系。答:結(jié)構(gòu)來說 實體就是原理圖的外觀,結(jié)構(gòu)體中的具體程序就是原理圖中的具體實現(xiàn)。2、子程序調(diào)用與元件例化有何區(qū)別,函數(shù)與過程在具體使用上有何不同。答:從硬件角度講,一個子程序的調(diào)用類似于一個元件模塊的例化,VHDL綜合器為子程序的每一次調(diào)用都生成一個電路邏輯塊。所不同的是,元件的例化將產(chǎn)生一個新的設(shè)計層次,而子程序調(diào)用只對應(yīng)于當(dāng)前層次的一部分。函數(shù)和過程的不同在于:函數(shù)只有一個輸出,只能通過函數(shù)體內(nèi)的RET
9、URN語句來實現(xiàn),函數(shù)體內(nèi)不能有信號賦值語句;而過程卻可以有不止一個輸出,而且是通過過程體內(nèi)的信號賦值語句或者變量賦值語句來實現(xiàn)的,過程體內(nèi)的RETURN語句沒有用處,因此不少過程都將其省略了。函數(shù)的調(diào)用只能通過表達(dá)式來實現(xiàn),過程的調(diào)用則是通過過程調(diào)用語句來實現(xiàn)的。3、什么是重載函數(shù)?重載算符有何用處?如何調(diào)用重載算符函數(shù)。答:(1)什么是重載函數(shù)? 根據(jù)操作對象變換處理功能。 (2)重載算符有何用處? 用于兩個不同類型的操作數(shù)據(jù)自動轉(zhuǎn)換成同種數(shù)據(jù)類型,并進(jìn)行運(yùn)算處理。 (3)如何調(diào)用重載算符函數(shù)?采用隱式方式調(diào)用,無需事先聲明。4、在VHDL程序中配置有何用處?答:配置可以把特定的結(jié)構(gòu)體關(guān)聯(lián)
10、到一個確定的實體,正如配置一詞本身的含義一樣。配置語句就是用來為較大的系統(tǒng)設(shè)計提供管理和工程組織的。配置也是 VHDL 設(shè)計實體中的一個基本單元,在綜合或仿真中,可以利用配置語句為確定整個設(shè)計提供許多有用信息。總之用于設(shè)置VHDL的工作參數(shù)以及工作模式。配置用來選擇實體的多個結(jié)構(gòu)體的哪一個被使用。5. 嵌套 BLOCK 的可視性規(guī)則是什么?以嵌套 BLOCK 的語句方式設(shè)計三個并列的 3 輸入或門。答:BLOCK是 VHD 中具有的一種劃分機(jī)制,這種機(jī)制允許設(shè)計者合理地將一個模塊分為數(shù)個區(qū)域,在每個塊都能對其局部信號、數(shù)據(jù)類型和常量加以描述和定義。任何能在結(jié)構(gòu)體的說明部分進(jìn)行說明的對象都能在
11、BLOCK 說明部分中進(jìn)行說明。相關(guān)參考代碼:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY triple_input ISPORT (A :IN STD_LOGIC; B :IN STD_LOGIC; C :IN STD_LOGIC; OUTA :OUT STD_LOGIC );END triple_input;ARCHITECTURE ADO OF triple_input IS BEGIN OUTA= A AND B AND C; END ADO;6.簡述函數(shù)與過程的異同點,過
12、程與進(jìn)程的異同點。答:子程序有兩種類型,即過程(PROCEDURE)和函數(shù)(FUNCTION)。函數(shù)和過程都是串行的。它們的區(qū)別在于:過程的調(diào)用可以通過其界面獲得多個返回值,而函數(shù)只能返回一個值;在函數(shù)入口中,所有參數(shù)都是輸入?yún)?shù),而過程有輸入?yún)?shù)、輸出參數(shù)和雙向參數(shù);過程一般被看作一種語句結(jié)構(gòu),而函數(shù)通常是表達(dá)式的一部分;過程可以單獨存在,而函數(shù)通常作為語句的一部分調(diào)用。過程和進(jìn)程的相同點:只能使用順序語句,可以單獨存在。不同點:過程不能像進(jìn)程那樣可以從本結(jié)構(gòu)體的其他塊或進(jìn)程結(jié)構(gòu)中直接讀取信號值或者信號賦值。7、判斷下列 VHDL 標(biāo)識符是否合法,如果不合法則指出原因:16#0FA#,10#
13、12F#,8#789#,8#356#,2#0101010#,74HC245,74HC574,CLR/RESET,IN 4/SCLK, D100%。答:識符用法規(guī)定:(1)只能包含英文字母,數(shù)字,下劃線(2)標(biāo)識符的首字符只能是字母。故:(1)16#0FA#錯在首字符是數(shù)字,且包含非法字符“#“。 10#12F#、8#789#,8#356#,2#0101010#,74HC245也是犯同一錯誤。(2)74HC574,CLR/RESET,IN4/SCLK,D100%都是非法,包含非法字符.8、討論數(shù)據(jù)對象信號與變量間的異同處,說明它們的使用對所形成的硬件結(jié)構(gòu)有何影響。答:在VHDL中,對象是指用來保
14、持?jǐn)?shù)據(jù)的一些客體單元。信號跟變量是VHDL中的重要客體。信號是指在設(shè)計實體中數(shù)據(jù)交換的一種手段,采用信號對象可以把設(shè)計實體連接在一起形成模塊。在硬件電路中代表一條硬件連線,有時信號會被綜合成一個寄存器。變量主要是對暫時數(shù)據(jù)進(jìn)行局部存儲,它是一個局部量。信號與變量在使用前都必需先聲明后使用,否則會產(chǎn)生編譯錯誤。信號可以architecture、package、entitiy中聲明,是全局量可以在全局使用。變量可以process、function、procedure中聲明,也只能在process、function、procedur中使用不是全局變量。他們之間的主要區(qū)別有:信號賦值至少要有延時;而變
15、量賦值沒有。信號除當(dāng)前值外有許多相關(guān)的信息,如歷史信息和投影波形;而變量只有當(dāng)前值。進(jìn)程對信號敏感而不對變量敏感。信號可以是多個進(jìn)程的全局信號;而變量只在定義他們的順序域可見(共享變量除外)。信號是硬件中連線的抽象描述,他們的功能是保存變化的數(shù)據(jù)值和連接子元件,信號在元件的端口連接元件。變量在硬件中沒有類似的對應(yīng)關(guān)系,他們用于硬件特性的高層次建模所需要的計算中。 從綜合后所對應(yīng)的硬件電路結(jié)構(gòu)來看,信號一般將對應(yīng)更多的硬件結(jié)構(gòu),但在許多情況下,信號和變量并沒有什么區(qū)別。例如在滿足一定條件的進(jìn)程中,綜合后它們都能引入寄存器。這時它們都具有能夠接受賦值這一重要的共性,而VHDL綜合器并不理會它們在接
16、受賦值時存在的延時特性。9. 運(yùn)算符重載函數(shù)通常要調(diào)用轉(zhuǎn)換函數(shù),以便能夠利用已有的數(shù)據(jù)類型。下面給出一個新的數(shù)據(jù)類型AGE,并且下面的轉(zhuǎn)換函數(shù)已經(jīng)實現(xiàn):function CONV_INTEGER(ARG:AGE) return INTEGER;請仿照本章中的例子,利用此函數(shù)編寫一個“+”運(yùn)算符重載函數(shù),支持下面的運(yùn)算:SIGNALa,c : AGE;.c B 時, E=1;當(dāng) Ab)thenX=1;Y=0;Z=0;elsif(ab)thenX=0;Y=1;Z=0;ELSEX=0;Y=0;Z=1;endif;endprocess;endbehave;11. 在 VHDL 編程中,為什么應(yīng)盡可能使
17、用子類型對類型的取值范圍給予限定。答:由于子類型與其基本數(shù)據(jù)類型屬同一數(shù)據(jù)類型,因此屬于子類型的和屬于基本數(shù)據(jù) 類型的數(shù)據(jù)對象間的賦值和被賦值可以直接進(jìn)行,不必進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。利用子類型定義數(shù)據(jù)對象的好處是,除了使程序提高可讀性和易處理外,其實質(zhì)性的好處還在于有利于提高綜合的優(yōu)化效率,這是因為綜合器可以根據(jù)子類型所設(shè)的約束范圍,有效地推知參與綜合的寄存器的最合適的數(shù)目。12、判斷下面 3 例 VHDL 程序中是否有錯誤,若有錯誤則指出錯誤原因:程序1Signal A, EN : std_logic; Process (A, EN)Variable B : std_logic;Beginif
18、 EN = 1 thenB = A;end if;end process;程序 2Architecture one of sample isvariable a, b, c : integer;beginc = a + b;end;程序 3library ieee;use ieee.std_logic_1164.all;entity mux21 isport ( a, b : in std_logic; sel : in std_logic; c : out std_logic;); end sam2;architecture one of mux21 isbeginif sel = 0 th
19、en c := a;else c := b;end if;end two;答:程序1: 將“B=A”改成“B:=A”程序2:-將“c=a+b”改成“c:=a+b”程序3: 將“;)”改成“)” 將“sam2”改成“entity mux21” 增加“process(a,b,sel) beginif sel= 0 then c:=a; else c:=b; end if; -應(yīng)改成“if sel= 0 then c=a; else c=b; end if;”增加“end process;” 將“two”改成“architecture one”13、分別用 CASE 語句和 IF設(shè)計3-8譯碼器。答
20、:CASE語句:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder38 ISPORT (EN:IN STD_LOGIC;A0,A1,A2:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY decoder38;ARCHITECTUR bhv OF decoder38 ISSIGNAL S:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN SYYYYYYYYNULL; END CASE;END IF;END PROCESS;END ARCHITECTU
21、RE bhv;IF語句:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder38 ISPORT (EN:IN STD_LOGIC;A0,A1,A2:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY decoder38;ARCHITECTUR bhv OF decoder38 ISBEGINPROCESS (EN,A2,A1,A0)BEGINIF (EN=1) THEN IF(A2=0) THEN IF(A1=0) THEN IF(A0=0) THEN Y=0000000
22、1; ELSE Y=00000010; ELSIF(A1=1) THEN IF(A0=0) THEN Y=00000100; ELSE Y=00001000; END IF; END IF; ELSIF(A2=1) THEN IF(A1=0) THEN IF(A0=0) THEN Y=00010000; ELSE Y=00100000; END IF; ELSIF(A1=1) THEN IF(A0=0) THEN Y=01000000; ELSE Y=10000000; END IF; END IF; END IF;END IF;END PROCESS;END ARCHITECTURE bhv
23、;library ieee;use ieee.std_logic_1164.all;entity sss is port (a: in std_logic_vector(2 downto 0); cout:out std_logic_vector(7 downto 0);end ;architecture one of sss isbegin process(a) begin if a=000 then cout =11111110; elsif a=001 then cout =11111101; elsif a=010 then cout =11111011; elsif a=011 th
24、en cout =11110111; elsif a=100 then cout =11101111; elsif a=101 then cout =11011111; elsif a=110 then cout =10111111; elsif a=111 then cout x,b=y,ci=tmp,su=sum,co=cout); u2:df port map(d=cout,cl=clock,q1=tmp); end architecture one;-底層文件1:D觸發(fā)器library ieee;use ieee.std_logic_1164.all; entity df is por
25、t (d,cl:in std_logic; q1:out std_logic); end; architecture two of df is signal qq:std_logic; begin process(cl,qq) begin if cl event and cl=1 then qq=d; end if; end process; q1a,b1=b,cou=d,so=e); u2:h_adder port map(a1=e,b1=ci,cou=f,so=su); u3:or2a port map(a1=d,b1=f,c=co); end architecture three;-底層
26、文件2-1:半加器library ieee;use ieee.std_logic_1164.all; entity h_adder is port (a1,b1:in std_logic; so,cou:out std_logic); end; architecture four of h_adder is begin so=not(a1 xor(not b1); cou=a1 and b1; end architecture four;-底層文件2-2:或門library ieee;use ieee.std_logic_1164.all; entity or2a is port (a1,b1
27、:in std_logic; c:out std_logic); end; architecture five of or2a is begin c=a1 or b1; end architecture five;16. 設(shè)計5位可變模數(shù)計數(shù)器。設(shè)計要求:令輸入信號M1和M0 控制計數(shù)模,即令(M1,M0)=(0,0)時為模19 加法計數(shù)器,(M1,M0)=(0,1)時為模4計數(shù)器,(M1,M0) =(1,0) 為模10 加法計數(shù)器,(M1,M0)=(1,1)時為模6計數(shù)器。答:Entity mod_cal is Port(M1,M0:in bit; Count:out std_logic_v
28、ector(4 downto 0); Clk:in std_logic);End entity;Architecture behav of mod_cal isSignal count1:std_logic_vector(4 downto 0);Begin Process(clk,M1,M0) Variable sel is bit_vector(1 downto 0); Begin Sel:=M1&M0; If clkevent and clk=1then Count1if Count1=”10011”then Count1if Count1=”00100”then Count1if Cou
29、nt1=”01010”then Count1if Count1=”00110”then Count1=”00000”; End if; End case; End if;End process;Count=count1;End behav;17. 什么是 VHDL 結(jié)構(gòu)體的行為描述風(fēng)格,敘述行為描述的優(yōu)缺點。答:如果 VHDL 的結(jié)構(gòu)體只描述了所希望電路的功能或者說電路行為,而沒有直接指明或涉及實現(xiàn)這些行為的硬件結(jié)構(gòu),包括硬件特性、連線方式、邏輯行為方式,則稱為行為風(fēng)格的描述或行為描述。優(yōu)點:抽象程度最高,最能體現(xiàn)VHDL描述高層次結(jié)構(gòu)和系統(tǒng)的能力。缺點:只表示輸入與輸出間轉(zhuǎn)換的行為,它不包含
30、任何結(jié)構(gòu)信息。18結(jié)構(gòu)化描述與調(diào)用子程序有何異同點,VHDL 程序中是如何進(jìn)行結(jié)構(gòu)化描述的?結(jié)構(gòu)化描述需要哪些語句?答:略19. 試舉一例,在一個結(jié)構(gòu)體中同時含有3種不同描述風(fēng)格的VHDL語句結(jié)構(gòu)。答:略20. 以數(shù)據(jù)流的方式設(shè)計一個 2 位比較器,再以結(jié)構(gòu)描述方式將已設(shè)計好的比較器連接起來構(gòu)成一個 8 位比較器答:略21. 采用VHDL進(jìn)行數(shù)字系統(tǒng)設(shè)計有哪些特點?答:HDL系統(tǒng)設(shè)計的基本點:(1)與其他硬件描述語言相比,VHDL具有以下特點:(2)功能強(qiáng)大、設(shè)計靈活。(3)強(qiáng)大的系統(tǒng)硬件描述能力。 (4)易于共享和復(fù)用。22. VHDL的基本程序結(jié)構(gòu)由幾部分組成?各部分的功能是什么?答:由5
31、個部分組成,包含實體、結(jié)構(gòu)體、配置、程序包和庫。實體作為一個設(shè)計實體的組成部分,其功能是對這個設(shè)計實體與外部電路進(jìn)行接口描述。結(jié)構(gòu)體(ARCHITECTURE)是設(shè)計實體的一個重要部分,結(jié)構(gòu)體將具體實現(xiàn)一個實體。在利用 VHDL 進(jìn)行工程設(shè)計中,為了提高設(shè)計效率以及使設(shè)計遵循某些統(tǒng)一的語言標(biāo)準(zhǔn)或數(shù)據(jù)格式,有必要將一些有用的信息匯集在一個或幾個庫中以供調(diào)用,這些信息可以是預(yù)先定義好的數(shù)據(jù)類型、子程序等設(shè)計單元的集合體(程序包)或預(yù)先設(shè)計好的各種設(shè)計實體(元件庫程序包)。因此可以把庫看成是一種用來存儲預(yù)先完成的程序包、數(shù)據(jù)集合體和元件的倉庫。已在設(shè)計實體中定義的數(shù)據(jù)類型、子程序或數(shù)據(jù)對象對于其它設(shè)
32、計實體是不可用的,或者說是不可見的。為了使已定義的常數(shù)、數(shù)據(jù)類型、元件調(diào)用說明以及子程序能被更多的 VHDL 設(shè)計實體方便地訪問和共享,可以將它們收集在一個 VHDL 程序包中,多個程序包可以并入一個 VHDL 庫中,使之適用于更一般的訪問和調(diào)用范圍,這一點對于大系統(tǒng)開發(fā)多個或多組開發(fā)人員同步并行工作顯得尤為重要。配置可以把特定的結(jié)構(gòu)體關(guān)聯(lián)到一個確定的實體,正如配置一詞本身的含義一樣。配置也是 VHDL 設(shè)計實體中的一個基本單元,在綜合或仿真中,可以利用配置語句為確定整個設(shè)計提供許多有用信息。23. 說明端口模式BUFFER與INOUT有何異同點?答:INOUT為輸入輸出雙向端口,即從端口內(nèi)部
33、看,可以對端口進(jìn)行賦值,即輸出數(shù)據(jù)。也可以從此端口讀入數(shù)據(jù),即輸入。BUFFER為緩沖端口,功能與INOUT類似,區(qū)別在于當(dāng)需要讀入數(shù)據(jù)時,只允許內(nèi)部回讀內(nèi)部產(chǎn)生的輸出信號,即反饋。舉個例子,設(shè)計一個計數(shù)器的時候可以將輸出的計數(shù)信號定義為BUFFER,這樣回讀輸出信號可以做下一計數(shù)值的初始值。24. 用VHD設(shè)計一個實現(xiàn)三輸入的多數(shù)表決器。答:library ieee; use ieee.std_logic_1164.all; entity bjq3 is port(a,b,c:in std_logic; y:out std_logic); end; architecture x of bjq
34、3 is signal ty:std_logic_vector(2 downto 0); begin ty=a&b&c; with ty select y=0 when 000, 0 when 001, 0 when 010, 1 when 011, 0 when 100, 1 when 101, 1 when 110, 1 when 111, X when others; end;25. 用PROCESS語句描述帶同步復(fù)位的JK觸發(fā)器。答:library ieee; use ieee.std_logic_1164.all; entity jk_ff is port(clk,reset,j,k
35、:in std_logic; q,qb:out std_logic); end; architecture behave of jk_ff is signal tq,tqb:std_logic; begin q=tq;qb=tqb; process(clk,reset) begin if (clkevent and clk=1) then if (reset=0) then tq=0;tqb=1; elsif (j=0)and(k=0) then tq=tq;tqb=tqb; elsif (j=0)and(k=1) then tq=0;tqb=1; elsif (j=1)and(k=0) th
36、en tq=1;tqb=0; elsif (j=1)and(k=1) then tq=not tq;tqb=not tqb; end if; end if; end process; end;26. 用并行信號賦值語句設(shè)計8選1數(shù)據(jù)選擇器。答:library ieee; use ieee.std_logic_1164.all; entity xzq8 is port(x:in std_logic_vector(7 downto 0); sel:in std_logic_vector(2 downto 0); f:out std_logic); end; architecture a of xz
37、q8 is begin f=x(0) when sel=000 else x(1) when sel=001 else x(2) when sel=010 else x(3) when sel=011 else x(4) when sel=100 else x(5) when sel=101 else x(6) when sel=110 else x(7) when sel=111 else X; end;27. 用VHDL設(shè)計一個三態(tài)輸出的雙4選1數(shù)據(jù)選擇器。其地址信號共用,且各有個低電平有效的使能端答:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENT
38、ITY DUAL_MUX_41 ISPORT( A,B,C,D:IN STD_LOGIC; ENA_N,ENB_N:IN STD_LOGIC; S :IN STD_LOGIC_VECTOR(1 DOWNTO 0); OUTA,OUTB:OUT STD_LOGIC );ENDARCHITECTURE A OF DUAL_MUX_41 IS SIGNAL P,Q:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN P=ENA_N & S; Q=ENB_N & S; WITH P SELECT OUTA=A WHEN “000”, B WHEN”001”, C WHEN”010”,
39、 D WHEN”011”, Z WHEN OTHERS; WITH Q SELECT OUTB= A WHEN”000”, B WHEN”001”, C WHEN”010”, D WHEN”011”, Z WHEN OTHERS; END A; 28. 用VHDL設(shè)計實現(xiàn)由兩輸入端與非門構(gòu)成的1位全加器。答:略29. 用VHDL設(shè)計實現(xiàn)一百進(jìn)制的計數(shù)器。答:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISGENERIC( count_value: INTEGER:
40、=9); PORT (clk,clr,en: IN STD_LOGIC; co: OUT STD_LOGIC; count: OUT INTEGER RANGE 0 TO count_value);END counter;ARCHITECTURE a OF counter ISSIGNAL cnt: INTEGER RANGE 0 TO count_value;BEGINPROCESS (clk,clr) BEGIN IF clr = 1 THEN cnt = 0; ELSIF (clkEVENT AND clk = 1) THEN IF en = 1 THEN IF cnt = count_
41、value THEN cnt = 0;ELSE cnt = cnt + 1; END IF; END IF; END IF;END PROCESS;co=1 WHEN cnt=count_value ELSE 0;count 9) port map(clk,clr,en, en1, count1); bb: counter generic map( count_value=9) port map(clk=clk,clr=clr, en=en1, co=co,count=count2); end rtl; 30. 比較CASE語句與WITH_SELECT語句,敘述它們的異同點。答:相同點:CASE語句中各子句的條件不能有重疊,必須包容所有的條件;WITH_SECLECT語句也不允許選擇值有重疊現(xiàn)象,也不允許選擇值涵蓋不全的情況。另外,兩者對子句各選擇值的測試都具有同步性,都依賴于敏感信號的變化。 不同點:CASE語句只能在進(jìn)程中使用,至少包含一個條件語句,可以有多個賦值目標(biāo);WITH_SECLECT語句
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國翻新懸浮滑板行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 圓電極行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 中國濕式球磨機(jī)行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃研究報告
- 2025年直腳拋光圓盤爐項目投資可行性研究分析報告
- 2025年破碎機(jī)項目可行性研究報告
- 2025年交流直流焊機(jī)行業(yè)深度研究分析報告
- 2025年度模具加工與環(huán)保安全合同范本
- 最高額抵押擔(dān)保借款合同書(7篇)
- 出租房房屋租賃標(biāo)準(zhǔn)合同書(31篇)
- 2025年度建筑垃圾處理設(shè)備租賃及售后服務(wù)合同
- 二零二五版電力設(shè)施維修保養(yǎng)合同協(xié)議3篇
- 最經(jīng)典凈水廠施工組織設(shè)計
- VDA6.3過程審核報告
- 2024-2030年中國并購基金行業(yè)發(fā)展前景預(yù)測及投資策略研究報告
- 2024年湖南商務(wù)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- 骨科手術(shù)中常被忽略的操作課件
- 《湖南師范大學(xué)》課件
- 2024年全國各地中考試題分類匯編:作文題目
- 2024年高壓電工操作證考試復(fù)習(xí)題庫及答案(共三套)
- 《糖拌西紅柿 》 教案()
- 彈性力學(xué)數(shù)值方法:解析法:彈性力學(xué)中的變分原理
評論
0/150
提交評論