Verilog行为建模

这篇博客详细介绍了Verilog的行为级描述,包括过程赋值(阻塞与非阻塞)、过程时序控制(简单延时、边沿敏感、电平敏感)、条件语句(if-else、case)、循环语句以及持续赋值等关键概念,强调了它们在寄存器传输级(RTL)设计中的应用,并特别指出这些特性在行为建模和综合过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RTL级:寄存器传输级(Register Transfer Level),用于设计的可综合的一种抽象级;RTL描述方式是行为描述方式的子集;
行为级描述
是对系统的高抽象级描述。在这个抽象级,注重的是整个系统的功能而不是实现。
Verilog有高级编程语言结构用于行为描述,包括:
wait, while, if then, case和forever
过程(procedural)块
过程块是行为描述的基础,有两种:initial块,只能执行一次;always块,循环执行。
过程块中有下列部件:
– 过程赋值语句:在描述过程块中的数据流
– 高级结构(循环,条件语句):描述块的功能
– 时序控制:控制块的执行及块中的语句。
过程赋值(在过程块中赋值)
• 在过程赋值语句中表达式左边的信号必须是寄存器类型(如reg类型)
• 在过程赋值语句等式右边可以是任何有效的表达式,数据类型也没有限制。
• 如果一个信号没有声明则缺省为wire类型。使用过程赋值语句给wire赋值会产生错误。
过程赋值语句有两类:阻塞过程赋值(a=b)和非阻塞过程赋值(a<=b)
阻塞过程赋值执行完成后再执行在顺序块内下一条语句。
非阻塞赋值不阻塞过程流,仿真器读入一条赋值语句并对它进行调度之后,
就可以处理下一条赋值语句。
若过程块中的所有赋值都是非阻塞的,赋值按两步进行:

  1. 仿真器计算所有RHS表达式的值,保存结果,并进行调度在时序控制指
    定时间的赋值。
  2. 在经过相应的延迟后,仿真器通过将保存的值赋给LHS表达式完成赋值。

过程时序控制
在过程块中可以说明过程时序。过程时序控制有三类:
① 简单延时(#delay):延迟指定时间步后执行
在test bench中使用简单延时(#延时)施加激励,或在行为模型中模拟实际延时,在简单延时中可以使用模块参数parameter:
② 边沿敏感的时序控制:@()
时序控制@可以用在RTL级或行为级组合逻辑或时序逻辑描述中。可以用关键字posedge和negedge限定信号敏感边

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值