码迷,mamicode.com
首页 > 其他好文 > 详细

Verilog语法遗漏点

时间:2018-11-20 21:45:18      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:合成   出现   异或运算   变化   归约   运算符   always   amp   列表   

1 关于参数定义

Parameter:parameter只能定义在端口生命的前面,如

Input[whith:0] a;

Parameter whith=4;

这样的参数定义出现在声明的后面会报错

 

2 关于always

always块不仅可以描述时序逻辑,也可以描述组合逻辑

如wire a,b;  assign a=b

与reg a; wire b;  always@(b) a=b;     可见,always块内允许阻塞赋值

不过需要注意的是

always中,等号左边的变量必须是reg型,而不能是wire型,无论是组合逻辑还是时序逻辑均成立,但是最终变量a被综合成了连线,而不是寄存器!!!!

 

3 关于if  else

If…else…语句,只能依附于always等程序模块不能单独使用,如果想单独使用,用三目运算符代替

 

4 不定态X表示不可推断电平,高阻态Z相当于断路状态

 

5 REG型量不一定被综合成寄存器

Verilog中,块内被赋值的变量,都必须是寄存器reg类型!!如上述2中的介绍,但是reg型变量不一定被综合成寄存器,组合逻辑中被综合成互连,不完全组合逻辑中,描述成锁存器。所以寄存器变量不一定被综合成寄存器。

6 归约运算符

归约运算符是一种单目运算符;被操作数具有一定的位宽,操作的结果都是1位。

如wire[3:0]bus 4’hf;

  Wire result = &bus;

  上述赋值相当于assign result=bus[0]&bus[1]&bus[2]&bus[3];//归约与运算符

如果是|,相当于assign result bus[0]| bus[1]|bus[2]|bus[3];//归约或运算符

  如果是^,相当于………………………………………………………………..//归约异或运算符

 

实例参数重载方式,这个是为了输入端口宽度进行灵活配置的方式(遇到再看)

 

8 关于alwaya@()敏感列表

Always@(posedge clk)

Always@(signal)

关于电平敏感,表示电平发生变化就执行块内的内容。

 

Verilog语法遗漏点

标签:合成   出现   异或运算   变化   归约   运算符   always   amp   列表   

原文地址:https://www.cnblogs.com/shaonianpi/p/9991670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!