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

在这里插入图片描述

层次建模的概念

设计方法学

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

对于自顶向下而言
我们首先定义顶层功能块,进而分析需要哪些构成顶层模块的必要的子模块,然后进一步对各个子模块进行分解,直至达到无法进一步分解的底层功能块
在这里插入图片描述
对自底向上的设计方法
我们首先对现有的功能块进行分析,然后使用这些模块来搭建规模大一些的功能块,如此继续直至顶层模块。
在这里插入图片描述

模块

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

在这里插入图片描述

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

在这里插入图片描述
Verilog允许设计者在一个模块里混合使用多个抽象层次。
一般来说,抽象的层次越高,那么设计的灵活性和工艺无关性就越强,随着抽象层次的降低,灵活性和工艺无关性都会变差,微小的调整可能也意味着对设计的多处更改。

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

模块实例化

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

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

在这里插入图片描述

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

在这里插入图片描述

逻辑仿真的构成

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

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

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

在这里插入图片描述
(2)在一个虚拟的顶层模块里调用激励块和设计块,激励块和设计块之间通过接口进行交互,激励块驱动信号d_clk和d_reset,这两个信号则连接到设计块的clk和reset输入端口,激励块同时还要检查和显示信号c_q,这个信号连接到设计块的输出端口q,顶层模块的作用只是调用激励块和设计块

在这里插入图片描述

实例:脉动进位模块

在这里插入图片描述
在上面模块调用的时候使用了四个T触发器模块
在这里插入图片描述
T触发器模块之中又调用了D触发器模块
在这里插入图片描述
我们按自顶向下的方法,对所有的模块都进行了定义,完成了设计块的设计

下面来处理激励块:

在这里插入图片描述
激励块设计好了之后,就可以通过仿真来验证其功能了,如下图所示:

在这里插入图片描述

小结

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值