第5章 Verilog设计初步
[ch5]Verilog HDL 设计初步
![[ch5]Verilog HDL 设计初步](https://img.taocdn.com/s3/m/0552e84c2e3f5727a5e96260.png)
电 子 信 息 通 信 学 科
5.1 Verilog HDL简介 简
• Verilog HDL是一种硬件描述语言,可以在算法级、门级 HDL是一种硬件描述语言 可以在算法级、 是一种硬件描述语言, 到开关级的多种抽象设计层次上对数字系统建模。 到开关级的多种抽象设计层次上对数字系统建模。 • Verilog HDL可以描述设计的行为特性、数据流特性、结 HDL可以描述设计的行为特性 数据流特性、 可以描述设计的行为特性、 构组成以及包含响应监控和设计验证方面的时延和波形产 生机制,用这种语言编写的模型能够使用Verilog HDL仿真 生机制,用这种语言编写的模型能够使用Verilog HDL仿真 器进行验证。 器进行验证。 • Verilog HDL从C语言中继承了多种操作符和结构,所以从 HDL从 语言中继承了多种操作符和结构, 形式上看Verilog HDL和 语言有很多相似之处。 形式上看Verilog HDL和C语言有很多相似之处。 • HDL: Hardware Description Language(硬件描述语言) Language(硬件描述语言 硬件描述语言) • Verilog HDL, VHDL
5
Verilog HDL语言的特点 语言的特点
•/ 户 义 语(UDP)创建 灵 / ) 。 户 义 逻辑, 逻辑: 组 逻辑, 可 时 逻辑: 可 过编 语 机 进 扩 Verilog HDL语 语 。 语可 口( 口(PLI) )
• Verilog HDL程序文件的后缀都是“.v”,假如为加法器 HDL程序文件的后缀都是 .v” 程序文件的后缀都是“ 建模时创建了一个名为adder的文件, adder的文件 建模时创建了一个名为adder的文件,那么这个文件就是 adder.v。每个.v .v文件里可以有一个或几个模块的描述程 adder.v。每个.v文件里可以有一个或几个模块的描述程 序。
verilog设计初步

4.2 Verilog模块的结构
a b f c d
“与-或-非”电路
module aoi(a,b,c,d,f); /* 模块名为aoi,端口列表a,b,c,d,f */ input a,b,c,d; //模块的输入端口为a,b,c,d output f; //模块的输出端口为f wire a,b,c,d,f; //定义信号的数据类型 assign f=~((a&b)|(~(c&d))); //逻辑功能描述 endmodule
Automation)公司的Phil Moorby首创的,之后Moorby又 设计了Verilog-XL仿真器,Verilog-XL仿真器大获成功,也 使得Verilog语言得到推广使用。 1989年,Cadence收购了GDA,1990年,Cadence公开发表 了Verilog HDL,并成立了OVI组织专门负责Verilog HDL的 发展。 Verilog于1995年成为IEEE标准,称为IEEE Standard 13641995(Verilog-1995) IEEE“1364-2001”标准(Verilog-2001)也获得通过,多数综 合器、仿真器都已支持Verilog-2001标准
module aoi_a(a,b,c,d,f);//模块名及端口列表 input a,b,c,d;//模块的输入端口 output f;//模块的输出端口 reg f;//在always过程块中赋值的变量应该定义为reg型 always @(a or b or c or d)//always过程块及敏感信号列表 begin f=~((a&b)|(~(c&d))); end endmodule module aoi_b(input a,b,c,d,output reg f)
Verilog HDL设计基础

