|
楼主
查看: 7327回复: 2
发表于 2019-9-6 09:15:19
只看该作者
1. VHDL简介
VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本(IEEE-1076)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。现在,VHDL作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
2. VHDL程序设计约定
为了便于程序的阅读和调试,对VHDL程序设计作如下约定:
1)语句结构描述中方括号“[ ]”内的内容为可选内容。
2)VHDL的编译器和综合器对程序文字的大小写是不加区分的。
3)程序中的注释使用双横线“- -”。在VHDL程序的任何一行中,双横线“- -”后的文字都不参加编译和综合。
4)为了便于程序的阅读和调试,书写和输入程序时,使用层次缩进格式,同一层次的对齐,低层次的较高层次的缩进两个字符。
5)考虑到MAX+plusll要求源程序文件的名字与实体名必须一致,因此为了使同一 个VHDL源程序文件能适应各个EDA开发软件上的使用要求,建议各个源程序文件的命名均与实体名一致。
3. VHDL程序基本结构
一个相对完整的VHDL程序(或称为设计实体)具有比较固定的结构。至少应包括三个基本组成部分:库与程序包使用说明、实体说明和实体对应的结构体说明。常用语句结构如下:
LIBRARY 库名;
USE 库名.程序包名.ALL;
ENTTTY 实体名 IS
[GENERIC(类属表);]
[PORT(端口表);]
END [ENTTTY] [实体名];
ARCHITECTURE 结构体名 OF 实体名 IS
[说明语句;]
BEGIN
[功能描述语句;]
END [ARCHITECTURE] [结构体名];
- -类属表说明用于确定设计实体和其外部环境通信的参数,传递静态的信息。其一般书写格式如下:
GENERC([常数名:数据类型[:设定值]
{;常数名:数据类型[:设定值]});
例: GENERIC(WIDTH:INTEGER=8);
- -端口模式是指这些通道上的数据流动方式,如:IN(输入)、OUT(输出)、BUFFER(具有读功能的输出模式,可以读或写,只能有一个驱动源)、INOUT(双向 )。
- -结构体中的说明语句是对结构体的功能描述语句中将要用到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE)等加以说明的语句。
- -功能描述语句结构可以含有块、进程、信号赋值、子程序调用、元件例化五种不同类型的,以并行方式工作的语句结构。而在每一语句结构的内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句。
- - 与门的逻辑描述AND2.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC-1164.ALL;
ENTITY AND2 IS
PORT(A,B:IN STD_LOGIC;
Y:OUT STD_LOGIC);
END ENTITY AND2;
ARCHITECTURE ART1 OF AND2 IS
BEGIN
Y<=A AND B;
END ARCHITECTURE ART1;
- - 或门的逻辑描述OR2.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC-1164.ALL;
ENTITY OR2 IS
PORT(A,B:IN STD_LOGIC;
Y:OUT STD_LOGIC);
END ENTITY OR2;
ARCHITECTURE ART1 OF OR2 IS
BEGIN
Y<=A OR B;
END ARCHITECTURE ART1;
- - 非门的逻辑描述NOT1.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC-1164.ALL;
ENTITY NOT1 IS
PORT(A:IN STD_LOGIC;
Y:OUT STD_LOGIC);
END ENTITY NOT1 ;
ARCHITECTURE ART1 OF NOT1 IS
BEGIN
Y<= NOT A ;
END ARCHITECTURE ART1;
- - 与非门的逻辑描述NAND2.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC-1164.ALL;
ENTITY NAND2 IS
PORT(A,B:IN STD_LOGIC;
Y:OUT STD_LOGIC);
END ENTITY NAND2 ;
ARCHITECTURE ART1 OF NAND2 IS
BEGIN
Y<=A NAND B;
END ARCHITECTURE ART1;
|
|