VHDL复习

合集下载

vhdl复习

vhdl复习

第一章VHDL程序基本结构例1 一个2输入的与门的逻辑描述LIBRARY ieee; --库说明语句USE ieee.std_logic_1164.ALL; --程序包说明语句ENTITY and2 ISPORT(a,b : IN STD_LOGIC;y : OUT STD_LOGIC);END and2;ARCHITECTURE and2x OF and2 ISBEGINy<=a AND b;END and2x;端口说明的一般格式为:PORT(端口名{,端口名}:端口模式数据类型;端口名{,端口名}:端口模式数据类型);PORT (a,b : IN STD_LOGIC;y : OUT STD_LOGIC);端口名是赋于每个外部引脚的名字,名字的含义要与惯例接轨,如D开头的端口名表示数据,A开头的端口名表示地址等。

端口名通常用几个英文字母或一个英文字母加数字表示。

下面是合法的端口名:CLK,RESET,A0,D3端口模式用来说明数据传输通过该端口的方向。

端口模式有以下几类:IN(输入):仅允许数据流进入端口。

主要用于时钟输入、控制输入、单向数据输入。

OUT(输出):仅允许数据流由实体内部流出端口。

该模式通常用于终端计数一类的输出,不能用于反馈。

第二章短标识符规则:短标识符由字母、数字以及下划线字符组成,且具有以下特征要求:●第一个字符必须是字母;●最后一个字符不能是下划线;●不允许连续两个下划线;●在标识符中大、小写字母是等效的。

●VHDL中的注释文字一律为2个连续的连接线“--”,可以出现在任一语句后面,也可以出现在独立行;●VHDL的保留字(关键字)不能用于标识符;扩展标识符规则:扩展标识符是VHDL’93版增加的标识符书写规则:(1) 扩展标识符用反斜杠来定界。

例如:\multi_screens\,\eda_centrol\等都是合法的扩展标识符。

(2) 允许包含图形符号、空格符。

例如:\mode A, \$100\, \p%name\等。

(完整版)VHDL复习

(完整版)VHDL复习

百度题库VHDL复习资料1.一个完整的VHDL程序,一般有哪几部分组成,它们分别描述的是什么?答:、VHDL程序的基本结构由(库)、(程序包)、(实体)、(结构体)和(配置)组成。

2.IF THEN语句、case when语句、with select语句各是什么类型语句,顺序语句必须放在什么地方?答:IF THEN语句与case when语句是顺序语句,with select语句是并行语句,顺序语句必须放在进程中。

3.结构体中常用的功能描述方式有几种?答:1)行为描述方式 2)数据流描述方式 3)结构化描述方式4.QuartusⅡ是CPLD/FPGA集成开发软件,基于QuartusⅡ软件进行设计开发,包括几个步骤,分别是什么?答:步骤分别是:1)新建项目 2)设计输入 3)分析综合及设计编译4)时序仿真 5)引脚分配及下载配置5.1987VHDL标准中规定标识符由什么组成,有什么具体要求?答:标识符可以由英文字母,数字,下划线“-”等组成选择填空1.在VHDL语言中,下列对时钟边沿检测描述中,错误的是( D )。

A.if clk’event and clk = ‘1’ thenB. if falling_edge(clk) thenC. if clk’event and clk = ‘0’ thenD.if clk’stable and not clk = ‘1’ then2.一个项目的输入输出端口是定义在( A )。

A.实体中B.结构体中C.任何位置D.进程体3. 下列语句中,不属于并行语句的是( B )。

A.进程语句B.CASE语句C.元件例化语句D.WHEN…ELSE…语句4.描述项目具有逻辑功能的是( B )。

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

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

A.结构体B.进程C.实体D.配置7.QUARTESII中编译VHDL源程序时要求( A )。

vhdl期末考试复习题大全

vhdl期末考试复习题大全

VHDL 复习一.问答题一.问答题1信号赋值语句在什么情况下作为并行语句?在什么情况下作顺序语句?信号赋值和变量赋值符号分别是什么?两种赋值符号有什么区别?赋值符号分别是什么?两种赋值符号有什么区别?l 信号赋值语句在进程外作并行语句,并发执行,与语句所处的位置无关。

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

语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处的位置有关。

l 信号赋值符号为“<=”变量赋值用变量赋值用““:=”。

信号赋值符号用于信号赋值动作,信号赋值符号用于信号赋值动作,不立不立即生效。

变量,赋值符号用于变量赋值动作,立即生效。

即生效。

变量,赋值符号用于变量赋值动作,立即生效。

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

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

件发生,进程再次被激活,如此循环往复。

3什么是库、程序包、子程序、过程调用和函数调用?什么是库、程序包、子程序、过程调用和函数调用?l 库和程序包用来描述和保存元件、类型说明和子程序等,以便在其它设计中通过其目录可查询、调用。

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

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

