56-3-33.3 电路行为描述(2).pptVIP

  • 13
  • 0
  • 约4.65千字
  • 约 16页
  • 2020-02-15 发布于天津
  • 举报
杭州电子科技大学 EDA技术 杭州电子科技大学 EDA技术 * 3.3 电路的行为描述(2) 过程块always case与if条件语句 信号与变量 第三章 Verilog HDL基础 杭州电子科技大学 EDA技术 * 行为描述:always过程块 (1) 描述复杂电路时较assign更为有效的行为描述语句是用always引导的过程块。 module mux41a (a,b,c,d,s1,s0,y); input a,b,c,d,s1,s0; output y; reg y; always @(a or b or c or d or s1 or s0) begin : MUX41 case ({s1, s0}) 2b00: y = a; 2b01: y = b; 2b10: y = c; 2b11: y = d; default: y = a; endcase end endmodule 3.3 电路的行为描述 图3-4 4选1多路选择器 杭州电子科技大学 EDA技术 * 行为描述: always过程块 (2) 过程语句也称过程块,它的组成是: always @ (敏感信号表) begin (:块名) 块内局部变量说明; 一条或多条过程赋值或 高级程序语句; end always结构反复执行,监测敏感信号的变化,永不终止或退出;一旦敏感信号有变化,就会将过程体中的语句执行一次,执行完毕后再等待下一次敏感信号的变化。 y = a是一种过程赋值语句(非阻塞赋值);与连续信号赋值语句不同。 always @ (a or b or ……) begin : MUX41 case ({s1, s0}) 2b00: y = a; 2b01: y = b; 2b10: y = c; 2b11: y = d; default: y = a; endcase end 3.3 电路的行为描述 begin-end: 多条语 句并列时必须,相 当于语句括号。 杭州电子科技大学 EDA技术 * 行为描述: always过程块 (3) 由always引导的过程块是Verilog HDL中最常用的行为描述方式,其特性与操作系统中的进程完全相同。 进程的间歇活动性:always过程块始终在检测敏感信号表中各信号的变化,只要有一个信号发生变化,过程块就会被激活、执行一次;信号没有发生变化时,过程则被挂起。 这正好反映了硬件电路的特点:只要输入信号有变化,电路中相关的信号就会发生变化。 一个always过程块对应一个电路模块,敏感信号是该模块的输入。 3.3 电路的行为描述 杭州电子科技大学 EDA技术 * 行为描述:复杂行为控制case语句 为了描述复杂的逻辑行为,Verilog HDL包括了与通常软件描述语言类似的条件、分支、循环等语句。 case是一种条件分支语句,一般格式是: case ({s1, s0}) 2b00: y = a; 2b01: y = b; 2b10: y = c; 2b11: y = d; default: y = a; endcase 3.3 电路的行为描述 case(表达式) 取值1:begin 语句1:语句2:…;语句n;end 取值2:begin 语句n+1:语句n+2:…;语句n+m;end … default: begin 语句n+m+1; …; end endcase 杭州电子科技大学 EDA技术 * 行为描述:reg型变量 reg定义一种变量类型,称寄存器型变量。 Verilog HDL行为模型通过描述电路中各点信号之间的关系来表达电路的行为,在HDL代码中,信号一般用一个变量来表示。 module mux41a (a,b,c,d,s1,s0,y); input a,b,c,d,s1,s0; output y; reg y; always @(a or b or ……) begin ┇ 2b11: y = d end 变量可以分为两大类:线网(net)型wir

文档评论(0)

1亿VIP精品文档

相关文档