⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00067.html

📁 这是一本关于verilog编程语言的教程,对学习verilog语言有帮助
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<title>12.4 约束块</title>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <meta name="generator" content="Doc-O-Matic" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="STYLESHEET" href="default.css" type="text/css" />

<script type="text/javascript" src="scripts.js"></script>
</head>
<body class="Element700" onload="onBodyLoadEx('systemverilog31a.html', 'topic', '00067.html');" onmousedown="onBodyMouseDown();">

<!-- Begin Popups -->
<div class="Element801" id="popup00221">
<div class="Element800">
<div class="Element14">
链接</div>
<div class="Element11">
<div class="Element10">
<a href="00865.html" target="topic">第十二章 随机约束</a>, <a href="00927.html" target="topic">主题</a></div>
</div>
</div>
</div>

<!-- End Popups -->

<!-- Begin Page Header -->
<div class="Element710" id="areafixed">
<div class="Element92">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="33%">
<div class="Element1">
<a href="#" onmousedown="showPopup(this, 'popup00221');"><img src="seealsolink.png" border="0" alt="" title=""></a> SystemVerilog 3.1a语言参考手册</div>
</td><td width="34%">
<div class="Element2">
</div>
</td><td width="33%">
<div class="Element90">
<a href="00066.html" target="topic"><img src="btn_prev_lightblue.gif" border="0" alt="Previous" title="Previous" onmouseover="switchImage(this, 'btn_prev_lightblue_hover.gif');" onmouseout="switchImage(this, 'btn_prev_lightblue.gif');"></a><a href="00865.html" target="topic"><img src="btn_up_lightblue.gif" border="0" alt="Up" title="Up" onmouseover="switchImage(this, 'btn_up_lightblue_hover.gif');" onmouseout="switchImage(this, 'btn_up_lightblue.gif');"></a><a href="00068.html" target="topic"><img src="btn_next_lightblue.gif" border="0" alt="Next" title="Next" onmouseover="switchImage(this, 'btn_next_lightblue_hover.gif');" onmouseout="switchImage(this, 'btn_next_lightblue.gif');"></a></div>
</td></tr></table><div class="Element5">
12.4 约束块</div>
</div>
</div>

<!-- End Page Header -->

<!-- Begin Client Area -->
<div class="Element720" id="areascroll">
<div class="Element721">

<!-- Begin Page Content -->
<div class="Element58">
<a name="描述"></a><div class="Element11">
<div class="Element10">
<p class="Element10">
随机变量的值通过由约束块声明的约束表达式来确定。像任务、函数和变量一样,随机块是类的成员。在一个类中,约束块的名字必须是唯一的。&nbsp;</p>
<p class="Element10">
&nbsp;</p>
<p class="Element10">
声明约束块的语法如下: </p><div class="Element170">
<a href="#" onclick="CopyElementToClipboard('code00402');">Copy Code</a></div>
<div class="Element13"><div class="Element12" id="code00402"><pre class="Element12">constraint_declaration ::=              <span style="color: #008000">// 引用自附录A.1.9</span>
    [<strong><span style="color: #FF0000">static</span></strong>] <strong><span style="color: #FF0000">constraint</span></strong> constraint_identifier constraint_block

constraint_block ::= <strong><span style="color: #FF0000">{</span></strong>{constraint_block_item}<strong><span style="color: #FF0000">}</span></strong>

constraint_block_item ::=
    <strong><span style="color: #FF0000">solve</span></strong> identifier_list <strong><span style="color: #FF0000">before</span></strong> identifier_list<span style="color: #FF0000">;</span>
  | constraint_expression

