📄 app2.2.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML EXPERIMENTAL 970324//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="Adobe FrameMaker 5.5/HTML Export Filter">
<TITLE> B.2 Verilog HDL Syntax</TITLE></HEAD><!--#include file="top.html"--><!--#include file="header.html"-->
<DIV>
<P>[ <A HREF="APP2.htm">Chapter start</A> ] [ <A HREF="APP2.1.htm">Previous page</A> ] [ <A HREF="APP2.3.htm">Next page</A> ]</P><!--#include file="AmazonAsic.html"--><HR></DIV>
<H1 CLASS="zAppHeading1">
<A NAME="pgfId=28996">
</A>
B.2 Verilog HDL Syntax</H1>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=18940">
</A>
always_construct ::= [94] [95LRM 9.9.2] <SPAN CLASS="ComputerKeyword">
always</SPAN>
statement [1]</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=18941">
</A>
binary_base ::= [4] [95LRM 2.5.1] <SPAN CLASS="Bold">
’b</SPAN>
| <SPAN CLASS="Bold">
’B</SPAN>
[2]</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=18934">
</A>
binary_digit ::= [4] [95LRM 2.5.1] <SPAN CLASS="Bold">
x</SPAN>
| <SPAN CLASS="Bold">
X</SPAN>
| <SPAN CLASS="Bold">
z</SPAN>
| <SPAN CLASS="Bold">
Z</SPAN>
| <SPAN CLASS="Bold">
0</SPAN>
| <SPAN CLASS="Bold">
1</SPAN>
[3]</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17808">
</A>
binary_number ::= [114] [95LRM 2.5.1] [4]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=35454">
</A>
[ size ] binary_base binary_digit { _ | binary_digit } </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17809">
</A>
binary_operator ::= [19, 52] [95LRM 4.1.2] [5]</P>
<P CLASS="zAppComputer">
<A NAME="pgfId=17810">
</A>
<SPAN CLASS="Bold">
+</SPAN>
| <SPAN CLASS="Bold">
-</SPAN>
| <SPAN CLASS="Bold">
*</SPAN>
| <SPAN CLASS="Bold">
/</SPAN>
| <SPAN CLASS="Bold">
%</SPAN>
| <SPAN CLASS="Bold">
==</SPAN>
| <SPAN CLASS="Bold">
!=</SPAN>
| <SPAN CLASS="Bold">
===</SPAN>
| <SPAN CLASS="Bold">
!==</SPAN>
| <SPAN CLASS="Bold">
&&</SPAN>
| <SPAN CLASS="Outline">
||</SPAN>
</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17811">
</A>
| <SPAN CLASS="Bold">
<</SPAN>
| <SPAN CLASS="Bold">
<=</SPAN>
| <SPAN CLASS="Bold">
></SPAN>
| <SPAN CLASS="Bold">
>=</SPAN>
| <SPAN CLASS="Bold">
&</SPAN>
| <SPAN CLASS="Outline">
|</SPAN>
| <SPAN CLASS="Bold">
^</SPAN>
| <SPAN CLASS="Bold">
^~</SPAN>
| <SPAN CLASS="Bold">
~^</SPAN>
| <SPAN CLASS="Bold">
>></SPAN>
| <SPAN CLASS="Bold">
<<</SPAN>
</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17812">
</A>
blocking assignment<A HREF="#pgfId=41342" CLASS="footnote">
1</A>
::= [181] [95LRM 9.2.1] [6]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=19370">
</A>
reg_lvalue <SPAN CLASS="Bold">
=</SPAN>
[ delay_or_event_control ] expression </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=19371">
</A>
block_item_declaration ::= [57, 133, 166, 190] [95LRM 9.8.1] [7]</P>
<P CLASS="zAppComputer">
<A NAME="pgfId=19381">
</A>
parameter_declaration | reg_declaration </P>
<P CLASS="zAppComputer">
<A NAME="pgfId=19372">
</A>
| integer_declaration | real_declaration | time_declaration </P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17816">
</A>
| realtime_declaration | event_declaration </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=29074">
</A>
case_item ::= [9] [95LRM 9.5] expression { <SPAN CLASS="Bold">
,</SPAN>
expression } <SPAN CLASS="Bold">
:</SPAN>
statement_or_null [8]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=29083">
</A>
| <SPAN CLASS="ComputerKeyword">
default</SPAN>
[ <SPAN CLASS="Bold">
:</SPAN>
] statement_or_null </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=29085">
</A>
case_statement ::= [181] [95LRM 9.5] [9]</P>
<P CLASS="zAppComputer">
<A NAME="pgfId=29092">
</A>
| <SPAN CLASS="ComputerKeyword">
case</SPAN>
<SPAN CLASS="Bold">
(</SPAN>
expression <SPAN CLASS="Bold">
)</SPAN>
case_item { case_item } <SPAN CLASS="ComputerKeyword">
endcase</SPAN>
</P>
<P CLASS="zAppComputer">
<A NAME="pgfId=29090">
</A>
| <SPAN CLASS="ComputerKeyword">
casez</SPAN>
<SPAN CLASS="Bold">
(</SPAN>
expression <SPAN CLASS="Bold">
)</SPAN>
case_item { case_item } <SPAN CLASS="ComputerKeyword">
endcase</SPAN>
</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=29088">
</A>
| <SPAN CLASS="ComputerKeyword">
casex</SPAN>
<SPAN CLASS="Bold">
(</SPAN>
expression <SPAN CLASS="Bold">
)</SPAN>
case_item { case_item } <SPAN CLASS="ComputerKeyword">
endcase</SPAN>
</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17824">
</A>
charge_strength ::= [107] [95LRM 3.4.1] <SPAN CLASS="Bold">
(</SPAN>
<SPAN CLASS="ComputerKeyword">
small</SPAN>
<SPAN CLASS="Bold">
)</SPAN>
| <SPAN CLASS="Bold">
(</SPAN>
<SPAN CLASS="ComputerKeyword">
medium</SPAN>
<SPAN CLASS="Bold">
)</SPAN>
| <SPAN CLASS="Bold">
(</SPAN>
<SPAN CLASS="ComputerKeyword">
large</SPAN>
<SPAN CLASS="Bold">
)</SPAN>
[10]</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17825">
</A>
cmos_switchtype ::= [58] [95LRM 7.7] <SPAN CLASS="ComputerKeyword">
cmos</SPAN>
| <SPAN CLASS="ComputerKeyword">
rcmos</SPAN>
[11]</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17827">
</A>
cmos_switch_instance ::= [58] [95LRM 7.1] [ name_of_gate_instance ] [12]</P>
<P CLASS="zAppComputer">
<A NAME="pgfId=17828">
</A>
<SPAN CLASS="Bold">
(</SPAN>
output_terminal <SPAN CLASS="Bold">
,</SPAN>
input_terminal <SPAN CLASS="Bold">
,</SPAN>
</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17829">
</A>
ncontrol_terminal <SPAN CLASS="Bold">
,</SPAN>
pcontrol_terminal <SPAN CLASS="Bold">
)</SPAN>
</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17830">
</A>
combinational_body ::= [198] [95LRM 8.1.4] [13]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17831">
</A>
<SPAN CLASS="ComputerKeyword">
table</SPAN>
combinational_entry { combinational_entry } <SPAN CLASS="ComputerKeyword">
endtable</SPAN>
</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17832">
</A>
combinational_entry ::= [13] [95LRM 8.1.4] level_input_list <SPAN CLASS="Bold">
:</SPAN>
output_symbol <SPAN CLASS="Bold">
;</SPAN>
[14]</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17833">
</A>
comment ::= [–] [95LRM 2.3] short_comment | long_comment [15]</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17834">
</A>
comment_text ::= [88, 168] [95LRM 2.3] { Any_ASCII_character } [16]</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17835">
</A>
concatenation ::= [21, 109, 146, 161] [95LRM 4.1.14] <SPAN CLASS="Outline">
{</SPAN>
expression { <SPAN CLASS="Bold">
,</SPAN>
expression } <SPAN CLASS="Outline">
}</SPAN>
[17]</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17836">
</A>
conditional_statement ::= [181] [95LRM 9.4] [18]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=41441">
</A>
| <SPAN CLASS="ComputerKeyword">
if</SPAN>
<SPAN CLASS="Bold">
(</SPAN>
expression <SPAN CLASS="Bold">
)</SPAN>
statement_or_null [ <SPAN CLASS="ComputerKeyword">
else</SPAN>
statement_or_null ] </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=41442">
</A>
constant_expression ::= [see <A HREF="APP2.3.htm#21396" CLASS="XRef">
Table B.1</A>
] [95LRM 4.1] constant_primary [19]</P>
<P CLASS="zAppComputer">
<A NAME="pgfId=88081">
</A>
| unary_operator constant_primary </P>
<P CLASS="zAppComputer">
<A NAME="pgfId=88082">
</A>
| constant_expression binary_operator constant_expression </P>
<P CLASS="zAppComputer">
<A NAME="pgfId=88083">
</A>
| constant_expression <SPAN CLASS="Bold">
?</SPAN>
constant_expression <SPAN CLASS="Bold">
:</SPAN>
constant_expression </P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17842">
</A>
| string </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17843">
</A>
constant_mintypmax_expression ::= [34, 74, 139] [95LRM 4.3] constant_expression [20]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=88088">
</A>
| constant_expression <SPAN CLASS="Bold">
:</SPAN>
constant_expression <SPAN CLASS="Bold">
:</SPAN>
constant_expression </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=88089">
</A>
constant_primary ::= [19] [95LRM 4.1] number | <SPAN CLASS="ComputerEmphasis">
parameter</SPAN>
_identifier [21]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17846">
</A>
| <SPAN CLASS="ComputerEmphasis">
constant</SPAN>
_concatenation | <SPAN CLASS="ComputerEmphasis">
constant</SPAN>
_multiple_concatenation </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17848">
</A>
continuous_assign ::= [94] [95LRM 6.1] [22]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17849">
</A>
<SPAN CLASS="ComputerKeyword">
assign</SPAN>
[ drive_strength ] [ delay3 ] list_of_net_assignments <SPAN CLASS="Bold">
;</SPAN>
</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17850">
</A>
controlled_timing_check_event ::= [189] [95LRM 14.5.11] [23]</P>
<P CLASS="zAppComputer">
<A NAME="pgfId=17851">
</A>
timing_check_event_control </P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17852">
</A>
specify_terminal_descriptor [ <SPAN CLASS="Bold">
&&&</SPAN>
timing_check_condition ] </P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17853">
</A>
current_state ::= [165] [95LRM 8.1] level_symbol [24]</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17854">
</A>
data_source_expression ::= [53, 127] [95LRM 13.3.3] expression [25]</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17855">
</A>
decimal_base ::= [28] [95LRM 2.5.1] <SPAN CLASS="Bold">
’d</SPAN>
| <SPAN CLASS="Bold">
’D</SPAN>
[26]</P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17856">
</A>
decimal_digit ::= [206] [95LRM 2.5.1] <SPAN CLASS="Bold">
0</SPAN>
| <SPAN CLASS="Bold">
1</SPAN>
| <SPAN CLASS="Bold">
2</SPAN>
| <SPAN CLASS="Bold">
3</SPAN>
| <SPAN CLASS="Bold">
4</SPAN>
| <SPAN CLASS="Bold">
5</SPAN>
| <SPAN CLASS="Bold">
6</SPAN>
| <SPAN CLASS="Bold">
7</SPAN>
| <SPAN CLASS="Bold">
8</SPAN>
| <SPAN CLASS="Bold">
9</SPAN>
| <SPAN CLASS="Bold">
0</SPAN>
[27]</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17857">
</A>
decimal_number ::= [114] [95LRM 2.5.1] [ sign ] unsigned_number [28]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17858">
</A>
| [ size ] decimal_base unsigned_number </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17859">
</A>
delay2 ::= [58, 202] [95LRM 7.1, 7.15] [29]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=43093">
</A>
# delay_value | # <SPAN CLASS="Bold">
(</SPAN>
delay_value [ <SPAN CLASS="Bold">
,</SPAN>
delay_value ] <SPAN CLASS="Bold">
)</SPAN>
</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17860">
</A>
delay3 ::= [22, 58, 107] [95LRM 7.1, 7.15] [30]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17861">
</A>
# delay_value | # <SPAN CLASS="Bold">
(</SPAN>
delay_value [ <SPAN CLASS="Bold">
,</SPAN>
delay_value [ <SPAN CLASS="Bold">
,</SPAN>
delay_value ] ] <SPAN CLASS="Bold">
)</SPAN>
</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=19283">
</A>
delay_control ::= [32] [95LRM 9.7, 9.7.1] [31]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=43100">
</A>
<SPAN CLASS="Bold">
#</SPAN>
delay_value | <SPAN CLASS="Bold">
#</SPAN>
<SPAN CLASS="Bold">
(</SPAN>
mintypmax_expression <SPAN CLASS="Bold">
)</SPAN>
</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=19284">
</A>
delay_or_event_control ::= [6, 112, 148] [95LRM 9.7] [32]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=19285">
</A>
delay_control | event_control | <SPAN CLASS="ComputerKeyword">
repeat</SPAN>
<SPAN CLASS="Bold">
(</SPAN>
expression <SPAN CLASS="Bold">
)</SPAN>
event_control </P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17865">
</A>
delay_value ::= [29, 30, 31] [95LRM 7.1.3, 7.15] [33]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=17866">
</A>
unsigned_number | parameter_identifier | constant_mintypmax_expression </P>
<P CLASS="zAppComputerOneLNmbr">
<A NAME="pgfId=17867">
</A>
description ::= [173] [95LRM 8.1, 12.1] module_declaration | udp_declaration [34]</P>
<P CLASS="zAppComputerNmbr">
<A NAME="pgfId=17868">
</A>
disable_statement<A HREF="#pgfId=36175" CLASS="footnote">
2</A>
::= [181] [95LRM 11] [35]</P>
<P CLASS="zAppComputerLast">
<A NAME="pgfId=19420">
</A>
<SPAN CLASS="ComputerKeyword">
</SPAN>
| <SPAN CLASS="ComputerKeyword">
disable</SPAN>
<SPAN CLASS="ComputerEmphasis">
task</SPAN>
_identifier <SPAN CLASS="Bold">
;</SPAN>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -