EDA技术复习题.

EDA技术复习题.
EDA技术复习题.

这是一份vhdl的复习题,考试题大多数都来自此处,

一、EDA名词解释

1、ASIC:专用集成电路(Application Specific Integrated Circuits)

2、EDA:电子设计自动化(Electronic Design Automation)

3、P ROM:可编程只读存储器(Programmable Read Memory)

4、IP:知识产权核(Intellectual Property )

5、SOC:片上系统(System On Chip)

6、VHDL:超高速集成电路硬件描述语言(VHSIC Hardware Description Language)。

7、RTL:寄存器传输级(Register Transport Level)

8、SOPC:可编程片上系统(System On Programmable Chip)

9、PLD:可编程逻辑器件(Programmable Logic Array)

10、GAL:通用阵列逻辑(Geniric Array Logic)

11、FPGA:现场可编程门阵列(Field Programmable Gate Array )

12、CPLD:复杂可编程逻辑器件(Complex Programmable Logic Device)

二、简答题

1、简述VHDL程序的基本结构。

库、程序包、实体、结构体、配置

2、子程序分为那两类,其结构为什么。

子程序有两种类型,即过程(PROCEDURE)和函数(FUNCTION)。

FUNCTION 函数名(参数表)RETURN 数据类型--函数首

FUNCTION 函数名(参数表)RETURN 数据类型IS -- 函数体[说明部分]

BEGIN

顺序语句;

END FUNCTION 函数名;

PROCEDURE 过程名(参数表) -- 过程首

PROCEDURE 过程名(参数表) IS -- 过程体

[说明部分]

BIGIN

顺序语句;

END PROCEDURE 过程名;

3、信号与变量的赋值有何区别?。

信号延时赋值,变量立即赋值;

信号的代入使用<=,变量的代入使用:=;

信号在实际的硬件当中有对应的连线,变量没有

4、可编程器件分为哪些类?

答:一类是集成度较低的,早期出现的PROM、PLD、PAL、GAL,可用的逻辑门数大约在500门以下,称为简单PLD。

另一类是芯片集成度较高的,如现在大量使用的CPLD和FPGA器件,称为复杂PLD。

5、CASE语句使用当中的注意事项。

(1)条件句中的选择值必在表达式的取值范围内。

(2)除非所有条件句中的选择值能完整覆盖CASE语句中表达式的取值,否则最末一个条件句中的选择必须用"OTHERS”表示,它代表己给的所有条件句中未能列出的其它可能的取值。关键词OTHERS只能出现一次,目只能作为最后一种条件取值。使用OTHERS的目的是为了使条件句中的所有选择值能涵盖表达式的所有取值,以免综合器会插入不必要的锁存器。这一点对于定义为STD_ LOGIC和STD_ LOGIC_VECTOR数据类型的值尤为重要,因为这些数据对象的取值除了1和0以外,还可能有其它的取值,如高阻态Z、不定态X等。

(3) CASE语句中每一条件句的选择值只能出现一次,不能有相同选择值的条件语句出现。

(4) CASE语句执行中必须选中,目只能选中所列条件语句中的一条。这表明CASE语句中至少要包含一个条件语句。

6、赋值语句分哪些类,分别写出一句赋值语句。

信号赋值语句,S<=

变量赋值语句,V?

7、数据对象有哪些种,分别写出定义这些数据对象的一般表述格式。

Constant(常量)在程序中不可以被赋值

Variable(变量)在程序中可以被赋值(用“:=”),赋值后立即变化为新值。

Signal(信号)在程序中可以被赋值(用“<=”),但不立即更新,当进程挂起后,才开始更新。

8、简述进程语句的使用要点?

[进程名:]

process[(触发信号列表)]

[定义语句;]

begin

[串行处理语句sequential statement;]

end process

PROCESS...END PROCESS

9、写出VHDL常用的顺序语句的名称。

赋值语句

流程控制语句

等待语句

子程序调用语句

返回语句

空操作语句

10、VHDL语言中的逻辑操作符有那些?

逻辑运算符AND、OR、NAND、NOR、XOR、XNOR及NOT

11、使用原理图输入设计功能的优势何优点?

与传统的数字电路实验相比,Quartus提供原理图设计功能具有不可比拟的优势和先进性:

○1设计者不必具备许多诸如编程技术、硬件描述语言等知识就能迅速

设计入门,完成大规模的电路系统设计

○2能进行任意层次的数字系统设计(传统的数字电路实验只能完成单

一层次的设计);

○3能对系统中的任一层次,或任一元件的功能进行精确的时序仿真

○4通过时序仿真,能迅速定位电路系统的错误所在,并随时纠正。

○5能对设计方案进行随时更改,并储存设计工程中所有电路和测试文件入档;

○6通过编译和下载,能在FPGA或CPLD上对设计项目随时进行硬件测试验证;

○7如果使用FPGA和配置编程方式,将不会有损坏和损耗的问题

○8符合现代电子设计技术规范。

12、VHDL的操作符有那几大类?每一类的操作符分别是什么?每一类操作符可以对那些数据进行操作(运算)?

在VHDL中有四类操作符即逻辑操作符(Logical Operator)、关系操作符(Relational Operator)、算术操作符(Arithmetic Operator)和符号操作符(Sign Operator)。前三类操作符是完成逻辑和算术运算的最基本的操作符单元。

13、标准逻辑位数据类型常用的数值有哪几种?

'U'--Uninitialized未初始化的

'X'--Forcing Unknown强未知的

'0'--Forcing 0强0

'1'--Forcing 1强1

'Z'--High Impedance 高阻态

'W'--Weak Unknown弱未知的

'L'--Weak 0 弱0

'H'--Weak 1弱1

'-'--Don't care忽略

14、在VHDL语言中常见的数据类型有那些?

VHDL中的数据类型可以分成四大类。

标量型(Scalar Type)

复合类型(Composite Type)

存取类型(Access Type)

文件类型(Files Type)

15、实体部分的端口模式有四个类型。

IN模式:IN定义的通道确定为输入端口,并规定为单向只读模式,可以通过此端口将变量(Variable)信息或信号(Signal)信息读入设计实体中。

OUT模式:OUT定义的通道确定为输出端口,并规定为单向输出模式,可以通过此端口将信号输出设计实体,或者说可以将设计实体中的信号向此端口赋值。

INOUT模式:INOUT定义的通道确定为输入输出双向端口,即从端口的内部看,可以对此端口进行赋值,也可以通过此端口读入外部的数据信息;而从端口的外部看,信号既可以从此端口流出,也可以向此端口输入信号。INOUT模式包含了IN,OUT和BUFFER二种模式,因此可替代其中任何一种模式,但为了明确程序中各端口的实际任务,一般不作这种替代。

BUFFER模式:BUFFER定义的通道确定为具有数据读入功能的输出端口,它与双向端口的区别在于只能接受一个驱动源。

16、VHDL语句中顺序描述语句有哪几种?

赋值语句

流程控制语句

等待语句

子程序调用语句

返回语句

空操作语句

17、用WAIT语句设置4种不同的条件分别是什么?

对于不同的结束挂起条件的设置,WAIT语句有以下四种不同的语句格式。

WAIT;-- 第一种语句格式