函数只能返回一个变量。

函数只能返回一个变量。

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

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

VHDL语言复习

VHDL语言复习
6
1. VHDL语言程序的基本结构
1.2 构造体(Architecture)
❖ 功能:指明该设计单元的行为、元件及内部的连 接关系,定义设计单元的具体功能。
❖ 描述方式:行为描述(基本设计单元的数据模型 描述);寄存器描述(数据流描述);结构描述 (逻辑元件连接描述)。
7
1. VHDL语言程序的基本结构
由UNSIGNED、SIGNED转换为 INTEGER
由STD_LOGIC_VECTORR转换为 INTEGER
32
2. VHDL语言要素
2.5 VHDL属性(Attribute) (1)数值类属性
’left(左边界), ’right(右边界), ’low(下边 界), ’high(上边界), ’length(数组长度)
——为变量赋值时,变量值的改变立即发生。
25
2. VHDL语言要素
2.4 数据类型
(1)最常见的标准定义数据类型
VHDL最常用的数据类型包括以下几种: ——INTEGER:可用作循环的指针或常数,通常不用于 I/O信号; Signal typei: INTEGER range 0 to 15; ——BIT:可取值‘0’或‘1’;
sdown :IN std_logic_vector(8 DOWNTO 0); sup :IN std_logic_vector(0 TO 8);
这两个信号的各属性值如下: sdown’left=8;sdown’ right =0;sdown’low =0; sdown’high =8;sdown’length =9; sup’left=0;sup’ right =8;sup’low =0;sup’high =8; sup’length =9;

VHDL复习题

VHDL复习题

一、选择题( A )1.一个项目的输入输出端口是定义在:A. 实体中B. 结构体中C. 任何位置D. 进程体( B)2.描述项目具有逻辑功能的是:A. 实体B. 结构体C. 配置D. 进程( A )3.关键字ARCHITECTURE定义的是:A. 结构体B. 进程C. 实体D. 配置( D )4.VHDL语言中变量定义的位置是:A. 实体中中任何位置B. 实体中特定位置C. 结构体中任何位置D. 结构体中特定位置( D )5.VHDL语言中信号定义的位置是:A. 实体中任何位置B. 实体中特定位置C. 结构体中任何位置D. 结构体中特定位置( B )6.变量是局部量可以写在:A. 实体中B. 进程中C. 线粒体D. 种子体中( A )7.变量和信号的描述正确的是:A. 变量赋值号是:=B. 信号赋值号是:=C. 变量赋值号是<=D. 二者没有区别( B )8. 变量和信号的描述正确的是:A. 变量可以带出进程B. 信号可以带出进程C. 信号不能带出进程D. 二者没有区别( )9.对于信号和变量的说法,哪一个是不正确的:A. 信号用于作为进程中局部数据存储单元B. 变量的赋值是立即完成的C. 信号在整个结构体内的任何地方都能适用D. 变量和信号的赋值符号不一样( A )10.下列关于变量的说法正确的是:A.变量是一个局部量,它只能在进程和子程序中使用B.B. 变量的赋值不是立即发生的,它需要有一个δ延时C. 在进程的敏感信号表中,既可以使用信号,也可以使用变量D. 变量赋值的一般表达式为:目标变量名<= 表达式( C )11.可以不必声明而直接引用的数据类型是:A. STD_LOGICB. STD_LOGIC_VECTORC. BITD. 前面三个答案都是错误的( C )12.STD_LOGIG_1164中定义高阻的字符是:A. XB. xC. zD. Z( A )13.STD_LOGIG_1164中字符H定义的是:A. 弱信号1B. 弱信号0C. 没有这个定义D. 初始值( B )14.使用STD_LOGIG_1164中的数据类型时:A. 可以直接调用B. 必须在库和包集合中声明C. 必须在实体中声明D. 必须在结构体中声明( B )15.关于转化函数说法正确的是:A. 任何数据类型都可以通过转化函数相互转化B. 只有特定类型的数据类型可以转化C. 任何数据类型都不能转化D. 前面说法都是错误的( C )16.VHDL运算符优先级说法正确的是:A. 逻辑运算的优先级最高B. 关系运算的优先级最高C. 逻辑运算的优先级最低D. 关系运算的优先级最低( D )17.VHDL运算符优先级说法正确的是:A. NOT的优先级最高B. AND和NOT属于同一个优先级C. NOT的优先级最低D. 前面的说法都是错误的( D )18.VHDL运算符优先级说法正确的是:A. 括号不能改变优先级B. 不能使用括号C. 括号的优先级最低D. 括号可以改变优先级( B )19.如果a=1,b=0,则逻辑表达式(a AND b)OR(NOT b AND a)的值是:A. 0B. 1C. 2D. 不确定( B )20.正确给变量X赋值的语句是:A. X<=A+B;B. X:=A+b;C. X=A+B;D. 前面的都不正确( )21.VHDL文本编辑中编译时出现如下的报错信息,其错误原因是:Error: VHDL syntax error: choice value length must match selector expression value lengthA. 表达式宽度不匹配B. 错将设计文件存入了根目录,并将其设定成工程C. 设计文件的文件名与实体名不一致D. 程序中缺少关键词( D )22.在VHDL语言中,下列对时钟边沿检测描述中,错误的是:A. if clk’event and clk = ‘1’ thenB. if falling_edge(clk) thenC. if clk’event and clk = ‘0’ thenD. if clk’stable and not clk = ‘1’ then( D )23.在VHDL中,可以用以下哪条语句表示检测clock下降沿:A. clock’ eventB. clock’ event and clock=’1’(上升沿)C. clock=’0’D. clock’ event and clock=’0’( D )24.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:A. IEEE库B. VITAL库C. STD库D. WORK工作库( A )25.VHDL常用的库是:A. IEEEB. STDC. WORKD. PACKAGE( B )26.下列语句中,不属于并行语句的是:A. 进程语句B. CASE语句C. 元件例化语句D. WHEN…ELSE…语句( D )27.下面哪一个可以用作VHDL中的合法的实体名:A. ORB. V ARIABLEC. SIGNALD. OUT1( B )28.下列关于CASE语句的说法不正确的是:A. 条件句中的选择值或标识符所代表的值必须在表达式的取值范围内B. CASE语句中必须要有WHEN OTHERS=>NULLC. CASE语句中的选择值只能出现一次,且不允许有相同的选择值的条件语句出现D. CASE语句执行必须选中,且只能选中所列条件语句中的一条( D )29.VHDL中,为目标变量赋值符号是:A. =:B. =C. <=D. :=( B )30.VHDL语言是一种结构化设计语言,一个设计实体(电路模块)包括实体与结构体两部分,结构体描述:A. 器件外部特性B. 器件的内部功能C. 器件的综合约束D. 器件外部特性与内部功能。

