1. 介紹
Video In to AXI4-Stream IP核用于將視頻源(帶有同步信號的時鐘并行視頻數(shù)據(jù),即同步sync或消隱blank信號或者而后者皆有)轉(zhuǎn)換成AXI4-Stream接口形式,實現(xiàn)了接口轉(zhuǎn)換。該IP還可使用VTC核,VTC在視頻輸入和視頻處理之間起橋梁作用。
2. 功能
接收視頻信號的輸入;
AXI-Stream主接口 (輸出);
提供輸出接口給VTC做視頻時序檢測;
支持在視頻與AXI4-Stream時鐘域之間的同步時鐘模式和異步時鐘模式;
可選的FIFO深度:32-8192
輸入數(shù)據(jù)位寬:8-256bit
支持隔行掃描操作.
8,10,12,16bit的組件位寬轉(zhuǎn)換
Xilinx提供的許多視頻處理核之間,都是利用AXI4-Stream視頻流協(xié)議進行視頻的傳輸?shù)?,也就是說其輸入和輸出都是AXI4-Stream接口(Slaver/Master)。
在系統(tǒng)之間,通常使用用于水平和垂直定時的顯式消隱(Blank)和同步信號(sync)以及數(shù)據(jù)有效信號(valid)來傳輸視頻。 數(shù)字視覺接口(DVI)是這種傳輸模式的一個示例。 Video In to AXI4-Stream核將具有顯式同步和定時的傳入視頻轉(zhuǎn)換為AXI4-Stream Video協(xié)議,以與使用該協(xié)議的Xilinx視頻處理IP核互聯(lián)。
Video In to AXI4-Stream核心接受視頻輸入。 對于本文檔,視頻被定義為具有像素時鐘和以下一組定時信號之一的并行視頻數(shù)據(jù):
? Vsync, Hsync, and Data Valid
? Vblank, Hblank, and Data Valid
? Vsync, Hsync, Vbank, Hblank, and Data Valid
同步信號和消隱信號二者需其一即可,二者皆有也沒問題。三組信號任一組信號都能夠?qū)崿F(xiàn)將Video In轉(zhuǎn)換為AXI4-Stream。特定的選擇對于視頻時序控制器(VTC)檢測器很重要,因此在需要生成VTC內(nèi)核時應(yīng)指定一組時序信號。IP核輸出端是主模式下的AXI4-Stream接口。
該接口由并行視頻數(shù)據(jù) tdata,握手信號tvalid和tready以及兩個標志tlast和tuser組成,它們被用于標識視頻流中的某些特定像素。
tlast:指定每行的最后一個有效像素,也稱為行尾(EOL)。
tuser:指定幀的第一個有效像素,稱為幀開始(SOF)。
這兩個標志信號對于標識AXI4流總線上的像素位置是必需的,因為AXI4-Strem形式下已然不再有同步或消隱信號??偩€上只會搬運有效像素。
Video In to AXI4-Stream內(nèi)部結(jié)構(gòu)圖
該IP核旨在與VTC的檢測器功能并行使用。 通過AXI4-Lite接口,視頻時序檢測器檢測輸入進來的視頻的行標準,并確定檢測到的時序值 (例如每一行的有效像素的個數(shù),以及可用于Video In to AXI4-Stream IP核下游的視頻處理IP核的有效行數(shù))。
建議將視頻定時檢測器的“鎖定”狀態(tài)輸出連接到Video In to AXI4-Stream核心的axis_enable輸入,以在視頻輸入丟失或不穩(wěn)定時禁止AXI4-Stream總線。 視頻定時控制器的檢測器鎖定指示符是INTC_if寄存器的第8位。
Video In to AXI4-Stream核處理視頻時鐘域和AXI4-Stream時鐘域之間的異步時鐘邊界。 數(shù)據(jù)寬度可以從8到256之間選擇,具體取決于視頻格式所需的組件數(shù)量,每個組件的位數(shù)和每個時鐘的像素數(shù)量。 支持隔行操作。 有一個輸入FIFO,深度在32到8192個位置之間可選。
3. 具體應(yīng)用
該IP 核可以完成對以下Video數(shù)據(jù)源進行到AXI4-Stream的接口轉(zhuǎn)換:
具體應(yīng)用時,未必一定是視頻數(shù)據(jù),只要是能夠按照視頻標準時序給出數(shù)據(jù)源,那么該IP就能夠完成格式轉(zhuǎn)換,轉(zhuǎn)換成AXI4-Stream。視頻數(shù)據(jù)完成格式轉(zhuǎn)換是由于Xilinx 提供的Video IP的接口都是基于視頻數(shù)據(jù)的AXI4-Stream,即以數(shù)據(jù)流形式向下游高速傳輸。
4. 性能
最大頻率
本節(jié)包含目標設(shè)備的典型時鐘頻率。 可達到的最大時鐘頻率可能會有所不同。 使用其他版本的Xilinx工具以及其他因素,其他工具選項,FPGA器件中的附加邏輯會影響最大可達到的時鐘頻率和所有資源計數(shù)。
Latency
當AXI4-Stream總線上的下游處理模塊可以以 像素速率 或 更快的速率獲 取數(shù)據(jù)時,通過Video In to AXI4-Stream IP核的典型延遲為vid_io_in_clk的6個周期+ aclk的3個周期。
如果下游塊以較低的速率獲取像素,則FIFO會被用于在行和幀的過程中平衡輸入和輸出速率的不匹配。 像素在FIFO中的這種存儲會增加了等待時間,并根據(jù)進出IP核的數(shù)據(jù)流而變化。
Throughput
AXI4-Stream接口上有效像素的平均數(shù)據(jù)速率與視頻總線上有效像素的平均數(shù)據(jù)速率匹配。 但是,輸入和輸出的時鐘速率不需要匹配。 由于AXI4-Stream總線不攜帶消隱像素,因此時鐘速率可以低于視頻時鐘速率,并且仍具有足夠的帶寬以滿足平均速率要求。 需要額外的FIFO深度來消除瞬時速率的失配。 輸入視頻像素時鐘(Fvclk)和AXI4-stream時鐘(Faclk)受整體Fmax限制。
FIFO深度要求
(1)若Faclk =或>Fvclk:
即AXI4-Stream時鐘大于視頻像素時鐘,則僅需要最小緩沖區(qū)大小(32個位置)。這假設(shè)連接到Video In to AXI4-Stream IP核下 游的IP核可以在全視頻速率接收數(shù)據(jù)。例如,下游IP核可以接受幾乎連續(xù)的流中的數(shù)據(jù),其中間隙僅在EOL之后出現(xiàn),并且每行僅在SOF之前連續(xù)出現(xiàn)行間隙。在這種情況下,F(xiàn)IFO在每行的EOL之后清空。
(2)若Faclk
Faclk小于Fvclk 時,需要額外的緩沖。 FIFO必須足夠大,以處理視頻時鐘上像素進入速率的差異,以及使用aclk在AXI4-Stream總線上輸出像素的速率較慢。對于高于線路平均值但低于vclk的aclk頻率,輸入FIFO深度必須為:
FIFO深度最小值= 32 +有效像素* Fvclk / Faclk
如果下游處理核心以比aclk更低的速率接收數(shù)據(jù),則需要額外的緩沖,其數(shù)量應(yīng)足以防止FIFO在幀傳輸期間溢出。
5. 接口
Video In to AXI4-Stream IP核使用行業(yè)標準的 控制和數(shù)據(jù)接口 連接到其他系統(tǒng)組件。 以下各節(jié)描述了內(nèi)核可用的各種接口。 圖2-1說明了視頻輸入到AXI4-Stream核的I / O圖。 該核并不需要所有的時序信號,但是它也會將這些信號傳遞給Xilinx視頻時序控制器(VTC),該控制器根據(jù)其配置可能需要某些信號。 因此,所有定時信號都存在。 對于Video In to AXI4 Stream核,始終需要有效的數(shù)據(jù)。 另外,需要垂直同步或垂直消隱輸入。
Video In to AXI4-Stream Core Top-Level Signaling Interface
Common Interface
信號方向?qū)挾让枋?/p>
aclkInput1AXI4-Stream時鐘
aclkenInput1AXI4-Stream時鐘使能信號,高有效
aresetnInput1AXI4-StreamARESETN。 低電平有效。 與ACLK同步。
axis_enableInput1此輸入應(yīng)連接到VTC檢測器鎖定狀態(tài),并與vid_io_in_clk同步。
1 =使能寫入FIFO
0 =禁止寫入FIFO
fidOutput1AXI4-Stream總線的字段ID。 僅用于隔行視頻:0 =偶數(shù)場,1 =奇數(shù)場。 該位的更改與AXI4-Stream總線上的SOF一致。 應(yīng)該將其連接到下一個具有現(xiàn)場感知能力的下游設(shè)備的field-ID位,否則應(yīng)保持未連接狀態(tài)。 與aclk同步。
vid_io_in_clkInput1本地視頻時鐘。 僅在獨立時鐘模式下可用。
vid_io_in_ceInput1本地視頻時鐘使能
vid_io_in_resetInput1本地視頻時鐘域的復(fù)位信號。 與vid_io_in_clk同步。 僅在獨立時鐘模式下可用。 高有效。
overflowOutput1指示FIFO上溢出的標志。 與vid_io_in_clk同步。 如果發(fā)生溢出,則可能表明所連接的AXI4-Stream從模塊正在產(chǎn)生過多的背壓(back-pressure)。
underflowOutput1指示FIFO下溢出的標志。 在正常操作下絕對不應(yīng)發(fā)生這種情況。 與aclk同步。
ACLK
AXI4-Stream輸出信號與時鐘信號ACLK同步。 AXI4-Stream信號在ACLK的上升沿采樣。 AXI4-Stream輸出信號的變化在ACLK的上升沿之后發(fā)生。
ACLKEN
ACLKEN引腳是與AXI4-Stream接口有關(guān)的高電平有效,同步時鐘使能輸入。 盡管ACLK引腳上有上升沿,但將ACLKEN設(shè)置為低電平(無效)會停止AXI4-Stream總線的運行。 保持內(nèi)部狀態(tài),并保持輸出信號電平,直到再次確認ACLKEN。 當ACLKEN被置為無效時,除ARESETn取代ACLKEN之外,不對核心AXI4-Stream輸入進行采樣。
Video Clock
視頻輸入接口和視頻定時接口必須與vid_io_in_clk同步
Video Clock Enable
輸入信號vid_io_in_ce控制視頻時鐘域中所有寄存器的時鐘使能。 當視頻時鐘域的時鐘頻率高于視頻時序標準時,通常會使用此信號。
Video Reset
僅當內(nèi)核配置為獨立時鐘模式時,視頻復(fù)位信號vid_io_in_reset信號才可用。 此高電平有效信號與vid_io_in_clk同步,用于重置橋的輸入端。 斷言此復(fù)位即vid_io_in_reset或aresetn將導(dǎo)致內(nèi)部FIFO復(fù)位。
Video Timing Interface
信號方向?qū)挾让枋?/p>
vtd_vsyncOut1垂直同步視頻定時信號(場同步)。
vtd_hsyncOut1水平同步視頻定時信號(行同步)。
vtd_vblankOut1場消隱
vtd_hblankOut1行消隱
vtd_active_videoOut1Active video flag.
1 = active video, 0 = blanked video
vtd_field_idOut1VTC字段ID。 0 =偶數(shù)場,1 =奇數(shù)場。
AXI4-Stream Interface
m_axis_video_tvalidOutput1AXI4-Stream TVALID。 有效視頻數(shù)據(jù)啟用
m_axis_video_tdataOutput1AXI4-Stream TDATA. 視頻數(shù)據(jù)
m_axis_video_tuserOutput1AXI4-Stream TUSER. 幀開始
m_axis_video_tlastOutput1AXI4-Stream TLAST. 行結(jié)束
m_axis_video_treadyInput1AXI4-Stream TREADY. 從模塊準備好
Video Data
AXI4-Stream接口規(guī)范將TDATA寬度限制為8位的整數(shù)倍。 因此,如果視頻數(shù)據(jù)寬度不是8的整數(shù)倍,則在連接到m_axis_video_tdata之前,必須在MSB上用零填充數(shù)據(jù)以形成N * 8位寬的向量。 填充不會影響IP核的大小。
類似地,Video In to AXI4-Streamd的輸出信號m_axis_video_tdata的數(shù)據(jù)將 打包并根據(jù)需要填充為8位的倍數(shù) 。 圖2-2給出了一個示例,該示例針對每個時鐘一個像素的12位RGB數(shù)據(jù)。
對于每個時鐘多個像素,根據(jù)需要將像素打包成8位的倍數(shù)。 圖<新圖>顯示了每個時鐘三個像素,每個分量RGB數(shù)據(jù)12位的示例。 盡管這是預(yù)期的打包,但內(nèi)核本身不會解析數(shù)據(jù)。 換句話說,AXI4-Stream輸出將是視頻輸入,填充為8位的倍數(shù)。
該 橋接器還可以針對寬度的任何組合(包括8位,10位,12位和16位)執(zhí)行從輸入到輸出的組件寬度轉(zhuǎn)換。 圖2-4所示的示例說明了將分量寬度從AXI4-Stream輸入上的12位微調(diào)為Video輸出上的8位。 修剪每個組件的四個LSB,并將其余數(shù)據(jù)打包到輸出視頻總線上。
圖2-5中的示例說明了將組件寬度從AXI4-Stream上的8位填充到Video輸出上的12位的情況。 每個組件的輸出上的四個LSB填充為零,高MSB從AXI4-Stream輸入映射到總線。
READY/VALID Handshake
只要READY,VALID,ACLKEN和ARESETn 在ACLK的上升沿為高電平,就會發(fā)生有效的傳輸。 在有效傳輸期間,DATA僅傳輸有效視頻數(shù)據(jù)。 消隱時段和輔助數(shù)據(jù)包不會通過AXI4-Stream Video協(xié)議進行傳輸。
Driving m_axis_video_tready
m_axis_video_tready信號可以在Video in to AXI4-StreamIP斷言m_axis_video_tvalid的周期之前,期間或之后斷言(即Ready相對于tvalid信號沒有限制)。 m_axis_video_tready的斷言可能取決于m_axis_video_tvalid的值。 能夠立即接受通過m_axis_video_tvalid限定的數(shù)據(jù)的從站應(yīng)預(yù)先聲明其m_axis_video_tready信號,直到接收到數(shù)據(jù)為止。 或者,可以注冊m_axis_video_tready并在VALID聲明后驅(qū)動周期。 建議AXI4-Stream從站獨立驅(qū)動READY,或預(yù)先聲明READY以最大程度地減少延遲。
SOF - m_axis_video_tuser
通過AXI4-Stream 接口中的tuser信號物理傳輸?shù)腟OF信號,標記了視頻幀的第一個像素。 SOF脈沖為1個有效事務(wù)寬度,并且必須與幀的第一個像素重合。 SOF用作幀同步信號,允許下游IP核重新初始化并檢測幀的第一個像素。 只要tvalid沒有置位,就可以在第一個像素值出現(xiàn)在tdata之前,斷言SOF信號的任意數(shù)量的aclk周期。
EOL Signal - m_axis_video_tlast
通過AXI4-Stream接口中的 tlast信號 物理傳輸?shù)腅OL信號,來標記一行的最后一個像素。 EOL脈沖為1個有效事務(wù)寬度,并且必須與掃描線的最后一個像素重合,如圖2-6所示。
6. IP的使用
General Design Guidelines
Video In to AXI4 Stream IP核的video輸入端口應(yīng)連接到輸入視頻源,比如DVI接口芯片可產(chǎn)生并行視頻數(shù)據(jù)和定時信號。該IP核并并不需要所有的時序信號,但是,Video In to AXI4 Stream IP核將這些信號傳遞給Xilinx視頻時序控制器VTC,根據(jù)其配置,Xilinx視頻時序控制器可能需要某些時序信號。使用VTC檢測器所需的一組定時信號。對于Video In to AXI4 StreamIP核,始終需要數(shù)據(jù)有效信號。另外,需要垂直同步或垂直消隱輸入。
Video In to AXI4 Stream IP核的主要輸出是主AXI4-Stream總線,該總線連接到下游視頻處理模塊,如圖3-1所示。主接口和從接口共享一個公共時鐘,復(fù)位和時鐘使能。
如圖3-1所示,Video In to AXI4-Stream IP核通常與Video Timing Controller結(jié)合使用,后者可檢測下游處理模塊使用的視頻時序參數(shù)。
時鐘
Video In to AXI4 Stream IP核使用兩種時鐘模式,即通用(同步)或獨立(異步)。當網(wǎng)橋的本地和AXI4-Stream端從公共同步時鐘運行時,將使用公共時鐘模式。通用時鐘模式禁用了內(nèi)部FIFO中的時鐘域交叉邏輯,因此節(jié)省了資源。當橋接器要求橋接器的本機端和AXI4-Stream端具有異步和獨立時鐘時,將使用獨立時鐘模式。
視頻輸入時鐘與輸入上使用的視頻線標準相對應(yīng)。它是視頻線路標準的一部分,由Video In至AXI4-Stream內(nèi)核以及用于檢測視頻時序的相應(yīng)Video Timing Controller內(nèi)核使用。
AXI4-Stream時鐘(aclk)是AXI4-Stream總線的一部分。為了最大程度地減少緩沖要求,該時鐘的頻率應(yīng)等于或高于視頻輸入時鐘的頻率。該時鐘可能比視頻輸入時鐘慢,在這種情況下,需要額外的緩沖來存儲像素,以便可以以視頻時鐘的突發(fā)速率輸入行。在“緩沖區(qū)要求”部分中對此進行了討論。至少,聲壓頻率必須高于平均像素速率。
7. IP配置
?Component Name:組件名稱用作為模塊生成的輸出文件的基本名稱。 名稱必須以字母開頭,并且必須由字符組成:a到z,0到9和“ _”。
?Pixels Per Clock :指定要并行輸出的像素數(shù)。 此參數(shù)影響輸入和輸出的數(shù)據(jù)總線寬度。 每個時鐘的像素選項為1、2或4。
?Input Component Width: 指定輸入視頻數(shù)據(jù)總線上的視頻位寬度。
?Output Component Width:指定輸出AXI4-Stream TDATA總線上的視頻分量位寬度。
?Clock Mode :時鐘模式用于指定AXI4-Stream輸出和視頻輸入信號是使用公共時鐘還是獨立時鐘進行時鐘控制。
Video Format : 指定使用的視頻格式。 選擇不同的格式將確定使用的組件數(shù)量。,比如RGB數(shù)據(jù)格式一個像素將需要3個。
組件數(shù)量(1-4)*Pixels per clock*組件寬度=視頻數(shù)據(jù)總線的寬度v_data。
依次將該寬度四舍五入為最接近的8倍,以確定AXI4-Stream數(shù)據(jù)總線的寬度m_axis_video_tdata。 例如,如果組件寬度為14(像素寬度),每個時鐘像素為2,視頻格式為RGB(3個組件),則vid_data為84位寬,m_axis_video_tdata為88位。 使用IP Integrator時,此參數(shù)是根據(jù)連接到從屬AXI-Stream視頻接口的視頻IP內(nèi)核的視頻格式自動計算的。
?FIFO深度:指定輸入FIFO中的位置數(shù)。 FIFO深度的選項為32、1024、2048、4096和8192。
-
接口
+關(guān)注
關(guān)注
33文章
8897瀏覽量
153038 -
Xilinx
+關(guān)注
關(guān)注
73文章
2179瀏覽量
124007 -
fifo
+關(guān)注
關(guān)注
3文章
397瀏覽量
44523 -
Video
+關(guān)注
關(guān)注
0文章
196瀏覽量
45675 -
IP核
+關(guān)注
關(guān)注
4文章
337瀏覽量
50322
原文標題:Video_In_to_AXI4-stream
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Video Frame Buffer IP初學(xué)者入門案例分析

有人有經(jīng)驗AXI4-Stream到視頻輸出IP核嗎?
請問我對AXI4-Stream FIFO的理解不正確嗎?
請問AXI4-Stream到Video核心的技巧有什么?
如何將AXI4-Stream與CH7301接口?
axi4-stream互連問題如何解決
axi4-stream combiner問題的解決辦法?
AXI-stream數(shù)據(jù)傳輸過程
Xilinx的LogiCORE IP Video In to AXI4

AXI STREAM FIFO如何設(shè)置雙時鐘

評論