文档库 最新最全的文档下载
当前位置:文档库 › VHDL语言的基本要素(大全)

VHDL语言的基本要素(大全)

VHDL语言的基本要素(大全)
VHDL语言的基本要素(大全)

VHDL语言的基本要素

一、数据对象

VHDL语言的主要数据对象有信号,变量,常量。

信号—信号是电路中的物理量,对应于电路的连线、节点;信号说明全局量,用于描述中的构造体(Architecture), 实体(Intity),程序包(package)。

变量—变量是程序运算中的中间量,并不对应电路中的物理量。变量说明局部量,用于进程语句(process), 函数(Function), 过程(procedure)。

常量—常数也不对应电路中的物理量,当常量说明全局量,在构造体(Architecture), 实体(Intity),程序包(package),进程语句(process), 函数(Function), 过程(procedure)中均可使用。数据对象的定义格式:

signal 信号名:数据类型,约束条件,表达式

Variable 变量名:数据类型,约束条件:=表达式

Constant 常量名:数据类型,约束条件:=表达式

例如:Variable count:INTEGER RANGE 0 TO 255:=10

Constant Daly:Time:=100ns

信号代入和变量赋值的区别:两者形式不同,操作过程也不相同。变量赋值符“:=”,信号的代入符“<=”。

在变量的赋值语句中,该语句一当执行,其值立即将赋予变量;而信号的代入,其语句执行后不会立即使信号发生代入,在下条语句

执行时,仍使用原来的信号值,如进程语句中的敏感表的信号代入就是如此。

二、数据类型

VHDL语言中的数据类型,一般而言可分为:标量类型和组合类型。在实际使用中,也可分成予定义类型和用户定义类型。VHDL语言是强类型的语言,主要可按如下分类和变换处理。

①标准数据类型

⑴整数⑵实数(浮点数)-1.0E+38~+1.0E38 ⑶位bit

(0,1)

⑷位矢量⑸布尔量,“假”,“真”⑹字符(ASCⅡ)字符

⑺时间

⑻错误等级⑼自然数(大于等于0的整数)⑽字符串

(字符矢量)

②用户定义的数据类型

TYPE 数据类型名{数据类型名} 数据类型定义

⑴枚举类型⑵整数类型⑶实数类型⑷数组类型

⑸存取类型⑹文件类型⑺记录类型⑻时间类型③用户定义子类型

SUBTUPE 子类型名IS 数据类型名[范围]

例:SUBTYPE digit is INTEGER RANGE 0 TO 9

④数据类型转换

数据类型的变换函数通常由“STD_LOGIC_1164”,

“STD_LOGIC_ARITH”,“STD_LOGIC_UNSIGNED”的程序包提供

例如,在STD_LOGIC_1164程序包中,

TO_STD LOGIC VECTOR(A) 由BIT_VECTOR转换为STD_LOGIC_VECTOR

TO_BITVECTOR(A) 由STO_LOGIC_VECTOR转为BIT_VECTOR

TO_STDLOGIC(A) 由BIT转换为STD_LOGIC

TO_BIT(A) 由STD_LOGIC转换成BIT signal a: BIT_VECTOR(11 DOWNTO 0)

signal b: STD_LOGIC_VECTOR(11 DOWNTO 0)

a<=X”A8” 十六进制值可赋予位矢量

b<=X”A8” 语法错,十六进制不能赋予.STD 矢量

b<=TO_STDLOGICVECTOR(X“AF7”)

b<=TO_STDLOGICVECTOR(O“5177”)八进制变换

b<=TO_STDLOGICVECTCR(B“1010_1111_0111”)

下表中也给出一些典型的类型变换函数

三、运算符

运算符的优先级如下表所示:运算符的优先级

例如,并置运算符的使用:

tmp_b<=b AND (en&en&en&en)

y <= a & tmp_b

第一个语句表示b的4位位矢量由

得到一个4位位矢量输出

第二个语句表示4位位矢量a和4位位矢量b再

次连接(并置)构成8位的位矢量y输出

右图所示为并置运算符操作的电路示意。

VHDL语言程序的基本结构

⑴实体(Entity)

实体主要由实体说明和构造体组成;实体说明描述电路的外部特征,构造体描述的是电路内部的逻辑。

①实体说明主要包括·类属参数说明·端口说明

②构造体主要包括·名称命名·定义语句·并行处理语句等

定义语句是对其内部使用的信号、常数、数据类型、函数定义

实体

实体说明

接口说明

构造体

功能定义e n t i t y t o p i s p o r t(

i,j,k:i n b i t;z:o u t b i t);

e n d t o p;

a r c h i t e c t u r e t o p o f t o p i s

s i g n a l h:b i t;

b e g i n

