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

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

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

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

verilog的signed類型有哪些?

汽車玩家 ? 來源:博客園 ? 作者:lianjiehere ? 2020-01-30 09:52 ? 次閱讀

數(shù)字電路中,出于應(yīng)用的需要,我們可以使用無符號數(shù),即包括0及整數(shù)的集合;也可以使用有符號數(shù),即包括0和正負(fù)數(shù)的集合。在更加復(fù)雜的系統(tǒng)中,也許這兩種類型的數(shù),我們都會用到。

有符號數(shù)通常以2的補(bǔ)碼形式來表示。圖1列出了4位二進(jìn)制表示法所對應(yīng)正負(fù)數(shù)。進(jìn)一步觀察,我們發(fā)現(xiàn)兩種類型數(shù)的加減法是一樣的,做加法和減法就是 在數(shù)輪上按正時鐘轉(zhuǎn)轉(zhuǎn)或按反時鐘轉(zhuǎn)。比方說,1001+0100,意味著從1001按照順時鐘方向移動4個位置,其結(jié)果為1101。在無符號數(shù)類型中,它 代表(+9)+(+4)=+13;而在有符號數(shù)類型中,它則代表(-7)+(+4)=-3。從數(shù)輪上看,若是加法所得的結(jié)果溢出了,那么也就是穿越了數(shù)輪 的臨界點(diǎn)。注意這個臨界點(diǎn)對于無符號數(shù)和有符號數(shù)來說,是不一樣的:無符號數(shù),是介于1111和0000之間;有符號數(shù),則是介于0111和1000之 間。

物理加減法的行為正好和數(shù)輪的移動類似。只要所有的運(yùn)算子和結(jié)果具有相同的位寬,那么有符號數(shù)或無符號數(shù)的形式就可用于相同的電路。比方說,設(shè)a、b和sum都是8位信號,表達(dá)式

sum = a+ b;

無論這些信號被轉(zhuǎn)譯成有符號數(shù)或無符號數(shù),它都會引用相同的硬件且使用相同的二進(jìn)制表示法。這種現(xiàn)象在其他算術(shù)運(yùn)算中也是正確的(但是它不可用于非算術(shù)運(yùn)算中,比方說有理數(shù)運(yùn)算或溢出標(biāo)志位的生成)。

verilog的signed類型有哪些

圖1 4位二進(jìn)制數(shù)輪

此外,當(dāng)運(yùn)算子或其結(jié)果的位寬不同時,我們需要區(qū)分它究竟使用哪一種符號類型。因為不同的符號類型需要不同的擴(kuò)展位。對于無符號數(shù),前置一個0,即 所謂的零擴(kuò)展位;對于有符號數(shù)來說,需要前置n個所謂的符號擴(kuò)展位。比方說4位二進(jìn)制表示的-5為1011;當(dāng)其擴(kuò)展成8位時,應(yīng)該變?yōu)?1111_1011,而不是0000_1011。

舉個例子,設(shè)a和sum為8位信號,b為4位信號即b3b2b1b0。

表達(dá)式:sum = a + b

需要將b擴(kuò)展為8位。如果是無符號數(shù)形式,那么b擴(kuò)展為0000_b3b2b1b0;如果是有符號數(shù)形式,那么b擴(kuò)展為 b3b3b3b3_b3b2b1b0。上述表達(dá)式所引用的硬件包括位寬擴(kuò)展電路和加法器。因為對于有符號數(shù)和無符號數(shù)來說,擴(kuò)展電路是不同的;所以上面那 個表達(dá)式,對應(yīng)有符號數(shù)和無符號數(shù)形式,要使用不同的硬件實現(xiàn)。

Verilog-1995中的有符號數(shù)

在Verilog-1995中,只有integer數(shù)據(jù)類型被轉(zhuǎn)移成有符號數(shù),而reg和wire數(shù)據(jù)類型則被轉(zhuǎn)移成無符號數(shù)。由于integer 類型有固定的32位寬,因此它不太靈活。我們通常使用手動加上擴(kuò)展位來實現(xiàn)有符號數(shù)運(yùn)算。

