【文章內(nèi)容簡介】
std_logic_vector(2 downto 0)。 y:out std_logic_vector(5 downto 0))。 end multi3。 architecture a of multi3 is signal temp1:std_logic_vector(2 downto 0)。 signal temp2:std_logic_vector(3 downto 0)。 signal temp3:std_logic_vector(4 downto 0)。 begin temp1=a when b(0)=?1? else “000”。 temp2=(aamp。?0?) when b(1)=?1? else “0000”。 temp3=(aamp?!?0”) when b(2)=?1? else “00000”。 y=temp1+temp2+(?0?amp。temp3)。 end a。 功能:三位乘法器 五、用 VHDL 編程 設計一個 4 位二進制數(shù)的加 /減法器,控制輸入端為 c,當 c=1 時,做加法運算;當 c=0 時,做減法運算。 Library ieee。 Use 。 Use 。 Entity subadd is Port(c:in std_logic。 A,b:in std_logic_vector(3 downto 0)。 S:out std_logic_vector(3 downto 0)。 Co:out std_logic)。 End subadd。 Architecture a of subadd is Signal a1,a2,a3:std_logic_vector(4 downto 0)。 Begin Process Begin A1=?0?amp。a。 A2=?0?amp。b。 If c=?1? then A3=a1+a2。 Else A3=a1a2。 End if。 S=a3(3 downto 0)。 Co=a3(4)。 End process。 End a。 六、簡答題 什么是并行語句?什么是順序語句? 兩者有何區(qū)別? 信號和變量有何區(qū)別? 《 EDA 技術與應用 》試卷 C 一、 填空題 (每題 2分,共 1 0 分) 在 VHDL 中最常用的庫是( )標準庫,最常用的數(shù)據(jù)包是( )數(shù)據(jù)包。 VHDL 的實體聲明部分指定了設計單元的( ),它是設計實體對外的一個通信界面,是外界可以看到的部分。 在 VHDL的端口聲明語句中,端口方向包括( )、( )、( )和( )。 在用 VHDL 語言設計電路時,一般要求文件名與( )名一致,后綴 是( )。 在 VHDL中,標準邏輯位數(shù)據(jù)有( )種邏輯值。 二、 選擇題(每題 2分,共 10分) 在 VHDL 的端口聲明語句中,用( )聲明端口為輸出方向。 A、 IN B、 OUT C、 INOUT D、 BUFFER 在 VHDL 中,( )不能將信息帶出對它定義的當前設計單元。 A、信號 B、常量 C、 數(shù)據(jù) D、變量 在 VHDL中,( )的數(shù)據(jù)傳輸不是立即發(fā)生的,目標信號 的賦值需要一定的延時時間。 A、 信號 B、常量 C、數(shù)據(jù) D、變量 在 VHDL中,為目標變量賦值的符號是( )。 A=: B、 = C、: = D、 = 在下列標識符中,( )是 VHDL合法的標識符。 A、 4h_adde B、 h_adde_ C、 h_adder D、 _h_adde 三、程序分析(每題 10分,共 40 分) 要求: ( 1) 將標有下劃線語句補充完整( 3分) ( 2) 解釋后帶 **的語句( 3分) ( 3) 說明該程序邏輯功能( 4分) 程序 1 LIBRARY ieee。 USE 。 entity is ** port (a :in std_logic_vector(3 downto 0)。 sel: 。 d:out std_logic)。 end xuan2。 architecture a of xuan2 is begin process(sel) begin case is ** when 00 =d=a(0)。 ** when 01 =d=a(1)。 when 10 =d=a(2)。 when others =d=a(3)。 end case。 end process。 end a。 程序 2 Library ieee。 Use 。 Entity multi3 is Port(a,b:in std_logic_vector(2 downto 0)。 y: )。 end 。 architecture a of multi3 is signal temp1:std_logic_vector(2 downto 0)。 signal temp2:std_logic_vector(3 downto 0)。 signal temp3:std_logic_vector(4 downto 0)。 ** begin temp1=a when b(0)=‘ 1’ else “ 000” 。 ** temp2=(aamp?!?0’ ) when b(1)=‘ 1’ else “ 0000” 。 temp3=(aamp?!?00” ) when b(2)=‘ 1’ else “ 00000” 。 y=temp1+temp2+(‘ 0’ amp。temp3)。 ** end a。 程序 3 library ieee。 Use 。 Entity sevenbcd is Port(s:in integer range 0 to 9。 ** G,f,e,d,c,b,a:out std_logic)。 End sevenbcd。 Architecture a of sevenbcd is Signal y: 。 Begin Process(s) ** Case s is When 0 =y=0111111。 ** When 1 =y=0000110。 When 2 = 。 When 3 =y=1001111。 When 4 =y=1100110。 When 5 =y=1101101。 When 6 =y=1111101。 When 7 =y=0000111。 When 8 =y=1111111。 When 9 =y=1101111。 When others =y=0000000。 End case。 End process。 a=y(0)。 b=y(1)。 c=y(2)。 d=y(3)。 e=y(4)。 f=y(5)。 g=y(6)。 End a。 程序 4 LIBRARY IEEE。 USE 。 ENTITY jk4 IS PORT(J, K:IN STD_LOGIC。 clk: 。 prn, clr: IN STD_LOGIC。 q,qb:OUT STD_LOGIC)。 END jk4。 ARCHITECTURE a OF jk4 IS qtmp, qbtmp: 。 BEGIN PROCESS(clk, prn, clr, j, k) BEGIN IF prn=39。039。 THEN qtmp=39。139。 qbtmp=39。039。 ** ELSIF clk39。event AND clk=39。139。tHEN IF clr=39。039。 THEN qtmp=39。039。 qbtmp=39。139。 ELSIF j=39。039。 AND k=39。039。 THEN NULL。 ELSIF j=39。039。 AND k=39。139。 THEN qtmp=39。039。 qbtmp=39。139。 ELSIF j=39。139。 AND k=39。039。 THEN qtmp=39。139。 qbtmp=39。039。 ELSE qtmp=NOT qtmp。 qbtmp=NOT qbtmp。 ** END IF。 END IF。 q=qtmp。 qb=qbtmp。 ** END PROCESS。 END a。 四、 設計一個比較器,用于實現(xiàn)兩個 4 位二進制數(shù)的比較,真值表如下: ( 20分) 輸入信號 輸出信號 A[3..0] B[3..0] F1 F2 F3 AB 1 0 0 A=B 0 1 0 AB 0 0 1 五、簡答題( 20分) VHDL語言結(jié)構(gòu)體的描述方式有哪幾種? 試述各自的特點。 什么是并行語句?什么是順序語句? 兩者有何區(qū)別? 《 EDA 技術與應用 》試卷 C 答案