eda期中試卷A及答案_第1頁
eda期中試卷A及答案_第2頁
eda期中試卷A及答案_第3頁
eda期中試卷A及答案_第4頁
eda期中試卷A及答案_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2A用Q1,Q2,D信號(hào)要好些。未標(biāo)信號(hào)扣5分 D<= X or Q1; 放在時(shí)鐘上升沿里扣5分4A. 信號(hào)用counter好些用變量或信號(hào),用integer或std_logic_vector型3A. 圖最好選用答案的圖用變量或信號(hào),用integer或std_logic_vector型6A.實(shí)體名不允許為JKFFIf prn寫在外面扣5分 or 寫成加號(hào)扣5分7A: 程序 A B賦高阻5分, A<=B, B<=A, 無分 圖10分.1A.簡述信號(hào)與變量的區(qū)別。(至少列舉5個(gè))答案:1 賦值符號(hào)不同 信號(hào)用 <= 變量用 :=2 功能不同 信號(hào)常常是物理硬件的節(jié)點(diǎn) 變量用

2、來描述算法3 信號(hào)是全局量,用于結(jié)構(gòu)體,實(shí)體,塊中 變量是局部量,用于進(jìn)程,函數(shù),子程序4 信號(hào)的賦值需要有延時(shí) 變量是立即賦值 5 進(jìn)程中的敏感表只能是信號(hào)2A. 用VHDL描述下面電路圖。(實(shí)體名用cir1)答案:library IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CIR1 IS PORT ( X, CLK : IN STD_LOGIC;Y : OUT STD_LOGIC);END ;ARCHITECTURE ONE OF CIR1 ISSIGNAL A, B, C: std_logic;BEGINB <= not (X OR A) ;PR

3、OCESS (CLK)BEGINIF CLK'EVENT AND CLK = '1' THENA <= C ;C <= B;END IF;END PROCESS;Y <= C;END ONE;3A. 頻率計(jì)控制電路的工作波形如圖所示,試用VHDL設(shè)計(jì)該電路。(注意時(shí)鐘信號(hào)的下降沿有效) (實(shí)體名用tfctrl)答案:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tfctrl isport(clk:in std_logic;en,lock,c

4、lear: out std_logic);end ;architecture bhv of tfctrl issignal temp: std_logic_vector(3 downto 0);beginprocess(clk) begin if falling_edge(clk) then if temp<15 then temp<=temp+1; else temp<="0000"end if;if temp<8 then en<='1' else en<='0'end if;if temp=9 the

5、n lock<='1' else lock<='0'end if;if temp=13 then clear<='1' else clear<='0'end if; end if;end process;end ;答案2: 用case語句library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tfctrl isport(clk:in std_logic;en,lock,clear: out std_log

6、ic);end ;architecture bhv of tfctrl issignal temp: integer range 15 downto 0;beginprocess(clk) begin if falling_edge(clk) then if temp<15 then temp<=temp+1; else temp<=0;end if;case temp iswhen 0 to 7 => en<='1' lock<='0' clear<='0' when 9 => en<=&#

7、39;0' lock<='1' clear<='0' when 13 => en<='0' lock<='0' clear<='1' when others => en<='0' lock<='0' clear<='0' end case; end if;end process;end ;4A. 試用VHDL設(shè)計(jì)一個(gè)六分頻電路,要求50%的占空比。(輸入clk,輸出Q,實(shí)體名用divn)答案:libr

8、ary ieee;use ieee.std_logic_1164.all;entity divn is port(clk:in std_logic; Q:out std_logic); end;architecture behav of divn issignal Q1: std_logic; signal Q2: std_logic; beginprocess(clk) variable a: integer range 0 to 2; begin if clk'event and clk='1' thenif a=2 then a:=0;Q1<='1&

9、#39; else a:=a+1;Q1<='0' end if; end if;end process;process(Q1) begin if Q1'event and Q1='1' thenQ2<=not Q2; end if;end process;Q<=Q2 ;end;答案2:library ieee;use ieee.std_logic_1164.all;entity divn is port(clk:in std_logic; Q:out std_logic); end;architecture behav of divn

10、issignal Q1: std_logic; beginprocess(clk) variable a: integer range 0 to 5; begin if clk'event and clk='1' thenif a=5 then a:=0; else a:=a+1; end if; if a<3 then Q1<='1' else Q1<='0' end if; end if;end process;Q<=Q1 ;end;答案2(用信號(hào))(并且分成兩進(jìn)程)library ieee;use ieee.

11、std_logic_1164.all;entity divn is port(clk:in std_logic; Q:out std_logic); end;architecture behav of divn issignal Q1: std_logic; signal Q2: std_logic; signal a: integer range 0 to 5; beginprocess(clk,a) begin if clk'event and clk='1' thenif a<5 then a<=a+1; else a<=0; end if; e

12、nd if;end process;process(clk,a) begin if clk'event and clk='1' thenif a<3 then Q1<='1' else Q1<='0' end if; end if;end process;Q<=Q1 ;end;答案3: library ieee;use ieee.std_logic_1164.all;entity divn is port(clk:in std_logic; Q:out std_logic); end;architecture be

