江苏城市职业学院
《 电子设计自动化 》考核说明与复习题
第一部分 考核说明
一、命题依据及范围
《电子设计自动化》课程的考核是依据课程的教学大纲,考核学习者掌握 EDA的基本概念和电子电路常用的软件应用和设计方法。考核的范围涵盖全部要求学习的内容。命题严格遵照课程教学大纲,所有试题都限制大纲规定的范围内,考题的难易程度也将严格按照教学大纲的规定。
二、考试形式
《电子设计自动化》课程的考核采用平时成绩与期末考核相结合的考核形式。平时成性考核以平时作业为依据,占总成绩的 20%。期末考试采用闭卷笔试的考核形式,占总成绩的80%。期末采用闭卷考试时间是2小时。
三、试题题型
期末考试的试题共 5大题。EDA名词解释(15分)、简答题(30分),看下面原理图,写出相应VHDL描述(15分)、阅读下列VHDL程序,画出原理图(15分)、写VHDL程序(15分)、VHDL程序改错(10分)。
第二部分 复习题
一、 EDA名词解释,写出下列缩写英文含义
ASIC
CPLD
FPGA
VHDL
PLD
PAL
ISP
二、简答题
1. 简述什么是 EDA 技术,它的功能与范畴是什么?
2. 说明 FPGA/CPLD 的开发设计流程。
3. 简述用 MAXPLUS 进行原理图输入设计的基本流程。
4. 书中 P177 4-1 、 4-2 、 4-4
5. 如果编译时出现“ Can't open VHDL “WORK” ”这样的错误提示。
这又是什么原因,如何修改?
二、看下面原理图,写出相应 VHDL 描述
( 1 )
( 2 )

(3)

三、阅读下列 VHDL程序,画出原理图
( 1 )
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY three IS
PORT
(
clk,d : IN STD_LOGIC;
dout,e : OUT STD_LOGIC );
END;
ARCHITECTURE bhv OF three IS
SIGNAL tmp: STD_LOGIC;
BEGIN
P1: PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
Tmp <= d;
dout <= not tmp;
END IF;
END PROCESS P1;
e <= tmp xor d;
END bhv;
( 2 )书中 P178 4-9
四、写 VHDL程序
1. 设计一个 N 输入的并入串出左移移位寄存器
参数: N 并行输入数据位宽为 N
输入端口: DIN 并行输入数据
LOAD 装载信号,高电平装载
CLK 时钟信号
输出端口: YOUT 移位输出, 1 位
2 .书中 p177 4-7
五、 VHDL程序改错
(1) 仔细阅读下列程序,回答问题
1 LIBRARY IEEE; 2 USE IEEE.STD_LOGIC_1164.ALL; 3 4 ENTITY CNT10 IS 5 PORT ( CLK : IN STD_LOGIC ; 6 Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) ; 7 END CNT10; 8 ARCHITECTURE bhv OF CNT10 IS 9 SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); 10 BEGIN 11 PROCESS (CLK) BEGIN 12 IF RISING_EDGE(CLK) begin 13 IF Q1 < 9 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; |
在 MAX+PlusII 中编译时,提示的第一条错误为:
Error: Line 12: File e:\mywork\test\cnt10.vhd: VHDL syntax error: If statement must have THEN, but found BEGIN instead |
指出并修改相应行的程序(如果是缺少语句请指出大致的行数):
错误 1 行号: 程序改为:
错误 2 行号: 程序改为:
(2) 仔细阅读下列程序,回答问题
1 LIBRARY IEEE;
2 USE IEEE.STD_LOGIC_1164.ALL;
3
4 ENTITY CNT4 IS
5 PORT ( CLK : IN STD_LOGIC ;
6 Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) ;
7 END CNT4;
8 ARCHITECTURE bhv OF CNT4 IS
9 SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);
10 BEGIN
11 PROCESS (CLK) BEGIN
12 IF RISING_EDGE(CLK) begin
13 IF Q1 < 15 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;
在程序中存在两处错误,试指出,并说明理由:
在 MAX+PlusII 中编译时,提示的第一条错误为:
Error: Line 12: File e:\mywork\test\cnt4.vhd: VHDL syntax error: If statement must have THEN, but found BEGIN instead |
1. 修改相应行的程序(如果是缺少语句请指出大致的行数):
错误 1 行号: 程序改为:
错误 2 行号: 程序改为: