第四章图表 VHDL语言基础

合集下载

第四讲VHDL语言基础知识

第四讲VHDL语言基础知识

关键词 VHDL 实体 逻辑功能
此两处必须同名
逻辑行为描述
1、实体
格式
ENTITY 实体名 IS [GENERIC ( 类属表 );] [PORT ( 端口表 );] END 实体名;
说明
实体说明所设计的逻辑电路的输入、输 出信号及其特性(输入(in)输出(out)、双向 (inout)、buffer)
•文件(FILES)是传输大量数据的客体,包含一些专门数据 类型的数值。
对象说明的一般格式是: <对象类型> < 标识符表>:<子类型说明> <信号种类>: =<表达式>; 说明 标识符 <子类型说明>是类型名或类型名加限制条件 <信号种类>为BUS或REGISTER,该项为任选项 :=<表达式>为对象赋初值
IS
一个包集合由包集合标题和包集合体两 大部分组成。 包集合体是一个可选项。
5、库
格式
LIBRARY 库名; USE 库名. 程序包名. All;
USE语句的使用有两种常用格式: USE 库名.程序包名.项目名 ; USE 库名.程序包名.ALL ;
VHDL库的种类
• IEEE库:IEEE标准库, 是按IEEE组织制定的 工业标准进行编写的, 是内容丰富的资源库 使用需声明 • •STD_LOGIC_1164 程序包 •STD_LOGIC_ARITH 程序包 •STD_LOGIC_UNSIGNED 程序包
STD库:VHDL标准库,STANDARD和 TEXTIO程序包即收入在STD库中 使用无需声明
VHDL库的种类
• • •
ASIC库:EDA厂商提供库 使用需声明 WORK库:现行作业库,当前工作目录的所有设计 使用无需声明 USER库:用户自定义库 使用需声明

第四章 VHDL语言基础精品PPT课件

第四章  VHDL语言基础精品PPT课件

