可编程序控制器试题与答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

思考题:进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?
进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?
•进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号间以“,”号分隔。

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

VHDL复习题
1.什么是VHDL?简述VHDL的发展史。

答: VHDL是美国国防部为电子项目设计承包商提供的,签定合同使用的,电子系统硬件描述语言。

1983年成立VHDL语言开发组,1987年推广实施,1993年扩充改版。

VHDL是IEEE 标准语言,广泛用于数字集成电路逻辑设计。

2.简述VHDL设计实体的结构。

答:实体由实体名、类型表、端口表、实体说明部分和实体语句部分组成。

根据IEEE标准,实体组织的一般格式为:
ENTITY 实体名 IS
[GENERIC(类型表);] --可选项
[PORT(端口表);] --必需项
实体说明部分; --可选项
[BEGIN
实体语句部分;]
END [ENTITY] [实体名];
3.分别用结构体的3种描述法设计一个4位计数器。

答:用行为描述方法设计一个4位计数器如下,其它描述方法,读者可自行设计。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;
ENTITY countA IS
PORT (clk,clr,en:IN STD_LOGIC;
Qa,qb,qc,qd:OUT STD_LOGIC);
END countA;
ARCHITECTURE example OF countA IS
SIGNAL count_4:STD_LOGIC_vector (3 DOWNTO 0);
BEGIN
Qa <= count_4(0);
Qb <= count_4(1);
Qc <= count_4(2);
Qd <= count_4(3);
PROCESS (clk,clr)
BEGIN
IF (clr = '1' ) THEN
Count_4 <= "0000";
ELSIF (clk'EVENT AND clk = '1' ) THEN
IF (en = '1' ) THEN
IF (count_4 = "1111") THEN
count_4 <= "0000";
ELSE
count_4 <= count_4+ '1';
END IF;
END IF;
END IF;
END PROCESS;
END example;
1.什么叫对象?对象有哪几个类型?
答:在VHDL语言中,凡是可以赋于一个值的客体叫对象(object)。

VHDL对象包含有专门数据类型,主要有4个基本类型:常量(CONSTANT)、信号(SIGNAL)、变量(VARIABLE)和文件(FILES)。

2.VHDL语言定义的标准类型有哪些?
答 VHDL语言标准所定义的标准数据类型
(1) 整数类型(INTEGER TYPE)
(2) 实数类型或浮点类型(REAL TYPE & FLOATING TYPE)
(3) 位类型(BIT TYPE)
(4) 位矢量类型(BIT_VECTOR TYPE)
(5) 布尔类型(BOOLEAN TYPE)
(6) 字符类型(CHARACTER TYPE)
(7) 时间类型或物理类型(TIME TYPE & PHYSICAL TYPE)
(8) 错误类型(NOTE,WARNIING,ERROR,FAILURE TYPE)
(9) 自然数、整数类型(NATURAL TYPE)
(10) 字符串类型(TRING TYPE)
3.简述VHDL语言操作符的优先级。

答:在表2.1中,取反和取绝对值优先级较高,与、或逻辑运算的优先级低于算术运算的优先级。

4.哪3种方法可用来进行类型转换?
答:进行不同类型的数据变换,有3种方法:类型标记法、函数转换法和常数转换法。

1.什么叫进程?简述进程的工作方式。

答:进程(process)是由外部信号触发执行的一段程序。

进程语句是并行处理语句,即各个进程是同时处理的,在结构体中多个Process语句是同时并发运行的。

在进程内部是顺序执行的。

Process语句在VHDL程序中,是描述硬件并行工作行为的最常用、最基本的语句。

进程Process语句中一般带有几个信号量例表,称为该进程的敏感量表。

这些信号无论哪一个发生变化都将启动Process进程。

一旦启动,进程Process中的程序将从上到下顺序执行一遍,由新变化的量引导进程产生变化结果输出。

当进程的最后一个语句执行完成后,就返回到进程开始处,等待敏感量的新变化,引发进程的再一次执行。

周而复始,循环往复,以至无穷。

这就是进程的执行过程。

2.什么叫模块?区分模块与进程。

答:模块(Block)语句是结构体中积木化设计语言,适用于复杂项目设计。

Block块是一个独立的子结构,可以包含PORT语句、GENERIC语句,允许设计者通过这两个语句将Block块内的信号变化传递给Block块的外部信号。

同样,也可以将Block块的外部信号变化传递给Block块的内部信号。

对VHDL语言中的Block模块进行仿真时,Block模块中所描述的各个语句是可以并发执行的,和模块中的语句书写顺序无关。

进程语句是一段程序,这段程序是顺序执行的。

3.用结构描述法和GENERATE语句设计一个8位移位寄存器。

答:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY shift_register IS
PORT(a,clk: IN STD_LOGIC;
b: OUT STD_LOGIC);
END ENTITY shift_regester;
ARCHITECTURE eight_BIT_shift_register OF shift_register IS
COMPONENT dff -- dff元件调用
PORT(a,Clk: IN STD_LOGIC;
b: OUT STD_LOGIC);
END COMPONENT;
SIGNAL X: STD_LOGIC_VECTOR(0 TO 4);
BEGIN
X(0) <= a;
dff1:dff PORT MAP (X(0),clk,Z(1));
dff2:dff PORT MAP (X(1),clk,Z(2));
dff3:dff PORT MAP (X(2),clk,Z(3));
dff4:dff PORT MAP (X(3),CLK,Z(4));
dff5:dff PORT MAP (X(4),CLK,Z(5));
dff6:dff PORT MAP (X(5),CLK,Z(6));
dff7:dff PORT MAP (X(6),CLK,Z(7));
dff4:dff PORT MAP (X(7),CLK,Z(8));
B<=X(8);
END ARCHITECTURE eight_bit_shift_register;
1.设计一个加法器,
答:半加器及全加器VHDL程序设计(1)。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY full_adder IS
PORT (a,b,cin:IN STD_LOGIC;
Sum,co:OUT STD_LOGIC);
END full_adder;
ARCHITECTURE full1 OF full_adder IS
COMPONENT half_adder
PORT (a,b:IN STD_LOGIC;
S,co:OUT STD_LOGIC);
END COMPONENT;
SIGNAL u0_co,u0_s,u1_co:STD_LOGIC;
BEGIN
U0:half_adder PORT MAP (a,b,u0_s,u0_co);
U1:half_adder PORT MAP (u0_s,cin,sum,u1_co);
Co <= u0_co OR u1_co;
END full1;
半加器及全加器VHDL程序设计(2)。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY half_adder IS
PORT (a,b:IN STD_LOGIC;
S,co:OUT STD_LOGIC);
END half_adder;
ARCHITECTURE half1 OF half_adder IS
SIGNAL c,d:STD_LOGIC;
BEGIN
C <= a OR b;
D <= a NAND b;
Co <= NOT d;
S <= c AND d;
END half1;
2.简述层次化设计的过程。

答:层次化设计是指对于一个大型设计任务,将目标层层分解,在各个层次上分别设计的方法。

有些设计,在一些模块的基础上,通过搭建积木的方法进行设计。

有人称,在整个设计任务上进行行为描述的设计方法,称为高层次设计,而从事某一模块、某一元件行为设计称为底层设计方法。

3.什么是库,程序包,子程序,过程调用,函数调用?
答:库(libraries)和程序包(package)用来描述和保存元件、类型说明、函数、模块等,以便在其他设计中可随时引用它们。

库(libraries)是用来存储和放置可编译的设计单元的地方,通过其目录可查询、调用。

设计库中的设计单元(实体说明、结构体、配置说明、程序包说明和程序包体)可以用作其他VHDL描述的资源。

函数和过程统称为子程序。

子程序由过程和函数组成。

在子程序调用过程中,过程能返回多个变量,函数能返回一个变量。

若子程序调用是一个过程,就称为过程调用;若子程序调用是一个函数,则称为函数调用。

过程调用和函数调用都是子程序调用。

函数的参数都是输入参数。

过程的参数有输入、输出和双向参数。

函数有顺序函数、并行函数。

过程有顺序过程、并行过程。

1.CLK信号怎样用VHDL语言描述?
答:时钟信号的上升沿的描述:
if clk‘event and clk = ‘1’ then …;
时钟信号的下降沿的描述:
if clk ‘event and clk = ‘1’ then …;
2.异步复位怎样用VHDL语言描述?
答:当复位信号低电平有效时,VHDL的描述为:
if reset = ‘0’ then…;
当复位信号高电平有效时, VHDL的描述为:
if reset =‘1’ then …;
3.设计一个8位循环移位寄存器。

答: 8位循环计寄存器的VHDL参考程序设计如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY circleshift8 IS
PORT (seldata:in std_logic_vector(2 downto 0);
clr,clk: IN STD_LOGIC;
sel: OUT STD_LOGIC_vector(7 downto 0));
END circleshift8;
ARCHITECTURE sample OF circleshift8 IS
begin
process(clk,clr)
Begin
if (clr='1')then sel<="00000000";
elsif clk'event and clk='1' then
case seldata is
when "001"=> sel<="00000001";
when "010"=> sel<="00000010";
when "011"=> sel<="00000100";
when "100"=> sel<="00001000";
when "101"=> sel<="00010000";
when "110"=> sel<="00100000";
when "111"=> sel<="01000000";
when others => sel<="00000000";
end case;
end if;
end process;
end sample;
4. 设计一个六十进制计数器。

答: 60进制计数器的VHDL参考程序设计如下:
Library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
--******************************************************* Entity counter60 is
port(
cp:in std_logic;
bin:out std_logic_vector(6 downto 0);
s:in std_logic;
clr:in std_logic;
ec:in std_logic;
cy60:out std_logic
);
End counter60;
--******************************************************* Architecture b of counter60 is
signal q:std_logic_vector(6 downto 0);
signal rst,dly:std_logic;
begin
process(rst,cp)
begin
if rst='1' then q<="0000000"; -- cy(60)<='0'; elsif cp'event and cp='1' then dly<=q(5);
if ec='1'then
if q=59 then q<="0000000";
else
q<=q+1;
end if;
else
q<=q;
end if;
end if;
end process;
cy60<= not q(5) and dly;
rst<= clr;
bin<=q when s='1' else
"1111111";
End b;
5. 设计一个八位编码器。

答:八位编码器的VHDL参考程序设计如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY priotyencoder IS
PORT (d : IN Std_Logic_Vector (7 Downto 0);
E1: IN Std_Logic;
GS,E0: OUT BIT STD_LOGIC;
Q : OUT Std_Logic_Vector(2 Downto 0);END priotyencoder;
ARCHITECTURE encoder OF prioty encoder IS BEGIN
P1: PROCESS ( d )
BEGIN
IF ( d(0) = 0 AND E1 = 0 ) THEN
Y <= 111;
GS <= 0 ;
E0 <= 1 ;
ELSIF (d(1) = 0 AND E1 = 0 ) THEN
Q <= 110;
GS <= 0 ;
E0 <= 1 ;
ELSIF (d(2) = 0 AND E1 = 0 ) THEN
Q <= 101 ;
GS <= 0 ;
E0 <= 1 ;
ELSIF (d(3) = 0 AND E1= 0 ) THEN
Q <= 100 ;
GS <= 0 ;
E0 <= 1 ;
ELSIF (d(4) = 0 AND E1= 0 ) THEN
Q <= 011 ;
GS <= 0 ;
E0 <= 1 ;
ELSIF (d(5) = 0 AND E1= 0 ) THEN
Q <= 010 ;
GS <= 0 ;
E0 <= 1 ;
ELSIF (d(6) = 0 AND E1 = 0 ) THEN
Q <= 001 ;
GS<= 0 ;
E0<= 1 ;
ELSIF (d(7) = 0 AND E1 = 0 ) THEN
Q <= 000 ;
GS <= 0 ;
E0 <= 1 ;
ELSIF (E1 = 1 ) THEN
Q <= 111 ;
GS <= 1 ;
E0 <= 1 ;
ELSIF (d = 1111 1111 AND E1 = 0 ) THEN Q <= 111 ;
GS <= 1 ;
E0 <= 0 ;
END IF;
END PROCESS P1;
END encoder;
6. 设计一个三八译码器。

答:三八译码器的VHDL参考程序设计如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY decoder3_8 IS
PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;
Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END decoder3_8;
ARCHITECTURE rtl OF decoder3_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;
END rtl;
五、改正以下程序中的错误,简要说明原因,并指出可综合成什么电路。

1.library ieee;
use ieee.std_logic_1164.all;
entity d_flip_flop is
port(d, clk: in std_logic;
q: out std_logic);
end d_flip_flop;
architecture rtl of d_flip_flop is
begin
if clk’event and clk=’1’ then
q<=d;
end if;
end rtl;
2.library ieee;
use ieee.std_logic_1164.all;
entity d_latch is
port(d, ena: in std_logic;
q: out std_logic);
end d_latch;
architecture rtl of d_latch is
begin
if ena = ’1’ then
q<=d;
end if;
end rtl;
3.library ieee;
use ieee.std_logic_1164.all;
entity test is
port(d, clk: in std_logic;
q: out std_logic);
end test;
architecture rtl of test is
begin
process(clk)
begin
wait until clk’event and clk=’1’ q<=d;
end process;
end rtl;
4.library ieee;
use ieee.std_logic_1164.all;
entity test is
port(d1, d2: in std_logic;
sel: in std_logic;
q: out std_logic);
end test;
architecture rtl of test is
begin
process(d1, d2, sel)
begin
case sel is
when ‘0’ => q <= d1;
when ‘1’ => q <= d2;
end case;
end process;
end rtl;
5.library ieee;
use ieee.std_logic_1164.all;
entity test is
port(d1, d2: in std_logic;
sel: in std_logic;
q: out std_logic);
end test;
architecture rtl of test is
begin
process(d1, d2, sel)
begin
q<=d1 when sel = ’0’ else
d2;
end process;
end rtl;
6.library ieee;
use ieee.std_logic_1164.all;
entity test is
port(clk: in std_logic;
count: buffer std_logic_vector(3 downto 0));
end test;
architecture rtl of test is
begin
process(clk)
begin
if clk’event and clk=’1’ then
count<=count+1;
end if;
end process;
end rtl;
六、用VHDL设计电路:
1.设计一个2输入与门
2.设计一个四选一选择器。

3.设计一个3-8译码器。

4.设计一个8位的串入串出移位寄存器。

5.设计一个具有置数功能、使能端、清除端的13进制计数器
四.判断改错题(3分×6题)(评分标准:给出正确答案1分/题;答案基本正确0.5分/题。

)1.已知A和Q均为BIT类型的信号,请判断下面的程序片断:
ARCHITECTURE test OF test IS
BEGIN
CASE A IS
WHEN '0' => Q <= '1' ;
WHEN '1' => Q <= '0' ;
END CASE ;
END test ;
【参考答案】:
CASE语句应该存在于进程PROCESS内。

2.已知start为STD_LOGIC类型的信号,sum是INTEGER类型的信号,请判断下面的程序片断:
PROCESS (start)
BEGIN
FOR i IN 1 TO 9 LOOP
sum := sum + i ;
END LOOP ;
END PROCESS ;
【参考答案】: sum是信号,其赋值符号应该由“:=”改为“<=”。

3.已知Q为STD_LOGIC类型的输出端口,请判断下面的程序片断:
ARCHITECTURE test OF test IS
BEGIN
SIGNAL B :STD_LOGIC ;
Q <= B ;
END test ;
【参考答案】:
信号SIGNAL的申明语句应该放在BEGIN语句之前。

4.已知A和B均为STD_LOGIC类型的信号,请判断下面的语句:
A <= '0' ;
B <= 'x' ;
【参考答案】:
不定态符号应该由小写的‘x’改为大写的‘X’。

5.已知A为INTEGER类型的信号,B为STD_LOGIC类型的信号,请判断下面的程序片断:ARCHITECTURE test OF test IS
BEGIN
B <= A ;
END test ;
【参考答案】:
A和B的数据类型不一致,不能相互赋值。

6.已知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”语句。

.简述Top-Down设计方法及其基本步骤。

【参考答案】:所谓Top-Down的设计过程是指从系统硬件的高层次抽象描述向最底层物理描述的一系列转换过程。

具体讲这一过程由功能级、行为级描述开始;寄存器传输(RTL)级描述为第一个中间结果;再将RTL级描述由逻辑综合得到网表(Net-list)或电路图;由网表即可自动生成现场可编程门阵列(FPGA)/复杂可编程逻辑器件(CPLD)或专用集成电路(ASIC),从而得到电路与系统的物理实现。

3.请从申明格式、赋值符号、赋值生效时间、作用范围等方面对信号和变量进行比较分析。

【参考答案】:①申明时关键字不一样,变量为:VARIABLE;信号为:SIGNAL。

但申明时赋初值均用“:=”符号。

②赋值符号不同:信号赋值用“﹤=”;变量赋值用“:=”。

③赋值生效时间:信号赋值△延时后生效;变量赋值立即生效。

④声明引用范围:信号在构造体内(进程外)申明,整个构造体内有效;变量主要
在进程内申明,只在进程内有效。

2. VHDL程序主要有三种描述方式:行为描述方式、RTL描述方式、结构描述方式。

3. VHDL程序中数值的载体称为对象。

VHDL中有四种对象,分别是:常量(CONSTANT)、变量(VARIABLE)、信号(SIGNAL)、文件(FILE)。

20、在VHDL中,(D )的数据传输是立即发生的,不存在任何延时的行为。

A、信号;
B、常量;
C、数据;
D、变量
21、在VHDL中,(A )的数据传输是不是立即发生的,目标信号的赋值需要一定的延时时间。

A、信号;
B、常量;
C、数据;
D、变量
22、在VHDL中,为目标变量赋值的符号是(C )。

A、=:;
B、= ;
C、:= ;
D、<=
23、在VHDL中,为目标信号赋值的符号是(D )。

A、=:;
B、= ;
C、:= ;
D、<=
24、在VHDL中,定义信号名时,可以用( C)符号为信号赋初值。

A、=:;
B、= ;
C、:= ;
D、<=
设计一数据选择器MUX,其系统模块图和功能表如下图所示。

试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。

(a) 用if语句。

(b) 用case 语句。

(c) 用when else 语句。

Library ieee;
Use ieee.std_logic_1164.all;
Entity mymux is
Port ( sel : in
std_logic_vector; -- 选择信号输入
Ain, Bin : in
std_logic_vector; -- 数据输入
Cout : out std_logic_vector(1 downto 0) ); -- 数据输出
End mymux;
《EDA技术与项目训练》选择题
1. 一个项目的输入输出端口是定义在 A 。

A. 实体中
B. 结构体中
C. 任何位置
D. 进程体
2. 描述项目具有逻辑功能的是 B 。

A. 实体
B. 结构体
C. 配置
D. 进程
3. 关键字ARCHITECTURE定义的是 A 。

A. 结构体
B. 进程
C. 实体
D. 配置
4. MAXPLUSII中编译VHDL源程序时要求 C 。

A.文件名和实体可不同名
B.文件名和实体名无关
C. 文件名和实体名要相同
D. 不确定
5. 1987标准的VHDL语言对大小写是 D 。

A. 敏感的
B. 只能用小写
C. 只能用大写
D. 不敏感
6. 关于1987标准的VHDL语言中,标识符描述正确的是 A 。

A. 必须以英文字母开头
B.可以使用汉字开头
C.可以使用数字开头
D.任何字符都可以
7. 关于1987标准的VHDL语言中,标识符描述正确的是 B 。

A. 下划线可以连用
B. 下划线不能连用
C. 不能使用下划线
D. 可以使用任何字符
8. 符合1987VHDL标准的标识符是 A 。

A. A_2
B. A+2
C. 2A
D. 22
9. 符合1987VHDL标准的标识符是 A 。

A. a_2_3
B. a_____2
C. 2_2_a
D. 2a
10. 不符合1987VHDL标准的标识符是 C 。

A. a_1_in
B. a_in_2
C. 2_a
D. asd_1
11. 不符合1987VHDL标准的标识符是 D 。

A. a2b2
B. a1b1
C. ad12
D. %50
12. VHDL语言中变量定义的位置是 D 。

A. 实体中中任何位置
B. 实体中特定位置
C. 结构体中任何位置
D. 结构体中特定位置
13. VHDL语言中信号定义的位置是 D 。

A. 实体中任何位置
B. 实体中特定位置
C. 结构体中任何位置
D. 结构体中特定位置
14. 变量是局部量可以写在 B 。

A. 实体中
B. 进程中
C. 线粒体
D. 种子体中
15. 变量和信号的描述正确的是 A 。

A. 变量赋值号是:=
B. 信号赋值号是:=
C. 变量赋值号是<=
D. 二者没有区别
16. 变量和信号的描述正确的是 B 。

A. 变量可以带出进程
B. 信号可以带出进程
C. 信号不能带出进程
D. 二者没有区别
17. 关于VHDL数据类型,正确的是 D 。

A. 数据类型不同不能进行运算
B. 数据类型相同才能进行运算
C. 数据类型相同或相符就可以运算
D. 运算与数据类型无关
18. 下面数据中属于实数的是 A 。

A. 4.2
B. 3
C. ‘1’
D. “11011”
19. 下面数据中属于位矢量的是 D 。

A. 4.2
B. 3
C. ‘1’
D. “11011”
20. 关于VHDL数据类型,正确的是。

A. 用户不能定义子类型
B. 用户可以定义子类型
C. 用户可以定义任何类型的数据
D. 前面三个答案都是错误的
21. 可以不必声明而直接引用的数据类型是 C 。

A. STD_LOGIC
B. STD_LOGIC_VECTOR
C. BIT
D. 前面三个答案都是错误的
22. STD_LOGIG_1164中定义的高阻是字符 D 。

A. X
B. x
C. z
D. Z
23. STD_LOGIG_1164中字符H定义的是 A 。

A. 弱信号1
B. 弱信号0
C. 没有这个定义
D. 初始值
24. 使用STD_LOGIG_1164使用的数据类型时 B 。

A.可以直接调用
B.必须在库和包集合中声明
C.必须在实体中声明
D. 必须在结构体中声

25. 关于转化函数正确的说法是。

A. 任何数据类型都可以通过转化函数相互转化
B. 只有特定类型的数据类型可以转化
C. 任何数据类型都不能转化
D. 前面说法都是错误的
26. VHDL运算符优先级的说法正确的是 C 。

A. 逻辑运算的优先级最高
B. 关系运算的优先级最高
C. 逻辑运算的优先级最低
D. 关系运算的优先级最低
27. VHDL运算符优先级的说法正确的是 A 。

A. NOT的优先级最高
B. AND和NOT属于同一个优先级
C. NOT的优先级最低
D. 前面的说法都是错误的
28. VHDL运算符优先级的说法正确的是 D 。

A. 括号不能改变优先级
B. 不能使用括号
C. 括号的优先级最低
D. 括号可以改变优
先级
29. 如果a=1,b=0,则逻辑表达式(a AND b) OR( NOT b AND a)的值是 B 。

A. 0
B. 1
C. 2
D. 不确定
30. 关于关系运算符的说法正确的是。

A. 不能进行关系运算
B. 关系运算和数据类型无关
C. 关系运算数据类型要相同
D. 前面的说法都错误
31. 转换函数TO_BITVECTOR(A)的功能是。

A. 将STDLOGIC_VECTOR转换为BIT_VECTOR
B. 将REAL转换为BIT_VECTOR
C. 将TIME转换为BIT_VECTOR
D. 前面的说法都错误
32. VHDL中顺序语句放置位置说法正确的是。

A.可以放在进程语句中
B. 可以放在子程序中
C. 不能放在任意位置
D. 前面的说法都
正确
33. 不属于顺序语句的是 B 。

A. IF语句
B. LOOP语句
C. PROCESS语句
D. CASE语句
34. 正确给变量X赋值的语句是 B 。

A. X<=A+B;
B. X:=A+b;
C. X=A+B;
D. 前面的都不正确
35. EDA的中文含义是 A 。

A. 电子设计自动化
B. 计算机辅助计算
C. 计算机辅助教学
D. 计算机辅助制造
36. 可编程逻辑器件的英文简称是。

A. FPGA B. PLA C. PAL D. PLD
37. 现场可编程门阵列的英文简称是。

A. FPGA B. PLA C. PAL D. PLD
38. 基于下面技术的PLD器件中允许编程次数最多的是。

A. FLASH
B. EEROM
C. SRAM
D. PROM
39. 在EDA中,ISP的中文含义是。

A. 网络供应商
B. 在系统编程
C. 没有特定意义
D. 使用编程器烧写PLD芯片
40. 在EDA中,IP的中文含义是。

A. 网络供应商
B. 在系统编程
C. 没有特定意义
D. 知识产权核
41. EPF10K20TC144-4具有多少个管脚 A 。

A. 144个
B. 84个
C. 15个
D. 不确定
42. EPF10K20TC144-X器件,如果X的值越小表示。

A. 器件的工作频率越小
B. 器件的管脚越少
C. 器件的延时越小
D. 器件的功耗越小
43. 如果a=1,b=1,则逻辑表达式(a XOR b) OR( NOT b AND a)的值是 A 。

A. 0
B. 1
C. 2
D. 不确定
44. 执行下列语句后Q的值等于 B 。

……
SIGNAL E: STD_LOGIC_VECTOR (2 TO 5);
SIGNAL Q: STD_LOGIC_VECTOR (9 DOWNTO 2);
……
E<=(2=>’1’, 4=>’0’, OTHERS=>’1’);
Q<=(2=>E (2), 4=>E (3), 5=>’1’, 7=>E (5), OTHERS=>E (4));
……
A.“11011011” B. “00101101” C. “11011001” D. “00101100”45. VHDL文本编辑中编译时出现如下的报错信息
Error: VHDL syntax error: signal declaration must have ‘;’,but found begin instead. 其错误原因是 A 。

A. 信号声明缺少分号。

B. 错将设计文件存入了根目录,并将其设定成工程。

C. 设计文件的文件名与实体名不一致。

D. 程序中缺少关键词。

46. VHDL文本编辑中编译时出现如下的报错信息
Error: VHDL syntax error: choice value length must match selector expression value length 其错误原因是 A 。

A. 表达式宽度不匹配。

B. 错将设计文件存入了根目录,并将其设定成工程。

C. 设计文件的文件名与实体名不一致。

D. 程序中缺少关键词。

47. MAX+PLUSII的设计文件不能直接保存在 B 。

A.硬盘 B. 根目录 C. 文件夹 D. 工程目录
48. MAXPLUSII是哪个公司的软件 A 。

A. ALTERA
B. ATMEL
C. LATTICE
D. XILINX
49. MAXPLUSII不支持的输入方式是 D 。

A. 文本输入
B. 原理图输入
C. 波形输入
D. 矢量输入
50. MAXPLUSII中原理图的后缀是 B 。

A. DOC
B. GDF
C. BMP
D. JIF
51. 在一个VHDL设计中Idata是一个信号,数据类型为std_logic_vector,试指出下面那个赋值语句是错误的。

D 。

A.idata <= “00001111”;
B.idata <= b”0000_1111”;
C.idata <= X”AB”
D. idata <= B”21”;
52. 在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
53. 下面对利用原理图输入设计方法进行数字电路系统设计的描述中,那一种说法是不正确的。

A.原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计;
B.原理图输入设计方法一般是一种自底向上的设计方法;
C.原理图输入设计方法无法对电路进行功能描述;
D.原理图输入设计方法也可进行层次化设计。

54. 在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的。

C 。

A.idata := 32;
B.idata <= 16#A0#;
C.idata <= 16#7#E1;
D.idata := B#1010#;
55. 下列那个流程是正确的基于EDA软件的FPGA / CPLD设计流程: A 。

A.原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试
B.原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试;
C.原理图/HDL文本输入→功能仿真→综合→编程下载→→适配硬件测试;
D.原理图/HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试
56. 在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,正确的是。

A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。

B.敏感信号参数表中,应列出进程中使用的所有输入信号;
C.进程由说明部分、结构体部分、和敏感信号参数表三部分组成;
D.当前进程中声明的信号也可用于其他进程。

57. 对于信号和变量的说法,哪一个是不正确的: A 。

A.信号用于作为进程中局部数据存储单元
B.变量的赋值是立即完成的
C.信号在整个结构体内的任何地方都能适用
D.变量和信号的赋值符号不一样
58. VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:。

A.IEEE库
B.VITAL库
C.STD库
D.WORK工作库
59. 下列语句中,不属于并行语句的是: B 。

A.进程语句
B.CASE语句
C.元件例化语句
D.WHEN…ELSE…语句
60. 下面哪一条命令是MAX+PLUSII在时序仿真时执行加载节点的命令? C 。

A. file—>set project to current file
B. assign—>pin/location chip
C. node—>enter node from SNF
D. file—>create default symbol
61. 在EDA工具中,能将硬件描述语言转换为硬件电路的重要工具软件称为 D 。

A.仿真器
B.综合器
C.适配器
D.下载器
62. VHDL文本编辑中编译时出现如下的报错信息
Error: Can’t open VHDL“WORK”其错误原因是 B 。

A. 错将设计文件的后缀写成.tdf,而非.vhd 。

B. 错将设计文件存入了根目录,并将其设定成工程。

C. 设计文件的文件名与实体名不一致。

D. 程序中缺少关键词。

63. 在VHDL的CASE语句中,条件句中的“=>”不是操作符号,它只相当与 B 作用。

A. IF
B. THEN
C. AND
D. OR
64. 下面哪一条命令是MAXPLUSII软件中引脚锁定的命令 C 。

A. file—>set project to current file B.node—>enter node from SNF
C. assign—>pin/location chip D. file—>create default symbol]
65. 下列关于信号的说法不正确的是 C 。

A . 信号相当于器件内部的一个数据暂存节点。

B. 信号的端口模式不必定义,它的数据既可以流进,也可以流出。

C. 在同一进程中,对一个信号多次赋值,其结果只有第一次赋值起作用。

D. 信号在整个结构体内的任何地方都能适用。

66. 下面哪一个可以用作VHDL中的合法的实体名 D 。

A. OR
B. VARIABLE
C. SIGNAL
D. OUT1
67. VHDL文本编辑中编译时出现如下的报错信息
Error:Line1,File e:\muxfile\mux21.tdf: TDF syntax error…其错误原因是
A 。

A. 错将设计文件的后缀写成.tdf 而非.vhd 。

B. 错将设计文件存入了根目录,并将其设定成工程。

C. 设计文件的文件名与实体名不一致。

D. 程序中缺少关键词。

68. 下列关于变量的说法正确的是 A 。

A. 变量是一个局部量,它只能在进程和子程序中使用。

B. 变量的赋值不是立即发生的,它需要有一个δ延时。

C. 在进程的敏感信号表中,既可以使用信号,也可以使用变量。

D. 变量赋值的一般表达式为:目标变量名<= 表达式。

69. 下列关于CASE语句的说法不正确的是 B 。

A. 条件句中的选择值或标识符所代表的值必须在表达式的取值范围内。

B. CASE语句中必须要有WHEN OTHERS=>NULL;语句。

C. CASE语句中的选择值只能出现一次,且不允许有相同的选择值的条件语句出现。

D. CASE语句执行必须选中,且只能选中所列条件语句中的一条。

70. VHDL中,为目标变量赋值符号是 D 。

A. =:
B. =
C. <=
D.:=
71. 在VHDL中,可以用语句 D 表示检测clock下降沿。

A. clock’event
B. clock’event and clock=’1’
C. clock=’0’
D. clock’event and clock=’0’
72.在VHDL的FOR_LOOP语句中的循环变量是一个临时变量,属于LOOP语句的局部量, B 事先声明。

A. 必须 B. 不必 C. 其类型要 D.其属性要
73. 在VHDL中,语句”FOR I IN 0 TO 7 LOOP ”定义循环次数为 A 次。

A. 8
B. 7
C. 0
D.1
74. 在VHDL中,PROCESS结构内部是由 B 语句组成的。

A. 顺序
B. 顺序和并行
C. 并行
D.任何
75. 执行MAX+PLUSII的 C 命令,可以对设计的电路进行仿真。

A.Creat Default Symbol
piler
C.Simulator
D.Programmer
76. 在VHDL中,PROCESS本身是 C 语句。

A. 顺序
B.顺序和并行
C.并行
D.任何
77. 下面哪一个是VHDL中的波形编辑文件的后缀名 B 。

A. gdf
B. scf
C. sys
D. tdf
78. 在元件例化语句中,用 D 符号实现名称映射,将例化元件端口声明语句中的信号与
PORT MAP()中的信号名关联起来。

A. =
B. :=
C. <=
D.=>
79.在VHDL中,含WAIT语句的进程PROCESS的括弧中 B再加敏感信号,否则则是非
法的。

A. 可以
B.不能
C. 必须
D. 有时可以
80.在MAX+PLUSII集成环境下为图形文件产生一个元件符号的主要作用是 D 。

A. 综合
B. 编译
C. 仿真
D.被高层次电路设计
调用
81.在MAX+PLUSII工具软件中,完成网表提取、数据库建立、逻辑综合、逻辑分割、适配、
延时网表提取和编程文件汇编等操作,并检查设计文件是否正确的过程称为。

A. 编辑
B. 编译
C. 综合
D. 编程
82. VHDL文本编辑中编译时出现如下的报错信息
Error: VHDL Design File “mux21” must contain an entity of the same name 其错误原因是 C 。

A. 错将设计文件的后缀写成.tdf 而非.vhd 。

B. 错将设计文件存入了根目录,并将其设定成工程。

C. 设计文件的文件名与实体名不一致。

D. 程序中缺少关键词。

83. 执行下列语句后Q的值等于 D 。

……
SIGNAL E: STD_LOGIC_VECTOR (2 TO 5);
SIGNAL Q: STD_LOGIC_VECTOR (9 DOWNTO 2);
……
E<=(2=>’0’, 4=>’0’, OTHERS=>’1’);
Q<=(2=>E (2), 4=>E (3), 5=>’1’, 7=>E (5), OTHERS=>E (4));
……
A.“11011011” B. “00110100” C. “11011001” D.
“00101100”
84. 综合是EDA设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中,是错误的。

A. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的
网表文件; B. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;
C. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并
且这种映射关系不是唯一的。

D. 综合是纯软件的转换过程,与器件硬件结构无关;
85. 关于VHDL中的数字,请找出以下数字中数值最小的一个:
A. 2#1111_1110#
B. 8#276#
C. 10#170#
D. 16#E#E1
86. 以下对于进程PROCESS的说法,正确的是: C 。

A. 进程之间可以通过变量进行通信
B. 进程内部由一组并行语句来描述进程功能
C. 进程语句本身是并行语句
D.一个进程可以同时描述多个时钟信号的同步时序逻辑
87. 进程中的信号赋值语句,其信号更新是。

A.按顺序完成;
B.比变量更快完成;
C.在进程的最后完成;
D.以上都不对。

88.关于VHDL中的数字,请找出以下数字中最大的一个:。

A.2#1111_1110# B.8#276# C. 0#170# D.6#E#E1
89.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述。

A.器件外部特性; B.器件的内部功能;C.器件的综合约束;
C.器件外部特性与内部功能。

90.下列标识符中, B 是不合法的标识符。

A. State0
B. 9moon
C. Not_Ack_0
D. signal
91.在VHDL中,IF语句中至少应有1个条件句,条件句必须由表达式构成。

A. BIT
B. STD_LOGIC
C. BOOLEAN
D. INTEGER
92. 在VHDL中 D 不能将信息带出对它定义的当前设计单元。

A. 信号
B. 常量
C. 数据
D. 变量
93.在VHDL中,为定义的信号赋初值,应该使用__D___ 符号。

相关文档
最新文档