VHDL复习资料

VHDL复习资料

VHDL复习资料⼀.填空(每空1分,共20分)1.MAX+plusII是ALTERA 公司⾃⼰开发的EDA ⼯具软件。

2. VHDL设计实体的基本结构由库、程序包、实体、结构体、配置等部分构成。

3.在VHDL中最常⽤的库IEEE 标准库,最常⽤的包集合是1164。

4.在VHDL的端⼝声明语句中,端⼝⽅向包括输⼊(in)、输出(out)、输⼊|输出(inout)、缓冲和。

5.VHDL的顺序语句只能出现在进程、函数、过程中,是按程序书写顺序⾃上⽽下,⼀条⼀条地执⾏。

6.VHDL的块语句是并⾏语句结构,它的内部是由并⾏语句构成的7.VHDL的变量(VARIABLE)是⼀种局部量,只能在进程、函数和过程中声明和使⽤。

8.MAX+plusII⽀持⽂本、原理图、波形、符号编辑等不同的编辑⽅式。

9.MAX+plusII⼯具软件有功能、时序、仿真等功能。

10.MAX—PLUSⅡ的波形编辑⽂件分波形输⼊和波形仿真,它们的⽂件扩展名分别是W D F 和S C F。

11.VHDL的实体声明部分指定了设计单元的输⼊输出端⼝,它是设计实体对外的通信界⾯,是外界可以看到的部分。

12.CPLD和FPGA的含义分别是复杂可编程逻辑器件,现场可编程门阵列。

13.在VHDL中,含WAIT语句的进程Process的括号不能再加敏感量 ,否则是⾮法的.14.VHDL的Process(进程)语句是由顺序语句组成的,但其本⾝却是并发语句结构。

15.VHDL的⼦程序有函数和过程两种类型。

16.在VHDL中,标准逻辑位数据有 0和1种逻辑值。

17.MAX—PLUSⅡ的仿真分功能仿真和时序仿真。

18.VHDL的变量(VARIABLE)是⼀个功能变量,只能在进程、函数和过程中声明和使⽤。

19.VHDL的数据对象包括常数、变量、信号和⽂件。

20. 实体和结构体是设计实体的基本组成部分,它们可以构成最基本的VHDL程序。

20.VHDL语⾔的字符是以字母的下划线括起来的数字、字母和符号。

VHDL复习

VHDL复习

1 VHDL的设计流程?编写VHDL代码,保存为一个后缀名为.vhd的文件,代码保存好进行综合阶段。

然然代码编译,编译通过后,进行优化,然后就可以对设计进行仿真。

