第四章图表 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;

VHDL语言

VHDL语言
PORT (a, b : IN STD_LOGIC; co,so : OUT STD_LOGIC); END h_adder;
VHDL语言的基本结构
实体结构
ENTITY 实体名 IS PORT ( 端口名1,端口名2,…端口名n :方向 数据类型名; … 端口名a,端口名b,…端口名m :方向 数据类型名);
80年代初,产生VHDL(Very high speed IC HDL)语言。 1987.12 ,作为IEEE标准(87版)。 1993 ,经修改的VHDL再次被IEEE标准认证(93版)。 1995 ,中国国家技术监督局推荐为国家标准。
VHDL语言的优点
支持自上而下的设计方法(整体描述)
半加器描述事例: WHEN “00” => so<=‘0’; co<=‘0’ ; WHEN “01” => so<=‘1’; co<=‘0’ ; WHEN “10” => so<=‘1’; co<=‘0’ ; WHEN “11” => so<=‘0’; co<=‘1’ ;
P.42 表3-3
VHDL语言的基本结构
实体 用以描述外部端口
构造体 用以描述内部结构及行为
实体结构
ENTITY 实体名 IS PORT ( 端口名1,端口名2,…端口名n :方向 数据类型名; … 端口名a,端口名b,…端口名m :方向 数据类型名);
END 实体名;
半加器实体说明举例 ENTITY h_adder IS
。 l任何标识符必须以英文字母开头。 l必须是单一下划线“_”,且其前后都必须有英文字母或数字。 l标识符中的英语字母不分大小写。 l允许包含图形符号(如回车符、换行符等),也允许包含空格符。

EDA第4章 VHDL基础文字规则与操作符(4.3-4.4)

EDA第4章 VHDL基础文字规则与操作符(4.3-4.4)
信号是描述硬件系统的基本数据对象,它类似于 连接线。信号可以作为设计实体中并行语句模块间的 信息交流通道。在VHDL中,信号及其相关的信号赋值 语句、决断函数、延时语句等很好地描述了硬件系统 的许多基本特征。如硬件系统运行的并行性;信号传 输过程中的惯性延时特性;多驱动源的总线行为等。
第4章
VHDL基础
第4章
VHDL基础
变量数值的改变是通过变量赋值来实现的,其赋 值语句的语法格式如下: 目标变量名:=表达式; 如: VARIABLE A,B:BIT_VECTOR(0 TO 7); VARIABLE X,Y: REAL; X:=1.2; Y:=100.1+X; A:=“10101011”; A(7):=‘0’;
第4章
VHDL基础
• 常量、信号、变量的使用比较
• (1) 从硬件电路系统来看,常量相当于电路中的恒定 电平,如GND或VCC接口,而变量和信号则相当于组合 电路系统中门与门间的连接及其连线上的信号值。 • (2) 从行为仿真和VHDL语句功能上看,信号和变量的 区别主要表现在接受和保持信息的方式、信息保持与 传递的区域大小上。 • (3) 从综合后所对应的硬件电路结构来看,信号一般 将对应更多的硬件结构,但在许多情况下,信号和变 量并没有什么区别。 • (4) 虽然VHDL仿真器允许变量和信号设置初始值,但 在实际应用中,VHDL综合器并不会把这些信息综合进 去。
第4章
VHDL基础
5.段名
对应数组中某一段元素,是多个下标名的组合。表达形式: 标识符(表达式 方向 表达式) 方向----To 由低到高 DOWNTO 由高到低 如:signal a, z: bit_vector(0 to 7);-- 8位位矢量 z(0 to 3)<=a(4 to 7); --以段的方式进行赋值 z(4 to 7)<=a(0 to 3); --以段的方式进行赋值

第4讲-VHDL编程基础课件

第4讲-VHDL编程基础课件

