




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、EDA技術及實例開發教程課后習題第一章 緒論(7題)1.EDA的英文全稱及其中文含義是什么?答:EDA是Electronic Design Automation,其中文含義是“電子設計自動化”。2.什么叫EDA技術?簡述EDA技術的發展歷程。答:EDA技術有狹義和廣義之分,狹義EDA技術就是以大規??删幊踢壿嬈骷樵O計載體,以硬件描述語言為系統邏輯描述的主要表達方式,以計算機、大規模可編程邏輯器件的開發軟件及實驗開發系統為設計工具,通過有關的開發軟件,自動完成用軟件的方式設計的電子系統到硬件系統的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優化、邏輯布局布線、邏輯仿真,直至完成對于特定目標芯片的適
2、配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統或專用集成芯片的一門新技術,或稱為IES/ASIC自動設計技術。 3.簡述用EDA技術設計電路的設計流程。答 EDA設計流程包括:設計準備、設計輸入、設計處理、設計校驗、器件編程、器件測試和設計驗證。4.什么叫”綜合”和”網表文件”?答: (A)在電子設計領域中綜合的概念可以表示為:將用行為和功能層次表達的電子系統轉換為低層次的便于具體實現的模塊組合裝配的過程。(1)從自然語言轉換到 VHDL 語言算法表示,即 自然語言綜合。(2)從算法表示轉換到寄存器 傳輸級(RegisterTransport Level,RTL),即從行為域到結構域的
3、綜合,即行為綜合。(3)從 RTL 級表示轉換到邏 輯門(包括觸發器)的表示,即邏輯綜合。(4)從邏輯門表示轉換到版圖表示(ASIC 設計),或轉換到 FPGA 的配置網表 文件,可稱為版圖綜合或結構綜合。 綜合在電子設計自動化中處于核心地位。 (B)網表文件是描述電路的連接關系的文件,一般以文本文件的形式存在。英文為 netlist file格式有cdl, spice, aucdl.等5. 從使用的角度來講,EDA技術主要包括幾個方面的內容?這幾個方面在整個電子系統的設計中分別起什么作用?答: EDA技術的學習主要應掌握4個方面的內容: 大規模可編程邏輯器件; 硬件描述語言; 軟件開發工具;
4、 實驗開發系統。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等格式的文件作為設計輸入,并支持這些文件的任意混合設計。它具有門級仿真器,可以進行功能仿真和時序仿真,能夠產生精確的仿真結果。在適配之后,Max
5、+plus II生成供時序仿真用的Edif、VHDL和Verilog 3種不同格式的網表文件。Max+plus II界面友好,使用便捷,被譽為業界最易學易用的EDA軟件,并支持主流的第三方EDA工具,支持除APEx20K系列之外的所有A1tera公司的FPGACPLD大規模邏輯器件。 Quartus II是A1tera公司新近推出的EDA軟件工具,其設計工具完全支持VHDL和Verilog的設計流程,其內部嵌有VHDL、Verilog邏輯綜合器。第三方的綜合工具,如Leonardo Spectrum、Synplify pro和FPGA Compiler II有著更好的綜合效果,Quartus
6、II可以直接調用這些第三方工具,因此通常建議使用這些工具來完成VHDL/Verilog源程序的綜合。同樣,Quartus II具備仿真功能,也支持第三方的仿真工具,如Modelsim。此外,Quartus II為A1tera DSP開發包進行系統模型設計提供了集成綜合環境,它與MATLAB和DSP Builder結合可以進行基于FPGA的DSP系統開發,是DSP硬件系統實現的關鍵EDA工具。Quartus II還可與SOPC Builder結合,實現SOPC系統開發。ispExPERT是Lattice公司的主要集成環境。通過它可以進行VHDL、Verilog及ABEL語言的設計輸入、綜合、適配
7、、仿真和在系統下載。ispExPERT是目前流行的EDA軟件中最容易掌握的設計工具之一,它界面友好、操作方便、功能強大,并與第三方EDA工具兼容良好。 Foundation Series是Xilinx公司較成熟的集成開發EDA工具。它采用自動化的、完整的集成設計環境。Foundation項目管理器集成Xilinx實現工具,并包含了強大的書館Synopsys FPGA Express綜合系統,是業界最強大的EDA設計工具之一。7. 簡要闡述EDA技術的發展趨勢和應用領域答:從目前的EDA技術來看,其發展趨勢是政府重視、使用普及、應用文泛、工具多樣、軟件功能強大。EDA的范疇包括:機械、電子、通信
8、、航空航天、化工、礦產、生物、醫學、軍事等各個領域,都有 EDA的應用。第二章 VHDL硬件描述語言1、簡述實體(ENTITY)、結構體(ARCHITECTURE)與原理圖的關系。答:結構來說 實體就是原理圖的外觀,結構體中的具體程序就是原理圖中的具體實現。2、子程序調用與元件例化有何區別,函數與過程在具體使用上有何不同。答:從硬件角度講,一個子程序的調用類似于一個元件模塊的例化,VHDL綜合器為子程序的每一次調用都生成一個電路邏輯塊。所不同的是,元件的例化將產生一個新的設計層次,而子程序調用只對應于當前層次的一部分。函數和過程的不同在于:函數只有一個輸出,只能通過函數體內的RETURN語句來
9、實現,函數體內不能有信號賦值語句;而過程卻可以有不止一個輸出,而且是通過過程體內的信號賦值語句或者變量賦值語句來實現的,過程體內的RETURN語句沒有用處,因此不少過程都將其省略了。函數的調用只能通過表達式來實現,過程的調用則是通過過程調用語句來實現的。3、什么是重載函數?重載算符有何用處?如何調用重載算符函數。答:(1)什么是重載函數? 根據操作對象變換處理功能。 (2)重載算符有何用處? 用于兩個不同類型的操作數據自動轉換成同種數據類型,并進行運算處理。 (3)如何調用重載算符函數?采用隱式方式調用,無需事先聲明。4、在VHDL程序中配置有何用處?答:配置可以把特定的結構體關聯到一個確定的
10、實體,正如配置一詞本身的含義一樣。配置語句就是用來為較大的系統設計提供管理和工程組織的。配置也是 VHDL 設計實體中的一個基本單元,在綜合或仿真中,可以利用配置語句為確定整個設計提供許多有用信息。總之用于設置VHDL的工作參數以及工作模式。配置用來選擇實體的多個結構體的哪一個被使用。5. 嵌套 BLOCK 的可視性規則是什么?以嵌套 BLOCK 的語句方式設計三個并列的 3 輸入或門。答:BLOCK是 VHD 中具有的一種劃分機制,這種機制允許設計者合理地將一個模塊分為數個區域,在每個塊都能對其局部信號、數據類型和常量加以描述和定義。任何能在結構體的說明部分進行說明的對象都能在 BLOCK
11、說明部分中進行說明。相關參考代碼: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.簡述函數與過程的異同點,過程與
12、進程的異同點。答:子程序有兩種類型,即過程(PROCEDURE)和函數(FUNCTION)。函數和過程都是串行的。它們的區別在于:過程的調用可以通過其界面獲得多個返回值,而函數只能返回一個值;在函數入口中,所有參數都是輸入參數,而過程有輸入參數、輸出參數和雙向參數;過程一般被看作一種語句結構,而函數通常是表達式的一部分;過程可以單獨存在,而函數通常作為語句的一部分調用。過程和進程的相同點:只能使用順序語句,可以單獨存在。不同點:過程不能像進程那樣可以從本結構體的其他塊或進程結構中直接讀取信號值或者信號賦值。7、判斷下列 VHDL 標識符是否合法,如果不合法則指出原因:16#0FA#,10#12
13、F#,8#789#,8#356#,2#0101010#,74HC245,74HC574,CLR/RESET,IN 4/SCLK, D100%。答:識符用法規定:(1)只能包含英文字母,數字,下劃線(2)標識符的首字符只能是字母。故:(1)16#0FA#錯在首字符是數字,且包含非法字符“#“。 10#12F#、8#789#,8#356#,2#0101010#,74HC245也是犯同一錯誤。(2)74HC574,CLR/RESET,IN4/SCLK,D100%都是非法,包含非法字符.8、討論數據對象信號與變量間的異同處,說明它們的使用對所形成的硬件結構有何影響。答:在VHDL中,對象是指用來保持數
14、據的一些客體單元。信號跟變量是VHDL中的重要客體。信號是指在設計實體中數據交換的一種手段,采用信號對象可以把設計實體連接在一起形成模塊。在硬件電路中代表一條硬件連線,有時信號會被綜合成一個寄存器。變量主要是對暫時數據進行局部存儲,它是一個局部量。信號與變量在使用前都必需先聲明后使用,否則會產生編譯錯誤。信號可以architecture、package、entitiy中聲明,是全局量可以在全局使用。變量可以process、function、procedure中聲明,也只能在process、function、procedur中使用不是全局變量。他們之間的主要區別有:信號賦值至少要有延時;而變量賦
15、值沒有。信號除當前值外有許多相關的信息,如歷史信息和投影波形;而變量只有當前值。進程對信號敏感而不對變量敏感。信號可以是多個進程的全局信號;而變量只在定義他們的順序域可見(共享變量除外)。信號是硬件中連線的抽象描述,他們的功能是保存變化的數據值和連接子元件,信號在元件的端口連接元件。變量在硬件中沒有類似的對應關系,他們用于硬件特性的高層次建模所需要的計算中。 從綜合后所對應的硬件電路結構來看,信號一般將對應更多的硬件結構,但在許多情況下,信號和變量并沒有什么區別。例如在滿足一定條件的進程中,綜合后它們都能引入寄存器。這時它們都具有能夠接受賦值這一重要的共性,而VHDL綜合器并不理會它們在接受賦
16、值時存在的延時特性。9. 運算符重載函數通常要調用轉換函數,以便能夠利用已有的數據類型。下面給出一個新的數據類型AGE,并且下面的轉換函數已經實現:function CONV_INTEGER(ARG:AGE) return INTEGER;請仿照本章中的例子,利用此函數編寫一個“+”運算符重載函數,支持下面的運算:SIGNALa,c : AGE;.c <= a + 20;答:function “+”(L : AGE, R: integer) return AGE isBeginreturn CONV_AGE(L + CONV_INTEGER(R);End;10、設計16 位比較器,比較器
17、的輸入是2個待比較的16位數:A=A15A0, B=B15B0,輸出是 D、E、F。當 A=B 時, D=1;當 A>B 時, E=1;當 A<B時,F=1(參考方法:用常規的比較器設計方法,即直接利用關系操作符進行編程設計,或者利用減法器來完成,通過減法運算后的符號和結果來判別兩個被比較值的大?。?。答:略library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity compare is p
18、ort(a: in std_logic_vector(3 downto 0); b: in std_logic_vector(3 downto 0); X,Y,Z: out std_logic);end compare;architecture behave
19、;of compare is begin process(a,b) begin if (a > b) then X <=
20、'1' Y <='0'
21、160; Z <='0' elsif(a < b) then X <='0'
22、; Y <='1'
23、 Z <='0' ELSE
24、60; X <='0' Y <='
25、;0' Z <='1' end if;
26、 end process; end behave;11. 在 VHDL 編程中,為什么應盡可能使用子類型對類型的取值范圍給予限定。答:由于子類型與其基本數據類型屬同一數據類型,因此屬于子類型的和屬于基本數據 類型的數據對象間的賦值和被賦值可以直接進行,不必進行數據類型的轉換。利用子類型定義數據對象的好處是,除了使程序提高可讀性和易處理外,其實質性的好處還在于有利于提高綜合的優化效率,這是因為綜合器可以根據子類型所設的約束范圍,有效地推知參與綜合的寄存器的最合適的數目。12
27、、判斷下面 3 例 VHDL 程序中是否有錯誤,若有錯誤則指出錯誤原因:程序1Signal A, EN : std_logic; Process (A, EN)Variable B : std_logic;Beginif 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 (
28、 a, b : in std_logic; sel : in std_logic; c : out std_logic;); end sam2;architecture one of mux21 isbeginif sel = '0' then 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'
29、; then c:=a; else c:=b; end if; -應改成“if sel= '0' then c<=a; else c<=b; end if;”增加“end process;” 將“two”改成“architecture one”13、分別用 CASE 語句和 IF設計3-8譯碼器。答:CASE語句:module decoder38(input 2:0code,output reg7:0result);always(*)begincase(code)3'b000: result = 8'h01;3'b001: result =
30、8'h02;3'b010: result = 8'h04;3'b011: result = 8'h08;3'b100: result = 8'h10;3'b101: result = 8'h20;3'b110: result = 8'h40;3'b111: result = 8'h80;endcaseendendmoduleIF語句:module decoder38(input 2:0code,output reg7:0result);always(*)beginif(code2)if(co
31、de1)if(code0)result = 8'h80;elseresult = 8'h40;elseif(code0)result = 8'h20;elseresult = 8'h10;elseelseif(code1)if(code0)result = 8'h08;elseresult = 8'h04;elseif(code0)result = 8'h02;elseresult = 8'h01;elseendendmodule14、若在進程中加入 WAIT語句,應注意哪幾個方面的問題。答:應注意以下問題:已列出敏感信號的進程中
32、不能使用任何形式的WAIT語句;一般情況下,只有WAIT UNTIL格式的等待語句 可以被綜合器所接受,其余語句格式只能在VHDL仿真器中使用;在使用WAIT ON語句的進程中,敏感信號量應寫在進程中的WAIT ON語句后面;在不使用WAIT ON語句的進程中,敏感信號量應在開頭的關鍵詞PROCESS后面的敏感信號表中列出。15、圖2.15中的 f_adder是一位全加器,cin 是輸入進位,cout 是輸出進位。試給出此電路的VHDL描述。圖2.15 習題15圖答:略16. 設計5位可變模數計數器。設計要求:令輸入信號M1和M0 控制計數模,即令(M1,M0)=(0,0)時為模19 加法計數
33、器,(M1,M0)=(0,1)時為模4計數器,(M1,M0) =(1,0) 為模10 加法計數器,(M1,M0)=(1,1)時為模6計數器。答:Entity mod_cal is Port(M1,M0:in bit; Count:out std_logic_vector(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_ve
34、ctor(1 downto 0); Begin Sel:=M1&M0; If clkevent and clk=1then Count1<=Count1+1; Case sel is When“00”=>if Count1=”10011”then Count1<=”00000”; End if;When“01”=>if Count1=”00100”then Count1<=”00000”; End if;When“10”=>if Count1=”01010”then Count1<=”00000”; End if;When“11”=>if
35、 Count1=”00110”then Count1<=”00000”; End if; End case; End if;End process;Count<=count1;End behav;17. 什么是 VHDL 結構體的行為描述風格,敘述行為描述的優缺點。答:如果 VHDL 的結構體只描述了所希望電路的功能或者說電路行為,而沒有直接指明或涉及實現這些行為的硬件結構,包括硬件特性、連線方式、邏輯行為方式,則稱為行為風格的描述或行為描述。優點:抽象程度最高,最能體現VHDL描述高層次結構和系統的能力。缺點:只表示輸入與輸出間轉換的行為,它不包含任何結構信息。18結構化描述與調
36、用子程序有何異同點,VHDL 程序中是如何進行結構化描述的?結構化描述需要哪些語句?答:略19. 試舉一例,在一個結構體中同時含有3種不同描述風格的VHDL語句結構。答:略20. 以數據流的方式設計一個 2 位比較器,再以結構描述方式將已設計好的比較器連接起來構成一個 8 位比較器答:略21. 采用VHDL進行數字系統設計有哪些特點?答:HDL系統設計的基本點:(1)與其他硬件描述語言相比,VHDL具有以下特點:(2)功能強大、設計靈活。(3)強大的系統硬件描述能力。 (4)易于共享和復用。22. VHDL的基本程序結構由幾部分組成?各部分的功能是什么?答:由5個部分組成,包含實體、結構體、配
37、置、程序包和庫。實體作為一個設計實體的組成部分,其功能是對這個設計實體與外部電路進行接口描述。結構體(ARCHITECTURE)是設計實體的一個重要部分,結構體將具體實現一個實體。在利用 VHDL 進行工程設計中,為了提高設計效率以及使設計遵循某些統一的語言標準或數據格式,有必要將一些有用的信息匯集在一個或幾個庫中以供調用,這些信息可以是預先定義好的數據類型、子程序等設計單元的集合體(程序包)或預先設計好的各種設計實體(元件庫程序包)。因此可以把庫看成是一種用來存儲預先完成的程序包、數據集合體和元件的倉庫。已在設計實體中定義的數據類型、子程序或數據對象對于其它設計實體是不可用的,或者說是不可見
38、的。為了使已定義的常數、數據類型、元件調用說明以及子程序能被更多的 VHDL 設計實體方便地訪問和共享,可以將它們收集在一個 VHDL 程序包中,多個程序包可以并入一個 VHDL 庫中,使之適用于更一般的訪問和調用范圍,這一點對于大系統開發多個或多組開發人員同步并行工作顯得尤為重要。配置可以把特定的結構體關聯到一個確定的實體,正如配置一詞本身的含義一樣。配置也是 VHDL 設計實體中的一個基本單元,在綜合或仿真中,可以利用配置語句為確定整個設計提供許多有用信息。23. 說明端口模式BUFFER與INOUT有何異同點?答:INOUT為輸入輸出雙向端口,即從端口內部看,可以對端口進行賦值,即輸出數
39、據。也可以從此端口讀入數據,即輸入。BUFFER為緩沖端口,功能與INOUT類似,區別在于當需要讀入數據時,只允許內部回讀內部產生的輸出信號,即反饋。舉個例子,設計一個計數器的時候可以將輸出的計數信號定義為BUFFER,這樣回讀輸出信號可以做下一計數值的初始值。24. 用VHD設計一個實現三輸入的多數表決器。答: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 bjq3 is signal ty:s
40、td_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 &
41、quot;110", '1' when "111", 'X' when others; end;25. 用PROCESS語句描述帶同步復位的JK觸發器。答:library ieee; use ieee.std_logic_1164.all; entity jk_ff is port(clk,reset,j,k:in std_logic; q,qb:out std_logic); end; architecture behave of jk_ff is signal tq,tqb:std_logic; begin q<=tq;q
42、b<=tqb; process(clk,reset) begin if (clk'event 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' els
43、if (j='1')and(k='0') then 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. 用并行信號賦值語句設計8選1數據選擇器。答:library ieee; use ieee.std_logic_1164.all; entity xzq8 is port(x:in std_logic_vector(
44、7 downto 0); sel:in std_logic_vector(2 downto 0); f:out std_logic); end; architecture a of xzq8 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=
45、"101" else x(6) when sel="110" else x(7) when sel="111" else 'X' end;27. 用VHDL設計一個三態輸出的雙4選1數據選擇器。其地址信號共用,且各有個低電平有效的使能端答:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DUAL_MUX_41 ISPORT( A,B,C,D:IN STD_LOGIC; ENA_N,ENB_N:IN STD_LOGIC; S :IN STD_LOGIC_VECTOR(1 D
46、OWNTO 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”, D WHEN”011”, Z WHEN OTHERS; WITH Q SELECT OUTB<= A WHEN”000”, B WHEN”001”,
47、 C WHEN”010”, D WHEN”011”, Z WHEN OTHERS; END A; 28. 用VHDL設計實現由兩輸入端與非門構成的1位全加器。答:略29. 用VHDL設計實現一百進制的計數器。答:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISGENERIC( count_value: INTEGER:=9); PORT (clk,clr,en: IN STD_LOGIC; co: OUT STD_LOGIC; count: OUT INTEGER
48、 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 (clk'EVENT AND clk = '1') THEN IF en = '1' THEN IF cnt = count_value THEN cnt <= 0;ELSE cnt <
49、;= cnt + 1; END IF; END IF; END IF;END PROCESS;co<=1 WHEN cnt=count_value ELSE 0;count <= cnt;END a; library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity counter1 is port(clk,clr,en: in std_logic; co:out std_logic; count1:
50、 out integer range 0 to 9; count2: out integer range 0 to 9); end counter1; architecture rtl of counter1 is signal en1: std_logic; component counter is generic( count_value: integer); port (clk,clr,en: in std_logic; co: out std_logic; count: out integer range 0 to count_value); end component; begin
51、aa: counter generic map( count_value => 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語句也不允許選擇
52、值有重疊現象,也不允許選擇值涵蓋不全的情況。另外,兩者對子句各選擇值的測試都具有同步性,都依賴于敏感信號的變化。 不同點:CASE語句只能在進程中使用,至少包含一個條件語句,可以有多個賦值目標;WITH_SECLECT語句根據滿足的條件,對信號進行賦值,其賦值目標只有一個,且必須是信號。31、將以下程序段轉換為 WHEN_ELSE 語句:PROCESS(a,b,c,d)BEGINIF a= '0' AND b='1' THENnext1 <= "1101"ELSIFa='0' THENnext1 <= dELSIF
53、b='1' THENnext1 <= cELSENext1<= "1011"END IF;END PROCESS;答:原程序轉換如下: ARCHITECTURE one OF mux IS BEGIN PROCESS(a,b,c,d) BEGIN NEXT1 <="110"1WHEN a=0 AND b=1 ELSE d WHEN a=0 ELSE c WHEN b=1 ELSE "1011" END one; END PROCESS; 32. 以下為一時序邏輯模塊的VHDL 結構體描述,請找出其中的
54、錯誤:ARCHITECTURE one OFcom1BEGINVARIABLE a,b,c,clock:STD_LOGIC ;pro1:PROCESS BEGINIFNOT(clock'EVENT AND clock='1')THENx<= a xor b or cEND IF; END PROCESS; END;答:33. VHDL 程序設計中用WITH_SELECT_WHEN語句描述4個16位至1個16位輸出的4選1多路選擇器。答:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux IS PORT(dina
55、: IN STD_LOGIC_VECTOR(0 to 15); dinb : IN STD_LOGIC_VECTOR(0 to 15); dinc : IN STD_LOGIC_VECTOR(0 to 15); dind : IN STD_LOGIC_VECTOR(0 to 15); sel: IN STD_LOGIC_VECTOR(0 to 1); dout : OUT STD_LOGIC_VECTOR(0 to 15);END mux;ARCHITECTURE rtl OF mux ISBEGINwith sel select dout<=dina WHEN "00&quo
56、t;, dinb WHEN "01", dinc WHEN "10", dind WHEN "11", "ZZZZZZZZZZZZZZZZ" when others; END rtl;34、哪些情況下需要用到程序包STD_LOGIC_UNSIGNED,試舉一例。答:調用數據類型變換函數或重載運算符函數時;定義UNSIGNED類型的數據時。舉例如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; · &
57、#183; IF TEMP=”11111111”THEN TEMP:=”00000000”; ELSE TEMP:=TEMP+16;END IF;···35. 為什么說一條并行賦值語句可以等效為一個進程,如果是這樣的話,怎樣實現敏感信號的檢測。答:因為信號賦值語句的共同點是賦值目標必須都是信號,所以賦值語句與其它并行語句一樣,在結構體內的執行是同時發生的,與它們的書寫順序沒有關系,所以每一信號賦值語句都相當于一條縮寫的進程語句。由于這條語句的所有輸入信號都被隱性地列入此縮寫進程的敏感信號表中,故任何信號的變化都將相關并行語句的賦值操作,這樣就實現了敏感信號的檢測。
58、36. 給出 1 位全減器的VHDL描述,要求:(1) 類似于 1 位全加器的設計方法,首先設計1位半減器,然后用例化語句將它們連 接起來,圖 2.20中 h_suber 是半減器,diff是輸出差,s_out是借位輸出,sub_in 借位輸入;(2)直接根據全減器的真值表 2.12進行設計;(3)以1位全減器為基本硬件,構成串行借位的 8 位減法器,要求用例化語句和生成語句來完成此項設計(減法運算是xy - sun_in =diffr)。 圖 2.20 36題圖 表 2.12 全減器真值表答:(1)先設計一個半減器X y 00011011diff0110S_out0100Library ie
59、ee;useieee.std_logic_1164.all;entity h_suber is port (x,y : in std_logic;diff,s_out : out std_logic);end entity ;architecture hdlarch of h_suber isbeginprocess(x,y) begin diff <= x xor y; s_out <= (not x) and y;end process;end hdlarch;1 位全減器的 VHDL 設計文件:suber.vhdLIBRARY ieee;USE ieee.std_logic_
60、1164.all; ENTITY suber IS port(x,y : IN STD_LOGIC;sub_in : IN STD_LOGIC;diffr : OUT STD_LOGIC;sub_out : OUT STD_LOGIC );END suber;ARCHITECTURE scharch OF suber IS component h_suberPORT(x : IN STD_LOGIC; y : IN STD_LOGIC;diff : OUT STD_LOGIC; s_out : OUT STD_LOGIC);end component;signal t0,t1,t2 : STD_LOGIC;BEGIN u1 : h_suberPORT MAP(x => x, y => y, diff => t0, s_out => t1);u2 : h_suberPORT MAP(x => t0, y => sub_in, diff => diffr, s_out => t2);sub_out <= t1 OR t2;END;(2)略(3)8位減法器LIBRARY ieee;USE ieee.std_logic_1164.all; ENTI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管理制度的起源
- 地鐵車站中立柱施工方案
- 矩形渠襯砌渠道施工方案
- 技術設備購銷合同范本
- 重慶城市科技學院《坐具設計》2023-2024學年第二學期期末試卷
- 江西財經職業學院《醫事爭議處理法》2023-2024學年第一學期期末試卷
- 南昌航空大學《西語國家文化概況》2023-2024學年第二學期期末試卷
- 江西信息應用職業技術學院《數字邏輯基礎》2023-2024學年第二學期期末試卷
- 石材幕墻維修施工方案
- 浙江工業職業技術學院《復合材料導論》2023-2024學年第二學期期末試卷
- 藥事管理法律法規相關知識培訓
- 地毯織造技藝(北京宮毯織造技藝)
- 第4章-選區激光熔化工藝及材料課件
- GB/T 3785.1-2023電聲學聲級計第1部分:規范
- 2023屆高考寫作指導:“尋找溫暖”與“成為燈火”課件
- 2022年上海市工業技術學校招聘考試真題
- 長期護理保險技能比賽理論試題庫300題(含各題型)
- 二重積分的概念與性質演示文稿
- 醫院雙重預防機制建設工作完成情況
- 大學生勞動教育通論知到章節答案智慧樹2023年大連海洋大學
- 2003高教社杯全國大學生數學建模競賽B題競賽參考答案
評論
0/150
提交評論