WAIT ON 信号表;-- 第二种语句格式

WAIT UNTIL 条件表达式;-- 第三种语句格式

WAIT FOR 时间表达式;-- 第四种语句格式,超时等待语句

18、常用的if语句有哪几种?写出其书写格式。

A. 门闩

IF条件句Then --第一种IF语句结构

顺序语句

END IF

B. 二选一

IF条件句Then --第二种IF语句结构

顺序语句

ELSE

顺序语句

END IF

C. 多选择

IF条件句Then --第三种IF语句结构

顺序语句

ELSIF条件句Then

顺序语句

...

ELSE

顺序语句

END IF

D. IF的嵌套

IF条件句Then

IF条件句Then

...

END IF

END IF

19、如何描述时钟上升沿和下降沿?

时钟脉冲的上升沿的条件可以写为:

IF clock_signal=current_value AND clock_signal’LAST_V ALUE AND clock_signal’EVENT

也可以简写为:

IF clock_signal= clock_signal’EVENT AND current_value

时钟脉冲的下降沿的条件可以写为:

IF clock_signal=current_value AND clock_signal’LAST_V ALUE AND clock_signal’EVENT

20、指出信号和变量有哪些区别?

简单的说,信号是全局的,用于结构体中并行语句间数据流的传递;变量

则是局部的,他主要用于单个进程中中间变量的存储.

主要用于对暂时数据进行局部存储。

临时数据,没有物理意义只能在Process和Function中定义,并只在其内部有效要使其全局有效,先转换为Signal。

用:= 进行赋值

variable result : std_logic := '0';

变量说明的格式:

V ARIABLE 变量名:数据类型约束条件:=表达式;

例:V ARIABLE X,Y:INTEGER;

V ARIABLE C:INTEGER RANGE 0 TO 255:=10;(表示变量C的数据类型是整型,变量范围从0到255,初始值为10。)

变量只能在进程语句、函数语句和过程语句结构中使用,它是一个局部量。在仿真过程中,它不像信号那样,到了规定的仿真时间才进行赋值,变量是立即生效的。

信号是抽象的电子电路内部硬件连接。它除了没有数据流动方向说明以外,其它性质几乎和前面所述的端口概念一致。信号通常在构造体、包集合和实体内说明。

信号说明的格式:

SIGNAL 信号名;数据类型约束条件:=表达式;

例:SIGNAL a,b,c:STD_LOGIC;

SIGNAL COUNT_2:STD_LOGIC_VECTOR(1 DOWNTO 0);

SIGNAL S_CLK:BIT:='0';

信号(Signals)

代表连线,Port也是一种信号。

没有方向性,可给它赋值,也可当作输入

在Entity中和Architecture中定义

设定的初始值在综合时没有用,只是在仿真时在开始设定一个起始值。用<=进行赋值。

信号和变量值的代入不仅形式不同,而且其操作过程也不同。在变量的赋值语句中,该语句一旦被执行,其值立即被赋予变量。在执行下一条语句时,该变量的值就为上一句新赋的值。变量赋值符为“:=”。信号代入语句采用“<=”代入符,该语句即使被执行也不会使信号立即发生代入。下一条语句执行时,仍使用原来的信号值。由于信号代入语句是同时进行处理的,

因此,实际代入过程和代入语句的处理是分开进行的。

21、信号赋值语句在什么情况下作为并行语句?在什么情况下作顺序语句?信号赋值和变量赋值符号分别是什么?两种赋值符号有什么区别?

信号赋值语句在进程外作并行语句,并发执行,与语句所处的位置无关。信号赋值语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处的位置有关。

信号赋值符号为“<=”变量赋值用“:=”。信号赋值符号用于信号赋值动作,不立即生效。变量,赋值符号用于变量赋值动作,立即生效。

22、进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?

进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号间以“,”号分隔。当敏感信号表中的任一个信号有

事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕之后,进程即进入等待挂起状态,直到下一次敏感表中的信号有事件发生,进程再次被激活,如此循环往复。

23、什么是库、程序包、子程序、过程调用和函数调用?

库和程序包用来描述和保存元件、类型说明和子程序等,以便在其它设计中通过其目录可查询、调用。子程序由过程和函数组成。在子程序调用过程中,过程能返回多个变量,函数只能返回一个变量。若子程序调用的是一个过程,就称为过程调用,若子程序调用的是一个函数,则称为函数调用。过程调用、函数调用都是子程序调用。

24、简述WHEN_ELSE条件信号赋值语句和IF_ELSE顺序语句的异同。

答:WHEN_ELSE条件信号赋值语句中无标点,只有最后有分号;必须成对出现;是并行语句,必须放在结构体中。

IF_ELSE顺序语句中有分号;是顺序语句,必须放在进程中。

三、综合题

1、完成

A. 解释带有下划线的语句。

B. 画出该程序的原理图符号。

C. 说明该程序逻辑功能。

D. 改用WITH_SELECT_WHEN语句编写下列程序。

Library ieee;

Use ieee.std_logic_1164.all;定义元件库

entity qk_11 is

port( a,b,c,d,en:in std_logic;

s:in std_logic_vector(1 downto 0);输入信号s是两位的输入总线

op:out std_logic );

end qk_11;

architecture ar_1 of qk_11 is

signal f:std_logic_vector(2 downto 0);

begin

f<=en&s;将输入信号en和s连接赋值给f

process (f) 敏感信号f的变化将启动进程process

begin

case f is

when"100"=>op<=a;

when"101"=>op<=b;

when"110"=>op<=c;

when others=>op<=d;其他情况,将输入信号d赋值给op end case;

end process;

end ar_1;

逻辑功能是:带有使能端en的四选一数据选择器。

用WITH_SELECT_WHEN语句编写上述程序:

Library ieee;

Use ieee.std_logic_1164.all;

entity qk_11 is

port( a,b,c,d,en:in std_logic;

s:in std_logic_vector(1 downto 0);

op:out std_logic );

end qk_11;

architecture ar_1 of qk_11 is

signal f:std_logic_vector(2 downto 0);

begin

f<=en&s;

with f select

op<=a when "100",

b when "101",

c when "110",

d when others;

end ar_1;

2、以下是一个模为24(0~23)的8421BCD码加法计数器VHDL描述,请补充完整

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY tb IS

PORT ( CLK : IN STD_LOGIC ;

SHI, GE : OUT INTEGER RANGE 0 TO 9 ) ;

END ;

ARCHITECTURE bhv OF tb 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 ;

SHI1<=SHI1+1;

ELSIF SHI1=2 AND GE1=3 THEN

SHI1<=0;

GE1<=0;

ELSE

GE1 <= GE1+1;

END IF;

END IF;

END PROCESS ;

GE <= GE1;

SHI <=SHI1;

END bhv;

3、下面程序是参数可定制带计数使能异步复位计数器的VHDL描述,试补充完整。

-- N-bit Up Counter with Load, Count Enable, and

-- Asynchronous Reset

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;

4、补全下列六进制计数器cnt6程序(10分)LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

ENTITY cnt6 IS

PORT (reset,en,clk:IN STD_LOGIC;

carry:OUT STD_LOGIC;

q:OUT STD_ULOGIC_VECTOR(2 DOWNTO 0)); END cnt6;