仿真通过后,对各种电路单元进行布线工作,或者生成asic掩膜文件,用于asic的生产。

2 VHDL中最基本的结构?作用?库(library),实体(entity),构造体(architecture),库是一些常用代码的集合,将电路设计中经常使用的一些代码存放到库中有利于设计的重用和代码共享。

实体是用来描述电路的所有输入/输出引脚。

构造体中的代码是用来描述电路的行为和实现功能。

3 VHDL中的基本数据类型?哪些是可综合的类型?预定义数据类型,位(bit)和位矢量(bit-vector),布尔类型,整数类型,自然数类型,实数和物理量字符类型都是不可综合的,字符,有符号数和无符号数类型。

用户自定义类型:整数和实数类型,枚举类型,数组类型,记录类型,子类型。

标量BIT,STD_LOGIC,STD_ULOGIC,BOLLEAN是可综合的。

矢量BIT_VECTORSTD_LOGIC_VECTOR,STD_ULOGIC_VECTOR,INTEGER,SIGNEG,UNSIGNED是可综合的。

4 信号与变量的区别信号是全局的,用于结构体中并行语句间数据流的传递;变量则是局部的,他主要用于单个进程中中间变量的存储.信号在时序电路中赋值延迟更新数值,变量赋值在组合电路中立即更新数值。

5 信号与变量怎样影响寄存器数量?对一个信号来说,当一个信号的赋值以另一个信号的边沿或跳变为条件时(即发生同步赋值时),该信号经编译后就会产生寄存器。

对变量来说,若一个信号是在另一个信号跳变时被赋值,并且最终该值又被赋给了另外的信号(数值传递作用),则将生成寄存器。

6 函数的输入特点?输出结果特点?函数有零个或多个输入参数。

输入参数只能是常量(默认)或信号(不允许是变量)。

输出有一个返回值。

VHDL复习题

VHDL复习题

习题3.1比较常用硬件描述语言VHDL、Verilog和ABEL语言的优劣。

1.VHDL:描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高。

有多种EDA工具选择,已成为IEEE标准。

