网站大量收购闲置独家精品文档,联系QQ:2885784924

Verilog HDL数字集成电路设计原理与应用(第三版)课件 第3章 Verilog HDL程序设计语句和描述方式.pptx

Verilog HDL数字集成电路设计原理与应用(第三版)课件 第3章 Verilog HDL程序设计语句和描述方式.pptx

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

3.1数据流建模

3.2行为级建模

3.3结构化建模;3.1数据流建模;在数字电路中,输入信号经过组合逻辑电路传送到输出端类似于数据流动,而不会在其中存储。通过连续赋值语句可以对这种特性进行建模,这种建模方式通常称为数据流建模。

VerilogHDL中的数据流建模方式是比较简单的行为建模,它只有一种描述方式,即通过连续赋值语句进行逻辑描述。其最基本的语句是由关键词assign引导的。

对于连续赋值语句,只要输入端操作数的值发生变化,该语句就重新计算并刷新赋值结果。通常可以使用连续赋值语句来描述组合逻辑电路,而不需要用门电路和互连线。连续赋值的目标类型主要是标量线网和向量线网,标量线网如“wirea,b;”,向量线网如“wire[3:0]a,b;”。

连续赋值语句只能用来对连线型变量进行驱动,而不能对寄存器型变量进行赋值,它可以采取显式连续赋值语句和隐式连续赋值语句两种赋值方式。;1.显式连续赋值语句

显式连续赋值语句的语法格式如下:

net_declarationrangename;

assign#delayname=assignmentexpression;

这种格式的连续赋值语句包含两条语句:第一条语句是对连线型变量进行类型说明的语句;第二条语句是对这个连线型变量进行连续赋值的赋值语句。赋值语句是由关键词assign引导的,它能够用来驱动连线型变量,而且只能对连线型变量进行赋值,主要用于对wire型变量进行赋值。

2.隐式连续赋值语句

隐式连续赋值语句的语法格式如下:

net_declarationdrive_strengthrange#delayname=assignmentexpression;

这种格式的连续赋值语句把连线型变量的说明语句以及对该连线型变量进行连续赋值的语句结合到同一条语句内。利用它可以在对连线型变量进行类型说明的同时实现连续赋值。;上述两种格式中:

·“net_declaration(连线型变量类型)”可以是除了trireg类型外的任何一种连线型数

据类型。

·“range(变量位宽)”指明了变量数据类型的宽度,格式为[msb:lab],缺省时为1位。

·“drive_strength(赋值驱动强度)”是可选的,它只能在“隐式连续赋值语句”格式中指定。它用来对连线型变量受到的驱动强度进行指定。它是由“对1驱动强度”和“对0驱动强度”两项组成的。驱动强度的概念在上一章的数据类型中已经说明,比如语句“wire(weak0,strong1)out=in1in2;”内的“(weak0,strong1)”就表示该语句指定的连续赋值对连线型变量“out”的驱动强度是:赋“0”值时的驱动强度为“弱(weak)”,而赋“1”值时的驱动强度为“强(strong)”。如果在格式中缺省了“赋值驱动强度”这一项,则驱动强度默认为(strong1,strong0)。;·“delay(延时量)”项也是可选的,它指定了赋值表达式内信号发生变化时刻到连线型变量取值被更新时刻之间的延迟时间量。其语法格式如下:

#(delay1,delay2,delay3)

其中,delay1、delay2、delay3都是一个数值,“delay1”指明了连线型变量转移到“1”状态时的延时值(称为上升延时);“delay2”指明了连线型变量转移到“0”状态时的延时值(称为下降延时);“delay3”指明了连线型变量转移到“高阻Z”状态时的延时值(称为关闭延时)。如果没有定义delay,则缺省值为0。

;3.连续赋值语句使用中的注意事项

(1)赋值目标只能是线网类型(wire)。

(2)在连续赋值中,只要赋值语句右边表达式的任何一个变量有变化,表达式立即被计算,计算的结果立即赋给左边的信号(若没有定义延时量)。

(3)连续赋值语句不能出现在过程块中。

(4)多个连续赋值语句之间是并行关系,因此与位置顺序无关。

(5)连续赋值语句中的延时具有硬件电路中惯性延时的特性,任何小于其延时量的信号变化脉冲都将被滤除掉,不会出现在输出端口。;3.2行?为?级?建?模;VerilogHDL支持设计者从电路外部行为的角度对其进行描述,因此行为级建模是从一个层次很高的抽象角度来表示电路的。其目标不是对电路的具体硬件结构进行说明,它是为了综合以及仿真的目的而进行的。在这个层次上,设计数字电路更类似于使用一些高级语言(如C语言)进行编程,而且VerilogHDL行为级建模的语法结构与C语言也非常相似。VerilogHDL提供了许多行为级建模语法结构,为设计者的使用提供了很大的灵活性。

行为描述常常用于复杂数字逻辑系统的顶层设计中,也就是通过行为级建模把一个复杂的系统分解成可操作的若干个模块,每个

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档