ARCHITECTURE rtl OF cnt6 IS

SIGNAL qs:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL ca:STD_LOGIC;

BEGIN

PROCESS(clk)

VARIABLE q6:INTEGER;

BEGIN

IF(clk'EVENT AND clk = '1') THEN

END IF;

qs<=CONV_STD_LOGIC_VECTOR(q6,3);

q<=TO_STDULOGICVECTOR(qs);

END PROCESS;

PROCESS(ca,en)

BEGIN

carry<=ca AND en;

END PROCESS;

END rtl;

5、补全以下二选一VHDL程序(本题10分)

Entity mux is

port(d0,d1,sel:in bit;

q:out BIT );

end mux;

architecture connect of MUX is

signal tmp1,TMP2 ,tmp3:bit;

begin

cale:block

begin

tmp1<=d0 and sel;

tmp2<=d1 and (not sel)

tmp3<= tmp1 and tmp2;

q<= tmp3;

end block cale;

end CONNECT ;

6、根据下表填写完成一个3-8线译码器的VHDL程序(10分)。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY decoder_3_to_8 IS

PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;

y:OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END decoder_3_to_8;

ARCHITECTURE rtl OF decoder_3_to_8 IS

SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0); BEGIN

indata <= c & b & a;

PROCESS (indata,g1,g2a,g2b)

BEGIN

IF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THEN

CASE indata IS

WHEN "000"=> y <= "11111110";

WHEN "001" => y <= "11111101";

WHEN "010" => y <= "11111011";

WHEN "011" => y <= "11110111";

WHEN "100" => y <= "11101111";

WHEN "101" => y <= "11011111";

WHEN "110" => y <= "10111111";

WHEN "111" => y <= "01111111";

WHEN OTHERS=> y <= "XXXXXXXX";

END CASE;

ELSE

y <= "11111111";

END IF;

END PROCESS; (16)END rtl;

7、填写完成一个8-3线编码器的VHDL程序(16分)。

Library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity eight_tri is

port(

b: in std_logic_vector(7 downto 0);

en: in std_logic;

y: out std_logic_vector(2 downto 0)

);

end eight_tri;

architecture a of eight_tri is

signal sel: std_logic_vector(8 downto 0);

begin

sel<=en & b;

y<= “000” when (sel=”100000001”)else

“001” when (sel=”100000010”)else

“010” when (sel=”100000100”)else

“011” when (sel=”100001000”)else

“100” when (sel=”100010000”)else

“101” when (sel=”100100000”)else

“110” when (sel=”101000000”)else

“111” when (sel=”110000000”)else

“zzz”;

end a;

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

entity full_add is

port (

a,b: in std_logic_vector (3 downto 0); (2)

carr: inout std_logic_vector (4 downto 0);

sum: out std_logic_vector (3 downto 0)

);

end full_add;

architecture full_add_arch of full_add is

component adder

port (

a,b,c: in std_logic;

carr: inout std_logic;

sum: out std_logic

);

end component;

begin

carr(0)<='0';

u0:adder port map(a(0),b(0),carr(0),carr(1),sum(0));

u1:adder port map(a(1) , b(1),carr(1),carr(2),sum(1));

u2:adder port map(a(2),b(2),carr(2),carr(3),sum(2));

u3:adder port map(a(3),b(3),carr(3),carr(4) , sum(3));

end full_add_arch;

8、补充完整如下代码,使之完成4状态不断循环。(本题10分)

ARCHITECTURE arc OF ss IS

type states is (st0,st1,st2,st3 );

signal outc: states;

BEGIN

PROCESS(clk)

BEGIN

IF reset='1' then

outc <=st0 ;

elsif clk'event and clk='1' then

CASE outc IS

WHEN st0 => outc <= st1;

WHEN st1 => outc <= st2;

WHEN st2 => outc <= st3;

WHEN st3 => outc <= st0;

WHEN OTHERS => outc <=st0;

END CASE;

end if;

END PROCESS;

END arc;

9、根据一下四选一程序的结构体部分,完成实体程序部分(本题8分)LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

entity MUX4 is

port(

s: in std_logic_vector(1 downto 0);

d: in std_logic_vector(3 downto 0);

y: out std_logic

);

end MUX4;

architecture behave of MUX4 is

begin

process(s)

begin

if (s="00") then

y<=d(0);

elsif (s="01") then

y<=d(1);

elsif (s="10") then

y<=d(2);

elsif (s="11") then

y<=d(3);

else

null;

end if;

end process;

end behave;

四、编程题

1、用IF语句编写一个二选一电路,要求输入a、b, sel为选择端,输出q。(本题10分)

Entity sel2 is

Port (

a,b : in std_logic;

sel : in std_logic;

q : out std_logic

);

End sel2;

Architecture a of sel2 is

begin

if sel = ‘0’ then

q <= a;

else

q <= b;

end if;

end a;

2、填写完成一个8-3线编码器的真值表(5分),并写出其VHDL程序(10分)。

entity eight_tri is

port(

b: in std_logic_vector(7 downto 0);

en: in std_logic;

y: out std_logic_vector(2 downto 0)

);

end eight_tri;

architecture a of eight_tri is

signal sel: std_logic_vector(8 downto 0);

begin

sel<=en & b;

y<= “000” when (sel=”100000001”)else

“001” when (sel=”100000010”)else

“010” when (sel=”100000100”)else

“011” when (sel=”100001000”)else

“100” when (sel=”100010000”)else

“101” when (sel=”100100000”)else

“110” when (sel=”101000000”)else

“111” when (sel=”110000000”)else

“zzz”;

end a;

3、试用VHDL描述一个外部特性如图所示的D触发器。(10分)

参考程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY mydff IS

PORT(CLK:IN STD_LOGIC;

D:IN STD_LOGIC;

Q:OUT STD_LOGIC);

END;

ARCHITECTURE bhv OF mydff IS

BEGIN

PROCESS(CLK)

BEGIN

IF CLK'EVENT AND CLK='1' THEN

Q<=D;

END IF;

END PROCESS;

END;

4、下图为某一状态机对应的状态图,试用VHDL语言描述这一状态机。(18分)

参考程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY FSM2 IS

PORT ( clk,reset,in1 : IN STD_LOGIC;

out1 : OUT STD_LOGIC_VECTOR(3 downto 0));

END;

ARCHITECTURE bhv OF FSM2 IS

TYPE state_type IS (s0, s1, s2, s3);

SIGNALcurrent_ state,next_state: state_type;

BEGIN

P1:PROCESS(clk,reset)

BEGIN

IF reset = ‘1’THEN current_state <= s0;

ELSIF clk='1' AND clk'EVENT THEN

current_state <=next_state;

END IF;

END PROCESS;

P2:PROCESS(current_state)

BEGIN

case current_state is

WHEN s0 => IF in1=‘1’THEN next_state<=s1;

ELSE next_state<=s0;

END IF;

WHEN s1 => IF in1='0'THEN next_state<=S2;

ELSE next_state<=s1;

END IF;

WHEN s2 => IF in1='1'THEN next_state<=S3;

ELSE next_state<=s2;

END IF;

WHEN s3 => IF in1='0'THEN next_state<=S0;

