
内容

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的错误用法
