zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    FILE 创建
    jfreechart折线图 demo
    Win7下Maven的安装与配置
    IntelliJ IDEA 14.x 与 Tomcat 集成,创建并运行Java Web项目
    Java中print、printf、println
    添加SSH密钥到GitHub
    GitHub学习资料
    Windows下Git的安装及配置
    【转】我害怕阅读的人
    安装MongoDB
  • 原文地址:https://www.cnblogs.com/touchblue/p/2821556.html
Copyright © 2011-2022 走看看