第三章VERILOG基本结构和描述方式
- 格式:pdf
- 大小:685.38 KB
- 文档页数:51
Verilog的三种描述方式Verilog是一种硬件描述语言(HDL),用于描述数字电路和系统。
它是一种高级语言,允许工程师以更高层次的抽象来描述电路,从而简化了电路设计和验证过程。
Verilog有三种主要的描述方式,分别是结构描述、行为描述和数据流描述。
本文将详细介绍这三种描述方式,并分析它们的特点和适用场景。
1. 结构描述结构描述是Verilog的一种描述方式,它通过层次结构和模块之间的连接关系来描述电路。
在结构描述中,我们可以使用模块、端口、电路连接和实例化等概念来描述电路的组成和连接方式。
结构描述类似于画出电路图,只需要关注电路的结构和连接关系,而不需要考虑电路的具体功能。
结构描述的语法如下所示:module ModuleName (input wire A, input wire B, output wire C);// 输入端口定义// 输出端口定义// 内部信号定义// 子模块实例化// 逻辑实现endmodule结构描述的特点是清晰明了,易于理解和调试。
通过模块化的设计和层次结构,可以方便地对电路进行分析和调试。
结构描述适用于需要详细描述电路结构和连接关系的场景,比如设计一个复杂的处理器或系统。
2. 行为描述行为描述是Verilog的另一种描述方式,它通过描述电路的功能和行为来实现对电路的描述。
行为描述使用类似于编程语言的语法,可以使用条件语句、循环语句和顺序语句等来描述电路的行为。
在行为描述中,我们可以直接使用Verilog的语法来描述电路的逻辑功能,而不需要关注电路的结构和连接关系。
行为描述的语法如下所示:module ModuleName (input wire A, input wire B, output wire C);// 输入端口定义// 输出端口定义// 内部信号定义// 逻辑实现always @ (A or B) begin// 行为描述endendmodule行为描述的特点是灵活性高,可以方便地实现复杂的逻辑功能。
Verilog描述⽅法与层次Verilog描述⽅法与层次Verilog语⾔有多种描述⽅法,这些⽅法也可以在多个层次上来描述硬件。
描述⽅式在上⼀篇当中已经引⼊过数据流描述、⾏为描述、结构化描述这三种描述的⽅式的概念,本篇将继续深⼊说明这三种描述⽅式。
数据流描述1.数据流:组合逻辑电路的信号传输其实就类似于数据的流动,数据从中经过但是不会存储,⼀旦输⼊改变,输出随之在⼀定的延时(Tpd)之后发⽣改变。
连续赋值语句连续赋值语句具有以下的特点:1.连续驱动:输⼊的改变将导致该语句重新计算2.只有线⽹型变量可以⽤assign赋值:仿真器中不会储存assign赋值的变量,寄存器有存储要求显然不能⽤assign赋值,只有线⽹型可以。
另外,assign语句允许多驱动即⼀个变量可以多个输⼊(实际上就是实现线与和线或),建议复习⼀下数字电路中线与和线或的实现。
3.适⽤于组合逻辑建模:若要模拟延迟可以通过 # 来加延迟4.并⾏性:assign语句同其他语句块是并发的。
以⼀个异或门为例:module FullAdder(input x,input y,input c_in,output c_out,output sum);assign sum = x^y^c_in;assign c_out = (x&y) || (x&c_in) || (y&c_in)//以上两条语句都是并发执⾏且连续赋值的。
endmodule延时任何⼀个元器件都必然存在延时,⽽在数据流描述⽅式中,我们也可以选择对其进⾏建模。
延时具体也可以分为:上升延时即输出变为1时的延时,下降延时即输出变为0的延时,关闭延时即输出变为⾼阻态的延时,以及输出变为X 即中间态的延时(通常取前⾯三种中最⼩的)。
关于延时的建模也有多种⽅法,以下是⼀个例⼦:assign #1 out = in1^in2;//`timescale 1ns/1ns输⼊到输出须1nsassign #(1,2) out1 = in1^in2;//上升延时1ns,下降延时2ns,变x和关闭取最⼩为1nsassign #(1,2,3) out2 = in1^in2;//上升1ns,下降2ns,关闭3ns,变X1nsassign #(4:5:6,3:4:5)out3 = in1^in2;//(min:typ:max)描述的时延时最⼩典型最⼤三种情况,同样第⼀个是上升,第⼆个是下降注意:连续赋值中的延时是惯性延时,即出现⼩于延时的信号(⽑刺信号)会被过虑掉。
第三章 Verilog HDL的基本语法前言Verilog HDL是一种用于数字逻辑电路设计的语言。
用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型。
Verilog HDL既是一种行为描述的语言也是一种结构描述的语言。
这也就是说,既可以用电路的功能描述也可以用元器件和它们之间的连接来建立所设计电路的Verilog HDL模型。
Verilog模型可以是实际电路的不同级别的抽象。
这些抽象的级别和它们对应的模型类型共有以下五种:∙系统级(system):用高级语言结构实现设计模块的外部性能的模型。
∙算法级(algorithm):用高级语言结构实现设计算法的模型。
∙RTL级(Register Transfer Level):描述数据在寄存器之间流动和如何处理这些数据的模型。
∙门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。
∙开关级(switch-level):描述器件中三极管和储存节点以及它们之间连接的模型。
一个复杂电路系统的完整Verilog HDL模型是由若干个Verilog HDL模块构成的,每一个模块又可以由若干个子模块构成。
其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块交互的现存电路或激励信号源。
利用Verilog HDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。
Verilog HDL行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和RTL级的模型设计。
这种行为描述语言具有以下功能:∙可描述顺序执行或并行执行的程序结构。
∙用延迟表达式或事件表达式来明确地控制过程的启动时间。
∙通过命名的事件来触发其它过程里的激活行为或停止行为。
∙提供了条件、if-else、case、循环程序结构。
∙提供了可带参数且非零延续时间的任务(task)程序结构。
verilog的三种描述方式(最新版)目录1.引言2.Verilog 描述方式概述1.结构描述2.数据流描述3.行为描述4.混合描述3.结构描述1.门级结构描述2.模块级结构描述4.数据流描述1.逻辑关系2.持续赋值语句5.行为描述1.寄存器传输级描述2.状态机描述6.混合描述7.结论正文一、引言Verilog 是一种硬件描述语言,广泛应用于数字电路和模拟混合信号电路的设计验证。
在 Verilog 中,有多种描述方式可以实现逻辑功能,包括结构描述、数据流描述、行为描述和混合描述。
本文将对这些描述方式进行详细介绍。
二、Verilog 描述方式概述1.结构描述:通过调用逻辑原件,描述它们之间的连接来建立逻辑电路的 Verilog 模型。
这里的逻辑元件包括内置逻辑门、自主研发的已有模块、商业 IP 模块。
结构描述分为门级结构描述和模块级结构描述。
2.数据流描述:根据信号之间的逻辑关系,采用持续赋值语句描述逻辑电路的行为。
数据流描述关注信号的传输和处理过程,适用于组合逻辑电路的设计。
3.行为描述:通过描述电路的输入输出行为,以及电路内部状态的变化,来实现逻辑功能的描述。
行为描述主要包括寄存器传输级描述和状态机描述。
4.混合描述:结合结构描述、数据流描述和行为描述,实现对逻辑功能的全面描述。
混合描述可以充分利用 Verilog 的各种特性,提高描述的准确性和效率。
三、结构描述1.门级结构描述:通过实例化内置逻辑门或使用自定义模块,构建逻辑电路的结构。
例如,可以使用与门、或门、非门等逻辑门实现组合逻辑电路。
2.模块级结构描述:将具有一定功能的模块进行组合,形成复杂的逻辑电路。
模块可以是自主研发的已有模块,也可以是商业 IP 模块。
四、数据流描述1.逻辑关系:根据信号之间的逻辑关系,使用持续赋值语句进行描述。
例如,对于一个与非门,可以使用`assign #5 neg(a);`语句描述其输出信号与输入信号 a 的逻辑关系。