zoukankan      html  css  js  c++  java
  • VHDL硬件描述语言(三)——基本数据对象和数据类型

    在VHDL语言里,基本数据对象有三种:常量,变量以及信号。

    常量

    常量就是常数,它的数值不能更改。它必须初始化。它的一般定义格式如下:

    CONSTANT 常量名:数据类型 := 表达式;    --表达式是用来初始化常量的

    变量

    变量的格式如下:

    VARIABLE 变量名:数据类型 := 初值;		--初值可以不赋。

    变量赋值的时候使用“:=”来赋值。变量的值可以更改。对于变量的赋值是没有延迟的。

    信号

    信号的定义格式如下:

    SIGNAL 信号名:数据类型 := 初值;			--初值可以不赋。

    对于信号而言,我们认为它对应于一个实际物理部分。它的赋值不是立即生效的,而是有延迟的。

    标准数据类型

    整数与数学意义上的一致。它可以作为对信号总线状态的一种抽象;

    位用来表示一个信号的状态,它有两种取值‘0’和‘1’。在实际应用中,位可以用来描述总线的值。

    位矢量,它是一组位的集合。每一位都可以取‘0’和‘1’。通常用于表示总线状态。

    布尔量,它是二值枚举。包括两种状态:“TRUE”和“FALES”。

    上面这些数据类型都是定义在STD中的,这是VHDL语言的标准。一般在VHDL语言设计中,我们还经常使用IEEE标准委员会制定的IEEE库的STD_LOGIC_1164程序包中的STD_LOGIC类型和STD_LOGIC_VECTOR类型。

    用户自定义数据类型

    用户自定义数据类型的格式如下:

    TYPE 数据类型名 IS 数据类型;

    常用的有数组类型,整数类型,枚举类型,时间类型。

    定义一个数组名为num的STD_LOGIC类型的数组,定义如下:

    TYPE num IS ARRAY(0 TO 3) OF STD_LOGIC;

    数据类型之间的转换

    VHDL是一门强数据类型语言。它的数据类型之间的转换有两种方式。

    强制类型转换

    这种方式和C语言的非常类似,例如可以如下:

    VARIABLE a:INTEGER;
    VARIABLE b:REAL;
    a:=INTEGER(y);

    函数转换法

  • 相关阅读:
    如何学习一项新技术呢?
    开发人员如何构建自己的学习笔记系统
    Stream流之List、Integer[]、int[]相互转化
    图解LinkedHashMap原理
    java 手动实现单链表(尾插法和头插法)
    为什么你学不会递归?刷题几个月,告别递归,谈谈我的经验
    谈谈限流算法的几种实现
    使用LinkedHashMap实现一个简易的LRU缓存
    Java深拷贝和浅拷贝
    Excel两列求差集和并集的实现
  • 原文地址:https://www.cnblogs.com/zy666/p/10504233.html
Copyright © 2011-2022 走看看