我們學習一下Systemverilog中的有符號數據類型的賦值。
module top; logic [7:0] r1; logic signed [7:0] sr1; initial begin r1 = -2; $display($stime,,,"r1=%d",r1); sr1 = -2; $display($stime,,,"sr1=%d",sr1); r1 = r1+1; $display($stime,,,"r1=%d",r1); sr1 = sr1+1; $display($stime,,,"sr1=%d",sr1); end endmodule
Simulation log:
# run –all # 0 r1=254 # 0 sr1= -2 # 0 r1=255 # 0 sr1= -1 # exit
" r1 "被聲明為默認的無符號8位向量,而" sr1 "被聲明為有符號8位向量。
當我們賦值r1 =?2時,因為“r1”是無符號的,所以它實際上會拿到值254(相當于十進制數字?2)。但是“sr1”會拿到值?2。
當我們給“r1”加一個1時,它的計算結果是255(254 + 1)。當我們給“sr1”加一個1時,它的計算結果是- 1(?2 + 1)。
默認情況下,logic, reg, wire,input,output都是無符號的,但是也可以聲明為signed:
wire signed [7:0] w; module sm (input signed [7:0] iBus, output logic signed [7:0] oBus);
下面還有一些簡單的示例:
logic signed [3:0] sr = -1; ( sr = 4’sb1111) logic signed [7:0] sr1 = 1; (sr1 = 8’sb00000001) logic [7:0] adds = sr + sr1; ( adds = 8’b00000000) logic [7:0] usr = 1; logic signed [7:0] s_add; s_add = sr + usr; (s_add = 15+1 = 8’sb00010000) (signed + unsigned = unsigned; sr is treated as unsigned 15)
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Verilog
+關注
關注
28文章
1351瀏覽量
110075 -
System
+關注
關注
0文章
165瀏覽量
36929 -
數據類型
+關注
關注
0文章
236瀏覽量
13618
原文標題:SystemVerilog中的有符號數據類型
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
關于verilog中的無符號數和有符號數
在數字電路中,出于應用的需要,我們可以使用無符號數,即包括0及整數的集合;也可以使用有符號數,即包括0和正負數的集合。在更加復雜的系統中,也許這兩種類型的數,我們都會用到。
采集的數據轉換成有符號數的問題
的時候怎么都不正確,具體原因如下,字符串轉數值的時候只發現可以轉換成無符號數,而采集下來的數據是有符號數,轉換成無符號數之后就無法正確顯示波
發表于 05-02 11:55
1.2FreeRTOS中的數據類型
即可。BaseType_t這個數據類型根據系統架構的位數而定,對于 32 位架構,BaseType_t 定義的是 32 位有符號數,對于 16 位架構,BaseType_t定義的是 16 位
發表于 07-22 23:27
Verilog 變量聲明與數據類型二
沒有特別指定,reg型變量是無符號數,而integer聲明的變量是有符號數的。integer類型的數據一般作為循環變量用在循環語句中。例:r
發表于 08-06 09:21
SpinalHDL的UInt與SInt數據類型能夠進行有符號/無符號數操作
在Bits的基礎上,SpinalHDL提供了UInt、SInt數據類型,從而能夠進行有符號/無符號數操作。變量定義/初始化UInt/SInt的初始化與Bits
發表于 07-14 14:45
是否可以使用ActiveX API獲取符號數據類型?
ActiveX API 提供了一種方法 GetSymbolInfo,它返回輸入符號名稱的地址和大小。但我還需要數據類型,而且我沒有看到任何 API 功能來獲取此信息。我在我的嵌入式應用程序中使用 TSA 表,因此我希望主機可以使用數據類
發表于 03-21 07:37
fpga 有符號數、無符號數
signed 關鍵字定義輸入端口的數據類型為有符號數 ?input signed [7:0] a; ?input signed [7:0] b; //通過 signed 關鍵字定義寄存器的數
plc位、字節、字、雙字、有符號、無符號數據類型的關系
plc位、字節、字、雙字、有符號、無符號的關系以下內容由深圳市綜科智控科技開發有限公司編輯整理 2021/08/18前言:很多同學在PLC開發過程中,因為數據類型選擇錯誤而出現得到的
發表于 12-29 18:52
?2次下載
PLC數據類型
) 或 64 位雙精度數 (LReal) 表示。比如模擬量模塊采集的溫度 壓力等 4 時間 日期數據類型 TIME 數據作為有符號雙整數存儲,基本單位為毫秒。存儲的數值是多少,就代表
發表于 04-17 15:49
?0次下載
FreeRTOS使用的數據類型有哪些
的就是 32 位無符號數。對于 32 位架構的處理器,一定要禁止此宏定義,即設置此宏定義數值為 0 即可。 BaseType_t 這個數據類型根據系統架構的位數而定,對于 32 位架
Redis的數據類型有哪些
Redis的數據類型有哪些?有五種常用數據類型:String、Hash、Set、List、SortedSet。以及三種特殊的數據類型:Bit
verilog中數據的符號屬性(有符號數和無符號數)探究根源
為了省流,還是先甩結論。有符號數和無符號數的最本質區別就是:符號位的識別和高位拓展。除此之外,另一個區別就是從人的角度如何如何讀這個數,或者說$display(%d)打印時打印的值是什
評論