<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于Virtex-5的音視頻監視系統設計

基于Virtex-5的音視頻監視系統設計

作者: 時(shí)間:2010-12-18 來(lái)源:網(wǎng)絡(luò ) 收藏

  引言

  本文探討在 中實(shí)現設計的一些難題,然后用一個(gè)項目作為示范來(lái)詳解充分利用其功能集的技法。設計過(guò)程包括幾個(gè)步驟,從針對應用選擇適合的開(kāi)始。為便于本文敘述,我們假定IP模塊已經(jīng)過(guò)匯編,并且已經(jīng)就緒備用或已經(jīng)用CORE Generator生成。

  針對應用選擇適合的器件

  多數采集器件都支持單信道,以Y/Cr/Cb數據格式生成源同步數字信號。DSP雖然有能力采集數字信號,也能夠執行數字信號處理任務(wù),但通常卻僅支持少數幾條信道。本設計選擇了,事實(shí)證明這對于多信道輸入任務(wù)和信號處理任務(wù)都是良好的替代方案。

  圖 1所示為典型的安全視頻監視系統,其中有一個(gè)3G/SD/HD/SDI視頻接口。在此設計中,攝像頭將3G—SDI格式的信息傳送到電路板,后者繼而收集數據,并且以145.5MHz的最高時(shí)鐘頻率將其轉換成10位(Y/Cr/Cb格式)的源同步視頻數據(10/20位的接口)。電路板以 96kHz的最高時(shí)鐘頻率處理源同步音頻數據。

