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

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

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

簡述HDL中循環(huán)語句的可綜合性

電子工程師 ? 來源:FPGA設(shè)計論壇 ? 作者:FPGA設(shè)計論壇 ? 2021-05-12 09:27 ? 次閱讀

在HDL的循環(huán)語句中,在指定的循環(huán)過程中,其代碼塊(循環(huán)體)輸出同名信號,則構(gòu)成順序-循環(huán)(SAS-LOOP),其代碼塊(循環(huán)體)輸出不同名信號,則構(gòu)成并發(fā)-循環(huán)(CAS-LOOP)。

包括循環(huán)語句(含循環(huán)體)組成的代碼塊,EDA稱為循環(huán)框架(Loop Frame)。

5ca8a4e0-b2a3-11eb-bf61-12bb97331649.png

在這里,HDL循環(huán)語句與算法語言的循環(huán)語句的差異:

1.HDL的循環(huán)變量i是以常量進(jìn)入循環(huán)體。算法語言則是以變量進(jìn)入循環(huán)體。

2.HDL的循環(huán)體并不被循環(huán)執(zhí)行,而是被重復(fù)描述(多次重復(fù)綜合),從而實現(xiàn)建模的效率。算法語言的循環(huán)體則一定是被循環(huán)執(zhí)行。

循環(huán)語句可綜合性的“數(shù)學(xué)歸納法”

數(shù)學(xué)歸納法常用于證明數(shù)學(xué)序列,它的要點是:

1.首先證明序列的基數(shù)成立

2.假設(shè)序列為N時成立

3.證明序列的N+1成立

HDL的循環(huán)語句是否可綜合,可以借用這個方法:

1.首先將循環(huán)語句的循環(huán)次數(shù)修改為一個很小的基數(shù)。由于在很小的基數(shù)時,其電路一定可以用結(jié)構(gòu)化方法直接描述(不使用循環(huán)語句)

2.將基數(shù)加1,仍然可以是結(jié)構(gòu)化描述,并加以驗證

3.將基數(shù)修改為LPM參數(shù)可定制,使用循環(huán)語句描述,并加以驗證

4.修改LPM定制參數(shù),將其加1,觀察其綜合結(jié)果(驗證)

通過以上步驟,可以證明所編寫的HDL循環(huán)語句是可綜合的,并且具有很高的綜合效率。

循環(huán)語句設(shè)計例子:具有64個輸入端口的8位異或電路:

5cafbeb0-b2a3-11eb-bf61-12bb97331649.png

使用“數(shù)學(xué)歸納法”為其使用循環(huán)語句建模和驗證:

1.將基數(shù)(端口數(shù))設(shè)定為4,得到:

5cd11a38-b2a3-11eb-bf61-12bb97331649.png

RTL視圖(驗證過程):

5ce87926-b2a3-11eb-bf61-12bb97331649.png

2.將基數(shù)加1,這里將端口數(shù)修改為8,得到:

5d04fccc-b2a3-11eb-bf61-12bb97331649.png

RTL視圖(驗證過程):

5d4cd948-b2a3-11eb-bf61-12bb97331649.png

修改為端口數(shù)可定制的LPM模型

其RTL視圖:

5d762dc0-b2a3-11eb-bf61-12bb97331649.png

現(xiàn)在將LPM的基數(shù)+1(修改端口指數(shù)PortNum_Power為4)

其RTL視圖:

5db63e60-b2a3-11eb-bf61-12bb97331649.png

以上就是循環(huán)語句構(gòu)成二叉樹異或門的過程,為了得到最終結(jié)果(64端口),將端口指數(shù)PortNum_Power=6,得到:

5dd86dbe-b2a3-11eb-bf61-12bb97331649.png

這里由于端口數(shù)過多,EDA的自動繪圖需要中間過程,故首層僅展示如上部分。

循環(huán)語句可綜合性的設(shè)計例子二:同步計數(shù)器的結(jié)構(gòu)化設(shè)計

1.頂層框圖

5e07f64c-b2a3-11eb-bf61-12bb97331649.png

2.代碼和代碼模型分析

5e21c7b6-b2a3-11eb-bf61-12bb97331649.png

其RTL視圖:

615056d2-b2a3-11eb-bf61-12bb97331649.png

以上視圖中,當(dāng)rst_n=0時,多路器指向常數(shù)0;當(dāng)rst_n=1時,多路器指向加法器的輸出;注意加法器是寄存器的輸出q與1相加。