constraint_expression ::=
    expression_or_dist<strong><span style="color: #FF0000">;</span></strong>
  | expression <strong><span style="color: #FF0000">–&gt;</span></strong> constraint_set
  | <strong><span style="color: #FF0000">if</span></strong> <strong><span style="color: #FF0000">(</span></strong>expression<strong><span style="color: #FF0000">)</span></strong> constraint_set [<strong><span style="color: #FF0000">else</span></strong> constraint_set]
  | <strong><span style="color: #FF0000">foreach</span></strong> <strong><span style="color: #FF0000">(</span></strong>array_identifier <strong><span style="color: #FF0000">[</span></strong>loop_variables<strong><span style="color: #FF0000">])</span></strong> constraint_set

constraint_set ::=
    constraint_expression
  | <strong><span style="color: #FF0000">{</span></strong>{constraint_expression}<strong><span style="color: #FF0000">}</span></strong>

dist_list ::= dist_item {<strong><span style="color: #FF0000">,</span></strong> dist_item}

dist_item ::= value_range [dist_weight]

dist_weight ::=
    <strong><span style="color: #FF0000">:=</span></strong> expression
  | <strong><span style="color: #FF0000">:/</span></strong> expression

constraint_prototype ::= [<strong><span style="color: #FF0000">static</span></strong>] <strong><span style="color: #FF0000">constraint</span></strong> constraint_identifier<strong><span style="color: #FF0000">;</span></strong>

extern_constraint_declaration ::=
    [<strong><span style="color: #FF0000">static</span></strong>] <strong><span style="color: #FF0000">constraint</span></strong> class_scope constraint_identifier constraint_block

identifier_list ::= identifier{<strong><span style="color: #FF0000">,</span></strong> identifier}

expression_or_dist ::= expression [<strong><span style="color: #FF0000">dist{</span></strong>dist_list<strong><span style="color: #FF0000">}</span></strong>]    <span style="color: #008000">// 引用自附录A.2.10</span>

loop_variables ::= [index_variable_identifier]{<strong><span style="color: #FF0000">,</span></strong> [index_variable_identifier]}
                                                            <span style="color: #008000">// 引用自附录A.6.8</span></pre></div></div>
<p class="Element10" style="text-align: center">
<strong>语法12-2 — 约束语法(摘录自附录A)</strong>&nbsp;</p>
<p class="Element10" style="text-align: center">
&nbsp;</p>
<p class="Element10">
<i>constraint_identifier</i>是约束块的名字。使用<span style="color: #0000FF">constraint_mode</span><span style="color: #800080">()</span>(参见<a href="00086.html" target="topic">12.8节</a>)方法,这个名字可以用来使能或关闭一个约束。&nbsp;</p>
<p class="Element10">
&nbsp;</p>
<p class="Element10">
<i>constraint_block</i>是一个表达式语句的列表,它用来限制一个变量的取值范围或者定义变量间的关系。<i>constraint_expression</i>是任意SystemVerilog表达式,或者是约束专用操作符<span style="color: #800080">-&gt;</span>和<span style="color: #0000FF">dist</span>(参见<a href="00074.html" target="topic">12.4.4节</a>和<a href="00075.html" target="topic">12.4.5节</a>)中的一个。&nbsp;</p>
<p class="Element10">
&nbsp;</p>
<p class="Element10">
约束的说明状态对约束表达式强加了下列限制:</p>
<ul class="Element630">
<li class="Element600">函数可以具有某种限制(参见<a href="00070.html" target="topic">12.4.11节</a>)。</li>
<li class="Element600">不允许使用具有边带效应的操作符,例如<span style="color: #800080">++</span>和<span style="color: #800080">--</span>。</li>
<li class="Element600">在排序约束中不能指定<span style="color: #0000FF">randc</span>变量(参见<a href="00079.html" target="topic">12.4.9节</a>中的<span style="color: #0000FF">solve</span>...<span style="color: #0000FF">before</span>)。</li>
<li class="Element600"><span style="color: #0000FF">dist</span>表达式不能出现在其它表达式中。</li>
</ul></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="00865.html" target="topic">第十二章 随机约束</a></p></div>
</div>
</div>
<a name="主题"></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">
<div class="Element212">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -