當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化

SOPC" title="SOPC">SOPC" title="SOPC">SOPC是Altera公司提出的片上可編程系統(tǒng)解決方案,它將CPU、存儲(chǔ)器、I/O接口、DSP模塊以及鎖相環(huán)的系統(tǒng)設(shè)計(jì)所必需的模塊集成到一塊FPGA上,構(gòu)成一個(gè)可編程的片上系統(tǒng),使設(shè)計(jì)的電路在其規(guī)模、可靠性、體積、功耗、功能、上市周期、開發(fā)周期、產(chǎn)品維護(hù)以及硬件升級(jí)等多方面實(shí)現(xiàn)最優(yōu)化。

目前在Altera SOPC">SOPC Builder下集成了包括UART、SPI、Ethernet、SDRAM、Flash、DMA等控制器的IP核。此外,用戶也可以根據(jù)系統(tǒng)的需要自己設(shè)計(jì)或者購(gòu)買第三方廠商的IP核,通過(guò)Avalon總線像搭積木一樣方便地將其捆綁在系統(tǒng)上。IP核是經(jīng)過(guò)功能驗(yàn)證的知識(shí)產(chǎn)權(quán)核,使用IP 核有以下優(yōu)勢(shì):(1)提高設(shè)計(jì)性能;(2)降低產(chǎn)品開發(fā)成本;(3)縮短設(shè)計(jì)周期;(4)設(shè)計(jì)靈活性強(qiáng);(5)仿真方便;(6)OpenCore Plus支持無(wú)風(fēng)險(xiǎn)應(yīng)用。

當(dāng)然本論文所說(shuō)的IP核功能沒(méi)有那么豐富,實(shí)際上就是一個(gè)功能驗(yàn)證正確的用戶邏輯,和商業(yè)應(yīng)用的IP核還有一定的差距。本文的主要工作就是通過(guò)硬件描述語(yǔ)言描述了視頻信號(hào)的采集,分配,存儲(chǔ)以及色度空間的轉(zhuǎn)換等邏輯,并且驗(yàn)證了功能的正確性。

1 視頻編解碼Camera_show原理

嵌入式攝像控制系統(tǒng)除了必要的電源電路以外,還要包括存儲(chǔ)電路、通信電路和下載電路等,所有的設(shè)備均與Avalon總線連接,這里主要介紹用戶邏輯接口Camera_show,它完成了模擬視頻數(shù)據(jù)轉(zhuǎn)化成數(shù)字視頻數(shù)據(jù)并在VGA上顯示的功能,主要包括模擬視頻信號(hào)的采集、分配(串并轉(zhuǎn)換電路完成)、存儲(chǔ)(存儲(chǔ)控制邏輯和片上RAM完成)和色度空間轉(zhuǎn)換。具體的功能框圖如圖1所示。


圖1 用戶邏輯Camera_show的原理框圖

2 視頻編解碼IP核Camera_Show設(shè)計(jì)

視頻編解碼IP 核主要完成的功能包含視頻信號(hào)的采集、分配、存儲(chǔ)以及色度空間的轉(zhuǎn)換。模擬視頻信號(hào)經(jīng)過(guò)ADV7181B后變成了符合ITU-R656的YUV數(shù)字信號(hào),但是要對(duì)YUV信號(hào)進(jìn)行處理必須將這三路信號(hào)分開并行處理,所以需要采集分配這三路信號(hào),這是2.1的IP核需要實(shí)現(xiàn)的功能;由于模擬視頻信號(hào)是隔行掃描的,但是CRT顯示器是逐行掃描,如果不加處理那么必然會(huì)導(dǎo)致行錯(cuò)開,所以需要將數(shù)據(jù)進(jìn)行存儲(chǔ),通過(guò)控制實(shí)現(xiàn)隔行變逐行,這是2.2的IP核需要實(shí)現(xiàn)的功能;最后經(jīng)過(guò)處理的YUV三路數(shù)字信號(hào),需要完成色度空間的轉(zhuǎn)換變成RGB信號(hào),這是2.3的IP核需要實(shí)現(xiàn)的功能。

2.1 YUV信號(hào)的采集、分配

在嵌入式攝像控制系統(tǒng)中,ADV7181主要承擔(dān)著模擬攝像頭的視頻數(shù)據(jù)進(jìn)行解碼的任務(wù),將CVBS的等模擬信號(hào)轉(zhuǎn)化成ITU-R656標(biāo)準(zhǔn)的YUV信號(hào)。圖2給出了ADV7181的功能框圖。


圖2 ADV7181功能框圖

由圖可以看到,對(duì)于輸入的CVBS等模擬信號(hào)經(jīng)過(guò)ADV7181B芯片轉(zhuǎn)換后輸出YUV信號(hào),行同步信號(hào)HS,幀同步信號(hào)VS。這些就是需要的數(shù)字視頻信號(hào),也就解決了數(shù)字視頻源的問(wèn)題。圖2給出了YUV信號(hào)的組成排列方式,“FF,00,00”作為AV信號(hào)的開始,所以需要構(gòu)造一個(gè)檢測(cè)電路。注意到SAV和EAV均是FF,00,00開頭但是XY的值不一樣。根據(jù)芯片資料,XY表示的是V,即有用信號(hào)與空白信號(hào)的分界點(diǎn),如果V=0則表示的是SAV,否則是EAV 。XY是場(chǎng)信號(hào)的區(qū)分標(biāo)志。0是奇場(chǎng),1是偶場(chǎng)。

模擬信號(hào)的一行是1716個(gè)CLOCK,有用信號(hào)是1440個(gè)CLOCK,在信號(hào)采集和分配的過(guò)程中,僅需對(duì)有用信號(hào)進(jìn)行采集,所以利用檢測(cè)到SAV作為一個(gè)標(biāo)志,啟動(dòng)信號(hào)的分配過(guò)程是非常有必要的。

由于YUV信號(hào)在模擬信號(hào)中是交織著的,所以需要一個(gè)信號(hào)選擇電路。YUV一共是三路信號(hào),設(shè)計(jì)一個(gè)計(jì)數(shù)器進(jìn)行選擇,計(jì)數(shù)是O和2時(shí),是UV信號(hào),計(jì)數(shù)是1和3時(shí)是Y信號(hào),完成的實(shí)際上是串行信號(hào)轉(zhuǎn)并行信號(hào)的過(guò)程。以上過(guò)程可以用圖3的原理框圖來(lái)表示。


圖3 YUV信號(hào)的采集、分配原理圖

在硬件描述語(yǔ)言中,完成上述過(guò)程還是比較簡(jiǎn)單的。例如檢測(cè)電路,只要描述一個(gè)移位寄存器就可以了,具體代碼如下:

其中的wire變量Y_check就是當(dāng)檢測(cè)到FF,00,00的時(shí)候就為1的標(biāo)志。根據(jù)上文所述,區(qū)分SAV和EAV是根據(jù)XY來(lái)決定,區(qū)分奇偶場(chǎng)是根據(jù)XY來(lái)區(qū)分,所以只有隨后的信號(hào)是SAV的時(shí)候,信號(hào)分配電路才有效,所以需要描述一段邏輯來(lái)判斷,代碼如下:

START信號(hào)就是開始信號(hào)采集、分配的標(biāo)志,只有當(dāng)TD_D=0也就是START= 1時(shí)信號(hào)分配電路才會(huì)工作。串轉(zhuǎn)并電路代碼如下:

以上代碼完成了圖3的功能,輸入的信號(hào)名為TD_D,輸出的三路信號(hào)是Cbb,YY,Crr。注意到還有個(gè)YPix_clock,實(shí)際上是27M的2分頻,這個(gè)時(shí)鐘非常有用,在下面將詳細(xì)闡述。

2.2 YUV信號(hào)的存儲(chǔ)

要將視頻信號(hào)隔行變逐行,有2 種解決方法:

第1種:將一幀的數(shù)據(jù)存儲(chǔ)下來(lái),根據(jù)奇偶場(chǎng)的不同(區(qū)分可以根據(jù)XY),在寫周期的時(shí)候,因?yàn)槠鎴?chǎng)的行之間有偶場(chǎng)的信號(hào),所以寫數(shù)據(jù)的時(shí)候需要跳地址寫,根據(jù)行同步信號(hào)(或者SAV也可以)來(lái)區(qū)分行,換行的時(shí)候地址要加額外的720(用來(lái)存放夾雜在奇場(chǎng)信號(hào)中的偶場(chǎng)信號(hào)),直到出現(xiàn)偶場(chǎng)信號(hào)(也就是XY=1)地址切換為初始基地址加720,其余的同奇行的處理方法,具體的地址分配表參照?qǐng)D4。


圖4 地址分配表

在讀周期只需要按照順序讀出就可以了,需要注意的是寫時(shí)鐘是13.5M,讀時(shí)鐘是27M,而且對(duì)于Y、U、V信號(hào)要進(jìn)行分別存儲(chǔ)。

第2種:將一行的數(shù)據(jù)存儲(chǔ)下來(lái),因?yàn)?716個(gè)時(shí)鐘周期剛好等于VGA兩行的時(shí)間,所以在這段時(shí)間里可以將7加個(gè)有效視頻信號(hào)讀取2遍,以奇行的信號(hào)去取代偶行的信號(hào),達(dá)到隔行變逐行的目的。在實(shí)現(xiàn)上只要是兩個(gè)RAM塊進(jìn)行乒乓操作就可以了,具體在后文闡述。

比較兩種實(shí)現(xiàn)方法,方法1的優(yōu)點(diǎn)在于圖像沒(méi)有失真,即奇偶行信號(hào)依舊相間在一起,方法2卻不能做到這一點(diǎn),而且方法1也可以通過(guò)乒乓方式提高運(yùn)行的速度,但是由于讀寫時(shí)鐘的不同步,每個(gè)存儲(chǔ)空間應(yīng)當(dāng)讀2遍。方法2也是讀2遍,但是是每行讀2遍,方法1是一幀數(shù)據(jù)讀2遍。

方法1的缺點(diǎn)在于存儲(chǔ)的數(shù)據(jù)量太大。一幀數(shù)據(jù)僅Y分量就是8bit*720*525=3024000bit=378KB,這個(gè)數(shù)據(jù)是不適合在SRAM中操作的,需要使用SDRAM,而操作SDRAM是比較復(fù)雜的,所以一般考慮使用方法2,因?yàn)樗枰苄〉目臻g,而且可以利用FPGA的片內(nèi)資源就可以實(shí)現(xiàn)。當(dāng)圖像數(shù)據(jù)傳輸很快的時(shí)候,人眼基本上是分不清奇偶場(chǎng)信號(hào)的,所以方法2是可行的。在講方法2之前,需要了解在流水線操作中經(jīng)常使用的乒乓操作,這是可編程邏輯常用的設(shè)計(jì)思想和技巧。乒乓操作常常應(yīng)用于數(shù)據(jù)流控制,典型的乒乓操作如圖5所示。


圖5 乒乓操作示意圖

乒乓操作的處理流程描述如下:輸入數(shù)據(jù)流通過(guò)“輸入數(shù)據(jù)流選擇單元”,等時(shí)地將數(shù)據(jù)流分配到兩個(gè)數(shù)據(jù)緩沖模塊。數(shù)據(jù)緩沖模塊可以是任何存儲(chǔ)模塊,比較常用的存儲(chǔ)單元是雙口RAM ( DPRAM ),單口RAM ( SPRAM)和FIFO等。在第一個(gè)緩沖周期,將輸入的數(shù)據(jù)流緩存到“數(shù)據(jù)緩沖模塊1”。在第2個(gè)緩沖周期,通過(guò)“輸入數(shù)據(jù)流選擇單元”的切換,將輸入的數(shù)據(jù)流緩存到“數(shù)據(jù)緩沖模塊2”,與此同時(shí),將“數(shù)據(jù)緩沖模塊1”緩存的第1個(gè)周期的數(shù)據(jù)通過(guò)“輸出數(shù)據(jù)流選擇單元”的選擇,送到“數(shù)據(jù)流運(yùn)算處理模塊”被運(yùn)算處理。在第3個(gè)緩沖周期,通過(guò)“輸入數(shù)據(jù)流選擇單元”的再次切換,將輸入的數(shù)據(jù)流緩存到“數(shù)據(jù)緩沖模塊1”,與此同時(shí),將“數(shù)據(jù)緩沖模塊2”緩存的第2個(gè)周期的數(shù)據(jù)通過(guò)“輸出數(shù)據(jù)流選擇單元”的選擇,送到“數(shù)據(jù)流運(yùn)算處理模塊”被運(yùn)算處理。如此循環(huán),周而復(fù)始。

乒乓操作的最大特點(diǎn)是,通過(guò)“輸入數(shù)據(jù)流選擇單元”和“輸出數(shù)據(jù)流選擇單元”按節(jié)拍、相互配合的切換,將經(jīng)過(guò)緩沖的數(shù)據(jù)流沒(méi)有時(shí)間停頓地送到“數(shù)據(jù)流運(yùn)算處理模塊”,被運(yùn)算和處理。把乒乓看成一個(gè)整體,站在這個(gè)模塊的兩端看數(shù)據(jù),輸入數(shù)據(jù)流和輸出數(shù)據(jù)流都是連續(xù)不斷的,沒(méi)有任何停頓,因此非常適合對(duì)數(shù)據(jù)流進(jìn)行流水線式處理。所以乒乓方式常常應(yīng)用于流水線式算法,完成數(shù)據(jù)的無(wú)縫緩沖與處理。

在FPGA里面,使用乒乓操作是面積與速度互換原則的一個(gè)體現(xiàn)。

方法2 可以這樣實(shí)現(xiàn):在FPGA內(nèi)部使用Megacore,構(gòu)造一個(gè)雙口的RAM,雙口RAM的輸入輸出信號(hào)的硬件描述語(yǔ)言定義如下:

使用的信號(hào)包括:數(shù)據(jù)信號(hào)data_a,dat_b;讀寫有效信號(hào)wren_a,wren_b;地址信號(hào)address_a,address_b;時(shí)鐘信號(hào)clock_a,clock_b;輸出數(shù)據(jù)信號(hào)q_a,q_b??梢钥吹剿械男盘?hào)都是成對(duì)出現(xiàn)的,就是為了進(jìn)行乒乓方式的數(shù)據(jù)傳輸。分成了兩個(gè)RAM區(qū)域,A和B,相當(dāng)于前面講乒乓方式里的數(shù)據(jù)緩沖模塊1和2。兩個(gè)RAM塊是交替著讀寫(由I_a和I_b決定),輸出數(shù)據(jù)流也是由I決定。剛說(shuō)到寫時(shí)鐘是13.5M,讀時(shí)鐘是27M,所以clock_a和clock_b必須是讀寫時(shí)鐘切換著輸入,而且地址的計(jì)數(shù)也不一樣,寫周期時(shí)候地址增加的時(shí)鐘是13.5M,讀周期地址增加的時(shí)鐘是27M。所以每行的數(shù)據(jù)讀了兩遍,相當(dāng)于隔行變逐行。圖6在Qartus II下RAM的乒乓操作功能仿真圖:


圖6 RAM的乒乓操作仿真圖

RAM塊進(jìn)行乒乓方式操作信號(hào)的分配表如下:

最后輸出的DATA信號(hào)進(jìn)入下一級(jí)單元,即YUV到RGB的轉(zhuǎn)換。

2.3 顏色-空間轉(zhuǎn)換部分設(shè)計(jì)

為什么要有這個(gè)轉(zhuǎn)換呢?因?yàn)椴徽撌请娨暀C(jī)還是CRT顯示器,都是使用RGB三基色合成的方法來(lái)顯示顏色。用RGB三基色來(lái)表示彩色的確很直觀,但是如果把這種方法用作圖像傳輸則絕不是一個(gè)好方法。主要是因?yàn)椋?/p>

(1)與黑白圖像不兼容;

(2)占用太多帶寬;

(3)抗干擾能力差。

本系統(tǒng)圖像傳感器輸出YCbCr信號(hào),需要進(jìn)行到RGB信號(hào)的轉(zhuǎn)換,用于CRT顯示。YCbCr到RGB按照下面公式進(jìn)行轉(zhuǎn)換:

R = 1.164 ( Y-16 ) + 1.596 ( Cr-128 );

G = 1.164 ( Y-16 )- 0.813 ( Cr-128 ) - 0.392(Cb-128);

B = 1.164 ( Y-16 ) + 2.017 ( Cb-128 );

觀察上面公式可以發(fā)現(xiàn),轉(zhuǎn)換均需要乘加運(yùn)算,并且式子中用到了小數(shù),所以必須要對(duì)系數(shù)進(jìn)行放大。經(jīng)過(guò)合理轉(zhuǎn)化,公式如下:

R = (1/256) * ( 298*Y + 409*Cr - 57065 );

G = (1/256) * ( 298*Y - 100*Cb - 208*Cr + 34718 );

B = (1/256) * ( 298*Y + 516*Cb - 70861 );

用Verilog HDL編寫代碼,實(shí)現(xiàn)YUV到RGB的轉(zhuǎn)化。其中共包括3個(gè)模塊跟1個(gè)仿真激勵(lì)。在模塊const_mult中,主要實(shí)現(xiàn)乘法運(yùn)算,主要代碼如下:

模塊csc.v中,調(diào)用const_mult模塊,通過(guò)參數(shù)傳遞改變參數(shù)IN_SIZE,OUT_SIZE,CST_MULT的值,然后實(shí)現(xiàn)加法運(yùn)算。

以R = (1/256) * ( 298*Y + 409*Cr - 57065 )為例,主要代碼如下:

用以實(shí)現(xiàn)G、B的代碼與上面類似,在此不再贅述。以下代碼實(shí)現(xiàn)R_full*1/256功能。

主模塊yuv2rgb實(shí)現(xiàn)子模塊的調(diào)用,用Modelsim進(jìn)行了仿真。仿真波形如圖7所示:


圖7 YUV到RGB的轉(zhuǎn)化仿真圖

3 結(jié)論

本文設(shè)計(jì)了基于SOPC">SOPC的視頻編解碼控制器IP核,根據(jù)自頂向下的設(shè)計(jì)思想,將IP核進(jìn)行層次功能劃分,并對(duì)IP核的仿真驗(yàn)證,實(shí)現(xiàn)了視頻信號(hào)的采集,分配,存儲(chǔ)以及色度空間的轉(zhuǎn)換。本IP核具有很好的移植性,可以方便的應(yīng)用到以Nios II為核心的各種需要視頻編解碼控制器功能的嵌入式中。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