verilog中的signed用法

2021-10-25 14:51:30 字數 493 閱讀 2042

1.signed的真正作用是決定如何對運算元擴位的問題。verilog中的加法和乘法操作前,會先對運算元據擴位成結果相同的位寬,然後進行加法或者乘法處理。比如a/b都為4位資料,c為5位資料,c = a + b,這個運算的時候會先把a和b擴位成5位,然後按照無符號加法進行相加。a/b沒有被signed修飾的時候會按照無符號數的擴位方式進行擴位,即高位補0,加法的結果當然也是a、b為無符號數相加的結果。

2.有符號數進行比較時加上signed,即可考慮數值正負,完成正確比較,強調一下必須兩個都要加signed,否則當作無符號進行比較。否則只會將有符號數看作無符號數進行比較。

3.verilog中常數預設為32位。將乙個常數賦值給變數時,會根據變數位寬變化,給的是補碼。

例如: reg [31:0] a = -4;

a = 32』hffff_fffc;

reg [63:0] b = -4;

b = 64』hffff_ffff_ffff_fffc;

關於verilog中的signed型別

在數位電路中,出於應用的需要,我們可以使用無符號數,即包括0及整數的集合 也可以使用有符號數,即包括0和正負數的集合。在更加複雜的系統中,也許這兩種型別的數,我們都會用到。有符號數通常以2的補碼形式來表示。圖1列出了4位二進位制表示法所對應正負數。進一步觀察,我們發現兩種型別數的加減法是一樣的,做加...

Verilog中的函式

verilog中的函式 verilog hdl與大多數可程式語言一樣,將使用率很高的 按照軟體工程的思想,寫成函式,這樣,該函式可以被多次呼叫。verilog中函式常用語三種情況 verilog中的函式與c語言中的函式的主要不同之處是 在verilog中,呼叫函式時,需要將乙個或則多個自變數傳給函式...

verilog中的task用法

定義乙個任務。task task demo 任務定義結構開頭,命名為 task demo input 7 0 x,y 輸入埠說明 output 7 0 tmp 輸出埠說明 if x y 給出任務定義的描述語句 tmp x else tmp y endtask 上述 定義了乙個名為 task demo...