版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、這是一份vhdl的復(fù)習(xí)題,考試題大多數(shù)都來(lái)自此處,一、 EDA名詞解釋1、 ASIC:專用集成電路(Application Specific Integrated Circuits)2、 EDA:電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)3、 PROM:可編程只讀存儲(chǔ)器(Programmable Read Memory)4、 IP:知識(shí)產(chǎn)權(quán)核(Intellectual Property )5、 SOC: 片上系統(tǒng)(System On Chip)6、 VHDL:超高速集成電路硬件描述語(yǔ)言(VHSIC Hardware Description Language)。7
2、、 RTL: 寄存器傳輸級(jí)(Register Transport Level)8、 SOPC:可編程片上系統(tǒng)(System On Programmable Chip)9、 PLD:可編程邏輯器件(Programmable Logic Array)10、 GAL:通用陣列邏輯(Geniric Array Logic)11、 FPGA:現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array )12、 CPLD:復(fù)雜可編程邏輯器件(Complex Programmable Logic Device)二、 簡(jiǎn)答題1、 簡(jiǎn)述VHDL程序的基本結(jié)構(gòu)。庫(kù)、程序包、實(shí)體、結(jié)構(gòu)體、配置2、
3、 子程序分為那兩類,其結(jié)構(gòu)為什么。子程序有兩種類型,即過(guò)程(PROCEDURE)和函數(shù)(FUNCTION)。FUNCTION 函數(shù)名(參數(shù)表) RETURN 數(shù)據(jù)類型 -函數(shù)首FUNCTION 函數(shù)名(參數(shù)表)RETURN 數(shù)據(jù)類型 IS - 函數(shù)體說(shuō)明部分 BEGIN 順序語(yǔ)句 ;END FUNCTION 函數(shù)名;PROCEDURE 過(guò)程名(參數(shù)表) - 過(guò)程首PROCEDURE 過(guò)程名(參數(shù)表) IS - 過(guò)程體說(shuō)明部分BIGIN 順序語(yǔ)句;END PROCEDURE 過(guò)程名;3、 信號(hào)與變量的賦值有何區(qū)別?。信號(hào)延時(shí)賦值,變量立即賦值;信號(hào)的代入使用<=,變量的代入使用:=;信號(hào)在
4、實(shí)際的硬件當(dāng)中有對(duì)應(yīng)的連線,變量沒有4、 可編程器件分為哪些類?答:一類是集成度較低的,早期出現(xiàn)的PROM、PLD、PAL、GAL,可用的邏輯門數(shù)大約在500門以下,稱為簡(jiǎn)單PLD。另一類是芯片集成度較高的,如現(xiàn)在大量使用的CPLD和FPGA器件,稱為復(fù)雜PLD。5、 CASE語(yǔ)句使用當(dāng)中的注意事項(xiàng)。(1)條件句中的選擇值必在表達(dá)式的取值范圍內(nèi)。(2)除非所有條件句中的選擇值能完整覆蓋CASE語(yǔ)句中表達(dá)式的取值,否則最末一個(gè)條件句中的選擇必須用"OTHERS”表示,它代表己給的所有條件句中未能列出的其它可能的取值。關(guān)鍵詞OTHERS只能出現(xiàn)一次,目只能作為最后一種條件取值。使用OTH
5、ERS的目的是為了使條件句中的所有選擇值能涵蓋表達(dá)式的所有取值,以免綜合器會(huì)插入不必要的鎖存器。這一點(diǎn)對(duì)于定義為STD_ LOGIC和STD_ LOGIC_VECTOR數(shù)據(jù)類型的值尤為重要,因?yàn)檫@些數(shù)據(jù)對(duì)象的取值除了1和0以外,還可能有其它的取值,如高阻態(tài)Z、不定態(tài)X等。(3) CASE語(yǔ)句中每一條件句的選擇值只能出現(xiàn)一次,不能有相同選擇值的條件語(yǔ)句出現(xiàn)。 (4) CASE語(yǔ)句執(zhí)行中必須選中,目只能選中所列條件語(yǔ)句中的一條。這表明CASE語(yǔ)句中至少要包含一個(gè)條件語(yǔ)句。6、 賦值語(yǔ)句分哪些類,分別寫出一句賦值語(yǔ)句。信號(hào)賦值語(yǔ)句,S<=變量賦值語(yǔ)句,V7、 數(shù)據(jù)對(duì)象有哪些種,分別寫出定義這些
6、數(shù)據(jù)對(duì)象的一般表述格式。Constant(常量)在程序中不可以被賦值Variable(變量)在程序中可以被賦值(用“:=”),賦值后立即變化為新值。Signal(信號(hào))在程序中可以被賦值(用“<=”),但不立即更新,當(dāng)進(jìn)程掛起后,才開始更新。8、 簡(jiǎn)述進(jìn)程語(yǔ)句的使用要點(diǎn)?進(jìn)程名:process(觸發(fā)信號(hào)列表)定義語(yǔ)句;begin串行處理語(yǔ)句sequential statement;end processPROCESS.END PROCESS9、 寫出VHDL常用的順序語(yǔ)句的名稱。賦值語(yǔ)句流程控制語(yǔ)句等待語(yǔ)句子程序調(diào)用語(yǔ)句返回語(yǔ)句空操作語(yǔ)句10、 VHDL語(yǔ)言中的邏輯操作符有那些?邏輯運(yùn)算
7、符AND、OR、NAND、NOR、XOR、XNOR及NOT11、 使用原理圖輸入設(shè)計(jì)功能的優(yōu)勢(shì)何優(yōu)點(diǎn)?與傳統(tǒng)的數(shù)字電路實(shí)驗(yàn)相比,Quartus提供原理圖設(shè)計(jì)功能具有不可比擬的優(yōu)勢(shì)和先進(jìn)性:設(shè)計(jì)者不必具備許多諸如編程技術(shù)、硬件描述語(yǔ)言等知識(shí)就能迅速設(shè)計(jì)入門,完成大規(guī)模的電路系統(tǒng)設(shè)計(jì)能進(jìn)行任意層次的數(shù)字系統(tǒng)設(shè)計(jì)(傳統(tǒng)的數(shù)字電路實(shí)驗(yàn)只能完成單一層次的設(shè)計(jì));能對(duì)系統(tǒng)中的任一層次,或任一元件的功能進(jìn)行精確的時(shí)序仿真通過(guò)時(shí)序仿真,能迅速定位電路系統(tǒng)的錯(cuò)誤所在,并隨時(shí)糾正。能對(duì)設(shè)計(jì)方案進(jìn)行隨時(shí)更改,并儲(chǔ)存設(shè)計(jì)工程中所有電路和測(cè)試文件入檔;通過(guò)編譯和下載,能在FPGA或CPLD上對(duì)設(shè)計(jì)項(xiàng)目隨時(shí)進(jìn)行硬件測(cè)試驗(yàn)
8、證;如果使用FPGA和配置編程方式,將不會(huì)有損壞和損耗的問(wèn)題符合現(xiàn)代電子設(shè)計(jì)技術(shù)規(guī)范。12、 VHDL的操作符有那幾大類?每一類的操作符分別是什么?每一類操作符可以對(duì)那些數(shù)據(jù)進(jìn)行操作(運(yùn)算)?在VHDL中有四類操作符即邏輯操作符(Logical Operator)、關(guān)系操作符(Relational Operator)、算術(shù)操作符(Arithmetic Operator)和符號(hào)操作符(Sign Operator)。前三類操作符是完成邏輯和算術(shù)運(yùn)算的最基本的操作符單元。13、 標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型常用的數(shù)值有哪幾種?'U'-Uninitialized未初始化的'X'-
9、Forcing Unknown強(qiáng)未知的'0'-Forcing 0強(qiáng)0'1'-Forcing 1強(qiáng)1'Z'-High Impedance 高阻態(tài)'W'-Weak Unknown弱未知的'L'-Weak 0 弱0'H'-Weak 1弱1'-'-Don't care忽略 14、 在VHDL語(yǔ)言中常見的數(shù)據(jù)類型有那些?VHDL中的數(shù)據(jù)類型可以分成四大類。標(biāo)量型(Scalar Type)復(fù)合類型(Composite Type)存取類型(Access Type)文件類型(Files Ty
10、pe)15、 實(shí)體部分的端口模式有四個(gè)類型。IN模式:IN定義的通道確定為輸入端口,并規(guī)定為單向只讀模式,可以通過(guò)此端口將變量(Variable)信息或信號(hào)(Signal)信息讀入設(shè)計(jì)實(shí)體中。OUT模式:OUT定義的通道確定為輸出端口,并規(guī)定為單向輸出模式,可以通過(guò)此端口將信號(hào)輸出設(shè)計(jì)實(shí)體,或者說(shuō)可以將設(shè)計(jì)實(shí)體中的信號(hào)向此端口賦值。INOUT模式:INOUT定義的通道確定為輸入輸出雙向端口,即從端口的內(nèi)部看,可以對(duì)此端口進(jìn)行賦值,也可以通過(guò)此端口讀入外部的數(shù)據(jù)信息;而從端口的外部看,信號(hào)既可以從此端口流出,也可以向此端口輸入信號(hào)。INOUT模式包含了IN,OUT和BUFFER二種模式,因此可替
11、代其中任何一種模式,但為了明確程序中各端口的實(shí)際任務(wù),一般不作這種替代。BUFFER模式:BUFFER定義的通道確定為具有數(shù)據(jù)讀入功能的輸出端口,它與雙向端口的區(qū)別在于只能接受一個(gè)驅(qū)動(dòng)源。16、 VHDL語(yǔ)句中順序描述語(yǔ)句有哪幾種?賦值語(yǔ)句流程控制語(yǔ)句等待語(yǔ)句子程序調(diào)用語(yǔ)句返回語(yǔ)句空操作語(yǔ)句17、 用WAIT語(yǔ)句設(shè)置4種不同的條件分別是什么?對(duì)于不同的結(jié)束掛起條件的設(shè)置,WAIT語(yǔ)句有以下四種不同的語(yǔ)句格式。WAIT; - 第一種語(yǔ)句格式WAIT ON 信號(hào)表; - 第二種語(yǔ)句格式WAIT UNTIL 條件表達(dá)式; - 第三種語(yǔ)句格式WAIT FOR 時(shí)間表達(dá)式; - 第四種語(yǔ)句格式, 超時(shí)等
12、待語(yǔ)句18、 常用的if語(yǔ)句有哪幾種?寫出其書寫格式。A. 門閂IF條件句Then -第一種IF語(yǔ)句結(jié)構(gòu)順序語(yǔ)句END IFB. 二選一IF條件句Then -第二種IF語(yǔ)句結(jié)構(gòu)順序語(yǔ)句ELSE順序語(yǔ)句END IFC. 多選擇IF條件句Then -第三種IF語(yǔ)句結(jié)構(gòu)順序語(yǔ)句ELSIF條件句Then順序語(yǔ)句.ELSE順序語(yǔ)句END IFD. IF的嵌套IF條件句ThenIF條件句Then.END IFEND IF19、 如何描述時(shí)鐘上升沿和下降沿?時(shí)鐘脈沖的上升沿的條件可以寫為:IF clock_signal=current_value AND clock_signalLAST_VALUE AND
13、 clock_signalEVENT也可以簡(jiǎn)寫為:IF clock_signal= clock_signalEVENT AND current_value 時(shí)鐘脈沖的下降沿的條件可以寫為:IF clock_signal=current_value AND clock_signalLAST_VALUE AND clock_signalEVENT20、 指出信號(hào)和變量有哪些區(qū)別?簡(jiǎn)單的說(shuō),信號(hào)是全局的,用于結(jié)構(gòu)體中并行語(yǔ)句間數(shù)據(jù)流的傳遞;變量則是局部的,他主要用于單個(gè)進(jìn)程中中間變量的存儲(chǔ).主要用于對(duì)暫時(shí)數(shù)據(jù)進(jìn)行局部存儲(chǔ)。臨時(shí)數(shù)據(jù),沒有物理意義只能在Process和Function中定義,并只在其內(nèi)
14、部有效要使其全局有效,先轉(zhuǎn)換為Signal。用 := 進(jìn)行賦值 variable result : std_logic := '0'變量說(shuō)明的格式:VARIABLE 變量名:數(shù)據(jù)類型 約束條件:=表達(dá)式;例:VARIABLE X,Y:INTEGER; VARIABLE C:INTEGER RANGE 0 TO 255:=10;(表示變量C的數(shù)據(jù)類型是整型,變量范圍從0到255,初始值為10。)變量只能在進(jìn)程語(yǔ)句、函數(shù)語(yǔ)句和過(guò)程語(yǔ)句結(jié)構(gòu)中使用,它是一個(gè)局部量。在仿真過(guò)程中,它不像信號(hào)那樣,到了規(guī)定的仿真時(shí)間才進(jìn)行賦值,變量是立即生效的。信號(hào)是抽象的電子電路內(nèi)部硬件連接。它除了沒有
15、數(shù)據(jù)流動(dòng)方向說(shuō)明以外,其它性質(zhì)幾乎和前面所述的端口概念一致。信號(hào)通常在構(gòu)造體、包集合和實(shí)體內(nèi)說(shuō)明。信號(hào)說(shuō)明的格式:SIGNAL 信號(hào)名;數(shù)據(jù)類型 約束條件:=表達(dá)式;例:SIGNAL a,b,c:STD_LOGIC; SIGNAL COUNT_2:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL S_CLK:BIT:='0'信號(hào)(Signals)代表連線,Port也是一種信號(hào)。沒有方向性,可給它賦值,也可當(dāng)作輸入在Entity中和Architecture中定義設(shè)定的初始值在綜合時(shí)沒有用,只是在仿真時(shí)在開始設(shè)定一個(gè)起始值。用<=進(jìn)行賦值。信號(hào)和變量值
16、的代入不僅形式不同,而且其操作過(guò)程也不同。在變量的賦值語(yǔ)句中,該語(yǔ)句一旦被執(zhí)行,其值立即被賦予變量。在執(zhí)行下一條語(yǔ)句時(shí),該變量的值就為上一句新賦的值。變量賦值符為“:=”。信號(hào)代入語(yǔ)句采用“<=”代入符,該語(yǔ)句即使被執(zhí)行也不會(huì)使信號(hào)立即發(fā)生代入。下一條語(yǔ)句執(zhí)行時(shí),仍使用原來(lái)的信號(hào)值。由于信號(hào)代入語(yǔ)句是同時(shí)進(jìn)行處理的,因此,實(shí)際代入過(guò)程和代入語(yǔ)句的處理是分開進(jìn)行的。21、 信號(hào)賦值語(yǔ)句在什么情況下作為并行語(yǔ)句?在什么情況下作順序語(yǔ)句?信號(hào)賦值和變量賦值符號(hào)分別是什么??jī)煞N賦值符號(hào)有什么區(qū)別?信號(hào)賦值語(yǔ)句在進(jìn)程外作并行語(yǔ)句,并發(fā)執(zhí)行,與語(yǔ)句所處的位置無(wú)關(guān)。信號(hào)賦值語(yǔ)句在進(jìn)程內(nèi)或子程序內(nèi)做順序
17、語(yǔ)句,按順序執(zhí)行,與語(yǔ)句所處的位置有關(guān)。信號(hào)賦值符號(hào)為“<=”變量賦值用“:=”。信號(hào)賦值符號(hào)用于信號(hào)賦值動(dòng)作,不立即生效。變量,賦值符號(hào)用于變量賦值動(dòng)作,立即生效。22、 進(jìn)程的敏感信號(hào)表指的是什么?簡(jiǎn)述敏感信號(hào)表在進(jìn)程中的作用? 進(jìn)程的“敏感信號(hào)表”也稱敏感表,是進(jìn)程的激活條件,可由一個(gè)或多個(gè)信號(hào)組成,各信號(hào)間以“,”號(hào)分隔。當(dāng)敏感信號(hào)表中的任一個(gè)信號(hào)有事件發(fā)生,即發(fā)生任意變化,此時(shí),進(jìn)程被激活,進(jìn)程中的語(yǔ)句將從上到下逐句執(zhí)行一遍,當(dāng)最后一條語(yǔ)句執(zhí)行完畢之后,進(jìn)程即進(jìn)入等待掛起狀態(tài),直到下一次敏感表中的信號(hào)有事件發(fā)生,進(jìn)程再次被激活,如此循環(huán)往復(fù)。23、 什么是庫(kù)、程序包、子程序、過(guò)
18、程調(diào)用和函數(shù)調(diào)用?庫(kù)和程序包用來(lái)描述和保存元件、類型說(shuō)明和子程序等,以便在其它設(shè)計(jì)中通過(guò)其目錄可查詢、調(diào)用。子程序由過(guò)程和函數(shù)組成。在子程序調(diào)用過(guò)程中,過(guò)程能返回多個(gè)變量,函數(shù)只能返回一個(gè)變量。若子程序調(diào)用的是一個(gè)過(guò)程,就稱為過(guò)程調(diào)用,若子程序調(diào)用的是一個(gè)函數(shù),則稱為函數(shù)調(diào)用。過(guò)程調(diào)用、函數(shù)調(diào)用都是子程序調(diào)用。24、 簡(jiǎn)述WHEN_ELSE條件信號(hào)賦值語(yǔ)句和IF_ELSE順序語(yǔ)句的異同。答:WHEN_ELSE條件信號(hào)賦值語(yǔ)句中無(wú)標(biāo)點(diǎn),只有最后有分號(hào);必須成對(duì)出現(xiàn);是并行語(yǔ)句,必須放在結(jié)構(gòu)體中。IF_ELSE順序語(yǔ)句中有分號(hào);是順序語(yǔ)句,必須放在進(jìn)程中。三、 綜合題1、 完成A. 解釋帶有下劃線
19、的語(yǔ)句。B. 畫出該程序的原理圖符號(hào)。C. 說(shuō)明該程序邏輯功能。D. 改用WITH_SELECT_WHEN語(yǔ)句編寫下列程序。Library ieee; Use ieee.std_logic_1164.all; 定義元件庫(kù) entity qk_11 isport( a,b,c,d,en:in std_logic; s:in std_logic_vector(1 downto 0); 輸入信號(hào)s是兩位的輸入總線 op:out std_logic );end qk_11;architecture ar_1 of qk_11 is signal f:std_logic_vector(2 downto
20、0);beginf<=en&s; 將輸入信號(hào)en和s連接賦值給f process (f) 敏感信號(hào)f的變化將啟動(dòng)進(jìn)程 process begin case f is when"100"=>op<=a; when"101"=>op<=b; when"110"=>op<=c; when others=>op<=d; 其他情況,將輸入信號(hào)d賦值給opend case;end process;end ar_1;邏輯功能是:帶有使能端en的四選一數(shù)據(jù)選擇器。用WITH_SELECT_
21、WHEN語(yǔ)句編寫上述程序:Library ieee; Use ieee.std_logic_1164.all;entity qk_11 isport( a,b,c,d,en:in std_logic; s:in std_logic_vector(1 downto 0); op:out std_logic );end qk_11;architecture ar_1 of qk_11 is signal f:std_logic_vector(2 downto 0);beginf<=en&s; with f select op<=a when "100", b
22、 when "101", c when "110", d when others; end ar_1;2、 以下是一個(gè)模為24(023)的8421BCD碼加法計(jì)數(shù)器VHDL描述,請(qǐng)補(bǔ)充完整LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tb IS PORT ( CLK : IN STD_LOGIC ; SHI, GE : OUT INTEGER RANGE 0 TO 9 ) ; END ; ARCHITECTURE bhv OF tb ISSIGNAL SHI1,GE1 : INTEGER RANGE 0
23、TO 9; BEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK='1' then IF GE1 = 9 THEN GE1 <= 0 ; SHI1<=SHI1+1; ELSIF SHI1=2 AND GE1=3 THEN SHI1<=0; GE1<=0; ELSE GE1 <= GE1+1; END IF; END IF; END PROCESS ; GE <= GE1; SHI <=SHI1;END bhv;3、 下面程序是參數(shù)可定制帶計(jì)數(shù)使能異步復(fù)位計(jì)數(shù)器的VHDL描述,試補(bǔ)充完整。-
24、 N-bit Up Counter with Load, Count Enable, and- Asynchronous Resetlibrary ieee;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use IEEE.std_logic_arith.all;entity counter_n isgeneric (width : integer := 8);port(data : in std_logic_vector (width-1 downto 0);load, en, clk, rst : in std_log
25、ic;q : out std_logic_vector (width - 1 downto 0);end counter_n;architecture behave of counter_n issignal count : std_logic_vector (width-1 downto 0);beginprocess(clk, rst)beginif rst = '1' thencount <= (others => 0); 清零elsif clkevent and clk = 1 then 邊沿檢測(cè)if load = '1' thencount
26、 <= data;elsif en = '1' thencount <= count + 1;end if;end if;end process;q <= count;end behave;4、 補(bǔ)全下列六進(jìn)制計(jì)數(shù)器cnt6程序 (10分)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY cnt6 IS PORT (reset,en,clk:IN STD_LOGIC; carry:OUT STD_LOGIC; q:OUT STD_ULOGIC_VECTOR(
27、2 DOWNTO 0);END cnt6;ARCHITECTURE rtl OF cnt6 ISSIGNAL qs:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL ca:STD_LOGIC;BEGIN PROCESS(clk) VARIABLE q6:INTEGER; BEGIN IF(clk'EVENT AND clk = '1') THEN END IF; qs<=CONV_STD_LOGIC_VECTOR(q6,3); q<=TO_STDULOGICVECTOR(qs); END PROCESS; PROCESS(ca,en)
28、BEGIN carry<=ca AND en; END PROCESS;END rtl;5、 補(bǔ)全以下二選一VHDL程序(本題10分)Entity mux isport(d0,d1,sel:in bit;q:out BIT ); end mux;architecture connect of MUX is signal tmp1, TMP2 ,tmp3:bit; begin cale:block begin tmp1<=d0 and sel; tmp2<=d1 and (not sel) tmp3<= tmp1 and tmp2;q <= tmp3; end bl
29、ock cale; end CONNECT ; 6、 根據(jù)下表填寫完成一個(gè)3-8線譯碼器的VHDL程序(10分)。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3_to_8 IS PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC; y:OUT STD_LOGIC_VECTOR (7 DOWNTO 0); END decoder_3_to_8;ARCHITECTURE rtl OF decoder_3_to_8 IS SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);BE
30、GIN indata <= c & b & a;PROCESS (indata,g1,g2a,g2b) BEGIN IF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THEN CASE indata IS WHEN "000"=> y <= "11111110" WHEN "001" => y <= "11111101" WHEN "010" => y <
31、= "11111011" WHEN "011" => y <= "11110111" WHEN "100" => y <= "11101111" WHEN "101" => y <= "11011111" WHEN "110" => y <= "10111111" WHEN "111" => y <= "01111111&quo
32、t; WHEN OTHERS=> y <= "XXXXXXXX" END CASE; ELSE y <= "11111111" END IF; END PROCESS;(16)END rtl; 7、 填寫完成一個(gè)8-3線編碼器的VHDL程序(16分)。Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity eight_tri is port(b:in std_logic_vec
33、tor(7 downto 0); en:in std_logic;y:outstd_logic_vector(2 downto 0) );end eight_tri;architecture a of eight_tri is signal sel: std_logic_vector(8 downto 0);beginsel<=en & b; y<= “000” when (sel=”100000001”)else“001” when (sel=”100000010”)else“010” when (sel=”100000100”)else“011” when (sel=”
34、100001000”)else“100” when (sel=”100010000”)else“101” when (sel=”100100000”)else“110” when (sel=”101000000”)else“111” when (sel=”110000000”)else“zzz”;end a;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity full_add isport (a,b: instd_logic_ve
35、ctor (3 downto 0); (2)carr: inout std_logic_vector (4 downto 0);sum: outstd_logic_vector (3 downto 0);end full_add;architecture full_add_arch of full_add iscomponent adder port (a,b,c:instd_logic;carr: inoutstd_logic;sum: out std_logic );end component;begincarr(0)<='0'u0:adder port map(a(
36、0),b(0),carr(0),carr(1),sum(0);u1:adder port map(a(1) , b(1),carr(1),carr(2),sum(1); u2:adder port map(a(2),b(2),carr(2),carr(3),sum(2); u3:adder port map(a(3),b(3),carr(3),carr(4) , sum(3);end full_add_arch;8、 補(bǔ)充完整如下代碼,使之完成4狀態(tài)不斷循環(huán)。(本題10分)ARCHITECTURE arc OF ss IStype states is ( st0,st1,st2,st3 );
37、signal outc: states; BEGINPROCESS(clk) BEGIN IF reset='1' then outc <=st0 ; elsif clk'event and clk='1' then CASE outc IS WHEN st0 => outc <= st1; WHEN st1 => outc <= st2; WHEN st2 => outc <= st3; WHEN st3 => outc <= st0; WHEN OTHERS => outc <=st0
38、; END CASE; end if;END PROCESS;END arc; 9、 根據(jù)一下四選一程序的結(jié)構(gòu)體部分,完成實(shí)體程序部分(本題8分)LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;entity MUX4 is port( s:in std_logic_vector(1 downto 0);d:in std_logic_vector(3 downto 0);y:out std_logic ); end MUX4; architecture behave of MUX4 isbeginprocess(s)beginif (s="00&qu
39、ot;) theny<=d(0); elsif (s="01") theny<=d(1); elsif (s="10") theny<=d(2); elsif (s="11") theny<=d(3); elsenull; end if;end process;end behave; 四、 編程題1、 用IF語(yǔ)句編寫一個(gè)二選一電路,要求輸入a、b, sel為選擇端,輸出q。(本題10分)Entity sel2 isPort (a,b : in std_logic;sel : in std_logic;q : o
40、ut std_logic);End sel2;Architecture a of sel2 isbeginif sel = 0 thenq <= a;elseq <= b;end if;end a;2、 填寫完成一個(gè)8-3線編碼器的真值表(5分),并寫出其VHDL程序(10分)。8 -3線編碼器真值表enby0y1y21000000000001000000100011000001000101000010000111000100001001001000001011010000001101100000001110xxxxxxxx高阻態(tài)entity eight_tri is port(b
41、:in std_logic_vector(7 downto 0);en:in std_logic;y:outstd_logic_vector(2 downto 0);end eight_tri;architecture a of eight_tri is signal sel: std_logic_vector(8 downto 0);beginsel<=en & b;y<= “000” when (sel=”100000001”)else“001” when (sel=”100000010”)else“010” when (sel=”100000100”)else“011
42、” when (sel=”100001000”)else“100” when (sel=”100010000”)else“101” when (sel=”100100000”)else“110” when (sel=”101000000”)else“111” when (sel=”110000000”)else“zzz”;end a;3、 試用VHDL描述一個(gè)外部特性如圖所示的D觸發(fā)器。(10分)參考程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mydff IS PORT(CLK:IN STD_LOGIC; D:IN STD_LOGI
43、C; Q:OUT STD_LOGIC);END;ARCHITECTURE bhv OF mydff ISBEGIN PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN Q<=D; END IF; END PROCESS;END;4、 下圖為某一狀態(tài)機(jī)對(duì)應(yīng)的狀態(tài)圖,試用VHDL語(yǔ)言描述這一狀態(tài)機(jī)。(18分)參考程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FSM2 IS PORT ( clk,reset,in1 : IN STD_LOGIC; out1 : OU
44、T STD_LOGIC_VECTOR(3 downto 0);END;ARCHITECTURE bhv OF FSM2 IS TYPE state_type IS (s0, s1, s2, s3); SIGNALcurrent_ state,next_state: state_type;BEGIN P1:PROCESS(clk,reset) BEGIN IF reset = 1 THEN current_state <= s0; ELSIF clk='1' AND clk'EVENT THEN current_state <=next_state; END
45、IF; END PROCESS; P2:PROCESS(current_state) BEGIN case current_state is WHEN s0 => IF in1=1THEN next_state<=s1; ELSE next_state<=s0; END IF; WHEN s1 => IF in1='0'THEN next_state<=S2; ELSE next_state<=s1; END IF; WHEN s2 => IF in1='1'THEN next_state<=S3; ELSE ne
46、xt_state<=s2; END IF; WHEN s3 => IF in1='0'THEN next_state<=S0; ELSE next_state<=s3; END IF; end case; END PROCESS;p3:PROCESS(current_state) BEGIN case current_state is WHEN s0 => IF in1=1THEN out1<=“1001”; ELSE out1<="0000" END IF; WHEN s1 => IF in1='0&
47、#39;THEN out1<="1100" ELSE out1<="1001" END IF; WHEN s2 => IF in1='1'THEN out1<="1111" ELSE out1<="1001" END IF; WHEN s3 => IF in1='1'THEN out1<="0000" ELSE out1<="1111" END IF; end case; END PROCESS;
48、 end bhv; 5、 數(shù)據(jù)選擇器MUX,其系統(tǒng)模塊圖和功能表如下圖所示。試采用下面四種方式中的兩種來(lái)描述該數(shù)據(jù)選擇器MUX的結(jié)構(gòu)體。(a) 用if語(yǔ)句。(b) 用case 語(yǔ)句。 (c) 用when else 語(yǔ)句。 (d) 用with select 語(yǔ)句。Library ieee;Use ieee.std_logic_1164.all;Entity mymux isPort (sel : in std_logic_vector(1 downto 0);- 選擇信號(hào)輸入Ain, Bin : in std_logic_vector(1 downto 0);- 數(shù)據(jù)輸入Cout : out s
49、td_logic_vector(1 downto 0) );End mymux;Architecture one of mymux isBeginProcess (sel, ain, bin)BeginIf sel = “00” then cout <= ain or bin; Elsif sel = “01” then cout <= ain xor bin;Elsif sel = “10” then cout <= ain and bin;Else cout <= ain nor bin;End if;End process;End one;Architecture
50、 two of mymux isBeginProcess (sel, ain, bin)BeginCase sel iswhen “00” => cout <= ain or bin; when “01” => cout <= ain xor bin;when “10” => cout <= ain and bin;when others => cout <= ain nor bin;End case;End process;End two;6、 根據(jù)下面原理圖,寫出相應(yīng)VHDL描述Library ieee;Use ieee.std_logic_
51、1164.all;Entity mycir isPort (ain , bin , clk : in std_logic;Cout : out std_logic);End mycir;Architecture one of mycir isSignal tb, tc;BeginProcess (clk) beginIf clkevent and clk = 1 thentb <= bin;end if;End process;Process (clk, tc) beginIf clk = 1 then cout <= tc;end if;End process;Tc <= ain xor tb;End one;7、 用兩種以上的按照下圖設(shè)計(jì)一個(gè)四選一多路選擇器8、 使用元件例化語(yǔ)句編寫下圖所示的頂層文件,其中adder_1為一個(gè)由原理圖輸入法設(shè)計(jì)的完整的設(shè)計(jì)實(shí)體。3、已知4位全加器電路原理圖如下,請(qǐng)用元件例化語(yǔ)句編寫其程序。9、 在數(shù)字顯示中,經(jīng)常使用LED數(shù)碼管,下面是采用共陽(yáng)極的7段顯示。BCD碼輸入與LED顯示器對(duì)應(yīng)的關(guān)系如下表:10、 在數(shù)字顯示中,經(jīng)常使用LED數(shù)碼管,下面是采用共陽(yáng)極的7段顯示。BCD碼輸入與LED顯示器對(duì)應(yīng)的關(guān)系如下表:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)大學(xué)應(yīng)用概率與統(tǒng)計(jì)課件
- 機(jī)械制圖模擬題+答案
- 介紹河南的英文課件演講
- 養(yǎng)老院老人生活照顧標(biāo)準(zhǔn)制度
- 養(yǎng)老院老人健康監(jiān)測(cè)人員福利待遇制度
- 托管中心個(gè)體工商戶勞務(wù)合同范本(2篇)
- 拆除施工承包協(xié)議書(2篇)
- 《藥膳常用的中藥》課件
- 對(duì)數(shù)的運(yùn)算性質(zhì)及其應(yīng)用課件
- 2024年會(huì)議室場(chǎng)地出租協(xié)議3篇
- 血管活性藥物靜脈輸注護(hù)理團(tuán)體解讀
- 電力增容工程投標(biāo)方案(技術(shù)標(biāo))
- 國(guó)內(nèi)外建筑節(jié)能現(xiàn)狀及發(fā)展
- 一級(jí)綜合醫(yī)院設(shè)置要求規(guī)范
- 《消費(fèi)心理學(xué)》課程標(biāo)準(zhǔn)
- DB5117-T 76-2023 磷石膏基植生材料生態(tài)修復(fù)應(yīng)用技術(shù)規(guī)范
- 國(guó)開電大本科《人文英語(yǔ)4》機(jī)考真題(第十九套)
- 新產(chǎn)品試產(chǎn)管理流程
- 煤礦全員安全教育培訓(xùn)考試試卷+答案
- 麗江地區(qū)古城區(qū)2023-2024學(xué)年數(shù)學(xué)四年級(jí)第一學(xué)期期末統(tǒng)考模擬試題含答案
- 新中國(guó)史2023年春季學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫(kù)2023年
評(píng)論
0/150
提交評(píng)論