秦晓飞系列-EDA技术及应用-第3章 组合电路的Verilog设计课件_第1页
秦晓飞系列-EDA技术及应用-第3章 组合电路的Verilog设计课件_第2页
秦晓飞系列-EDA技术及应用-第3章 组合电路的Verilog设计课件_第3页
秦晓飞系列-EDA技术及应用-第3章 组合电路的Verilog设计课件_第4页
秦晓飞系列-EDA技术及应用-第3章 组合电路的Verilog设计课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章组合电路的Verilog设计主讲教师:秦晓飞

上海理工大学光电学院第3章组合电路的Verilog设计

本章摒弃传统的先介绍Verilog语法,再介绍用Verilog实现电路的方法这种学习顺序。而是采用倒叙的方式,先给出一些简单电路的Verilog例程,再学习其中涉及到的语法。§3.1半加器电路的Verilog描述§3.2多路选择器的Verilog描述§3.3Verilog加法器设计§3.4组合逻辑乘法器设计§3.5RTL概念3.1半加器电路的Verilog描述3.1半加器电路的Verilog描述1、模块语句及其表达方式

3.1半加器电路的Verilog描述2、端口语句、端口信号名和端口模式

3.1半加器电路的Verilog描述3、逻辑操作符

4、连续赋值语句

当等号右侧驱动表达式中的任一信号变量发生变化时,此表达式即被计算一遍,并将获得的数据立即赋给等号左侧的目标变量。3.1半加器电路的Verilog描述4、连续赋值语句Verilog语句分为顺序执行语句和并行执行语句。assign引导的赋值语句属于并行执行语句。

考虑仿真时,可以加延时,延时值在综合时是被忽略的。

仿真时间精度基本时间单元3.1半加器电路的Verilog描述6、标识符

用户自定义的标识符对大小写敏感。3.2多路选择器的Verilog描述3.2多路选择器的Verilog描述3.2.14选1多路选择器及case语句表述方式

3.2多路选择器的Verilog描述1、reg型变量定义Verilog中变量(信号)类型有两类:Register型(用reg定义);Net型(用wire定义)。其中端口信号默认为wire型。

assign引导的连续赋值语句中的目标变量必须是wire型;

always引导的过程语句中的被赋值信号必须是reg型。Verilog-2001标准,允许在端口表内对变量类型、方向等进行定义:3.2多路选择器的Verilog描述2、过程语句

3种信号表表述方式:①用or连接;

②用逗号连接;

③省略形式always@*

目前主流的综合器都默认过程语句中敏感信号表列全了所有应该被列入的信号。因此设计者少列、漏列部分敏感信号,不会影响综合结果。现在敏感信号表的重要作用是增强程序的可读性。试图通过选择性的列入敏感信号来改变逻辑设计是无效的。3.2多路选择器的Verilog描述3、块语句begin_endbegin_end语句的作用相当于“括号”,若某语句结构只含有一条语句,且无需定义局部变量,则无需显示定义。如本例中的beginend语句可以省略。

块名可以省略,只是一个标识,用来增强可读性,不参加综合。3.2多路选择器的Verilog描述4、case条件语句Verilog中两类条件语句:

①case_endcase

②if_else

都是顺序语句,必须放在过程语句always中使用。

3.2多路选择器的Verilog描述5、Verilog的四种逻辑状态0。二进制0、低电平、逻辑0、事件false。1。二进制1、高电平、逻辑1、事件true。z或Z。高阻态。x或X。不确定,未知逻辑状态。

由case语句可以衍伸出casez、casex语句,不再详述。3.2多路选择器的Verilog描述6、并位操作运算符

并位操作符{}可以将两个或多个信号按二进制位拼接起来,作为一个数据信号来使用。

并位操作符可以嵌套使用。3.2多路选择器的Verilog描述3.2.24选1多路选择器及assign语句表述方式

这种直接用布尔逻辑表达式来描述模块功能的方式,称为数据流方式。3.2多路选择器的Verilog描述1、按位逻辑操作符

3、wire定义网线型变量

连续赋值语句assign的目标变量必须是wire型。端口信号默认为wire型,其他信号如果需要是wire型,则必须显示定义。wire和assign在表达信号及信号赋值性质上是一致的,因此以下两种表达方式等效。3.2多路选择器的Verilog描述3.2多路选择器的Verilog描述3.2.34选1多路选择器及条件赋值语句表述方式

这里用wire代替assign引导连续赋值语句。

条件表达式?表达式1:表达式2当条件表达式为1时,选择并计算表达式1,否则选择并计算表达式2。这种逻辑表达方式再连续赋值语句和过程赋值语句中都可使用,即并行赋值语句或顺序赋值语句中都可使用。

3.2多路选择器的Verilog描述3.2.44选1多路选择器及条件语句表述方式

