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

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

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

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

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

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-12-21 09:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

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

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

示例7-2:定義乘法運算的算法函數(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

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

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

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

審核編輯:郭婷

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

    關注

    8

    文章

    926

    瀏覽量

    42400
  • 組合邏輯
    +關注

    關注

    0

    文章

    48

    瀏覽量

    10215
  • and
    and
    +關注

    關注

    0

    文章

    34

    瀏覽量

    7534

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    請問AFE5801 AD轉(zhuǎn)換后數(shù)字信號是用有符號數(shù)還是無符號數(shù)表示的?

    請問AFE5801 AD轉(zhuǎn)換后數(shù)字信號是用有符號數(shù)還是無符號數(shù)表示的???
    發(fā)表于 02-11 07:18

    LM4675測試條件中負載電阻的2個15uH的電感參數(shù)表示什么意思?

    測試條件中負載電阻的2個15uH的電感參數(shù)表示什么意思?常規(guī)不是默認8歐的直流阻抗值?
    發(fā)表于 10-25 07:00

    邏輯電路芯片-組合邏輯電路芯片-時序邏輯電路芯片

    微型電子元件,在極小的空間內(nèi)實現(xiàn)了復雜的邏輯功能。邏輯電路芯片根據(jù)設計不同,可以分為組合邏輯電路和時序邏輯電路兩大類。
    發(fā)表于 09-30 10:47

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

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

    時序邏輯電路的五種描述方法

    (State Diagram) 狀態(tài)圖是一種圖形化的描述方法,用于表示時序邏輯電路的狀態(tài)和狀態(tài)之間的轉(zhuǎn)換。狀態(tài)圖由以下元素組成: 狀態(tài)(State):表示電路在某一時刻的狀態(tài),通常用一
    的頭像 發(fā)表于 08-28 11:39 ?2844次閱讀

    時序邏輯電路的描述方法有哪些

    、狀態(tài)表、有限狀態(tài)機、卡諾圖、布爾差分方程、布爾函數(shù)、時序邏輯仿真等。 狀態(tài)圖 狀態(tài)圖是一種圖形化的描述方法,用于表示時序邏輯電路的狀態(tài)轉(zhuǎn)換
    的頭像 發(fā)表于 08-28 11:37 ?1423次閱讀

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

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

    組合邏輯電路設計的關鍵步驟是什么

    組合邏輯電路設計的關鍵步驟主要包括以下幾個方面: 1. 邏輯抽象 任務 :根據(jù)實際邏輯問題的因果關系,確定輸入、輸出變量,并定義邏輯狀態(tài)的含
    的頭像 發(fā)表于 08-11 11:28 ?1826次閱讀

    組合邏輯電路設計時應遵循什么原則

    一、引言 組合邏輯電路是數(shù)字電路中的一種基本類型,它由邏輯門、觸發(fā)器等基本元件組成,通過邏輯門的組合實現(xiàn)特定的
    的頭像 發(fā)表于 08-11 11:26 ?2187次閱讀

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

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

    組合邏輯電路的基本概念、組成及設計方法

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

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

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

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

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

    分析組合邏輯電路的設計步驟

    組合邏輯電路是數(shù)字電路中的一種基本類型,它由邏輯門組成,根據(jù)輸入信號的組合產(chǎn)生相應的輸出信號。組合邏輯
    的頭像 發(fā)表于 07-30 14:39 ?1698次閱讀

    組合邏輯電路邏輯功能的測試方法

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