Verilog语句简析

这篇博客详细解析了Verilog编程中的多种语句,包括Always语句(下降沿触发和@*语法)、Initial语句(仅执行一次)、Begin-End与Fork-Join语句(顺序执行与同步执行)、赋值语句(阻塞式和非阻塞式)、Case语句、If语句、For语句、Forever语句、Repeat语句、While语句和Disable语句(终止特定语句组)。每个语句都配以语法和示例,帮助理解其用法和功能。
摘要由CSDN通过智能技术生成

Verilog语句简析

Always语句

语法:

always [敏感列表]
    语句

always语句用来重复执行语句。用敏感列表来控制语句何时开始执行。如果always后面有多于一条语句,则必须使用begin-end或fork-join。


例程:

always #10 Clk = !Clk;

always @(posedge Clk or negedge Reset)
begin
  if (!Reset)
    Q <= 0;
  else
    Q <= D;
end

敏感列表的语法:

@( [ edge ] signal [ or [ edge ] signal ] ... )
@( [ edge ] signal [ , [ edge ] signal ] ... )
@*

edge = posedge | negedge

posedge 上升沿触发

negedge 下降沿触发

@*表示在always语句中所有用到的信号和变量都是敏感信号。


例程:

always @(posedge Clk or negedge Reset)
always @(negedge Reset, Enable)
always @*                          // same as @(A or B or C or D)
begin
  Tmp1 = A & B;
  Tmp2 = C & D;
end


Initial语句

仅执行一次语句

语法

initial
    语句

例程:

initial
  fork
    Q = 16'h0000;
    #20 Q = 16'hC10A;    //延迟20单位时间
    #40 Q = 16'hAFE0;
  join

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值