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

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

3天內(nèi)不再提示

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

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

練習一

有符號數(shù)據(jù)與無符號數(shù)據(jù)對比

代碼:

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

仿真結(jié)果:

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

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

這里是解釋

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

域?qū)捴担?/strong>即為顯示數(shù)據(jù)的個數(shù);

進制:可以是二進制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

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

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

練習二

有符號數(shù)據(jù)與無符號數(shù)據(jù)轉(zhuǎn)換

代碼:

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

仿真結(jié)果:

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

練習三

數(shù)據(jù)截取

代碼:

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

仿真結(jié)果:

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

仿真結(jié)果:

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






審核編輯:劉清

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

    關(guān)注

    2

    文章

    786

    瀏覽量

    41571
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1014

    瀏覽量

    83594
  • 十進制
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    13170

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    c++之vector容器

    1.vector容器介紹 ? ? ? 向量(Vector)是一個封裝了動態(tài)大小數(shù)組的順序容器(Sequence Container)。跟任意其它類型容器一樣,它能夠存放各種類型的對象??梢院唵蔚恼J為
    的頭像 發(fā)表于 07-13 19:36 ?1361次閱讀
    c++之<b class='flag-5'>vector</b>容器

    typedef volatile signed short什么意思

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

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

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

    vector用法總結(jié)(轉(zhuǎn)載)

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

    Agilent Vector Signal Analysis

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

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

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

    Vector

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

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

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

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

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

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

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

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

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

    python中如何用空格分隔

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

    print輸出如何不帶空格

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

    c語言printf輸出空格間隔

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

    中間繼電器的型號哪些

    中間繼電器是一種電氣設(shè)備,用于在控制電路中傳遞信號或增加觸點容量。它們通常用于自動化控制系統(tǒng)、工業(yè)設(shè)備、電力系統(tǒng)和通信設(shè)備中。中間繼電器的型號很多,不同的制造商和國家有不同的型號命名規(guī)則。以下是一些
    的頭像 發(fā)表于 06-28 09:29 ?1620次閱讀