第4讲 VHDL编程基础(1)
相应地,当我们使用VHDL语言设计一种硬件电路 时,我们至少需要描述三个方面旳信息:① 设计是在 什么规范范围内设计旳,亦即此设计符合某个设计规 范,能得到大家旳认可,这就是库、程序包使用阐明; ② 所设计旳硬件电路与外界旳接口信号,这就是设计 实体旳阐明;③ 所设计旳硬件电路其内部各构成部分 旳逻辑关系以及整个系统旳逻辑功能,这就是该设计 实体相应旳构造体阐明。
1.实体语句构造 实体阐明单元旳常用语句构造如下: ENTITY 实体名 IS [GENERIC(类属表);] [PORT(端口表);] END [ENTITY] [实体名];
第4讲 VHDL编程基础(1)
2.类属(GENERIC)阐明语句 类属(GENERIC)参量是一种端口界面常数,常以一 种阐明旳形式放在实体或块构造体前旳阐明部分。 内部电路构造和规模。 类属阐明旳一般书写格式如下: GENERIC([常数名:数据类型[:设定值] {;常数名:数据类型[:=设定值 ]});
第4讲 VHDL编程基础(1)
(3) 综合过程。任何一种语言源程序,最终都要转 换成门电路级才干被布线器或适配器所接受。
(4) 对综合器旳要求。VHDL描述语言层次较高, 不易控制底层电路,因而对综合器旳性能要求较高; Verilog和ABEL对综合器旳性能要求较低。
(5) 支持旳EDA工具。支持VHDL和Verilog旳EDA 工具诸多,但支持ABEL旳综合器仅仅Dataio一家。
PORT(A,B:IN STD_LOGIC; Y:OUT STD_LOGIC);
END COMPONENT NAND2; --元件连接阐明
第4讲 VHDL编程基础(1)
BEGIN U1:NAND2 PORT MAP(A=>A1,B=>B1,Y=>Y1); U2:NAND2 PORT MAP(A=>A2,B=>B2,Y=>Y2); U3:NAND2 PORT MAP(A3, B3, Y3); U4:NAND2 PORT MAP(A4, B4, Y4); END ARCHITECTURE ART2;

第4章VHDL基础

第4章VHDL基础

(2)定义语句
定义语句位于ARCHITECTURE和BEGIN之间,用于 对构造体内部所使用的信号、常数、数据类型和函数进 行定义,结构体的信号定义和实体的端口说明一样,应 有信号名称和数据类型定义,但不需要定义信号模式, 不用说明信号方向,因为是结构体内部连接用信号。
(3)并行处理语句
并行处理语句位于语句BEGIN和END之间,这些语 句具体地描述了构造体的行为。在刚开始,设计者往往
2)类属参数说明(可选项) 类属参数是一种端口界面常数,以一种说明形式放在 实体或结构体中。类属参数说明必须放在端口说明之前, 用于指定参数。类属参数一般用来指定VHDL程序中的 一些可以人为修改的参数值,比如:指定信号的延迟时 间值、数据线的宽度以及计数器的模数等。
学习目标
通过对本章内容的学习,学生应该能够做到: 了解:VHDL发展历程及特点,层次化的VHDL设计流程。 理解:VHDL程序的基本单元、基本结构和语法。 应用:掌握VHDL的编程设计,描述方法,顺序语句和并 行语句的使用方法,层次化设计的基本思想和原则。
主要内容 4.1 4.2 4.3 4.4 VHDL的基本组成 VHDL语言的基本要素 VHDL语言的基本语句 VHDL的基本实验。
(3)数据类型
VHDL中有多种数据类型。常用的有布尔代数型 (BOOLEAN),取值可为真(true)或假 (false);位型(BIT) 取值可为“0‖或“1‖;位矢量型(Bit-vector);整型 (INTEGER),它可作循环的指针或常数,通常不用于I/O 信号;无符号型(UNSIGNED);实型(REAL)等。另外还 定义了一些常用类型转换函数,如 CONV_STD_LOGIC_VECTOR(x,y)。
在层次化系统设计中,实体说明是整个模块或整 个系统的输入输出(I/O)。在一个器件级的设计中, 实体说明是一个芯片的输入/输出(I/O)。

vhdl基础

vhdl基础
对于每个对象,必须定义它的类和类型,类指明对象 属于4类对象中的哪一类,类型指明该对象具有哪种 数据类型。
➢引用范围
全局对象和局部对象之间存在不同的作用范围。
《CPLD技术及应用》教学课件
17
一、常量(Constant)
P64
➢定义 常量指在设计实体中不会发生变化的值,它可以在
很多部分进行说明,并且可以是任何数据类型。
5. VHDL的保留字不能用于作为标识符使用。 举例:
见教材P58。
《CPLD技术及应用》教学课件
14
四、下标名和段名 格式:
P58~P59
标识符(表达式)
标识符(表达式1 方向 表达式2) 举例:
Input(0)、Input(1)
定义Output(0 To 7)/Output(7 Downto 0)
《CPLD技术及应用》教学课件
11
➢‘#’ 以数制基数表示的文字。
格式:基#整数部分#[指数部分] 举例:
2#10110101# 8#123# 10#128# 16#FE#
《CPLD技术及应用》教学课件
12
二、字符串型文字
P57
1. 字符
字符——用单引号括起来的ASCII码字符。 VHDL对字符的大小写敏感,例如‘A’和‘a’是不同字符。
一、什么是VHDL?
P56
Very-High-Speed Integrated Circuit
Hardware Description
Language
全称——非常高速集成电路硬件描述语言
《CPLD技术及应用》教学课件
2
二、VHDL发展历史
VHDL诞生于1982年。1987年底, VHDL被IEEE和美国国防 部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版 本(IEEE-1076)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。此后 VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有 的非标准硬件描述语言。1993年,IEEE对VHDL进行了修订, 从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布 了新版本的VHDL,即IEEE标准的1076-1993版本。现在, VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到 众多EDA公司的支持,在电子工程领域,已成为事实上的通用 硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog 语言将承担起几乎全部的数字系统设计任务。

