加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]VHDL中VARIABLE和SIGNAL的区别

(2016-05-07 22:28:40)
标签:

转载

3.总结
在一个进程中,如果对一个信号多次赋值,那么,只有最后一个值才是有效的。如果对变量多次赋值,那么每次赋值都是有效的,并且,变量的值在再次赋值之前一直保持不变。
信号跟硬件有点类似,并且是在进程结束的时候才更新;变量是立即更新的,因此可以影响程序的功能,但变量的好处是仿真速度更快。
因此,通常情况下,推荐使用信号,可以保证程序的正确性。

1、VARIABLE的特点

    无延迟特性,直接赋值
    一般情况下不允许有全程变量
    不能在实体和结构体声明中定义
    只能在进程内部或子程序中定义。
    进程挂起时,变量值保持不变。
    (仅在第一次执行进程时初始化)
    子程序变量在每次调用时赋初值

2、SIGNAL的特点

    信号赋值一定经过延时;
    信号赋值语句中如果缺少延时指定,则默认延迟时间为 0;
    VHDL模拟器则将其按**对待,如果缺少指定,则默认为惯性延迟;

    信号只能在进程外部定义,不能在进程内部或子程序内部定义。
    实体中声明端口信号。
    信号可以有预定义属性:
        信号自身的属性:Delayed, Stable(t)
        关于事件的属性: Event
        关于事项处理的属性: Active

 

本文整理自薛宏熙老师的课程PPT,chap2(38-41).

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有