精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久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)不再提示

HLS中組合電路對(duì)設(shè)計(jì)的影響

OpenFPGA ? 來源:OpenFPGA ? 2023-11-03 09:04 ? 次閱讀

組合電路在 HLS 中的重要性

該項(xiàng)目通過一個(gè)示例演示了 HLS 中組合電路對(duì)設(shè)計(jì)的影響。

3aa9319a-79e1-11ee-939d-92fbcf53809c.png

在 HLS 中描述組合任務(wù)非常重要,因?yàn)樗苯佑绊懻麄€(gè)系統(tǒng)的性能。這里我舉一個(gè)簡(jiǎn)單的例子來解釋一下這個(gè)問題。

介紹

高級(jí)綜合工具將算法轉(zhuǎn)換為等效的 RTL 描述。該描述代表邏輯電路,可以通過ASICFPGA技術(shù)來綜合。

3abe6da8-79e1-11ee-939d-92fbcf53809c.png

邏輯電路可以是以下兩種類型之一:組合電路或時(shí)序電路。組合電路的輸出僅是其輸入上的當(dāng)前邏輯值的函數(shù)。如圖1所示,只需使用基本邏輯門即可實(shí)現(xiàn)組合電路,不需要存儲(chǔ)單元。

3ada9b54-79e1-11ee-939d-92fbcf53809c.png

圖1

另一方面,時(shí)序電路的輸出不僅取決于其輸入的當(dāng)前值,還取決于過去時(shí)間的輸入值的歷史記錄。

電路狀態(tài)通常模擬輸入值歷史的影響。一組存儲(chǔ)單元可以代表這些狀態(tài)。

3af3d93e-79e1-11ee-939d-92fbcf53809c.png

圖2

圖2顯示了由組合電路和一組保存電路狀態(tài)的存儲(chǔ)單元組成的時(shí)序電路的結(jié)構(gòu)。存儲(chǔ)器單元可以是觸發(fā)器、BRAM或DDR存儲(chǔ)器的形式。

組合部分接收兩組數(shù)據(jù):主輸入和狀態(tài)。然后它生成兩組輸出:主要輸出和下一個(gè)狀態(tài)。系統(tǒng)中的其他模塊使用主輸出,而下一個(gè)狀態(tài)數(shù)據(jù)修改存儲(chǔ)單元并定義新的電路狀態(tài)。

動(dòng)機(jī)

所有組合電路都需要一個(gè)時(shí)間間隔,以便在其輸入發(fā)生任何變化后產(chǎn)生穩(wěn)定的輸出。這個(gè)時(shí)間被稱為傳播延遲。組合電路中從輸入到輸出的不同路徑可能具有各種延遲。最長(zhǎng)路徑也稱為關(guān)鍵路徑,被定義為設(shè)計(jì)傳播延遲。

在時(shí)序電路中,時(shí)鐘周期對(duì)設(shè)計(jì)性能有直接影響。圖 2 中組合部分的傳播延遲決定了最小時(shí)鐘周期。因此,它的好壞直接影響到整個(gè)系統(tǒng)的性能。

時(shí)序電路通常需要幾個(gè)時(shí)鐘周期來完成其相關(guān)任務(wù)。所需時(shí)鐘周期的最大數(shù)量稱為設(shè)計(jì)延遲。組合部分也對(duì)相關(guān)時(shí)序電路的延遲有直接影響。

因此,了解如何在 HLS 中設(shè)計(jì)高效的組合電路是在硬件上開發(fā)高性能算法的第一步。

組合電路的影響

在這里,將通過一個(gè)例子來解釋正確的 C/C++ 描述組合設(shè)計(jì)如何能夠加快實(shí)現(xiàn)速度。

假設(shè)我們要在如圖 3 所示的 Basys3 FPGA 評(píng)估板上可用的四個(gè)七段上顯示數(shù)字的四位十進(jìn)制數(shù)字。

3b0e9f1c-79e1-11ee-939d-92fbcf53809c.png

圖3

第一步是提取四位十進(jìn)制數(shù)字,然后找到每個(gè)數(shù)字對(duì)應(yīng)的七段代碼,并將代碼發(fā)送到板上的段選擇上。這里我只解釋第一個(gè)任務(wù),即提取四位小數(shù)。

讓我們考慮以下 Vivado-HLS 代碼,該代碼提取 4 位無符號(hào)整數(shù)的十進(jìn)制數(shù)字。設(shè)計(jì)頂部函數(shù)是extract_decimal_digits ,它接受輸入參數(shù)(即a )并生成四個(gè)輸出(即 digital_1、digit_2、digit_3、digit_4)。它調(diào)用函數(shù)get_digit四次來提取每個(gè)數(shù)字。get_digit函數(shù)提取接收到的號(hào)碼的第一位數(shù)字,然后對(duì)其進(jìn)行修改。

3b2b29a2-79e1-11ee-939d-92fbcf53809c.png

