欢迎来到EDA中国!
当前位置:网站首页 >资源共享 > FPGA

Verilog HDL语言教程第四章--表达式

  • 415k
  • pdf
  •  
  •  
  • 下载
  • 2013-04-26
  • 软件简介
.1 操作数
操作数可以是以下类型中的一种:
1) 常数
2) 参数
3) 线网
4) 寄存器
5) 位选择
6) 部分选择
7) 存储器单元
8) 函数调用
4.1.1 常数
前面的章节已讲述了如何书写常量。下面是一些实例。
256,7 /非/定长的十进制数。
4'b10_11, 8'h0A /定/长的整型常量。
'b1, 'hFBA /非/定长的整数常量。
90.00006 /实/数型常量。
"BOND" // 串常量;每个字符作为8位A S C I I值存储。
表达式中的整数值可被解释为有符号数或无符号数。如果表达式中是十进制整数,例如,
1 2被解释为有符号数。如果整数是基数型整数(定长或非定长),那么该整数作为无符号数对
待。下面举例说明。
1 2是0 1 1 0 0的5位向量形式(有符号)
- 1 2是1 0 1 0 0的5位向量形式(有符号)
5 ' b 0 1 1 0 0是十进制数1 2(无符号)
5 ' b 1 0 1 0 0是十进制数2 0(无符号)
4 ' d 1 2是十进制数1 2(无符号)
更为重要的是对基数表示或非基数表示的负整数处理方式不同。非基数表示形式的负整
数作为有符号数处理,而基数表示形式的负整数值作为无符号数。因此- 4 4和-6'o54 (十进制
的4 4等于八进制的5 4)在下例中处理不同。
i n t e g e r C o n e;
...
C o n e = -44/4
C o n e = -6'o54/ 4;

注意-4 4和-6 ' o 5 4以相同的位模式求值;但是- 4 4作为有符号数处理,而-6 ' o 5 4作为无符

号数处理。因此第一个字符中C o n e的值为-11,而在第二个赋值中C o n e的值为1 0 7 3 7 4 1 8 1 3 。
4.1.2 参数
前一章中已对参数作了介绍。参数类似于常量,并且使用参数声明进行说明。下面是参
数说明实例。
p a r a m e t e r L O A D = 4'd12, S T O R E = 4'd10;
L O A D 和S TO R E为参数的例子,值分别被声明为1 2和1 0。
4.1.3 线网
可在表达式中使用标量线网( 1位)和向量线网(多位)。下面是线网说明实例。
w i r e [0:3] P r t; //P r t 为4位向量线网。
w i r e B d q; //B b q 是标量线网。
线网中的值被解释为无符号数。在连续赋值语句中,
a s s i g n P r t = -3;
P rt被赋于位向量11 0 1,实际上为十进制的1 3。在下面的连续赋值中,
a s s i g n P r t = 4'HA;
P rt被赋于位向量1 0 1 0,即为十进制的1 0。
4.1.4 寄存器
标量和向量寄存器可在表达式中使用。寄存器变量使用寄存器声明进行说明。例如:
i n t e g e r TemA, TemB;
r e g [1:5] S t a t e;
t i m e Q u e [ 1 : 5 ] ;
整型寄存器中的值被解释为有符号的二进制补码数,而r e g寄存器或时间寄存器中的值被
解释为无符号数。实数和实数时间类型寄存器中的值被解释为有符号浮点数。
TemA = -10; //T e m A值为位向量1 0 1 1 0,是1 0的二进制补码。
TemA = 'b1011; /T/ e m A值为十进制数1 1。
State = -10; // S t a t e值为位向量1 0 1 1 0,即十进制数2 2。
State = 'b1011; // S t a t e值为位向量0 1 0 1 1,是十进制值1 1。
4.1.5 位选择
位选择从向量中抽取特定的位。形式如下:
n e t o r r e g v e c t o r [b i t s e l e c t e x p r]
下面是表达式中应用位选择的例子。
S t a t e [1] && S t a t e [4] //寄存器位选择。
P r t [0] | Bbq 线//网位选择。
如果选择表达式的值为x、z,或越界,则位选择的值为x。例如S t a t e [x]值为x。
4.1.6 部分选择
在部分选择中,向量的连续序列被选择。形式如下:
第4章表达式29

关键字 : 表达式 HDL Verilog 语言 
获取帮助