文档详情

Verilog模块基本结构剖析.ppt

发布:2024-03-29约2.38千字共15页下载文档
文本预览下载声明

芜湖职业技术学院精品资源线下开放课程《FPGA应用技术》芜湖职业技术学院FPGA应用技术讲课教师:杨会伟芜湖职业技术学院第2章VerilogHDL语言初步介绍Verilog语言概述完整的VerilogHDL设计实例Verilog模块基本结构剖析Verilog语言词法Verilog语言数据类型Verilog语言运算符芜湖职业技术学院2.3Verilog模块基本结构剖析模块定义用VerilogHDL语言描述的电路设计就是该电路的VerilogHDL模型,也称为模块。模块(module)是Verilog的基本描述单位,用于描述某个设计的功能或结构以及与其他模块通信的外部端口。模块是并行运行的,通常需要一个高层模块通过调用其他模块的实例来定义一个封闭系统。一个模块由几个部分组成,下面通过一个具体的示例来对模块的基本结构进行剖析。芜湖职业技术学院对于一个简单的与--或--非门电路该门电路表示的逻辑函数可以写为:F=AB+CD。用Verilog语言对该门电路描述如下:芜湖职业技术学院moduleAOI(A,B,C,D,F);//模块名为AOI(端口列表A,B,C,D,F)intputA,B,C,D;//模块的输入端口为A,B,C,DoutputF;//模块的输出端口为FwireA,B,C,D,F;//定义信号的数据类型assignF=~((AB)|(~(CD)));//逻辑功能描述endmodule将原理图与Verilog程序进行对照,可以对Verilog程序模块有一个直观的认识。芜湖职业技术学院Verilog模块结构Verilog模块结构完全嵌在module和endmodule之间关键字之间,每个Verilog程序包括4个主要部分:模块声明、端口定义、信号类型说明和逻辑功能描述。芜湖职业技术学院1)模块声明模块声明包括模块名字和模块输入、输出端口列表。其格式如下:module模块名(端口1,端口2,端口3……);模块结束的标志为关键字:endmodule。2)端口(Port)定义对模块的输入、输出端口要明确说明,其格式为:芜湖职业技术学院端口是模块与外界或其他模块连接和通信的信号线,如图所示:有三种类型的端口:输入端口(input)、输出端口(output)和输入/输出端口(inout).芜湖职业技术学院3)信号类型声明对端口的输入输出除了要明确说明外,还要进行信号数据类型的定义。Verilog语言提供了各种信号类型,分别模拟实际电路中的各种物理连接和物理实体。常用的数据类型包括连线型(wire)、寄存器型(reg)两种。如果信号的数据类型没有定义,则综合器将其默认为wire型。注:输入端口和双向端口不能声明为寄存器型定义信号数据类型举例:芜湖职业技术学院4)逻辑功能定义模块中最核心的部分是逻辑功能定义。有多种方法可在模块中描述和定义逻辑功能,还可以调用函数(function)和任务(task)来描述逻辑功能。下面介绍定义逻辑功能的几种方法。用“assign”持续赋值语句定义“assign”语句一般用于组合逻辑的赋值,成为持续赋值语句。如:assignF=~((AB)|(CD));这种方法简单,只需将逻辑表达式放在关键字“assign”后即可。芜湖职业技术学院调用元件(元件例化)调用元件方法类似于在电路图输入方式下调入图形符号来完成设计,这种方法侧重于电路的结构描述。在Verilog语言中,可通过调用如下元件的方式来描述电路的结构:1.调用Verilog内置门元件(门级结构描述)2.调用开关级元件(开关级结构描述)3.用户定义元件UDP(也在门级)在多层次结构的电路设计中,不同模块的调用也可认为是结构描述。元件调用相关例子:芜湖职业技术学院用“always”过程块赋值always@(posedgeclk)//每当clk上升沿到来时执行一//遍begin-end块内的语句beginif(reset)out=0;//同步复位elseout=out+1;//计数

显示全部
相似文档