女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

HLS中組合電路對設計的影響

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

組合電路在 HLS 中的重要性

該項目通過一個示例演示了 HLS 中組合電路對設計的影響。

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

在 HLS 中描述組合任務非常重要,因為它直接影響整個系統的性能。這里我舉一個簡單的例子來解釋一下這個問題。

介紹

高級綜合工具將算法轉換為等效的 RTL 描述。該描述代表邏輯電路,可以通過ASICFPGA技術來綜合。

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

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

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

圖1

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

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

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

圖2

圖2顯示了由組合電路和一組保存電路狀態的存儲單元組成的時序電路的結構。存儲器單元可以是觸發器、BRAM或DDR存儲器的形式。

組合部分接收兩組數據:主輸入和狀態。然后它生成兩組輸出:主要輸出和下一個狀態。系統中的其他模塊使用主輸出,而下一個狀態數據修改存儲單元并定義新的電路狀態。

動機

所有組合電路都需要一個時間間隔,以便在其輸入發生任何變化后產生穩定的輸出。這個時間被稱為傳播延遲。組合電路中從輸入到輸出的不同路徑可能具有各種延遲。最長路徑也稱為關鍵路徑,被定義為設計傳播延遲。

在時序電路中,時鐘周期對設計性能有直接影響。圖 2 中組合部分的傳播延遲決定了最小時鐘周期。因此,它的好壞直接影響到整個系統的性能。

時序電路通常需要幾個時鐘周期來完成其相關任務。所需時鐘周期的最大數量稱為設計延遲。組合部分也對相關時序電路的延遲有直接影響。

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

組合電路的影響

在這里,將通過一個例子來解釋正確的 C/C++ 描述組合設計如何能夠加快實現速度。

假設我們要在如圖 3 所示的 Basys3 FPGA 評估板上可用的四個七段上顯示數字的四位十進制數字。

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

圖3

第一步是提取四位十進制數字,然后找到每個數字對應的七段代碼,并將代碼發送到板上的段選擇上。這里我只解釋第一個任務,即提取四位小數。

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

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

如果我們執行高級綜合過程來生成等效的 RTL 設計,則圖 5 顯示了 Basys3 板的報告。Vivado-HLS 綜合過程利用參數化的 Xilinx LogiCORE 除法器內核來實現模運算。該代碼具有流水線結構。

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

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

圖5

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

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

現在,如果我們綜合此代碼,圖 7 將顯示相應的報告。

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

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

圖7

比較這兩種實現方式:圖 8 顯示了比較結果。在該圖中,“Solution 1”對應于使用模運算符的第一種方案,“Solution 2”代表第二種方案。

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

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

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

結論

設計高效的組合電路是在 HLS 中開發算法或系統控制器的第一步。多種優化技術和編碼風格可用于描述復雜算法的組合部分。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 邏輯電路
    +關注

    關注

    13

    文章

    502

    瀏覽量

    43174
  • asic
    +關注

    關注

    34

    文章

    1242

    瀏覽量

    121981
  • RTL
    RTL
    +關注

    關注

    1

    文章

    388

    瀏覽量

    60663
  • 組合電路
    +關注

    關注

    0

    文章

    11

    瀏覽量

    6766
  • HLS
    HLS
    +關注

    關注

    1

    文章

    131

    瀏覽量

    24641

原文標題:組合電路在 HLS 中的重要性

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    探索Vivado HLS設計流,Vivado HLS高層次綜合設計

    設計來滿足各種約束 用不用的指令來探索多個HLS解決方案 2.實驗內容 實驗中文件包含一個矩陣乘法器的實現,實現兩個矩陣inA和inB相乘得出結果,并且提供了一個包含了計算結果的testbench
    的頭像 發表于 12-21 16:27 ?3933次閱讀

    如何在HLS 14.3編寫pow功能?

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

    如何使用Vivado HLS生成了一個IP

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

    合成的Vivado HLS的Pragma錯誤怎么解決

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

    【正點原子FPGA連載】第一章HLS簡介-領航者ZYNQ之HLS 開發指南

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

    Vivado HLS設計流的相關資料分享

    多個HLS解決方案2.實驗內容實驗中文件包含一個矩陣乘法器的實現,實現兩個矩陣inA和inB相乘得出結果,并且提供了一個包含了計算結果的testbench文件來與所得結果進行對比驗證。...
    發表于 11-11 07:09

    FPGA高層次綜合HLS之Vitis HLS知識庫簡析

    1、HLS最全知識庫介紹高層次綜合(High-level Synthesis)簡稱HLS,指的是將高層次語言描述的邏輯結構,自動轉換成低抽象級語言描述的電路模型的過程。對于AMD Xilinx而言
    發表于 09-07 15:21

    使用Vitis HLS創建屬于自己的IP相關資料分享

    1、使用Vitis HLS創建屬于自己的IP高層次綜合(High-level Synthesis)簡稱HLS,指的是將高層次語言描述的邏輯結構,自動轉換成低抽象級語言描述的電路模型的過程。對于AMD
    發表于 09-09 16:45

    HLSRTL無法導出IP核是為什么?

    請教一下,我在HLS里面要將以下程序生成IP核,C Synthesis已經做好了,但是在export RTL的時候一直在運行 int sum_single(int A int B
    發表于 09-28 06:03

    組合邏輯電路的競爭冒險

    組合邏輯電路的競爭冒險   前面分析組合邏輯電路時,都沒有考慮門電路的延遲時間對
    發表于 04-07 10:13 ?1.2w次閱讀
    <b class='flag-5'>組合</b>邏輯<b class='flag-5'>電路</b><b class='flag-5'>中</b>的競爭冒險

    hls協議是什么?hls協議詳細介紹

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

    FPGA設計HLS 工具應用

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

    hls之xfopencv

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

    組合邏輯電路的危害

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

    FPGA——HLS簡介

    是Vitis HLS。在Vivado 2020版本替代原先的Vivado HLS, 功能略有差異。 HLS 的機理 ? ?簡單地講,HLS
    的頭像 發表于 01-15 12:10 ?5732次閱讀