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

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

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

如何理解HLS Block-level輸入輸出信號(hào)之間的時(shí)序關(guān)系

FPGA技術(shù)驛站 ? 來(lái)源:FPGA技術(shù)驛站 ? 作者:FPGA技術(shù)驛站 ? 2022-11-11 11:54 ? 次閱讀

默認(rèn)情況下,VitisHLS會(huì)對(duì)待綜合的C函數(shù)使用ap_ctrl_hs接口,這其實(shí)是一種握手方式。在這個(gè)接口中,我們會(huì)看到ap_start、ap_idle、ap_ready和ap_done等信號(hào)(這些信號(hào)被稱(chēng)為Block-level輸入/輸出信號(hào))。其中ap_start是輸入信號(hào),而其余三個(gè)信號(hào)是輸出信號(hào)。那么我們?nèi)绾胃鶕?jù)這些信號(hào)管理輸入數(shù)據(jù)呢?這就要理解這些信號(hào)之間的時(shí)序關(guān)系。為便于說(shuō)明,我們以一個(gè)簡(jiǎn)單的算法為例。

如下圖所示代碼片段。函數(shù)array_mult有3個(gè)形參。其中a1和a2是長(zhǎng)度為N的一維數(shù)組,兩者對(duì)應(yīng)元素相減再平方即為另一形參prod。顯然,prod也是長(zhǎng)度為N的一維數(shù)組。

4920de9e-6173-11ed-8abf-dac502259ad0.png

為了觀察這些Block-level信號(hào)之間的時(shí)序關(guān)系,我們?cè)?a target="_blank">仿真時(shí)將多次調(diào)用函數(shù)array_mult。為此,在描述測(cè)試激勵(lì)時(shí),輸入激勵(lì)以?xún)蓚€(gè)二維數(shù)組形式給出,這兩個(gè)二維數(shù)組對(duì)應(yīng)的每一列作為array_mult的輸入。假定這兩個(gè)二維數(shù)組是8行4列的數(shù)組,C/RTLco-sim仿真結(jié)果波形如下圖所示。

494622c6-6173-11ed-8abf-dac502259ad0.png

標(biāo)記1為數(shù)組a2對(duì)應(yīng)存儲(chǔ)單元的讀地址a2_address,共8個(gè)數(shù)據(jù);標(biāo)記2顯示了讀書(shū)的數(shù)據(jù)數(shù)值a2_q0,可以看到兩者相差一個(gè)時(shí)鐘周期。那么什么時(shí)候a2_address可以發(fā)生變化呢?我們從標(biāo)記A可以看到,在標(biāo)記A左邊,ap_idle為高電平,表明該模塊處于空閑狀態(tài),標(biāo)記A之后,ap_start為高電平,同時(shí)ap_idle變?yōu)榈碗娖?。一旦ap_start為高,a2_ce0即為高,表明可以開(kāi)始讀取a2對(duì)應(yīng)的數(shù)據(jù)。當(dāng)?shù)谝粠?個(gè)數(shù)據(jù)讀取完畢,即讀取到第一幀最后一個(gè)數(shù)據(jù)時(shí),ap_ready為由低電平變?yōu)楦唠娖角页掷m(xù)一個(gè)時(shí)鐘周期,表明第一幀輸入數(shù)據(jù)已讀取完畢,如圖中標(biāo)記B。緊接著ap_start也由高電平變?yōu)榈碗娖?。?dāng)?shù)谝粠?jì)算完畢,輸出對(duì)應(yīng)的8個(gè)數(shù)據(jù)后,ap_done由低電平變?yōu)楦唠娖讲⒊掷m(xù)一個(gè)時(shí)鐘周期,如圖中標(biāo)記C。當(dāng)ap_done由高變低時(shí),ap_idle則由低變高,表明可以再次啟動(dòng)該模塊。因此,我們可以看到標(biāo)記D處ap_start為高,之后a2_ce0由低變高開(kāi)始讀取第二幀輸入數(shù)據(jù)。讀取到第二幀輸入數(shù)據(jù)的最后一個(gè)數(shù)據(jù)后,ap_ready由低電平變?yōu)楦唠娖健?/p>