ELSE next_state<=s3; END IF;

end case;

END PROCESS;

p3:PROCESS(current_state)

BEGIN

case current_state is

WHEN s0 => IF in1=‘1’THEN out1<=“1001”;

ELSE out1<="0000"; END IF;

WHEN s1 => IF in1='0'THEN out1<="1100";

ELSE out1<="1001"; END IF;

WHEN s2 => IF in1='1'THEN out1<="1111";

ELSE out1<="1001"; END IF;

WHEN s3 => IF in1='1'THEN out1<="0000";

ELSE out1<="1111"; END IF;

end case;

END PROCESS;

end bhv;

5、数据选择器MUX,其系统模块图和功能表如下图所示。试采用下面四种方式中的两种来描述该数据选择器MUX的结构体。

SEL COUT

00

01

10

11

OTHERS

A or B

A xor B

A nor B

A and B

“XX”

(a) 用if语句。(b) 用case语句。(c) 用when else语句。(d) 用with select语句。

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 one of mymux is

Begin

Process (sel, ain, bin)

Begin

If sel = “00” then cout <= ain or bin;

Elsif sel = “01” then cout <= ain xor bin;

Elsif sel = “10” then cout <= ain and bin;

Else cout <= ain nor bin;

End if;

End process;

End one;

Architecture two 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 two;

6、根据下面原理图,写出相应VHDL描述

Library ieee;

Use ieee.std_logic_1164.all;

Entity mycir is

Port (ain , bin , clk : in std_logic;

Cout : out std_logic);

End mycir;

Architecture one of mycir is

Signal tb, tc;

Begin

Process (clk) begin

If clk’event and clk = ‘1’ then

tb <= bin;

end if;

End process;

Process (clk, tc) begin

If clk = ‘1’ then cout <= tc;end if;

End process;

Tc <= ain xor tb;

End one;

7、用两种以上的按照下图设计一个四选一多路选择器

8、使用元件例化语句编写下图所示的顶层文件,其中adder_1为一个由原理图输入法设计的完整的设计实体。

3、已知4位全加器电路原理图如下,请用元件例化语句编写其程序。

9、在数字显示中,经常使用LED数码管,下面是采用共阳极的7段显示。BCD码输入与LED显示器对应的关系如下表:

七段译码器b(X5) a(X6) c(X4) d(X3) e(X2) f(X1) g(X0)

D0 D1 D2 D3

a

b

c f

e

d

g

七段数码管

10、在数字显示中,经常使用LED数码管,下面是采用共阳极的7段显示。BCD码输入与LED显示器对应的关系如下表:

七段译码器b(X5) a(X6) c(X4) d(X3) e(X2) f(X1) g(X0)

D0 D1 D2 D3

a

b

c f

e

d

g

七段数码管

EDA技术试验问答题答案(基本包含)