如果我們執(zhí)行高級(jí)綜合過程來生成等效的 RTL 設(shè)計(jì),則圖 5 顯示了 Basys3 板的報(bào)告。Vivado-HLS 綜合過程利用參數(shù)化的 Xilinx LogiCORE 除法器內(nèi)核來實(shí)現(xiàn)模運(yùn)算。該代碼具有流水線結(jié)構(gòu)。

可以看出,設(shè)計(jì)時(shí)鐘周期約束為10 ns(用1注釋)。流水線設(shè)計(jì)需要 35 個(gè)周期來完成其任務(wù),即 0.35 us(用 2 表示)。此外,它還使用了 12 個(gè) DSP、1474 個(gè) FF 和 1057 個(gè) LUT。

3b53dbae-79e1-11ee-939d-92fbcf53809c.png

圖5

現(xiàn)在讓我們考慮以下實(shí)現(xiàn),將模運(yùn)算替換為其等效的算術(shù)表達(dá)式,即 a%10 = a – 10*(a/10)。如果我們直接使用這個(gè)表達(dá)式,編譯器會(huì)優(yōu)化代碼,再次使用模運(yùn)算,并生成相同的 RTL 描述。為了阻止編譯器優(yōu)化代碼,我使用了一個(gè)單獨(dú)的子函數(shù)來執(zhí)行除 10 運(yùn)算符。另外,還關(guān)閉了編譯器函數(shù)內(nèi)聯(lián)功能。

3b5e692a-79e1-11ee-939d-92fbcf53809c.png

現(xiàn)在,如果我們綜合此代碼,圖 7 將顯示相應(yīng)的報(bào)告。

該電路完全由組合電路搭建。電路傳播延遲為23.607 ns,使用28個(gè)DSP和262個(gè)LUT。

3b7790c6-79e1-11ee-939d-92fbcf53809c.png

圖7

比較這兩種實(shí)現(xiàn)方式:圖 8 顯示了比較結(jié)果。在該圖中,“Solution 1”對(duì)應(yīng)于使用模運(yùn)算符的第一種方案,“Solution 2”代表第二種方案。

3b9fef8a-79e1-11ee-939d-92fbcf53809c.png

可以看出,第一種方案需要 35 個(gè)時(shí)鐘周期,由于時(shí)鐘周期為 10 ns,因此需要 350 ns才能生成輸出。然而,第二種方案只需要 23.607 ns 即可生成輸出。所以第二個(gè)實(shí)現(xiàn)速度快了 14.83 倍。

此外,第二種方案在 FPGA 上使用的資源要少得多。

結(jié)論

設(shè)計(jì)高效的組合電路是在 HLS 中開發(fā)算法或系統(tǒng)控制器的第一步。多種優(yōu)化技術(shù)和編碼風(fēng)格可用于描述復(fù)雜算法的組合部分。






審核編輯:劉清

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

    關(guān)注

    13

    文章

    490

    瀏覽量

    42452
  • asic
    +關(guān)注

    關(guān)注

    34

    文章

    1175

    瀏覽量

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

    關(guān)注

    1

    文章

    384

    瀏覽量

    59503
  • 組合電路
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    6683
  • HLS
    HLS
    +關(guān)注

    關(guān)注

    1

    文章

    128

    瀏覽量

    23907

