Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第1张图片

层次建模的概念

设计方法学

对应有两种设计方法:自底向上的设计方法和自顶向下的设计方法

对于自顶向下而言
我们首先定义顶层功能块,进而分析需要哪些构成顶层模块的必要的子模块,然后进一步对各个子模块进行分解,直至达到无法进一步分解的底层功能块
Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第2张图片
对自底向上的设计方法
我们首先对现有的功能块进行分析,然后使用这些模块来搭建规模大一些的功能块,如此继续直至顶层模块。
Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第3张图片

模块

Verilog使用模块(module)的概念来代表一个基本的功能块。
一个模块可以是一个元件,也可以是低层次模块的组合。
模块通过接口(输入和输出)被高层的模块调用,但隐藏了内部的实现细节。这样设计者就可以方便的对某个模块进行修改,而不影响其他部分。

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第4张图片

模块的描述方法有下列几个层次:

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第5张图片
Verilog允许设计者在一个模块里混合使用多个抽象层次。
一般来说,抽象的层次越高,那么设计的灵活性和工艺无关性就越强,随着抽象层次的降低,灵活性和工艺无关性都会变差,微小的调整可能也意味着对设计的多处更改。

这就类似于C语言和汇编语言的对比,像C语言这样的高级语言的好处就是编码简单并且可移植性好,然而如果使用汇编语言,则需要针对特定的计算机,移植到其他计算机的时候可能出现问题。

模块实例化

模块声明就像一个模板,使用这个模板就可以创建实际的对象,当一个模板被调用的时候,Verilog会根据模板创建出来唯一一个模块对象,从模板创建对象的过程就称为实例化

注意:在Verilog之中,不允许在模块声明中嵌套模块,不要将模块定义和模块声明相混淆。 模块声明只是说明了模块如何工作,期内不得结构和外部接口,对模块的调用必须通过其实例化来完成。

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第6张图片

在一个模块定义的内布不能嵌套定义其他模块

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第7张图片

逻辑仿真的构成

在设计完成之后,还必须要对设计的正确性进行测试,我们对设计模块增加激励,通过检查其输出来检验功能的正确性;
将激励块和设计块分开写是一种良好的设计风格
激励块同样是用Verilog语言来写的

激励块的设计有两种模式:

(1)在激励块中直接调用并直接驱动设计块,顶层块就是激励块

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第8张图片
(2)在一个虚拟的顶层模块里调用激励块和设计块,激励块和设计块之间通过接口进行交互,激励块驱动信号d_clk和d_reset,这两个信号则连接到设计块的clk和reset输入端口,激励块同时还要检查和显示信号c_q,这个信号连接到设计块的输出端口q,顶层模块的作用只是调用激励块和设计块

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第9张图片

实例:脉动进位模块

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第10张图片
在上面模块调用的时候使用了四个T触发器模块
Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第11张图片
T触发器模块之中又调用了D触发器模块
Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第12张图片
我们按自顶向下的方法,对所有的模块都进行了定义,完成了设计块的设计

下面来处理激励块:

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第13张图片
激励块设计好了之后,就可以通过仿真来验证其功能了,如下图所示:

Verilog HDL数字设计与综合(一)Verilog基础知识,重要设计流程及设计思路_第14张图片

小结

(1)用于数字电路设计的两种方法:自顶向下和自底向上的方法

(2)模块是Verilog的基本单元,必须要将模块和模块实例区分开来

(3)仿真有两个不同的组成部分,设计块和激励块,激励块用于测试设计块,对设计块施加激励通常会有两种不同的模式。

你可能感兴趣的:(Verilog,HDL,数字设计与综合,Verilog,HDL,语言,数字电路设计,Verilog基础知识,FPGA设计流程,模块化设计)