EDA期末考试考卷及答案
新疆伊犁师范学院-关于低碳环保的作文
班级 学号 姓名
密 封 线 内 不 得 答 题
(A卷)
赣 南 师 范 学 院
2010—2011学年第一学期期末考试试卷(A卷)(闭卷)
年级 2008 专业
电子科学与技术 (本)课程名称 EDA技术基础
题号 一 二 三 四 五 总分
得分
阅卷人
注意事项:1、教师出题时请勿超出边界虚线;
2、学生答题前将密封线外的内容填写清楚,答题不得超出密封线;
3、答题请用蓝、黑钢笔或圆珠笔。
一、单项选择题(30分,每题2分)
1.以下关于适配描述错误的是 B
A.适配器的功能是将综合器产生的网表文件配
置于指定的目标器件中,使
之产生最终的下载文件
B.适配所选定的目标器件可以不属于原综合器指定的目标器件系列
C.适配完成后可以利用适配所产生的仿真文件作精确的时序仿真
D.通常,EDAL软件中
的综合器可由专业的第三方EDA公司提供,而适
配器则需由FPGACPLD供应商提供
2
.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体
与结构体两部分,结构体描
述 D 。
A.器件外部特性
B.器件的综合约束
C.器件外部特性与内部功能 D.器件的内部功能
3.下列标识符中, B 是不合法的标识符。
A.State0
B.9moon C.Not_Ack_0 D.signall
4.以下工具中属于FPGACPLD集成化开发工具的是 D
A.ModelSim B.Synplify Pro
C.MATLAB D.QuartusII
5.进程中的变量赋值语句,其变量更新是 A 。
A.立即完成
B.按顺序完成
C.在进程的最后完成 D.都不对
6.以下关于CASE语句描述中错误的是 A
A.CASE语句执行中可以不必选中所列条件名的一条
B.除非所有条件句的选择值能完整
覆盖CASE语句中表达式的取值,否则
最末一个条件句的选择必须加上最后一句“WHEN
OTHERS=><顺序语
句>”
C.CASE语句中的选择值只能出现一次
D.
WHEN条件句中的选择值或标识符所代表的值必须在表达式的取值范
围
7.以下哪个程序包是数字系统设计中最重要最常用的程序包 B
A.STD_LOGIC_ARITH
B.STD_LOGIC_1164
C.STD_LOGIC_UNSIGNED
D.STD_LOGIC_SIGNED
8.基于EDA软件的FPGA
CPLD设计流程为:原理图HDL文本输入→ A
→
综合→适配→时序仿真→编程下载→硬件测试。
A.功能仿真 B.逻辑综合
C.配置 D.引脚锁定
9.不完整的IF语句,其综合结果可实现 D
A.三态控制电路 B.条件相或的逻辑电路
C.双向控制电路
D.时序逻辑电路
10.下列语句中,属于并行语句的是 A
A.进程语句
B.IF语句 C.CASE语句 D.FOR语句
11.综合是EDA设计流程的
关键步骤,综合就是把抽象设计层次中的一种表
示转化成另一种表示的过程;在下面对综合的描述中,
C 是错误的。
A.综合就是将电路的高级语言转化成低级的,可与FPGA
CPLD的基本
结构相映射的网表文件
B.综合可理解为,将软件描述与给定的硬件结构用电
路网表文件表示的映
射过程,并且这种映射关系不是唯一的
C.综合是纯软件的转换过程,与器件硬件结构无关
D.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综
合约束
12.CPLD的可编程是主要基于什么结构 D 。
A.查找表(LUT)
B.ROM可编程
C.PAL可编程 D.与或阵列可编程
13.以下器件中属于Altera 公司生产的是 B
A.ispLSI系列器件 B.MAX系列器件
C.XC9500系列器件 D.Virtex系列器件
14. 在VHDL语言中,下列对时钟边沿检测描述中,错误的是 D
A.if clk'event and clk = '1' then B.if
clk'stable and not clk = '1' then
C.if
rising_edge(clk) then D.if not clk'stable
and clk = '1' then
15.以下关于状态机的描述中正确的是 B
A.Moore型状态机其输出是当前状态和所有输入的函数
B.与Moore型状态机相比,Mealy型的输出变化要领先一个时钟周期
C.Mealy型状态机其输出是当前状态的函数
班级
学号 姓名
密 封 线 内 不 得 答 题
(A卷)
D.以上都不对
班级
学号 姓名
密 封 线 内 不 得 答 题
(A卷)
二、EDA名词解释,写出下列缩写的中文含义(10分,每题2分)
1.FPGA:现场可编程门阵列
2.HDL: 硬件描述语言
3.LE:
逻辑单元
4.FSM: 有限状态机
5.SOPC: 可编程片上系统
三、程序填空题(20分,每空2分)
以下是一个模为60(0~59)的8421BCD码加法计数器VHDL描述,请补充完
整
LIBRARY IEEE;
Use _logic_
;
ENTITY ta IS
PORT ( CLK : IN
STD_LOGIC
SHI : OUT INTEGER RANGE 0
TO 9;
GE: OUT INTEGER RANGE 0 TO 9)
END
ARCHITECTURE bhv OF ta
IS
SIGNAL SHI1,GE1 : INTEGER RANGE 0 TO 9
;
BEGIN
PROCESS ( CLK )
BEGIN
IF CLK’EVENT AND CLK=’1’
then
IF GE1 = 9 THEN
GE1
<= 0
IF SHI1=5 THEN
SHI1<=0;
ELSE SHI1<=SHI+1
;
END IF;
ELSE
GE1<=GE1+1
END IF;
END IF
END
PROCESS
GE <= GE1;
SHI<=SHI1
END bhv;
四、程序改错题(仔细阅读下列程序后回答问题,12分)
1 LIBRARY IEEE;
2 USE _LOGIC_;
3 ENTITY ga IS
4
PORT ( CLK : IN STD_LOGIC
5 Q
: OUT STD_LOGIC_VECTOR(3 DOWNTO 0))
6 END
gb;
7 ARCHITECTURE bhv OF ga IS
8
SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);
9
BEGIN
10 PROCESS (CLK)
11
BEGIN
12 IF RISING_EDGE(CLK) begin
13 IF Q1 < “1001” THEN
14
Q1 <= Q1 + 1
15 ELSE
16
Q1 <= (OTHERS => '0');
17 END IF;
18 END IF;
19 END PROCESS
20 Q <= Q1;
21 END bhv;
程序编译时,提示的错误为:
Error: Line 12: File e::
VHDL syntax error: If statement must have
THEN, but found BEGIN instead
Error: Line
14: File e::Subprogram error:can’t interpret
subprogram
call
请回答问题:在程序中存在两处错误,试指出并修改正确(
如果是缺少语句请
指出应该插入的行号)
答:
(1)12行
begin 改为 then
(2)
第2行和第3行见加 USE
_LOGIC_;
班级 学号
姓名
密 封 线 内 不 得 答 题
(A卷)
五、程序设计题(28分)
1
.
试用VHDL描述一个外部特性如图所示的数据选择器,S为控制端口。(10
分)
Library IEEE;
Use _logic_;
Entity sjxz
IS
Port(A,B,S:in std_logic;
Q:out
std_logic);
END entity sjxz;
Architecture
bhv of sjxz IS
Process(S)
Begin
IF
S=’0’ Then Q<=A;
ELSE Q<=B;
END IF;
END PROCESS’
END bhv;
2.下图为某一状态机对应的状态图,试用VHDL语言描述这一状态机。(18分)
0S0
1
S1
1
00001001
00
1
S3<
br>1
S2
11111100
0
Library IEEE;
Use _logic_;
Use _logic_;
Entity FSM1
IS
PORT(clk,rst:in std_logic;
In1:in
std_logic;
Out1:out std_logic_vector(3
downto 0));
END entity FSM1;
Architecture
bhv of FSM1 IS
TYPE FSM_ST IS(S0,S1,S2,S3);
Singnal C_ST:FSM_ST;
Begin
Process(clk,rst)
Begin
IF rst=’1’ then
C_ST<=S0;
ELSIF clk’event AND clk=’1’then
CASE C_ST IS
When S0=>IF In1=’1’ then
C_ST<=S1;
ELSE C_ST<=S0;
END IF;
Out1<=”0000”;
When S1=>IF In1=’0’ then
C_ST<=S2;
ELSE C_ST<=S1;
END IF;
Out1<=”1001”;
When S2=>IF In1=’1’
then C_ST<=S3;
ELSE C_ST<=S2;
END
IF;
Out1<=”1100”;
When S3=>IF In1=’0’
then C_ST<=S0;
ELSE C_ST<=S3;
END
IF;
Out1<=”1111”;
END CASE;
END
IF;
END process;
END bhv;