由此我們可以得出如下結(jié)論:

ap_start受ap_idle影響,只有當(dāng)ap_idle為高時(shí),才可以啟動(dòng)ap_start,將其由低電平變?yōu)楦唠娖?

ap_ready為高電平時(shí),表明已完成一幀的輸入數(shù)據(jù)讀取任務(wù);

ap_done為高電平時(shí),表明已完成一幀的輸出數(shù)據(jù)寫(xiě)入任務(wù);

ap_done持續(xù)一個(gè)時(shí)鐘周期由高變低后,ap_idle會(huì)由低變高。

審核編輯:湯梓紅

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

    關(guān)注

    3

    文章

    4284

    瀏覽量

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

    關(guān)注

    1

    文章

    128

    瀏覽量

    23993

原文標(biāo)題:如何理解HLS Block-level輸入輸出信號(hào)之間的時(shí)序關(guān)系

文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TLV320AIC3106有10個(gè)模擬輸入和7個(gè)模擬輸出,這些模擬輸入輸出如何理解

    請(qǐng)問(wèn),官網(wǎng)上說(shuō)TLV320AIC3106有10個(gè)模擬輸入和7個(gè)模擬輸出,這些模擬輸入輸出如何理解?輸入
    發(fā)表于 10-25 07:35

    請(qǐng)問(wèn)倍頻器的輸入信號(hào)輸出信號(hào)的相位關(guān)系

    如題:1. 倍頻器的輸入信號(hào)輸出信號(hào)的相位關(guān)系能否用相應(yīng)的公式來(lái)進(jìn)行表征?2. 鎖相環(huán)的參考和輸出
    發(fā)表于 10-12 09:10

    視頻打印機(jī)的輸入輸出

    視頻打印機(jī)的輸入輸出            輸入輸出指的是產(chǎn)品輸入輸出視頻信號(hào)的端口,比較常見(jiàn)
    發(fā)表于 12-31 10:38 ?1473次閱讀

    數(shù)字信號(hào)輸入輸出接口電路

    數(shù)字信號(hào)輸入輸出接口電路【更齊全】
    發(fā)表于 12-16 21:32 ?0次下載

    HLS系列 – High LevelSynthesis(HLS) 的端口綜合1

    → clock_enable) Block-Level Interface端口: 顧名思義,Block端口的作用就是用來(lái)控制Block的操作。它在c參數(shù)中沒(méi)有直接的對(duì)應(yīng),但是它對(duì)應(yīng)了c函數(shù)的調(diào)用/返回過(guò)程。默認(rèn)Bloc
    發(fā)表于 02-08 03:29 ?828次閱讀
    <b class='flag-5'>HLS</b>系列 – High LevelSynthesis(<b class='flag-5'>HLS</b>) 的端口綜合1

    HLS系列–High Level Synthesis(HLS)的端口綜合6

    在上一章,介紹了Block Level Interface。 本章里著重介紹下Port Level Interface的2中子類(lèi)別:No I/O Protocol和Wire handshakes
    發(fā)表于 02-08 03:45 ?672次閱讀
    <b class='flag-5'>HLS</b>系列–High <b class='flag-5'>Level</b> Synthesis(<b class='flag-5'>HLS</b>)的端口綜合6

    一文詳解FPGA編程技巧輸入輸出偏移約束

    偏移約束(Offset Constraint)用來(lái)定義一個(gè)外部時(shí)鐘引腳(Pad)和數(shù)據(jù)輸入輸出引腳之間時(shí)序關(guān)系,這種時(shí)序
    的頭像 發(fā)表于 07-14 07:14 ?5437次閱讀
    一文詳解FPGA編程技巧<b class='flag-5'>輸入輸出</b>偏移約束

    什么是輸入輸出模塊_輸入輸出模塊有什么作用

    輸入輸出模塊也稱(chēng)為控制模塊,在有控制要求時(shí)可以輸出信號(hào),或者提供一個(gè)開(kāi)關(guān)量信號(hào),使被控設(shè)備動(dòng)作,同時(shí)可以接收設(shè)備的反饋信號(hào),以向主機(jī)報(bào)告,是
    發(fā)表于 05-21 10:28 ?11.9w次閱讀

    GPIO通用輸入輸出

    GPIO通用輸入輸出一、GPIO的功能概述用途:GPIO是通用輸入輸出(General Purpose I/O)的簡(jiǎn)稱(chēng),主要用于工業(yè)現(xiàn)場(chǎng)需要用到數(shù)字量輸入/輸出的場(chǎng)合。例如:
    發(fā)表于 12-20 18:58 ?6次下載
    GPIO通用<b class='flag-5'>輸入輸出</b>

    創(chuàng)建輸入輸出接口時(shí)序約束的竅門(mén)

    輸入輸出接口的約束,整理出了一套非常實(shí)用的InputDelay/Output Delay Constraints Language Templates。
    的頭像 發(fā)表于 08-02 09:54 ?2452次閱讀
    創(chuàng)建<b class='flag-5'>輸入輸出</b>接口<b class='flag-5'>時(shí)序</b>約束的竅門(mén)

    boost升壓電路輸入輸出關(guān)系

    boost升壓電路輸入輸出關(guān)系 升壓電路是一種常用的電路,它可以將電壓從一個(gè)較低的水平升高到一個(gè)較高的水平,以滿足不同的應(yīng)用需求。升壓電路的輸入輸出之間有很重要的
    的頭像 發(fā)表于 08-27 15:01 ?3098次閱讀

    plc帶模擬量輸入輸出和不帶模擬量輸入輸出有什么區(qū)別啊?

    的PLC類(lèi)型,它們之間有很大的差異。 PLC帶模擬量輸入輸出與PLC不帶模擬量輸入輸出的區(qū)別在于它們可以控制和處理的不同信號(hào)類(lèi)型。模擬量輸入輸出
    的頭像 發(fā)表于 10-17 16:44 ?1561次閱讀

    輸入輸出電壓差與效率的關(guān)系

    在開(kāi)關(guān)穩(wěn)壓電源中,輸入電壓的范圍是預(yù)知的,輸出電壓也是知道的,但是輸入輸出的電壓差和轉(zhuǎn)換效率的關(guān)系很多人 不清楚,有經(jīng)驗(yàn)的工程師就會(huì)根據(jù)公式去推導(dǎo)出來(lái)
    發(fā)表于 01-05 15:12 ?798次閱讀
    <b class='flag-5'>輸入輸出</b>電壓差與效率的<b class='flag-5'>關(guān)系</b>

    鎖相環(huán)的輸入輸出相位一致嗎?

    鎖相環(huán)是保證相位一致,還是相位差一致?鎖相環(huán)的輸入輸出相位一致嗎? 鎖相環(huán)(PLL)是一種回路控制系統(tǒng),用于保持輸出信號(hào)的相位與參考信號(hào)的相位之間
    的頭像 發(fā)表于 01-31 15:45 ?957次閱讀

    誤差放大器的輸入輸出關(guān)系

    誤差放大器(Error Amplifier)在電子測(cè)量和控制系統(tǒng)中扮演著至關(guān)重要的角色,其輸入輸出關(guān)系對(duì)于理解和設(shè)計(jì)這些系統(tǒng)至關(guān)重要。以下是對(duì)誤差放大器輸入輸出關(guān)系的詳細(xì)解析,包括其工作原理、
    的頭像 發(fā)表于 09-11 15:32 ?795次閱讀