SV 并发线程

内容

assign d = a & b;
assign e = b | c;
  • begin...end之间的语句是串行执行的
  • fork....join语句是并行执行的

逻辑仿真工具中的并发性

  • 仿真工具的时间更新,等到一个时刻所有的线程执行完成才会更新仿真时间

并发线程执行

  • 线程遇到等待语句之后才会停止,否则一直执行

并发线程执行模式

  • 进程语句中没有等待语句会导致时间不更新,导致死锁

并发线程



join选项











  • fork...join跳出子进程之后,其中的语句仍然会执行

并发线程控制


测试:有多少个线程

测试2

  • 多线程程序中,所有的线程必须是有限的或者必须更新仿真时间

测试3:a和b的值是多少?


测试4:仿真时间是多少?

测试5:program默认是static

  • 仿真再0时刻结束,仿真结束之后,会将i更新为15最新的值,因为i是static变量,此时子线程还没有执行,执行子线程打印j(i)的值就是i的最新值15
  • program中的变量默认是static类型的

测试6:fork..join的错误用法