91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

verilog的signed類(lèi)型有哪些?

汽車(chē)玩家 ? 來(lái)源:博客園 ? 作者:lianjiehere ? 2020-01-30 09:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

sum = a+ b;

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

verilog的signed類(lèi)型有哪些

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

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

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

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

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

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

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

下面的代碼片段將描述有符號(hào)數(shù)和無(wú)符號(hào)數(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};

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

在第二條語(yǔ)句中,c的位寬僅為4,在加法運(yùn)算中,它的位寬會(huì)被調(diào)整。因?yàn)閞eg類(lèi)型被作為無(wú)符號(hào)數(shù)看待,所以c的前面會(huì)被自動(dòng)置入0擴(kuò)展位。

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

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

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

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

reg signed [7:0] a, b;

使用有符號(hào)數(shù)據(jù)類(lèi)型, 第2節(jié)所述代碼可以被改寫(xiě)為:

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;

第一條語(yǔ)句將引用一個(gè)常規(guī)的加法器,因?yàn)閍、b和sum1具有相同的位寬。

第二條語(yǔ)句,所有的右手邊變量都具有signed數(shù)據(jù)類(lèi)型,c被自動(dòng)擴(kuò)展符號(hào)位到8位。因此,無(wú)需再手動(dòng)添加符號(hào)位。

