在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么signed_vector的-128結果中間有很多空格?

jf_GctfwYN7 ? 來源:IC修真院優秀學員 ? 2023-09-02 10:01 ? 次閱讀

練習一

有符號數據與無符號數據對比

代碼:

module vector_transfer();
    logic[7:0]logic_vector=8'b1000_0000;
    bit   [7:0] bit_vector=8'b1000_0000;
    byte  signed_vector=8'b1000_0000;




    initial begin


    $display("logic_vector=%d",logic_vector);
    $display("bit_vector=%d",bit_vector);
    $display("signed_vector=%d",signed_vector);


    end
endmodule

仿真結果:

e2880842-48b2-11ee-97a6-92fbcf53809c.png

相信各位小伙伴,都能理解該仿真結果的產生,但是可能有的小伙伴會有疑問,為什么signed_vector的-128結果中間有很多空格?你真的仔細,先為你豎起大拇指,接下來我們就講解一下為什么輸出結果會是這樣。

這里是解釋

首先,在開始階段,聲明變量logic_vector為8位,bit_vector為8位,signed_vector沒有明確給出具體位寬,默認32位。是不是看到區別了,別激動,接著往下看,8位二進制數轉換位十進制數最大值為2^8-1=255,位寬為3,同樣道理,32位二進制數轉換位十進制數最大值為2^32-1=42_6496_7295,位寬為10,理解了這個接下來就是重點了哦!!!在使用到display時,我們經常需要考慮到顯示數據的對齊方式,一般會在%和指定基數之間通過指定域寬來實現顯示數據的對齊,格式一般為:%(域寬值)(進制)

域寬值:即為顯示數據的個數;

進制:可以是二進制b,十進制d,八進制o,十六進制h;

%(進制)默認為最大位寬

理解了這些,我們接著分析上邊的代碼:

$display("logic_vector=%d",logic_vector) 顯示的logic_vector默認為最大位寬3

$display("bit_vector=%d",bit_vector) 顯示的logic_vector默認為最大位寬3

$display("signed_vector=%d",signed_vector) 顯示的logic_vector默認為最大位寬10

所以顯示結果 logic_vector=128;bit_vector=128;signed_vector= -128(中間空7個位寬);如果想實現signed_vector= -128,可以修改代碼:$display("signed_vector=%0d", signed_vector);%0表示按照實際位寬進行解釋。

e2a163e6-48b2-11ee-97a6-92fbcf53809c.png

練習二

有符號數據與無符號數據轉換

代碼:

module vector_transfer1();
    byte signed_vector=8'b1000_0000;
bit[8:0]result_vector;


    initial begin
        result_vector=signed_vector;
        $display("@1 result_vector='h%x",result_vector);
        result_vector=unsigned'(signed_vector);
        $display("@2 result_vector='h%x",result_vector);
        end
endmodule

仿真結果:

e2c483ee-48b2-11ee-97a6-92fbcf53809c.png

練習三

數據截取

代碼:

module vector_transfer2();
    logic [3:0] x_vector=4'b111x;
    bit   [2:0] bit_vector;


    initial begin
    $fsdbDumpfile("vector_transfer2.fsdb");
    $fsdbDumpvars;
    end


    initial begin
    $display("@1 x_vector='b%b",x_vector);
    bit_vector=x_vector;
    $display("@2 bit_vector='b%b",bit_vector);
    end
endmodule

仿真結果:

e2e26ea4-48b2-11ee-97a6-92fbcf53809c.png

練習四

隊列的基本用法

代碼:

module queue();
    int j=1,
        q2[$]={3,4},
        q[$]={0,2,5};

    initial begin
    $fsdbDumpfile("queue.fsdb");
    $fsdbDumpvars;
    end


    initial begin
    q.insert(1,j);
    $display(q);
    q.insert(3,q2[0]);
    $display(q);
    q.insert(4,q2[1]);
    $display(q);
    q.delete(1);
    $display(q);
    q.push_front(6);
    $display(q);
    j=q.pop_back;
    $display(j);;
    q.push_back(8);
    $display(q);
    j=q.pop_front;
    $display(j);
    foreach(q[i])
    $display(q[i]);
    q.delete();
    end
endmodule

仿真結果:

e2f3a49e-48b2-11ee-97a6-92fbcf53809c.png






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 二進制
    +關注

    關注

    2

    文章

    795

    瀏覽量

    41681
  • 仿真器
    +關注

    關注

    14

    文章

    1018

    瀏覽量

    83800
  • 十進制
    +關注

    關注

    0

    文章

    67

    瀏覽量

    13234

原文標題:IC學霸筆記 | SV基本語法練習

