Verilog语法

语法子集很小,易用。
模块:module…endmodule
端口:input,output,inout(双向特殊)
inout比较难用,有一张真值表,需要大家观察后书写,基本原则就是输入时一定是高阻态(z),与问号冒号运算符搭配使用。
信号:wire,reg,tri(测试用)… reg与wire常用
运算符:与其他语言类似,逻辑运算与算数运算以及关系运算。
分支:if…else, case…default…endcase。
if…else其实在逻辑上与case差别不是很大,但是if…else天生带优先级。
赋值:assign与=以及<=(非阻塞赋值什么鬼?)
其中assign是连续赋值的语句,而=是阻塞赋值,<=是非阻塞赋值,其中非阻塞赋值在verilog中使用频率很高。=似乎在同步问题上比较有用。
always:与@连用,敏感信号量改变引起此模块执行。
always@(posedge [signal] [or negedge[signal]])。
begin…end就是作用域
任务:task…endtask
循环:for循环不是很好用,因为硬件的时序问题很重要,同步异步,自己体会能知。
参数:#与localparam。
都是可综合语法,大道从简。

原文地址:https://www.cnblogs.com/wanghuaijun/p/7623801.html