u1:a n d2p o r t m a p(a=>i,b=>j,x=>h); u2:o r2p o r t m a p(a=>h,b=>k,y=>z);

e n d;

端口配置中的形参和实参

设计实体与其实体说明、构造体的关系

⑵构造体的子结构

构造体的子结构主要可由如下语句结构组成

·Block语句结构

·Process语句结构过程(procedure)·SUBPROGRAMS结构

函数(Function)

⑶程序包、库、配置

重载运算符(overloaded operators):和其他运算符一样,关系运算符也可以重载。重载运算符允许多种类型使用运算符(这些运算符不是由IEEE1076标准预定义的)。运算符可能由用户定义函数重载,但很多重载运算符是由IEEE1164和IEEE1076.3标准所定义。例如,IEEE 1076标准定义了为类型signed和integer以及unsigned和natural 重载=运算符的函数。此重载运算符允许以下的代码段被执行。

vhdl语言的基本知识点罗列.doc

VHDL语言的基本知识点罗列 1 VHDL语言的标识符 VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。使用标识符要遵守如下法则: a)标识符由字母(A…Z;a…z)、数字和下划线字符组成。 任何标识符必须以英文字母开头。λ 末字符不能为下划线。λ b)不允许出现两个连续下划线。 标识符中不区分大小写字母。λ VHDL定义的保留子或称关键字,不能用作标识符。λ c) VHDL中的注释由两个连续的短线(--)开始,直到行尾。 以下是非法标识符: -Decoder —起始不能为非英文字母 3DOP —起始不能为数字 Large#number —“#”不能成为标识符的构成符号 Data__bus —不能有双下划线 Copper_ —最后字符不能为下划线 On —关键字不能用作标识符。 注:在AHDL语言中标识符要区分大小写,但在VHDL语言中不区分大小写。所以写程序时,一定要养成良好的书写习惯,应用关键字时用大写,自己定义的标识符用小写。 标识符表示的几种数据对象的详细说明如下: 1) 常数(Constant ) 常数是一个固定的值,主要是为了使设计实体中的常数更容易阅读和修改。常数一被赋值就不能在改变。一般格式: CONSTANT 常数名:数据类型:=表达式; 例:CONSTANT Vcc: REAL: =5.0; —设计实体的电源电压指定 常数所赋得值应与定义的数据类型一致。 常量的使用范围取决于它被定义的位置。程序包中定义的常量具有最大的全局化特性,可以用在调用此程序包的所有设计实体中;设计实体中某一结构体中定义的常量只能用于此结构体;结构体中某一单元定义的常量,如一个进程中,这个常量只能用在这一进程中。 2) 变量(Variable) 变量是一个局部变量,它只能在进程语句、函数语句和进程语句结构中使用。用作局部数据存储。在仿真过程中。它不像信号那样,到了规定的仿真时间才进行赋值,变量的赋值是立即生效的。变量常用在实现某种算法的赋值语句中。 一般格式: VARIABLE 变量名数据类型约束条件:=表达式; 例:VARIABLE x,y:INTEGER; —定义x,y为整数变量 VARIABLE count: INTEGER RANGE0 TO255:=10; —定义计数变量范围 变量的适用范围仅限于定义了变量的进程或子程序中。若将变量用于进程之外,必须该值赋给一个相同的类型的信号,即进程之间传递数据靠的信号。 变量赋值语句的语法格式如下:

VHDL语言快速入门必读

