精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

使用函數(shù)表示組合邏輯的方法

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:OpenFPGA ? 2022-12-21 09:18 ? 次閱讀

數(shù)字門級(jí)電路可分為兩大類:組合邏輯和時(shí)序邏輯。鎖存器是組合邏輯和時(shí)序邏輯的一個(gè)交叉點(diǎn),在后面會(huì)作為單獨(dú)的主題處理。

組合邏輯描述了門級(jí)電路,其中邏輯塊的輸出直接反映到該塊的輸入值的組合,例如,雙輸入AND門的輸出是兩個(gè)輸入的邏輯與。如果輸入值發(fā)生變化,輸出值將反映這一變化,組合邏輯的RTL模型需要反映這種門級(jí)行為,這意味著邏輯塊的輸出必須始終反映該邏輯塊當(dāng)前輸入值的組合。

SystemVerilog有三種在可綜合RTL級(jí)別表示組合邏輯的方法:連續(xù)賦值語(yǔ)句、always程序塊和函數(shù)。接下來(lái)幾篇文章將探討每種編碼風(fēng)格,并推薦最佳實(shí)踐編碼風(fēng)格。

425b3fb4-80cc-11ed-8abf-dac502259ad0.png

使用函數(shù)表示組合邏輯

當(dāng)編碼正確時(shí),函數(shù)的行為和綜合就像組合邏輯一樣。

最佳實(shí)踐指南7-7
將RTL模型中使用的函數(shù)聲明為自動(dòng)automatic

為了表示組合邏輯行為,每次調(diào)用函數(shù)時(shí)都必須計(jì)算一個(gè)新的函數(shù)返回值。如果調(diào)用了靜態(tài)函數(shù),但沒(méi)有指定返回值,則靜態(tài)函數(shù)將隱式返回其上一次調(diào)用的值。這是鎖存邏輯的行為,而不是組合邏輯。通過(guò)將RTL模型中使用的所有函數(shù)聲明為自動(dòng)函數(shù)(automatic),可以避免這種編碼錯(cuò)誤。

例7-2定義了一個(gè)使用Russian Peasant Multiplication算法(一系列加法和移位運(yùn)算)計(jì)算乘法運(yùn)算的函數(shù)。該函數(shù)被定義在一個(gè)包中,任何模塊都可以使用該乘法器算法。

SystemVerilog會(huì)推斷出一個(gè)與函數(shù)名稱和數(shù)據(jù)類型相同的變量,示例7-2中的代碼就是利用了這一點(diǎn)。函數(shù)名multiply_f被用作臨時(shí)變量來(lái)保存for循環(huán)中的中間計(jì)算結(jié)果,函數(shù)名中存儲(chǔ)的最終值在函數(shù)退出時(shí)成為函數(shù)返回值。

圖7-2顯示了綜合該函數(shù)的結(jié)果,以及從連續(xù)賦值語(yǔ)句調(diào)用該函數(shù)的模塊。

示例7-2:定義乘法運(yùn)算的算法函數(shù)

//`begin_keywords"1800-2012"http://useSystemVerilog-2012keywords
packagedefinitions_pkg;
timeunit1ns;timeprecision1ns;

//RussianPeasantMultiplicationAlgorithm
functionautomatic[7:0]multiply_f([7:0]a,b);
multiply_f=0;
for(inti=0;i<=3;?i++)?begin?
??????if?(b?==?0)?continue;?//?all?done,?finish?looping
??????else?begin?
?????????if?(b?&?1)?multiply_f?+=?a;
?????????a?<<=?1;??//?multiply?by?2
?????????b?>>=1;//divideby2
end
end
endfunction
endpackage:definitions_pkg
//`end_keywords

//`begin_keywords"1800-2012"http://useSystemVerilog-2012keywords
modulealgorithmic_multiplier
importdefinitions_pkg::*;
(inputlogic[3:0]a,b,
outputlogic[7:0]result
);
timeunit1ns;timeprecision1ns;

assignresult=multiply_f(a,b);

endmodule:algorithmic_multiplier
//`end_keywords
圖7-2:示例7-2的綜合結(jié)果:作為組合邏輯的函數(shù)

42abd94c-80cc-11ed-8abf-dac502259ad0.png

最佳實(shí)踐指南7-8
在可能的情況下,使用SystemVerilog運(yùn)算符,如*,而不是使用循環(huán)和其他編程語(yǔ)句。

算法乘法器的示例7-2還說(shuō)明了為什么在乘法和除法等復(fù)雜運(yùn)算中最好使用SystemVerilog運(yùn)算符。如果在示例7-2中使用了乘法運(yùn)算符(*),則綜合編譯器可以將該運(yùn)算符映射到ASICFPGA的最有效的乘法器。

設(shè)計(jì)工程師在使用算術(shù)運(yùn)算符或算法來(lái)表示復(fù)雜操作時(shí)需要謹(jǐn)慎。RTL模型不是在具有大量?jī)?nèi)存資源的通用計(jì)算機(jī)上運(yùn)行的軟件程序。RTL模型是門級(jí)實(shí)現(xiàn)的抽象。所表示的功能需要在物理上適合目標(biāo)ASIC或FPGA,并且在時(shí)間上在有限的數(shù)量或時(shí)鐘周期內(nèi)。之前的文章有詳細(xì)介紹了在RTL模型中使用算術(shù)運(yùn)算符(如乘法和除法)的指導(dǎo)原則。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 鎖存器
    +關(guān)注

    關(guān)注

    8

    文章

    904

    瀏覽量

    41444
  • 組合邏輯
    +關(guān)注

    關(guān)注

    0

    文章

    47

    瀏覽量

    10033
  • and
    and
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    7242

