当前位置:文档之家› EDA期中考试复习 仅供参考

EDA期中考试复习 仅供参考

EDA期中考试复习 仅供参考
EDA期中考试复习 仅供参考

EDA期中考试复习

复习纲要:

第一章:

1.概念——问答题,如:VHDL与软件语言特点、设计流程等

2.习题部分

第三章:

1.程序语法,名称、功能、作用

1.顺序语句:IF;CASE——写在Process中;理解上的“顺序性”。

2.VHDL常见语法要素

2.并行语句:when else;with select

3.编程题:参考习题

4.改错题:修改语法错误

第一章资料(重点加粗、下划线)

1-1 EDA技术与ASIC设计和FPGA开发有什么关系?FPGA在ASIC设计中有什么用途?P3~4 EDA技术与ASIC设计和FPGA开发有什么关系?答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC 设计,以及对自动设计与自动实现最典型的诠释。

FPGA在ASIC设计中有什么用途?答:FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA实现ASIC设计的现场可编程器件。

1-2 与软件描述语言相比,VHDL有什么特点? P4~6

答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU 而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。

综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。

l-3 什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P6

什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。

综合在电子设计自动化中的地位是什么?答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。

1-4 在EDA技术中,自顶向下的设计方法的重要意义是什么? P8~10 答:在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。

1-5 IP在EDA技术的应用和发展中的意义是什么? P23~25

答:IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。

1-6叙述EDA的FPGA/CPLD设计流程,以及涉及的EDA工具及其在整个流程中的作用。(P12~14)

答:1.设计输入(原理图/HDL文本编辑)(EDA设计输入器将电路系统以一定的表达方式输入计算机);2.综合(EDA综合器就是将电路的高级语言(如行为描述)转换成低级的,可与FPGA/CPLD的基本结构相映射的网表文件或程序。);3.适配(EDA适配器的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC、JAM 格式的文件。);4.时序仿真(ED A时序仿真器就是接近真实器件运行特性的仿真,仿真文件中已包含了器件硬件特性参数,因而,仿真精度高。)与功能仿真(ED A功能仿真器直接对

VHDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及任何具体器件的硬件特性。);5.编程下载(EDA编程下载把适配后生成的下载或配置文件,通过编程器或编程电缆向FPGA或CPLD下载,以便进行硬件调试和验证(Hardware Debugging)。);6.硬件测试(最后是将含有载入了设计的FPGA 或CPLD的硬件系统进行统一测试,以便最终验证设计项目在目标系统上的实际工作情况,以排除错误,改进设计。其中EDA的嵌入式逻辑分析仪是将含有载入了设计的FPGA的硬件系统进行统一测试,并将测试波形在PC机上显示、观察和分析。)。

第三章资料

基础部分(可不看)

例3-1

library ieee;

use ieee.std_logic_1164.all;

entity mux21a is ---关键词entity后为实体名

port ( a , b , s : in bit;

y : out bit );

end entity mux21a;

architecture bhv of mux21a is ---关键词architecture后为结构体名begin

process (a,b,s)

begin

if (s = '1') then y<=a ;

else y<=b;

end if;

end process;

end architecture bhv;

1.条件语句

名称:IF_THEN_ELSE

功能作用:属于顺序语句。

用于条件语句的判断表达式可以是一个值,也可以是更复杂的逻辑或运算表达式,如例3-1中的(s= '1')或以下IF语句表述

if a then ...

