📄 00127.html
字号:
</p>
<p class="Element10">
<span class="Element146">clocking_event</span>指定了一个特定的、作用于时钟控制块时钟的事件。典型情况下,这个表达式是一个时钟信号的上升沿或下降沿。在一个指定的时钟控制块中说明的所有其它信号的时序都由这个时钟事件控制。时钟控制块中所有的输入或双向信号都在对应的时钟事件发生的时候被采样。同样,时钟控制块中所有输出或双向信号都在对应的时钟事件发生的时候被驱动。双向信号(<span style="color: #0000FF">inout</span>)即被驱动也被采样。 </p>
<p class="Element10">
</p>
<p class="Element10">
<span class="Element146">clocking_skew</span>确定一个信号离开时钟事件多少个时间单位被采样或驱动。输入时滞隐含是负的,也就是说,它们总是指向时钟之前的一个时间,而输出时滞则总是指向时钟之后的一个时间(参见<a href="00128.html" target="topic">15.3节</a>)。当时钟时间指定了一个简单的沿而不是一个数值的时候,时滞可以被说明成信号的特定的沿。通过使用一个缺省的时钟控制条目,我们可以为整个块指定单个时滞。 </p>
<p class="Element10">
</p><div class="Element170">
<a href="#" onclick="CopyElementToClipboard('code00531');">Copy Code</a></div>
<div class="Element13"><div class="Element12" id="code00531"><pre class="Element12"><span style="color: #0000FF">clocking</span> ck1 <span style="color: #800080">@(</span><span style="color: #0000FF">posedge</span> clk<span style="color: #800080">);</span>
<span style="color: #0000FF">default input</span> <span style="color: #800080">#</span><span style="color: #FF0000">1</span><span style="color: #0000FF">step</span> <span style="color: #0000FF">output negedge</span><span style="color: #800080">;</span> <span style="color: #008000">// 合法的</span>
<span style="color: #008000">// 输出在clk的下降沿被驱动</span>
<span style="color: #0000FF">input</span> ...<span style="color: #800080">;</span>
<span style="color: #0000FF">output</span> ...<span style="color: #800080">;</span>
<span style="color: #0000FF">endclocking</span>
<span style="color: #0000FF">clocking</span> ck2 <span style="color: #800080">@(</span>clk<span style="color: #800080">);</span> <span style="color: #008000">// 没有指定沿</span>
<span style="color: #0000FF">default input</span> <span style="color: #800080">#</span><span style="color: #FF0000">1</span><span style="color: #0000FF">step</span> <span style="color: #0000FF">output negedge</span><span style="color: #800080">;</span> <span style="color: #008000">// 合法的</span>
<span style="color: #0000FF">input</span> ...<span style="color: #800080">;</span>
<span style="color: #0000FF">output</span> ...<span style="color: #800080">;</span>
<span style="color: #0000FF">endclocking</span></pre></div></div>
<p class="Element10">
</p>
<p class="Element10">
<span class="Element146">hierarchical_identifier</span>说明与时钟控制块关联的信号由它的层次化名字指定(跨模块引用),而不是一个本地端口。 </p>
<p class="Element10">
</p>
<p class="Element10">
例子: </p><div class="Element170">
<a href="#" onclick="CopyElementToClipboard('code00532');">Copy Code</a></div>
<div class="Element13"><div class="Element12" id="code00532"><pre class="Element12"><span style="color: #0000FF">clocking</span> bus <span style="color: #800080">@(</span><span style="color: #0000FF">posedge</span> clock1<span style="color: #800080">);</span>
<span style="color: #0000FF">default input</span> <span style="color: #800080">#</span><span style="color: #FF0000">10</span><span style="color: #0000FF">ns</span> <span style="color: #0000FF">output</span> <span style="color: #800080">#</span><span style="color: #FF0000">2</span><span style="color: #0000FF">ns</span><span style="color: #800080">;</span>
<span style="color: #0000FF">input</span> data<span style="color: #800080">,</span> ready<span style="color: #800080">,</span> enable <span style="color: #800080">=</span> top<span style="color: #800080">.</span>mem1<span style="color: #800080">.</span>enable<span style="color: #800080">;</span>
<span style="color: #0000FF">output</span> <span style="color: #0000FF">negedge</span> ack<span style="color: #800080">;</span>
<span style="color: #0000FF">input</span> <span style="color: #800080">#</span><span style="color: #FF0000">1</span><span style="color: #0000FF">step</span> addr<span style="color: #800080">;</span>
<span style="color: #0000FF">endclocking</span></pre></div></div>
<p class="Element10">
</p>
<p class="Element10">
在上面的例子中,第一行代码声明了一个称为<span class="Element146">bus</span>的时钟控制块,它以信号<span class="Element146">clock1</span>的上升沿进行时钟控制。第二行代码通过<span style="color: #0000FF">default</span>指出:时钟控制块中的所有信号都应该使用一个<span class="Element146"><span style="color: #FF0000">10</span><span style="color: #0000FF">ns</span></span>的输入时滞和一个<span class="Element146"><span style="color: #FF0000">2</span><span style="color: #0000FF">ns</span></span>的输出时滞。下一行代码为时钟控制块加入了三个输入信号:<span class="Element146">data</span>、<span class="Element146">ready</span>和<span class="Element146">enable</span>;最后一个信号指向层次化的信号<span class="Element146">top<span style="color: #800080">.</span>mem1<span style="color: #800080">.</span>enable</span>。第四行代码为时钟控制块加入了一个<span class="Element146">ack</span>信号并过载了缺省的输出时滞从而使<span class="Element146">ack</span>信号在时钟的下降沿被驱动。最后一行代码加入了<span class="Element146">addr</span>信号并过载了缺省的输入时滞从而使<span class="Element146">addr</span>在时钟上升沿之前的一个步值时被采样。 </p>
<p class="Element10">
</p>
<p class="Element10">
除非另有说明,缺省的输入时滞是<span style="color: #FF0000">1</span><span style="color: #0000FF">step</span>,缺省的输出时滞是<span style="color: #FF0000">0</span>。一个步值是一个特殊的时间单位,它的值在<a href="00189.html" target="topic">18.10节</a>中定义。一个<span style="color: #FF0000">1</span><span style="color: #0000FF">step</span>的输入时滞使得输入信号在时钟信号之前的时间步值中采样它们的稳定值(也就是在前一个<span class="Element146">Postponed</span>区域)。与其它代表物理单位的时间单位不同,一个step不能被用来设置或修改时间精度或时间单位。</p></div>
</div>
<a name="Group"></a><div class="Element14">
<a onclick="toggleVisibilityStored('Group');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="imgGroup">Group</a></div>
<div id="divGroup">
<div class="Element11">
<div class="Element10">
<p class="Element10">
<a href="00871.html" target="topic">第十五章 时钟控制块</a></p></div>
</div>
</div>
<a name="Links"></a><div class="Element14">
<a onclick="toggleVisibilityStored('链接');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="img链接">链接</a></div>
<div id="div链接">
<div class="Element11">
<div class="Element10">
<a href="00871.html" target="topic">第十五章 时钟控制块</a></div>
</div>
</div>
</div>
<!-- End Page Content -->
<!-- Begin Page Footer -->
<hr width="98%" align="center" size="1" color="#CCCCCC" />
<table align="center" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr height="10">
<td></td>
</tr>
<tr align="center">
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-5266859600380184";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_page_url = document.location;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td>
</tr>
<tr height="15">
<td></td>
</tr>
<tr align="center">
<td>
<font size=2>除非特别声明,原文版权归作者所有,如有转摘请注明原作者以及译者(<a href="http://www.fpgatech.net/" target="_blank">FPGA技术网</a>)信息。<br />
如果您对本主题有何建议或意见,请登陆<a href="http://www.fpgatech.net/forum/forumdisplay.php?fid=18" target="_blank">FPGA开发者家园</a>提交,您的参与是我们前进的动力。</font>
<script language="javascript" type="text/javascript" src="http://js.users.51.la/195685.js"></script>
<noscript><a href="http://www.51.la/?195685" target="_blank"><img alt="我要啦免费统计" src="http://img.users.51.la/195685.asp" style="border:none" /></a></noscript>
</td>
</tr>
</tbody>
</table>
<!-- End Page Footer -->
</div>
</div>
<!-- End Client Area -->
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -