毕业设计预习:VHDL入门知识学习(一) VHDL程序基本结构

VHDL入门知识学习(一) VHDL程序基本结构

  • 简介
  • VHDL程序基本结构

简介

概念:

  • HDL—Hardware Description Language—硬件描述语言—描述硬件电路的功能、信号连接关系及定时关

系的语言。

  • VHDL—Very High Speed Integrated Circuit Hardware Description Language—超高速集成电路硬件

描述语言

特点:

  • 工艺无关
  • 共享复用
  • 不支持描述模拟电路

规定:

  • 在VHDL中,字母的大、小写没有区别(单引号内的字符常数和双引号内的字符串除外);
  • 以分号“;”作为语句结束的标志;
  • 注释行以双短线“- -”开始;
  • 各种名称的命名规则:
    • 名称由字母、数字和下划线组成;
    • 名称的第一个字符必须是字母;
    • 名称的最后一个字符不能是下划线,也不能连用下划线;
    • 命名不能与VHDL的保留字或关键字相同。

VHDL程序基本结构

例:1位全加器

ENTITY adder IS
PORT( a, b,cin  : IN	BIT;
       s ,co    : OUT  BIT);
END adder;//实体说明
ARCHITECTURE a OF adder IS
BEGIN
s<=a XOR b XOR cin;
co<=((a XOR b) AND cin) OR (a AND b);
END  a;//结构体说明

实体说明:描述了一个设计对外的输入、输出接口以及一些用于结构体的参数定义。

结构体说明:描述的是设计实体的行为和结构。

实体(Entity )

ENTITY <实体名> IS

	[类属参数说明]

	[端口说明]

END <实体名>;
ENTITY adder IS
PORT( 
       a, b,cin  : IN 	BIT;
          s ,co  : OUT  BIT);
END adder;

实体名: 对实体的命名,在MAXPLUSII中要求实体名必须与存盘文件名相同。

类属参数说明:用来为设计实体指定参数,如定义端口宽度、器件延时等。

端口说明:描述端口的名称、模式和数据类型。

PORT(端口名[,端口名]:模式 数据类型;
			   ┇
              端口名[,端口名]:模式 数据类型);

端口名称: 对端口的命名,是端口的标识符。

端口模式: 说明端口信号的流动方向。

① 输入模式(IN)
② 输出模式(OUT)
③ 双向模式(INOUT)
④ 缓冲模式(BUFFER)
⑤ LINKAGE模式

端口: 实体的每一个输入、输出信号称为端口,对应于硬件电路图或芯片的一个'引脚'。

数据类型:说明经过端口的信号的数据类型。

  • VHDL是一种强类型语言,有10种标准的数据类型,还可以由用户自定义数据类型。
  • BIT(位,可取值为‘0’或‘1’ )类型是VHDL的预定义类型,使用此类型时无需特别说明。
  • 当使用非预定义的数据类型时,必须用库和程序包调用语句来为程序的编译指明所使用的数据类型的定义在哪里。

库和数据包的调用

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY adder IS
PORT( a, b,cin  : IN	 STD_LOGIC;
       s ,co    : OUT STD_LOGIC);
END adder;

结构体

ARCHITECTURE <结构体名> OF <实体名> IS
[结构体说明部分];
BEGIN
<并行处理语句>;
END结构体名; 
ARCHITECTURE a OF adder IS
BEGIN
s<=a XOR b XOR cin; 
co<=((a XOR b) AND cin) OR (a AND b);
END a;

结构体名:对本结构体的命名。

结构体说明部分:对结构体内部所使用的'信号'、'常数'、数据类型和函数进行定义;

并行处理语句:具体描述了结构体的行为和结构。

VHDL程序五大部分

1、实体(Entity )

描述所设计的系统的外部接口信号。

2、结构体(Architecture Body)

描述系统内部的结构和行为。

3、程序包(Package)

存放各个设计模块都能共享的数据类型、信号和常数的定义以及函数和过程的定义等。

4、库(Library)

存放已经编译的实体、结构体、程序包和配置的定义。

5、配置(Configuration)

描述实体与结构体之间的连接关系,或者在分层设计中描述层与层之间的连接关系。

PS:MAXPLUSII自动选择几何位置排列在最后的结构体作为当前结构体进行编译。

参考

书籍:《VHDL入门·解惑·经典实例·经验总结》

原文地址:https://www.cnblogs.com/20135319zl/p/6337273.html