文章出處:【微信號:IC修真院,微信公眾號:IC修真院】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    c++之vector容器

    1.vector容器介紹 ? ? ? 向量(Vector)是一個封裝了動態大小數組的順序容器(Sequence Container)。跟任意其它類型容器一樣,它能夠存放各種類型的對象。可以簡單的認為
    的頭像 發表于 07-13 19:36 ?1459次閱讀
    c++之<b class='flag-5'>vector</b>容器

    typedef volatile signed short什么意思

    typedef volatile signed short什么意思,求求
    發表于 07-18 11:58

    字符串的列是由若干個空格隔開的,怎么讀取成數組?

    正常情況電子表格字符串列之間是由一個tab或者一個空格隔開的,可是我需要讀的這個文件列之間是由若干個空格隔開,讀出來的結果是把很多空格當成零
    發表于 04-01 11:26

    vector用法總結(轉載)

    (vector::size_type ix=0;ix!=ivec.size();++ix)ivec[ix]=0;和string類型的下標操作符一樣,vector下標操作的結果為左值,因此可以像循環體中所
    發表于 05-01 15:22

    Agilent Vector Signal Analysis

    This application note serves as a primer on the vector signal analyzer (VSA).This chapter discusses
    發表于 07-23 21:00 ?6次下載

    空格的ascii碼,空格鍵的ascii碼是多少

    空格的ascii碼,空格鍵的ascii碼是多少 回車換行  橫向跳到下一制表位置  v 豎向跳格   退格 
    發表于 06-30 10:10 ?11.7w次閱讀
    <b class='flag-5'>空格</b>的ascii碼,<b class='flag-5'>空格</b>鍵的ascii碼是多少

    Vector

    DSP之Vector教程,很好的DSP自學資料,快來學習吧。
    發表于 04-15 17:49 ?11次下載

    Vector CANoe入門教程之基礎操作的詳細說明

    Vector-CANoe8.2基礎操作教程Vector-CANoe8.2基礎操作教程Vector-CANoe8.2基礎操作教程Vector-CANoe8.2基礎操作教程
    發表于 04-18 08:00 ?366次下載
    <b class='flag-5'>Vector</b> CANoe入門教程之基礎操作的詳細說明

    C++中vector的定義與初始化

    ,它的特征是相當于可拓展的數組(動態數組),隨機訪問快,在中間插入和刪除慢,但在末端插入和刪除快。 vector的定義與初始化 使用vector時,要將相應容器的頭文件,如下圖所示代碼第2行。
    的頭像 發表于 02-02 16:41 ?9101次閱讀
    C++中<b class='flag-5'>vector</b>的定義與初始化

    中間繼電器的原理及用途哪些

    引導動觸點啟動,讓繼電器的常閉觸點分開、常開觸點閉合;當中間繼電器電路斷電后,內部彈簧發揮效果——使動觸點進行復位。 中間繼電器的用途: 在中間繼電器的觸電位置帶負荷的功能,電器需要
    的頭像 發表于 08-16 15:37 ?4.2w次閱讀

    中間繼電器的原理是什么 用途哪些

    引導動觸點啟動,讓繼電器的常閉觸點分開、常開觸點閉合;當中間繼電器電路斷電后,內部彈簧發揮效果——使動觸點進行復位。 中間繼電器的用途: 在中間繼電器的觸電位置帶負荷的功能,電器需要
    的頭像 發表于 08-30 09:28 ?9744次閱讀

    python中如何用空格分隔

    在Python中,可以使用空格來分隔不同的元素,如變量、操作符、函數參數等。以下是一些常見的用法: 變量賦值:使用空格將變量名和賦值操作符等分開。 x = 10 name = "John Doe
    的頭像 發表于 11-24 09:51 ?3669次閱讀

    print輸出如何不帶空格

    在Python中,print函數默認會在各個參數之間添加空格進行分隔。如果你想要讓print函數輸出的內容不帶空格,可以使用sep參數來自定義分隔符。 sep參數是print函數的一個可選參數,用于
    的頭像 發表于 11-24 09:53 ?2157次閱讀

    c語言printf輸出空格間隔

    C語言中,需要在printf輸出中添加空格間隔可以通過多種方式實現。這個空格間隔可以用于對輸出進行格式化使其更加易讀、美觀。在接下來的文章中,我將詳細介紹如何使用空格來間隔輸出以及如何控制輸出的對齊
    的頭像 發表于 11-24 09:56 ?6490次閱讀

    中間繼電器的型號哪些

    中間繼電器是一種電氣設備,用于在控制電路中傳遞信號或增加觸點容量。它們通常用于自動化控制系統、工業設備、電力系統和通信設備中。中間繼電器的型號很多,不同的制造商和國家有不同的型號命名規則。以下是一些
    的頭像 發表于 06-28 09:29 ?2037次閱讀
    主站蜘蛛池模板: 久久久精品久久久久久久久久久| 91福利免费视频| 国产精品欧美一区二区三区不卡| 在线97| 好紧好爽水真多18| 亚洲国产色图| 色色色色色网| 你懂的 在线观看| 国产三级播放| 99伊人| 欧美视频图片| 1024你懂的国产在线播放| 亚洲专区一路线二| 亚洲天堂免费观看| 日韩欧美一卡二区| 久久精品夜色国产| 8000av在线| 六月丁香综合网| 婷婷色激情| 色黄污在线看黄污免费看黄污| 伊人网站在线| 色香影视| 黄色超污网站| 午夜影院免费体验| 久久精品国产免费| 69日本xxxxxxxxx18| 中文字幕在线播放第一页| 天天碰人人| 加勒比综合| 午夜三级福利| 147西西人体大胆免费网| 亚洲国产毛片aaaaa无费看| 亚洲色图欧美视频| 免费一级毛片| 小雪被老外黑人撑破了| se色成人亚洲综合| 99久久免费精品国产免费高清 | 欧美二级黄色片| 国产高清一区二区三区四区| 天天干天天干天天色| 视频在线观看网站免费|