assign
module
endmodule
阻塞赋值 =
在begin end 语句块中顺序执行
<= 则是并行执行
fork
语句块1
语句块2
join
多用于仿真
语句块之间并行执行
begin end 包围起来的是一个语句块
单独的语句也是一个语句块
敏感信号列表
always@(敏感信号列表)
电平触发 用 = 阻塞赋值
边沿触发 用<= 非阻塞赋值
always 赋值左边必须为 reg
if
else 与C语言一致
case(xxxxxx) 效率高,可以达到很高频率时钟
电平触发 写了 if 不写 else 会综合出锁存器 因为电平触发,会有毛刺。
循环语句
for() 与C语言一致
repeat 多用于仿真
函数 function 可综合
function<返回值位宽或类型> <函数名>
输入端口与类型说明
处理语句 (必须可综合)
endfunction
task 不可综合 通常用于仿真
无返回值
上述是系统的任务,不可综合。
需要明确设计电路 组合/数字
明确设计逻辑