VHDL程序结构介绍

合集下载

vhdl程序的基本结构vhdl程序一般由5个部分组成

vhdl程序的基本结构vhdl程序一般由5个部分组成

块语句
块标号:BLOCK[保护表达式] [类属子句;] [端口子句;] [块说明部分;] BEGIN
<块语句部分;>
; END BLOCK 块标号
类属子句用于参数的定义;端口子句用于信号的定义; 块说明部分对该块要用到的信号、常数、元件和子程序 等进行说明;块语句部分对该块的功能进行描述,块语 句部分的语句是并行执行的,和书写顺序无关。
缺省说明: library std; use std.standard.all;
常用库及其程序包
IEEE: IEEE认可的标准库 std_logic_1164:定义了 std_logic, std_logic_vector, std_ulogic, std_ulogic_vector 等数据类型
VHDL 程序的基本结构
设计实体
实体说明
构造体
设计实体的组成
实体说明
Entity <实体名> is
[类属说明;] [端口说明;]
[实体说明部分;] [实体语句部分;] End [entity]<实体名>;
最简单的例: entity nothing is end nothing;
实体说明--类属说明
类属为设计实体和外部环境通讯的静态通信提供通道。可以定
实体说明--实体语句部分
是设计实体接口的共同部分。只能由并行断 言语句、并行过程调用语句、被动进程语 句组成,且不能在语句中给信号赋值。
设计实体
实体说明
构造体
设计实体的组成
构造体
architecture <构造体名> of <实体名> is
[构造体说明语句;]
Begin
<功能描述语句;>

《VHDL程序基本结构》课件

《VHDL程序基本结构》课件

VHDL程序基本结构示意图
VHDL程序基本结构
这是一张示意图,展示了VHDL程序的基本结构和各个部分之间的关系。
VHDL程序编写实例
这里将展示一个简单的VHDL程序编写实例,以帮助理解VHDL程序的应用和编 写方法。
总结
通过本课程,我们了解了VHDL程序的基本结构和编写方法,以及各个部分的功能和关系。希望这些知识对你 的学习和工作有所帮助。
VHDL程序的基本组成
VHDL程序由实体说明部分、 架构说明部分、信号声明与 处理部分和过程描述部分组 成。
VHDL程序的编写流程
编写VHDL程序的流程包括定 义实体、编写架构、声明信 号和编写过程。
实体说明部分
ห้องสมุดไป่ตู้
1 实体声明
实体声明定义了模块的输入输出接口,包括 输入输出端口和内部信号。
2 输入端口声明
输入端口声明用于定义模块的输入信号和其 属性,如信号类型和位宽。
3 输出端口声明
输出端口声明用于定义模块的输出信号和其 属性,如信号类型和位宽。
4 端口映射
端口映射将模块的输入输出端口与上层设计 连接起来,以实现功能。
架构说明部分
1
架构声明
架构声明定义了模块的行为逻辑和组成元素,包括信号和过程。
2
参考文献
1. VHDL程序设计教程 2. VHDL语言基础与应用 3. VHDL编程入门
信号赋值语句
信号赋值语句用于给信号赋予特 定的值,以实现逻辑功能。
信号处理语句
信号处理语句用于处理信号的逻 辑运算和状态转换,以实现电路 功能。
过程描述部分
过程声明
过程声明用于定义过程的名称 和输入输出参数。
过程体

VHDL语言的基本结构

