这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 换逻辑分析仪+VerilogHDL操作数

共5条 1/1 1 跳转至

换逻辑分析仪+VerilogHDL操作数

工程师
2024-10-23 19:38:44     打赏

关于操作数的讨论中,我们详细了解了操作数的不同类型,包括常数、线网、位选、存储器和数组元素、参数、变量、部分位选以及函数调用。

这里,我们主要关注常数这一类型,并通过例子来深入理解其特性和在表达式中的应用。


操作数可以是以下类型中的一种:

(1)常数(3)线网

(5)位选(Bit-select)

(7)存储器和数组元素

(2)参数

(4)变量

(6)部分位选(Part-select)

函数调用


常数:

常数可以是十进制数、基数型整数(二进制、十六进制等)或实型数。十进制数在表达式中通常被解释为有符号数,而基数型整数则被视为无符号数。

这种区分对于理解整数的运算方式至关重要。

当我们写下一个十进制数-12时,它明确表示为一个有符号的负数。

当我们使用基数表示法,如5'b10100,来表示一个整数时,它被视为一个无符号数,其值等于十进制的20。


值得注意的是,负值的处理方式在有无基数表示的情况下是不同的。对于没有基数表示的负整数值,如-44,它被视为有符号数,并按有符号数的规则进行运算。而对于有基数表示的负整数值,如-6'o54(注意这里的负号并不在基数表示法内,仅表示我们要对这个值取负,但值本身是按无符号数处理的),它实际上会被当作一个无符号数来处理,这可能导致与预期不同的运算结果。


在给出的例子中,event_reg=-44; 会导致 event_reg 的值为-11(假设event_reg是一个足够大的有符号整数类型),因为-44被当作有符号数处理。而 event_reg=-6'o54; 则可能导致一个非常大的正值(如1073741813,这取决于具体的整数类型和位宽),因为6'o54被当作无符号数20处理,然后取其负值(在无符号数的上下文中,这通常意味着进行了一个二进制补码的转换,但由于值本身很大,结果可能超出了一般的预期)。


在前面的章节中,我们曾对常量做过介绍。

下面举几个例子加以说明

256,7
//位数不确定的十进制数
4'b10 11,8'h0A//位数确定的整型常量
b1 ,'hFBA
//位数不确定的整型常量
90.00006
//实型常量
" BOND"/*字符串常量;每个字符作为8位ASCII值存储*/

表达式中的整数值可以被认为是有符号数或无符号数。若表达式中是十进制整数,例如12,则12被解释为有符号数。若整数是基数型整数(位数确定或者不确定),则该整数被当作无符号数。下面举几个例子加以说明

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

更为重要的是这样一个事实,即用基数或不用基数表示的整数,其负值的处理方式是各不相同的。不用基数表示的负整数值被当作有符号数处理,而用基数表示的负整数值被当作无符号数。因此-44和-6'054(十进制的44等于八进制的54)在下例中处理不同。

integer event_reg;
.....
event_reg=-44/4
event_reg=-6'054/4;

请注意,表示一44和一6'054的二进制位序列是相同的;但是-44作为有符号数处理,而-6'o54作为无符号数处理。因此第一个字符中event_reg的值为一11,而在第二个赋值中event_reg 的值为 1073741813②.


总结:

在操作数的讨论中,常数作为一种重要的类型,其特性和在表达式中的应用值得我们深入探讨。常数可以是十进制数、基数型整数(如二进制、十六进制)或实型数。十进制数在表达式中通常被解释为有符号数,而基数型整数则被视为无符号数。

负值的处理方式在有无基数表示的情况下是不同的。没有基数表示的负整数值被视为有符号数,而有基数表示的负整数值则可能引发误解,因为在实际运算中,它们会被当作无符号数处理,这可能导致运算结果与预期不符。

在赋值event_reg=-44/4中,-44作为有符号数处理,event_reg的值会被计算为-11。然而,在赋值event_reg=-6'o54/4中,由于6'o54被视为无符号数,其值等于十进制的44,然后取其负值并进行二进制补码转换,这可能导致event_reg的值变得非常大,如1073741813(具体值取决于整数类型和位宽)。



专家
2024-10-23 19:43:25     打赏
2楼

感谢分享


专家
2024-10-23 19:48:25     打赏
3楼

感谢分享


高工
2024-10-24 07:33:21     打赏
4楼

感谢分享


高工
2024-10-25 09:54:33     打赏
5楼

这么看下来verilog的基础内容也不算多嘛


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]