Verilog语言编程基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• $d i s p l a y ("Hi, you have reached LT today"); • /* $d i s p l a y 系统任务在新的一行中显示。* / • $t i m e • / /该系统任务返回当前的模拟时间。
Verilog的语言要素-编译指令
• 以`(反引号)开始的某些标识符是编译器指令。 • 在Verilog 语言编译时,特定的编译器指令在整个编译过
endmodule
模块的结构需按上面的顺序进行,声明区用来对信号方向、信号数据类型、函数、 任务、参数等进行描述。语句区用来对功能进行描述如:器件调用 (Module instantiation )等。
Verilog的语言要素
Verilog语言中常用语句 Verilog语言的4大法宝 Verilog语言中阻塞和非阻塞赋值 Verilog语言中常见的错误
• 整个逻辑设计就是通过模块之间的例化(instantiation) 来构成一个整体的。
• 逻辑设计的思想体现了自顶向下的设计方法
系统级的顶层模块
模块A
模块B
模块C
模块A1 模块A2
模块C1 模块C2
模块名
模块间的例化方法
• 要求:
– 每个文件只包 含一个模块 。
– 模块名和文件 名保持一致。
实例名
Verilog语言最早由Gateway设计自动化公司于1981年 提出,并提供相应的Verilog仿真器。1985年,仿真 器增强版Verilog-XL推出。Cadence公司于1989年收 购Gateway公司,并于1990年把Verilog语言推向市场, 而保留了Verilog-XL的所有权。1995年,Verilog成 为IEEE1364标准。
端口信号映射关系
模块的基本语法结构
module module_name (port_list) ;
Declarations : reg, wire, parameter, input, output, inout, function, task, . . .
Statements : Initial statement Always statement Module instantiation Gate instantiation UDP instantiation Continuous assignment
Verilog的语言要素
标识符 注释 格式 系统任务和函数 编译指令 值集合 数据类型 参数
Verilog的语言要素-标识符
• 标识符( identifier)用于定义模块名、端口名、信 号名等。
• Verilog HDL 中的标识符( identifier )可以是任意一 组字母、数字、$符号和_(下划线)符号的组合,但 标识符的第一个字符必须是字母或者下划线。另外, 标识符是区分大小写敏感的。以下是标识符的几个 例子:
Verilog 中的模块(Module)
Verilog的语言要素 Verilog语言中常用语句 Verilog语言的4大法宝 Verilog语言中阻塞和非阻塞赋值 Verilog语言中常见的错误
Verilog中的模块
• 模块是Verilog 的基本描述单位,用于描述某个设计 的功能或结构及其与其他模块通信的外部端口。
HDL语言简介
VHDL\Verilog 比较:
两种语言均可有效地描述RTL级(寄存 器传输级),但在行为/系统级,Verilog需要 PLI的支持,门级以下级Verilog 则有较大优 势。对于两种语言来说,没有一种语言能描述 的功能而另一种不能实现的。考虑到目前大多 数的ASIC厂家支持Verilog网表,我们今后将 主要推行使用 VerilogHDL。
• /* statement1 , • statement2, • .. ... • statementn */ • 以上n个语句都是注释语句。
– 是以 // 开头的语句,它表示以 // 开始到本行结束都属 于注释语句。
Verilog的语言要素-格式
• 自由的书写格式:
– Verilog HDL的书写格式是自由的,即一条语句可多行 书写;一行可写多个语句。白空(新行、制表符、空 格)没有特殊意义。
目前通用的 HDL 语言有VHDL和Verilog两种。目 前多数 FPGA 厂商都有自己的逻辑综合工具,或 者采用第三方的设计综合工具来支持自己的器件 开发。这是由于HDL完成的设计具有可移植、易 维护、好理解的性能。
HDL语言简介
VHDL语言最初于1981年由美国国防部(DOD)为解决所 有电子产品存档而提出了一种统一标准语言,1987年 成为IEEE1076'87标准.1993年后,形成IEEE1164, 以 解决可综合VHDL描述在不同EDA厂商之间的移植问题, 及ASIC/FPGA的门级库描述问题。
• Verilog HDL 定义了一系列保留字,叫做关键词, 附录A 列出了语言中的所有保留字。注意只有小写 的关键词才是保留字。例如,标识符always (这是 个关键词)与标识符ALWAYS(非关键词)是不同的。
Verilog的语言要素-注释
• 两种注释的方式:
– 以“/*”符号开始,“*/” 结束,在两个符号之间的 语句都是注释语句,因此可扩展到多行。如:
• 如: • input A;input B;与 • input A; • input B;
– 功能是一样的,但是这方面公司有严格的书写规范。
Verilog的语言要素-系统任务
• 以$字符开始的标识符表示系统任务。 • 任务提供了一种封Βιβλιοθήκη Baidu行为的机制。这种机制可在
设计的不同部分被调用。任务可以返回0个或多 个值。 • 函数在0时刻执行,即不允许延迟。
VerilogHDL语言编程基础
HDL语言简介
Verilog 中的模块(Module) Verilog的语言要素
Verilog语言中常用语句 Verilog语言的4大法宝 Verilog语言中阻塞和非阻塞赋值 Verilog语言中常见的错误
HDL语言简介
HDL:硬件描述语言 (Hardware Description Language)
Verilog的语言要素-编译指令
• 以`(反引号)开始的某些标识符是编译器指令。 • 在Verilog 语言编译时,特定的编译器指令在整个编译过
endmodule
模块的结构需按上面的顺序进行,声明区用来对信号方向、信号数据类型、函数、 任务、参数等进行描述。语句区用来对功能进行描述如:器件调用 (Module instantiation )等。
Verilog的语言要素
Verilog语言中常用语句 Verilog语言的4大法宝 Verilog语言中阻塞和非阻塞赋值 Verilog语言中常见的错误
• 整个逻辑设计就是通过模块之间的例化(instantiation) 来构成一个整体的。
• 逻辑设计的思想体现了自顶向下的设计方法
系统级的顶层模块
模块A
模块B
模块C
模块A1 模块A2
模块C1 模块C2
模块名
模块间的例化方法
• 要求:
– 每个文件只包 含一个模块 。
– 模块名和文件 名保持一致。
实例名
Verilog语言最早由Gateway设计自动化公司于1981年 提出,并提供相应的Verilog仿真器。1985年,仿真 器增强版Verilog-XL推出。Cadence公司于1989年收 购Gateway公司,并于1990年把Verilog语言推向市场, 而保留了Verilog-XL的所有权。1995年,Verilog成 为IEEE1364标准。
端口信号映射关系
模块的基本语法结构
module module_name (port_list) ;
Declarations : reg, wire, parameter, input, output, inout, function, task, . . .
Statements : Initial statement Always statement Module instantiation Gate instantiation UDP instantiation Continuous assignment
Verilog的语言要素
标识符 注释 格式 系统任务和函数 编译指令 值集合 数据类型 参数
Verilog的语言要素-标识符
• 标识符( identifier)用于定义模块名、端口名、信 号名等。
• Verilog HDL 中的标识符( identifier )可以是任意一 组字母、数字、$符号和_(下划线)符号的组合,但 标识符的第一个字符必须是字母或者下划线。另外, 标识符是区分大小写敏感的。以下是标识符的几个 例子:
Verilog 中的模块(Module)
Verilog的语言要素 Verilog语言中常用语句 Verilog语言的4大法宝 Verilog语言中阻塞和非阻塞赋值 Verilog语言中常见的错误
Verilog中的模块
• 模块是Verilog 的基本描述单位,用于描述某个设计 的功能或结构及其与其他模块通信的外部端口。
HDL语言简介
VHDL\Verilog 比较:
两种语言均可有效地描述RTL级(寄存 器传输级),但在行为/系统级,Verilog需要 PLI的支持,门级以下级Verilog 则有较大优 势。对于两种语言来说,没有一种语言能描述 的功能而另一种不能实现的。考虑到目前大多 数的ASIC厂家支持Verilog网表,我们今后将 主要推行使用 VerilogHDL。
• /* statement1 , • statement2, • .. ... • statementn */ • 以上n个语句都是注释语句。
– 是以 // 开头的语句,它表示以 // 开始到本行结束都属 于注释语句。
Verilog的语言要素-格式
• 自由的书写格式:
– Verilog HDL的书写格式是自由的,即一条语句可多行 书写;一行可写多个语句。白空(新行、制表符、空 格)没有特殊意义。
目前通用的 HDL 语言有VHDL和Verilog两种。目 前多数 FPGA 厂商都有自己的逻辑综合工具,或 者采用第三方的设计综合工具来支持自己的器件 开发。这是由于HDL完成的设计具有可移植、易 维护、好理解的性能。
HDL语言简介
VHDL语言最初于1981年由美国国防部(DOD)为解决所 有电子产品存档而提出了一种统一标准语言,1987年 成为IEEE1076'87标准.1993年后,形成IEEE1164, 以 解决可综合VHDL描述在不同EDA厂商之间的移植问题, 及ASIC/FPGA的门级库描述问题。
• Verilog HDL 定义了一系列保留字,叫做关键词, 附录A 列出了语言中的所有保留字。注意只有小写 的关键词才是保留字。例如,标识符always (这是 个关键词)与标识符ALWAYS(非关键词)是不同的。
Verilog的语言要素-注释
• 两种注释的方式:
– 以“/*”符号开始,“*/” 结束,在两个符号之间的 语句都是注释语句,因此可扩展到多行。如:
• 如: • input A;input B;与 • input A; • input B;
– 功能是一样的,但是这方面公司有严格的书写规范。
Verilog的语言要素-系统任务
• 以$字符开始的标识符表示系统任务。 • 任务提供了一种封Βιβλιοθήκη Baidu行为的机制。这种机制可在
设计的不同部分被调用。任务可以返回0个或多 个值。 • 函数在0时刻执行,即不允许延迟。
VerilogHDL语言编程基础
HDL语言简介
Verilog 中的模块(Module) Verilog的语言要素
Verilog语言中常用语句 Verilog语言的4大法宝 Verilog语言中阻塞和非阻塞赋值 Verilog语言中常见的错误
HDL语言简介
HDL:硬件描述语言 (Hardware Description Language)