VHDL语言的基本结构
1 实体说明 1)实体语句结构 ENTITY 实体名 IS [GENERIC(类属表);] [PORT(端口表);] END ENTITY 实体名 2)类属参数说明 GENERIC([常数名:数据类型[:设定值] {;常数名:数据类型[:设定值]};
4
一、VHDL语言设计的基本单元及其构成
3)端口说明 PORT(端口名{,端口名}:方向 数据类型; 是对设计实体与外部接口 的描述,即对元件引脚、 ┇ 数据类型和I/O方向的描述 端口名{,端口名}:方向 数据类型); 1端口名
设计实体
进程 或其它并行结构 结构体 n (ARCHITECTURE 进程 或其它并行结构
配置(CONFIGURATION)
VHDL程序设计实体的一般结构
2
VHDL语言的基本结构
主要内容
一、 VHDL语言设计的基本单元及其构成 二、 VHDL语言构造体的子结构描述 三、 包集合、库及配置
3
一、VHDL语言设计的基本单元及其构成
VHDL语言
15
二、VHDL语言构造体的子结构描述
【例】4位二进制加法计数器构造体逻辑描述。
SIGNAL cnt4:INTEGER RANGE O TO 15; ... PROCESS(clk,clear,Stop) BEGIN IF clear='0' THEN cnt4<=0; ELSIF clk'EVENT AND clk='1' THEN IF stop='0' THEN cnt4<=cnt4+1; END IF; END IF; END PROCESS; --注意cnt4的数据类型
存盘文件 为 bpac.vhd

VHDL程序的基本结构

VHDL程序的基本结构

VHDL程序的基本结构(1)LIBRARY和PACHAGE的声明部分作⽤:库(Library)是⽤于存放预先编译好的程序(package),程序包中定义了数据集合体、逻辑操作和元件等。

主要是声明在设计或实体中将⽤到的常数,数据类型,元件及⼦系统等。

使⽤格式:LIBRARY 库名;USE 库名.程序包名.ALL;例如: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;(2)ENTITY定义作⽤:定义本设计的输⼊/出端⼝,即定义电路的外观,即I/O接⼝的类型和数量使⽤格式:格式:ENTITY 实体名 ISport( 端⼝名:端⼝模式数据类型;........端⼝名:端⼝模式数据类型;)END 实体名;例:ENTITY MUX41A ISPORT (A,B,C,D,s0,s1,s2,s3 :IN STD_LOGIC;Y : OUT STD_LOGIC);END ENTITY MUX41A;(3)ARCHITECTURE定义作⽤:定义实体的实现。

即电路的具体描述,说明电路执⾏什么动作或实现功能。

使⽤格式:ARCHITECTURE 结构体名 of 实体名 ISbegin描述语句;end 结构体名;例如:ARCHITECTURE BHV OF MUX41A ISSIGNAL S:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINS <= s3 & s2 & s1 & s0 ;Y<=A WHEN S="1110" ELSEB WHEN S="1101" ELSEC WHEN S="1011" ELSED WHEN S="0111" ELSE‘1’;END BHV;。

VHDL程序结构

VHDL程序结构

过程(PROCEDURE)
过程语句的结构:
PROCEDURE 过程名(参数1;参数2;… )IS [定义语句];
BEGIN [顺序处理语句];
END 过程名;
过程语句的调用格式: 过程名(实际参数表);
例: 设计一个从两个整数中求取最大值的过程。
PROCEDURE max(a, b: IN INTEGER;
E
C
T
PROCESSn
进进程程和和进进程程 之之间间是的并数行据 的交换通过信 号完成
U
进程内部是
R E
顺序语句
2.5 子程序( SUBPROGRAM )
过程(PROCEDURE) VHDL的子程序有两种类型: 函数(FUNCTION)
子程序的特点:
➢ 子程序可以在结构体或程序包的任何位置被调用,而且可以 反复调用。
端口模式 端口数 据类型
端口模式
用来说明数据传输通过该端口
的方向。
Entity
IN: 数据只能从端口流入实体
OUT: 数据只能从端口流出实体
INOUT: 数据从端口流入或流出实体
BUFFER:
数据从端口流出实体,同时
可被内部反馈
IN OUT
INOUT
BUFFER
Out与Buffer的区别
• Entity test1 is port(a: in std_logic; b,c: out std_logic ); end test1;
黑盒
co:
OUT std_logic);
END端b口la模ck式_box; 端口数
据类型
rst d[7:0] clk
q[7:0] co
实体结束

第五讲 VHDL语言程序的基本结构

第五讲 VHDL语言程序的基本结构

端口说明
端口说明是对基本设计实体(单元)与外部接口的描 述,也可以说是对外部引脚信号的名称,数据类型和 输入,输出方向的描述; 其一般书写格式为: PORT(端口名{,端口名}:方向 数据类型名; 端口名{,端口名}:方向 数据类型名); 举例: PORT(d0,d1,sel : IN BIT; q : OUT BIT; bus : OUT BIT_VECTOR(7 DOWNTO 0) );
敏感信号: 只要有一个发 生变化(如由 "0"变成"1" 或由"1"变为 "0")都将启 动PROCESS语 句.
PROCESS语句的特点
(1) 进程内部的所有语句都是顺序执行的. (2) 多进程之间,是并行执行的,并可访问构 造体或实体中所定义的信号. (3) 进程的启动是由进程标识符Process后的 敏感信号来触发,也可用WAIT语句等待一个 触发条件的成立. (4) 各进程之间的通信是由信号来传递的.
第2章 VHDL语言程序的基本结构 章 语言程序的基本结构
主要内容
VHDL语言设计的基本单元及其构成 : 语言
实体 + 构造体
VHDL语言构造体的子结构描述 : 语言
块,进程,子程序
包集合, 包集合,库及配置
一个完整的VHDL语言程序 通常包含5个部分:
必 备 部 分
库,包集合 实体(Entity)
构造体:描述系统内部的结构和行为;
包集合:存放各种设计模块都能共享的数据类型, 常数和子程序等; 库: 存放已经编译的实体,构造体,包集合和 配置.
前四种是可分别编译的源设计单元
2.1 VHDL语言设计的基本单元及其构成 语言 实体+构造体 构造体) (实体 构造体)

第2章 VHDL语言程序的基本结构

第2章 VHDL语言程序的基本结构

第2章
VHDL语言程序的基本结构
1.设计思路
根据数字电子技术的知识,我们知道,74LS00是 一个四—2输入与非门,亦即该芯片由四个2输入与非门 组成,因此我们设计时可先设计一个2输入与非门(如 图2.1(a)所示),再由四个2输入与非门构成一个整体—— MY74LS00(如图2.1(b)所示)。
也就是说我们实际做的程序,并不象开始所 列的那样必须包含5部分,通常下面结构才是基 本的和必需的
Use定义区
Entity定义区
Architecture定义区
我们以一个实际的例子来看一下 VHDL语言基本语法结构 Use定义区应写成
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;
48
7
Entity定义区写成
ENTITY example IS PORT( Pin48 : IN STD_LOGIC; Pin7 : OUT STD_LOGIC ); END example;
Architecture 定义区写成
ARCHITECTURE BEHAV OF example IS BEGIN Pin7<=Pin48; END BEHAV;
--元件连接说明
第2章
VHDL语言程序的基本结构
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);

