行为建模方式是用过程赋值语句来实现的。下面对行为建模方式的过程结构进行详细介绍。
过程结构
Verilog HDL 中的主要行为通过两种语句来控制进行:
• ini
tial 语句;
• always 语句。
initial 语句在模拟开始时执行,即在 0 时刻开始执行。initial 语句只执行一次,它的语法如下:
- initial
- [timing_control] procedural_statement
这里的时序控制可以是延时控制,即等待一个确定的时间;或事件控制,即等待确定的事件发生或某一特定的条件为真。initial 语句的各个进程语句仅执行一次。initial 语句根据进程语句中出现的时间控制在以后的某个时间完成执行。下面是一个 initial 语句实例:
- parameter SIZE = 1024;
- reg [7:0] RAM [ 0:SIZE- 1 ] ;
- reg RibReg;
- initial
- begin: SEQ_BLK_A
- integer Index;
- RibReg = 0;
- for (Index = 0; Index < SIZE; Index = Index + 1)
- RAM[Index] = 0;
- End
与 initial 语句相反,always 语句可重复执行。与 initial 语句类似,always 语句语法如下:
- always
- [timing_control]procedural_statement
下面是一个 always 语句的实例。
- reg [0:5] InstrReg;
- reg [3:0] Accum;
- wire ExecuteCycle;
- always@ (EcecuteCycle) //发生在某个时钟沿
- begin
- case(InstrReg[ 0 : 1 ] )//多路条件分支
- 2'b00: Store (Accum, InstrReg[ 2 : 5 ] ) ;//存储
- 2'b11: Load (Accum, InstrReg[ 2 : 5 ] ) ;//读取
- 2'b01: Jump (InstrReg[ 2 : 5 ] ) ;//跳转
- 2'b10: ;
- endcase
- end