应用VHDL进行工程设计的优点是多方面的,具体如下:(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。

(2) VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性做出判断。

(3) VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。

(4) 用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表(根据不同的实现芯片)。

(5) VHDL对设计的描述具有相对独立性。

(6) VHDL具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。

2. Verilog:设计者需要了解电路的结构细节,对综合器的性能要求较低。

有多种EDA工具选择,已成为IEEE标准。

3.ABEL: 设计者需要了解电路的结构细节,对综合器的性能要求较低。

支持ABEL的综合器只有一家,ABEL正朝国际化标准努力。

3.2 VHDL程序一般包括几个组成部分?每部分的作用是什么?(1)三个基本组成部分:库、程序包使用说明,实体描述和实体对应的结构体描述。

(2)库、程序包使用说明:用于打开调用本设计实体将用到的库、程序包实体描述:用于描述该设计实体与外界的接口信号说明结构体描述:用于描述该设计实体内部的组成及内部工作的逻辑关系结构体配置语句主要用于层次化的方式对特定的设计实体进行元件的例化,或是为实体选定某个特定的结构体3.3 VHDL语言中数据对象有几种?各种数据对象的作用范围如何?各种数据对象的实际物理含义是什么?(1)数据对象有三种:变量、常量、信号(2)常量的作用范围取决于其所定义的位置。

VHDL复习题总结

VHDL复习题总结

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

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

1983 年建立 VHDL语言开发组, 1987 年推行实行, 1993 年扩大改版。

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

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

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

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

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

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;ENTITY countA ISPORT (clk,clr,en:IN STD_LOGIC;Qa,qb,qc,qd:OUT STD_LOGIC);END countA;ARCHITECTURE example OF countA ISSIGNAL count_4:STD_LOGIC_vector (3 DOWNTO 0);BEGINQa <= count_4(0);Qb <= count_4(1);Qc <= count_4(2);Qd <= count_4(3);PROCESS (clk,clr)BEGINIF (clr = '1' ) THENCount_4 <= "0000";ELSIF (clk'EVENT AND clk = '1' ) THENIF (en = '1' ) THENIF (count_4 = "1111") THENcount_4 <= "0000";ELSEcount_4 <= count_4+ '1';END IF;END IF;END IF;END PROCESS;END example;4.什么叫对象?对象有哪几个种类?答:在 VHDL语言中,凡是能够赋于一个值的客体叫对象(object)。

VHDL期末复习概要

VHDL期末复习概要

复习要点:1. 缩写英文词的中文含义:VHDL 超高速集成电路硬件描述语言、HDL 硬件描述语言、EDA 电子设计自动化、PLD 可编程逻辑器件、ISP 系统可编程逻辑器、ASIC 为专门目的而设计的集成电路、SOC 片上系统。

2. 数字电路与数字系统的根本区别? 数字电路是具有各种功能的逻辑器件组成的,数字系统是由若干逻辑器件组成并能实现复杂功能的电路。

一个数字电路,不论其规模大小,必须具有控制器,才称之为数字系统。

3. 逻辑器件按其结构可分为那两大类型?按所给逻辑器件名称区分它们的归属类型,如基本门电路、触发器、计数器、加法器、译码器、选择器等各种逻辑器的归属类型。

1.组合逻辑电路——基本门电路,例如与门、或门等。

任何组合逻辑函数均可化为与或式,即可由与门、或门二级电路实现。

2.时序逻辑电路——触发器、计数器等,例如D 触发器JK 触发器等。

4. 传统数字系统设计和现代数字系统设计的根本区别?简要概述现代数字系统的设计过程。

传统数字系统设计通过电路板来实现系统的逻辑功能,现代数字系统实现方法采用自上而下的模块化设计方法。

现代数字系统设计过程:设计——仿真——下载。

5. 目前比较通用的硬件描述语言有哪三种?VHDL 、Verilog 和ABEL 语言 用硬件描述语言对电路进行描述时可采用哪三种描述层次?三种硬件描述语言各自最适合描述的层次是什么?(逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、RTL 级(寄存器传输级或数据流)和门电路级。

VHDL 语言是一种高级描述语言,适用于行为级和RTL 级的描述,最适于描述电路的行为;V erilog 语言和ABEL 语言是一种较低级的描述语言,适用于RTL 级和门电路级的描述,最适于描述门级电路。

)6. VHDL 程序的基本结构通常有三个部分组成,这三个组成部分指的是什么?1.库、程序包使用说明2.实体说明3.实体对应的结构体说明7. 搞清实体说明和结构体说明的语句结构,尤其是关键词、实体名、结构体名等。

VHDL复习资料

VHDL复习资料

VHDL复习资料1、名词解释1、ASIC 专用集成电路2、SOC 单片电子系统3、EDA 电子设计自动化4、FPGA 现场可编程自动化5、CPLD 复杂可编程逻辑器件6、VHDL 非常高速的硬件描述语言7、IP 知识产权核或知识产权模块2、VHDL优点:1、语法比较严谨2、有很好的行为级描述能力和一定的系统级描述能力缺点:1、VHDL代码比较冗长2、对数据类型匹配要求过于严格,初学不方便,编程耗时较多3、对版图级、管子级等底层的描述级别几乎不支持,无法直接用于集成电路的建模3、EDA设计流程1、设计输入1)图形输入:原理图输入、状态图输入和波形图输入2)HDL文本输入:最基本、最有效、最通用的输入方法2、综合综合就是将电路的高级语言转换成低级的,可与FPGA/CPLD的基本结构相映射的网表文件或程序3、适配适配器也称结构综合器;将由综合器产生的网标文件配置成最终的下载文件。