根據(jù)代碼模型和RTL視圖,可以得到等效節(jié)點模型:

6172da40-b2a3-11eb-bf61-12bb97331649.png

若將復(fù)位信號的條件語句描述屏蔽,則得到RTL視圖更接近節(jié)點等效:

618b06ba-b2a3-11eb-bf61-12bb97331649.png

3.計數(shù)器的數(shù)學(xué)模型

在RTL視圖中,計數(shù)器有限自動機的加法器執(zhí)行q+1(的描述),其真實的電路是得到優(yōu)化和簡化的一個數(shù)學(xué)模型:

若Q序列表示為:

時鐘離散時刻,Q的變化為:

觀察表格,能夠發(fā)現(xiàn)Q的每一個比特位翻轉(zhuǎn)的規(guī)律:

()

(, )

(, )

……

(, )

將觸發(fā)翻轉(zhuǎn)的條件(前級全部為1)采用級聯(lián)以減少面積:

(,)

(, )

(, )

……

(, )

式中:

…….

注意位翻轉(zhuǎn)的一般表達(dá)式:(, )

其真值表為:

其SOP為:

代入序列中,得到:

……

根據(jù)數(shù)學(xué)模型得到的代碼模型為:

61a7654e-b2a3-11eb-bf61-12bb97331649.png

編輯:jq

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

    關(guān)注

    71

    文章

    2759

    瀏覽量

    173320
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    327

    瀏覽量

    47398
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59820
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4790

    瀏覽量

    68654
  • LPM
    LPM
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    9965

原文標(biāo)題:FPGA學(xué)習(xí):循環(huán)語句的可綜合性

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