Sec.4.2. VHDL程序结构
1. VHDL程序结构 2. ⑴.实体说明(Entity declaration)
3. ⑵.结构体(Architecture body) 4. 定义与概念
5. ⑴.实体说明 6. ⑵.结构体
2.实体说明和结构体之间的关系
⑴.“包裹皮” 的概念
实体①
⑵.实体和结构体之间的关系
END Majority_vote; ARCHITECTURE examp1 OF Majority_vote IS
BEGIN Y<=(a and b)or (b and c)or (a and c);
END examp1;
三.Signal(信号)及其并行性
定义:信号是电子电路内部硬件实体相互连接的信息表示。
表4-1.数字系统各层次划分及功能
层次名称 系统级(算法级)
寄存器传输级 (RTL级) 逻辑级(门级) 电路级
行为级描述
针对设计技术条 件、流程图、算 法进行系统级综 合
寄存器传输
逻辑函数、状态 方程 传输函数
各层次功能及结构
结构级描述
物理层表示的对象
处理器、控制器、存 集成电路芯片、印刷电路
储器、总线等
第四章 VHDL语言基础
VHDL语法和语句
本章任务
• 1.VHDL语言的基础知识,如何用VHDL语言描述数字系统。 • 2.VHDL程序结构,实体和结构体的概念。实体说明、结构体说明。结
构体的3种描述方法。 • 3.QuartusⅡ开发软件及应用。图形编辑方法;数字系统的VHDL文
本文件编辑方法。 • 4.一些基本的VHDL语法。 • 数组(Array)、 • 并行语句(Concurrent Statement)、 • 选择信号代入语句(Selected Signal Assignment Statement)、 • 并行信号赋值语句(Concurrent Signal Assignment

VHDL第四章

VHDL第四章

数位字符串的例 data1<= B”1_1101_1110” data2<=O”15” data3<=X”AD0” 二进制数数组,位矢数组的长度为9 八进制数数组,位矢数组的长度为6 十六进制数数组,位矢数组的长度为12
a_vect <= B”1100_0011_0011_1100” a_vect <= ”1100001100111100” a_vect <= X”C33C” a_vect <= X”C3_3C”
以段的方向进行赋值的例 SIGNAL a , z :BIT_VECTOR ( 0 TO 7 ); SIGNAL b SIGNAL c SIGNAL e SIGNAL d ………. z(0 TO 3 ) <= a (4 TO 7 ); z(4 TO 7) <= a( 0 TO 3); b(2)<= ‘1 ‘; b(3 DOWNTO 0) <=“1010” c( 0 TO 3) <= “0110”; c(2) <= d; c <= b; e <= c; e <= c (0 TO 3); e <=c(1 TO 4) Right Wrong! 双引号表示一维的 字符数组(字符串) 向量用双引号, 单个位用单引号 : STD_LOGIC_VECTOR ( 4 DOWNTO 0 ) ; : STD_LOGIC_VECTOR ( 0 TO 4 ) ; : STD_LOGIC_VECTOR ( 0 TO 3 ) ; : STD_LOGIC ;
……… SIGNAL a,b,c,y,z : INTEGER; ………. PROCESS ( a,b,c,) BEGIN y<= z*b; z<= c-x; y<= b; END PROCESS; ……………

vhdl第四章

vhdl第四章

4.1 VHDL语言的客体及其分 类
注意: 1.常数定义语句通常放在程序的开始; 2.常数定义语句所允许的设计单元有实体、结构 体、包集合、块、进程和子程序; 3.常数所赋值应与定义的数据类型一致; 4.在包集合中定义的常数可暂不赋值,它可以在 包体中设定。 5.常数的可视性,即常数的使用范围取决与它被 定义的位
4.1 VHDL语言的客体及其分 类
3. 信号(Signal) 注意: 1). 信号的赋值不是是立即有效的,且赋值时可以附加延时,但非必须; 2).信号的使用和定义范围是实体、构造体和包集合,不能在进程、函数和 子程序中定义; 3).信号是全局量,可以用来进行进程间的通信; 4).初始值不是必须的,综合器将略去所有初始值。因为实际芯片在上电后 并不能确保其初始状态的获取,初始值只在VHDL行为仿真中有效; 5). 信号可以有多个驱动源,但必须将此信号的数据类型定义为决断型数据 类型; 6).实体的端口是一种隐形的信号,信号可以看成是实体内部的端口。因此, 端口的定义实质上是作了隐式的信号定义,并附加了信号流动的方向。 7).信号赋值时给定的延时在综合器综合时将被略去。
第4章VHDL数据类型和运算操 作符
4.0 VHDL文字规则 4.1 VHDL语言的客体及其分类 4.2 VHDL语言的数据类型 4.3 VHDL语言的运算操作符
4.2 VHDL语言的数据类型
强类型语言的优点: 使VHDL编译或综合工具很容易地找出设计中的各种常见错误。 分类: 预定义数据类型(标准数据类型) 用户定义数据类型 1.标准数据类型 是VHDL最常用、最基本的数据类型,这些数据类型都已在VHDL标准的包 集合STANDARD和STD_LOGIC_1164及其它标准包集合中作了定义, 并可在设计中随时调用。 ⑴整数(Integer) 定义:与数学中的整数的定义相同,代表正整数、负整数和零。 范围:-2147483647~ +2147483647,即:-(231-1)~+(231-1) 实例:+16,+235,-23 SIGNAL bay :INTEGER RANGE 0 TO 15;

第4章VHDL语言基础

第4章VHDL语言基础
BEGIN 结构体描述部分;
END 结构体名;
4.1.3 结构体部分
结构体组成

构 体

明 结