一·1.数据类型BIT与STD_LOGIC有什么区别。 BIT类型的取值只能是0或1,没有不定状态X,也没有高阻态。 STD_LOGIC类型可以有9种不同的值,包括U-初始值,X-不定,0-0,1-1,Z-高阻态,W-弱信号不定,L-弱信号0,H弱信号1.‘—’不可能情况。 2.信号和变量的异同。 信号是全局量,只要在结构体中已经定义,就可以在结构体中的所有地方使用,信号的赋值符号是”<=”,信号带入时可以附加延时,信号实际带入过程和带入语句的处理时分开进行的。 变量是局部量,只能在进程,子程序内部定义和使用,变量的赋值符号是“:=”,变量的赋值是立即执行的,不能附加延时。 3.VHDL语言的基本顺序语句和并行语句有哪些? 双性语句:信号带入语句 顺序语句:WHAT语句,断言语句,变量赋值语句,IF语句,CASE语句,LOOP语句,NEXT语句,EXIT语句,过程调用语句,NULL语句。 并行语句:进程(PROCESS)语句,条件带入语句,选择信号带入语句,并发过程调用语句,块语句。 4.用VHDL语言进行硬件设计的流程是什么? 1.分析实际的需求2确定芯片的功能3.用VHDL 语言描述改元件4.编译,如果有错误修改后再编译直至编译通过。5.仿真,如果仿真不符合设计要求,修改程序直至仿真通过。6.测试7.综合,8.下载到实际的芯片上。 5.基本的硬件描述语言的种类有哪些? 美国国防部开发的VHDL。 Verilog公司开发的Verilog-HDL. 日本电子工业振兴协会开发的UDL/I语言。 6.VHDL语言中包含的库的种类有哪些?库:是经编译后的数据的集合,它存放包集合定义,实体定义,构造体定义,和配置定义。库的种类:1.IEEE库,2.STD库,3.面向ASIC 的库,4.WORK库,5.用户定义库 7.IEEE库中所包含的基本类型转换函数有 1.包含程序所用的库 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; 2.实体声明 ENTITY fp IS PORT(); END ENTITY fp; 3.结构体,具体功能的实现 ARCHITECTURE a OF fp IS BEGIN END ARCHITECTURE a; 9.VHDL的程序子结构有哪些? 进程(PROCESS)顺序语句,块(BLOCK)并行语句,过程(PROCEDURE)顺序语句,函数(顺序语句)。 10.简述when-else和if-else的区别? If-else是顺序语句所以只能在进程内部使用,可以没有else语句,可以进行嵌套。有自身值带入的描述,能组成锁存电路。 When-else是并行语句,在结构体内使用,必须要有else语句,不能进行嵌套,没有自身值带入的描述,不能组成锁存电路。 11.什么是ASIC,ASIC的特点是什么?ASIC是Application Specific Integrated Circuit 的英文缩写,在集成电路界被认为是一种为专门目的而设计的集成电路。 ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。 12.逻辑电平有哪些?

第四章 VHDL的语言要素

第四章VHDL的语言要素 4.1 VHDL的数据对象 与其他高级语言一样,VHDL中把用来承载数据的容器叫做VHDL的数据对象,VHDL的数据对象主要有信号、常量和变量三类。 1 常量 在VHDL中,常量是一种不变的量,它只能在对它定义时进行赋值,并在整个程序中保持该值不变。常量的功能一方面可以在电路中代表电源、地线等,另一方面可提高程序的可读性,也便于修改程序。常量定义的格式为: CONSTANT 常量名:数据类型:=表达式; [例3.4] 常量定义举例 CONSTANT V: INTEGER:=8; 2 变量 变量是临时数据的容器,它没有物理意义,并且只能在进程和子程序中定义,也只能在进程和子程序中使用。变量一旦赋值立即生效。变量定义的描述格式为:VARIABLE 变量名:数据类型[:=表达式]; [例3.5]变量定义举例 VARIABLE y: INTEGER; 3 信号 信号是VHDL的一种重要数据对象,它定义了电路中的连线和元件的端口。其中端口和内部信号定义的差别是在端口定义中多了一个端口模式的定义。信号是一个全局量,可以用来进行各模块之间的通信。信号定义的格式为: SIGNAL 信号名:数据类型; [例3.6]信号定义举例 SIGNAL A: STD_LOGIC; 4.2 VHDL的数据类型 VHDL是一种强类型的语言,每一个数据对象都必须具有确定的数据类型定义,并且只有在相同数据类型的数据对象之间,才能进行数据交换。VHDL预定义了大量的数据类型,下面介绍几种最常用的数据类型。 1 整数数据类型(INTEGER) 整数类型的数有正整数负整数和零,在VHDL中其取值范围是:

VHDL语言的基本要素(大全)

VHDL语言的基本要素 一、数据对象 VHDL语言的主要数据对象有信号,变量,常量。 信号—信号是电路中的物理量,对应于电路的连线、节点;信号说明全局量,用于描述中的构造体(Architecture), 实体(Intity),程序包(package)。 变量—变量是程序运算中的中间量,并不对应电路中的物理量。变量说明局部量,用于进程语句(process), 函数(Function), 过程(procedure)。 常量—常数也不对应电路中的物理量,当常量说明全局量,在构造体(Architecture), 实体(Intity),程序包(package),进程语句(process), 函数(Function), 过程(procedure)中均可使用。数据对象的定义格式: signal 信号名:数据类型,约束条件,表达式 Variable 变量名:数据类型,约束条件:=表达式 Constant 常量名:数据类型,约束条件:=表达式 例如:Variable count:INTEGER RANGE 0 TO 255:=10 Constant Daly:Time:=100ns 信号代入和变量赋值的区别:两者形式不同,操作过程也不相同。变量赋值符“:=”,信号的代入符“<=”。 在变量的赋值语句中,该语句一当执行,其值立即将赋予变量;而信号的代入,其语句执行后不会立即使信号发生代入,在下条语句