如JEDEC、JAM、SOF、POF格式4、时序仿真和功能仿真5、编程下载6、硬件测试4、CPLD和FPGA1、CPLD 基于乘积项的可编程结构不丢失容量小2、FPGA 基于可编程的查找表(RAM)结构丢失容量大3、FPGA典型公司:Xilinx(赛灵思)Altera(阿尔特拉)5、组合电路的VHDL描述基本结构实体(外部可见):描述外部特性结构体:描述内部特性1、实体表达实体描述的是电路器件的:端口构成、端口类型和端口上流动的信号的属性ENTITY [NAME] ISPORT(Q1:IN STD_LOGIC;Q2:OUT STD_LOGIC_VECTOR (N DOWNTO 0));END;2、实体名3、端口语句和端口信号名4、端口模式5、数据类型:INTEGER类型、BOOLEAN类型、STD_LOGIC类型和BIT类型等6、结构体表达:ARCHITECTURE XX OF [NAME] IS[说明语句]BEGIN[功能描述语句]END;7、复制符号和数据比较符号8、WHEN_ELSE条件信号赋值语句9、关键字10、标识符11、规范的程序书写格式12、文件取名和存盘6、STD_LOGIC数据类型定义语句:‘0’表示强逻辑0,’1’表示强逻辑1,’Z’表示高阻态7、设计库和标准程序包WORK 工作区库:IEEE.包:STD_LOGIC.1164STD_LOGIC_UNSIGNED8、数据对象有三类:信号(SIGNAL)、变量(VARIABLE)和常量(CONSTANT)变量:VARIABLE 变量名:数据类型:= 初始值信号目标信号名<= 表达式AFTER时间量;--AFTER是关键词9、进程语句和顺序语句顺序语句IF_THEN_ELSE_END IF是放在由PROCESS_END PROCESS引导的语句中的进程顺序描述语句:包括IF语句、CASE语句、LOOP语句等结构组成进程跳出语句:包括NEXT语句、EXIT语句,用于控制进程的运行方向进程要点:PROCESS为一无限循环语句十、VHDL文字规则P 322十一、填空题(多数是元件例化)元件例化:八位乘法器library ieee;use ieee.std_logic_1164.all;entity add8 isport(a, b :in std_logic_vector(7 downto 0);sum :out std_logic_vector(8 downto 0));end;architecture xx of add8 iscomponent banjia isport(a,b: in std_logic;c,s :out std_logic);end component;component quanjia isport(a,b,c_1: in std_logic;c,s :out std_logic);end component;signal oc:std_logic_vector(6 downto 0);beginu0: banjia port map(a=>a(0), b=>b(0), c=>oc(0), s=>sum(0));u1: quanjia port map(a=>a(1),b=>b(1),c_1=>oc(0),c=>oc(1),s=>sum(1));u2: quanjia port map(a=>a(2),b=>b(2),c_1=>oc(1),c=>oc(2),s=>sum(2));u3: quanjia port map(a=>a(3),b=>b(3),c_1=>oc(2),c=>oc(3),s=>sum(3));u4: quanjia port map(a=>a(4),b=>b(4),c_1=>oc(3),c=>oc(4),s=>sum(4));u5: quanjia port map(a=>a(5),b=>b(5),c_1=>oc(4),c=>oc(5),s=>sum(5));u6: quanjia port map(a=>a(6),b=>b(6),c_1=>oc(5),c=>oc(6),s=>sum(6));u7: quanjia port map(a=>a(7),b=>b(7),c_1=>oc(6),c=>sum(8),s=>sum(7));end;---*************************--半加器library ieee;use ieee.std_logic_1164.all;entity banjia isport(a,b: in std_logic;c,s :out std_logic);end;architecture xx of banjia isbegins <= a xor b;c <= a and b;end;--********************************--全加器library ieee;use ieee.std_logic_1164.all;entity quanjia isport(a,b,c_1: in std_logic;c,s :out std_logic);end;architecture xx of quanjia isbegins <= a xor b xor c_1;c <= (a and b) or (a and c_1) or (b and c_1);end;十二、编程题1、计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JSQ4 ISPORT(CLK:IN STD_LOGIC;Q :OUT STD_LOGIC_VECTOR(1 DOWNTO 0));END;ARCHITECTURE XX OF JSQ4 ISSIGNAL TQ:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THENTQ<= TQ+1;END IF;END PROCESS;Q<=TQ;END2、译码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY YIMAQI ISPORT(ADDR:IN STD_LOGIC_VECTOR(1 DOWNTO 0)Y :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END;ARCHITECTURE XX OF IS YIMAQI ISBEGINY<="1110"WHEN ADDR="00"ELSE"1101"WHEN ADDR="01"ELSE"1011"WHEN ADDR="10"ELSE"0111";END;3、选择器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XZQ ISPORT(D0,D1,D2,D3:IN STD_LOGIC_VECTOR(7 DOWNTO 0) ADDR :IN STD_LOGIC_VECTOR(1 DOWNTO 0)DATA :OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END;ARCHITECTURE XX OF XZQ ISBEGINDATA<=DO WHEN ADDR="00" ELSED1 WHEN ADDR="01" ELSEDO WHEN ADDR="10" ELSED3;END;。

VHDL考试复习资料

VHDL考试复习资料

• 例: SUBTYPE natural IS integer RANGE 0 TO +2147483647; SUBTYPE positive IS integer RANGE 1 TO +2147483647; SUBTYPE data_type IS integer RANGE 0 TO 255; 第3个子类型定义的数据类型data_type只会消耗8位数据线的资源。 如果没有RANGE 0 TO 255这一范围限制,就会消耗32位数据线资源。
必须的两个部分:
• 实体说明(entity declaration) • 结构体(architecture body)
architecturn
configuration
VHDL语言程序的结构组成
实体说明(entity)
• 描述一个数字电路的接口。如:
一个存储器,需要数据线、地址线、时钟线、读写使 能控制线、片选控制线。代码: library ieee;
ห้องสมุดไป่ตู้
数据类型
数据类型: • VHDL标准数据类型有10种,与电路中的逻辑电平直接对应
的是“bit”和“bit_vector”两种类型。除此之外还有: integer real boolean character string time severity level natural、positive
TYPE byte IS array(7 downto 0) of std_logic; TYPE char IS array(7 downto 0) of std_logic; 已有的数据类型: std_logic_vector
用类型byte和类型char定义产生的对象之间不能直接赋值,它们属于完 全不同的类型。

vhdl期末考试复习提纲(考点大全)

vhdl期末考试复习提纲(考点大全)

Vhdl复习考试题型:单项选择题:(10*2=20分)简答题:(5*4=20分,每小题5分)判断改错题:(2*5=20分)综合题:(共50分)VHDL 大小写不敏感实体(Entity)描述此设计功能输入输出端口(Port)在层次化设计时,Port为模块之间的接口在芯片级,则代表具体芯片的管脚Entity eqcomp4 isport(a, b: in std_logic_vector(3 downto 0);equal:out std_logic);end eqcomp4;实体--端口的模式输入(Input)输出(Output)双向(Inout):可代替所有其他模式,但降低了程序的可读性,一般用于与CPU的数据总线接口缓冲(Buffer):与Output类似,但允许该管脚名作为一些逻辑的输入信号结构体(Architecture)描述实体的行为结构体有三种描述方式-行为描述(behavioral)-数据流描述(dataflow)-结构化描述(structural)结构体--行为描述结构体--数据流描述描述输入信号经过怎样的变换得到输出信号结构体--结构化描述三种描述方式的比较VHDL标识符(Identifiers)•基本标识符由字母、数字和下划线组成•第一个字符必须是字母•最后一个字符不能是下划线•不允许连续2个下划线•保留字(关键字)不能用于标识符•大小写是等效的VHDL数据对象(Data Objects)•常数(Constant)–固定值,不能在程序中被改变–增强程序的可读性,便于修改程序–在综合后,连接到电源和地–可在Library、Entity、Architecture、Process中进行定义,其有效范围也相应限定Constant data_bus_width: integer := 8;•信号(Signals)–代表连线,Port也是一种信号–没有方向性,可给它赋值,也可当作输入–在Entity中和Architecture中定义–设定的初始值在综合时没有用,只是在仿真时在开始设定一个起始值。

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

百度题库VHDL复习资料1.一个完整的VHDL程序,一般有哪几部分组成,它们分别描述的是什么?答:、VHDL程序的基本结构由(库)、(程序包)、(实体)、(结构体)和(配置)组成。

2.IF THEN语句、case when语句、with select语句各是什么类型语句,顺序语句必须放在什么地方?答:IF THEN语句与case when语句是顺序语句,with select语句是并行语句,顺序语句必须放在进程中。

3.结构体中常用的功能描述方式有几种?答:1)行为描述方式 2)数据流描述方式 3)结构化描述方式4.QuartusⅡ是CPLD/FPGA集成开发软件,基于QuartusⅡ软件进行设计开发,包括几个步骤,分别是什么?答:步骤分别是:1)新建项目 2)设计输入 3)分析综合及设计编译4)时序仿真 5)引脚分配及下载配置5.1987VHDL标准中规定标识符由什么组成,有什么具体要求?答:标识符可以由英文字母,数字,下划线“-”等组成选择填空1.在VHDL语言中,下列对时钟边沿检测描述中,错误的是( D )。