第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系?FPGA/CPLD在ASIC设计中有什么用途? 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。FPGA/CPLD在ASIC设计中,属于可编程ASIC的逻辑器件;使设计效率大为提高,上市的时间大为缩短。 1-2与软件描述语言相比,VHDL有什么特点? P6 答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。 l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P5 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么?答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。 1-4在EDA技术中,自顶向下的设计方法的重要意义是什么? P7~10 答:在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。 1-5 IP在EDA技术的应用和发展中的意义是什么? P11~12 答:IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。 1-6 叙述EDA的FPGA/CPLD设计流程。P13~16 答:1.设计输入(原理图/HDL文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。

EDA期末考试考卷及答案

(A卷) 赣南师范学院 2010—2011学年第一学期期末考试试卷(A卷)(闭卷)年级 2008 专业电子科学与技术(本)课程名称 EDA技术基础 2、学生答题前将密封线外的内容填写清楚,答题不得超出密封线; 3、答题请用蓝、黑钢笔或圆珠笔。 一、单项选择题(30分,每题2分) 1.以下关于适配描述错误的是 B A.适配器的功能是将综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件 B.适配所选定的目标器件可以不属于原综合器指定的目标器件系列 C.适配完成后可以利用适配所产生的仿真文件作精确的时序仿真 D.通常,EDAL软件中的综合器可由专业的第三方EDA公司提供,而适配器则需由FPGA/CPLD供应商提供 2.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述 D 。 A.器件外部特性B.器件的综合约束 C.器件外部特性与内部功能D.器件的内部功能 3.下列标识符中, B 是不合法的标识符。 A.State0 B.9moon C.Not_Ack_0 D.signall 4.以下工具中属于FPGA/CPLD集成化开发工具的是 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型状态机其输出是当前状态的函数

EDA期末试卷及答案(2020年九月整理).doc

EDA期末试卷 一、填空题 1.一般把EDA技术的发展分为MOS时代、CMOS 代和ASIC 三个阶段。 2.EDA设计流程包括设计输入、设计实现、实际设计检验和下载编程四个步骤。 3.EDA设计输入主要包括图形输入、HDL文本输入和状态机输入。 4.时序仿真是在设计输入完成之后,选择具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为功能仿真。5.VHDL的数据对象包括变量、常量和信号,它们是用来存放各种类型数据的容器。 6.图形文件设计结束后一定要通过仿真,检查设计文件是否正确。 7.以EDA方式设计实现的电路设计文件,最终可以编程下载 到FPGA 和CPLD 芯片中,完成硬件设计和验证。 8.MAX+PLUS的文本文件类型是(后缀名).VHD 。9.在PC上利用VHDL进行项目设计,不允许在根目 录下进行,必须在根目录为设计建立一个工程目录(即文件夹)。

10.VHDL源程序的文件名应与实体名相同,否则无法通过编译。 二、选择题:。 11.在EDA工具中,能完成在目标系统器件上布局布线软件称为(C )A.仿真器 B.综合 器 C.适配器 D.下载器12.在执行MAX+PLUSⅡ的(D )命令,可以精确分析设计电路输入与输出波形间的延时量。 A .Create default symbol B. Simulator C. Compiler D. Timing Analyzer 13.VHDL常用的库是(A ) A. IEEE B.STD C. WORK D. PACKAGE 14.下面既是并行语句又是串行语句的是( C ) A.变量赋值 B.信号赋值 C.PROCESS语 句 D.WHEN…ELSE语句 15.在VHDL中,用语句(D )表示clock的下降沿。

EDA技术期末试卷含答案资料

精品文档 一、单项选择题(30分)9.嵌套使用IF语句,其综合结果可实现 A 。A.带优先级且条件相与的逻辑电路1.以下描述错误的是 C B.条 件相或的逻辑电路 C.三态控制电路是A.QuartusIIAltera提供的FPGA/CPLD集成开发环境D.双向控制电路 10.在VHDLAlteraB.是世界上最大的可编程逻辑器件供应商之一语言中,下列对时钟边沿检测描述中,错误的是 D 。 A.if clk'event and clk = ‘1' then B.if falling_edge(clk) then 前一代C.MAX+plusII是AlteraFPGA/CPLD集成开发环境QuartusII的更 C.if clk'event and clk = ‘0' then 新换代新产品D.if clk'stable and not clk = ‘1' then 11.下列那个流程是正确的基于.DQuartusII完全支持VHDL、Verilog的设计流程EDA软件的FPGA / CPLD设计流程 B A.原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试开发工具中的专用综合器的是2.以下工具中属于FPGA/CPLD B B.原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试 C .Active HDL D.QuartusII Leonardo Spectrum .AModelSim B.C.原理图/HDL文本输入→功能仿真→综合→编程下载→→适配硬件测试;.3以下器件中属于Xilinx 公司生产的是 C /HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试 D.BMAX系列器件.原理图A.ispLSI系列器件 )语句的语句结构及语法规则语言中,下列对进程(PROCESS系列器件 C.XC9500系列器件D.FLEX 12.在VHDL 。A 的描述中,正确的是以下关于信号和变量的描述中错误的是4. B 为一无限循环语句;敏感信号发生更新时启动进程,执行完..信号是描述硬件系统的基本数据对象,它的性质类似于连接线PROCESSAA .信号的定义范围是结构体、进程B 成后,等待下一次进程启动C.除了没有方向说明以外,信号与实体的端口概念是一致的B.敏感信号参数表中,应列出进程中使用的所有输入信号CD.在进程中不能将变量列入敏感信号列表中.进程由说明部分、结构体部分、和敏感信号参数表三部分组成D.当前进程中声明的变量也可用于其他进程以下关于状态机的描述中正确的是5. B B MooreA.型状态机其输出是当前状态和所有输入的函数13.下列语句中,不属于并行语句的是 语句B.CASE 型的输出变化要领先一个时钟周期型状态机相比,.与BMooreMealy A.进程语句 …语句…ELSE D.WHEN .元件例化语句MealyC.型状态机其输出是当前状态的函数 C 设计现行工作VHDL语言共支持四种常用库,其中哪种库是用户的14.以上都不对D .VHDL B 下列标识符中,.库是不合法的标识符。6 END BPP0 A...D .CNot_Ack sig D

EDA技术期末试卷(含答案)

班级 学号 姓名 密 封 线 内 不 得 答 题 一、单项选择题(30分) 1.以下描述错误的是 C A .QuartusII 是Altera 提供的FPGA/CPLD 集成开发环境 B .Altera 是世界上最大的可编程逻辑器件供应商之一 C .MAX+plusII 是Altera 前一代FPGA/CPL D 集成开发环境QuartusII 的更新换代新产品 D .QuartusII 完全支持VHDL 、Verilog 的设计流程 2.以下工具中属于FPGA/CPLD 开发工具中的专用综合器的是 B A .ModelSim B .Leonardo Spectrum C .Active HDL D .QuartusII 3.以下器件中属于Xilinx 公司生产的是 C A .ispLSI 系列器件 B .MAX 系列器件 C .XC9500系列器件 D .FLEX 系列器件 4.以下关于信号和变量的描述中错误的是 B A .信号是描述硬件系统的基本数据对象,它的性质类似于连接线 B .信号的定义范围是结构体、进程 C .除了没有方向说明以外,信号与实体的端口概念是一致的 D .在进程中不能将变量列入敏感信号列表中 5.以下关于状态机的描述中正确的是 B A .Moore 型状态机其输出是当前状态和所有输入的函数 B .与Moore 型状态机相比,Mealy 型的输出变化要领先一个时钟周期 C .Mealy 型状态机其输出是当前状态的函数 D .以上都不对 6.下列标识符中, B 是不合法的标识符。 A .PP0 B .END C .Not_Ack D .sig 7.大规模可编程器件主要有FPGA 、CPLD 两类,下列对CPLD 结构与工作原理的描述中,正确的是 C 。 A .CPLD 即是现场可编程逻辑器件的英文简称 B .CPLD 是基于查找表结构的可编程逻辑器件 C .早期的CPL D 是从GAL 的结构扩展而来 D .在Altera 公司生产的器件中,FLEX10K 系列属CPLD 结构 8.综合是EDA 设计流程的关键步骤,在下面对综合的描述中, D 是错误的。 A .综合就是把抽象设计层次中的一种表示转化成另一种表示的过程 B .综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD 的基本结构相映射的网表文件 C .为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束 D .综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的) 9.嵌套使用IF 语句,其综合结果可实现 A 。 A .带优先级且条件相与的逻辑电路 B .条件相或的逻辑电路 C .三态控制电路 D .双向控制电路 10.在VHDL 语言中,下列对时钟边沿检测描述中,错误的是 D 。 A .if clk'event and clk = ‘1’ then B .if falling_edge(clk) then C .if clk’event and clk = ‘0’ then D .if clk’stable and not clk = ‘1’ then 11.下列那个流程是正确的基于EDA 软件的FPGA / CPLD 设计流程 B A .原理图/HDL 文本输入→适配→综合→功能仿真→编程下载→硬件测试 B .原理图/HDL 文本输入→功能仿真→综合→适配→编程下载→硬件测试 C .原理图/HDL 文本输入→功能仿真→综合→编程下载→→适配硬件测试; D .原理图/HDL 文本输入→功能仿真→适配→编程下载→综合→硬件测试 12.在VHDL 语言中,下列对进程(PROCESS )语句的语句结构及语法规则的描述中,正确的是 A 。 A .PROCESS 为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动 B .敏感信号参数表中,应列出进程中使用的所有输入信号 C .进程由说明部分、结构体部分、和敏感信号参数表三部分组成 D .当前进程中声明的变量也可用于其他进程 13.下列语句中,不属于并行语句的是 B A .进程语句 B .CAS E 语句 C .元件例化语句 D .WHEN …ELSE …语句 14.VHDL 语言共支持四种常用库,其中哪种库是用户的VHDL 设计现行工作 库 D A .IEEE 库 B .VITAL 库 C .STD 库 D .WORK 库 15.VHDL 语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述 D 。 A .器件外部特性 B .器件的综合约束 C .器件外部特性与内部功能 D .器件的内部功能 二、EDA 名词解释,写出下列缩写的中文含义(10分) 1.CPLD :复杂可编程逻辑器件 2.ASIC :专用集成电路 3.LUT :查找表 4.EDA :电子设计自动化 5.ROM :只读存储器 三、程序填空题(20分) 以下是一个模为24(0~23)的8421BCD 码加法计数器VHDL 描述,请补充完整

《EDA》试题B答案