体 结 构 体
功 能 描 述
常数说明 数据类型说明
信号说明 例化元件说明 子程序说明
块语句 进程语句 信号赋值语句 子程序调用语句 元件例化语句
结构体描述风格
行为描述 描述该设计单元的功能,主要使用函数、过程和进程语 句,以算法形式描述数据的变换和传送
例4-4
Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Use ieee.std_logic_arith.all;
行为描述
Entity eqcomp4 is Port (a,b: in std_logic_vector (3 downto 0); equals: out std_logic);
4.1.2 实体部分
实体(ENTITY)
实体是一个设计实体的表层设计单元,其功能是 对这个设计实体与外部电路进行接口描述。它规定了 设计单元的输入/输出接口信号或引脚,是设计实体 经封装后对外的一个通信界面。类似于原理图中的一 个部件符号。
4.1.2 实体部分
实体格式
ENTITY 实体名 IS
书写格式: GENERIC([常数名:数据类型[:设定值]
{;常数名:数据类型[:=设定值 ]}); 例4-1
GENERIC (cntwidth : integer:=4);
4.1.2 实体部分
PORT端口
用于定义模块所有的输入/输出信号,相当于定义一个 模块符号

EDA技术和VHDL设计第4章 VHDL语言要素.ppt

EDA技术和VHDL设计第4章 VHDL语言要素.ppt

10#235#
(十进制数表示,等于235)
2#1110_1011#
(二进制数表示,等于235)
8#353#
(八进制数表示,等于235)
16#EB#
(十六进制数表示,等于235)
16#E#E1
(十六进制数表示,等于16#E0#,等于
2#11100000#,等于224)
16#F.01#E2
(十六进制数表示,等于16#F01#,等于3841.00)
Data_ _bus Copper_ _ Return tx_clk
--非法标识符,不能含有多个下划线 --非法标识符,不能以下划线结束 --非法标识符,关键字不能用作标识符 --合法标识符
11
第4章 VHDL语言要素 VHDL93标准还支持扩展标识符,以反斜杠来界定,免
去了87标准中基本标识符的一些限制,如:可以以数字打头, 允许包含图形符号,允许使用VHDL保留字,区分字母大小 写等。扩展标识符举例:\entity\、\2chip\、\EDA\、\eda\、 \aa\\bb\。但目前仍有较多VHDL工具不支持扩展标识符,所 以本书仍以87标准为准。由于VHDL语言不区分大小写,在 书写时一定要养成良好的书写习惯。一般而言,应用关键词 时应大写,自行定义的标识符应小写。
2
第4章 VHDL语言要素 其中,数字间的下划线仅仅是为了提高文字的可读性,相当 于一个空的间隔符,没有其他意义,也不影响文字本身的数 值。 (2) 实数(Real)。实数也是十进制的数,但必须带有小数 点。它类似于数学上的实数,或称浮点数,表示范围是 1.0E38~1.0E38。实数的表达方式举例: 0.0,123.45,6.0,78.99E - 2( = 0.7899), 12_345.678_999(=12345.678999)

第4章 VHDL语言基础

第4章  VHDL语言基础

4.2.4 操作符
与传统的程序设计语言一样,VHDL的各种表达式由操作数和操作 符组成。其中,操作数是各种运算的对象,而运算操作符则规定 运算的方式。VHDL中共有四类操作符:算术运算符、关系运算符、 逻辑运算符和符号运算符。 1.操作符的功能和使用操作数的数据类型 2.各种操作符的使用说明
4.1.4 库
在使用VHDL语言进行设计时,需要将别人或自己的设计成果汇集 在一个或几个库中,方便调用,以便提高设计效率。VHDL库就是 用于存放预定义好的数据类型、子程序等设计单元的集合体。 1.VHDL库 VHDL中的库大致可归纳为5种,分别为IEEE库、STD库、ASIC 矢量库、WORK库和用户定义库。
b:=3.0;
c:=d+e; 信号赋值语句的格式为: 信号名 <= 信号变量表达式;
例如,用户对信号“a”进行赋值,代码如下所示:
a<=b;
4.3.2 IF语句
句 Then 顺序语句
IF语句是一种条件语句,它根据语句中所设置的一种或多种条件,有选择地执行指定的顺序语 句,其语句的格式有三种,分别如下所示: //第一种IF语句结构
[实体说明部分]; END[ENTITY]<实体名>;
1.GENERIC类属说明语句 2.PORT端口说明
4.1.2 结构体
设计单元中的结构体主要用来描述设计的内部结构或逻辑功能。 在设计中,设计人员常常将一个设计实体比喻成一个盒子,实体说 明可以被看作是一个“黑盒子”。通过它,只能了解其输入和输 出,无法知道盒子的内容。而结构体描述盒子内部的详细内容。 在VHDL语言中,一个结构体的具体格式,如下所示: ARCHITECTURE<结构体名>OF<实体名>IS [结构体说明部分]; BEGIN <并行处理语句>;

第4章 VHDL语言基础

第4章 VHDL语言基础

设计实体
结构体1
结构体2
结构体3
。 。 。
结构体n
FPGA-CPLD原理及应用
结构体的语法
第4章 VHDL语言基础
architecture 结构体名称 of 实体名称 is [说明语句] ;
begin [(功能描述)语句];
end [architecture] 结构体名称;
注:同一实体的结构体不能同名。定义语句中的常 数、信号不能与实体中的端口同名。
equal: out std_logic ); end eqcomp4;
A[3..0] B[3..0]
equal
FPGA-CPLD原理及应用
端口声明
第4章 VHDL语言基础
确定输入、输出端口的数目和类型。
Port (端口名称{,端口名称}:端口模式
… 端口名称{,端口名称}:端口模式 );
数据类型; 数据类型
FPGA-CPLD原理及应用
VHDL组成
第4章 VHDL语言基础
库 包 实体
结构体
eqcomp4.vhd
--eqcomp4 is a four bit equality comparator
Library IEEE; use IEEE.std_logic_1164.all;
entity eqcomp4 is port(a, b:in std_logic_vector(3 downto 0);
FPGA-CPLD原理及应用
第4章 VHDL语言基础
计数器等效描述(out与buffer的区别)
FPGA-CPLD原理及应用
3、数据类型
第4章 VHDL语言基础
指端口上流动的数据表达格式,为预先定好的数据类型,如: bit、bit_vector、integer、std_logic、std_logic_vector 等。 例: entity m81 is port (a: in std_logic_vector(7 downto 0); sel: in std_logic_vector(2 downto 0); b:out bit ); end entity m81;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.6 VHDL语法 Port、Mode、Type
一、几种关键词的说明 1.Modes(模式): 2.数据类型 (Data Type): 3.信号( Signal ):
1.Modes(模式): 4种工作Modes: ⑴.输入模式: ①.CLK, Enable, Load, Reset, CLR, Preset; ②.单方向数据输入,Address BUS,etc; ③.不用的输入端一般接地,以防止浮动引入干扰信号。
寄存器传输级 (RTL级) 逻辑级(门级) 电路级
寄存器传输
算术逻辑单元、 乘法器、寄存器 等
门、触发器 晶体管、连接线
逻辑函数、状态 方程 传输函数
3.VHDL程序结构的组成
程序结构由五部分组成: ⑴.实体(Entity): 描述设汁系统的外部接口信号; ⑵.结构体(Architecture):用于描述设汁系统的行为、 系统数据(信号)的流程、或系统组织的结构形式。 ⑶.配置(Configuration):用于从库里选取所需单元(模块) 来组成系统设计的不同规格和不同版本, 使被设计系统的功能或行为改变。 ⑷.包集合(Package):存放各种设计模块能共享的 数据类型、常数和子程序等。 ⑸.库(Library):用于已存放已编译的实体、 结构体、包集合&配置及第3方开发的元器件等。
图4.2.1. VHDL实体和结构体
2.VHDL的分层结构
表4.1.1.数字系统各层次划分及功能
各层次功能及结构 层次名称 系统级(算法级) 行为级描述
针对设计技术条 件、流程图、算 法进行系统级综 合
结构级描述
处理器、控制器、存 储器、总线等
物理层表示的对象
集成电路芯片、印刷电路 板(PCB)、多个模块的 连接 芯片、布图和布线、模块 结构图 单元电路、电路模块等 晶体管版图、连接线段、 节点等
②.单向data输出; ③.不用的输出端不能接地,以防止输出为高电平时烧坏 CPLD/FPGA的引脚。
图4.6.2 缓冲端口与输出端口的区别
⑶.缓冲模式(Buffer Mode):
缓冲模式允许从端口引出信号,并且向CPLD引入一个反馈信号。 即缓冲端口可用于输出也可用于反馈。缓冲端口的驱动源可以 是:被设计实体的内部信号源或其它实体的缓冲端口。缓冲端 口不允许多重驱动,不与其它实体的双向端口、输出端口相连。
1.Port data type VHDL语言标准所定义的标准数据类型有10种。 ①.整数类型(INTEGER TYPE) ②.实数或浮点类型(REAL TYPE or FLOATING TYPE) ③.位类型(BIT TYPE) ④.位矢量类型(BIT_VECTOR TYPE) ⑤.布尔类型(BOOLEAN TYPE) ⑥.字符类型(CHARAVTER TYPE) ⑦.时间类型(TIME TYPE) ⑧.字符串类型(TRING TYPE) ⑨.自然数、整数类型(NATURAL TYPE) ⑩.错误类型(NOTE,WARNING,ERROR,FAILURE TYPE) 2.用户在电子系统设计时,自行定义的数据类型共8种。 ①.整数类型(INTEGER TYPE) ②.实数或浮点类型(REAL TYPE or FLOATING TYPE) ③.枚举类型(ENUMERATEI TYPE) ④.数组类型(ARRAY TYPE) ⑤.存取类型(ACCESS TYPE) ⑥.文件类型(FILE TYPE) ⑦.时间类型(TIME TYPE) ⑧.记录类型(RECODE TYPE) 这些数据类型在后面章节用到时将会介绍。
Buffer A B
≥1
X<=A or B
数据流描述方法

C
y<=X and C Out
⑷.输入/输出模式( Input/output mode ): 双向模式
2.数据类型 (Data Type):
VHDL中Type称为类型,它除了定义端口标识名称、端口定义外, 还要标明输出输入端口的数据类型。表示port、Signal或variable 的性质,决定对象可能有什么值。 用于VHDL语言中的IEEE1706/93标准规定, EDA综合工具 提供的数据类型有布尔型(Boolean)、位型(Bit),位矢量型 (Bit-vector)和整数型(Integer)。 VHDL语言编写的程序是电子系统的行为描述、功能的说明和 结构的组织,使用规范化语言,有着很强的约束性。 不同的数据类型不能直接代入,相同的类型,位长不同也不能代入。 除了上述两种不同标准规定的数据类型以外, 数据类型根据使用目的分为: ⑴.用于EDA工具,对电子系统进行综合的数据类型。 如标量类型(SCALAR TYPE),复合类型(COMPOSITE TYPE)。 ⑵.用于EDA工具,对电子系统进行仿真的数据类型。 如存取类型(ACCESS TYPE)。
• • • • ①.IN ②.Out ③.IN/OUT ④.Buffer
• ⑵.Data type:
• • • • • • ①.Boolen ②.bit ③.bit_vector ④.integer ⑤.std_Logic ⑥. std_Logic_vector
3.结构体说明 结构体的语法格式:
ARCHITECTURE 结构体名 OF 实体名 IS 关键字 BEGIN : : END 结构体名 BEGIN和END结构体名组成结构体框架语句对, 从第2行开始用布尔表达式定义输入与输出之间的逻辑关系。
1位加法器
≥1
A B
Y
A B
≥1
≥1
Co

≥1 ≥1

y
CO C
C
(b)VHDL符号
(a)加法器逻辑电路
例4.3.1.
• --full_add.vhd • --full adder :adds two bits, a and b, plus input carry • --to yield sum bit and output carry.
• 以C语言为基础,充分保留了C语言的简洁、高效和编程风格。语法宽 松。
2.EDA技术的发展 ⑴ .Protell(Tonger)--印刷线路板(PCB)设计;
⑵. Simulation Software—multisim & Max+plusⅡ; ⑶.Design 、Compilation& Simulation 软件-QuartusⅡ &ISE
Behavior描述
Data Flow描述
结构体配置
CONFIGURATION定义
Sec4.3.实体和结构体
1.实体的组成及一般格式 :
≥1
Co
A B C Y CO
A B C
≥1 ≥1

≥1 ቤተ መጻሕፍቲ ባይዱ1

y
(a)逻辑电路图 图4.3.1
(b)VHDL符号
一位数加法器逻辑电路和VHDL符号
实体的组成是由实体名、类属表、端口表、实体说明部分和实体 语句部分组成。 根据IEEE标准,实体组成的一般格式如下:
实体的书写格式
Entity 实体名 IS [GENERIC (参数类属表)] [port(端口表)] 实体端口说明部分 ; END(实体名 );
文本文件 文本文件
实体说明(描述)
结构体(描述) 功能定义 行为描述 数据流程 系统结构
图4.2.2 VHDL程序文件结构
例4.3.1.
图4.3.1 一位加法器逻辑电路
图4.3.2 例4.3.2逻辑电路图
• 例4.3.2.图 • 对下面的逻辑电路图4.3.2,写出用BIT类型定义端口的VHDL文件。
A B

≥1
C D

≥1
Y
解:电路的逻辑表达式Y= ((AB+A’C’)+D)’ 用VHDL描述成设计实体。 ENTITY logic_circuit IS PORT(a,b,c,d : IN BIT; y : OUT BIT); END logic_circuit; ARCHITECTURE examp1 OF logic_circuit IS BEGIN Y<=not((a and b)or ((not a) and(not c))or d); END examp1;
Sec4.4.用QuartusⅡ开发数字系统 (附录A) Sec4.5.QuartusⅡ的开发流程
图4.4.1 QuartusⅡ的设计流程图
设计输入 设计编译 功能仿真 时序仿真 硬件配置与验证
图4.5.1 QuartusⅡ启动窗口
图4.5.2建立工程项目名称及顶层实体名
工程文件夹 工程名程
顶层实体名
4.结构体的描述方法 • 1.行为描述法: ( behavioral description)这是以元 器件或电路模块为基础的描述方法,描述元器件或电路模 块之间输入、输出的逻辑关系,是对它们性能或行为的描 述。在VHDL语言中对这一类的描述称作行为描述。 • 2.数据流描述法:数据流描述(dataflow description) 法主要反映数据经过一定的逻辑运算后在输入和输出之间 的传送过程。这种描述方法以表示数据在设计实体中从输 入到输出的传输或流向为目的。使用并发语句 (concurrent procedure call也叫并发过程调用语句) 描述。 • 3.结构描述法:(structural description)描述结构 体功能的第3种方法是结构描述法,它以描述元部件 (component)为基础,通过描述模块与模块之间的连接 关系来表示被设计实体的构成和性能。这种描述方法适用 于多层次设计,把一个复杂的系统分解成多个子系统,将 每一个子系统设计成一个模块,再用结构描述法将各模块 之间的连接关系写出来形成一个整体。
图4.5.3 新建VHDL 文件对话框
图4.5.4 VHDL文本编辑窗口输入代码
扦入模板
图4.5.5 引脚分配编辑器窗口
相关文档
最新文档