if (s1='0')and(s2='1')or(c

中的a或(s1='0') and (s2='1') or (c

2.数据类型

名称:包括位矢量bit、整数类型integer、布尔类型boolean和标准逻辑类型std_logic 等。

功能作用:详见p59

3.进程语句和顺序语句

名称:process

功能作用:所有顺序描述语句都必须放在进程语句中(也包括放在过程语句中)。

在一个结构体中可以包含任意个进程语句结构,所有的进程语句本身都是并行语句,而由任一进程process引导的语句(包含在其中的语句)属于顺序语句。

4.端口语句和端口信号名

名称:port

功能作用:描述电路的端口及端口信号必须用端口语句port()来引导,并在语句结尾处加分号“;”。

5.端口模式

名称:in,out,inout,buffer

功能作用:in:输入端口。

out:输出端口。

inout:双向端口。

buffer:缓冲端口。

6.关键字

名称:entity,erchitecture,end,if,else,else,out,in,and,or等

7.标识符

设计者程序中自定义。

考试范围(主要是程序结构和语句)

3.2 半加器

例3-2

library ieee;

use ieee.std_logic_1164.all;

entity h_adder is

port (

A : in std_logic;

B : in std_logic;

SO: out std_logic;

CO: out std_logic

);

end entity h_adder;

architecture fh1 of h_adder is

begin

SO <= A xor B;----并行语句没有先后顺序

CO <= A and B;----并行语句没有写在process中

end architecture fh1;

串行语句:写在进程的内部

3.3四选一多路选择器

4选1多路选择器及case语句表述方式

例3-3

library ieee;

use ieee.std_logic_1164.all;

entity mux41a is

port (a,b,c,d,s0,s1 :in std_logic;

y : out std_logic

);

end entity mux41a;

architecture bhv of mux41a is

signal s : std_logic_vector(1 downto 0);---s是信号名,说明语句部分:定义当

前语句中间的信号量

begin

s <= s1 & s0;---&并量连接符‘1’&‘0’=>‘10’

process(s1,s0)

begin

case (s) is

when "00" => y <=a ;

when "01" => y <=b ;

when "10" => y <=c ;

when "11" => y <=d ;

when others => null;

end case;

end process;

end bhv;

在此进程中的的case语句一定是顺序语句。

1.CASE语句

case语句属于顺序语句,必须放在进程语句process中使用。表述如下:

case <表达式> is

when <选择符或标识符> => <顺序语句>; ... ; <顺序语句>; when <选择符或标识符> => <顺序语句>; ... ; <顺序语句>; ...

when others => <顺序语句>;

end case;

2.case语句多条件选择值的一般表达式如下:

选择值 [|选择值]

选择值可以有四种不同的表达方式:

单个普通值,如6。

数值选择范围,如(2 to 4),表示2、3或4.

并列数值,如3|5,表示取值3或5。

混合方式,以上三种方式混合。

如例3-4

sel : in integer range 0 to 15;

...

case sel is

when 0 => z1 <= "010";

when 1|3 => z2 <= "110";

when 4 to 7|2 => z3 <= "011";

when others => z4 <= "111";

end case;

3.3.3 IEEE库预定义标准逻辑位与矢量 (P69) 3.3.4 预定义标准数据类型 (P70)

3.3.5 信号定义和数据对象(P71)

3.3.6 并置操作符&

操作符&表示信号或是数组合并起来形成新的数组矢量。例如:"VH"&"DL"的结果是"VHDL";'0'&'1'&'1'的结果为"011"。

语句S <= s1&s0的作用是令:S(1) <= s1;S(0) <= s0。

3.3.7 4选1多路选择器的VHDL不同描述方式

顺序语句并行语句并行语句

条件信号赋值选择信号赋值

例3-6的语句表述结构与例3-1相似,只是if语句的条件判断式的变量变成了两位二进制数,所以就有了四种可能的选择。IF语句形式如下:

IF_THEN_ELSE_ELSE_END IF

1.WHEN_ELSE条件信号赋值语句

该语句属于并行语句,不需要进程语句process引导。也称并行赋值语句(相对于进程中的赋值语句),一般表达式如下:

赋值目标 <= 表达式 WHEN 赋值条件 ELSE

表达式 WHEN 赋值条件 ELSE

...

表达式;

需要注意由于条件测试的顺序性,条件信号赋值语句中的第一子句具有最高赋值优先级。z <= a when p1 = '1' else

b when p2 = '1' else

c;

注意只有最后一个"表达式"后有个分号。

2.选择信号赋值语句

with 选择表达式 select

赋值目标信号 <= 表达式 when 选择值,

表达式 when 选择值,

...

表达式 when 选择值;

由于属于并行语句,选择信号赋值语句不在进程中应用,但其功能却与进程中的case语句的功能相似。

选择信号赋值语句在条件句中未能覆盖所有条件选择时,要求在末尾加上与NULL类似含义的关键词UNAFFECTED。

UNAFFECTED WHEN OTHERS ;

3.4 全加器

3.4.1 全加器设计

例3-9

library ieee;---全加器顶层设计描述

use ieee.std_logic_1164.all;

entity f_adder is

port (ain,bin,cin : in std_logic;

cout, sum : out std_logic

);

end entity f_adder;

architecture fd1 of f_adder is

component h_adder ---调用半加器声明语句

port (A, B : in std_logic; CO, SO : out std_logic);

end component ;

component or2a ---调用或门元件声明语句,or2a是实体名不是文件名port ( a, b : in std_logic; c: out std_logic);

end component ;

signal net1,net2,net3 : std_logic;---定义3个信号作为内部的连接线,信号量的导线begin

u1 : h_adder port map (A => ain, B => bin, CO => net2, SO => net1);

u2 : h_adder port map (net1, cin, net3, sum); --例化语句,u2模块的编号 u3 : or2a port map (a => net2, b => net3, c => cout);

end architecture fd1;

例3-10

library ieee;

use ieee.std_logic_1164.all;

entity or2a is

port (a, b : in std_logic; c : out std_logic);

end entity;

architecture one of or2a is

begin

c <= a or b ;

end architecture one ;

注意:这里假设参与设计的半加器文件、或门文件和全加器顶层设计文件存放于同一文件夹

3.4.2 VHDL例化语句

例化语句分两个部分组成,第一部分是将一个现成的设计实体定义为一个元件,语句的功能是对待调用的这个元件做出调用声明,最简表达式如下:

component 元件名 is

port (端口名表);

end component 文件名;

命名方式与实体中port()语句一致,即对于需要调用的元件,只需要将该元件对应的VHDL 程序的实体描述直接复制过来即可,即只需将entity改写为component。

元件定义语句必须放在结构体的architecture和begin之间。(调用声明的端口说明中的端口符号可与原文件不同但排列方式、端口模式、数据类型、功能定义等必须相同)。

元件例化语句的第二部分则是此元件与当前设计实体(顶层文件)中元件间及端口的连接说明。此语句所谓的“端口名关联法”有如下表达式:

例化名:元件名 port map ([端口名 =>] 连接端口名,...);

其中的例化名是必须存在的。

对应于例3-9中的元件名有h_adder,or2a,其例化名分别为u1,u2,u3.

port map是端口映射,或端口连接的意思...P76-77

位置关联法(位置映射法),关联表述的信号位置十分重要,不能放错;而且,一旦关联例化语句确定后,被连接的元件的源文件中的端口表内的信号排列位置就不能再变动了。

3.4.3 8位加法器设计及算术操作符应用(加法器应用题P77)

例3-11 是直接利用加法算术操作符“+”完成的8位加法器的VHDL程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;--unsigned无符号数,此程序包中包含算术操作符的重载函数entity adder8b is

port (A, B : in std_logic_vector(7 downto 0);--vector位矢量

cin : in std_logic;

cout: out std_logic;

dout: out std_logic_vector(7 downto 0)

);

end entity adder8b;

architecture bhv of adder8b is

signal data : std_logic_vector(8 downto 0);

begin

data <= ('0' & A) + ('0' & B) + ("00000000" & cin);--&并置连接符

cout <= data(8) ;

dout <= data(7 downto 0);

end architecture bhv;

3.5 乘法器

3.5.1 统计位矢中含‘1’个数的电路模块设计

例3-12 所描述的电路是一个统计输入的8位位矢中含‘1’个数的程序。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cntc is

port (din : in std_logic_vector(7 downto 0);

cnth : out std_logic_vector(3 downto 0));

end entity cntc;

architecture bhv of cntc is

begin

process(din)

variable Q : std_logic_vector(3 downto 0);

begin

Q := "0000" ;

for n in 0 to 7 loop --n是loop的循环变量

if (din(n) = '1') then Q:=Q+1;

end if;

end loop;

cnth <= Q ;

end process;

end bhv;

改程序有三个需要注意的语句结构:

(1)变量关键词variable的用法。

变量variable与信号signal一样,都属于数据对象,在此程序在的功能与信号相似,但变量的赋值符号与信号的赋值符号不同,信号的赋值符号是“<=”,而变量的赋值符号是“:=”。与信号不同,变量的功能主要用于数据的暂存,而且只能在进程中定义变量,所以,变量无法将数据传递出进程。

(2)程序中的if语句没有关键词else。这种用法是一种条件响应不完整的现象,即没有表达当条件(din(n)='0')时作何处理。

(3)程序使用了循环语句即loop语句的一种类型。

3.5.2 FOR_LOOP循环语句用法

loop 语句的常用表达方式有如下两种:

(1)单个loop语句

[ loop标号: ] loop

顺序语句

end loop [ loop标号 ];

这种循环方式是一种最简答的语句形式,它的循环方式需引入其他控制语句(如exit语句)后才能确定:“loop标号”可任选。用法如下:

...

L2 : loop

a := a+1 ;

exit L2 when a > 10 ;--当a大于10跳出循环

end loop L2;

此程序的循环方式由exit语句确定,即当a>10时结束执行a:=a+1 的循环。

(2)FOR_LOOP语句,语法格式如下:

[loop标号:] for 循环变量, in循环次数范围 loop

顺序语句

end loop [loop标号];

FOR后面的“循环变量”是一个临时变量,如n,属于loop语句的局部变量,不必事先定义。这个变量只能作为赋值源,不能被赋值,它由loop语句自动定义。使用时应当注意,在loop 语句范围内不要再使用其他与此循环变量同名的标识符,如n。

3.5.3 移位相加型乘法器

例3-13 是基于移位相加原理的4x4位乘法器的VHDL程序。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity mult4b is

generic ( S : integer := 4 );--定义参数S为整数类型且等于4便于修改电路规模port ( R : out std_logic_vector(2*S downto 1);

A, B:in std_logic_vector(S downto 1)

);

end entity mult4b;

architecture one of mult4b is

signal A0 : Std_logic_vector(2*S downto 1);--2*S为8表示8位(S为4位“0000”)begin

A0 <= conv_std_logic_vector(0,S) & A;--类型转换函数

process

variable R1 : std_logic_vector(2*S downto 1);--定义变量数据类型

begin

R1 := (others => '0');--变量赋值,若S=4,则此句等效于R1:=“00000000”

for i in 1 to S loop

if (B(1) = '1') then

R1 := R1 + to_stdlogicvector(to_bitvector(A0) SLL (i-1)

end if;

end loop;

R <= R1;

end process;

end architecture one;

3.5.4 GENERIC参数定义语句

GENERIC语句也像端口定义语句那样常常与port语句并行出现。

一般地,参数传递说明语句(GENERIC语句)是一种常数参数的端口界面,常以一种说明的形式放在实体或块结构体前的说明部分。十分方便地改变一个设计实体或一个元件的内部电路结构和规模。

参数传递说明语句的一般书写方式如下:

GENERIC(常数名:数据类型 [ :设定值]

{ ;常数名:数据类型 [ :设定值] } );

GENERIC语句能(在编译过程中)从外部动态地接受赋值,以此类似于端口port。

将GENERIC语句放在实体定义语句中间,且放在端口说明语句前面。

3.5.5 整数数据类型

在例3-13中的GENERIC语句中,定义参数S的数据类型是整数类型INTEGER。整数数据类型INTEGER的元素包含正整数、负整数和零。作无符号数处理。

在定义整数类型时,VHDL综合器通常要求使用关键词range构成的子句来为所定义的数限定范围,然后根据所限定的范围来决定表示此信号或变量的二进制数位数。

如以下定义表述:

signak Q : integer range 15 downto 0 ;

定义Q的数据对象是信号,数据类型是整数,并限定Q的取值范围是0-15,共16个值,可用二进制数表示。因此,VHDL综合器自动将Q综合成由四条信号线构成的总线方式信号:Q (3),Q(2),Q(1)和Q(1)。

整数常量的书写方式如下:

1, 35 ----十进制整数1和35

10E3 ----十进制整数,等于十进制整数1000,E为科学计数法

16#D9# ----十六进制整数,等于十六进制数据D9H

8#720# ----八进制整数,等于八进制数720O

2#11010010# ----二进制整数,等于二进制数11010010B

注意在语句中,整数的表达不加引号,如1、0、25等

自然数类型NATURAL是整数类型的一个子类型,它包含0和所有正整数。

3.5.6 省略赋值操作符

一般地,为了简化表达和位数不定情况下的赋值,可以使用短语“(others => x)”,这是一个省略赋值操作符,它可以在较多位的位矢量赋值中省略化赋值,如有

signal d1 : std_logic_vector(4 downto 0);

variable a1 : std_logic_vector(15 downto 0);

...

d1 <= (others =>'1');

a1 := (others =>'0');

最下的语句等同于:d1=“11111”;a1 := "0000000000000000".

利用“(others=>x)”还可以给位矢量的某一部分位赋值之后再使用others给其余的位赋值如下:d1 <= (1=>e(3),3=>e(5),others=>e(1) );

上式的1和3分别表示d1的第1位d1(1)和d1的第三位d1(3)。此式的含义是用e(3)的值取代d1(1)的值,用e(5)的值取代d1(3)的值,d1余下的3个位的值都用e(1)取代。也可改写为如下:

d1 <= e(1) & e(5) & e(1) & e(3) & e(1) ;

3.5.7 移位操作符

六种移位操作符SLL、SRL、SLA、SRA、ROL和ROR

移位操作符格式如下:

标识符移位操作符移位位数; --如“10110001”SRL 3,结果是“00010110”

SLL是将位矢向左移,右边跟进的位补零;

SRL的功能恰好与SLL相反;

ROL的位移方式稍有不同,它们移出的位将用于依次填补位移空的位,执行是的循环式位移方式;

SLA和SRA是算术位移操作符,其移空位用最初的首位来填补。

例3-14

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity decoder3to8 is

port (din : in std_logic_vector(2 downto 0);--3位二进制

dout : out bit_vector(7 downto 0) --数据类型为位矢量

);

end entity decoder3to8;

architecture behave of decoder3to8 is

begin

dout <="00000001" SLL conv_integer(din);--被移位部分是常数

end architecture behave;

3.5.8 各类运算操作对数据类型的要求(程序例子p86)

3.5.9 数据类型转换函数(不重要)

例3-20中各例句都调用了数据类型转换函数,在程序包ieee.std_logic_1164中的转换函数,它们在程序包中定义的函数首如下:

例3-21是一个利用转换函数conv_integer(),以及在进程中对同一信号先后赋值不同数据类型的特性,完成了3-8译码器的设计程序。

例3-22是几个预定义转换函数的函数首表达式,从中可以了解类型转换函数的来源。

下面是To_bitvector的函数体,其中的ALIAS是表述缩略语句之关键词。

3.5.10 GENERIC参数传递映射的语句GENERIC的完整用法,如下8x8位乘法器

部分习题(课后作业仅供参考)

3-2 画出与以下实体描述对应的原理图符号元件: ENTITY buf3s IS --实体1:三态缓冲器 PORT(input:IN STD_LOGIC; --输入端 enable:IN STD_LOGIC; --使能端 output:OUT STD_LOGIC); --输出端 END buf3s ;

ENTITY mux21 IS --实体2: 2选1多路选择器 PORT(in0, in1,sel: IN STD_LOGIC; output:OUT STD_LOGIC);

3-4 给出1位全减器的VHDL 描述;最终实现8位全减器。要求:

1)首先设计1位半减器,然后用例化语句将它们连接起来,图4-20中h_suber 是半减器,diff 是 输出差(diff=x-y),s_out 是借位输出(s_out=1,x

图3-18 全减器结构图

--解(1.1):实现1位半减器h_suber(diff=x-y ;s_out=1,x

PORT( x,y: IN STD_LOGIC;

xin yin

a

b

diff_out

c

diff,s_out: OUT STD_LOGIC); END ENTITY h_suber;

ARCHITECTURE hs1 OF h_suber IS BEGIN

Diff <= x XOR (NOT y); s_out <= (NOT x) AND y;

END ARCHITECTURE hs1;

--解(1.2):采用例化实现图4-20的1位全减器

LIBRARY IEEE; --1位二进制全减器顺层设计描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_suber IS

PORT(xin,yin,sub_in: IN STD_LOGIC; sub_out,diff_out: OUT STD_LOGIC); END ENTITY f_suber;

ARCHITECTURE fs1 OF f_suber IS

COMPONENT h_suber --调用半减器声明语句 PORT(x, y: IN STD_LOGIC; diff,s_out: OUT STD_LOGIC); END COMPONENT;

SIGNAL a,b,c: STD_LOGIC; --定义1个信号作为内部的连接线。 BEGIN

u1: h_suber PORT MAP(x=>xin,y=>yin, diff=>a, s_out=>b); u2: h_suber PORT MAP(x=>a, y=>sub_in, diff=>diff_out,s_out=>c); sub_out <= c OR b;

END ARCHITECTURE fs1;

(2)以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是x-y-sun_in=difft)。

--解(2):采用例化方法,以1位全减器为基本硬件;实现串行借位的8位减法器(上图所示)。

diff0 diff1 sout diff7

串行借位的8位减法器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY suber_8 IS

PORT(x0,x1,x2,x3,x4,x5,x6,x7: IN STD_LOGIC;

y0,y1,y2,y3,y4,y5,y6,y7,sin: IN STD_LOGIC;

diff0,diff1,diff2,diff3: OUT STD_LOGIC;

diff4,diff5,diff6,diff7,sout: OUT STD_LOGIC);

END ENTITY suber_8;

ARCHITECTURE s8 OF suber_8 IS

COMPONENT f_suber --调用全减器声明语句

PORT(xin,yin,sub_in: IN STD_LOGIC;

sub_out,diff_out: OUT STD_LOGIC);

END COMPONENT;

SIGNAL a0,a1,a2,a3,a4,a5,a6: STD_LOGIC; --定义1个信号作为内部的连接线。

BEGIN

u0:f_suber PORT MAP(xin=>x0,yin=>y0,diff_out=>diff0,sub_in=>sin,sub_out=>a0);

u1:f_suber PORT MAP(xin=>x1,yin=>y1,diff_out=>diff1,sub_in=>a0,sub_out=>a1);

u2:f_suber PORT MAP(xin=>x2,yin=>y2,diff_out=>diff2,sub_in=>a1,sub_out=>a2);

u3:f_suber PORT MAP(xin=>x3,yin=>y3,diff_out=>diff3,sub_in=>a2,sub_out=>a3);

u4:f_suber PORT MAP(xin=>x4,yin=>y4,diff_out=>diff4,sub_in=>a3,sub_out=>a4);

u5:f_suber PORT MAP(xin=>x5,yin=>y5,diff_out=>diff5,sub_in=>a4,sub_out=>a5);

u6:f_suber PORT MAP(xin=>x6,yin=>y6,diff_out=>diff6,sub_in=>a5,sub_out=>a6);

u7:f_suber PORT MAP(xin=>x7,yin=>y7,diff_out=>diff7,sub_in=>a6,sub_out=>sout);

END ARCHITECTURE s8;

3-5 用VHDL设计一个3-8译码器,要求分别用(条件)赋值语句、case语句、if else语句或移位操作符来完成。比较这4种方式中,哪一种最节省逻辑资源。

解(1):条件赋值语句

--3-5 3到8译码器设计(条件赋值语句实现)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; --为使用类型转换函数,打开此程序包。

ENTITY decoder3to8 IS

port( DIN: IN STD_LOGIC_VECTOR(2 DOWNTO 0);

DOUT: OUT BIT_VECTOR(7 DOWNTO 0));

END decoder3to8;

ARCHITECTURE behave OF decoder3to8 IS

BEGIN

WITH CONV_INTEGER(DIN) SELECT

DOUT<="00000001" WHEN 0,

"00000010" WHEN 1,

"00000100" WHEN 2,

"00001000" WHEN 3,

"00010000" WHEN 4,

"00100000" WHEN 5,

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期末考试题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期末试卷及答案(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期末考试题大全

附带: 一.问答题 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技术期末试卷含答案资料

精品文档 一、单项选择题(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试题及答案,推荐文档

2013年电子系统设计考试试题--考试时间21号56节--公共409 一、填空题 1. Verilog的基本设计单元是模块。它是由两部分组成,一部分描述接口;另一部分描述逻辑功能,即定义输入是如何影响输出的。 2. 用assign描述的语句我们一般称之为组合逻辑,并且它们是属于并行语句,即于语句的书写次序无关。而用always描述的语句我们一般称之为组合逻辑或时序逻辑,并且它们是属于串行语句,即于语句的书写有关。 3.在case语句中至少要有一条default语句. 4. 已知x=4’b1001,y=4’0110,则x的4位补码为4’b1111,而y的4位的补码为4’b0110 . 5. 两个进程之间是并行语句。而在Always中的语句则是顺序语句。 二、简答题 1. 怎样理解在进程语句中,阻塞语句没有延迟这句话? 答:这是因为在进程语句中,有阻塞语句和非阻塞语句这两种,非阻塞语句是有延迟的,而阻塞语句也是有延迟的,这是因为因果系统都有延迟,只是阻塞语句的延迟比非阻塞语句的延迟小于若干个数量级,因此可视为没有延迟。 2.在进程中什么情况下综合为时序电路?什么情况下综合为组合电路? 答:在进程中,只有当敏感信号是边沿触发(即上升沿或下降沿)时,此时综合为时序电路;而在进程中只有当敏感信号是电平沿触发时,此时综合为组合电路。 3.为什么在Verilog语言中,其综合只支持次数确定的循环,而不支持次数不确定的循环? 答:这是因为,在Verilog语言中,它是为电路设计而设计的一门语言,它与高级语言不同,若循环的次数不确定,则会带来不确定的延迟,而这在电路中是不允许存在的,故综合只能支持次数确定的循环,即对于一个具体的芯片,其延迟只是一个定值。 4.Verilog HDL语言进行电路设计方法有哪几种? 答:①自上而下的设计方法(Top-down);②自下而上的设计方法(Bottom-Up) ③综合设计的方法。 5.specparam语句和parameter语句在参数说明方面不同之处是什么? 答:1.specparam语句只能在延时的格式说明块(specify)中出现,而parameter语句则不能再延时说明块内出现。 2.由specparam语句进行定义的参数只能是延时参数,而由parameter语句定义的参数可以是任何数据类型的参数。 3.由specparam语句定义的延时参数只能在延时说明块内使用,而由parameter语句定义的参数则可以在模块内(该parameter语句之后)的任何位置说明。 三、选择题: 1、下列标示符哪些是合法的(B) A、$time B、_date C、8sum D、mux# 2、如果线网类型变量说明后未赋值,起缺省值是(D) A、x B、1 C、0 D、z 3、现网中的值被解释为无符号数。在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是(A) A、4’b1101 B、4’b0011 C、4’bxx11 D、4’bzz11 4、reg[7:0] mema[255:0]正确的赋值是(A) A、mema[5]=3’ d0, B、8’ d0; C、1’ b1; D、mema[5][3:0]=4’ d1 5、在code模块中参数定义如下,请问top模块中d1模块delay1、delay2的值是( D) module code(x,y); module top; paramee delay1=1,delay2=1; …………….

《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.VHDL中变量与信号的主要区别 一、变量是一个局部量,只能在进程和子程序,无延时,立即发生,主要作用是在进程中作为临时的数据存储单元。 从VHDL语句功能和行为仿真来看,信号与变量的差异主要表现在接受信息的方式和信息保持与传递的区域大小上。 (1)如:信号可以设置传输延迟量,而变量则不能; (2)如:信号可作为模块间的信息载体,如在结构体中个进程间传递信息;变量只能作为局部的信息载体,如只能在所定义的进程中有效。 (3) 变量的设置有时只是一种过渡,最后的信息传输和界面间的通信都是靠信号来完成综合后的信号将对应更多的硬件结构。 2.ASIC、FPGA、EDA、ISP的含义 ASIC:专用集成电路FPGA:可编程逻辑器件EDA:电子设计自动化ISP:因特网服务提供商 3.常用的库的名称(IEEE STD WORK VITAL) 5.进程语句的特点 (1)进程与进程,或其它并行语句之间的并行性,体现硬件电路并行运行特征。 (2)进程内部的顺序语句具有顺序与并行双重性。顺序行为体现硬件的逻辑功能,并行行为体现硬件特征。 进程内部使用顺序语句,对一个系统进行算法、行为和逻辑功能进行描述,可以具有高抽象性的特点,可以与具体的硬件没有关联。 这种顺序仅是指语句执行上的顺序(针对于HDL的行为仿真),并不意味着PROCESS语句在综合后所对应的硬件逻辑行为也同样具有顺序性。

VHDL程序无法进行诸如软件语言那样的“单步”调试,因为整个程序是一个整体,不能割裂每一句,只能通过仿真波形来了解程序的问题。 (3)进程有启动与挂起两种状态。 (4)进程与进程,或其它并行语句之间通过信号交流。 (5)时序电路必须由进程中的顺序语句描述,而此顺序语句必须由不完整的条件语句构成。推荐在一个进程中只描述针对同一时钟的同步时序逻辑,而异步时序逻辑或多时钟逻辑必须由多个进程来表达。 6.实体定义时端口方向OUT与BUFFER有何不同? OUT:输出端口。定义的通道为单向输出(写)模式,即通过此端口只能将实体内的数据流向外部。 BUFFER:缓冲端口。其功能与INOUT类似,区别在于当需要输入数据时,只允许内部回读输出的信号,即允许反馈。 如:在计数器的设计中,将计数器输出的计数信号回读,作为下一次计数的初值。 与OUT模式相比,BUFFER回读信号不是由外部输入的,而是由内部产生、向外输出信号。 即OUT结构体内部不能再使用,BUFFER结构体内部可再使用。

(完整版)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试题库

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

相关主题
文本预览
相关文档 最新文档