sv中并行语句

news/2024/5/19 18:28:34 标签: systemverilog

sv中并行语句


sv中有fork-join、fork-join_none、fork-join_any三种并行语句,拿一个栗子说明三者的区别。

有三个子线程同时运行 ,只要有任何一个线程结束,就退出并行块,以下是三种实现方法。

task test();
	fork:tag
		begin
		sub1();
		disable tag;
	    end
	    begin
	    sub2();
	    disable tag;
	    end
	    begin
	    sub3();
	    disable tag;
	    end
	join
	$display("done");
endtask:test
task test();
	fork:tag
		sub1();
		sub2();
		sub3();
	join_any
//	disable tag;  //这里的disable没作用
	$dispaly("done");
endtask:test
task test();
	event e;
	fork :tag
		begin
		sub1();
		->e;
		end
		begin
		sub2();
		->e;
		end
		begin
		sub3();
		->e;
		end
	join_none
	@ e;
	disable tag;
	$dispaly("done");
endtask:test

参考
1.link


http://www.niftyadmin.cn/n/1458775.html

相关文章

vim常用指令

1.跳转到上次操作光标位置:ctrlo 2.列操作:ctrlv 3.粘贴复制:yp 4.行选中:shiftv 5.高亮:gd 6.上下左右:hjkl 7.单个字母选中:v 8.快速查找文件:gf 9. 移动光标 Vi中的光标键是h, j,…

svn 问题之右键没有checkout 选项

svn 问题之右键没有checkout 选项1.原因2.解决办法3.参考1.原因 之所以出现这种问题,是因为曾经在当前地址checkout 过文件,当前地址受到svn的控制,svn不允许在当前地址下再嵌套另外一个svn库。 换个不受控的文件夹点右键,就会发…

uvm_event 的使用

uvm_event 的使用 uvm_event可以用来在不同的组件里实现同步的作用。 class exm_driver extends uvm_driver #(data_transaction)uvm_event frame_event...function void build_phase(uvm_phase phase)super.build_phase(phase);frame_event uvm_e…

VCS+Verdi 安装过程遇到的问题-CentOS7

VCSVerdi 安装过程遇到的问题-CentOS71.安装流程1.1文件结构1.2 创建文件目录1.3 解压SynopsysInstaller.rar1.4 安装instller1.5 安装VCS等1.6 生成license1.7 设置环境变量1.8 激活1.9 查看是否激活成功1.10 开机自动激活2.问题记录2.1 问题一2.2 问题二2.3 激活不成功3.引用…

systemverilog中的参数传递——ref、input、output

systemverilog中的参数传递——ref、input、output1 静态数组作为参数1.1 input1.2 output1.3 ref2 动态数组或队列作为参数3 类作为参数4 原文链接1 静态数组作为参数 sv中的静态数组、动态数组、队列都是用一块内存存放,而他们的名字作为该内存的地址&#xff0c…

verilog中函数用法

verilog中函数用法读写文件常用1.1打开文件1.2读写文件2执行系统命令读写文件常用 1.1打开文件 $fopen打开文件&#xff0c;用法如下&#xff1a; 1. $fopen("<文件名>")&#xff1b; 2. <句柄>$fopen(“<文件名>”)&#xff1b;用法1自然无须多…

tf.linalg.band_part函数的参数意思

tf.linalg.band_part&#xff08;.) 函数功能&#xff1a;保留非主对角线的元素&#xff0c;其余位置的元素替换为0 参数描述 input: 输入的张量num_lower &#xff1a;指定保留的主对角线下方的副对角线的数量&#xff0c;输入数值为负数时&#xff0c;表示下方的对角矩阵元…

在模型训练中,如何初始化及冻结Embedding层

Embedding layer 继承自 keras.layers.Layer&#xff0c;而 Layer 层的属性中包含 trainable&#xff0c;该值默认为 True&#xff0c; 设置其为 False&#xff0c;则可在模型训练中冻结 Embedding 层&#xff1b;Layer 层的方法中包含 set_weigths&#xff0c;利用该方法就可以…