VHDL语言的程序结构与数据类型

VHDL语言的程序结构与数据类型

VHDL语言的程序结构与数据类型VHDL语言的程序结构与数据类型第2节 VHDL语言的程序结构与数据类型[学习要求] 掌握VHDL硬件描述语言的基本语法和源文件的结构,学会用VHDL硬件描述语言设计典型数字逻辑电路。

[重点与难点]重点:VHDL语言的程序结构;VHDL语言的数据类型及数据对象。

难点:VHDL的数据对象中的变量和信号的区别。

[理论内容]一、VHDL的程序结构图1 VHDL的程序结构图图1中是VHDL的全部结构,但实际上并不需要全部的结构,就像在许多设计项目中,大部分工程师只用到VHDL其中的30%的语法。

通常图2的结构才是基本和必需的。

USE定义区ENTITY定义区ARCHITECTURE定义区图2 VHDL程序的基本结构由于VHDL已是IEEE规定的标准,所以只是CPLD、FPGA等芯片公司,它们都会提供这个标准的定义库(Library IEEE),而且由于这里面写了许多的定义和参数,初学者一时之间也不容易全部了解,所以全部写上以减轻负担,后面的章节的程序默认也这么写。

程序如: USE IEEE.STD_LOGIC_1164.ALL; 代表本程序引用IEEE 标准定义库的STD_LOGIC_1164全部定义。

VHDL语言编写是属于自由格式,所以在一个完整命令叙述写完时,必须为它加上“;”,作为前后命令的分界,如上述的Use定义命令。

程序的注释采用“--”Entity部分是用来定义电路的输入和输出所用。

定义区的命令格式为:Architecture部分是描述这个电路的功能部分,其书写的语法因具体电路的功能而定,下一节将详细介绍。

_以下是一个简单的例子:library ieee; --采用ieee标准库use ieee.std_logic_1164.all; --使用其中的定义包,以后照着写即可use IEEE.STD_LOGIC_UNSIGNED.all; --同上use IEEE.STD_LOGIC_ARITH.all; --同上entity test is --定义实体名port( --以下是定义输入输出端口pin1 : in std_logic; --pin1为输入端口,数据类型为std_logic pin2 : in std_logic; --同上pin3 : out std_logic --pin3为输出端口,数据类型为std_logic ); --端口定义完成end test; --实体描述完成architecture behavior of test is --定义结构体begin --结构体开始pin3<=pin1 and pin2; --该语法表示将pin1和pin2相与送至pin3end behavior; --结构体描述完成其实VHDL语言在书写上和高级语言的描述十分相似(风格更似于Ada语言),与C语言的比较如图3所示,大家不要把它看得很神秘。

第3章_VHDL语言程序的基本结构

第3章_VHDL语言程序的基本结构

