好文档 - 专业文书写作范文服务资料分享网站

湖南科技大学VHDL期末重点复习题

天下 分享 时间: 加入收藏 我要投稿 点赞

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

答: VHDL是美国国防部为电子项目设计承包商提供的,签定合同使用的,电子系统硬件描述语言。1983年成立VHDL语言开发组,1987年推广实施,1993年扩充改版。VHDL是IEEE标准语言,广泛用于数字集成电路逻辑设计。 2. 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 <= \

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

IF (count_4 = \ count_4 <= \ ELSE

count_4 <= count_4+ '1'; END IF; END IF; END IF; END PROCESS; END example;

1. 什么叫对象?对象有哪几个类型?答:在VHDL语言中,凡是可以赋于一个值的客体叫

对象(object)。VHDL对象包含有专门数据类型,主要有4个基本类型:常量(CONSTANT)、

1

信号(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种方法可用来进行类型转换?:类型标记法、函数转换法和常数转换法。 5.什么叫进程?简述进程的工作方式。

答:进程(process)是由外部信号触发执行的一段程序。进程语句是并行处理语句,即各个进程是同时处理的,在结构体中多个Process语句是同时并发运行的。在进程内部是顺序执行的。Process语句在VHDL程序中,是描述硬件并行工作行为的最常用、最基本的语句。

进程Process语句中一般带有几个信号量例表,称为该进程的敏感量表。这些信号无论哪一个发生变化都将启动Process进程。一旦启动,进程Process中的程序将从上到下顺序执行一遍,由新变化的量引导进程产生变化结果输出。当进程的最后一个语句执行完成后,就返回到进程开始处,等待敏感量的新变化,引发进程的再一次执行。周而复始,循环往复,以至无穷。这就是进程的执行过程。 6.什么叫模块?区分模块与进程。

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

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

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

1. 用结构描述法和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);

2

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;

3

END half1;

2.简述层次化设计的过程。

答:层次化设计是指对于一个大型设计任务,将目标层层分解,在各个层次 上分别设计的方法。有些设计,在一些模块的基础上,通过搭建积木的方法 进行设计。有人称,在整个设计任务上进行行为描述的设计方法,称为高层 次设计,而从事某一模块、某一元件行为设计称为底层设计方法。 2.什么是库,程序包,子程序,过程调用,函数调用?

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

库(libraries)是用来存储和放置可编译的设计单元的地方,通过其目录可查询、调用。设计库中的设计单元(实体说明、结构体、配置说明、程序包说明和程序包体)可以用作其他VHDL描述的资源。

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

子程序由过程和函数组成。在子程序调用过程中,过程能返回多个变量,函数能返回一个变量。若子程序调用是一个过程,就称为过程调用;若子程序调用是一个函数,则称为函数调用。过程调用和函数调用都是子程序调用。

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

过程的参数有输入、输出和双向参数。 函数有顺序函数、并行函数。 过程有顺序过程、并行过程。 1.CLK信号怎样用VHDL语言描述?

答:时钟信号的上升沿的描述:

if clk‘event and clk = ‘1’ then ?; 时钟信号的下降沿的描述:

if clk ‘event and clk = ‘1’ then ?; 1. 异步复位怎样用VHDL语言描述?

答:当复位信号低电平有效时,VHDL的描述为: if reset = ‘0’ then ?;

当复位信号高电平有效时, VHDL的描述为: if reset =‘1’ then ?; 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

4

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;

5

湖南科技大学VHDL期末重点复习题

1.什么是VHDL?简述VHDL的发展史。答:VHDL是美国国防部为电子项目设计承包商提供的,签定合同使用的,电子系统硬件描述语言。1983年成立VHDL语言开发组,1987年推广实施,1993年扩充改版。VHDL是IEEE标准语言,广泛用于数字集成电路逻辑设计。2.ENTITY实体名IS[GENERIC(类型表);]--可选
推荐度:
点击下载文档文档为doc格式
6btnn2ewlc8az813iuu2
领取福利

微信扫码领取福利

微信扫码分享