EDA技术及应用 第5章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

表 5-1 端口模式说明
端口模式
端口模式说明(以设计实体为主体)
IN
OUT
BUFFER INOUT LINKAGE
输入,只读模式,将变量或信号信息通过该端口读入,与 IN、INOUT 及 BUFFER 型端口连接
输出,单向赋值模式,将信号通过该端口输出,与 OUT、INOUT 及 BUFFER 型端 口连接
第 5 章 VHDL程序结构
5.1 实体 5.2 构造体 5.3 库 5.4 程序包 5.5 配置
作为一种程序设计语言,VHDL除有上述两种基本语言结 构外,还有程序包(PACKAGE)、库(LIBRARY)和配置 (CONFIGURATION)。一个相对完整的VHDL程序(或称为设 计实体)具有如图5-1所示的结构。下面就这几部分结构作两点 说明:
(1) VHDL中实体、构造体、库、程序包是必备的结构, 而配置不是必备的,可以省略。通常我们将VHDL所描述的某 个电路称之为一个设计实体。需要注意的是,当设计中只调用 STD库时,可以省略库、程序包使用说明,这是由于STD库是 显式打开的,不用声明。
(2) 在一个VHDL设计中只能有一个实体;而同一个设计 实体可以对应多个构造体。这是因为VHDL语言支持行为级、 RTL传输级等多种抽象描述层次,而一个抽象层次通常可以对 应至少一种描述语句。
2. 类属说明 类属(GENERIC)参量是一种端口常数,用于说明端口的静 态特性。类属的值可以由设计实体外部提供,因此,设计者可 以通过重新设定类属参量来改变一个设计实体或一个元件的内 部电路结构和规模。
类属说明的格式如下: GENERIC(常量名:数据类型[:=设定值 量纲]; 常量名:数据类型[:=设定值 量纲]);
库、程序包使用说明

实体(ENTITY)



构造体(ARCHITECTURE)
配置(CONFIGURATION)
GENERIC 类属说明 PORT 端口说明 构造体说明 构造体功能描述
图5-1 VHDL程序的基本结构
为了便于程序的阅读和调试,我们对VHDL代码书写作如 下约定:
(1) 语句结构描述中方括号“[ ]”内的内容为可选内容。 (2) 对于VHDL的编译器和综合器来说,程序文字的大小 写是不加区分的,但自己定义的文字要符合VHDL命名规范。
3. PORT端口 端口类似于原理图部件符号上的管脚,实体通过端口与外 界通信。 实体端口格式如下:
PORT(端口名:端口模式 数据类型; 端口名:端口模式 数据类型);
(1) 端口名:由设计者定义的与外部通信的引脚名称,命 名应符合VHDL命名规则。
(2) 端口模式:IEEE 1076标准包中定义了5种常用的端口 模式,各端口模式的功能及符号分别见表5-1和图5-2。IN相当 于只可输入的引脚;OUT相当于只可输出的引脚;BUFFER相 当于带输出缓冲器并可以回读的引脚;INOUT相当于双向引 脚;LINKAGE不指定方向,可作为任意模式使用。
5.1 实 体
1. 实体语句结构 实体语句结构如下: ENTITY 实体名 IS
[GENERIC(类属表);] [PORT(端口表);] END [ENTITY] 实体名;
实体以保留字ENTITY开始,以语句“END [ENTITY ]实 体名;”结束。ቤተ መጻሕፍቲ ባይዱ体名由设计者确定,但命名应该符合VHDL的 命名规则。另外,尽量在实体名中体现设计实体的功能及端口 等特性。
具有读功能的输出模式,可以读或写,只能有一个驱动源,与 OUT、INOUT 及 BUFFER 型端口连接
双向,可以通过该端口读入或写出信息,与 INOUT、BUFFER 型端口连接 不指定方向,可与任何模式端口相连
IN
OUT
BUFFER
INOUT
图5-2 端口模式符号
5.2 构 造 体
构造体(ARCHITECTURE)用于描述设计实体的逻辑功能。 构造体内部的描述层次和描述内容可用图5-3说明。
GENERIC称为类属说明,用于描述设计实体的输入/输出 端口静态特性,如端口的边沿延时、位宽等,它是可选单元。
PORT语句称为端口说明,用于描述设计实体对外通信 的输入/输出端口的数量、数据类型、端口模式等动态特性, 一般是必选单元。只有当所描述的是用于仿真的测试台 (TestBench)文件时,端口说明才能省略。
【例5.1】 实体说明示例。 (1) 只包含端口声明的实体说明: ENTITY Full_Adder IS PORT(X, Y, Cin:in Bit; Cout, Sum:out Bit) ; END Full_Adder ;
(2) 包含类属声明及端口声明的实体说明: ENTITY AndGate IS GENERIC(n: Natural := 2); PORT(Inputs:in Bit_Vector (1 to n); Result:out Bit) ; END ENTITY AndGate ; (3) 没有任何声明的实体说明: ENTITY TestBench IS END TestBench ;
类属中的常量名由设计者确定,数据类型通常取 INTEGER或TIME等类型,设定值即为常数名所代表的数值。 但需注意,综合器仅支持数据类型为整数的类属值。
【例5.2】 类属说明示例。 ENTITY counter_n IS GENERIC(width:INTEGER:=4); PORT(clk,reset:IN STD_LOGIC; counter:INOUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0)) ; END counter_n;
(3) 程序中的注释使用双横线“--”。在VHDL程序的任何 一行中,双横线“--”后的文字都不参加编译和综合。
(4) 为了便于程序的阅读与调试,书写和输入程序时,使 用层次缩进格式,同一层次的语句对齐,低层次的语句较高层 次的语句缩进两个字符。
(5) 为了使同一个VHDL源程序文件能适应各个EDA开发 软件的使用要求,建议各个源程序文件的命名均与其实体名 一致。
相关文档
最新文档