VARIABLE tmp1,tmp2,tmp3:BIT;
BEGIN tmp1:=d0 AND sel;
构造体
tmp2:=d1 AND (NOT sel);
tmp3:=tmp1 OR tmp2;
tmp<=tmp3;
q<=tmp AFTER m;
END PROCESS cale;
END ARCHITECTURE connect;
该 例 中 BIT 类 型 用 STD_LOGIC 说 明 , 而 bus 则 用 STD_LOGIC_VECTOR(7 DOWNTO 0)说明。 在用STD_LOGIC和STD_LOGIC_VECTOR说明时,在实体说明以前 必须增加例中所示的两个语句,以便在对VHDL语言程序编译时,从 指定库的包集合中寻找数据类型的定义。
END BLOCK cale; END connect;
END ARCHITECTURE behav;
信号定义和端口说明的语句一样,应有信号名和 数据类型的说明。因它是内部连接用的信号,故没有 也不需要有方向说明。
3、 并行处理语句
并行处理语句处于语句BEGIN和END之间,这 些语句具体地描述了构造体的行为及其连接关系。例 如,二选一的数据流方式描述可以写为:
第三章 VHDL语言程序的基本结构
VHDL语言程序的五个组成部分
库说明
包集合说明
基 实体说明
本 单
元 构造体描述
配置语句
库存放已编译的实体、构造体、包集合、和配 置。相当于书库。 包集合存放各设计模块能共享的数据类型、常数和 子程序。相当于书架。
实体用于说明所设计的系统的外部接口信号。
构造体用于描述系统内部的结构和行为。

VHDL语言程序的结构.

VHDL语言程序的结构.
信号方向说明
方向定义 IN 输入 含 义
OUT
INOUT BUFFER
输出(结构体内不能再使用)
双向(可以输入,也可以输出) 输出(结构体内可再使用),可以读或写
其中, BUFFER 是 INOUT 的子集,它与 INOUT 的区别在于: INOUT是双向信号,既可以输入,也可以输出,而BUFFER也是实 体的输出信号。
VHDL语言及应用(三)
实体说明——端口说明
端口类型: 指的是端口信号的取值类型。

BIT 二进位类型,取值只能是0、1,由STANDARD程序包定义。 BIT_VECTOR 位向量类型,表示一组二进制数,常用来描述地址 总线、数 据总线等端口。

STD_LOGIC 工 业标 准的 逻 辑 类 型 ,取值 0 、 1 、 X 、 Z 等,由 STD_LOGIC_1164程序包定义。 STD_LOGIC_VECTOR STD_LOGIC的组合。 INTEGER 信号。 工业标准的逻辑向量类型,是
器 件 and2的 外 ENTITY and2 IS --实 体 名 称 为 and2 部引脚说明, PORT(a, b: IN BIT; --a、 b是 两 个 输 入 引 脚 这部分称为实 c: OUT BIT); --c为 输 出 引 脚 体 END and2;
AND2 A B 0 A B C C
AND2的电路符号
VHDL语言及应用(三)
VHDL程序的一般结构
结构体部分给出了该器件的内部功能信息,是对实体
功能的具体描述。
ARCHITECTURE exam1 OF and2 IS --结 构 体 exam1是 对 实 体 器 件 and2的 内 BEGIN --and2的 内 部 描 述 , 描 述 部功能说明, c<=a AND b; --了 and2器 件 的 内 部 功 能 这部分称为结 --为 实 现 一 个 2输 入 端 与 门 构体 END exam1;

硬件描述语言(VHDL)

硬件描述语言(VHDL)
FOR 元件标号:元件名 USE ENTITY 库名.实体名[(结构名)];

(1)体内配置指定

(2)体外配置说明
由于体外配置语句是一个独立的编译单位, 故需给它指定一个单位名—配置名。实体 名和结构体名为需对例元做配置的实体及 相应的结构体。

(3)直接例化

二. VHDL语言的数据对象,数据类型
TYPE week IS(sum,mon,tue,wed,thu,fri,sat);
2.整数,实数(Integer,Real)类型 格式:TYPE 数据类型名 IS 数据类型定义约束范围
TYPE twos IS INTEGER RANGE –32768 TO 32767; TYPE voltage IS REAL RANGE 0.0 TO 10.0;



结构体的子结构描述:
BLOCK,PROCESS,SUBPROGRAM三种语句结构
1. BLOCK语句结构描述
格式: 块结构名: BLOCK BEGIN ….
END BLOCK 块结构名;
在对程序进行仿真时,BLOCK语句中所描述的各个语 句是可以并发执行的,它与书写顺序无关。 卫式BLOCK语句的格式::BLOCK [卫式布尔表达式]; 当卫式布尔表达式为真时,BLOCK语句执行。
为了能重复使用这些函数和过程,这些程 序通常组织在包集合库中。 (1)多个过程和函数汇集在一起就构成一个 包集合(Package)。 (2)n个包集合汇集在一起就形成一个库 (Library)。