下面的代碼片段將描述有符號數(shù)和無符號數(shù)的運(yùn)算:

01 reg [7:0] a, b;

02 reg [3:0] c,

03 reg [7:0] sum1, sum2, sum3, sum4;

04 。 . 。

05 // same width. can be applied to signed and unsigned

06 sum1 = a + b;

07 // automatica 0 extension

08 sum2 = a + c;

09 // manual 0 extension

10 sum3 = a + {4{ 1‘b0 }, c};

11 // manual sign extension

12 sum4 = a + {4{c[3]}, c};

在第一條語句中,a、b和sum1有相同的位寬,因此無論是轉(zhuǎn)譯成有符號數(shù)還是無符號數(shù),它都將引用相同的加法器電路。

在第二條語句中,c的位寬僅為4,在加法運(yùn)算中,它的位寬會被調(diào)整。因為reg類型被作為無符號數(shù)看待,所以c的前面會被自動置入0擴(kuò)展位。

在第三條語句中,我們給c手動前置4個0,以實現(xiàn)和第二個表達(dá)式一樣的效果。

在第四條語句中,我們需要把變量轉(zhuǎn)譯成有符號數(shù)。為了實現(xiàn)所需的行為,c必須擴(kuò)展符號位到8位。沒有其他的辦法,只好手動擴(kuò)展。在代碼中,我們重復(fù)復(fù)制c的最高位4次(4{c[3]})來創(chuàng)建具有擴(kuò)展符號位的8位數(shù)。

Verilog-2001中的有符號數(shù)

在Verilog-2001中,有符號形式也被擴(kuò)展到reg和wire數(shù)據(jù)類型中。哈哈,新加一個關(guān)鍵字,signed,可以按照下面的方式定義:

reg signed [7:0] a, b;

使用有符號數(shù)據(jù)類型, 第2節(jié)所述代碼可以被改寫為:

1 reg signed [7:0] a, b;

2 reg signed [3:0] c;

3 reg signed [7:0] sum1, sum4;

4 。 . 。

5 // same width. can be applied to signed and unsigned

6 sum1 = a + b;

7 // automatic sign extension

8 sum4 = a + c;

第一條語句將引用一個常規(guī)的加法器,因為a、b和sum1具有相同的位寬。

第二條語句,所有的右手邊變量都具有signed數(shù)據(jù)類型,c被自動擴(kuò)展符號位到8位。因此,無需再手動添加符號位。

在小型的數(shù)字系統(tǒng)中,我們通常可以選用有符號數(shù)或者無符號數(shù)。然而,在一些大型的系統(tǒng)中,會包括不同形式的子系統(tǒng)。Verilog是一種弱類型語 言,無符合變量和有符號變量可以在同一表達(dá)式中混用。根據(jù)Verilof的標(biāo)準(zhǔn),只有當(dāng)所有右手邊的變量具有signed數(shù)據(jù)類型屬性的時候,擴(kuò)展符號位 才被執(zhí)行。否則,所有的變量都只擴(kuò)展0。

考慮下面的代碼片段:

1 reg signed [7:0] a, sum;

2 reg signed [3:0] b;

3 reg [3:0] c;

4 。 . 。

5 sum = a + b + c;

由于c不具有signed數(shù)據(jù)類型屬性,因此右手邊的變量b和c的擴(kuò)展位為0。

Verilog有兩個系統(tǒng)函數(shù),$signed和$unsigned(),用以將括號內(nèi)的表達(dá)式轉(zhuǎn)換為signed和unsigned數(shù)據(jù)類型。比方說,我們可以轉(zhuǎn)換c的數(shù)據(jù)類型,

sum = a + b + $signed(c);

現(xiàn)在,右手邊的所有變量都具有signed數(shù)據(jù)類型屬性,因此b和c將擴(kuò)展符號位。