硬核提供设计阶段最终阶段产品:掩模。以经过 完全的布局布线的网表形式提供,这种硬核既 具有可预见性,同时还可以针对特定工艺或购 买商进行功耗和尺寸上的优化。尽管硬核由于 缺乏灵活性而可移植性差,但由于无须提供寄 存器转移级(RTL)文件,因而更易于实现IP保护。
固核则是软核和硬核的折衷。大多数应用于FPGA 的IP内核均为软核,软核有助于用户调节参数并增 强可复用性。软核通常以加密形式提供,这样实际 的 RTL对用户是不可见的,但布局和布线灵活。 在这些加密的软核中,如果对内核进行了参数化, 那么用户就可通过头文件或图形用户接口(GUI)方 便地对参数进行操作。对于那些对时序要求严格的 内核(如PCI接口内核),可预布线特定信号或分配 特定的布线资源,以满足时序要求。这些内核可归 类为固核,由于内核是预先设计的代码模块,因此 这有可能影响包含该内核的整体设计。由于内核的 建立(setup)、保持时间和握手信号都可能是固定 的,因此其它电路的设计时都必须考虑与该内核进 行正确地接口。如果内核具有固定布局或部分固定 的布局,那么这还将影响其它电路的布局。
Verilog主要有三类(class)数据类型: net (线网) : 表示器件之间的物理连接 register (寄存器) :表示抽象存储元件 parameters(参数) : 运行时的常数(run-time constants)
Verilog HDL模块的结构
• 信号类型说明: 举例
reg cout; //定义信号cout的数据类型为reg型
Verilog HDL模块的结构
• 逻辑功能描述:是模块中最核心的部分。有多种
方法可在模块中描述和定义逻辑功能。还可用 调用函数(function)和任务(task)来描述逻辑 功能。下面定义逻辑功能的几种基本方法。
杭电第5章时序电路的Verilog设计

Verilog的描述风格
5.9.1 RTL描述 :一切用各种独立的组合电路模块和独立的寄存器模块,但不涉 及底层具体逻辑门结构或触发器电路细节,来构建描述数字电路的形式。
5.9.2 行为描述:比如例3-21。Verilog HDL的模块只描述电路的功能或行为,而 没有直接指明或涉及实现这些行为的硬件结构。
5.1 基本时序元件的Verilog表述
5.1.1 基本D触发器及其Verilog表述
关键词posedge:posedge CLK时钟上升沿敏感。
相对应的,还有negedge CLK时钟下降沿敏感。
5.1 基本时序元件的Verilog表述
5.1.2 用UDP表述D触发器
含异步复位控制的边沿触发型D触发器
Q: 现态;Q+:次态;-:保持原状态;?任意数据
5.1 基本时序元件的Verilog表述
5.1.3 含异步复位和时钟使能的D触发器及其Verilog表述
含异步复位/时钟使能型触发器及其Verilog表述
关键词posedge:posedge CLK时钟上升沿敏感。
相对应的,还有negedge CLK时钟下降沿敏感。
使用移位操作符设计移位寄存器
有符号数左右移的操作符:
对于右移操作时,一律将符号位,即最高位填补 移除的位。 左移操作同普通左移一样,移出腾空的位用0填补。
5.4 可预置型计数器设计
5.4.1 同步加载计数器
4.6 keep属性应用
有时设计者希望在不增加与设计无关的信号连线的条件下,在仿真中也能详细了解 定义在模块内部的某数据通道上的信号变化情况。但往往由于此信号是模块内部临 时性信号或数据通道,在经逻辑综合和优化后被精简掉并除名了,于是在仿真信号 中便无法找到此信号,也就无法再仿真波形中观察到此信号。为解决这个问题,可 以使用keep属性,通过对关心的信号定义keep属性,告诉综合器把此信号保护起来, 不要删除或优化掉,从而使此信号能够完整地出现在仿真信号中。
数字系统设计与Verilog HDL

数字系统设计与Verilog HDL(复习)EDA(Electronic Design Automation)就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。
1.电子CAD(Computer Aided Design)2.电子CAE(Computer Aided Engineering)3.EDA(Electronic Design Automation)EDA技术及其发展p2EDA技术的应用范畴1.3 数字系统设计的流程基于FPGA/CPLD的数字系统设计流程1. 原理图输入(Schematic diagrams )2、硬件描述语言 (HDL文本输入)设计输入硬件描述语言与软件编程语言有本质的区别综合(Synthesis)将较高层次的设计描述自动转化为较低层次描述的过程◆行为综合:从算法表示、行为描述转换到寄存器传输级(RTL)◆逻辑综合:RTL级描述转换到逻辑门级(包括触发器)◆版图综合或结构综合:从逻辑门表示转换到版图表示,或转换到PLD器件的配置网表表示综合器是能自动实现上述转换的软件工具,是能将原理图或HDL语言描述的电路功能转化为具体电路网表的工具适配适配器也称为结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,并产生最终的可下载文件对CPLD器件而言,产生熔丝图文件,即JEDEC文件;对FPGA器件则产生Bitstream 位流数据文件p8仿真(Simulation)功能仿真(Function Simulation)时序仿真(Timing Simulation)仿真是对所设计电路的功能的验证p9编程(Program)把适配后生成的编程文件装入到PLD器件中的过程,或称为下载。
通常将对基于EEPROM工艺的非易失结构PLD器件的下载称为编程(Program),将基于SRAM 工艺结构的PLD器件的下载称为配置(Configure)。
verilog数字系统设计教程