(三) 包集合,库及配置
1.库(Library):它是一个经过编译后的数据的集合, 存放包集合EE库,STD库,ASIC矢量库, WORK库,用户定义库。

第二章-VHDL语言程序的基本结构PPT课件

第二章-VHDL语言程序的基本结构PPT课件

-
5
二选一电路的VHDL语言描述
entity mux is
architecture connect of mux is
实 generic(m: time :=1 ns); signal tmp: bit;
体 port(d0,d1,sel: in bit; begin
说 明
q: out bit);
每个构造体必须有一个名称:
命名要符合命名规则
命名可根据设计者 采用何种描述方式 来描述模 块的功能来命名,给阅读程序的人带来方便。 如:
beh (行为描述,基本设计单元的数学模型描述)
rtl (寄存器传输描述,数据流描述)
str (结构描述,逻辑元件的连接)
例: architecture str of mux2_1 is
entity mux is port(d0,d1,sel: in bit; q: out bit);
end entity mux;
architecture dataflow of mux is signal q0,q1:bit; begin
q0 <= d0 and sel; q1 <= not sel and d1; q <= q0 or q1; end architecture dataflow;
一句也可以写若干行; 在一句结束后,可以在“--”符号后接说明文字,
有助于理解程序,不会对编译产生影响; 单词之间必须使用空格; 并列信号间使用逗号; 根据不同的层次关系最好设定不同的缩进。
-
9
2)类属参数说明格式:
generic([类属常量名:类型 [:=静态表达式]; ……
[类属常量名:类型 [:=静态表达式]);

VHDL语言的结构

VHDL语言的结构

BEGIN
[功能描述语句]
END 结构体名;
2.1 结构体名 结构体名由设计者自行定义,OF后面的 实体名指明了该结构体所对应的是哪个实体。 有些设计实体有多个结构体,这些结构体的 结构体名不可相同,通常用dataflow(数据 流)、behavior(行为)、structural(结构)
命名。这3个名称体现了3种不同结构体的描
实体语句结构如下:
ENTITY 实体名 IS [GENERIC(类属表);] [PORT(端口表);]
END ENTITY 实体名;
例: ENTITY or2 IS
PORT(a,b:IN STD_LOGIC;
C: OUT STD_LOGIC);
END ENTITY or2;
注意:实体应以语句“ENTITY 实体名 IS”开始,语句“END ENTITY 实体名;” 结束。 在层次化系统设计中,实体说明是整个 模块或整个系统的输入输出(I/O)接口; 在一个器件级的设计中,实体说明是一个 芯片的输入输出(I/O)。
图中5种功能描述语句的基本组成和功能分别 是:
块语句是由一系列并行语句构成的组合体, 它的功能是将结构体中的并行语句组成一个 或多个子模块。
进程语句定义顺序语句模块,用以将从外部 获得的信号值或内部运算数据向其他的信号 进行赋值。
信号赋值语句将设计实体内的处理结果向定 义的信号或界面端口进行赋值。 子程序调用语句可以调用进程或参数,并将 获得的结果赋值于信号。 元件例化语句对其他的设计实体做元件调用 说明,并将此元件的端口与其他元件、信号 或高层实体的界面端口进行连接。 各语句后面将介绍
PROCESS语句的结构
[进程标号] PROCESS [(敏感信号表)] [IS] [进程说明语句] BEGIN 顺序描述语句

简述VHDL的基本结构及每部分的基本功能。

简述VHDL的基本结构及每部分的基本功能。

简述VHDL的基本结构及每部分的基本功能。

1.1. 简述VHDL的基本结构及每部分的基本功能。

(1)库库是经编译后的数据集合,库中存放的是各种程序包、实体定义、结构体描述等。

设计人员在用VHDL 语言设计系统时,库中内容有的可作为标准,有的可作为资源被引用。

库的作用就在于使设计者可以共享已经编译过的设计文件及有用数据。

(2)程序包程序包是VHDL程序的公共存储区,在程序包内说明的数据对实体是透明的。

程序包由程序包说明和程序包体组成。

(3)实体实体可以表示小到一个与门,也可以大到一个数字系统,这个系统可以像微处理器一样的复杂。

在实体的说明部分主要完成设计对象的输入输出端口名称、传输方向、数据类型的定义,即端口的定义。

(4)结构体结构体是设计实体的具体描述,如果把设计实体抽象为一个功能方块图,结构体则描述这个功能方块图内部的具体逻辑实现细节。

一个设计实体的内部实现细节通过结构体的具体描述表现出来。

(5)配置配置是用于描述设计不同层次之间的关系和实体与结构体之间的连接关系。

在实体与结构体之间的连接关系配置说明中,设计者可以利用配置语句为实体提供不同的结构体与之相匹配。

在仿真设计中,可以利用不同配置方式选择不同结构体,分别对不同结构体进行仿真测试。

2. 简述VHDL语言实体申明中:IN、OUT、BUFFER和INOUT 等端口模式各自的特点。

IN:输入型,只读模式。

OUT:输出型,只写。

BUFFER:缓冲型,带有读功能的输出模式,即输出并向内部反馈,out相似,但可读。

INOUT:输入输出型,可读可写,可以通过该端口读入或写出信息。

3. 在VHDL语言中,标识符必须遵循一些规则,有哪些规则?(1)标示符的第一个字母必须是英文字母。

(2)标示符的最后一个字母不能使下划线字符。

(3)标示符不允许连续出现两个下划线字符。

(4)标示符不区分字母的大小写。

(5)VHDL的保留字不能用于作为标示符使用。

4. VHDL的数据对象有哪几种,它们之间有什么不同?答:VHDL的数据对象包括信号、常量、变量和文件4类。

vhdl结构化描述

vhdl结构化描述

VHDL的基本结构由实体(ENTITY)和结构体(ARCHITECTURE)两部分构成。

其中,结构化描述主要使用AND、OR等逻辑运算符来描述元件之间的连接关系,具体步骤包括:
1.原件说明,用于说明原件的调用,并描述该元件的接口。

2.原件例化,指定原件的安放位置,并确定与其他元件放置的连线关系。

3.原件配置,指定原件所用的设计实体。

另外,结构化描述程序的主要步骤包括:
1.绘制框图。

2.原件说明。

3.信号说明。

4.元件例化。

5.添加必要的框架。

以上步骤和内容仅供参考,如需了解更多关于VHDL结构化描述的信息,建议查阅专业书籍或咨询专业技术人员。

VHDL程序结构与规则(1).ppt

VHDL程序结构与规则(1).ppt

RETURN REAL ;
END ;
PACKAGE BODY packexp IS
FUNCTION max( a,b : IN STD_LOGIC_VECTOR) --定义函数体
RETURN STD_LOGIC_VECTOR IS
BEGIN
IF a > b THEN RETURN a; ELSE
RETURN b;
FUNCTION func1 ( a,b,c : REAL )
--定义函数首
RETURN REAL ;
FUNCTION "*" ( a ,b : INTEGER )
--定义函数首
RETURN INTEGER ;
FUNCTION as2 (SIGNAL in1 ,in2 : REAL ) --定义函数首
RETURN INTEGER IS
BEGIN
IF a > b THEN RETURN a;
ELSE
RETURN b;
END IF;
END FUNCTION max;
--定义程序包 --定义函数首
--定义函数首 --定义函数首
--定义函数体
第8章
VHDL程序结构与规则
本章内容
• VHDL实体 • VHDL结构体 • VHDL子程序 • VHDL库 • VHDL程序包 • VHDL配置 • VHDL文字规则 • VHDL数据类型 • VHDL操作符
8.1 VHDL实体
ENTITY 实体名 IS [GENERIC ( 参数名:数据类型 );] [PORT ( 端口表 );]
PROCESS(dat3,dat4)
BEGIN out2 <= max(dat3,dat4);

第四章 VHDL语言程序基本结构

第四章 VHDL语言程序基本结构
Fra bibliotek相关约定
1. 对于VHDL的编译器和综合器来说,程序文字的大小 写不加区分。 2. 为了使程序结构清晰,易于阅读和调试,书写和输入 程序时,使用层次缩进格式,同一层次的语句对齐, 底层次的语句较高层次的语句缩进两个字符。 3. 程序中的注释使用双横线“--”。在VHDL程序的任 何一行中,双横线“--”后的文字都不参加编译和综 合。
4.1 设计实体
设计实体总由实体说明和结构体两部分构成
【例4-1】
EDA技术讲义
ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ; END ENTITY mux21a ;
实体说明
ARCHITECTURE one OF mux21a IS BEGIN y <= a WHEN s = '0' ELSE b ; END ARCHITECTURE one ;
复杂组合逻辑电路,如:
• 译码器、编码器、加减法器、多路选择器、地址译码器…...
状态机 等等……..
EDA技术讲义
VHDL的功能和标准
VHDL 描述
输入端口 输出端口 电路的行为和功能
VHDL有过两个标准:
IEEE Std 1076-1987 (called VHDL 1987) IEEE Std 1076-1993 (called VHDL 1993)
2选1多路选择器的VHDL描述
图4-1 mux21a实体
结构体
图4-2 mux21a结构体
4.1 设计实体
4.1.1 实体说明
EDA技术讲义
实体说明主要描述的是一个设计的外貌,即对外 的输入输出接口以及一些用于结构体的参数的定义。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 以上命名举例说明,几个结构体都属于设计实体mux,结构体名由设 计者自行定义,OF后面的实体名指明了该结构体所对应的是哪个实体。由 于一个设计有行为描述、数据流描述和结构描述3种方式,一般建议用 behave, dataflow, structure为结构体命名。 • 用于对结构体内部将要使用的信号、常数、数据类型、元件、函数和 过程加以说明。最常见的是对内部流动的信号的定义。但不能定义变量。
号到信号的数据流的路径形式进行描述,因
此要求设计者不但要对设计实体的功能实现
有一定的了解,而且还需要对内部的逻辑电
路结构有清楚的认识。
•设计 库
•设计库(Library) • 1、设计库是经编译后的数据的集合,存放包集合 定义、实体定义、结构体定义和配置定义。 • 2、VHDL中,设计库的说明总放在设计单元的最前 面。 • 3、设计库中的各个设计单元可以用作进行其他设 计的资源,一个设计可以使用多个库中的设计单元。

y : OUT STD_LOGIC);
•端口名
•端口模式
•数据类型
•端口模式
➢ 用来说明数据传输通过该端口的方向。
IN:
数据只能从端口流入实体
OUT:
数据只能从端口流出实体
INOUT:
数据从端口流入或流出实体
BUFFER:
数据从端口流出实体,同时可被内部反馈。
➢ 构造体内部也要使用输出信号时,只能定义成“buffer”。
•结构体一般格式为:
•ARCHITECTURE 结构体名 OF 实体名 IS
• 定义语句: 内部信号,常数,数据类型,函数定义
• BEGIN

[并行处理语句];

[进程语句];


•END 结构体名;
➢ ARCHITECTURE、OF、IS、BEGIN、END是VHDL的关键字(保留字)。
➢ 结构体名称由设计者自由命名,是结构体的唯一名称,该结构体名可反 映结构体的特色。
•设计库的使用
• 首先在设计的开头说明要引用的库,然后使用use子句指ary 库名;

Use 库名. 程序包名. all;
• 其中:程序包名就是实际设计要使用的库中的设计单元
;all表示使用程序包中的所有项目。
•常用设计库
•1、STD库 •2、WORK库 • WORK库是VHDL语言工作库,用户在项目设计中设计成功、 正在验证、和未仿真的中间件都放在WORK库中。 • 以上两个库对当前设计是永远可见的,不需在程序开头对 它们进行说明。即下面的LIBRARY子句隐含存在于任何设计单 元之前。 • library std; • library work; •3、资源库 • 除STD和WORK库以外所有的库均为资源库。这些资源库的 使用必须用LIBRARY显式的说明出来。如常用的资源库IEEE库 (Std_logic_1164)和VITAL库。
•VHDL程序结构
•实体和结构体 是VHDL设计文件的两个基 本组成部分
•实体说明 描述设计实体(黑盒)的外 部接口信号(即输入/输出信号);
•结构体说明 用于描述设计实体( 黑盒)的内部电路。 •包集合 存放各设计模块能共享的数 据类型、常数、子程序等;
•库 用于存放已编译的实体、结构体、 包集合和配置。

BEGIN

IF s = '0' THEN y<=a;

ELSE

y<=b;

END IF;

END PROCESS;
•END one;
•2、结构描述

描述该设计单元的硬件结构,即该硬件是如
何构成的。主要使用配置指定语句及元件例化语句
描述元件的类型及元件的互联关系。
•3、数据流描述

也称为寄存器传输描述形式。是对信
•程序 包
• 在VHDL中,设计的实体和结构体中定义的数据类型、常量、 子程序说明和元件说明等只能在该设计实体中使用,而对其他设 计实体是不可见的。 • 程序包说明用来单纯地罗列VHDL中所要用到的信号定义、常 量定义、数据类型、子程序说明和元件说明等,是一个可编译的 设计单元。 • 要使用程序包中的某些说明和定义,要用use语句说明。各 种VHDL编译系统都含有多个标准程序包,如Std_Logic_1164和 Standard程序包。用户也可以自行设计程序包。
•配置 用于从库中选取所需元件安 装到设计单元的实体中。
•LIBRARY IEEE; •USE IEEE.STD_LOGIC_1164.ALL;
•ENTITY mux21 IS
• PORT( a , b:IN STD_LOGIC;

s:IN STD_LOGIC;

y:OUT STD_LOGIC );
•例如:

architecture behavior of mux is ——用结构体行为命名

architecture dataflow of mux is ——用结构体的数据流命名

architecture structural of mux is ——用结构体组织结构命名

architecture latch of mux is ——用结构体的功能命名
•a
•b
•and2
•y
➢ ENTITY、IS、GENERIC、PORT、END是VHDL的关键字(保留字)。
➢ 实体名、端口名(端口说明)等均应为符合VHDL命名规则的标识符。
1、作用
•类属信 息
为设计实体和其外部环境通信的静态信息提供通道,可
以定义端口的大小、实体中元件的数目以及实体的定时特性等
•END mux21;
•ARCHITECTURE behavior OF mux21
IS
• BEGIN

PROCESS(a,b,s)

BEGIN

IF s = '0' THEN y<=a;

ELSE

y<=b;

END IF;

END PROCESS;
•END one;
•程序包
•实体说 明
•结构体
•实体说
• my_design
•d[11..0] •clk •oe
•ad[7..0] • a[7..0] • int • as
•练习答 案
•Library ieee;
•Use ieee.std_logic_1164.ALL;
•Entity my_design is
•PORT ( d: in std_logic_vector(11 downto 0);
•VHDL设计概念
• 采用VHDL进行设计的方法为高层设计,即“概念驱动模式”设计。设计 人员无需通过门级原理图描述,而是针对设计目标进行功能描述。VHDL并不 十分关心一个具体逻辑是靠何种方式实现的,而是把开发者的精力集中到逻 辑所实现的功能上。由于高层设计只定义系统的行为特性,因此可以不涉及 工艺。 • 采用VHDL进行设计的具体过程为: • 1、以VHDL语言描述设计概念; • 2、用VHDL仿真与调试工具分析此概念的“行为”,检查是否满足初始 要求。这一过程与普通的编程语言,如C语言的编译、运行、调试是类似的 。 • 3、VHDL设计—>VHDL综合工具。利用集成电路厂商或EDA厂家提供的被 充分验证过的工艺库,以面积、功耗、速度等为目标进行优化,将电路映射 成网表,得到门级电路后,还要进行仿真来验证门电路的行为和时序特性。 • 4、物理设计。得到可供生产的文件,进行延时、故障、热分析等,保

Port(d0, d1, sel : in STD_Logic;

q : out STD_Logic;

bus : out STD_Logic_vector(7 downto 0));
•END mu;
•练 习 •编写包含以下内容的实体代码:
•端口 D 为12位输入总线; •端口 OE 和CLK 都是1位输入 ; •端口 AD 为7位双向总线; •端口 A为7位输出总线; •端口 INT 是1位输出 ; •端口 AS 是一位输出同时被用作内部反馈。
VHDL程序结构介绍
•VHDL简介
• VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述 语言,VHDL语言是一种用于电路设计的高级语言。最初是源于 美国国防部1980年开始启动的超高速集成电路计划,在这一计 划执行过程中,专家们认识到需要有一种标准的语言来描述集 成电路的结构和功能,由此,美国国防部便开发出VHDL设计语 言供美军用来提高设计的可靠性和缩减开发周期的设计语言。
。 2、一般格式
GENERIC([CONSTANT] 名字表:[IN] 子类型标识 [:= 静态表达式],…] );
•端口说明
•端口说明的一般格式为:

PORT(端口名{,端口名}:端口模式 数据类型

• );
端口名{,端口名}:端口模式 数据类型
•例如:PORT ( a,b: IN STD_LOGIC;
• 实体说明中定义的信号是外部信号,而结构体定义的信号为该结构体 的内部信号,它只能用于这个结构体中。
• 结构体中的信号定义和端口说明一样,应有信号名称和数据类型定义 。因为它是内部连接用的信号,因此不需要方向说明。
•结构体的三种描述形式:
•1、行为描述 •2、结构描述 •3、数据流描述
•1、行为描述
• oe , clk: in: std_logic;
• ad: inout std_logic_vector(7 downto 0);
相关文档
最新文档