专业编程基础技术教程

网站首页 > 基础教程 正文

Hello FPGA! Verilog的语法1 fpga hello world

ccvgpt 2024-10-31 12:44:17 基础教程 36 ℃

1、什么是Verilog

Verilog 是 Veriliog HDL 的简称,Verilog HDL 是一种硬件描述语言(HDL: Hardware Description Language),硬件描述语言是电子系统硬件行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。

Hello FPGA! Verilog的语法1 fpga hello world

VHDL,全名Very High Speed Integrated Circuit Hardware Description Languagr,即VHSIC,译为超高速集成电路的硬件描述语言。

2、Verilog 的四值逻辑系统

逻辑0:表示低电平,对应电路的GND;

逻辑1:表示高电平,对应电路的VCC;

逻辑X:表示未知,有可能是高电平,也有可能是低电平;

逻辑Z:表示高阻态,外部没有激励信号,是一个悬空状态。

3、Verilog 的数据类型

1)寄存器数据类型:reg、integer、real

所谓寄存器数据类型,就是表示一个抽象的数据存储单元,它只能在always语句和initial语句等过程语句中被赋值,它的缺省值为X。在实际的数字电路中,如果该过程语句描述的是时序逻辑,则该寄存器变量对应为寄存器;如果该过程语句描述的是组合逻辑,则该寄存器变量对应为硬件连线;如果该过程语句描述的是不完全组合逻辑,那么该寄存器变量也可以对应为锁存器。由此可见,寄存器类型的变量不一定会综合为寄存器。

2)线网数据类型:tri、wand、wire

所谓线网数据类型,就是表示Veriliog 结构化元件间的物理连线。它的值由驱动元件的值决定,例如连续赋值与门的输出。如果没有驱动元件连接到线网,线网的缺省值为Z。

3)参数数据类型:parameter

参数其实就是一个常量,通常出现在module内部,常被用于定义状态机的状态、数据位宽和延迟大小。

4、Verilog 的基本运算符

1)算术运算符:+、-、*、/、%

2)关系运算符:>、<、>=、<=、==、!=(返回结果为真或者假)

3)逻辑运算符:!、&&、||(返回结果为真或者假)

4)条件运算符:?:(例如,a?b:c; 如果a为真,选择b,否则选择c)

5)位运算符

~(~a,将a的每个位进行取反)

&(a&b,将a的每个位与b相应的位进行相与)

|(a|b,将a的每个位与b相应的位进行相或)

^(a^b,将a的每个位与b相应的位进行异或)

~^(a~^b,将a的每个位与b相应的位进行异或非)

^~(a^~b,将a的每个位与b相应的位进行异或非)

6)移位运算符:<<、>>(用0来填补移出的空位)

7)拼接运算符

{},{a, b},将a和b连接起来

{{}},{a{b}},将b重复a次

5、Verilog 硬件描述语句分为可综合和不可综合语言。

所谓可综合,就是编码的Verilog 代码能够被综合器转化为相应的电路结构。因此,我们常用可综合语句来描述数字硬件电路。

所谓不可综合,就是编写的Verilog 代码无法综合生成实际的电路。因此,不可综合语句一般在描述数字硬件电路时是用不到的,不过我们可以用它来仿真,验证我们描述的数字硬件电路。

6、Verilog 的关键字

module、endmodule

input、output、inout,用于端口定义

wire和reg用来声明数据类型,parameter用来声明参数类型

always是过程赋值语句,posedge、negedge、or

assign是连续赋值语句

if、else

begin、end,相当于C语言中的大括号

case、endcase、default

7、Verilog 的抽象级别

所谓抽象级别,实际上是指同一个物理电路,可以在不同的层次上用Verilog 语言来描述它。Verilog 硬件描述语言支持五种级别:系统级、算法级、RTL级、门级、开关级。其中,系统级和算法级属于行为级描述方式,RTL级又称为数据流描述方式,门级和开关级属于结构化描述方式。

1)结构化描述方式

结构化描述方式,是最原始的描述方式,也是抽象级别最低的描述方式,但它却是最接近与实际的硬件结构的描述方式。

2)数据流描述方式

数据流描述方式,要比结构化描述方式的抽象级别高一些,因为它不再需要清晰地刻画出具体的数字电路架构,而是可以比较直观地表达底层逻辑的行为。数据流描述方式又可称为RTL级描述方式,即寄存器传输级描述。

3)行为级描述方式

行为级描述方式的抽象级别最高,概括力也最强,因此规模稍大些的设计,往往都是以行为级描述方式为主。行为级描述方式的主要载体就是串行语句,同时辅以并行语句用于描述各个算法之间的连接关系。

最近发表
标签列表