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

Verilog HDL项目式教程 课件 项目2 数据流建模.pptx

Verilog HDL项目式教程 课件 项目2 数据流建模.pptx

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

任务2.1连续赋值语句

任务2.2运算符类型

任务2.3基本语法及其学习建议;任务2.1连续赋值语句;以关键词assign开始的语句为连续赋值语句。连续赋值语句是Verilog数据流建模的基本语句,用于对线网进行赋值。

assign语句对应的电路通常都是组合逻辑电路。

下面介绍3个电路设计案例:多路选择器、奇偶校验器、加法器。

【例2-1】二选一多路选择器电路设计。【例2-2】二选一多路选择器电路仿真。;使用QuartusⅡ软件可以对设计进行综合,综合出来的电路图如图2-1所示。

由图2-1可以看出,该设计实现的是一个二选一选择电路。

奇/偶校验(ParityCheck)是数据传送时采用的一种校正数据错误的方式,根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。

【例2-3】奇校验电路设计。【例2-4】奇校验电路仿真。;仿真输出结果如图2-2所示。

在仿真结果中可直接观察输入数据以及其中1的个数,并跟输出的1的个数进行对比。

【例2-5】使用数据流建模实现一位半加器。

解题指引:半加器实现的是不带进位的两个数的相加,若半加器的输入为ain和bin,输出为sum和co。其中,sum为和,co为进位。半加器的真值表如表2-1所示。

Verilog实现代码如下:;上面例2-3、例2-4和例2-5都是数据流建模,且都使用了assign语句,该语句通常使用连续赋值语句对变量进行赋值,赋值语句通常会涉及大量的运算符。

上述电路设计和仿真涉及的知识点有:assign连续赋值语句、运算符、系统函数、循环语句、延时等。

下面对这些知识点进行说明。

(1)?assign连续赋值语句。

assign是VerilogHDL语言的关键字,是数据流建模的典型特征。

连续赋值语句的基本元素是表达式、运算符和操作数。连续赋值语句的功能是计算右侧表达式的值,然后赋给左边变量。表达式由运算符和操作数构成,根据运算符界定的功能对操作数进行运算后,得出结果。数据流的强大建模能力体现在多种运算符类型上。

连续赋值语句总是处于激活状态,只要任意一个操作数发生变化,表达式就会立即被重新计算,并且将结果赋给等号左边的线网型变量。;assign{co,sum}=ain+bin;是一条连续赋值语句,???将ain和bin的和存放在{co,sum}中。该语句中,“{}”为位拼接符,其完成的功能是将co和sum拼接成一个两位数。

连续赋值语句的左边必须是一个标量或向量线网,或者是标量或向量线网的拼接,而不能是任何形式的寄存器。例如,下面的形式是非法的:

操作数可以是线网型标量或向量,也可以是寄存器型标量或向量。

(2)运算符。

语句assigny=s?b:a;使用了条件运算符,其功能是:当s?=?1时,y?=?b;当s?=?0时,y?=?a。

语句{a,b,s}={a,b,s}+1;使用了算术运算符、拼接运算符,{a,b,s}的功能是将三个1位数a、b、s拼接成一个三位数;使用的算术运算符是“+”。

assign{co,sum}=ain+bin;?使用了算术运算符、拼接运算符。;(3)系统函数。

monitor和time都是VerilogHDL语言的系统函数,monitor监控变量值,当要显示的变量值发生变化时就会显示;time用于显示当前仿真时刻。

(4)循环语句和仿真延时。

forever是VerilogHDL语言的关键字,用来一直产生信号。forever#5d_in=d_in+1;语句的含义是每5个时间单位,变量值加1。;任务2.2?运?算?符?类?型;VerilogHDL语言提供了许多类型的运算符,分别是算术、关系、逻辑、按位、缩减、条件、移位和位拼接运算符。表2-2按运算符类型列出了常用的运算符。;由表2-2可知,VerilogHDL语言中的运算符所带的操作数是不同的。只带1个操作数的运算符称为单目运算符,此时操作数需放在运算符的右边;带2个操作数的运算符称为双目运算符,操作数需放在运算符的两边;带3个操作的运算符称为三目运算符,这3个操作数用三目运算符分隔开,如表2.2中的条件运算符就是三目运算符。

表达式中的操作数可以是以下类型中的一种。

(1)常数。(2)参数。(3)线网。

(4)寄存器。(5)位选择。(6)部分选择。

(7)存储器单元。(8)函数调用。

下面对表2-2中的运算符分别进行介绍。;一、算术运算符

算术运算符包括加(+)、减(-)、乘(×)、除(?/?)、取模(%)、乘方(**)。

依据运算的不同,算术运算符分别对应着加法器、减法器、乘法器、除法器、取余电路。电路设计中,加法器通常由基本的逻

文档评论(0)

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

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档