A.if clk’event and clk = ‘1’ thenB. if falling_edge(clk) thenC. if clk’event and clk = ‘0’ thenD.if clk’stable and not clk = ‘1’ then2.一个项目的输入输出端口是定义在( A )。

A.实体中B.结构体中C.任何位置D.进程体3. 下列语句中,不属于并行语句的是( B )。

A.进程语句B.CASE语句C.元件例化语句D.WHEN…ELSE…语句4.描述项目具有逻辑功能的是( B )。

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

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

A.结构体B.进程C.实体D.配置7.QUARTESII中编译VHDL源程序时要求( A )。

A.文件名和实体名要相同B.文件名和实体名无关C.文件名和实体可不同名D.不确定8.quartus中编译VHDL源程序时要求( C )。

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

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

A.可以使用数字开头B.可以使C.必须以英文字母开头D.任何字符都可以11.符合1987VHDL标准的标识符是( D ) 。

A.22B.A+2C.2AD.A_212.VHDL语言中信号定义的位置是( D )。

A.实体中任何位置B.实体中特定位置C.结构体中特定位置D. 结构体中任何位置13 正确给变量X赋值的语句是( C )。

A.X<=A+B;B. X=A+B;C.X:=A+b;D.前面的都不正确14.下面数据中属于位向量的是( B )。

A.4.2B. “11011”C.‘1’D.315.使用STD_LOGIG_1164的数据类型时 ( B )。

A.可以直接调用B.必须在库和包集合中声明C.必须在实体中声明D.必须在结构体中声明16.不属于顺序语句的是( B )。

A.IF语句B.LOOP语句C.PROCESS语句D.CASE语句17.使用STD_LOGIG_1164的数据类型时 ( B )。

A.可以直接调用B.必须在库和包集合中声明C.必须在实体中声明D.必须在结构体中声明18.正确给变量X赋值的语句是( C )。

