##Verilog语法补充
wire
是传输的信号,reg
是储存的信息;wire
用assign
赋值,reg
需要再clk沿控制下完成存储,且必须在always
块内完成。- 组合逻辑电路和时序逻辑电路的区别:
组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。而时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。 - 关于阻塞赋值:
由于时序逻辑电路的赋值操作在always
内完成,并且由沿触发,沿触发一次,always
代码块就从上往下全运行一次;非阻塞赋值时,赋值操作会在下一个沿生效,这就意味着,第一次的沿触发的always代码块运行并不会对赋值对象造成改变,看起来always里的代码就是并行运算的。 Always
除了可以沿触发,还可以如下触发方式:
Always@(a or b)
:电平触发,or关键字可以替换为逗号;
Always@(5)
:表示5nm触发一次;If()
判断语句里,如果是比较区间,应写成(a>2&&a<6)
的形势,否则会出错。- 按位取与:
c=&a
:将a的所有位与运算的结果给c。 - 位拼接运算:
c<={b[序号],a[序号],…}