目录
前言
关于event region 和 timeslot的知识点,一直不清不楚的,虽然平时遇到的机会不是那么多,但总觉得心里有个疙瘩,需要解决。趁着最近稍微有点时间,爬爬网络,搜集搜集资料。 关于仿真软件在跑systemverilog的时候,是如果通过将HDL代码分成5个区域来编译,从而实现用软件模拟硬件的运行结果的思想。
首先,是基础概念,systemverilog标准划分了仿真软件的5个跑仿真所要执行的区域,说白了就是规定了软件在跑代码的时候要把代码分成5类,放到5个堆栈里面分别跑,这样才能:明明在软件上是以顺序方式来执行代码的,却能“看似”像在硬件中那样的实现并行的电路结果(这是模拟硬件行为的精髓所在)。
这是一个比较完整的SV代码分解的流程。今天咱们不搞太复杂的,就先看看阻塞赋值,非阻塞赋值,#0阻塞赋值,以及monitor,display等系统函数是怎么在执行顺序上进行划分的。
也就是说,今天我们关心的流程放大一点是下面这个样子的:
<