簡體   English   中英

帶位選擇器和不帶位選擇器的賦值有什么區別? (e/Specman)

[英]What is difference between assignment with and without bit selector? (e/Specman)

我正在使用 e(Specman)編程語言進行編碼。 如果我想用常量分配整數變量,如果我使用位選擇器(選擇所有 32 位)有什么區別?

我想以以下形式分配具有負常量的整數變量:32'b1...但是這個值被自動轉換為正數(大於MAX_INT)並且我得到了錯誤。 然后我嘗試在變量上使用位選擇器 ([31:0]),並且沒有錯誤地通過賦值。 好的數字被分配給變量。 我不確定為什么會這樣。 當我們不使用位選擇器時自動轉換負數的原因是什么,為什么不使用它。

有錯誤的代碼:

int_variable = 32'b111111111111111111111111

沒有錯誤的代碼:

int_variable[31:0] = 32'b111111111111111111111111

文檔說

在賦值 (lhs = rhs) 中,右側 (rhs) 表達式繼承左側 (lhs) 表達式的上下文

因此,您的 rhs 表達式應該自動轉換為 -1(假設您的代碼包含 32 個或更多 1;對於 31 個 1,您將獲得 MAX_INT)。

我不認為 Specman 對此有任何錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM