📄 verilog_4.htm
字号:
<html>
<head>
<meta name="keywords" content="单片机,PLD,解密,单片机解密,PLD解密,IC解密,芯片解密,可编程逻辑器件">
<style type="text/css">
body {
background: #ffffff URL("img/bg_pcb.jpg");
background-color: #ffffff;
font-family: 宋体;
font-size: 9pt;
}
a {
color: #336600;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.post {
font-weight: bold;
}
.header {
color: #336600;
background-color: #A0B8D0;
font-family: 宋体;
font-weight: bold;
font-size: 9pt;
}
.botnav {
color: #336600;
background-color: #A0B8D0;
font-weight: bold;
}
.category {
background-color: #A0B8D0;
}
.tablerow {
color: #336600;
}
.nav {
font-weight: bold;
}
.postauthor {
font-weight: bold;
}
.navtd {
color: #336600;
background-color: #A0B8D0;
text-decoration: none;
}
TR { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
TD { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
DIV { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
P { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
select { font-family: 宋体; font-size: 9pt;}
input { font-family: 宋体; font-size: 9pt; background-color: #FFFFFF}
textarea { font-family: 宋体; font-size: 9pt; background-color: #FFFFFF}
</style>
<script language="JavaScript">
function Popup(url, window_name, window_width, window_height)
{ settings=
"toolbar=no,location=no,directories=no,"+
"status=no,menubar=no,scrollbars=yes,"+
"resizable=yes,width="+window_width+",height="+window_height;
NewWindow=window.open(url,window_name,settings); }
function icon(theicon) {
document.input.message.value += " "+theicon;
document.input.message.focus();
}
</script>
<SCRIPT LANGUAGE="JavaScript">
<!--
function checkgo(){
if(document.ic.icname.value.length<=3)
{ alert("请输入3个字符以上!");
return false;
}
icnamep=document.ic.icname.value
window.open("seach.php?icname="+icnamep,"","");
return true;
}
function checkgo2(){
if(document.jiemi.ptype.value.length<=3)
{ alert("要查询解密价格,请输入3个以上字符!");
return false;
}
return true;
}
//-->
</SCRIPT>
<title>欢迎访问飞翔电子技术!从事单片机技术研究 </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body text="#336600" leftmargin="0" topmargin="3" marginwidth="0" marginheight="0" >
<table width=760 cellpadding="0" cellspacing="0" align=center bordercolorlight=#CC66FF bordercolordark=#CC66FF bordercolor=#CC66FF border=0>
<tr>
<td width=80 align=center>技术专栏:</td>
<td height=22>
<a href="http://www.mcuok.com/forumdisplay.php?fid=14" target=_blank>ARM技术</a> <a href="http://www.mcuok.com/forumdisplay.php?fid=15" target=_blank>51单片机</a> <a href="http://www.mcuok.com/forumdisplay.php?fid=16" target=_blank>PIC单片机</a> <a href="http://www.mcuok.com/forumdisplay.php?fid=17" target=_blank>AVR单片机</a>
</td>
<td width=140> <a href="zhanghao.php" target=_blank>>> 帐号资料</a> <a href="http://www.mcuok.com/misc.php?action=search" target=_blank>搜索本站</a></td>
</tr>
<tr><td colspan=3 bgcolor=#660033 height=1px>
</td></tr>
</table>
<!--
<table width=760 cellpadding="3" cellspacing="0" align=center bordercolorlight=#330000 bordercolordark=#FFFFFF bordercolor=#330000 border=0>
<tr><td>
最近研究,可解密以下可编程逻辑电路CPLD,型号如下:
ALERA EPM7032/7064/7128
XILINX XC9536/XC9572/XC95108/XC95144
LATTICE 1016E/1032E/2032E
条件:需要提供完整能够运行的芯片所在的设备,时间视难易程度一个月左右。
</td>
</tr></table>-->
<br>
<table width="762" cellpadding="0" cellspacing="0" align=center border=0>
<tr><td bgcolor=#a0b8d0 height=27>
<table width="760" cellpadding="1" cellspacing="0" align=center border=0><tr style="color:#FFFFFF">
<!--class="navtd"-->
<td bgcolor=#00468c align=center height=25 >◆
<a href="index.php" style="color:#FFFFFF" ><B>主页</a> </b> ★ <a href="forumdisplay.php?fid=5" style="color:#FFFFFF"><B>消息公告</a> </b> ◎ <a href="forumdisplay.php?fid=1" style="color:#FFFFFF"><B>芯片解密</a> </b> ※ <a href="forumdisplay.php?fid=2" style="color:#FFFFFF" ><B>PCB设计</a> </b> □ <a href="forumdisplay.php?fid=3" style="color:#FFFFFF" ><B>软件下载</a> </b> ∵ <a href="forumdisplay.php?fid=6" style="color:#FFFFFF"><B>电子技术</a> </b> 〓 <a href="forumdisplay.php?fid=10" style="color:#FFFFFF"><B>在线图书</a> </b> ◇ <a href="forumdisplay.php?fid=9" style="color:#FFFFFF"><B>PLD器件</a> </b> ∷ <a href="forumdisplay.php?fid=4" style="color:#FFFFFF" ><B>芯片资料</a> </b> ∽ <a href="http://www.mcuok.com/shop.php" style="color:#FFFFFF" ><B>电子商城</a> </b></td>
</tr></table>
</td></tr>
</table>
</td></tr>
</table>
<table width="760" align="center" cellspacing="0" cellpadding="0" border="0" bgcolor=#FFFFFF>
<tr>
<td class="nav" width="252"><a href="index.php?action=forum?action=forum"><img src="images/logo1.gif" alt="飞翔单片机技术站点" border="0"></a></td>
<td class="nav" align=center><a href="index.php"><IMG SRC="../img/top2.gif" BORDER="1" ALT="飞翔电子"></a></td>
<td width=120 align=center><a href="http://bbs.mcuok.com" target=_blank style="line-height=18px">电子论坛</a><BR><a href="javascript:openwin2('contract.php');" style="line-height=18px;color:#FF9900">在线留言</a><BR><a href="javascript:openwin2('aboutus.php');" style="line-height=18px">关于我们</a></td>
</tr>
<tr><td height=2px colspan=3 bgcolor=#ccCCCC></td></tr>
</table>
<table width="760" align="center" cellspacing="0" cellpadding="0" border="0" bgcolor=#FFFFFF>
<tr>
<td height=5></td>
</tr>
</table>
<table width="760" cellspacing="0" cellpadding="0" align="center"><tr><td width="35%"><img src="images/print.gif" alt="点击这里把本页输出到打印机!" border="0"> <a href="viewthread.php?fid=9&tid=275&action=printable">打印此页</a> </td><td align="center" width="30%"><a href="viewthread.php?fid=9&tid=274"><img src="images/prev.gif" border="0"> 上一主题</a> <a href="javascript:history.back(1);">返回前页</a> <a href="viewthread.php?fid=9&tid=276">下一主题 <img src="images/next.gif" border="0"></a></td><td class="post" align="right" width="35%">2005年08月05日 星期五</td></tr></table><table cellspacing="0" cellpadding="0" border="0" width="760" align="center"><tr><td bgcolor="#A0B8D0"><table border="0" cellspacing="1" cellpadding="6" width="100%"><tr><td width="1%" class="header"></td><td class="header">文章标题 >> 中文版Verilog HDL简明教程:第4章 表 达 式</td><td width="1%"></td></tr><tr bgcolor="#ffffff"><td rowspan="3" valign="top" ><!--<span class="postauthor">zjw</span><br /><br /><div><center><img src="./pic/Image18.gif"><br /><br />管理员<br /><img src="images/star.gif"><img src="images/star.gif"><img src="images/star.gif"><img src="images/star.gif"><img src="images/star.gif"><img src="images/star.gif"><img src="images/star.gif"><img src="images/star.gif"><br /><br /></center><br />贴子数量 : 471<br />注册日期 : 1/6/2003<br />在线情况 : <b>离线</b></div><br />--></td><td valign="top" class="tablerow" align=center><img src="images/smilies/wink.gif" /> 发表于: 6/22/2003 - 15:15</td><td rowspan="3" valign="top"></td></tr><tr bgcolor="#ffffff"><td height="120" valign="top">本章讲述在Verilog HDL中编写表达式的基础。<br />
表达式由操作数和操作符组成。表达式可以在出现数值的任何地方使用。<br />
<br />
4.1 操作数<br />
<br />
操作数可以是以下类型中的一种:<br />
1) 常数<br />
2) 参数<br />
3) 线网<br />
4) 寄存器<br />
5) 位选择<br />
6) 部分选择 <br />
7) 存储器单元<br />
8) 函数调用<br />
<br />
4.1.1 常数<br />
<br />
前面的章节已讲述了如何书写常量。下面是一些实例。<br />
<br />
256,7 //非定长的十进制数。<br />
4'b10_11, 8'h0A //定长的整型常量。<br />
'b1, 'hFBA //非定长的整数常量。<br />
90.00006 //实数型常量。<br />
"BOND" //串常量;每个字符作为8位ASCII值存储。<br />
<br />
表达式中的整数值可被解释为有符号数或无符号数。如果表达式中是十进制整数,例如,12被解释为有符号数。如果整数是基数型整数(定长或非定长),那么该整数作为无符号数对待。下面举例说明。<br />
<br />
12是01100的5位向量形式(有符号)<br />
-12是10100的5位向量形式(有符号)<br />
5'b01100是十进制数12(无符号)<br />
5'b10100是十进制数20(无符号)<br />
4'd12是十进制数12(无符号)<br />
<br />
更为重要的是对基数表示或非基数表示的负整数处理方式不同。非基数表示形式的负整数作为有符号数处理,而基数表示形式的负整数值作为无符号数。因此-44和-6'o54 (十进制的44等于八进制的54)在下例中处理不同。<br />
<br />
integer Cone;<br />
. . .<br />
Cone = -44/4<br />
Cone = -6'o54/ 4;<br />
<br />
注意-44和-6'o54以相同的位模式求值;但是-44作为有符号数处理,而-6'o54作为无符号数处理。因此第一个字符中Cone的值为-11,而在第二个赋值中Cone的值为1073741813。<br />
<br />
4.1.2 参数<br />
<br />
前一章中已对参数作了介绍。参数类似于常量,并且使用参数声明进行说明。下面是参数说明实例。<br />
<br />
parameter LOAD = 4'd12, STORE = 4'd10;<br />
LOAD 和STORE为参数的例子,值分别被声明为12和10。<br />
<br />
4.1.3 线网<br />
<br />
可在表达式中使用标量线网(1位)和向量线网(多位)。下面是线网说明实例。<br />
<br />
wire [0:3] Prt; //Prt 为4位向量线网。<br />
wire Bdq; //Bbq 是标量线网。<br />
<br />
线网中的值被解释为无符号数。在连续赋值语句中,<br />
<br />
assign Prt = -3;<br />
Prt被赋于位向量1101,实际上为十进制的13。在下面的连续赋值中,<br />
assign Prt = 4'HA;<br />
Prt被赋于位向量1010,即为十进制的10。<br />
<br />
4.1.4 寄存器<br />
<br />
标量和向量寄存器可在表达式中使用。寄存器变量使用寄存器声明进行说明。例如:<br />
<br />
integer TemA, TemB;<br />
reg [1:5] State;<br />
time Que [1:5];<br />
<br />
整型寄存器中的值被解释为有符号的二进制补码数,而reg寄存器或时间寄存器中的值被解释为无符号数。实数和实数时间类型寄存器中的值被解释为有符号浮点数。<br />
<br />
TemA = -10; //TemA值为位向量10110,是10的二进制补码。<br />
TemA = 'b1011; //TemA值为十进制数11。<br />
<br />
State = -10; //State值为位向量10110,即十进制数22。<br />
State = 'b1011; //State值为位向量01011,是十进制值11。<br />
<br />
4.1.5 位选择<br />
<br />
位选择从向量中抽取特定的位。形式如下:<br />
<br />
net_or_reg_vector [bit_select_expr]<br />
<br />
下面是表达式中应用位选择的例子。<br />
<br />
State [1] && State [4] //寄存器位选择。<br />
Prt [0] | Bbq //线网位选择。<br />
<br />
如果选择表达式的值为x、z,或越界,则位选择的值为x。例如State [x]值为x。<br />
<br />
4.1.6 部分选择<br />
<br />
在部分选择中,向量的连续序列被选择。形式如下:<br />
<br />
net_or_reg_vector [msb_const_expr:1sb_const_expr]<br />
<br />
其中范围表达式必须为常数表达式。例如。<br />
<br />
State [1:4] //寄存器部分选择。<br />
Prt [1:3] //线网部分选择。<br />
选择范围越界或为x、z时,部分选择的值为x。<br />
<br />
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -