VHDL


VHDL, Very-High-Speed Integrated Circuit Hardware Description Language
CPLD, Complex Programmable Logic Device
EDA, Electronic design automation

一、基础

1.0 设计实体

一个VHDL程序对应着一项具体工程设计,通常被称为设计实体。

  • 设计实体
    • 程序包
    • 实体
      • 类属参数说明
      • 端口说明
    • 结构体
      • 结构体说明
      • 结构体功能描述
    • 配置

1.1 实体

实体用于描述设计实体与外部的接口信号,是设计实体对外的一个通信界面。

ENTITY 实体名 IS
[GENERIC(类属表);]  --类属参数说明
[PORT(端口表);]     --端口说明
END ENTITY 实体名;
  • 端口模式
    • IN
      • 输入,只读模式
    • OUT
      • 输出,单向赋值模式
    • BUFFER
      • 具有读功能的输出模式,但不允许作为双向端口使用
    • INOUT
      • 双向模式,允许用于内部反馈

1.2 结构体

结构体用于描述设计实体的内部结构,是对实体功能的具体实现。

5种功能描述语句之间是 并行

ARCHITECTURE 结构体名 OF 实体名 IS
    [说明语句]
BEGIN
    [功能描述语句]
END ARCHITECTURE 结构体名;

1.3 库

一种用来存储预先完成的程序包和数据集合体的仓库。

LIBRARY 库名

常见的库:IEEE, STD, WORK, VITAL

1.4 程序包

程序包是构成包的单元。

PACKAGE 程序包名 IS
    [程序包首说明部分]
END 程序包名;
PACKAGE BODY 程序包名 IS
    [程序包体说明部分]
END 程序包名;

1.5 配置

配置用于描述层与层之间的连接关系或实体与结构体之间的连接关系。

CONFIGURATION 配置名 OF 实体名 IS
    [配置说明语句]
END 配置名;

1.6 文字规则

  • 数字型文字
    • 整数文字
      • 12_118_008( = 12118008 ), 下划线仅提高可读性
    • 实数文字
    • 以数制基数表示的文字
      • 10#36#2,表示 10 进制数 3600
  • 字符串型文字
    • 字符
      • 放在 '' 中的ASCII字符
    • 字符串
      • 放在 "" 中的一维字符数组
    • 标识符
      • 以英文字母开头
      • 不连续使用_,不以_结尾
      • 由英文字母,数字,_ 构成
      • 不区分大小写
    • 下标名及下标段名

1.7 数据对象

(1)常量

CONSTANT 常量名:数据类型[:=表达式];

(2)变量

VARIABLE 变量名:数据类型[:=初始值];

(3)信号
在进程和子程序中不允许定义信号,用在顺序语句中。

SIGNAL 信号名:数据类型[:=初始值];

信号赋值目标<=赋值源;      --信号的赋值

1.8 其它

数据类型:标量型,复合类型、指针类型、文件类型

操作符:算术操作符、关系操作符(/=…)、逻辑操作符、符号操作符(+ -

(一)算术操作符

+ -
* /
MOD 取模 REM 取余
SLL 逻辑左移 SRL 逻辑右移
SLA 算术左移 SRA 算术右移
& 并置 ** 乘方

(三)逻辑操作符

AND OR NAND NOR XOR NOT
与非 或非 异或
  • 顺序语句
    • 赋值语句,:= <=
    • 转向控制语句,IF CASE LOOP NEXT EXIT
    • 等待语句
    • 返回语句 RETURN;
    • 空操作语句 NULL;
  • 并行语句
    • 进程语句
    • 块语句
    • 并行赋值语句
    • 并行过程调用语句
    • 元件例化语句
IF ... THEN
...;
ELSIF ... THEN
...;
ELSIF
...;
END IF;

二、实例

2.1 二输入与非门

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY nandgate2 IS            --定义一个用于通信的实体
    PORT(a,b: IN STD_LOGIC;
        y: OUT STD_LOGIC);
END nandgate2;

ARCHITECTURE nand2 OF nandgate2 IS    --结构体,实现功能
BEGIN
    y <= a NAND b;
END nand2;

2.2 四位加法器

2.3 触发器


参考资料:

  • 《数字逻辑》,欧阳星明

文章作者: ╯晓~
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ╯晓~ !
评论
  目录