执行时,仍使用原来的信号值,如进程语句中的敏感表的信号代入就是如此。 二、数据类型 VHDL语言中的数据类型,一般而言可分为:标量类型和组合类型。在实际使用中,也可分成予定义类型和用户定义类型。VHDL语言是强类型的语言,主要可按如下分类和变换处理。 ①标准数据类型 ⑴整数⑵实数(浮点数)-1.0E+38~+1.0E38 ⑶位bit (0,1) ⑷位矢量⑸布尔量,“假”,“真”⑹字符(ASCⅡ)字符 ⑺时间 ⑻错误等级⑼自然数(大于等于0的整数)⑽字符串 (字符矢量) ②用户定义的数据类型 TYPE 数据类型名{数据类型名} 数据类型定义 ⑴枚举类型⑵整数类型⑶实数类型⑷数组类型 ⑸存取类型⑹文件类型⑺记录类型⑻时间类型③用户定义子类型 SUBTUPE 子类型名IS 数据类型名[范围] 例:SUBTYPE digit is INTEGER RANGE 0 TO 9 ④数据类型转换 数据类型的变换函数通常由“STD_LOGIC_1164”,

vhdl基本语法

VHDL 基础语法篇——VHDL VHDL硬件描述语言 1.1 VHDL概述 1.1.1 VHDL的特点 VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,由于 VHDL语言来源于C、Fortran等计算机高级语言,在VHDL语言中保留了部分高级语言的原 语句,如if语句、子程序和函数等,便于阅读和应用。具体特点如下: 1. 支持从系统级到门级电路的描述,既支持自底向上(bottom-up)的设计也支持从顶向下 (top-down)的设计,同时也支持结构、行为和数据流三种形式的混合描述。 2. VHDL的设计单元的基本组成部分是实体(entity)和结构体(architecture),实体包含设 计系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数 据传送。利用单元(componet)、块(block)、过程(procure)和函数(function)等语句, 用结构化层次化的描述方法,使复杂电路的设计更加简便。采用包的概念,便于标准设计文 档资料的保存和广泛使用。 3. VHDL语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型,VHDL 的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。既支持预定义的数 据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类 型语言。 4. 数字系统有组合电路和时序电路,时序电路又分为同步和异步,电路的动作行为有并行 和串行动作,VHDL语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构 和行为状态。 1.1.2 VHDL语言的基本结构 VHDL语言是数字电路的硬件描述语言,在语句结构上吸取了Fortran和C等计算机高级 语言的语句,如IF语句、循环语句、函数和子程序等,只要具备高级语言的编程技能和数字 逻辑电路的设计基础,就可以在较短的时间内学会VHDL语言。但是VHDL毕竟是一种描述 数字电路的工业标准语言,该种语言的标识符号、数据类型、数据对象以及描述各种电路的 语句形式和程序结构等方面具有特殊的规定,如果一开始就介绍它的语法规定,会使初学者 感到枯燥无味,不得要领。较好的办法是选取几个具有代表性的VHDL程序实例,先介绍整 体的程序结构,再逐步介绍程序中的语法概念。 一个VHDL语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路, 或者是一个计数器,也可以是一个CPU。一般情况下,一个完整的VHDL语言程序至少要包含程序包、实体和结构体三个部分。实体给出电路单元的外部输入输出接口信号和引脚信 息,结构体给出了电路单元的内部结构和信号的行为特点, 程序包定义在设计结构体和实体 中将用到的常数、数据类型、子程序和设计好的电路单元等。 一位全加器的逻辑表达式是: S=A⊕B⊕Ci Co=AB+ACi+BCi 全加器的VHDL程序的文件名称是fulladder.VHD,其中VHD是VHDL程序的文件扩展名, 程序如下: LIBRARY IEEE; --IEEE标准库 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fulladder IS -- fulladder是实体名称 PORT( A, B, Ci : IN STD_LOGIC; --定义输入/输出信号 Co, S : OUT STD_LOGIC ); END fulladder; ARCHITECTURE addstr OF fulladder IS --addstr是结构体名 BEGIN S <= A XOR B XOR Ci; Co <= (A AND B) OR (A AND Ci) OR (B AND Ci); END addstr; 从这个例子中可以看出,一段完整的VHDL代码主要由以下几部分组成: 第一部分是程序包,程序包是用VHDL语言编写的共享文件,定义在设计结构体和实体

03第三章VHDL语言基础习题答案.doc