13、hav of divn issignal Q1: std_logic; beginprocess(clk) variable a: integer range 0 to 5; begin if clk'event and clk='1' thenif a=5 then a:=0; Q1<='0'elsif a<3 then a:=a+1; Q1<='1'else a:=a+1; Q1<='0'end if; end if;end process;Q<=Q1 ;end;答案4:library i

14、eee;use ieee.std_logic_1164.all;entity divn is port(clk:in std_logic; Q:out std_logic); end;architecture behav of divn issignal Q1: std_logic; beginprocess(clk) variable a: integer range 0 to 2; begin if clk'event and clk='1' thenif a=2 then a:=0; Q1<=not Q1;else a:=a+1;end if; end if

15、;end process;Q<=Q1 ;end;答案5:library ieee;use ieee.std_logic_1164.all;entity divn is port(clk:in std_logic; Q:out std_logic); end;architecture behav of divn issignal Q1: std_logic; beginprocess(clk) variable a: integer range 0 to 5; begin if clk'event and clk='1' then a:=a+1;if a=3 the

16、n a:=0; Q1<=not Q1; end if; end if;end process;Q<=Q1 ;end;答案6: library ieee;use ieee.std_logic_1164.all;entity divn is port(clk:in std_logic; Q:out std_logic); end;architecture behav of divn issignal Q1: std_logic; beginprocess(clk) variable a: integer range 0 to 5; begin if clk'event and

17、clk='1' then a:=a+1;if a=1 then Q1<='1' end if;if a=4 then Q1<='0' end if;if a=6 then a:=0; end if; end if;end process;Q<=Q1 ;end;5A. 試用VHDL設(shè)計(jì)一個(gè)帶進(jìn)位輸入和進(jìn)位輸出的8位加法器。(請(qǐng)直接用std_logic_unsigned 程序包中的加法運(yùn)算符。) 已知實(shí)體部分為:entity adder8 is port(cin: in std_logic; A,B: in std_logic_ve

18、ctor(7 downto 0); S: out std_logic_vector(7 downto 0); cout: out std_logic);end adder8;答案:function "+"(L: STD_LOGIC_VECTOR; R: STD_LOGIC_VECTOR) return STD_LOGIC_VECTOR is constant length: INTEGER := maximum(L'length, R'length); variable result : STD_LOGIC_VECTOR (length-1 downto 0

19、);begin result := UNSIGNED(L) + UNSIGNED(R); return std_logic_vector(result);end; function "+"(L: STD_LOGIC_VECTOR; R: STD_LOGIC) return STD_LOGIC_VECTOR is variable result : STD_LOGIC_VECTOR (L'range); begin result := UNSIGNED(L) + R; return std_logic_vector(result);end;library ieee;u

20、se ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adder8 is port(cin: in std_logic; A,B: in std_logic_vector(7 downto 0); S: out std_logic_vector(7 downto 0); cout: out std_logic);end adder8;architecture one of adder8 is signal stemp: std_logic_vector(8 downto 0);begin stemp<= (&#

21、39;0'&A)+('0'&B)+cin; -或 stemp<= ('0'&A)+('0'&B)+ "0000000"+cin; -或 stemp<= ('0'&A)+ B +cin; -或 stemp<= "00000000"+A+ B +cin; S<= stemp(7 downto 0); cout<=stemp(8);end one;說明:stemp<= A+B+cin在maxplus中通過,但qua

22、rtus中不行,提示位數(shù)不對(duì)6A. 用VHDL描述一個(gè)JK觸發(fā)器,其中時(shí)鐘信號(hào)CLK上升沿有效。PRN是異步置位端,低電平有效。CLRN是異步清零端,低電平有效。已知JK觸發(fā)器的特征方程為(實(shí)體名用JKFF)答案:用變量實(shí)現(xiàn)LIBRARY ieee;USE ieee.std_logic_1164.all; ENTITY JKFF IS port(J,K,PRN,CLRN,CLK : IN STD_LOGIC;Q : OUT STD_LOGIC);END JKFF;ARCHITECTURE behave OF JKFF IS BEGIN process(CLK,CLRN,PRN)variable

23、 Q1 : STD_LOGIC;beginif (CLRN = '0') thenQ1 := '0'elsif (PRN = '0') thenQ1 := '1'elsif (rising_edge(CLK) thenQ1 := (NOT(Q1) AND J) OR (Q1 AND (NOT(K);end if;Q <= Q1;end process;END;也可用信號(hào)實(shí)現(xiàn)LIBRARY ieee;USE ieee.std_logic_1164.all; ENTITY JKFF IS port(J,K,PRN,CLRN,CL

24、K : IN STD_LOGIC;Q : OUT STD_LOGIC);END JKFF;ARCHITECTURE behave OF JKFF IS signal Q1 : STD_LOGIC;BEGIN process(CLK,CLRN,PRN)beginif (CLRN = '0') thenQ1 <= '0'elsif (PRN = '0') thenQ1 <= '1'elsif (rising_edge(CLK) thenQ1 <= (NOT(Q1) AND J) OR (Q1 AND (NOT(K);end if;Q <= Q1;end process;END;7A. 試用VHDL設(shè)計(jì)1位二進(jìn)制數(shù)據(jù)收發(fā)器,并畫出綜合器可能綜合出的電路圖。EN是使能控制端,當(dāng)EN=0時(shí)電路工作,EN=1時(shí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論