文档详情

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

发布:2025-03-30约9.2千字共50页下载文档
文本预览下载声明

任务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中的运算符分别进行介绍。;一、算术运算符

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

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

显示全部
相似文档