2007 至2008学年度第二学期期末考核 《EDA》试题(开卷) 卷号:B 时间:120 分钟 2008 年6 月 专业:电子信息工程学号:姓名: 一填空题(20分) 1、VHDL 2、DEVICE.LIB SYMBOLS.LIB 3、实际零件焊接到电路板时所指示的外观和焊点的位置 4、电子设计自动化电子CAD技术 5、A L T E R A,X I L I N X 6、WAIT 7、电路连接 8、SRAM-BASE 9、2.54mm 300mil 10、元件外观和元件引线端子的图形 二名词解释(20分) 1 PLD/FPGA PLD是可编程逻辑器件(Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)的简称,两者的功能基本相同,只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或PLD/FPGA。 2.过孔 当需要连接两个层面上的铜膜走线时就需要过孔(Via),过孔 又称为贯孔、沉铜孔和金属化孔。 过孔分为穿透式(Through)、半隐藏式(Blind)和隐藏式(Buried) 3.铜膜线 就是连接两个焊盘的导线,称为Track,一般铜膜线走线在不 同层面取不同的走向,例如顶层走水平线,则底层走垂直线。顶 层和底层走线之间的连接采用过孔(Via)连接。 4 PROM、PAL和PLA PROM:与阵列固定,或阵列可编程,一般用作存储器,其输入为存储器的地址,输出为存储器单元的内容。但输入的数目太大时,器件功耗增加,其局限性大。 PLA:与或阵列均可编程,但是其慢速特性和相对PAL、PROM而高得多的价格妨碍了它被广泛使用。PAL:或阵列固定,与阵列可编程,其第二代产品GAL具有了可电擦写、可重复编程、可设置加密的功能。 5 自顶向下的/自下而上的设计方法 自下而上的设计方法,使用该方法进行硬件设计是从选择具体元器件开始,并用这些元器件进行逻辑电路设计,从而完成系统的硬件设计,然后再将各功能模块连接起来,完成整个系统的硬件设计,自顶向下的设计方法就是从系统的总体要求出发,自顶向下分三个层次对系统硬件进行设计。 第一个层次是行为描述第二个层次是数据流描述第三个层次为逻辑综合

(完整版)EDA期末考试题1

1.一个项目的输入输出端口是定义在( A )1-5 ACDCD 6-10 CCACA A. 实体中;. B. 结构体中; C. 任何位置; D. 进程中。 2. MAXPLUS2中编译VHDL源程序时要求( C ) A. 文件名和实体可以不同名; B. 文件名和实体名无关; C. 文件名和实体名要相同; D. 不确定。 3. VHDL语言中变量定义的位置是(D ) A. 实体中中任何位置; B. 实体中特定位置; C. 结构体中任何位置; D. 结构体中特定位置。 4.可以不必声明而直接引用的数据类型是(C ) A. STD_LOGIC ; B. STD_LOGIC_VECTOR; C. BIT; D. ARRAY。 5. MAXPLUS2不支持的输入方式是(D ) A 文本输入;.B. 原理图输入;C. 波形输入;D. 矢量输入。 6.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是( C ) A. FPGA全称为复杂可编程逻辑器件; B. FPGA是基于乘积项结构的可编程逻辑器件; C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D. 在Altera公司生产的器件中,MAX7000系列属FPGA结构。 7.下面不属于顺序语句的是( C ) A. IF语句; B. LOOP语句; C. PROCESS语句; D. CASE语句。 8. VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,实体体描述的是( A ) A. 器件外部特性; B. 器件的内部功能; C. 器件的综合约束; D. 器件外部特性与内部功能。 9. 进程中的信号赋值语句,其信号更新是( C ) A. 按顺序完成; B. 比变量更快完成; C. 在进程的最后完成; D. 都不对。 10. 嵌套使用IF语句,其综合结果可实现:(A ) A. 带优先级且条件相与的逻辑电路; B. 条件相或的逻辑电路; C. 三态控制电路; D. 双向控制电路。 一、单项选择题:(20分) 1. IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述

(完整版)EDA技术考试试题B及详细答案

《EDA技术》第二学期期末试题B 卷号:B 时间:120 分钟2008 年6 月 专业:电子信息工程学号:姓名: 一、填空题(20分,每题2分) 当前ASIC制造商都自己开发了HDL语言,但是都不通用,只有美国国防部开发的()语言成为了IEEE. STD_1076标准,并在全世界得到了承认。 载入protel的Schematic中的()和()可满足一般用户需求,两个零件库中含有二极管、三极管、电阻、电容、电感等常用元件。 零件封装是指()。 EDA技术也称(),是在( )技术的基础上发展起来的计算机软件系统。 目前世界上有十几家生产CPLD/FPGA的公司,最大的三家是:(),( ),LATTIC 。 顺序描述语句中,()在MAX-PLUS中不被支持。 VHDL语句中能被赋予一定值的对象称为客体,主要有常数,信号和变量。其中常数对应代表数字电路中的电源和接地等。信号对应物理设计中的()。 FPGA可分为两大类,分别是SRAM-BASE和Anti-Fuse 设计时一般选用()。100mil=()mm,7.62mm=( )mil。 PCB封装元件实际上就是()。 二、名词解释题(20分,每题4分) 1 PLD/FPGA 2.过孔 3.铜膜线 4 PROM、PAL和PLA 5 自顶向下的/自下而上的设计方法 三、选择题(15分,每题3分) 1.下列常用热键具有在元件浮动状态时,编辑元件属性功能的是() PgUp Tab Space bar Esc 2.Design/Options菜单中下列选项不属于开关选项的是:() A.Snap Grid B.Hidden Pins C.Electrical Grid D.Title block 3.下列不属于VHDL基本程序结构是() A..CONFIGURATION定义区 B..ARCHITECTURE定义区 C.USE定义区 D.ENTITY定义区 4.下列关于VHDL中信号说法不正确的是:()

EDA期末考试题大全

附带: 一.问答题 1信号赋值语句在什么情况下作为并行语句?在什么情况下作顺序语句?信号赋值和变量赋值符号分别是什么?两种赋值符号有什么区别? ●信号赋值语句在进程外作并行语句,并发执行,与语句所处的位置无关。信号赋值语句在进程内 或子程序内做顺序语句,按顺序执行,与语句所处的位置有关。 ●信号赋值符号为“<=”变量赋值用“:=”。信号赋值符号用于信号赋值动作,不立即生效。 变量,赋值符号用于变量赋值动作,立即生效。 2进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用? ●进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号 间以“,”号分隔。当敏感信号表中的任一个信号有事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕之后,进程即进入等待挂起状态,直到下一次敏感表中的信号有事件发生,进程再次被激活,如此循环往复。 3什么是库、程序包、子程序、过程调用和函数调用? ●库和程序包用来描述和保存元件、类型说明和子程序等,以便在其它设计中通过其目录可查询、 调用。子程序由过程和函数组成。在子程序调用过程中,过程能返回多个变量,函数只能返回一个变量。若子程序调用的是一个过程,就称为过程调用,若子程序调用的是一个函数,则称为函数调用。过程调用、函数调用都是子程序调用。 二.改错题 1.已知sel为STD_LOGIC_VECTOR(1 DOWNTO 0)类型的信号,而a、b、c、d、q均为STD_LOGIC类型的 信号,请判断下面给出的CASE语句程序片段:

●CASE sel IS ●WHEN“00”=>q<=a; ●WHEN“01”=>q<=b; ●WHEN“10”=>q<=c; ●WHEN“11”=>q<=d; ●END CASE; ●答案:CASE语句缺“WHEN OTHERS”语句。 2.已知data_in1, data_in2为STD_LOGIC_VECTOR(15 DOWNTO 0) 类型的输入端口,data_out为STD_LOGIC_VECTOR(15 DOWNTO 0)类型的输出端口,add_sub为STD_LOGIC类型的输入端口,请判断下面给出的程序片段: ●LIBRARY IEEE; ●USE IEEE.STD_LOGIC_1164.ALL; ●ENTITY add IS ● PORT(data_in1, data_in2:IN INTEGER; ● data_out:OUT INTEGER); ●END add; ●ARCHTECTURE add_arch OF add IS ●CONSTANT a:INTEGER<=2; ●BEGIN ●data_out<=( data_in1+ data_in2) * a; ●END addsub_arch; 答案:常量声明时赋初值的“<=”符号应改用“:=”符号。 3.已知Q为STD_LOGIC类型的输出端口,请判断下面的程序片段: ●ARCHITECTURE test_arch OF test IS ●BEGIN ●SIGNAL B:STD_LOGIC; ●Q<= B; END test_arch 答案:信号SIGNAL的声明语句应该放在BEGIN语句之前。 4.已知A和Q均为BIT类型的信号,请判断下面的程序片段: ●ARCHITECTURE archtest OF test IS ●BEGIN ●CASE A IS ●WHEN ‘0’=>Q<=‘1’; ●WHEN ‘1’=>Q<=‘0’; ●END CASE; ●END archtest; 答案:CASE语句应该存在于进程PROCESS内。 三.程序设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;