填空题 1、一个标准的VHDL语言程序由库、实体和结构体组成。 2、个完整的VHDL语言描述是以对一个功能元件的完整描述为基础的 3、实体相当于电路图中一个器件符号。 4、端口说明( PORT )是对设计实体与外部接口的描述,也可以说是设计实体的外 部引脚的名称,它为实体与外部环境的动态通信提供通道 5、缓冲( BUFFER )端口描述模式和 INOUT 双向模式的区别在于只能接受一个驱动源,不允许多重驱动。 6、 VHDL语言的结构体的这些子结构互相之间是并行的。 7、将 VHDL语言的行为描述语句转换为门级描述由VHDL开发工具自动完成,是 VHDL 语言综合器的任务。 8、数据流描述也称为RTL (寄存器传输级)描述方式,它类似于布尔方程,它既 表示某种行为,又隐含结构信息,主要指非结构化的并行语句描述。 9、在结构描述中,元件间的连接是通过定义的端口界面来实现的。 10、结构描述的缺点是程序表示的是电路的结构连接关系,不能直观的得到设计电 路的逻辑功能。 综述题 1、写出实体的结构。 答案: ENTITY 实体名IS [GENERIC( 类属表 );] [PORT( 端口表 );] END ENTITY实体名; 2 、在 IEEE 库中定义了哪四种VHDL 语言的端口模式? 答案: IN :输入。 OUT :输出。 INOUT :双向,输入输出。 BUFFER :缓冲,其实质也是双向的,但是只能接受一个驱动源。 3、写出结构体的结构。

?2 ? 答案: ARCHITECTURE 结构体名OF 实体名IS [ 说明语句 ] BEGIN [ 功能描述语句] END ARCHITECTURE结构体名; 4 、写出结构体的功能性描述语句的 5 种子结构。 答案: 块语句、进程语句、子程序调用语句、信号赋值语句和元件例化语句。 5 、 VHDL 有哪四种描述风格? 答案: 行为描述、数据流描述、结构描述以及由前三种组合的混合描述。 实验题 实验【一】编写一个实体 实验目的:熟悉实体的编写方法。 实验任务:在 Quartus II 中建立一个 VHDL 语言文件,编写一个实体,该实体要求如下: 实体名: TEST 。 输入端口: INPUTA , INPUTB ,数据类型为BIT 。 输出端口: OUTPUT ,数据类型为BIT 。 没有类属说明。 答案: ENTITY TEST IS -- 实体 PORT( INPUTA,INPUTB: in bit; OUTPUT: out bit); --2 个输入引脚,类型BIT --1 个输出引脚,类型BIT END TEST; 实验【二】编写一个结构体 实验目的:熟悉结构体的编写方法。

第2章VHDL的语言要素讲义

第2章VHDL的语言要素 2.1 VHDL的命名规则: 2.1.1 数字型文字:d5<=16#E#E1 2.1.2 字符串型文字:文字字符串,数位字符串 数位字符串:位矢量,由数据类型为BIT的元素组成的一维数组。 书写格式:基数符“数值” 基数符:B—二进制数;O—八进制数;X—十六进制数例如:data1 <= B “1_1101_1110”; data2 <= O “15” ; data3 <= X “AD0”; data4 <= B “101_010_101_010”; data5 <= “101_010_101_010” ; --表达错误,缺B; dadata6 <= “0AD0”; --表达错误,缺X 2.1.3 标示符 标识符用来定义常数、变量、信号、端口、子程序或参数的名字等。 标示符包含:英文字母(大小写)、数字0~9 、下划线“_” 。 书写规则: ·有效的字符:英文字母包括26个大小写字母:a~z,A~Z;数字包括0~9以及下划线“_”。 ·任何标识符必须以英文字母开头。 ·必须是单一下划线“_”,且其前后都必须有英文字母或数字。 ·标识符中的英语字母不分大小写。 以下是几种标识符的示例: 合法的标识符: Decoder_1 , FFT , Sig_N , Not_Ack , State0 , Idle 非法的标识符: _Decoder_1 -- 起始为非英文字母 2FFT -- 起始为数字 Sig_#N -- 符号“#”不能成为标识符的构成

Not-Ack -- 符号“-”不能成为标识符的构成 RyY_RST_ -- 标识符的最后不能是下划线“_” data_ _BUS -- 标识符中不能有双下划线 return --关键字 扩展标识符:VHDL ’93标准还支持扩展标识符,但是目前仍有许多VHDL工具不支持扩展标识符。P20(1)、(2)、(3) 2.1.4\2.1.5 下标名和段名 ?(1)下标名指的是数组型变量或信号的某一个元素。 ?格式:标示符(表达式) ?SIGNALa,b:BIT_VECTOR(0 TO 3); ?SIGNAL m :INTEGER RANGE 0 TO 3; ?SIGNAL y,z :BIT; ?y <= a (m) ;-- 不可计算型下标表示 ?z <= b (3 ) ;-- 可计算型下标表示 ?(2)段名是多个下标名的组合,对应数组中某一段的元素 ?格式:标示符(表达式方向表达式) 方向:TO 或DOWNTO SIGNAL a ,z :BIT_VECTOR(0 TO 7); z(0 TO 3)<= a(4 TO 7);--z(0)<= a(4)、z(1)<= a(5)、… 2.1.6 注释:若要将一条语句加注释,在注释内容前加两个短划线。 2.2 VHDL语言的数据类型及运算操作符 Vhdl语言同其它语言一样有多种数据类型和运算符,且它们的定义也大多相同。VHDL语言的特点是用户可以自己定义数据类型。 如:type count is integer RANGE 0 to 10; 2.2.1 VHDL语言的客体(对象)及其分类 什么是客体? 可以赋予一个值的对象或者是数据类型所定义的对象。 客体主要包括3类

