📄 ch05.5.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML EXPERIMENTAL 970324//EN"><HTML><HEAD><META NAME="GENERATOR" CONTENT="Adobe FrameMaker 5.5/HTML Export Filter"><LINK REL="STYLESHEET" HREF="ch05.css"><TITLE> 5.5 Race conditions</TITLE></HEAD><BODY BGCOLOR="#ffffff"><DIV><HR><P><A HREF="ch05.htm">Chapter start</A> <A HREF="ch05.4.htm">Previous page</A> <A HREF="ch05.6.htm">Next page</A></P></DIV><H1 CLASS="Section"><A NAME="pgfId=139"> </A>5.5 Race conditions</H1><P CLASS="Body"><A NAME="pgfId=140"> </A>Because the execution of expression evaluation and net update events may be intermingled, race conditions are possible:</P><PRE CLASS="CodeIndent"><A NAME="pgfId=141"> </A><B CLASS="Keyword">assign</B> p = q; <B CLASS="Keyword">initial</B> <B CLASS="Keyword">begin</B> q = 1; #1 q = 0; <B CLASS="Keyword">$display</B>(p); <B CLASS="Keyword">end</B></PRE><P CLASS="Body"><A NAME="pgfId=142"> </A>The simulator is correct in displaying either a <CODE CLASS="code">1</CODE> or a <CODE CLASS="code">0</CODE> here. The assignment of <CODE CLASS="code">0</CODE> to <CODE CLASS="code">q</CODE> enables an update event for <CODE CLASS="code">p</CODE>. The simulator may either continue and execute the $display task, or execute the update for <CODE CLASS="code">p</CODE>, followed by the $display task.</P><HR><P><A HREF="ch05.htm">Chapter start</A> <A HREF="ch05.4.htm">Previous page</A> <A HREF="ch05.6.htm">Next page</A></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -