systemverilog中堵塞和非堵塞事件以及同步
一、SV中非堵塞事件
module test;
event ev1, ev2;
//belong to logic function part
always@(ev1)
$display("ev1 triggered at %0ts", $time);
initial wait(ev2.triggered)
$display("ev2 triggered at %0ts", $time);
//belong to stimulus
initial begin
->> #5 ev1;
//"->>": non-blocking event, delay 5 cycle triggering the event
end
initial begin
->> @(ev1) ev2;
//event ev1 and ev2 will triggered simutaneous,but ev1 is earlier.
end
endmodule
//Makefile
comp:
vcs -sverilog Synchronous multi-events.sv -l comp.log
run:
./simv -l run.log
clean:
\rm -rf csrc simv* *.log
//run.log
ev1 triggered at 5s
ev2 triggered at 5s
//--------------------------------------------------------------------------------------------------------------
二、SV中堵塞事件
program p;
event e1, e2;
initial begin
$display("@%0t: 1: before trigger", $time);
->e1;
//首先这样的事件是一个零宽度的脉冲
@e2;
$display("@%0t: 1: after trigger", $time);
end
initial begin
$display("@%0t: 2: before trigger", $time);
->e2;
@e1;
$display("@%0t:
2: after trigger", $time);
end
endprogram
//Makefile
comp:
vcs -sverilog *..sv -l comp.log
run:
./simv -l run.log
clean:
\rm -rf csrc simv* *.log
//run.log
@0: 1: before trigger
@0: 2: before trigger
@0: 1: after trigger
#解释:
两个initial块同一时刻运行,但即便是在同一时刻运行也有先后顺序。依照书写顺序从上到下运行(试验过两个initial块前后位置调换,结果恰好相反)。即,同一时刻事件e1先运行完,在@e2处等待,同一时候呢,事件e2也被触发。尽管在同一时刻。但因为e1早于e2被触发,所以,兴许e2的触发是@e2继续运行,但当到@e1时,因为此时事件e1已经被触发,程序会堵在@e1处。呈现如上log中的结果。
systemverilog中堵塞和非堵塞事件以及同步的更多相关文章
- 网络编程----堵塞、非堵塞和同步、异步IO
我是学渣.但我想进步. 本文是面试我的牛人问我的.你知道什么是堵塞.非堵塞和同步.异步IO么?自觉得是分布式系统程序猿的我居然不知道.学习吧. 首先介绍堵塞IO和非堵塞IO: 堵塞IO:是指说程序等待 ...
- Linux下文件的堵塞与非堵塞对部分系统调用的影响
1.基本概念 所谓的堵塞,即内核在对文件操作I/O系统调用时.假设条件不满足(可能须要产生I/O),则内核会将该进程挂起.非堵塞则是发现条件不满足就会马上返回. 此外须要注意的是非堵塞并非轮询.不然就 ...
- 高级字符驱动之堵塞与非堵塞IO
/** *此实例涉及到线程的挂起与竞态,字符IO的堵塞与非堵塞 */ struct scull_pipe { wait_queue_head_t inp, outp; char *buffer, *e ...
- IO模式——同步(堵塞、非堵塞)、异步
为什么IO模式非常重要?由于现代的计算机和操作系统的架构决定了CPU是稀缺资源,大家都要来一起竞争.而IO(特别是网络相关的IO)的速度往往较慢.所以怎样进行IO就有了多种模式,包含同步.异步.堵塞. ...
- Java IO:同步、非堵塞式IO(NIO)
转载请注明出处:jiq•钦's technical Blog 引言 JDK1.4中引入了NIO,即New IO,目的在于提高IO速度.特别注意JavaNIO不全然是非堵塞式IO(No-Blocking ...
- linux 下同步异步,堵塞非堵塞的一些想法
补充: 发现一个更好的解释样例:同步是一件事我们从头到尾尾随着完毕.异步是别人完毕我们仅仅看结果. 堵塞是完毕一件事的过程中可能会遇到一些情况让我们等待(挂起).非堵塞就是发生这些情况时我们跨过. 比 ...
- 《网络编程》非堵塞 I/O
概述 在前面文章中,我们介绍了 I/O 的五种模型<I/O 模型>.从那里能够知道,非堵塞式的 I/O 是进程调用 I/O 操作时.若数据未准备就绪.则马上返回一个 EWOULDBLOCK ...
- Linux 文件描写叙述符设置为非堵塞的方法
通过fcntl设置文件描写叙述符属性 fcntl即F_SETFL,F_GETFL的使用,设置文件的flags,堵塞设置成非堵塞,非堵塞设置成堵塞(这连个在server开发中能够封装为基本函数) 1.获 ...
- 用python实现自己的http服务器——多进程、多线程、协程、单进程非堵塞版、epoll版
了解http协议 http请求头 GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive Pragma: no-cache Cache-Co ...
随机推荐
- NYIST 973 天下第一
天下第一时间限制:1000 ms | 内存限制:65535 KB难度:3 描述AC_Grazy一直对江湖羡慕不已,向往着大碗吃肉大碗喝酒的豪情,但是“人在江湖漂,怎能 不挨刀",”人在江湖身 ...
- ZJU 2605 Under Control
Under Control Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on ZJU. Original ...
- [AngularJS]Chapter 3 使用AngularJS构建应用程序
本章内容提要: 如何布置AngularJS进行快速开发 开启服务器进行测试 使用Karma进行单元测试用例测试 编译压缩AngularJS进行生产 使用Batarang进行Debug 如何简化开发工作 ...
- Rails内存的问题 Java内存情况
Rails内存的问题 Java内存情况 一个txt文件,100M,300万行,都是坐标数据: 需要进行坐标的变换.计算.比较: 在Rails中使用Ruby进行计算,会导致内存超过1.5G,最后溢出而亡 ...
- 数据仓库工具:Hive
转载请标明出处: http://blog.csdn.net/zwto1/article/details/46430823: 本文出自:[明月的博客] 为什么要选择Hive 基于Hadoop的大数据的计 ...
- HDU 1040.As Easy As A+B【排序】【如题(水!水!水!)】【8月24】
As Easy As A+B Problem Description These days, I am thinking about a question, how can I get a probl ...
- hdoj--5500--Reorder the Books(技巧)
Reorder the Books Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...
- 高斯滤波及高斯卷积核C++实现
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,在图像处理的降噪.平滑中应用较多,特别是对抑制或消除服从正态分布的噪声非常有效. 高斯滤波的过程其实就是对整幅图像进行加权平均操作的过程.滤波后图像上每 ...
- C#各个版本中的新增特性详解【转】
序言 自从2000年初期发布以来,c#编程语言不断的得到改进,使我们能够更加清晰的编写代码,也更加容易维护我们的代码,增强的功能已经从1.0搞到啦7.0甚至7.1,每一次改过都伴随着.NET Fram ...
- FastJSON杂项
//通过TypeReference解决泛型的问题 List<Integer> rst = JSON.parseObject(v,new TypeReference<List<I ...