VHDL经典教程(精简快速入门版)

3 VHDL语言 VHDL: VHSIC Hardware Description Language. 3.1 VHDL语言基础 3.2 VHDL基本结构 3.3 VHDL语句 3.4 状态机在VHDL中的实现 3.5 常用电路VHDL程序 3.6 VHDL仿真 3.7 VHDL综合

HDL----Hardware Description Language 一种用于描述数字电路的功能或行为的语言。目的是提为电路设计效率,缩短设计周期,减小设计成本,可在芯片制造前进行有效的仿真和错误检测。 优点: HDL设计的电路能获得非常抽象级的描述。如基于RTL(Register Transfer Level)描述的IC,可用于不同的工艺。 HDL设计的电路,在设计的前期,就可以完成电路的功能级的验证。HDL设计的电路类似于计算机编程。 常用的HDL语言:VHDL 、Verilog HDL

?VHDL 是美国国防部在20世纪80年代初为实现其高速集成电路硬件VHSIC 计划提出的描述语言; ?IEEE 从1986年开始致力于VHDL 标准化工作,融合了其它 ASIC 芯片制造商开发的硬件描述语言的优点,于93年形成了标 准版本(IEEE.std_1164)。 ?1995年,我国国家技术监督局推荐VHDL 做为电子设计自动化硬件描述语言的国家标准。 VHDL 概述: VHDL VHSIC Hardwarter Description Language Very High speed integrated circuit VHSIC

VHDL优点: ?覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言; ?VHDL语言具有良好的可读性,既可以被计算机接受,也容易被人们所理解; ?VHDL语言可以与工艺无关编程; ?VHDL语言已做为一种IEEE的工业标准,便于使用、交流和推广。 VHDL语言的不足之处: 设计的最终实现取决于针对目标器件的编程器,工具的不同会导致综合质量不一样。

三VHDL语言基础

第三章VHDL语言基础 本章介绍VHDL语言的基础知识,具体容包括: 1、概述 2、VHDL程序的基本结构 库、程序包、实体说明、结构体、配置 3、VHDL的语言要素 语法规则、数据对象、数据类型、运算操作符 4、VHDL的描述语句 并行语句、顺序语句、子程序、属性语句 5、VHDL的描述方式 行为描述方式、寄存器传输级描述方式、结构描述方式 第一节概述 HDL(Hardware DescriptionLanguage):硬件描述语言,描述数字电路和系统的语言。具体来说,用于描述数字系统的结构、行为、功能和接口。 在EDA设计中,设计者利用硬件描述语言,可以描述自己的设计思想,完成设计输入的步骤。设计输入共有三种方法——原理图、文本、波形输入,其中,文本输入方式就是用硬件描述语言跟计算机交流,让计算机读懂设计者的设计。 VHDL的全称是Very-High-Speed Integrated CircuitHardware

DescriptionLanguage,译作甚高速集成电路硬件描述语言,是当前广泛使用的HDL 语言之一,并被IEEE和美国国防部采用为标准的HDL语言。 1、发展历程: 美国国防部1982年开发VHDL语言,在1987年被IEEE采用为标准硬件描述语言。在实际使用过程中,发现1987年版本的缺陷,并于1993年对87版进行了修订。因此,现在有两个版本的VHDL语言。 1)1987年的IEEE 1076(VHDL87) 2)1993年进行了修正(VHDL93) VHDL语言目前已成为,开发设计可编程逻辑器件的重要工具。 2、优点: VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点: 功能强大,设计方式多样 VHDL具有功能强大的语言结构, 可用简洁明确的代码来描述十分复杂的硬件电路。 VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。 (自上而下:“上”指的是整个数字系统的功能和定义,“下”指的是组成系统的功能部件(子模块)。自上而下的设计,就是根据整个系统的功能,按照一定的原则把系统划分为若干个子模块,然后分别设计实现每个子模块,最后把这些子模块组装成完整的数字系统。)

vhdl语言基础