verilog数字系统设计教程Verilog数字系统设计教程作者:XXX引言:数字系统设计是现代电子工程中非常重要的一部分。
Verilog作为一种硬件描述语言,提供了一种方便且专业的方法来设计和描述数字系统。
本教程旨在为初学者提供关于Verilog数字系统设计的详细介绍和指导。
1. Verilog简介Verilog作为一种硬件描述语言,用于描述数字系统的功能、结构和时序行为。
它类似于C语言,但更专注于硬件级别。
Verilog可以用于设计各种数字系统,例如处理器、嵌入式系统、通信设备等。
2. Verilog基本语法2.1 模块定义Verilog的基本单位是模块。
模块是数字系统的基本组成部分,可以看作是一个独立的功能单元。
模块可以包含输入、输出、内部信号以及其它子模块等。
2.2 信号声明在Verilog中,可以声明各种类型的信号,包括输入信号、输出信号和内部信号等。
信号声明定义了信号的类型、宽度和方向。
3. Verilog建模3.1 组合逻辑建模组合逻辑是数字系统中最基本的部分。
Verilog提供了各种组合逻辑建模的方法,包括逻辑运算、选择结构和多路复用器等。
3.2 时序逻辑建模时序逻辑是数字系统中需要考虑时序关系的部分。
Verilog提供了时序逻辑建模的方法,包括触发器、计数器和时序控制等。
4. Verilog仿真4.1 仿真器介绍仿真器是用于验证数字系统设计的工具。
Verilog可以与各种仿真器配合使用,用于验证设计的正确性和性能。
4.2 仿真流程仿真流程包括编写测试平台和测试用例、编译和仿真等步骤。
本节将介绍基本的仿真流程和相关技巧。
5. Verilog综合5.1 综合概述综合是将Verilog代码转换为逻辑门级描述的过程。
综合器通过将Verilog代码映射到实际的硬件库中,生成能够实现指定功能的逻辑电路。
5.2 综合流程综合流程包括综合前的优化和综合本身两个阶段。
本节将介绍综合的基本流程和主要考虑因素。
Verilog设计入门
2.等式操作符
等式运算符
(==)和 (!=)不比较x和z位 (===)和(!==)将x 和 z 当确定值进 行比较 例:(3==4)=0;(3!=4)=1; (4’b1010==4’b1010)=1; (4’b0z1x===4’b0z1x)=1; (4’b0z1x==4’b0z1x)=0;
3.assign连续赋值语句
常量
下画线 - 下画线可以提高程序的可读性,只能用在具 体的数字之间。 例: 16’b1010_1011_1111_1010 //合法 8’b_0011_1010 //非法格式
3.1.2 4选1多路选择器及其case语句表述方式
练习3 写出2选1多路选择器Verilog描述(用always结构,
3.块语句begin_ end
4.case条件语句和4种逻辑状态
3.1.2 4选1多路选择器及其case语句表述方式
5.并位操作和数字表达
数字表达
常量 数字的表达方式 <位宽> <进制> <数字> 例: 8’b10101100 8’ha2 , 4’b1010 , 3’d5 位宽默认(32)位,进制默认(十进制)
3.2.6 Verilog的时钟过程表述的特点和规律 对于边沿触发型时序模块,遵循以下规律: 1.某信号被定义成边沿敏感时钟信号,则posedge A或
negedge A放敏感表中,但always结构块中不能再出现信
号A了。 2.若B被定义成对应于时钟的电平敏感异步控制信号,则除
posedge B或negedge B放敏感表中,always块中必须
____ muxtwo (out, __, __, __ ); input __, __, __; ____ out; reg out; always@ (sl or a or b) if (! sl) out=a; else out=b; ____
第一部分 Verilog数字设计基础
(4)门级(gate—level):描述逻辑门以及逻辑门之间连接的模型。 与逻辑电路有确定的连接关系,以上四种数字系统设计工程师必须掌 握。 (5)开关级(switch—level):描述器件中三极管和储存节点以及它们 之间连接的模型。
在美国,应用Verilog和VHDL的比例是80%和20%;日本和台湾 与美国相同;而在欧洲VHDL发展的比较好。
Verilog HDL适用的描述层次:
1、系统级(System) 部分可物理实现,主要用于仿真 2、算法级(Alogrthem)部分可物理实现,主要用于仿真 3、寄存器传输级(RTL)可完全物理实现,用于电路设计 4、逻辑级(Logic) 可完全物理实现,用于电路设计 5、门级(Gate) 可完全物理实现,用于电路设计 6、电路开关级(Switch)软件中不涉及,用于芯片设计
§1.6 Verilog HDL的设计流程
1.6 Verilog HDL的设计流程
方法:Top-Down(自顶向下)设计思想。
系统级设计
模块A
模块B
模块C
模块 A1
模块 A2
模块 A3
模块 B1
模块 B2
模块 B3
模块 C1
模块 C2
图1.3 Top-Down设计思想
电路图设计文件
HDL设计文件
注:它是目前应用最广泛的一种硬件描述语言。
目前在美国使用Verilog HDL进行设计的工程师大约有10万多人,全美国有200 多所大学讲授Verilog语言的设计方法。在台湾地区几乎所有著名大学的电子和计 算机工程系都讲授与Verilog有关的课程。
§1.2.2 VerilogHDL的产生及发展
Verilog入门
第五章 Verilog 语言
Verilog 语法与实例
• 数字表示:整数,实数 整数:+/- <位宽> ‘<基数符号> <数值>
<位宽>:指定整数的大小,以bit为单位。
<基数符号>:指定整数的基数,可以是b(binary)二进
制;o(octal)八进制;d(decimal)十进制;h(hex-
adecimal)十六进制。
第五章 Verilog 语言
Verilog 语法与实例
• Verilog的四种逻辑状态: 0:逻辑零、逻辑非、低电平 1:逻辑1、逻辑真、高电平 x或X:不定态 z或Z:高阻态
第五章 Verilog 语言
VerilogHDL程序设计教程
Verilog HDL程序设计教程红色:做后有错。
粉红色:有疑问。
紫色:第二次仍有错。
绿色:文字错误第1章EDA技术综述 1.1引言1.摩尔定律1.2EDA的发展阶段1.阶段1.3设计方法与设计技术1.两种设计思路2.IP的含义3. IP核的分类。
4. SOC的含义1.4EDA的实现1.实现方法第2章EDA设计软件与设计流程 2.2EDA的设计流程1(FPGA的设计流程 2(综合的定义与类型。
3(仿真的类型第3章Verilog HDL设计初步(P18) 3.2完整的Verilog HDL设计1. 4位全加器的和4位计数器的程序。
2. 4位全加器的仿真程序(1.时间头文件 2.模块名(没有参数)3.参数规定(端口、延时、时钟)4.调用测试对象 5.设置参数(所有的输入端口都应初始化赋值)6.显示设置)。
3.3Verilog模块基本结构剖析 1.端口定义注意事项。
2.逻辑功能定义的几种方式第4章Verilog HDL语言要素(P32)4.1词法1.verilog中的四种基本逻辑状态4.2数据类型1.连线型(Net Type)的特点2.寄存器型(Register Type):定义、与连线型区别(赋值、保值)3.Parameter的使用格式4.3寄存器和存储器1.寄存器定义格式和标矢性2.存储器:定义、格式、位区选择方法4.3运算符1.等式与全等式的区别2.位拼接运算符第5章Verilog HDL行为语句(P45)5.2 Verilog HDL中的过程语句1.always过程语句格式。
2.initial过程语句格式。
5.3 块语句1.块语句。
2.用begin—end产生周期为10的个单位时间的方波.3.用fork—join产生周期为10的个单位时间的方波5.4赋值语句1.分类。
2.阻塞赋值和非阻塞赋值的区别5.5条件语句1.例5.11(模为60的BCD码加法计数器)2.case语句的三种表达形式5.6循环语句1.Verilog HDL中4种类型循环语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Verilog有下面四种基本的逻辑状态。 ◆ 0:低电平、逻辑0或逻辑非 ◆ 1:高电平、逻辑1或“真” ◆ x或X:不确定或未知的逻辑状态 ◆ z或Z:高阻态 Verilog 中的所有数据类型都在上述 4 类逻辑状态 中取值,其中 x 和 z 都不区分大小写,也就是说, 值0x1z与值0X1Z是等同的。
5.4 Verilog语言要素
Verilog 程序由符号流构成,符号包括 空白符(White space) 注释(Comments) 操作符(Operators) 数字(Numbers) 字符串(Strings) 标识符(Identifiers) 关键字(Keywords)等
end
endmodule
Verilog程序的特点
(1)Verilog程序是由模块构成的。每个模块的内容都嵌在 module和endmodule两个关键字之间;每个模块实现特定 的功能;模块是可以进行层次嵌套的。 (2)每个模块首先要进行端口定义,并说明输入和输出口 (input 、 output 或 inout) ,然后对模块的功能进行逻辑描 述。 (3)Verilog程序书写格式自由,一行可以写几个语句,一 个语句也可以分多行写。 ( 4 )除了 endmodule 等少数语句外,每个语句的最后必须 有分号。 (5)可以用 /*……*/ 和 //…… 对Verilog程序作注释。好的 源程序都应当加上必要的注释,以增强程序的可读性和 可维护性。
wire[7:0] databus; wire[19:0] addrbus; //databus的宽度是8位 //addrbus的宽度是20位
Variable型
variable型变量必须放在过程语句(如initial、always)中 ,通过过程赋值语句赋值;在always、initial等过程块内被 赋值的信号必须定义成variable型。 注意: variable 型变量并不意味着一定对应着硬件上的一个 触发器或寄存器等存储元件,在综合器进行综合时, variable型变量会根据具体情况来确定是映射成连线还是映 射为触发器或寄存器。 reg型变量是最常用的一种variable型变量。定义格式如下: reg 数据名1,数据名2,……数据名n; 例如:reg a,b; //定义了两个reg型变量a,b Examples:
第5章 Verilog设计初步
主要内容
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Verilog简介 Verilog设计举例 Verilog模块的结构 Verilog语言要素 常量 数据类型 参数 向量 运算符
5.1 Verilog简介
Verilog语言是1983年由GDA(Gateway Design Automation)公司的Phil Moorby首创的,之后Moorby 又设计了Verilog-XL仿真器,Verilog-XL仿真器大获成功, 也使得Verilog语言得到推广使用。 1989年,Cadence收购了GDA
2.位选择和域选择
在表达式中可任意选中向量中的一位或相邻几位,分别称为 位选择和域选择,例如:
A=mybyte[6]; B=mybyte[5:2];
//位选择 //域选择
再比如: //位选择 //域选择
reg[7:0] a,b; reg[3:0] c; reg d; d=a[7]&b[7]; c=a[7:4]+b[3:0];
综合 (RTL级)
4位全加器RTL级综合的结果
4位计数器RTL级综合的结果
综合(门级)
4位全加器门级综合视图
4位计数器门级综合视图
仿真
4位全加器的功能仿真结果
4位计数器的功能仿真部分波形
5.3 Verilog模块的结构
module AOI (A,B,C,D,F); //模块名为AOI input A,B,C,D; //模块的输入端口为A,B,C,D output F; //模块的输出端口为F wire A,B,C,D,F; //定义信号的数据类型 assign F= ~((A&B)|(~(C&D))); //逻辑功能描述 endmodule
数据类型 (Data Type)
Verilog中的变量分为如下两种数据类型: ◆ net型 ◆ variable型 net型中常用的有wire、tri;
variable型包括reg、integer等。 注意:在Verilog-1995标准中,variable型变量称为 register型;在Verilog-2001标准中将register一词改为 了variable,以避免初学者将register和硬件中的寄存器概 念混淆起来。
标识符(Identifiers) Verilog中的标识符可以是任意一组字母、数字以及符号“$” 和“_”(下划线)的组合,但标识符的第一个字符必须是 字母或者下划线。另外,标识符是区分大小写的。 Examples: count COUNT _A1_d2 R56_68 FIVE //COUNT与count是不同的 //以下划线开头
reg[7:0] reg[8:1] qout; qout; //定义qout为8位宽的reg型向量
5.7 参数(parameter)
在Verilog语言中,用参数parameter来定义符号常量,即 用 parameter 来定义一个标志符代表一个常量。参数常用 来定义时延和变量的宽度。 其定义格式如下: parameter 参数名1=表达式1,参数名2=表达式2,参数名3=表 达式3, …… ; 例如: parameter sel=8,code=8'ha3; //分别定义参数 sel代表常数 8(10进制),参数 code代表常量 a3(16进制)
net型
Net型数据相当于硬件电路中的各种物理连接,其特点是 输出的值紧跟输入值的变化而变化。对连线型有两种驱 动方式,一种方式是在结构描述中将其连接到一个门元 件或模块的输出端;另一种方式是用持续赋值语句assign 对其进行赋值。 wire是最常用的Net型变量。 wire型变量的定义格式如下: wire 数据名1,数据名2,……数据名n; 例如: wire a,b; //定义了两个wire型变量a和b Examples:
该程序的第1行为模块的名字、模块的端口列表;第2、3行 为输入输出端口声明,第4行定义了端口的数据类型;在第5行 中对输入、输出信号间的逻辑关系进行了描述。
Verilog 模块的模板
module <顶层模块名> (<输入输出端口列表>); output 输出端口列表; //输出端口声明 input 输入端口列表; //输入端口声明 /*定义数据,信号的类型,函数声明*/ reg 信号名; //逻辑功能定义 assign <结果信号名>=<表达式>; //使用assign语句定义逻辑功能 //用always块描述逻辑功能 always @ (<敏感信号表达式>) begin //过程赋值 //if-else,case语句 //while,repeat,for循环语句 //task,function调用 end //调用其他模块 <调用模块名module_name > <例化模块名> (<端口列表port_list >); //门元件例化 门元件关键字 <例化门元件名> (<端口列表port_list>); endmodule
关键字(Keywords)
Verilog语言内部已经使用的词称为关键字或
保留字,这些保留字用户不能作为变量或节点
名字使用。
关键字都是小写的。
5.5 常量
程序运行中,值不能被改变的量称为 常量(constants)ห้องสมุดไป่ตู้Verilog中的常量主 要有如下3种类型:
◆ 整数 ◆ 实数
◆ 字符串
整数(integer)
5.9 运算符
1.算术运算符(Arithmetic operators) 常用的算术运算符包括: + 加 减 * 乘 / 除 % 求模
2.逻辑运算符(Logical operators) && 逻辑与 || 逻辑或 ! 逻辑非
1990年,Cadence公开发表了Verilog HDL,并成立了 OVI组织(Open Verilog International)专门负责 Verilog HDL的发展。 Verilog于1995年成为IEEE标准,称为IEEE Standard 1364-1995(Verilog-1995) IEEE“1364-2001”标准(Verilog-2001)也获得了通过, 多数综合器、仿真器都已经支持Verilog-2001标准
5.2 Verilog设计举例
【例1】4位全加器
module adder4(cout,sum,ina,inb,cin); output[3:0] sum; output cout; input[3:0] ina,inb; input cin; assign {cout,sum}=ina+inb+cin; endmodule
5.8 向量
1.标量与向量 宽度为1位的变量称为标量,如果在变量声明中没有指定 位宽,则默认为标量(1位)。举例如下:
wire a; //a为标量 reg clk; //clk为标量reg型变量 线宽大于1位的变量(包括net型和variable型)称为 向量(vector)。向量的宽度用下面的形式定义: [msb : lsb] 比如: wire[3:0] bus; //4位的总线
空白符和注释
空白符(White space) 空白符包括:空格、tab、换行和换页。空白符使 代码错落有致,阅读起来更方便。在综合时空白符 被忽略。 注释(Comment) ◆ 单行注释:以“//”开始到本行结束,不允许续 行 ◆ 多行注释:多行注释以“ /*” 开始,到“ */” 结 束