原文標(biāo)題:使用函數(shù)表示組合邏輯

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    時(shí)序邏輯電路的功能表示方法有哪些

    復(fù)雜邏輯功能的關(guān)鍵組成部分。它們能夠存儲(chǔ)信息,并根據(jù)輸入信號(hào)和當(dāng)前狀態(tài)產(chǎn)生輸出。時(shí)序邏輯電路的設(shè)計(jì)和分析對(duì)于理解和實(shí)現(xiàn)數(shù)字系統(tǒng)至關(guān)重要。 2. 時(shí)序邏輯電路的基本概念 2.1 時(shí)序邏輯
    的頭像 發(fā)表于 08-28 11:41 ?446次閱讀

    邏輯函數(shù)的化簡(jiǎn)方法有哪兩種

    邏輯函數(shù)的化簡(jiǎn)是數(shù)字電路設(shè)計(jì)中的重要步驟,它有助于減少電路中的門數(shù)量,提高電路的性能和可靠性。邏輯函數(shù)的化簡(jiǎn)方法主要可以分為兩大類: 公式化
    的頭像 發(fā)表于 08-22 16:40 ?526次閱讀

    組合邏輯電路輸出狀態(tài)取決于哪些因素

    組合邏輯電路的輸出狀態(tài)主要取決于以下因素: 核心因素 輸入信號(hào)的現(xiàn)態(tài) :組合邏輯電路的輸出狀態(tài)在任何時(shí)刻僅由其當(dāng)前輸入狀態(tài)的邏輯
    的頭像 發(fā)表于 08-11 11:24 ?810次閱讀

    組合邏輯電路的基本概念、組成及設(shè)計(jì)方法

    組合邏輯電路是一種數(shù)字電路,其輸出狀態(tài)完全取決于當(dāng)前輸入狀態(tài)。這種電路沒(méi)有記憶功能,即不包含存儲(chǔ)元件。組合邏輯電路廣泛應(yīng)用于數(shù)字系統(tǒng)中,如計(jì)算機(jī)、通信設(shè)備和控制系統(tǒng)等。
    的頭像 發(fā)表于 08-11 11:22 ?963次閱讀

    組合邏輯電路的結(jié)構(gòu)特點(diǎn)是什么?

    組合邏輯電路是一種基本的數(shù)字電路,它由邏輯門組成,用于實(shí)現(xiàn)各種邏輯功能。組合邏輯電路的結(jié)構(gòu)特點(diǎn)主
    的頭像 發(fā)表于 08-11 11:14 ?770次閱讀

    常用的組合邏輯電路有哪些

    組合邏輯電路是數(shù)字邏輯電路的一種,其特點(diǎn)是輸出只依賴于當(dāng)前的輸入狀態(tài),而與輸入信號(hào)的變化歷史無(wú)關(guān)。組合邏輯電路廣泛應(yīng)用于數(shù)字系統(tǒng)中,如計(jì)算機(jī)
    的頭像 發(fā)表于 07-30 14:41 ?1192次閱讀

    組合邏輯電路邏輯功能的測(cè)試方法

    一、引言 組合邏輯電路是數(shù)字電路中的重要組成部分,它僅由邏輯門電路(如與門、或門、非門等)和輸入/輸出端組成,不包含任何存儲(chǔ)元件。組合邏輯
    的頭像 發(fā)表于 07-30 14:38 ?913次閱讀

    組合邏輯控制器是什么設(shè)備

    邏輯運(yùn)算和控制功能。在本文中,我們將詳細(xì)介紹組合邏輯控制器的基本概念、工作原理、應(yīng)用領(lǐng)域和設(shè)計(jì)方法。 基本概念 1.1 什么是組合
    的頭像 發(fā)表于 06-30 10:29 ?512次閱讀

    組合邏輯控制器的基本概念、實(shí)現(xiàn)原理及設(shè)計(jì)方法

    廣泛應(yīng)用于計(jì)算機(jī)、通信、控制等領(lǐng)域。 本文將詳細(xì)介紹組合邏輯控制器的基本概念、實(shí)現(xiàn)原理、設(shè)計(jì)方法、應(yīng)用場(chǎng)景等方面的內(nèi)容,以幫助讀者全面了解組合邏輯
    的頭像 發(fā)表于 06-30 10:26 ?1505次閱讀

    組合邏輯控制器的工作原理是什么

    基本概念、設(shè)計(jì)方法、實(shí)現(xiàn)技術(shù)以及應(yīng)用領(lǐng)域。 組合邏輯控制器的基本概念 1.1 組合邏輯的定義 組合
    的頭像 發(fā)表于 06-30 10:15 ?815次閱讀

    組合邏輯控制器是用什么實(shí)現(xiàn)的

    組合邏輯控制器是一種用于控制和管理復(fù)雜系統(tǒng)中各個(gè)組件之間交互的邏輯設(shè)備。它可以應(yīng)用于各種領(lǐng)域,如計(jì)算機(jī)科學(xué)、通信、自動(dòng)化控制等。在這篇文章中,我們將詳細(xì)探討組合
    的頭像 發(fā)表于 06-30 10:11 ?458次閱讀

    基于VHDL的組合邏輯設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于VHDL的組合邏輯設(shè)計(jì).ppt》資料免費(fèi)下載
    發(fā)表于 03-11 09:23 ?2次下載

    組合邏輯電路之與或邏輯

    當(dāng)邏輯電路由多個(gè)邏輯門組成且不含存儲(chǔ)電路,對(duì)于給定的輸入變量組合將產(chǎn)生確定的輸出,則這種邏輯電路稱為組合
    的頭像 發(fā)表于 02-04 11:46 ?1536次閱讀
    <b class='flag-5'>組合</b><b class='flag-5'>邏輯</b>電路之與或<b class='flag-5'>邏輯</b>

    if嵌套函數(shù)的正確輸入方法

    輸入方法是在if語(yǔ)句內(nèi)部創(chuàng)建一個(gè)新的函數(shù)。這個(gè)函數(shù)可以是一個(gè)匿名函數(shù)或者是一個(gè)有名稱的函數(shù),具體取決于你的需求和偏好。下面是一個(gè)if嵌套
    的頭像 發(fā)表于 11-30 16:50 ?1331次閱讀

    python中計(jì)算排列組合函數(shù)有哪些

    階乘函數(shù)factorial(n)和計(jì)算組合數(shù)的函數(shù)comb(n, k)。可以使用math.factorial(n)計(jì)算n的階乘,它返回一個(gè)整數(shù)值,表示n的階乘。而math.comb(n
    的頭像 發(fā)表于 11-29 16:33 ?3478次閱讀