第1章VHDL语言基础 1.1 概述 硬件描述语言(hardware description language,HDL)是电子系统硬件行为描述、结构描述、数据流描述的语言。目前,利用硬件描述语言可以进行数字电子系统的设计。随着研究的深入,利用硬件描述语言进行模拟电子系统设计或混合电子系统设计也正在探索中。 国外硬件描述语言种类很多,有的从Pascal发展而来,也有一些从C语言发展而来。有些HDL成为IEEE标准,但大部分是企业标准。VHDL来源于美国军方,其他的硬件描述语言则多来源于民间公司。可谓百家争鸣,百花齐放。这些不同的语言传播到国内,同样也引起了不同的影响。在我国比较有影响的有两种硬件描述语言:VHDL语言和Verilog HDL语言。这两种语言已成为IEEE标准语言。 电子设计自动化(electronic design automation,EDA)技术的理论基础、设计工具、设计器件应是这样的关系:设计师用硬件描述语言HDL描绘出硬件的结构或硬件的行为,再用设计工具将这些描述综合映射成与半导体工艺有关的硬件配置文件,半导体器件FPGA 则是这些硬件配置文件的载体。当这些FPGA器件加载、配置上不同的文件时,这个器件便具有了相应的功能。在这一系列的设计、综合、仿真、验证、配置的过程中,现代电子设计理论和现代电子设计方法贯穿于其中。 以HDL语言表达设计意图,以FPGA作为硬件实现载体,以计算机为设计开发工具,以EDA软件为开发环境的现代电子设计方法日趋成熟。在这里,笔者认为,要振兴我国电子产业,需要各相关专业的人士共同努力。HDL语言的语法语义学研究与半导体工艺相关联的编译映射关系的研究,深亚微米半导体工艺与EDA设计工具的仿真、验证及方法的研究,这需要半导体专家和操作系统专家共同努力,以便能开发出更加先进的EDA工具软件。软件、硬件协同开发缩短了电子设计周期,加速了电子产品更新换代的步伐。毫不夸张地说,EDA工程是电子产业的心脏起搏器,是电子产业飞速发展的原动力。本书从应用的角度向国内广大读者介绍VHDL编程技术,让大家掌握HDL编程,了解FPGA结构,学会使用EDA工具,为集成电路前端设计打下基础。 1.1.1 硬件描述语言的诞生 VHDL语言的英文全名是Very High Speed Integrated Circuit Hardware Description Language,即超高速集成电路硬件描述语言。HDL发展的技术源头是:在HDL形成发展之前,已有了许多程序设计语言,如汇编、C、Pascal、Fortran、Prolog等。这些语言运行

04 第四章 VHDL语言的基本要素 习题答案

填空题 1、VHDL语言的文字(Literal)主要包括数值型文字和标识符。 2、在VHDL语言的以数字基数表示的文字中,十进制计数的1582的表示方法是10#158#2。 3、在数位字符串中,B为二进制基数符号;O为八进制基数符号;X为十六进制基数符号。 4、下标用于指示数组型变量或信号的某一个元素。 5、VHDL语言的注释以--来表示。 6、VHDL语言中主要有4类基本的数据对象:常量(CONSTANT)、变量(VARIABLE)、信号(SIGNAL)和文件(FILES)。 7、在对信号进行赋初值时,使用:=表示没有延时,使用<=表示有延时。 8、VHDL是一种强类型语言,要求每一个数据对象必须具有确定的唯一的数据类型,而且只有数据类型相同的量才能互相传递和作用。 9、VHDL语言的数据类型按照数据来源来分,可以分为VHDL语言预定义的标准数据类型和用户自定义的数据类型。 10、位类型实际上是一个二值枚举型数据类型,只有两个可能的取值:0和1,用于表示逻辑0和逻辑1。 11、标准逻辑位类型是在IEEE的STD_LOGIC_1164程序包中定义的。 12、布尔类型和位类型类似,实际上是一个二值枚举型数据类型,有两个可能的取值:TRUE(真)和FALSE(假)。 13、VHDL语言中主要有4类操作符:逻辑操作符(LOGIC OPERATOR)、关系操作符(RELATION OPERATOR)、算术操作符(ARITHMETIC OPERATOR)和重载操作符(OVERLOADING OPERATOR)。 综述题 1、VHDL语言的数字型文字主要有哪几种表达方式,并且举例。 答案: ●整数型文字,如:1,123,518E2,12_345_678。 ●实数型文字,如:12.3,6.5E-2,12_23.45_32。 ●以数字基数表示的文字,如:10#158#2。 ●物理量文字,如:60s,1km。 2、VHDL语言标识符有哪些书写规范?

vhdl基本语法(简略共34页)

