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

📄 00863.html

📁 这是一本关于verilog编程语言的教程,对学习verilog语言有帮助
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<title>第三章 数据类型</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', '00863.html');" onmousedown="onBodyMouseDown();">

<!-- Begin Popups -->
<div class="Element801" id="popup00010">
<div class="Element800">
<div class="Element14">
链接</div>
<div class="Element11">
<div class="Element10">
<a href="00895.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, 'popup00010');"><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="00243.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><img src="btn_up_d.gif" border="0" alt="Up" title="Up"><a href="00369.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">
第三章 数据类型</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="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">
<div class="TableDiv">
<table cellspacing="0" class="Table0">
<tr>
<td class="Element200" valign="top" width="50%">
<div class="Element201">
主题&nbsp;</div></td><td class="Element204" valign="top" width="50%">
<div class="Element205">
描述&nbsp;</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00369.html" target="topic">3.1 简介(一般信息)</a>&nbsp;</div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
为了能够平滑地从/向C语言移植,SystemVerilog支持C语言内建的数据类型,并具有C编译器给出的含义。然而,为了避免int和long数据类型的重复所带来的混淆,在SystemVerilog中,<span style="color: #0000FF">int</span>是32位的,<span style="color: #0000FF">longint</span>是64位的。C语言中<span style="color: #0000FF">float</span>类型在SystemVerilog中称为<span style="color: #0000FF">shortreal</span>,这样就不会与Verilog-2001的<span style="color: #0000FF">real</span>类型混淆。<br><br>Verilog-2001具有线网数据类型,它具有<span style="color: #FF0000">0</span>、<span style="color: #FF0000">1</span>、<span style="color: #FF0000">X</span>或<span style="color: #FF0000">Z</span>的值,加上7种强度,具有120个值。Verilog-2001还具有诸如<span style="color: #0000FF">reg</span>(具有<span style="color: #FF0000">0</span>、<span style="color: #FF0000">1</span>、<span style="color: #FF0000">X</span>或<span style="color: #FF0000">Z</span>这四种值)一类的变量数据类型。它们不仅仅是不同的数据类型,而且在使用上也是不同的。SystemVerilog加入了另外一个四值数据类型,这个数据类型被称为<span style="color: #0000FF">logic</span>(参见<a href="00391.html" target="topic">3.3.2节</a>和<a href="00545.html" target="topic">5.6节</a>)。<br><br>SystemVerilog加入了字符串、<span style="color: #0000FF">chandle</span>和<span style="color: #0000FF">class</span>数据类型,并且增强了Verilog的<span style="color: #0000FF">event</span>数据类型。<br><br>Verilog-2001通过使用<span style="color: #0000FF">reg</span>数据类型提供了任意固定长度的算术运算。<span style="color: #0000FF">reg</span>类型的各个位可能具有<span style="color: #FF0000">X</span>或<span style="color: #FF0000">Z</span>的值,然而相对于一个位数组来讲,因为这种数据类型的操作符计算必须检查<span style="color: #FF0000">X</span>和<span style="color: #FF0000">Z</span>,并且需要两倍的数据存储空间,它相对来说缺乏效率。SystemVerilog加入了一个<span style="color: #0000FF">bit</span>数据类型,这种数据类型仅具有<span style="color: #FF0000">0</span>或<span style="color: #FF0000">1</span>两种值。参见<a href="00391.html" target="topic">3.3.2节</a>中有关两态数据类型的内容。<br><br>在从一个较少位数向较多位数自动转换的时候,如果是无符号数则会引起<span style="color: #FF0000">0</span>扩展,如果是有符号数则会引起符号扩展,并且这种情况不会引起警告信息。而从一个较多位数向较少位数自动转换的时候,则会引起警告信息。在<span style="color: #0000FF">logic</span>和<span style="color: #0000FF">bit</span>之间自动转换的时候不会引起警告信息。在从<span style="color: #0000FF">logic</span>值转换到<span style="color: #0000FF">bit</span>值的时候,<span style="color: #FF0000">1</span>转换成<span style="color: #FF0000">1</span>,其它值均转换成<span style="color: #FF0000">0</span>。<br><br><span style="color: #0000FF">typedef</span>可以引入用户定义的数据类型,用户定义的数据类型必须在其使用之前定义。数据类型还可以作为模块或接口的参数,这就使得他们可以像面向对象编程中的类模板一样使用。一个例程在写入的时候可以反转任何数组中元素的顺序,而这在C语言和Verilog中是不可能的。<br><br>由于结构体标签和联合体标签具有分离的命名空间,因此它们在C语言中较为复杂。SystemVerilog遵从C的语法,但没有可选的结构体标签。<br><br>参见<a href="00874.html" target="topic">第四章</a>中有关数组的说明。&nbsp;</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00388.html" target="topic">3.2 数据类型语法</a>&nbsp;</div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
&nbsp;</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00389.html" target="topic">3.3 整数数据类型</a>&nbsp;</div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
SystemVerilog提供了几种整数数据类型,它们是Verilog和C数据类型的结合:<br>&nbsp;</p><p class="Element207" style="text-align: center">
<strong>表格3-1:整数数据类型</strong>&nbsp;</p><p class="Element207">
&nbsp;</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00393.html" target="topic">3.4 real与shortreal数据类型</a>&nbsp;</div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
<span style="color: #0000FF">real<sup>1</sup></span>数据类型来自于Verilog-2001,与C语言中的double数据类型相同。<span style="color: #0000FF">shortreal</span>数据类型是一个SystemVerilog数据类型,与C语言中的float数据类型相同。&nbsp;</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00394.html" target="topic">3.5 void数据类型</a>&nbsp;</div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
<span style="color: #0000FF">void</span>数据类型代表数据不存在。这种类型可以用作函数的返回类型,表示没有返回值。这种数据类型还可以用于标签联合体的成员(参见<a href="00382.html" target="topic">3.11节</a>)。&nbsp;</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00395.html" target="topic">3.6 chandle数据类型</a>&nbsp;</div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
<span style="color: #0000FF">chandle</span>数据类型代表使用DPI直接编程接口传递的指针的存储空间(参见<a href="00851.html" target="topic">第二十七章</a>)。这种类型的尺寸依赖于使用的平台,但在工具运行的机器上应该至少大到能够容纳一个指针。<br><br><span style="color: #0000FF">chandle</span>数据类型的声明语法如下: &nbsp;</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00396.html" target="topic">3.7 string数据类型</a>&nbsp;</div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
SystemVerilog包含一个<span style="color: #0000FF">string</span>数据类型,它是一个可变尺寸、动态分配的字节数组。SystemVerilog还包含许多特殊的方法来对字符串进行操作。<br><br>Verilog也支持字符串文本,但这种支持仅仅是在词法级别上。在Verilog中,字符串文本表现为一个具有宽度为8位整数倍的压缩数组。当一个字符串文本被赋值到一个具有不同尺寸的<span style="color: #0000FF">integral</span>类型的压缩数组变量的时候,它或者被截短到变量的尺寸或者必要时在左侧填补<span style="color: #FF0000">0</span>。<br><br>在SystemVerilog中,字符串文本的表现行为与Verilog相同。然而,SystemVerilog还支持<span style="color: #0000FF">string</span>数据类型,我们可以将一个字符串文本赋值到这种数据类型。当使用<span style="color: #0000FF">string</span>数据类型来替代一个<span style="color: #0000FF">integral</span>变量的时候,字符串可以具有任意的长度并且不会发生截短现象。当文本字符串赋值到一个<span style="color: #0000FF">string</span>数据类型或者在一个使用<span style="color: #0000FF">string</span>类型操作数的表达式中使用的时候,它会被隐式地转换成<span style="color: #0000FF">string</span>数据类型。<br><br><span style="color: #0000FF">string</span>类型的变量可以从<span style="color: #FF0000">0</span>到<span style="color: #FF0000">N-1</span>(数组的最后一个元素)进行索引,而且可以作用于一个特殊的空字符串:<span style="color: #575D94">&quot;&quot;</span>。从一个字符串读取一个元素会产生一个字节。<br>&nbsp;</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">

⌨️ 快捷键说明

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