VHDL小知识

FPGA知识
CPLD知识
Verilog知识
VHDL入门与概述
  • 什么是VHDL?
  • HDL语言的种类
  • VHDL程序的实体
       VHDL实体的组成
         类型说明
         端口说明
         实体说明
  • VHDL程序的结构体
        结构体命名
        信号定义

         VHDL属性
        VHDL进程

        VHDL标识符
        VHDL数字
        VHDL常量
        VHDL变量
        VHDL信号

        VHDL数据类型
         VHDL std_logic
        VHDL布尔量类型
         VHDL整形
        VHDL位类型
        VHDL位矢量类型
        VHDL位串
        VHDL实数类型
        VHDL数据类型转换

        VHDL操作符
        VHDL关系操作符
        VHDL逻辑操作符
        VHDL算术操作符
        VHDL并置操作符

        VHDL库
        VHDL程序包

       VHDL语句
       VHDL并行描述语句
       VHDL并发信号赋值语句
       VHDL条件信号赋值语句
       VHDL选择信号赋值语句

       VHDL顺序描述语句
       VHDL赋值语句
       VHDL IF
       VHDL CASE

       VHDL程序
        vhdl D触发器
        vhdl表决器
        vhdl乘法器
        vhdl地址译码
        vhdl二分频
        vhdl二选一
        vhdl非门
        vhdl分频器
        vhdl计数器
        vhdl寄存器
        vhdl加法器
        vhdl减法器
        vhdl七段数码管译码器
        vhdl三态总线收发驱动器
        vhdl四选一
        vhdl同步D触发器
        vhdl伪随机码m序列发生器
        vhdl移位寄存器

     VHDL行为描述法
     VHDL数据流描述法
     VHDL结构化描述法
  • VHDL程序包

    VHDL 程序包

    在编写 VHDL 程序的过程中 , 实体说明和结构体中的信号定义、常量定义、数据类型、 子程序说明、属性说明以及元件说明等部分只能够在本设计实体中使用 , 而对于其他设计实体来说则是不可用的。因此 , 为了使 一 组信号定义、数据类型说明或子程序说明等对多个设计实体以及对应的结构体都成为可见的 , VHDL 提供了程序包的概念。

    在 VHDL 中 , 程序包主要用来存放各个设计都能共享的信号说明、常量定义、数据类型、子程序说明、属性说明和元件说明等部分。如果需要使用程序包中的某些说明和定义 , 设计人员只需要使用 USE 子句来进行一下说明就可以了。

    一个完整的程序包一般是由两个部分组成的 , 它们分别是程序包说明部分和程序包包体部分。其中 , 程序包说明部分主要对数据类型、子程序、常量、元件、属性和属性指定等进行说明 ; 程序包包体部分由程序包说明部分指定的函数和过程的程序体组成 , 即用来规定程序包的实际功能 , 程序包包体部分的描述方法与结构体的描述方式相同。

    程序包说明部分的语法结构如下所示 :

    PACKAGE < 程序包名 > IS

    [ 说明语句 ] ;

    END [PACKAGE] [< 程序包名 > ] ;

    在程序包说明部分的语法结构中 , 说明语句可以是数据类型说明、子程序说明、常量或者延迟常量说明、信号说明、元件说明、文件说明、别名说明、属性说明以及属性指定等 , 其中 [PACKAGE] 是 VHDL-93 标准中的语法要求。

    另外 , 程序包说明部分中的所有说明语句是对外可见的 , 这一点与后面要介绍的实体说明部分十分相似 , 它们都是用来指定对外可见的项。实际上 , 程序包说明部分和实体说明部分是不同的 : 程序包说明部分用来指定哪些数据类型、子程序、常量和信号等对外可见 ; 而实体说明则用来指定哪些信号对外可见。

    程序包包体部分的语法结构如下所示 :

    PACKAGE BODY < 程序包名 > IS

    [ 外部子程序体 ] ;

    [ 内部子程序说明 ] ;

    [ 内部子程序体 ] ;

    [ 内部常量说明 ] ;

    [ 内部数据类型说明 l .J ,

    END [ PACKAGE BODY] [ < 程序包名 > ];

    可见 , 程序包包体部分主要由程序包说明部分指定的函数和过程的程序体组成 , 同时还允许建立内部的子程序和内部变量、数据类型的说明 , 但要注意它们对外是不可见的。

    程序包说明部分是主设计单元 , 可以独立进行编译并插入到库中 ; 程序包包体部分是次 级设计单元 , 同样也可以在其对应的主设计单元编译并插入到库中之后 , 然后独立进行编译 并也插入到设计库中 O 在实际应用中 , 程序包中的程序包包体部分是一个可选项 , 当程序包说明部分不含有子程序说明部分时 , 则程序包包体部分是不需要的 ; 当程序包说明部分含有 子程序 说明时 , 则必须有相应的程序包包体部分对其子程序的程序体进行描述。

    V HDL 标准中提供了一些预先定义的标准程序包 , 它们主要包括 standard 、 textio 、 std_logic_ 1164 、 numeric_std 和 numeric_bit 这 5 个程序包。一般来说 , 这些程序包广泛应用于 VHDL 程序的编写中 , 因此这里有必要对它们进行一下介绍。

    1 程序包 standard

    程序包 standard 存在于标准设计库 STD 中。通常 , 程序包 standard 中定义 ,布尔量类型、位类型、字符类型、出错级别、实数类型、整数类型 等。

    2 程序包 textio

    与程序包 standard 一样 , 程序包 textio 也存在于标准设计库 STD 中。通常 , 程序包 textio 中定义了 line 类型、 text 类型、 side 类型、操作宽度 width 子类型、文件 input 、文件 output ,readline 过程、对应于不同数据类型的 read 过程、 writeline 过程和对应于不同数据类型 的 write 过程。

    在 VHDL 中 , 由于程序包 textio 对所有设计实体都是不可见的 , 因此使用它时需要在 VHDL 程序的开始部分添加程序包说明语句。

    3. 程序包 std_logic_1164

    程 序包 std_logic_1164 是设计人员最常使用和最重要的程序包 , 它存在于资源库 IEEE中, 在 VHDL 中 , 程序包 std_logic_ 1164 对所有设计实体都是不可见的 , 因此使用它时需要 在 VHDL 程序的开始部分添加说明语句 .




      HDL|

    Copyright © 2005-2008 All Rights Reserved
    ARM开发板网 版权所有