江苏城市职业学院

电子设计自动化 》考核说明与复习题

第一部分   考核说明

一、命题依据及范围

《电子设计自动化》课程的考核是依据课程的教学大纲,考核学习者掌握 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      行号:    程序改为: