好文档 - 专业文书写作范文服务资料分享网站

VerilogHDL简明教程:第4章表达式

天下 分享 时间: 加入收藏 我要投稿 点赞

本章讲述在Verilog HDL中编写表达式的基础。 表达式由操作数和操作符组成。表达式可以在出现数值的任何地方使用。

4.1 操作数

操作数可以是以下类型中的一种: 1) 常数 2) 参数 3) 线网 4) 寄存器 5) 位选择 6) 部分选择 7) 存储器单元 8) 函数调用

4.1.1 常数

前面的章节已讲述了如何书写常量。下面是一些实例。

256,7 //非定长的十进制数。

4'b10_11, 8'h0A //定长的整型常量。 'b1, 'hFBA //非定长的整数常量。 90.00006 //实数型常量。

\串常量;每个字符作为8位ASCII值存储。

表达式中的整数值可被解释为有符号数或无符号数。如果表达式中是十进制整数,例如,12被解释为有符号数。如果整数是基数型整数(定长或非定长),那么该整数作为无符号数对待。下面举例说明。

12是01100的5位向量形式(有符号) -12是10100的5位向量形式(有符号) 5'b01100是十进制数12(无符号) 5'b10100是十进制数20(无符号) 4'd12是十进制数12(无符号)

更为重要的是对基数表示或非基数表示的负整数处理方式不同。非基数表示形式的负整数作为有符号数处理,而基数表示形式的负整

数值作为无符号数。因此-44和-6'o54 (十进制的44等于八进制的54)在下例中处理不同。

integer Cone; . . .

Cone = -44/4 Cone = -6'o54/ 4;

注意-44和-6'o54以相同的位模式求值;但是-44作为有符号数处理,而-6'o54作为无符号数处理。因此第一个字符中Cone的值为-11,而在第二个赋值中Cone的值为1073741813。

4.1.2 参数

前一章中已对参数作了介绍。参数类似于常量,并且使用参数声明进行说明。下面是参数说明实例。

parameter LOAD = 4'd12, STORE = 4'd10;

LOAD 和STORE为参数的例子,值分别被声明为12和10。

4.1.3 线网

可在表达式中使用标量线网(1位)和向量线网(多位)。下面是线网说明实例。

wire [0:3] Prt; //Prt 为4位向量线网。 wire Bdq; //Bbq 是标量线网。

线网中的值被解释为无符号数。在连续赋值语句中,

assign Prt = -3;

Prt被赋于位向量1101,实际上为十进制的13。在下面的连续赋值中, assign Prt = 4'HA;

Prt被赋于位向量1010,即为十进制的10。

4.1.4 寄存器

标量和向量寄存器可在表达式中使用。寄存器变量使用寄存器声明进行说明。例如:

integer TemA, TemB; reg [1:5] State; time Que [1:5];

整型寄存器中的值被解释为有符号的二进制补码数,而reg寄存器或时间寄存器中的值被解释为无符号数。实数和实数时间类型寄存器中的值被解释为有符号浮点数。

TemA = -10; //TemA值为位向量10110,是10的二进制补码。 TemA = 'b1011; //TemA值为十进制数11。

State = -10; //State值为位向量10110,即十进制数22。 State = 'b1011; //State值为位向量01011,是十进制值11。

4.1.5 位选择

位选择从向量中抽取特定的位。形式如下:

net_or_reg_vector [bit_select_expr]

下面是表达式中应用位选择的例子。

State [1] && State [4] //寄存器位选择。 Prt [0] | Bbq //线网位选择。

如果选择表达式的值为x、z,或越界,则位选择的值为x。例如State [x]值为x。

4.1.6 部分选择

在部分选择中,向量的连续序列被选择。形式如下:

net_or_reg_vector [msb_const_expr:1sb_const_expr]

其中范围表达式必须为常数表达式。例如。

State [1:4] //寄存器部分选择。 Prt [1:3] //线网部分选择。

选择范围越界或为x、z时,部分选择的值为x。

VerilogHDL简明教程:第4章表达式

本章讲述在VerilogHDL中编写表达式的基础。表达式由操作数和操作符组成。表达式可以在出现数值的任何地方使用。4.1操作数操作数可以是以下类型中的一种:1)常数2)参数3)线网4)寄存器5)位选择6)部分选择7)存储器单元8)函数调用4.1.1常数<
推荐度:
点击下载文档文档为doc格式
7uiso6mtup6vudb8bhn079ew80o9bl00sc3
领取福利

微信扫码领取福利

微信扫码分享