原文標(biāo)題:組合電路在 HLS 中的重要性

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    探索Vivado HLS設(shè)計(jì)流,Vivado HLS高層次綜合設(shè)計(jì)

    設(shè)計(jì)來滿足各種約束 用不用的指令來探索多個(gè)HLS解決方案 2.實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)中文件包含一個(gè)矩陣乘法器的實(shí)現(xiàn),實(shí)現(xiàn)兩個(gè)矩陣inA和inB相乘得出結(jié)果,并且提供了一個(gè)包含了計(jì)算結(jié)果的testbench
    的頭像 發(fā)表于 12-21 16:27 ?3439次閱讀

    如何在HLS 14.3編寫pow功能?

    嗨? 如何在HLS 14.3編寫pow功能? HLS 14.3不支持exp和pow功能。我在我的代碼寫了“#include math.h”。但是,它不起作用。 另外,我想知道C代碼
    發(fā)表于 03-05 13:40

    如何使用Vivado HLS生成了一個(gè)IP

    你好,我使用Vivado HLS生成了一個(gè)IP。從HLS測(cè)量的執(zhí)行和測(cè)量的執(zhí)行時(shí)間實(shí)際上顯著不同。由HLS計(jì)算的執(zhí)行非常小(0.14 ms),但是當(dāng)我使用AXI計(jì)時(shí)器在真實(shí)場(chǎng)景測(cè)量它
    發(fā)表于 05-05 08:01

    合成的Vivado HLS的Pragma錯(cuò)誤怎么解決

    模擬過程完成沒有0錯(cuò)誤,但在合成期間顯示錯(cuò)誤。我無法找到錯(cuò)誤。我在合成期間在HLS工具收到這樣的錯(cuò)誤“在E包含的文件:/thaus / fact_L / facoriall
    發(fā)表于 05-21 13:58

    【正點(diǎn)原子FPGA連載】第一章HLS簡(jiǎn)介-領(lǐng)航者ZYNQ之HLS 開發(fā)指南

    處理所需的電路。算法的本質(zhì)定義出數(shù)據(jù)通路和控制元件,設(shè)計(jì)者可以在 HLS 采取專門的步驟來最小化控制元件的復(fù)雜度。調(diào)度和綁定HLS 是由兩個(gè)主要過程組成的:調(diào)度(Scheduling
    發(fā)表于 10-10 16:44

    Vivado HLS設(shè)計(jì)流的相關(guān)資料分享

    多個(gè)HLS解決方案2.實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)中文件包含一個(gè)矩陣乘法器的實(shí)現(xiàn),實(shí)現(xiàn)兩個(gè)矩陣inA和inB相乘得出結(jié)果,并且提供了一個(gè)包含了計(jì)算結(jié)果的testbench文件來與所得結(jié)果進(jìn)行對(duì)比驗(yàn)證。...
    發(fā)表于 11-11 07:09

    FPGA高層次綜合HLS之Vitis HLS知識(shí)庫簡(jiǎn)析

    1、HLS最全知識(shí)庫介紹高層次綜合(High-level Synthesis)簡(jiǎn)稱HLS,指的是將高層次語言描述的邏輯結(jié)構(gòu),自動(dòng)轉(zhuǎn)換成低抽象級(jí)語言描述的電路模型的過程。對(duì)于AMD Xilinx而言
    發(fā)表于 09-07 15:21

    使用Vitis HLS創(chuàng)建屬于自己的IP相關(guān)資料分享

    1、使用Vitis HLS創(chuàng)建屬于自己的IP高層次綜合(High-level Synthesis)簡(jiǎn)稱HLS,指的是將高層次語言描述的邏輯結(jié)構(gòu),自動(dòng)轉(zhuǎn)換成低抽象級(jí)語言描述的電路模型的過程。對(duì)于AMD
    發(fā)表于 09-09 16:45

    HLSRTL無法導(dǎo)出IP核是為什么?

    請(qǐng)教一下,我在HLS里面要將以下程序生成IP核,C Synthesis已經(jīng)做好了,但是在export RTL的時(shí)候一直在運(yùn)行 int sum_single(int A int B
    發(fā)表于 09-28 06:03

    組合邏輯電路的競(jìng)爭(zhēng)冒險(xiǎn)

    組合邏輯電路的競(jìng)爭(zhēng)冒險(xiǎn)   前面分析組合邏輯電路時(shí),都沒有考慮門電路的延遲時(shí)間對(duì)
    發(fā)表于 04-07 10:13 ?1.1w次閱讀
    <b class='flag-5'>組合</b>邏輯<b class='flag-5'>電路</b><b class='flag-5'>中</b>的競(jìng)爭(zhēng)冒險(xiǎn)

    hls協(xié)議是什么?hls協(xié)議詳細(xì)介紹

     摘要:HTTP Live Streaming(縮寫是HLS)是一個(gè)由蘋果公司提出的基于HTTP的流媒體網(wǎng)絡(luò)傳輸協(xié)議。今天主要以HLS協(xié)議為中心講述它的一些原理。
    發(fā)表于 12-10 09:25 ?5.6w次閱讀

    FPGA設(shè)計(jì)HLS 工具應(yīng)用

    在集成電路行業(yè)飛速發(fā)展的今天,縮短產(chǎn)品開發(fā)的周期而又不犧牲驗(yàn)證過程,這不可避免地成為了商業(yè)市場(chǎng)的一個(gè)關(guān)鍵因素。Xilinx Vivado High Level Synthesis (即Vivado
    發(fā)表于 06-04 01:43 ?7325次閱讀
    FPGA設(shè)計(jì)<b class='flag-5'>中</b>的<b class='flag-5'>HLS</b> 工具應(yīng)用

    hls之xfopencv

    vivado本身集成了opencv庫以及hls視頻庫了,opencv不能被綜合導(dǎo)出為RTL電路hls視頻庫的功能有所欠缺,因此引入xfopencv作為既可以被綜合導(dǎo)出為RTL電路,也
    的頭像 發(fā)表于 09-09 15:07 ?1634次閱讀

    組合邏輯電路的危害

    本文介紹開發(fā)組合邏輯電路時(shí)可能發(fā)生的意外開關(guān)事件,稱為危險(xiǎn)。 本文是關(guān)于使用邏輯門進(jìn)行組合電路設(shè)計(jì)和仿真的介紹性系列文章的第二部分。在上一篇文章
    的頭像 發(fā)表于 01-27 14:18 ?1453次閱讀
    <b class='flag-5'>組合</b>邏輯<b class='flag-5'>電路</b><b class='flag-5'>中</b>的危害

    FPGA——HLS簡(jiǎn)介

    是Vitis HLS。在Vivado 2020版本替代原先的Vivado HLS, 功能略有差異。 HLS 的機(jī)理 ? ?簡(jiǎn)單地講,HLS
    的頭像 發(fā)表于 01-15 12:10 ?4399次閱讀