国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

integer綜合分析

2019-11-09 18:32:59
字體:
來源:轉載
供稿:網友

 大多數的矢量類型(reg或者net)都被默認當做無符號數。integer和real是個例外,它們被默認為當做有符號數。通常,real類型是不可綜合的。

    假設在沒有溢出的情況下,不管是無符號數還是有符號數,它們都是二進制的一串數值而已;而當這個值被當做某種類型比較時:又符號數的MSB被用來表示這個數字的符號,而無符號數的MSB則是位權最高的那一位。無論采用什么樣的二進制格式,一個無符號數永遠也不能成為負值。

    下面是一個和符號位有關的例子:

reg[31:0] A;

integer I;

...

A=-1;

I=-1;//both A and I hold 32'hffffffff

//

if(I>32'h0)

    $display("I is positive.")

else$display("I is not positive");//PRints "I is not positive"

if(A>32'h0)

    $display("A is positive");//Prints "A is positive"

else$display("I is not positive");

    我用類似的方式在quartus II 中進行了仿真,但得到的結果都是A,這可以看出Q2在比較過程中將integer簡單得看為無符號的數據,并沒有像代碼中所說的結果一樣。但感覺書本中寫的其實挺有道理的,難道是軟件的不同,所以得到的結果不同?

    先拋出這個問題吧,有機會下次再去驗證一下。

    更新部分:

    上次驗證沒成功,今天已驗證居然成功了,上次肯定是哪弄錯了,現在把代碼和圖貼上:

module integer_reg(clk,negA,negI);

input clk;

wire[31:0]A;

integer I;

output reg negA;

output reg negI;

assign A=-3;

always @(posedge clk)

    begin

    I=-3;

    if(A<0)

       negA<=1;

       else negA<=0;

     if(I<0)

        negI<=1;

        else negI<=0;

        end

endmodule

      

    對于關系算符,綜合會有不同的結果,這取決于被比較的是有符號還是無符號數,會綜合出無符號關系算符,或又符合關系算符。

建議在能夠使用reg的情況下盡量使用reg


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲阜市| 汉阴县| 乐平市| 沙田区| 香格里拉县| 班戈县| 从化市| 新竹市| 简阳市| 沧州市| 和平县| 五峰| 汾阳市| 横峰县| 昆山市| 阳江市| 沅陵县| 磴口县| 呼图壁县| 喀什市| 綦江县| 深泽县| 涿州市| 镇赉县| 固阳县| 柘城县| 收藏| 民县| 岳普湖县| 雷山县| 渭源县| 海口市| 鄂托克旗| 平度市| 财经| 永胜县| 佳木斯市| 大关县| 荃湾区| 霍邱县| 镇康县|