EDA试题库

EDA试题库建设 [70%基础题,20%中档题,10%提高题(试题容量:20套试卷,其中每套试题填空题10空(每空2分),选择题10题(每题2分)),简答题4题(每题5分),分析题2题(每题10分),设计题2题(每题10分)。] 基础题部分 填空题(140空) 1.一般把EDA技术的发展分为(CAD)、(CAE)和(EDA)三个阶段。 2.EDA设计流程包括(设计准备)、(设计输入)、(设计处理)和(器件编程)四个步骤。 3.时序仿真是在设计输入完成之后,选择具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为(功能仿真)。4.VHDL的数据对象包括(变量)、(常量)和(信号),它们是用来存放各种类型数据的容器。 5.图形文件设计结束后一定要通过(仿真),检查设计文件是否正确。 6.以EDA方式设计实现的电路设计文件,最终可以编程下载到(FPGA)或者(CPLD)芯片中,完成硬件设计和验证。7.MAX+PLUS的文本文件类型是(.VHD)。 8.在PC上利用VHDL进行项目设计,不允许在(根目录)下进行,必须在根目录为设计建立一个工程目录。9.VHDL源程序的文件名应与(实体名)相同,否则无法通过编译。 10.常用EDA 的设计输入方式包括(文本输入方式)、(图形输入方式)、(波形输入方式)。 11.在VHDL 程序中,(实体)和(结构体)是两个必须的基本部分。 12.将硬件描述语言转化为硬件电路的重要工具软件称为(HDL 综合器)。 13、VHDL 的数据对象分为(常量)、(变量)和(信号)3 类。 14、VHDL 的操作符包括(算术运算符)和(符号运算符)。 15、常用硬件描述语言有(Verilog HDL)、(AHDL)以及(VHDL)。 16、VHDL基本语句有(顺序语句)、(并行语句)和属性自定义语句。 17、VHDL 同或逻辑操作符是(XNOR)。 18、原理图文件类型后缀名是(.GDF),Verilog HDL语言文本文件类型的后缀名是(.V )。 19、十六进制数16#E#E1对应的十进制数值是(224)。 20、一个完整的VHDL程序应包含三个基本部分,即库文件说明、(程序包应用说明)和(实体和结构体说明)。 21、VHDL 不等于关系运算符是(/= )。 22、STD_LOGIC_1164程序包是(IEEE )库中最常用的程序包。 23.文本输入是指采用(硬件描述语言)进行电路设计的方式。 24.当前最流行的并成为IEEE标准的硬件描述语言包括(vhdl)和(verilog)。 25.采用PLD进行的数字系统设计,是基于(芯片)的设计或称之为(自底向上)的设计。26.硬件描述语言HDL给PLD和数字系统的设计带来了更新的设计方法和理念,产生了目前最常用的并称之为(自顶向下)的设计法。 27.EDA工具大致可以分为(设计输入编辑器)、(仿真器)、(hdl综合器)、(适配器)以及(下载器)等5个模块。 28.将硬件描述语言转化为硬件电路的重要工具软件称为(综合器)。 29.用MAX+plusII输入法设计的文件不能直接保存在(根目录)上,因此设计者在进入设计之前,应当在计算机中建立保存设计文件的(工程)。 30.若在MAX+plusII集成环境下,执行原理图输入设计方法,应选择(block diagram/Schematic)命令方式。

EDA技术期末试卷(含答案)

一、单项选择题(30分) 1.以下描述错误的是 C A.QuartusII是Altera提供的FPGA/CPLD集成开发环境 B.Altera是世界上最大的可编程逻辑器件供应商之一 C.MAX+plusII是Altera前一代FPGA/CPLD集成开发环境QuartusII的更新换代新产品 D.QuartusII完全支持VHDL、Verilog的设计流程 2.以下工具中属于FPGA/CPLD开发工具中的专用综合器的是 B A.ModelSim B.Leonardo Spectrum C.Active HDL D.QuartusII 3.以下器件中属于Xilinx 公司生产的是 C A.ispLSI系列器件 B.MAX系列器件 C.XC9500系列器件 D.FLEX系列器件 4.以下关于信号和变量的描述中错误的是 B A.信号是描述硬件系统的基本数据对象,它的性质类似于连接线 B.信号的定义范围是结构体、进程 C.除了没有方向说明以外,信号与实体的端口概念是一致的 D.在进程中不能将变量列入敏感信号列表中 5.以下关于状态机的描述中正确的是 B A.Moore型状态机其输出是当前状态和所有输入的函数 B.与Moore型状态机相比,Mealy型的输出变化要领先一个时钟周期 C.Mealy型状态机其输出是当前状态的函数 D.以上都不对 6.下列标识符中, B 是不合法的标识符。 A.PP0 B.END C.Not_Ack D.sig 7.大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是 C 。 A.CPLD即是现场可编程逻辑器件的英文简称 B.CPLD是基于查找表结构的可编程逻辑器件 C.早期的CPLD是从GAL的结构扩展而来 D.在Altera公司生产的器件中,FLEX10K 系列属CPLD结构 8.综合是EDA设计流程的关键步骤,在下面对综合的描述中, D 是错误的。 A.综合就是把抽象设计层次中的一种表示转化成另一种表示的过程 B.综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件 C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束 D.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的) 9.嵌套使用IF语句,其综合结果可实现 A 。 A.带优先级且条件相与的逻辑电路 B.条件相或的逻辑电路 C.三态控制电路 D.双向控制电路 10.在VHDL语言中,下列对时钟边沿检测描述中,错误的是 D 。 A.if clk'event and clk = ‘1’ then B.if falling_edge(clk) then C.if clk’event and clk = ‘0’ then D.if clk’stable and not clk = ‘1’ then 11.下列那个流程是正确的基于EDA软件的FPGA / CPLD设计流程 B A.原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试B.原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试C.原理图/HDL文本输入→功能仿真→综合→编程下载→→适配硬件测试; D.原理图/HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试12.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,正确的是 A 。 A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动 B.敏感信号参数表中,应列出进程中使用的所有输入信号 C.进程由说明部分、结构体部分、和敏感信号参数表三部分组成 D.当前进程中声明的变量也可用于其他进程 13.下列语句中,不属于并行语句的是 B A.进程语句 B.CASE语句 C.元件例化语句 D.WHEN…ELSE…语句 14.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库 D A.IEEE库 B.VITAL库C.STD库D.WORK库15.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述 D 。 A.器件外部特性 B.器件的综合约束 C.器件外部特性与内部功能 D.器件的内部功能 二、EDA名词解释,写出下列缩写的中文含义(10分) 1.CPLD:复杂可编程逻辑器件 2.ASIC:专用集成电路 3.LUT:查找表 4.EDA:电子设计自动化 5.ROM:只读存储器 三、程序填空题(20分) 以下是一个模为24(0~23)的8421BCD码加法计数器VHDL描述,请补充完整

