FPGA 学习小组
直播中

alexdos

6年用户 804经验值
擅长:可编程逻辑 电源/新能源 嵌入式技术 模拟技术
私信 关注

【FPGA学习】Verilog HDL 语言行为建模形式的过程结构是怎样的

  行为建模方式是用过程赋值语句来实现的。下面对行为建模方式的过程结构进行详细介绍。
  过程结构
  Verilog HDL 中的主要行为通过两种语句来控制进行:
  • initial 语句;
  • always 语句。
  initial 语句在模拟开始时执行,即在 0 时刻开始执行。initial 语句只执行一次,它的语法如下:
  1.   initial
  2.   [timing_control] procedural_statement

  这里的时序控制可以是延时控制,即等待一个确定的时间;或事件控制,即等待确定的事件发生或某一特定的条件为真。initial 语句的各个进程语句仅执行一次。initial 语句根据进程语句中出现的时间控制在以后的某个时间完成执行。下面是一个 initial 语句实例:
  1.   parameter SIZE = 1024;
  2.   reg [7:0] RAM [ 0:SIZE- 1 ] ;
  3.   reg RibReg;
  4.   initial
  5.   begin: SEQ_BLK_A
  6.   integer Index;
  7.   RibReg = 0;
  8.   for (Index = 0; Index < SIZE; Index = Index + 1)
  9.   RAM[Index] = 0;
  10.   End

  与 initial 语句相反,always 语句可重复执行。与 initial 语句类似,always 语句语法如下:
  1.   always
  2.   [timing_control]procedural_statement

  下面是一个 always 语句的实例。
  1.   reg [0:5] InstrReg;
  2.   reg [3:0] Accum;
  3.   wire ExecuteCycle;
  4.   always@ (EcecuteCycle) //发生在某个时钟沿
  5.   begin
  6.   case(InstrReg[ 0 : 1 ] )//多路条件分支
  7.   2'b00: Store (Accum, InstrReg[ 2 : 5 ] ) ;//存储
  8.   2'b11: Load (Accum, InstrReg[ 2 : 5 ] ) ;//读取
  9.   2'b01: Jump (InstrReg[ 2 : 5 ] ) ;//跳转
  10.   2'b10: ;
  11.   endcase
  12.   end

更多回帖

发帖
×
20
完善资料,
赚取积分