典型的安全視頻監視系統

  這里,存儲器的容量是512Mb,寬度是32位,所以必須支持高達2Gb的擴展能力。

  對于這個(gè)設計來(lái)說(shuō),FPGA必須支持多達十條數字源同步輸入信道(20位源同步Y/Cr/Cb數據格式),并且必須可按照SD/HD數據格式配置。其他要求還包括音視頻信號處理和可選壓縮算法、帶有高級DMA引擎的中央處理單元和一個(gè)用來(lái)連接VGA顯示器或標準型電視機的音視頻輸出端口等。

  要滿(mǎn)足這些技術(shù)條件,在實(shí)現設計時(shí)必須考慮幾個(gè)因素。其中的主要因素是時(shí)鐘要求分析、初始布局規劃、核生成和IP集成、約束定義以及布局布線(xiàn)后的分析和校正。但首先要決定FPGA的選擇。

  FPGA的選擇

  我們根據幾個(gè)因素進(jìn)行選擇。器件需要滿(mǎn)足預計的I/O要求,并且必須具有相應數量的邏輯單元、適宜的Block RAM尺寸以及一定數量的時(shí)鐘緩沖器和時(shí)鐘管理器件,如鎖相環(huán)(PLL)、數字時(shí)鐘管理(DcM)模塊和乘累加模塊?;谶@些需求,我們選擇了 XCVSX95T-FF1136。

  時(shí)鐘要求分析

  選擇FPGA之后,我們開(kāi)始設計過(guò)程,即分析時(shí)鐘控制要求,然后將信號映射到I/O組或I/O引腳。

  對于時(shí)鐘要求分析,重要的是考慮以下幾個(gè)因素:FPGA是否具有足夠的時(shí)鐘功能I/O線(xiàn)和全局時(shí)鐘I/O線(xiàn)?是否有足夠的PLL、DCM和全局時(shí)鐘緩沖器?全局時(shí)鐘I/O緩沖器是否支持所要求的最高頻率?

  本設計的時(shí)鐘控制要求包括:一個(gè)以150MHz-200MHz頻率運行的全局系統時(shí)鐘,具有若干PLL供所有內部邏輯用來(lái)進(jìn)行處理;一個(gè)以 250MHz頻率運行的全局時(shí)鐘,具有PLL/DCM的PCI Express鏈接;一個(gè)以250MHz頻率運行的全局時(shí)鐘緩沖器(帶有PLL和DCM)用于以太網(wǎng)MAC;以及一個(gè)200MHz的時(shí)鐘(由 PLL/DCM生成),用于I/O模塊中的逐位去歪斜等。

  我們總共需要4~6個(gè)全局時(shí)鐘緩沖器和16個(gè)局部時(shí)鐘緩沖器。FPGA XCVSX95T-FF1136提供每組20個(gè)全局時(shí)鐘輸入引腳和4個(gè)時(shí)鐘功能I/O。也可將I/O組的時(shí)鐘功能引腳直接連接到區域緩沖器或I/O緩沖器,并且將其用于特定區域或相鄰區域。另外,各GTP/MGT還有一個(gè)參考時(shí)鐘輸入引腳。

  初始布局規劃

  初始布局計劃是設計的關(guān)鍵階段,因為此時(shí)所作的決定將確定最終設計是否能滿(mǎn)足時(shí)序。其中組選擇和引腳分配是布局規劃的重要步驟。如何進(jìn)行這兩個(gè)步驟取決于FPGA周?chē)渌M件的布局。

  Virtex—5 FPGA共有18個(gè)I/O組,可以將各種輸入/輸出對映射到這些I/O組。有幾個(gè)I/O組支持20對輸入/輸出或10個(gè)全局時(shí)鐘。其他I/O組則大多支持40對輸入/輸出,每對輸入/輸出上有4個(gè)輸入時(shí)鐘功能引腳和8個(gè)輸出時(shí)鐘功能引腳。

  同時(shí),上下兩牛個(gè)FPGA包括三個(gè)時(shí)鐘控制模塊(CMT),即一個(gè)PLL和兩個(gè)DCM。對于需要上下兩半個(gè)器件中的PLL的所有全局時(shí)鐘信號,我們必須確保予以妥善映射,以使設計具有從全局時(shí)鐘輸入緩沖器到PLL的直接連接。然后我們使用剩下的14個(gè)I/O組,這些組支持40條I/O線(xiàn),是單端/差分模式。每個(gè)組由4個(gè)單端時(shí)鐘功能引腳和8個(gè)差分時(shí)鐘功能引腳組成。接下來(lái)可以將時(shí)鐘功能引腳映射或連接到區域時(shí)鐘緩沖器或I/O時(shí)鐘緩沖器。

  一般情況下,可以使用這些時(shí)鐘功能引腳和區域緩沖器來(lái)映射源同步時(shí)鐘輸入。區域緩沖器具有較低歪斜度,可以訪(fǎng)問(wèn)三個(gè)區域(一個(gè)區域緩沖器所在的區域,以及其上和其下各一個(gè)區域)。但對于源同步數據的組選擇,我們傾向于只使用一個(gè)I/O組。如果需要其他IIO,則最好將I/O組用于已事先映射到相鄰組的數據信號。

  設計的初始布局規劃按照幾個(gè)步驟進(jìn)行。首先將系統時(shí)鐘放在上半部,然后將自動(dòng)采集(可選)時(shí)鐘放在下半部。我們鎖定了每半部分的CMT,以滿(mǎn)足 I/O組的3/4要求。這樣映射能確保每半部分都留有兩個(gè)PLL/DCM(CMT)可用于PCI Express和千兆位以太網(wǎng)的MAC(SGMII)功能。

  再把同步數據映射到含有區域時(shí)鐘的組,所以把10個(gè)音視頻信道輸入映射到剩下的I/O組。每條視頻信道由20條數據線(xiàn)、3個(gè)控制信號和3個(gè)視頻時(shí)鐘輸入組成。同時(shí),每條音頻信道由4個(gè)數據信號、3個(gè)控制信號和1個(gè)音頻時(shí)鐘信號組成。這樣就滿(mǎn)足了32個(gè)信號至少使用兩個(gè)時(shí)鐘功能引腳的要求。

  對于本設計,10個(gè)音視頻信道使用10個(gè)I/O組。我們將視頻時(shí)鐘和音頻時(shí)鐘映射到了時(shí)鐘功能引腳,以確保有效使用區域時(shí)鐘緩沖器和I/O時(shí)鐘緩沖器。根據PCB的要求,我們?yōu)橐粢曨l信道選擇了第5、 6、 13、 17、 18、 19、 20、 22和25組。

  對于DDR存儲器,設計支持1條32位的數據總線(xiàn)、14條地址線(xiàn)和若干條控制線(xiàn)。我們需要85~90個(gè)信號來(lái)映射DDR存儲器接口。根據PCB的布局,我們使用了I/O組11、23和15來(lái)映射DDR的全部I/0信號。由于 DDR存儲器按照系統時(shí)鐘工作,所以我們選擇將DDR生成的讀數據DQS信號映射到具有時(shí)鐘功能的I/O線(xiàn)。

  核生成與IP集成

  用CORE Generator生成核并且集成知識產(chǎn)權模塊的任務(wù)可能很棘手。

  Virtex—5支持可以用CORE Generator工具生成的時(shí)鐘控制模塊的各種配置。其中包括若干濾波器時(shí)鐘抖動(dòng)PLL、一個(gè)具有濾波器時(shí)鐘抖動(dòng)功能的PLL-DCM對、一個(gè)具有輸出雙倍數據速率(ODDR)的PLL-DCM對或DCM、一個(gè)標準型相移時(shí)鐘DCM和若干動(dòng)態(tài)時(shí)鐘切換PLL。

  要生成PLL,首先需要了解輸入是單端的還是差分的(示例設計中都是單端的)。然后,必須確定時(shí)鐘抖動(dòng)是否適宜(在我們的示例中是120皮秒),以及是否使用了全局緩沖器來(lái)緩沖所有輸出。

  每個(gè)PLL最多可生成6個(gè)不同頻率的時(shí)鐘。在我們的示例中,設計需要4個(gè)200MHz的系統時(shí)鐘和1個(gè)19.048MHz或39.096MHz的音頻采集時(shí)鐘。

  為了使用ODDR觸發(fā)器在源同步輸出中驅動(dòng)時(shí)鐘,我們實(shí)現了一個(gè)DCM,用于驅動(dòng)ODDR觸發(fā)器來(lái)實(shí)現隨路時(shí)鐘控制。此DCM與我們用來(lái)進(jìn)行內部時(shí)鐘控制的DCM并行運行。

  我們用CORE Generator生成了ASYCNFIFO或BlockRAM,并且用嵌入式微處理器核上的中斷邏輯來(lái)支持ECC,以完成數據錯誤檢測。

  在生成PCIExpress核時(shí),我們必須確保參考時(shí)鐘具有與PC主板上的PCIExpress插槽輸出相同的性能(即100MHz)。另外,我們還需要確定該核需要多少基址寄存器(BAR),以及BAR是存儲器映射還是I/O映射。我們?yōu)榈刂方獯a使用了BAR監視器,這可以幫助生成BAR命中點(diǎn)。

  在設計PCIExpress與系統局部總線(xiàn)之間的橋接器時(shí),我們使用了BAR(起存儲器或I/O區域芯片選擇的作用)來(lái)訪(fǎng)問(wèn)存儲器映射或I/O映射的寄存器或BlockRAM,確保該核及總線(xiàn)能正確訪(fǎng)問(wèn)所有寄存器或BlockRAM。

  如果上述任何點(diǎn)未命中,則主機PC在嘗試傳遞和執行讀事務(wù)時(shí)就不會(huì )得到任何響應。主機PC會(huì )進(jìn)入未知的狀態(tài),或者產(chǎn)生無(wú)法恢復的錯誤。

  對于IP集成,必須為各FPGA分別使用一個(gè)時(shí)鐘復位模塊。異步復位必須與每個(gè)時(shí)鐘都同步,無(wú)論是全局時(shí)鐘還是區域時(shí)鐘。就內部而言,復位信號是相對于特定的時(shí)鐘而異步有效置位和同步無(wú)效置位,而其輸出則施加到各時(shí)鐘所屬的特定模塊。需要確保已經(jīng)將所有全局輸入時(shí)鐘連接到用CoreGen生成的 PLL/DCM核。

  將區域時(shí)鐘連接到BUFR/BUFIO。另外,為了避免布局布線(xiàn)工具使用不必要的布線(xiàn)資源,只能僅生成必要的復位信號。需要確保將PLL/DCM的鎖存條件傳送給外部引腳或配置寄存器。示例中,我們僅將200MHz系統時(shí)鐘的PLL鎖存器連接到了I/O引腳。

  因為我們是在用高速源同步輸入和輸出進(jìn)行設計,所以Virtex-5的逐位去歪斜功能幫助我們在輸入和輸出級滿(mǎn)足建立和保持要求,逐位去歪斜功能內置于所有I/O模塊(10DELAY基元)。對于源同步輸入,源同步時(shí)鐘使用BUFIO或BUFR,因此會(huì )引入附加延遲。為了補償此延遲,我們通過(guò)一個(gè)IODELAY實(shí)例來(lái)驅動(dòng)數據和時(shí)鐘輸入,該實(shí)例是按照具有已知延遲計數的輸入延遲模式配置的。我們通過(guò)修改延遲計數值來(lái)幫助滿(mǎn)足輸入級的時(shí)序要求。

  輸出級的情況與此相似。因為同步時(shí)鐘信號是隨數據傳送,我們需要確保數據和時(shí)鐘信號的傳送方式能滿(mǎn)足FPGA或ASIC在另一端的建立和保持要求。對于時(shí)鐘和數據輸出,我們都使用了按照具有已知延遲計數值的輸出延遲模式配置的IODELAY實(shí)例。

  時(shí)序考慮事項和約束定義

  生成并實(shí)現IP之后,下一步是執行時(shí)序。我們對所有輸入時(shí)鐘的周期、抖動(dòng)和輸入偏移延遲進(jìn)行了約束,并且設置了相對于源時(shí)鐘的所有輸出延遲和輸入對輸出的延遲。然后在用戶(hù)約束文件(UCF)中建立了時(shí)序和布局約束。

  我們將所有輸入時(shí)鐘約束為特定頻率,并且用以下UCF代碼定義了抖動(dòng)輸入:

  NET"i_clk_200_s"TNM_NET="IN_200_CLKGRP";TIMESPEC"IN_200_CLKGRP"=PERIOD5nsHIGH50%INPUT_JITTER0.1ns

  對于源同步數據,在SDR的情況下,我們可以將輸入時(shí)鐘設置為0度相移或180度相移,而在DDR的情況下可以將其設置為90度相移。圖2所示為時(shí)鐘在90度相移時(shí)的源同步DDR數據輸入時(shí)序。

時(shí)鐘在90度相移時(shí)的源同步DDR數據輸入時(shí)序

  對于PCIExpress核和千兆位以太網(wǎng)MAC核上的時(shí)序約束,我們按照CORE Generator示例中的定義對Block RAM和PLL/DCM使用了所有時(shí)序和布局約束。

  因為許多Virtex—5設計都使用多個(gè)異步時(shí)鐘,所以我們必須在設計中定義偽通路,以使這些時(shí)鐘不受影響。

  布局布線(xiàn)后的時(shí)序分析和時(shí)序校正

  對設計進(jìn)行布局布線(xiàn)后,我們運行了靜態(tài)時(shí)序分析(STA)和時(shí)序仿真,以了解是否存在其他時(shí)序錯誤。對于STA,我們確保時(shí)序報告涵蓋了有約束和無(wú)約束的全部通路。通過(guò)使用STA報告,我們可以鑒定輸入/輸出時(shí)序和內部系統時(shí)序。

  事實(shí)證明,基于Virtex—5的FPGA非常適合我們的視頻監視系統的要求。區域時(shí)鐘緩沖器和I/O時(shí)鐘緩沖器使我們能夠支持多信道源同步音視頻輸入。而且,該器件的PCI Express和千兆位以太網(wǎng)MAc硬宏為我們提供了進(jìn)行遠程監視所需的全球連接能力。

  在未來(lái)的設計工作中,我們將可依靠前期規劃來(lái)確保有效使用特定FPGA的可用資源,設計出具有附加價(jià)值的產(chǎn)品。



關(guān)鍵詞: Virtex-5 音視頻 FPGA 時(shí)序

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>