A.X<=A+B;B. X=A+B;C. X:=A+b;D.前面的都不正确19 .如果a=1,b=0,则逻辑表达式(a AND b)OR(NOT b AND a)的值是( B )。

A.0B.1C.2D.不确定20.VHDL中顺序语句放置位置说法正确的是( D )。

A.可以放在进程语句中B.可以放在子程序中C.不能放在任意位置D.前面的说法都正确END bhv;2. 下面程序是1位十进制计数器的VHDL描述,试补充完整(5分)。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164 _.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10ISPORT(CLK:IN STD_LOGICQ 1 :OUT STD_LOGIC_VECTOR(3DOWNTO0));END CNT10;ARCHITECTURE bhv OF CNT10 ISBEGINSIGNAL Q1:STD_LOGIC_VECTOR(3DOWNTO0);PROCESS(CLK)BEGINIF( CLK'EVENT AND CLK='1' )___THEN --边沿检测IF Q1>1001THEN Q<='0000';--置零ELSE Q1<=Q1+1 ; --加1END IF;END IF;END PROCESS ;Q<=Q1 ;END bhv3.library ieee;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use IEEE.std_logic_arith.all;entity counter_n isgeneric (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 ( downto 0));end counter_n;architecture behave of counter_n issignal count : std_logic_vector (width-1 downto 0);beginprocess(clk, rst)beginif rst = '1' thencount <= ‘0’; ―― 清零elsif (CLK'EVENT AND CLK='1' )_then ―― 边沿检测 if load = '1' thencount <= data;elsif en = '1' thencount <= count + 1;end if ;end if;end process;;end behave;三、分析题分析下例程序,写出语句注释,给出设计结果,判定器件功能;程序1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY three ISPORT(clk,d : IN STD_LOGIC;dout : OUT STD_LOGIC );END;ARCHITECTURE bhv OF three ISSIGNAL tmp: STD_LOGIC;BEGINP1:PROCESS(clk)进程语句中的敏感信号参数为clkBEGINIF rising_edge(clk) THEN—检测上升沿触发有效Tmp <= d;d赋值给tmpdout <= tmp;tmp赋值给dout,所以输出dout为END IF;END PROCESS P1;END bhv;器件功能是时钟信号的上升沿到来时,D触发器的输出Q等于输入D程序2…ARCHITECTURE archAA OF AA ISbeginPROCESS (s,a0,a1,a2,a3) 进程中五个状态,分别是s,a0,a1,a2,a3beginif s="00" then当输入s状态为00时y<=a0; 输出端f为a0elsif s="01" then当输入s状态为01时 y<=a1; 输出端f为a1elsif s="10" then当输入s状态为10时y<=a2; 输出端f为a2else 前面三种的其他情况,是当输入s状态为11时 y<=a3; 输出端f为a3end ifend process;end archAA;器件功能是四选一数字选择器程序3library ieee;use ieee.std_logic_1164.all;entity parity isport(databus:in std_logic_vector(7downto0);even_num, odd_num:out std_logic);end parity;architecture behave of parity isbeginprocess(databus)variable tmp:std_logic;begintmp:='0';for i in0to7looptmp:=tmp xor databus(i);end loop;odd_num<=tmp;even_num<=not tmp;end process;end behave;程序4LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY comp ISPORT( a,b :in std_logic_vector(7 downto 0);aqualb,agrdb,alessb:out std_logic );END comp;ARCHITECTURE behave OF comp ISBEGINaqualb<='1' when a=b else '0';agrdb<='1' when a>b else '0';alessb<='1' when a<b else '0';END behave;程序5 分析下例程序,给出设计结果,判定器件功能(10分)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY HAD ISPORT ( a : IN STD_LOGIC;b : IN STD_LOGIC;c : OUT STD_LOGIC;d : OUT STD_LOGIC);END ENTITY HAD;ARCHITECTURE fh1 OF HAD ISBEGINc <= NOT(a NAND b);/*半加器的进位为c,a与b赋值给c*/d <= (a OR b)AND(a NAND b);/*半加器的和为d,END ARCHITECTURE fh1;器件功能为:一位二进制数的半加器,两个数分别是a与b,和为d,进位为c. 程序6library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY vote ISPORT( men : in std_logic_vector(6 downto 0);pass, stop: buffer std_logic);END vote;ARCHITECTURE behave OF vote ISBEGINstop<= not pass;PROCESS (men)variable temp:std_logic_vector(2 downto 0);BEGINtemp:="000";for i in 0 to 6 loopif(men(i)='1') thentemp:=temp+1;elsetemp:=temp+0;end if;end loop;pass<=temp(2);END PROCESS;END behave;四、1.试用VHDL语言编写一个8-3编码器。

相关文档
最新文档