在小型的數(shù)字系統(tǒng)中,我們通??梢赃x用有符號(hào)數(shù)或者無(wú)符號(hào)數(shù)。然而,在一些大型的系統(tǒng)中,會(huì)包括不同形式的子系統(tǒng)。Verilog是一種弱類(lèi)型語(yǔ) 言,無(wú)符合變量和有符號(hào)變量可以在同一表達(dá)式中混用。根據(jù)Verilof的標(biāo)準(zhǔn),只有當(dāng)所有右手邊的變量具有signed數(shù)據(jù)類(lèi)型屬性的時(shí)候,擴(kuò)展符號(hào)位 才被執(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ù)類(lèi)型屬性,因此右手邊的變量b和c的擴(kuò)展位為0。

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

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

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

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

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

    關(guān)注

    30

    文章

    1374

    瀏覽量

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

    關(guān)注

    193

    文章

    1660

    瀏覽量

    83407
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Verilog HDL語(yǔ)法學(xué)習(xí)筆記

    Verilog HDL 語(yǔ) 言 最 初 是 作為 Gateway Design Automation 公 司 ( Gateway DesignAutomation 公司后來(lái)被著名的 Cadence Design Systems 公司收購(gòu))模擬器產(chǎn)品開(kāi)發(fā)的硬件建模語(yǔ)言。
    的頭像 發(fā)表于 03-04 15:04 ?5504次閱讀
    <b class='flag-5'>Verilog</b> HDL語(yǔ)法學(xué)習(xí)筆記

    工業(yè)網(wǎng)關(guān)的IO接口哪些類(lèi)型

    工業(yè)網(wǎng)關(guān)的I/O接口類(lèi)型多樣,主要分為數(shù)字I/O、模擬I/O、串行通信接口、工業(yè)總線接口、以太網(wǎng)接口、無(wú)線通信接口以及專(zhuān)用接口等,以下是對(duì)這些接口類(lèi)型的詳細(xì)歸納: 數(shù)字I/O接口 功能 :用于
    的頭像 發(fā)表于 12-02 09:27 ?580次閱讀

    你覺(jué)得哪個(gè)軟件寫(xiě)verilog體驗(yàn)最好?什么優(yōu)勢(shì)?

    你覺(jué)得哪個(gè)軟件寫(xiě)verilog體驗(yàn)最好?什么優(yōu)勢(shì)?請(qǐng)?jiān)谠u(píng)論區(qū)留言跟大家分享一下吧。
    發(fā)表于 11-10 07:47

    請(qǐng)問(wèn)verilog文件開(kāi)頭部分的@00080000是什么意思?

    請(qǐng)問(wèn)verilog文件開(kāi)頭部分的@00080000是什么意思??
    發(fā)表于 11-06 08:10

    使用NucleiStudio生成tb仿真需要的.verilog文件

    打開(kāi)仿真頂層文件tb_top.v,存放在ITCM模塊里面的指令是通過(guò)readmemh函數(shù)讀入.verilog文件實(shí)現(xiàn)的: 下面通過(guò)對(duì)NucleiStudio IDE進(jìn)行設(shè)置,實(shí)現(xiàn)將c
    發(fā)表于 11-05 07:07

    五種HDMI接口類(lèi)型介紹

    我們都知道USB接口很多類(lèi)型,然而熟悉的HDMI接口,它也有很多不一樣的接口,本文將圍繞HDMI的不同接口類(lèi)型進(jìn)行解析。
    的頭像 發(fā)表于 10-28 16:11 ?5925次閱讀
    五種HDMI接口<b class='flag-5'>類(lèi)型</b>介紹

    rt-thread studio怎么設(shè)置才能讓char變量是真正的符號(hào)類(lèi)型?

    最近被一個(gè)bug折磨了3天,一路debug進(jìn)來(lái),發(fā)現(xiàn)最終的原因是,定義了一個(gè)char變量,但實(shí)際上是無(wú)符號(hào)的(代碼期望該變量是符號(hào)的)。 然后我檢查了以下編譯器如下的設(shè)置,發(fā)現(xiàn)很奇怪,無(wú)論是否勾選
    發(fā)表于 09-16 08:23

    單模光纖線幾種類(lèi)型

    單模光纖線根據(jù)ITU-T國(guó)際標(biāo)準(zhǔn)(G.65x系列)主要分為以下六種類(lèi)型,每種類(lèi)型在傳輸性能、應(yīng)用場(chǎng)景和成本上存在差異: G.652(常規(guī)單模光纖): 核心特性:零色散波長(zhǎng)在1310nm附近
    的頭像 發(fā)表于 09-11 10:00 ?2508次閱讀

    工業(yè)相機(jī)的類(lèi)型及不同類(lèi)型的應(yīng)用

    工業(yè)相機(jī)根據(jù)不同的分類(lèi)標(biāo)準(zhǔn),可分為多種類(lèi)型,每種類(lèi)型都有其獨(dú)特的應(yīng)用場(chǎng)景。
    的頭像 發(fā)表于 08-29 17:07 ?842次閱讀
    工業(yè)相機(jī)的<b class='flag-5'>類(lèi)型</b>及不同<b class='flag-5'>類(lèi)型</b>的應(yīng)用

    UPS電源電池哪些類(lèi)型

      鉛酸蓄電池是UPS電源中應(yīng)用最為廣泛的電池類(lèi)型之一。它以其技術(shù)成熟、成本低廉、性能穩(wěn)定等特點(diǎn),被廣泛應(yīng)用于各種UPS電源系統(tǒng)中。鉛酸蓄電池具有較大的容量和較長(zhǎng)的使用壽命,能夠滿足不同負(fù)載的電力
    的頭像 發(fā)表于 07-23 18:14 ?1406次閱讀
    UPS電源電池<b class='flag-5'>有</b>哪些<b class='flag-5'>類(lèi)型</b>

    聲音芯片哪些類(lèi)型和型號(hào)

    。下面小編就按照不同類(lèi)型來(lái)給大家介紹各種類(lèi)型語(yǔ)音芯片和型號(hào)。 ? 一、OTP語(yǔ)音芯片 OTP語(yǔ)音芯片是一次性編程語(yǔ)音芯片,主要應(yīng)用于一些純播放類(lèi)的需求和設(shè)備,播放時(shí)長(zhǎng)6s/20s/40s/80s/170s等,以WTN6系列的O
    的頭像 發(fā)表于 07-03 17:09 ?999次閱讀
    聲音芯片<b class='flag-5'>有</b>哪些<b class='flag-5'>類(lèi)型</b>和型號(hào)

    傳感器哪些類(lèi)型?哪些接口?

    傳感器的類(lèi)型和接口種類(lèi)繁多,以下是一些常見(jiàn)的分類(lèi)和接口方式: 傳感器類(lèi)型 溫度傳感器:用于測(cè)量溫度,常見(jiàn)的熱電偶、熱電阻、數(shù)字溫度傳感器(如DS18B20)等。 壓力傳感器:用于測(cè)量壓力或力
    的頭像 發(fā)表于 05-22 09:33 ?1.7w次閱讀

    工業(yè)物聯(lián)網(wǎng)平臺(tái)哪些類(lèi)型?什么功能?

    工業(yè)物聯(lián)網(wǎng)平臺(tái)根據(jù)其功能和應(yīng)用場(chǎng)景的不同,可以分為設(shè)備連接與管理平臺(tái)、數(shù)據(jù)分析與預(yù)測(cè)平臺(tái)、應(yīng)用開(kāi)發(fā)與集成平臺(tái)以及特定行業(yè)工業(yè)物聯(lián)網(wǎng)平臺(tái)等類(lèi)型。這些平臺(tái)一般具有設(shè)備連接與管理、數(shù)據(jù)采集與分析、應(yīng)用開(kāi)發(fā)
    的頭像 發(fā)表于 05-08 10:57 ?815次閱讀
    工業(yè)物聯(lián)網(wǎng)平臺(tái)<b class='flag-5'>有</b>哪些<b class='flag-5'>類(lèi)型</b>?<b class='flag-5'>有</b>什么功能?

    verilog模塊的調(diào)用、任務(wù)和函數(shù)

    在做模塊劃分時(shí),通常會(huì)出現(xiàn)這種情形,某個(gè)大的模塊中包含了一個(gè)或多個(gè)功能子模塊,verilog是通過(guò)模塊調(diào)用或稱(chēng)為模塊實(shí)例化的方式來(lái)實(shí)現(xiàn)這些子模塊與高層模塊的連接的.
    的頭像 發(fā)表于 05-03 10:29 ?1610次閱讀
    <b class='flag-5'>verilog</b>模塊的調(diào)用、任務(wù)和函數(shù)

    FPGA Verilog HDL語(yǔ)法之編譯預(yù)處理

    Verilog HDL語(yǔ)言和C語(yǔ)言一樣也提供了編譯預(yù)處理的功能?!熬幾g預(yù)處理”是Verilog HDL編譯系統(tǒng)的一個(gè)組成部分。Verilog HDL語(yǔ)言允許在程序中使用幾種特殊的命令(它們不是一般
    的頭像 發(fā)表于 03-27 13:30 ?1487次閱讀
    FPGA <b class='flag-5'>Verilog</b> HDL語(yǔ)法之編譯預(yù)處理