在復(fù)雜的表達(dá)式中,混用signed和unsigned數(shù)據(jù)類型將引入一些微妙的錯誤,因此應(yīng)當(dāng)避免混用。如果真的很有必要,那么表達(dá)式需要保持簡單,同時通用轉(zhuǎn)換函數(shù),以確保數(shù)據(jù)類型的一致性。

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

    關(guān)注

    29

    文章

    1366

    瀏覽量

    111923
  • 數(shù)字電路
    +關(guān)注

    關(guān)注

    193

    文章

    1637

    瀏覽量

    81644
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    尋找verilog高手,報酬

    我采集了一塊電路板正常工作時的數(shù)據(jù),基于這些數(shù)據(jù)我想用EPM7128slc84-15(sys_clk:50Mhz)測試電路板,尋求一位verilog高手,有償
    發(fā)表于 03-08 16:31

    驅(qū)動器哪些類型

    類型之一。它適用于高速、高精度加工,如銑削、雕刻、線切割等應(yīng)用場合。伺服電機(jī)驅(qū)動器多種類型,如模擬式伺服驅(qū)動器、數(shù)字式伺服驅(qū)動器等,其中數(shù)字式伺服驅(qū)動器具有更高的控制精度和穩(wěn)定性?12。 ?步進(jìn)電機(jī)驅(qū)動器?:步
    的頭像 發(fā)表于 02-23 15:50 ?902次閱讀

    分布式存儲哪幾種類型?

    分布式存儲哪幾種類型?分布式存儲系統(tǒng)是一種將數(shù)據(jù)分散存儲在多臺獨(dú)立節(jié)點(diǎn)上的技術(shù),根據(jù)數(shù)據(jù)模型可分為鍵值存儲、列式存儲、文檔存儲和圖形存儲等類型;按數(shù)據(jù)存儲單位可分為基于文件、塊和對象的存儲;按
    的頭像 發(fā)表于 02-20 11:00 ?492次閱讀

    Verilogsigned和$signed()的用法

    1、在verilog中有時會用signed修飾符來修飾定義的數(shù)據(jù),運(yùn)算的時候也會用$signed()任務(wù)來強(qiáng)制轉(zhuǎn)換數(shù)據(jù),那么signed的修飾是為什么呢,是為了區(qū)分
    的頭像 發(fā)表于 02-17 17:47 ?549次閱讀
    <b class='flag-5'>Verilog</b>中<b class='flag-5'>signed</b>和$<b class='flag-5'>signed</b>()的用法

    分布式云化數(shù)據(jù)庫哪些類型

    分布式云化數(shù)據(jù)庫哪些類型?分布式云化數(shù)據(jù)庫主要類型包括:關(guān)系型分布式數(shù)據(jù)庫、非關(guān)系型分布式數(shù)據(jù)庫、新SQL分布式數(shù)據(jù)庫、以列方式存儲數(shù)據(jù)、圖形分布式數(shù)據(jù)庫。以下是UU云小編整理的幾種主要的分布式云化數(shù)據(jù)庫
    的頭像 發(fā)表于 01-15 09:43 ?418次閱讀

    Verilog 與 ASIC 設(shè)計的關(guān)系 Verilog 代碼優(yōu)化技巧

    Verilog與ASIC設(shè)計的關(guān)系 Verilog作為一種硬件描述語言(HDL),在ASIC設(shè)計中扮演著至關(guān)重要的角色。ASIC(Application Specific Integrated
    的頭像 發(fā)表于 12-17 09:52 ?947次閱讀

    Verilog 測試平臺設(shè)計方法 Verilog FPGA開發(fā)指南

    Verilog測試平臺設(shè)計方法是Verilog FPGA開發(fā)中的重要環(huán)節(jié),它用于驗證Verilog設(shè)計的正確性和性能。以下是一個詳細(xì)的Verilog測試平臺設(shè)計方法及
    的頭像 發(fā)表于 12-17 09:50 ?1057次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風(fēng)格 VerilogVerilog 的語法更接近于 C 語言,對于 C 語言背景的工程師來說,學(xué)習(xí)曲線較平緩。它支持結(jié)構(gòu)化編程,代
    的頭像 發(fā)表于 12-17 09:44 ?1507次閱讀

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?946次閱讀
    如何自動生成<b class='flag-5'>verilog</b>代碼

    Verilog硬件描述語言參考手冊

    一. 關(guān)于 IEEE 1364 標(biāo)準(zhǔn)二. Verilog簡介三. 語法總結(jié)四. 編寫Verilog HDL源代碼的標(biāo)準(zhǔn)五. 設(shè)計流程
    發(fā)表于 11-04 10:12 ?4次下載

    system verilog語言簡介

    ICer需要System Verilog語言得加成,這是ICer深度的表現(xiàn)。
    發(fā)表于 11-01 10:44 ?0次下載

    Verilog HDL的基礎(chǔ)知識

    本文繼續(xù)介紹Verilog HDL基礎(chǔ)知識,重點(diǎn)介紹賦值語句、阻塞與非阻塞、循環(huán)語句、同步與異步、函數(shù)與任務(wù)語法知識。
    的頭像 發(fā)表于 10-24 15:00 ?1096次閱讀
    <b class='flag-5'>Verilog</b> HDL的基礎(chǔ)知識

    如何利用Verilog-A開發(fā)器件模型

    Verilog-A對緊湊型模型的支持逐步完善,在模型的實現(xiàn)上扮演越來越重要的角色,已經(jīng)成為緊湊模型開發(fā)的新標(biāo)準(zhǔn)。而且Verilog-A能夠在抽象級別和應(yīng)用領(lǐng)域中擴(kuò)展SPICE建模和仿真功能,因此學(xué)會
    的頭像 發(fā)表于 10-18 14:16 ?1208次閱讀
    如何利用<b class='flag-5'>Verilog</b>-A開發(fā)器件模型

    FPGA Verilog HDL什么奇技巧?

    今天給大俠帶來在FPAG技術(shù)交流群里平時討論的問題答疑合集(九),以后還會多推出本系列,話不多說,上貨。 交流問題(一) Q:Verilog 什么奇技淫巧? A:在 Verilog 中,以下這些
    發(fā)表于 09-12 19:10

    總線異步通信幾種聯(lián)絡(luò)類型

    的靈活性和擴(kuò)展性。 在總線異步通信中,多種聯(lián)絡(luò)類型,每種類型都有其特定的應(yīng)用場景和特點(diǎn)。以下是對這些聯(lián)絡(luò)類型的介紹: 單工通信 單工通信是一種最基本的通信方式,它只允許數(shù)據(jù)在一個方向
    的頭像 發(fā)表于 07-23 09:21 ?864次閱讀
    主站蜘蛛池模板: 久久久久国产午夜 | 最近高清在线国语 | 免费在线视频观看 | 色天使网| 天天摸天天碰成人免费视频 | 丁香综合激情 | 欧美簧片| 资源新版在线天堂 | 男人的天堂在线精品视频 | bt天堂资源种子在线8 | 啊用力太猛了啊好深视频免费 | 四虎永久精品视频在线 | 全部免费特黄特色大片视频 | 亚洲bbbbbxxxxx精品三十七 | 国产视频福利 | 深爱激情五月婷婷 | 天堂网站www天堂资源在线 | 四虎国产永久免费久久 | 久久国产精品视频 | 我要看18毛片 | 国产精品久久久久乳精品爆 | 曰韩毛片| аbt天堂资源在线官网 | 广东毛片 | 亚洲综合一区二区 | 美女视频一区二区三区在线 | 久久精品国产清自在天天线 | 免费爱爱视频 | 哟交小u女国产精品视频 | 三a大片| 亚洲3级| 五月天婷婷色综合 | 扒开双腿爽爽爽视频www | 初恋视频黄色 | 国产综合在线观看视频 | 韩日中文字幕 | 久久精品国产亚洲aa | 毛片2016免费视频 | 一级特黄a 大片免费 | 日本三级hd高清电影 | 中文字幕网资源站永久资源 |