一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Verilog中signed和$signed()的用法

FPGA設(shè)計論壇 ? 來源:FPGA設(shè)計論壇 ? 2025-02-17 17:47 ? 次閱讀

1、在verilog中有時會用signed修飾符來修飾定義的數(shù)據(jù),運算的時候也會用$signed()任務(wù)來強制轉(zhuǎn)換數(shù)據(jù),那么signed的修飾是為什么呢,是為了區(qū)分有符號數(shù)和無符號數(shù)的加法和乘法嗎?其實不是的,因為有符號數(shù)和無符號數(shù)據(jù)的加法強結(jié)果和乘法器結(jié)構(gòu)是一樣的,signed的真正作用是決定如何對操作數(shù)擴位的問題。

2、verilog中的加法和乘法操作前,會先對操作數(shù)據(jù)擴位成結(jié)果相同的位寬,然后進行加法或者乘法處理。比如a/b都為4位數(shù)據(jù),c為5位數(shù)據(jù),c = a + b,這個運算的時候會先把a和b擴位成5位,然后按照無符號加法進行相加。a/b沒有被signed修飾的時候會按照無符號數(shù)的擴位方式進行擴位,即高位補0,加法的結(jié)果當(dāng)然也是a、b為無符號數(shù)相加的結(jié)果。

3、如果想把a、b作為有符號數(shù)來相加,那么就得在a/b數(shù)據(jù)定義的時候用signed修改,或者在計算的時候用$signed()來修飾,這樣在c = a + b,這個運算開始的擴位就會按照有符號數(shù)的方式進行擴位,在高位補符號位,加法得出的結(jié)果就是a、b視為有符號數(shù)的結(jié)果。當(dāng)然c要視為有符號數(shù)據(jù)。

e55494b0-ec1b-11ef-9310-92fbcf53809c.png

e5626766-ec1b-11ef-9310-92fbcf53809c.png

e577d7d6-ec1b-11ef-9310-92fbcf53809c.png

$signed()函數(shù)

返回有符號的值,值得注意的是verilog中的負(fù)數(shù)其實是{1’b1,pos_num},而并非高級語言中的補碼。使用中最好通過增加$signed{1’b符號,正數(shù)}來實現(xiàn)轉(zhuǎn)換以避免錯誤。

此外在對signed wire 或signed reg 賦值時,右側(cè)的所有變量最好全部加上$signed函數(shù)轉(zhuǎn)換,以防止遺漏,造成數(shù)據(jù)錯誤

signed變量移位操作時最好使用<<<和>>>,防止對符號位進行操作,導(dǎo)致數(shù)據(jù)出錯

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

    關(guān)注

    28

    文章

    1364

    瀏覽量

    111461

原文標(biāo)題:Verilog 中signed和$signed()的用法

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ADS7883的GND不連接能讀出數(shù)據(jù),連接后讀取的數(shù)據(jù)全為0,為什么?

    signed int AD_Conv(); void InitClock(void) { WDTCTL = WDTPW + WDTHOLD; BCSCTL1 &= ~XT2OFF
    發(fā)表于 01-08 08:40

    Verilog 電路仿真常見問題 Verilog 在芯片設(shè)計的應(yīng)用

    。然而,在實際應(yīng)用,設(shè)計師可能會遇到各種問題,這些問題可能會影響仿真的準(zhǔn)確性和設(shè)計的可靠性。 Verilog電路仿真常見問題 仿真環(huán)境的搭建問題 仿真環(huán)境的搭建是進行Verilog仿真的第一步。設(shè)計師需要選擇合適的仿真工具,并
    的頭像 發(fā)表于 12-17 09:53 ?931次閱讀

    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 ?746次閱讀

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

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

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

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

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?833次閱讀
    如何自動生成<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語法運算符的用法

    verilog語法中使用以下兩個運算符可以簡化我們的位選擇代碼。
    的頭像 發(fā)表于 10-25 15:17 ?2121次閱讀
    <b class='flag-5'>Verilog</b>語法<b class='flag-5'>中</b>運算符的<b class='flag-5'>用法</b>

    Linux lsof命令的基本用法

    在 linux 系統(tǒng),一切皆文件。通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),還可以訪問網(wǎng)絡(luò)連接和硬件。所以 lsof 命令不僅可以查看進程打開的文件、目錄,還可以查看進程監(jiān)聽的端口等 socket 相關(guān)的信息。本文將介紹 lsof 命令的基本用法,本文中 demo 的演示環(huán)境為
    的頭像 發(fā)表于 10-23 11:52 ?940次閱讀
    Linux lsof命令的基本<b class='flag-5'>用法</b>

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

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

    Efinity編譯生成文件使用指導(dǎo)

    (a, b,c, clk, o); input signed [17:0] a; input signed [17:0] b; input signed [17:0] c; input clk
    的頭像 發(fā)表于 08-13 11:51 ?1568次閱讀
    Efinity編譯生成文件使用指導(dǎo)

    ESP32 ota升級固件,為什么提示wifi CA證書不對,后續(xù)代碼logo不打印?

    : verification info:! The certificate is not correctly signed by the trusted CA [0m 程序:在OTA升級過程,打開藍牙
    發(fā)表于 06-21 06:21

    PLCSFTL指令的用法

    在工業(yè)自動化控制系統(tǒng),PLC(Programmable Logic Controller,可編程邏輯控制器)扮演著至關(guān)重要的角色。PLC通過執(zhí)行各種指令來控制設(shè)備的運行,其中SFTL(Shift
    的頭像 發(fā)表于 06-15 17:48 ?4473次閱讀

    Verilog的版本有哪些

    電子發(fā)燒友網(wǎng)站提供《Verilog的版本有哪些.docx》資料免費下載
    發(fā)表于 05-31 11:29 ?0次下載