第4章 VHDL基础

第4章 VHDL基础
第 4 章 VHDL基础
VHDL结构 VHDL语法基础 VHDL常用语句 基本逻辑电路设计
精选完整ppt课件
1
4.1 VHDL结构
什么是VHDL?
VHDL是超高速集成电路硬件描述语言 (Very High Speed Integrated Circuit Hardware Description Language)的英文缩写。
精选完整ppt课件
10
例: 四位加法器实体说明程序
ENTITY add4 IS PORT(a, b: IN STD_LOGIC_VECTOR(3 downto 0); Ci: IN STD_LOGIC; Sum: OUT STD_LOGIC_VECTOR(3 downto 0); Co: OUT STD_LOGIC);
2. 位(BIT) 和位矢量(BIT_VECTOR)类型
用来表示数字系统中的信号值。位值用字符‘0’或者‘1’(将值放在 引号中)表示。与整数中的1和0不同,‘1’和‘0’仅仅表示一个位的 两种取值。
例:signal a ,b : bit; signal x : bit_vector(0 to 7); variable y : bit_vector(3 downto 0);
END add4;
由实体说明画出四位加法器add4的电路图如下所示。
a[3..0]
Sum[3..0]
b[3..0]
Ci
add4
Co
精选完整ppt课件
11
4. 结构体
结构体主要是描述实体的硬件结构、元件之间的 互连关系、实体所完成的逻辑功能以及数据的传输变 换等方面的内容。
结构体的语句格式:
architecture arch_name of e_name is [说明语句] begin 功能描述语句 end architecture arch_name ;

VHDL第4章基本数据类型与命令语句PPT教学课件

VHDL第4章基本数据类型与命令语句PPT教学课件
a2 WHEN b2=‘1’ ELSE
‘0’; 波形n-1 WHEN 条件n-1 ELSE
END priority; 波形n ;
2020/12/11
29
A并R行CH语IT句ECTURE1.p信r号io赋rit值y 语O句F 。example IS
(B3)EG选I择N 型 格式:WWIITTHH c表S达EL式ECSTELECT
2020/12/11
7
ENTITY bcdadder IS
port(op1,op2:IN integer range 0 to 9;
result:out integer range 0 to 31
);
END bcdadder;
ARCHITECTURE behavior OF bcdadder IS
BEGIN C<=A(2 DOWNTO 1); B<=A(3) & D & ‘1’;
END a;
2020/12/11
16
4.3 基本结构
组成

2020/12/11
17
程序包
--程序包说明部分 PACKAGE 程序包名 IS --说明部分 END<PAC-KA-G程E序><包程包序体包说名明> 部分
CONSTANT adjustnum:integer:=6;
signal binadd:integer range 0 to 18;
BEGIN
binadd<=op1+op2;
PROCESS(binadd)
variable tmp:integer:=0;
BEGIN
IF binadd>9 THEN
tmp:=adjustnum;

第四章 VHDL基础

第四章 VHDL基础

VHDL语言程序的扩展名是vhd,即*.vhd。
2015-3-15 16
3.2.1 实体说明
1.类属说明语句
【功能】说明类属常数的名字,数据类型,设定值。
【格式】 GENERIC (常数名: 数据类型 [:=设定值]; … 常数名: 数据类型 [:=设定值]); 【例】 GENERIC (m: TIME :=5ns);
2015-3-15 17
3.2.1 实体说明
2.端口说明语句 【功能】 说明输入输出信号的名字,输入输出模式,数据类型。 【格式】 PORT (端口名,[端口名]: [模式] 数据类型;
… 端口名,[端口名]: [模式] 数据类型);
【例】 PORT (a,b: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
2015-3-15
LIBRARY <库名>; USE <库名.程序包名.项目名>; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
26
3.2.3 包集合、库及配置
VHDL提供的标准包集合: STANDARD STD_LOGIC_1164
在STD 库中用时不须说明 在IEEE库中用时须说明
章节目录

3.1 硬件描述语言概述
3.2

VHDL语言程序结构
3.3 VHDL语法基础 3.4 VHDL常用语句 3.5 组合电路的VHDL描述 3.6 时序电路的VHDL描述
2015-3-15
6
3.2 VHDL语言程序结构
五个基本组成部分 库(Library) 程序包(Package)
实体说明(Entity Declaration) 主要部分
  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 引脚分配编辑器窗口
相关文档
最新文档