3.2多路选择器的Verilog描述2、过程赋值语句

(1)阻塞式赋值(BlockingAssignment):是一种顺序执行语句,即多条阻塞式赋值语句并存时,按顺序逐条执行,当某条语句被执行时,其他语句被禁止(被阻塞)。当执行完当前语句时,目标变量立即获得等号右侧值。(2)非阻塞式赋值(NonblockingAssignment):是一种并行执行语句,即多条语句同时执行,但赋值操作是在块语句执行结束时才整体完成赋值操作。3.2多路选择器的Verilog描述3、数据类型表示方式

SEL与0,1,2数据类型不同,但可以进行比较,这是因为Verilog自动完成数据类型的转换和截位。这与VHDL不同。

语法宽松代表着初学入门容易,但程序的后续排错困难。3.3Verilog加法器设计3.3Verilog加法器设计3.3.1全加器设计及例化语句应用1、全加器原理图结构

3.3Verilog加法器设计3.3.1全加器设计及例化语句应用2、全加器顶层设计文件

3.3Verilog加法器设计3.3.1全加器设计及例化语句应用3、Verilog例化语句及其用法

端口名关联法:比较直观,不受位置顺序影响,可缺项。推荐使用。位置关联法:位置顺序固定,不可缺项。不推荐使用。

3.3Verilog加法器设计3.3.2半加器的UDP结构建模描述方式

1、库元件及其调用2、用户自定义原语User-DefinedPrimitive,UDP。UDP采用table_endtable引导元件的真值表。

库元件与UDP的调用均采用位置关联法,输出在最左侧。例化元件名可省。3.3Verilog加法器设计3.3.3利用UDP元件设计多路选择器

3.3Verilog加法器设计3.3.48位加法器设计及算术操作符应用

3.3Verilog加法器设计3.3.48位加法器设计及算术操作符应用

使用QuartusII的NetlistViewer可以观测设计综合后的RTL图,RTL图只是表示设计的大致电路结构,不拘泥于细节。3.3Verilog加法器设计3.3.5算术运算操作符

加、减、乘可综合,除、求余的操作数必须是2的幂时才可综合。

所有操作符按无符号处理,需要负数时需用signed定义,用补码表示。3.3Verilog加法器设计3.3.5算术运算操作符

有符号数和无符号数运算对比3.3Verilog加法器设计3.3.6BCD码加法器设计8421BCD码用4位二进制数表示1位十进制数0~9,其余6个数无效。BCD码相加需考虑两个问题:

(1)当两个BCD码相加值超过9,则必须加上6来得到一个有效的BCD码,并向高位进1;比如6+6=12,0110+0110=1100,BCD码为1100+110=10010

(2)有时尽管两个BCD码相加值为有效BCD码,但有进位,此时仍需将相加结果加6。比如9+9=18,1001+1001=10010,BCD码为10010+110=11000下面的例子用到了不等式操作符

3.3Verilog加法器设计3.4组合逻辑乘法器设计3.4组合逻辑乘法器设计3.4.1参数定义关键词parameter和localparamparameter参数是一个特殊常量,只能被赋值一次。但可通过外部程序的参数传递来改变parameter参数。localparam参数与parameter参数一样,但不能通过外部程序的参数传递来改变localparam参数。3.4组合逻辑乘法器设计3.4.2整数型寄存器类型定义integer型与reg型都是寄存器类型,但reg型必须明确定义其位数,而integer型默认都是32位宽。3.4组合逻辑乘法器设计3.4.3for语句用法

注意:

(1)循环控制变量不一定是增加的,可以是减小的;

(2)循环次数必须是有限的,否则导致综合失败。3.4组合逻辑乘法器设计3.4.4移位操作符及其用法V>>n或V<<n

腾空的位用0填充V>>>n或V<<<n

右移腾空的位用符号位填充,左移腾空的位用0填充

3.4组合逻辑乘法器设计3.4.5两则乘法器设计示例3.4组合逻辑乘法器设计3.4.5两则乘法器设计示例3.4组合逻辑乘法器设计3.4.6repeat语句用法思考:如果此例中TA,TB的幅值采用非阻塞幅值会怎样?答案:结果将大不相同,只有在过程结束后才会把过程中所有非阻塞幅值语句的右端计算结果赋给左端的信号。3.4组合逻辑乘法器设计3.4.7while语句用法3.4组合逻辑乘法器设计3.4.8parameter的参数传递功能parameter参数的另一个重要功能是通过例化语句来传递参数,以便通过上层设计中相关参数的改变来改变底层电路的结构功能与逻辑规模。

首先改写parameter表述方式:

然后在上层电路用例化,并进行端口关联3.5RTL概念3.5RTL概念RTL(RegisterTransportLevel),寄存器传输级。

RTL的概念产生于对电路的描述,这种描述以寄存器为特征,中间插

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论