收藏 人收藏

    評論

    相關(guān)推薦

    深入理解C語言:循環(huán)語句的應(yīng)用與優(yōu)化技巧

    在程序設(shè)計,我們常常需要重復(fù)執(zhí)行某一段代碼。為了提高效率和簡化代碼,循環(huán)語句應(yīng)運而生。C語言作為一門經(jīng)典的編程語言,提供了多種循環(huán)控制結(jié)構(gòu),幫助程序員高效地實現(xiàn)重復(fù)操作。掌握
    的頭像 發(fā)表于 12-07 01:11 ?168次閱讀
    深入理解C語言:<b class='flag-5'>循環(huán)</b><b class='flag-5'>語句</b>的應(yīng)用與優(yōu)化技巧

    高壓放大器在壓電材料綜合性能測試的應(yīng)用

    實驗名稱:壓電材料綜合性能測試裝置的設(shè)計與搭建 測試設(shè)備:高壓放大器、鐵電分析儀、示波器、電容位移傳感器等。 圖1:壓電測試腔 實驗過程: 設(shè)計并加工了壓電測試腔,如圖1所示,然后搭建壓電材料綜合性
    的頭像 發(fā)表于 11-21 11:50 ?154次閱讀
    高壓放大器在壓電材料<b class='flag-5'>綜合性</b>能測試<b class='flag-5'>中</b>的應(yīng)用

    Verilog HDL的基礎(chǔ)知識

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

    FPGA Verilog HDL有什么奇技巧?

    技巧或許可以被視為“奇技淫巧”,但需要注意的是,在實際應(yīng)用應(yīng)遵循良好的代碼規(guī)范和設(shè)計原則: 利用 generate 語句生成重復(fù)的模塊或邏輯:可以根據(jù)條件動態(tài)地生成電路結(jié)構(gòu),提高代碼的靈活性和復(fù)用
    發(fā)表于 09-12 19:10

    引領(lǐng)電池組綜合性能測試新紀(jì)元|比斯特自動化

    在新能源產(chǎn)業(yè)的蓬勃發(fā)展,電池組的性能穩(wěn)定性與安全成為了行業(yè)關(guān)注的焦點。比斯特自動化,作為業(yè)界領(lǐng)先的智能測試設(shè)備制造商,憑借其創(chuàng)新的電池組綜合性能測試機,為這一領(lǐng)域注入了新的活力。這款測試機集成
    的頭像 發(fā)表于 08-28 09:48 ?271次閱讀
    引領(lǐng)電池組<b class='flag-5'>綜合性</b>能測試新紀(jì)元|比斯特自動化

    一次使用無菌腦積水分流器綜合性測試儀

    一次使用無菌腦積水分流器綜合性測試儀 描述 一次使用無菌腦積水分流器是一種用于治療腦積水的醫(yī)療器械。腦積水是指在顱內(nèi)或腦脊液循環(huán)系統(tǒng)
    的頭像 發(fā)表于 04-06 09:13 ?337次閱讀
    一次<b class='flag-5'>性</b>使用無菌腦積水分流器<b class='flag-5'>綜合性</b>測試儀

    焊錫膏的綜合性能該如何進(jìn)行評估?

    一款合適的錫膏對生產(chǎn)效率會帶來巨大的提升,可以減少因為錫膏性能問題導(dǎo)致的工期延誤??蛻粼谶x擇錫膏產(chǎn)品是常常會遇到的問題就是,如何評估所選購焊錫膏綜合性能的優(yōu)劣? 根據(jù)深圳福英達(dá)工業(yè)技術(shù)有限公司多年的錫膏解決方案經(jīng)驗,
    的頭像 發(fā)表于 03-20 09:13 ?354次閱讀

    verilogrepeat必須用begin和end嗎

    在Verilog,repeat語句不需要使用begin和end塊。repeat語句是一種循環(huán)控制語句,允許重復(fù)執(zhí)行一個代碼塊指定的次數(shù)。它
    的頭像 發(fā)表于 02-23 10:14 ?1231次閱讀

    assign語句和always語句的用法

    的用法和功能。 一、Assign語句 Assign語句的定義和語法 Assign語句用于在HDL連續(xù)賦值,它允許在設(shè)計
    的頭像 發(fā)表于 02-22 16:24 ?2593次閱讀

    verilogfor循環(huán)是串行執(zhí)行還是并行執(zhí)行

    的for循環(huán)也是并行執(zhí)行的。 Verilog的for循環(huán)可以用來實現(xiàn)重復(fù)的操作,例如在一個時鐘周期中對多個電路進(jìn)行操作。在循環(huán)內(nèi)部,多個語句
    的頭像 發(fā)表于 02-22 16:06 ?2946次閱讀

    arduino如何停止loop循環(huán)

    退出這個循環(huán)。本文將詳細(xì)介紹如何在Arduino停止loop循環(huán)。 在Arduino,可以通過使用一個布爾變量或條件語句來實現(xiàn)停止loo
    的頭像 發(fā)表于 02-14 16:24 ?4560次閱讀

    arduinowhile循環(huán)怎么跳出

    執(zhí)行某段代碼的情況。然而,如何在合適的時機跳出 while 循環(huán)是一個需要注意的問題。本文將詳細(xì)介紹 Arduino while 循環(huán)的基本概念,以及如何使用不同的技巧跳出該循環(huán)
    的頭像 發(fā)表于 02-14 16:22 ?2617次閱讀

    多協(xié)議網(wǎng)關(guān)BE115是一款多協(xié)議轉(zhuǎn)多上行協(xié)議的綜合性轉(zhuǎn)換網(wǎng)關(guān)

    數(shù)據(jù)傳輸解決方案——協(xié)議轉(zhuǎn)換網(wǎng)關(guān)應(yīng)運而生,廣泛應(yīng)用于工業(yè)自動化和數(shù)字化工廠應(yīng)用環(huán)境。 無縫銜接工業(yè)4.0時代 盡享樓宇暖通系統(tǒng)優(yōu)勢 多協(xié)議網(wǎng)關(guān)BE115是一款多協(xié)議轉(zhuǎn)多上行協(xié)議的綜合性轉(zhuǎn)換網(wǎng)關(guān),支持IEC104、MQTT、OPC UA、Mo
    的頭像 發(fā)表于 02-02 09:26 ?397次閱讀
    多協(xié)議網(wǎng)關(guān)BE115是一款多協(xié)議轉(zhuǎn)多上行協(xié)議的<b class='flag-5'>綜合性</b>轉(zhuǎn)換網(wǎng)關(guān)

    單片機if是什么語句

    單片機的if語句是一種條件語句,用于根據(jù)不同的條件執(zhí)行不同的代碼塊。在程序執(zhí)行過程,條件語句用來決定是否執(zhí)行特定的代碼段。在單片機編程
    的頭像 發(fā)表于 01-05 14:04 ?1822次閱讀

    單片機for語句的運用

    單片機的for語句是一種常見的循環(huán)控制結(jié)構(gòu),用于重復(fù)執(zhí)行一段代碼塊,可以簡化程序的編寫和減少代碼量。本文將詳細(xì)介紹單片機for語句的運用
    的頭像 發(fā)表于 01-05 14:02 ?2472次閱讀