![8fa05d1d7442cb2bb451aa64c00ebc1e.png](https://img-blog.csdnimg.cn/img_convert/8fa05d1d7442cb2bb451aa64c00ebc1e.png)
Verilog的调度语义
仿真的代码是由一个个离散事件组成,运行verilog也就是执行一个个时间和线程。
仿真器中线程与事件的执行是串行方式,而真实的RTL电路代码的执行方式是并行执行,仿真器需要通过调度串行事件来模拟芯片真实的并行行为。因此,为了模拟贴近真实电路行为,明确仿真环境行为,避免竞争冒险与采样不确定等危机,verilog标准划分了明确的事件调度与代码执行区间。
事件
事件分为两种。
第一种,在被仿真的电路中,变量的任何改变被称为事件、也被叫做 update event。
第二种,进程对第一种事件敏感,在执行进程中,导致一些变量改变叫做evaluation event。
进程
我们写下每一句可执行的verilog代码,在仿真器看来都是一个进程。进程是一个可以被评估的对象,进程有状态,可以对事件最初响应产生输出。
典型进程包括原语, modules, initial、 always程序块, 连续赋值, asynchronous tasks, procedural assignment statements
进程对事件很敏感,当事件被执行时,所有对该事件敏感的进程都以任意顺序进行评估,进程的评估也是一个事件&#