• VHDL变量与信号的差异


    1,
    赋值方式的不同
         变量 := 表达式;
         信号 <= 表达式;
    2,
    硬件实现的功能不同
    信号代表电路单元,功能模块间的互联,代表实际的硬件连线
    变量代表电路单元内部的操作,代表暂存的临时数据
    3,
    有效范围不同
    信号(全局量):程序包,实体,结构体
    变量(局部量):进程,子程序
    注:在进程和子程序中,信号只能被使用,不能被定义说明
    4,
    赋值行为的不同
    信号赋值延时更新数值,一般生成时序电路
    变量赋值立即更新数值,一般生成组合电路
    5,
    信号的多次赋值
    a, 一个进程中:仅最后一次赋值有效
    b, 多个进程中:称为多源驱动(如总线结构)
                   综合成硬件电路的多源驱动有三种:线与,线或,三态
    例子
    ARCHITECTURE  rtl OF sig IS

    SIGNAL a,b : STD_LOGIC; --
    定义信号
    BEGIN

    PROCESS(a,b)

      BEGIN

       a <= b;

       b <= a;
    END PROCESS;

    END rtl ;
    由于信号赋值的延时性(赋新值发生在进程结束时),所以结果是a,b 的值互换

    ARCHITECTURE rtl OF var IS

    BEGIN

    PROCESS


    VARIABLE a,b : STD_LOGIC;--
    定义变量

    BEGIN

    a := b;

    b := a;

    END PROCESS;

    END rtl ;
    由于变量赋值的立即更新,所以结果是ab的值均为b
  • 相关阅读:
    利用Session和HashTable制作购物车实例
    在windows 7上安装Maven2.2.1
    tail & cut 命令
    软件开发常用名词中英文对照
    字符,字节和编码
    grep 简介
    HSQLDB: java程序使用hsqldb 入门教程 java启动hsqldb
    eclipse 安装 maven 插件
    JNI 返回结构体参数
    HSQLDB 安装与使用
  • 原文地址:https://www.cnblogs.com/touchblue/p/2821556.html
Copyright © 2020-2023  润新知