当前位置:文档之家› VHDL程序结构介绍

VHDL程序结构介绍


• 以上命名举例说明,几个结构体都属于设计实体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);
相关主题