EDA(FPGA)期末考试试题

这是长期总结的EDA期末考试试题 试题一 1-2与软件描述语言相比,VHDL有什么特点? P6 答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。 l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P5 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 有哪些类型? 答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。 (2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。 (3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。 (4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么? 答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。 1-4在EDA技术中,自顶向下的设计方法的重要意义是什么? P7~10 答:在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。 1-5 IP在EDA技术的应用和发展中的意义是什么? P11~12 答:IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。 2-1 叙述EDA的FPGA/CPLD设计流程。 P13~16 答:1.设计输入(原理图/HDL文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。 2-2 IP是什么?IP与EDA技术的关系是什么? P24~26 IP是什么? 答:IP是知识产权核或知识产权模块,用于ASIC或FPGA/CPLD中的预先设计好的电路功能模块。 IP与EDA技术的关系是什么? 答:IP在EDA技术开发中具有十分重要的地位;与EDA技术的关系分有软IP、固IP、硬IP:软IP是用VHDL等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这些功能;软IP通常是以硬件描述语言HDL源文件的形式出现。固IP是完成了综合的功能块,具有较大的设计深度,以网表文件的形式提交客户使用。硬IP提供设计的最终阶段产品:掩模。 3-1 OLMC(输出逻辑宏单元)有何功能?说明GAL是怎样实现可编程组合电路与时序电路的。 P34~36 答:OLMC单元设有多种组态,可配置成专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等。 说明GAL是怎样实现可编程组合电路与时序电路的? 答:GAL(通用阵列逻辑器件)是通过对其中的OLMC(输出逻辑宏单元)的编程和三种模式配置(寄存器模式、复合模式、简单模式),实现组合电路与时序电路设计的。 3-2 什么是基于乘积项的可编程逻辑结构? P33~34,40 答:GAL、CPLD之类都是基于乘积项的可编程结构;即包含有可编程与阵列和固定的或阵列的PAL(可编程阵列逻辑)器件构成。 3-3 什么是基于查找表的可编程逻辑结构? P40~41 答:FPGA(现场可编程门阵列)是基于查找表的可编程逻辑结构。 3-7 请参阅相关资料,并回答问题:按本章给出的归类方式,将基于乘积项的可编程逻辑结构的PLD器件归类为CPLD;将基于查找表的可编程逻辑结构的PLD器什归类为FPGA,那么,APEX系列属于什么类型PLD器件? MAX II系列又属于什么类型的PLD器件?为什么? P54~56 答:APEX(Advanced Logic Element Matrix)系列属于FPGA类型PLD器件;编程信息存于SRAM中。MAX II系列属于CPLD类型的PLD器件;编程信息存于EEPROM中。 4-3. 图3-31所示的是双2选1多路选择器构成的电路MUXK,对于其中MUX21A,当s='0'和'1'时,分别有y<='a'和y<='b'。试在一个结构体中用两个进程来表达此电路,每个进程中用CASE语句描述一个2选1多路选择器MUX21A。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX221 IS PORT(a1,a2,a3:IN STD_LOGIC_VECTOR(1 DOWNTO 0); --输入信号 s0,s1:IN STD_LOGIC; outy:OUT STD_LOGIC);--输出端 END ENTITY; ARCHITECTURE ONE OF MUX221 IS SIGNAL tmp : STD_LOGIC; BEGIN

EDA技术试题库

EDA试题库建设 [70%基础题,20%中档题,10%提高题(试题容量:20套试卷,其中每套试题填空题10空(每空2分),选择题10题(每题2分)),简答题4题(每题5分),分析题2题(每题10分),设计题2题(每题10分)。] 基础题部分 填空题(140空) 1.一般把EDA技术的发展分为(CAD)、(CAE)和(EDA)三个阶段。 2.EDA设计流程包括(设计准备)、(设计输入)、(设计处理)和(器件编程)四个步骤。 3.时序仿真是在设计输入完成之后,选择具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为(功能仿真)。 4.VHDL的数据对象包括(变量)、(常量)和(信号),它们是用来存放各种类型数据的容器。 5.图形文件设计结束后一定要通过(仿真),检查设计文件是否正确。 6.以EDA方式设计实现的电路设计文件,最终可以编程下载到(FPGA)或者(CPLD)芯片中,完成硬件设计和验证。 7.MAX+PLUS的文本文件类型是(.VHD)。 8.在PC上利用VHDL进行项目设计,不允许在(根目录)下进行,必须在根目录为设计建立一个工程目录。 9.VHDL源程序的文件名应与(实体名)相同,否则无法通过编译。 10.常用EDA 的设计输入方式包括(文本输入方式)、(图形输入方式)、(波形输入方式)。 11.在VHDL 程序中,(实体)和(结构体)是两个必须的基本部分。 12.将硬件描述语言转化为硬件电路的重要工具软件称为(HDL 综合器)。 13、VHDL 的数据对象分为(常量)、(变量)和(信号)3 类。 14、VHDL 的操作符包括(算术运算符)和(符号运算符)。 15、常用硬件描述语言有(Verilog HDL)、(AHDL)以及(VHDL)。 16、VHDL基本语句有(顺序语句)、(并行语句)和属性自定义语句。 17、VHDL 同或逻辑操作符是(XNOR)。 18、原理图文件类型后缀名是(.GDF),Verilog HDL语言文本文件类型的后缀名是(.V )。 19、十六进制数16#E#E1对应的十进制数值是(224)。 20、一个完整的VHDL程序应包含三个基本部分,即库文件说明、(程序包应用说明)和(实体和结构体说明)。 21、VHDL 不等于关系运算符是(/= )。 22、STD_LOGIC_1164程序包是(IEEE )库中最常用的程序包。 23.文本输入是指采用(硬件描述语言)进行电路设计的方式。 24.当前最流行的并成为IEEE标准的硬件描述语言包括(vhdl)和(verilog)。 25.采用PLD进行的数字系统设计,是基于(芯片)的设计或称之为(自底向上)的设计。 26.硬件描述语言HDL给PLD和数字系统的设计带来了更新的设计方法和理念,产生了目前最常用的并称之为(自顶向下)的设计法。 27.EDA工具大致可以分为(设计输入编辑器)、(仿真器)、(hdl综合器)、(适配器)以及(下载器)等5个模块。 28.将硬件描述语言转化为硬件电路的重要工具软件称为(综合器)。 29.用MAX+plusII输入法设计的文件不能直接保存在(根目录)上,因此设计者在进入设计之前,应当在计算机中建立保存设计文件的(工程)。 30.若在MAX+plusII集成环境下,执行原理图输入设计方法,应选择(block diagram/Schematic)命令方式。

相关文档
最新文档