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 中 , 数据类型的定义是十分严格的 , 不同类型的数据之间是不能进行运算或者赋值操作的 , 这一点读者一定要注意。对于某一数据类型的常量、变量、信号和文件之间进行运算或者赋值操作时 , 必须要保证数据类型的一致性 , 否则仿真和综合过程中 EDA工具将会给出错误信息。可见 , 数据类型的转换在编写 VHDL 程序中显得十分重要。

    通常 , VHDL 提供了 3 种数据类型的转换方法 , 它们分别是类型标识符转换、常量转换 和函数转换。

    1. 类型标识符转换

    这里 , 所谓类型标识符转换实际上就是利用数据类型的名称来进行类型的转换 , 这种方法通常只适用于那些关系比较密切的数据类型之间的转换。例如 , 整数和实数之间的数据类型转换 :

    SIGNAL m: integer;

    SIGNAL n: real;

    m<= integer (n);

    n < = real (m);

    需要注意的是 , 上面实数转换整数时会发生四舍五入现象。不难看出, 采用类型标识符转换方法十分简单易行。但是, 类型标识符转换只适用于那些关系密切的数据类型 , 如果对关系并不十分密切的数据类型之间使用了这种方法 , 那么仿真和综合过程中 EDA 工具将会 给出错误信息。

    2. 常量转换

    这里 , 常量转换就是借助一个具有转换表格性质的常量来进行某些数据类型的转换 , 通常它的的仿真效率要比利用转换函数的效率高得多。在进行某些复杂算法或者数字信号处理的过程中 , 采用常量转换是一种非常有效的方法。

    采用常量转换方法的具体操作步骤是首先定义一个数组常量 ( 它实际上就是一个转换表 ) , 然后通过给转换信号赋常量数组的元素值来完成数据类型类型的转换。

    3. 函数转换

    函数转换 , 顾名思义 , 就是利用一些特殊的转换函数来进行数据类型之间的转换。采用这种转换方法的具体步骤是首先定义一个转换函数 , 然后将要转换的对象作为实参赋给函数行参 , 最后通过调用函数就可以完成数据类型的转换。

    一般来讲 , 转换函数可以由设计人员自己来编写 , 但是现在一些程序包中已经为设计人员提供了很多现成的转换函数 , 因此这里可以直接调用这些函数来进行数据类型之间的转换操作 , 从而省去了编写转换函数的麻烦。需要注意的是 , 如果要调用程序包中的转换函数, 设计人员必须要在调用前进行程序包使用的说明 .

    下面简单列出一些程序包中提供的转换函数 :

    to_stdlogicvector (s): bit vector 类型转换为 std _ logic _ vector 类型的函数;

    to bitvector (s): std_logic _ vecator 类型转换成 bit _ vector 类型的函数;

    to_stdlogic (s): bit 类型转换成 std _ logic 类型的函数 ;

    to _bit(s): std _ logic 类型转换成 bit 类型的函数 ;

     



      HDL|

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