EDA技术试卷三四题号五六合计二分数阅卷人名词解释,写出下列缩写的中文含义:(每题2分,共10分)1.VHDL超高速集成电路硬件描述语言2.RTL寄存器传输级逻辑3.IP知识产权模块4.SOC片上系统5.LUT查找表二、单项选择题(每题2分,共20分)1.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为:AA.软IP;B.固IP;C.硬IPD.都不是;2.请指出Altera公司Cyclone系列中的EP1C6Q240C8这个器件是属于DA.ROMB.GALC.CPLDD.FPGA进程中的信号赋值语句,其信号更新是C3.A:按顺序完成:B.比变量更快完成:C.在进程的最后完成:D.都不对4.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是CA.FPGA是基于乘积项结构的可编程逻辑器件:B.FPGA是全称为复杂可编程逻辑器件:C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D.在Altera公司生产的器件中,MAX3000系列属FPGA结构。5.以下对于进程PROCESS的说法,正确的是:AA.进程语句本身是并行语句B.进程内部由一组并行语句来描述进程功能C.进程之间可以通过变量进行通信D.一个进程可以同时描述多个时钟信号的同步时序逻辑6.在VHDL语言中,下列对时钟上升沿检测描述中,错误的是CA.ifclkeventandclk=,1thenB. if rising edge(clk) thenC.ifclkeventandclk=,othenD.if not clkstable and clk =,1thenB7.关于VHDL中的数字,请找出以下数字中数值最大的一个:A.2#1111 1110#B.8#366#C.10#169#D.16#F#E18.下列标识符中,B是不合法的标识符。A.StateoD. signallB.9moonC. Not Ack 0D9下列语句中,不属于并行语句的是:A.进程语句B.条件信号赋值语句厂C.元件例化语句D.IF语句10.状态机编码方式中,其中C占用触发器较多,但其实现比较适合FPGA的应用A.状态位直接输出型编码B.顺序编码C.一位热码编码D.以上都不是1
1 EDA 技术试卷 一、名词解释,写出下列缩写的中文含义:(每题 2 分,共 10 分) 1. VHDL 超高速集成电路硬件描述语言 2. RTL 寄存器传输级逻辑 3. IP 知识产权模块 4. SOC 片上系统 5. LUT 查找表 二、单项选择题(每题 2 分,共 20 分) 1. IP 核在 EDA 技术和开发中具有十分重要的地位,以 HDL 方式提供的 IP 被称为: A A. 软 IP; B. 固 IP; C. 硬 IP; D. 都不是; 2. 请指出 Altera 公司 Cyclone 系列中的 EP1C6Q240C8 这个器件是属于 D A. ROM B. GAL C. CPLD D. FPGA 3. 进程中的信号赋值语句,其信号更新是 C 。 A. 按顺序完成; B. 比变量更快完成; C. 在进程的最后完成; D. 都不对 4. 大规模可编程器件主要有 FPGA、CPLD 两类,下列对 FPGA 结构与工作原理的描述 中, 正确的是 C 。 A. FPGA 是基于乘积项结构的可编程逻辑器件;B. FPGA 是全称为复杂可编程逻辑器件; C. 基于 SRAM 的 FPGA 器件,在每次上电后必须进行一次配置; D. 在 Altera 公司生产的器件中,MAX3000 系列属 FPGA 结构。 5. 以下对于进程 PROCESS 的说法,正确的是: A A. 进程语句本身是并行语句 B. 进程内部由一组并行语句来描述进程功能 C. 进程之间可以通过变量进行通信 D. 一个进程可以同时描述多个时钟信号的同步时序逻辑 6. 在 VHDL 语言中,下列对时钟上升沿检测描述中,错误的是 C 。 A. if clk event and clk = „1 then B. if rising_edge(clk) then C. if clk event and clk = „0 then D. if not clk stable and clk = „1 then 7. 关于 VHDL 中的数字,请找出以下数字中数值最大的一个: B A. 2#1111_1110# B. 8#366# C. 10#169# D. 16#F#E1 8. 下列标识符中, B 是不合法的标识符。 A. State0 B. 9moon C. Not_Ack_0 D. signall 9. 下列语句中,不属于并行语句的是: D A.进程语句 B.条件信号赋值语句 C.元件例化语句 D.IF 语句 10. 状态机编码方式中,其中 C 占用触发器较多,但其实现比较适合 FPGA 的应用 A. 状态位直接输出型编码 B. 顺序编码 C. 一位热码编码 D. 以上都不是 题号 一 二 三 四 五 六 合计 分数 阅卷人
三、VHDL程序填空:(每空2分,共20分)下面程序是参数可定制带计数使能异步复位计数器的VHDL描述,试补充完整。library ieee;use IEEE.std logic_1164.all;use IEEE.std_ logic_unsigned.all;use IEEE.std_ logic_arith.all;entitycountern isgeneric(width : integer := 8),port(data : in std_logic_vector (width-1 downto 0);load, en, clk, rst : instd logic;q:out std_logic_vector (width-1downto 0));end counter_n;architecture behave ofcounter_nissignal count:std_logic_vector (width-1downtoO),beginprocess(clk, rst)beginif rst ='I' then清零count <= (others=>0") ;-上升沿检测elsifclk'eventandclk='1'thenif load ='1'thencount <= data,elsif en='l'thencount<=count + 1;end if,end if,end process;q<=count,end behave;四、VHDL程序改错:(10分)仔细阅读下列程序,回答问题LIBRARYIEEE;--1--2USEIEEE.STDLOGIC_1164.ALL;--3ENTITYLED7SEGIS- 4PORT(A:INSTDLOGICVECTOR(3DOWNTOO)5CLKINSTDLOGIC:- 6LED7S:OUTSTD_LOGIC_VECTOR(6DOWNTOO)),-7END LED7SEG;-8ARCHITECTUREoneOFLED7SEGIS--9SIGNAL TMP : STD_LOGIC;BEGIN-- 102
2 三、VHDL 程序填空:(每空 2 分,共 20 分) 下面程序是参数可定制带计数使能异步复位计数器的 VHDL 描述,试补充完整。 library ieee; use IEEE.std_logic_1164.all; use IEEE. std_logic_unsigned.all; use IEEE.std_logic_arith.all; entity counter_n is generic(width : integer := 8); port(data : in std_logic_vector (width-1 downto 0); load, en, clk, rst : in std_logic; q : out std_logic_vector ( width-1 downto 0)); end counter_n; architecture behave of counter_n is signal count : std_logic_vector (width-1 downto 0); begin process(clk, rst) begin if rst = '1' then count <= (others=>‘0’) ; ―― 清零 elsif clk’event and clk=’1’ then ―― 上升沿检测 if load = '1' then count <= data; elsif en = '1' then count <= count + 1; end if; end if; end process; q<=count; end behave; 四、VHDL 程序改错:(10 分) 仔细阅读下列程序,回答问题 LIBRARY IEEE; - 1 USE IEEE.STD_LOGIC_1164.ALL; - 2 ENTITY LED7SEG IS - 3 PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0); - 4 CLK : IN STD_LOGIC; - 5 LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); - 6 END LED7SEG; - 7 ARCHITECTURE one OF LED7SEG IS - 8 SIGNAL TMP : STD_LOGIC; - 9 BEGIN - 10
-- 11SYNC:PROCESS(CLK,A)BEGIN-- 12-- 13IFCLK'EVENTANDCLK='I'THENTMP <= A;- 14END IF;-- 15ENDPROCESS;-- 16OUTLED:PROCESS(TMP)-- 17- 18BEGIN--19CASETMPIS-- 20WHEN"0000"=>LED7S<=-"0111111"-- 21WHEN"0001"=>LED7S<="0000110":- 22WHEN"0010"=>LED7S<="1011011":- 23WHEN"0011"=>LED7S <="1001111";-- 24WHEN"0100"=>LED7S <="1100110":-- 25WHEN"0101"=>LED7S<="1101101";WHEN"0110"=>LED7S<="1111101";-- 26-- 27WHEN"0111"=>LED7S<="0000111"-- 28WHEN"1000"=>LED7S <="1111111"-- 29WHEN"1001"=>LED7S<="1101111";ENDCASE;-- 30-- 31ENDPROCESS;END one;1.在程序中存在两处错误,试指出,并说明理由:在QuartusllI中编译时,提示的错误为:Error (10476):VHDL error at LED7SEG.vhd(14):type of identifier“A"does not agree with itsusage at“std_logic”type Error(10313):VHDL Case Statement error at LED7SEG.vhd(19):CaseStatementchoicesmustcoverallpossiblevaluesofexpression14行,TMP和A矢量位宽不一致19行,CASE语句缺少WHENOTHERS语句处理剩余条件2.修改相应行的程序(如果是缺少语句请指出大致的行数):错误1行号:9程序改为:SIGNALTMP:STDLOGICVECTOR(3DOWNTOO)错误2行号:29程序改为:这行后添加whenothers=>null五、写VHDL程序:(20分)1设计一数据选择器MUIX其系统模块图和功能表如下图所示。试采用CASE语包来描述该数据选择器MUX的结构体。SEL(1:0)SELCOUT00AorBAIN(I:0)01AxorBCOUT(1:0)AandBMUX10BIN(1:0)AnorB11"xx"OTHERS3
3 SYNC : PROCESS(CLK, A) - 11 BEGIN - 12 IF CLK'EVENT AND CLK = '1' THEN - 13 TMP <= A; - 14 END IF; - 15 END PROCESS; - 16 OUTLED : PROCESS(TMP) - 17 BEGIN - 18 CASE TMP IS - 19 WHEN "0000" => LED7S <= "0111111"; - 20 WHEN "0001" => LED7S <= "0000110"; - 21 WHEN "0010" => LED7S <= "1011011"; - 22 WHEN "0011" => LED7S <= "1001111"; - 23 WHEN "0100" => LED7S <= "1100110"; - 24 WHEN "0101" => LED7S <= "1101101"; - 25 WHEN "0110" => LED7S <= "1111101"; - 26 WHEN "0111" => LED7S <= "0000111"; - 27 WHEN "1000" => LED7S <= "1111111"; - 28 WHEN "1001" => LED7S <= "1101111"; - 29 END CASE; - 30 END PROCESS; - 31 END one; 1.在程序中存在两处错误,试指出,并说明理由: 在 QuartusII 中编译时,提示的错误为: Error (10476):VHDL error at LED7SEG.vhd(14):type of identifier “A” does not agree with its usage at “std_logic” type Error(10313):VHDL Case Statement error at LED7SEG.vhd(19): Case Statement choices must cover all possible values of expression 14 行,TMP 和 A 矢量位宽 不一致 19 行,CASE 语句缺少 WHEN OTHERS 语句处理剩余条件 2.修改相应行的程序(如果是缺少语句请指出大致的行数): 错误 1 行号: 9 程序改为:SIGNAL TMP : STD_LOGIC_VECTOR(3 DOWNTO 0); 错误 2 行号: 29 程序改为:这行后添加 when others => null; 五、写 VHDL 程序:(20 分) 1.设计一数据选择器 MUX,其系统模块图和功能表如下图所示。试采用 CASE 语句来描述该 数据选择器 MUX 的结构体
library ieee;use ieee.std logic_1164.all;entity mymux isport(sel:instd_logic_vector(1downtoO)-选择信号输入数据输入ain,bin:instd logic_vector(ldowntoO);cout:out std logic_vector(1 downto O);end mymux,Architecture rtl 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 rtl;2.看下面原理图,写出相应VHDL描述(10分)INPLITxinOFDFFDFFOUTPUT>yautINELEclkLIBARRYIEEE;USEIEEE.STDLOGIC 1164.ALL;ENTITY MYCIR ISPORT (XIN, CLK : IN STD LOGIC;YOUT: OUT STD_LOGIC);END MYCIR;ARCHITECTUREONEOFMYCIRISSIGNALA, B, C;BEGINIB <= XIN OR A;PROCESS(CLK)BEGINIFCLKEVENTANDCLK-,1THENA<= C;C<= B;4
4 library ieee; use ieee.std_logic_1164.all; entity mymux is port(sel : in std_logic_vector(1 downto 0); - 选择信号输入 ain, bin : in std_logic_vector(1 downto 0); - 数据输入 cout : out std_logic_vector(1 downto 0)); end mymux; Architecture rtl of mymux is Begin Process (sel, ain, bin) Begin Case sel is when “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 rtl; 2. 看下面原理图,写出相应 VHDL 描述(10 分) LIBARRY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MYCIR IS PORT ( XIN, CLK : IN STD_LOGIC; YOUT : OUT STD_LOGIC); END MYCIR; ARCHITECTURE ONE OF MYCIR IS SIGNALA, B, C; BEGIN B <= XIN OR A; PROCESS (CLK) BEGIN IF CLK EVENT AND CLK = „1 THEN A <= C; C <= B;
ENDIF;ENDPROCESS;YOUT<= C;ENDONE;六、综合题:(20分)(-)已知状态机状态图如图(a)所示;完成下列各题:00ina=001111111ostost2stlst3110101011100outa=1000110-10图(a)状态图clkcurrent_stateCOMoutaREGresetnextstateina图(b)状态机结构图1.试判断该状态机类型,并说明理由。(2分)该状态机为moore型状态机,输出数据outa和输入ina没有直接逻辑关系2.根据状态图,写出对应于结构图(b),分别由主控组合进程和主控时序进程组成的VHDL有限状态机描述。(10分)Library ieee;Use ieee.std logic 1164.all;Entity mooreb isPort (clk, reset:in std_logic;Ina:in std logic_vector (1downto 0);Outa:out std logic_vector (3 downto 0));End mooreb;Architecture one of mooreb isTypems_stateis (st0,stl,st2,st3);Signal c_st, n_st:ms_state;BeginProcess (clk, reset)BeginIfreset=,1then c_st<= st0;Elsif clk'event and clk-"1'then c st<-n st;
5 END IF; END PROCESS; YOUT <= C; END ONE; 六、综合题:(20 分) (一) 已知状态机状态图如图(a)所示;完成下列各题: 1. 试判断该状态机类型,并说明理由。(2 分) 该状态机为 moore 型状态机,输出数据 outa 和输入 ina 没有直接逻辑关系 2. 根据状态图,写出对应于结构图(b),分别由主控组合进程和主控时序进程组成的 VHDL 有限状态机描述。(10 分) Library ieee; Use ieee.std_logic_1164.all; Entity mooreb is Port (clk, reset : in std_logic; Ina : in std_logic_vector (1 downto 0); Outa : out std_logic_vector (3 downto 0) ); End mooreb; Architecture one of mooreb is Type ms_state is (st0, st1, st2, st3); Signal c_st, n_st : ms_state; Begin Process (clk, reset) Begin If reset = „1 then c_st <= st0; Elsif clk’event and clk = ‘1’ then c_st <= n_st;