VHDL硬件描述语言 1.1 VHDL概述 1.1.1 VHDL的特点 VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,由于 VHDL语言来源于C、Fortran等计算机高级语言,在VHDL语言中保留了部分高级语言的原 语句,如if语句、子程序和函数等,便于阅读和应用。具体特点如下: 1. 支持从系统级到门级电路的描述,既支持自底向上(bottom-up)的设计也支持从顶向下 (top-down)的设计,同时也支持结构、行为和数据流三种形式的混合描述。 2. VHDL的设计单元的基本组成部分是实体(entity)和结构体(architecture),实体包含设 计系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数 据传送。利用单元(componet)、块(block)、过程(procure)和函数(function)等语句, 用结构化层次化的描述方法,使复杂电路的设计更加简便。采用包的概念,便于标准设计文 档资料的保存和广泛使用。 3. VHDL语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型,VHDL 的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。既支持预定义的数 据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类 型语言。 4. 数字系统有组合电路和时序电路,时序电路又分为同步和异步,电路的动作行为有并行 和串行动作,VHDL语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构 和行为状态。 1.1.2 VHDL语言的基本结构 VHDL语言是数字电路的硬件描述语言,在语句结构上吸取了Fortran和C等计算机高级 语言的语句,如IF语句、循环语句、函数和子程序等,只要具备高级语言的编程技能和数字 逻辑电路的设计基础,就可以在较短的时间学会VHDL语言。但是VHDL毕竟是一种描述 数字电路的工业标准语言,该种语言的标识符号、数据类型、数据对象以及描述各种电路的 语句形式和程序结构等方面具有特殊的规定,如果一开始就介绍它的语法规定,会使初学者 感到枯燥无味,不得要领。较好的办法是选取几个具有代表性的VHDL程序实例,先介绍整 体的程序结构,再逐步介绍程序中的语法概念。 一个VHDL语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路, 或者是一个计数器,也可以是一个CPU。一般情况下,一个完整的VHDL语言程序至少要包含程序包、实体和结构体三个部分。实体给出电路单元的外部输入输出接口信号和引脚信 息,结构体给出了电路单元的部结构和信号的行为特点, 程序包定义在设计结构体和实体 中将用到的常数、数据类型、子程序和设计好的电路单元等。 一位全加器的逻辑表达式是: S=A⊕B⊕Ci Co=AB+ACi+BCi 全加器的VHDL程序的文件名称是fulladder.VHD,其中VHD是VHDL程序的文件扩展名, 程序如下: LIBRARY IEEE; --IEEE标准库 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fulladder IS -- fulladder是实体名称 PORT( A, B, Ci : IN STD_LOGIC; --定义输入/输出信号 Co, S : OUT STD_LOGIC ); END fulladder; ARCHITECTURE addstr OF fulladder IS --addstr是结构体名 BEGIN S <= A XOR B XOR Ci; Co <= (A AND B) OR (A AND Ci) OR (B AND Ci); END addstr; 从这个例子中可以看出,一段完整的VHDL代码主要由以下几部分组成:

VHDL语言入门到精通

可编程逻辑器件 与VHDL程序设计技术 计划学时课堂教学36 实验教学18 教学目的 了解一类器件:FPGA/CPLD; 掌握一门设计语言:VHDL; 熟悉一种设计工具:Quartus II。 考试笔试50%,实验50%。 教材:以课件为主 第一章概述 一、设计自动化(Design Automation)数字系统:计算机,通信系统,控制电路,集成电路,数码设备,掌上电脑… 超大规模集成电路:Very Large Scale Integrated Circuit(VLSI) 计算机辅助设计:Computer Aided Design(CAD) 电子设计自动化(E lectronic D esign A utomation,EDA,电子设计自动化)(模拟电路+数字系统) 电路组成:分离元件→大、中、小规模IC→超大规模集成电路 设计方法:人工设计→CAD→EDA 二、EDA发展历史与现状 50年代──萌芽 用电子管计算机帮助设计晶体管计算机; 逻辑图的保存、检查、修改。 60年代──简单的单独的CAD软件 印刷电路板PCB+集成电路IC出现+计算机应用的推广。 PCB布线,电路模拟,电路分析,逻辑模拟。 70年代──第一代:CAD设备 小型专用计算机+CAD软件 逻辑模拟,逻辑优化,版图图形编辑+设计规则检查。 (Tango布线软件) 80年代──第二代:ICCAD软件系统 初步覆盖了集成电路自动设计全过程(逻辑图—产品); 主要针对PAL、GAL等器件; 逻辑图输入、逻辑模拟、逻辑综合、逻辑电路测试码生成、版图和PCB的自动布局布线。 Mentor,Cadence,ViewLogic,熊猫系统 90年代──第三代:覆盖所有级别的EDA开放式集成系统 高层次设计自动化,形式验证; 标准硬件描述语言VHDL; 时延、功耗驱动的高层次综合与版图自动布局布线; Synopsys,Mentor,Cadence… 2000年代──以SOC为中心 System on a chip; 初步实现了“概念驱动工程”的思想。 三、数字系统与VLSI

相关文档