原创 Always过程块语法

2011-8-8 01:51 1931 0 1 分类: FPGA/CPLD

   Always过程块语法:

always过程块是由always过程语句和语句块组成的,语法格式如下:

always @ (敏感事件1 or 敏感事件2 or 敏感事件3…….)

语句块

    ★★ always后面的语句块,如果只有一个类型的语句,可以不加begin…end

例如:always@(posdege clk or negedge rstn)  begin ---------------只有一个语句,可以不要

          If(rstn)

                            Q=4’d0;

          Else q=q+1;

      End                                   ---------------只有一个语句,可以不要

 

★★  always的敏感列表

    always实现组合逻辑要将所有输入信号列入敏感列表

    always实现时序逻辑不一定要将所有输入信号列入敏感列表

 

★★  always@(*)的用法

如果在设计中不愿列举过多的敏感信号,在综合工具和仿真工具的支持下,也可以使用always@(*),此时综合或仿真工具会自动把always块中出现的敏感信号加入敏感信号列表

 

★★  always块内被赋值的信号

always块内部的每一个信号都必须定义成寄存器型!!!!

注意:是等号”=”左边的变量,而不是右边的表达式,右边的表达式可以是任何类型

 

★★  always块外被赋值的信号

l  必须指定为wire类型

l  如果是端口信号,那么默认的类型就是wire类型的,不需要另外指定。

 

★★  同一个reg,多个always

对一个寄存器型(reg)和整型(integer)变量给定位的赋值只允许在一个always内进行,如在另一always块也对其赋值,这是非法的。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户541503 2011-10-19 14:32

always@() 括号中可以不是边沿吗?
相关推荐阅读
用户1064897 2011-08-08 01:47
异步复位时亚稳态危害的例子
下面是一个异步复位危害的例子,这是我自己想了好久才想出来的,不对的地方请高手指出。 代码很简单,就是一个计时器,设置了一个8位的定时计时器counter(也可以是更多的位),复位的时候counter...
用户1064897 2011-08-07 23:35
亚稳态2——异步复位时亚稳态产生的影响
——摘自异步复位设计中的亚稳态问题及其解决方案 Trecovery ( recovery time) 指的是原本有效的异步复位信号释放(对低电平有效的复位来说就是上跳沿) 与紧跟其后的第一个时钟有效...
用户1064897 2011-08-07 23:28
初步理解亚稳态1——多看E文才是正道
    这是转发特权同学的翻译《 Understanding Metastability in FPGAs 》,加入了一些自己的理解 所有数字器件(例如FPGA)的信号传输都会有一定的时序要求,...
用户1064897 2011-07-24 22:58
FIFO的使用注意
一个最简单的FIFO如下图: 左图包括数据输入data[7:0],输出q[7:0],写请求wrreq,读请求rdreq,时钟clock,FIFO满标志位full,有的还有FIFO空标志位empty...
用户1064897 2011-07-24 22:55
Altera器件型号指南
1.    其型号编号方式EP1C代表Cyclone器件,EP2C代表Cyclone II,EP3C代表Cyclone III,EP4C代表Cyclone IV,EP5C代表Cyclone V 2....
我要评论
1
0
关闭 站长推荐上一条 /3 下一条