創新技術:在FPGA上實現3D圖像處理器IP核
發布時間:2014-10-08 責任編輯:echolady
【導讀】目前,嵌入式係統數字化產品成為繼PC機後的信息處理工具。隨著嵌入式技術的發展,圖形處理也從2D圖形向3D圖形轉變。本文采用OpenGL作為係統的圖形API,選取21條基本API命令,定義命令字編碼和渲染列表格式作為IP核的設計規約。
本項目通過在FPGA上用Verilog語言實現3D影像在LCD的成像,具有以下優勢:
1、采用可編程的FPGA進行設計,便於設計的更新與升級,節約成本。
2、緩解CPU在圖形處理方麵的負擔。
3、滿足廣大消費者對3D影像的需求
4、LCD體積小、質量輕、功耗低,可以用大規模集成電路直接驅動,可以在明亮環境下顯示,不含射線傷害。
一、實現功能
將IP核劃分為四部分,這裏我們分別稱之為FPGA1模塊、FPGA2模塊FPGA3和模塊FPGA4模塊,模擬CPU發送數據的cpu_module需要我們用Verilog HDL設計。Cpu_module和IP核的幾何變換模塊屬於FPGA1模塊,IP核的光照模塊屬於FPGS2模塊,FPGA3模塊則包含了IP核圖形管線的圖元裝配模塊,剔除剪切模塊、背麵剔除模塊和投影模塊,IP核圖形管線最後兩個模塊光柵化和片段處理屬於PFGA4模塊。
二、硬件設計
通過上麵對整個係統功能要求, 性能要求的分析, 我們可以確定係統的基本硬件結構, 其組成框圖如下所示:

圖1: IP核圖形管線的組成
圖中的cpu module模塊用來模擬圖形應用程序經CPU處理得到渲染列表的過程,它將渲染列表命令以GPU方言的形式送到GPU,並等待圖形管線中8級流水線的處理。整個圖形管線分為兩部分,幾何部分和光柵部分,圖中的前6個模塊幾何變換、光照、圖元裝配、裁剪、背麵剔除、投影屬於幾何部分,後2個模塊光柵化和片段處理屬於光柵部分。
三、模塊功能概述
首先是對cpu module送來的數據進行幾何變換,一個三角形圖元由三個頂點構成,每個頂點包含的信息有位置信息、法線信息、顏色信息等。由於三維空間中的物體都是以頂點的形式描述,所以幾何變換模塊主要是對舀Begin和glEnd之間的頂點數據流和相關命令的處理,所做的工作包含對頂點坐標的平移、旋轉、縮放。
ranhoushiduidingdianyansedejisuan,meigedingdiandoukeyiyouzijideyanse。yingxiangwutiyansedeyinsuyoujigefangmian,yishihuanjingguangzhaodeyingxiang,ershiwuticaizhibenshenduiguangyuanjinxingtiaozhi,sanshiguangyuandeweizhi,yincigaijimokuaiyouhenduoxuyaogenjuxuanranliebiaozhongdeminglingshezhixiangyingdecanshu,ranhouanzhaoguangzhaoyuanlihegegemoxingcanshujisuanchudingdiandeyanse。dingdiandezuobiaoweizhiheyansexinxiyouleyihoujiuxuyaojiangdandudedingdianshujuzuzhuangchengyigegetuyuan,OpenGL支持的圖元有點、線、三角形、折線、線環、三角形帶和三角形扇等。我們的IP核(he)目(mu)前(qian)隻(zhi)考(kao)慮(lv)了(le)對(dui)三(san)角(jiao)形(xing)圖(tu)元(yuan)的(de)處(chu)理(li),因(yin)為(wei)三(san)角(jiao)形(xing)是(shi)最(zui)基(ji)本(ben)的(de)圖(tu)元(yuan),其(qi)它(ta)圖(tu)元(yuan)隻(zhi)要(yao)在(zai)圖(tu)元(yuan)裝(zhuang)配(pei)一(yi)級(ji)做(zuo)一(yi)些(xie)處(chu)理(li)就(jiu)可(ke)以(yi)轉(zhuan)化(hua)為(wei)對(dui)三(san)角(jiao)形(xing)圖(tu)元(yuan)的(de)處(chu)理(li),點(dian)和(he)線(xian)段(duan)的(de)處(chu)理(li)比(bi)三(san)角(jiao)形(xing)的(de)處(chu)理(li)簡(jian)單(dan),隻(zhi)是(shi)在(zai)光(guang)柵(zha)化(hua)一(yi)級(ji)稍(shao)有(you)不(bu)同(tong),而(er)一(yi)些(xie)複(fu)雜(za)圖(tu)元(yuan)則(ze)可(ke)以(yi)分(fen)解(jie)成(cheng)三(san)角(jiao)形(xing)圖(tu)元(yuan)來(lai)處(chu)理(li)。
圖(tu)元(yuan)裝(zhuang)配(pei)完(wan)成(cheng)以(yi)後(hou)就(jiu)應(ying)該(gai)對(dui)不(bu)在(zai)視(shi)景(jing)體(ti)內(nei)的(de)圖(tu)元(yuan)進(jin)行(xing)剔(ti)除(chu),對(dui)部(bu)分(fen)在(zai)視(shi)景(jing)體(ti)內(nei)的(de)圖(tu)元(yuan)進(jin)行(xing)剪(jian)切(qie)。由(you)於(yu)視(shi)野(ye)的(de)限(xian)製(zhi),人(ren)不(bu)可(ke)能(neng)同(tong)時(shi)看(kan)到(dao)所(suo)有(you)的(de)物(wu)體(ti),舉(ju)例(li)來(lai)說(shuo),你(ni)不(bu)可(ke)能(neng)看(kan)到(dao)自(zi)己(ji)背(bei)後(hou)是(shi)什(shen)麼(me)物(wu)體(ti),因(yin)此(ci)在(zai)圖(tu)形(xing)學(xue)中(zhong)用(yong)視(shi)景(jing)體(ti)來(lai)模(mo)擬(ni)視(shi)野(ye)的(de)限(xian)製(zhi),將(jiang)一(yi)些(xie)不(bu)顯(xian)示(shi)的(de)圖(tu)元(yuan)剔(ti)除(chu)剪(jian)切(qie)掉(diao),以(yi)避(bi)免(mian)後(hou)級(ji)不(bu)必(bi)要(yao)的(de)計(ji)算(suan),減(jian)輕(qing)後(hou)級(ji)的(de)負(fu)擔(dan)。
背bei麵mian剔ti除chu模mo塊kuai的de工gong作zuo是shi判pan斷duan圖tu元yuan的de正zheng反fan麵mian,根gen據ju需xu要yao顯xian示shi我wo們men希xi望wang看kan到dao的de那na一yi麵mian。因yin為wei雖sui然ran在zai視shi景jing體ti外wai麵mian的de圖tu元yuan被bei剪jian切qie掉diao了le,但dan是shi並bing不bu意yi味wei著zhe所suo有you剩sheng下xia的de圖tu元yuan都dou會hui被bei顯xian示shi出chu來lai,比bi如ru一yi枚mei硬ying幣bi,當dang印yin有you人ren頭tou的de一yi麵mian對dui著zhe我wo們men的de時shi候hou,另ling一yi麵mian的de字zi就jiu不bu能neng呈cheng現xian在zai我wo們men麵mian前qian,後hou級ji的de處chu理li也ye就jiu不bu需xu要yao考kao慮lv有you字zi的de那na一yi麵mian。
前(qian)麵(mian)五(wu)級(ji)的(de)處(chu)理(li)對(dui)象(xiang)都(dou)是(shi)三(san)維(wei)空(kong)間(jian)中(zhong)的(de)頂(ding)點(dian)數(shu)據(ju),但(dan)我(wo)們(men)的(de)顯(xian)示(shi)設(she)備(bei)隻(zhi)是(shi)二(er)維(wei)的(de),這(zhe)就(jiu)需(xu)要(yao)我(wo)們(men)將(jiang)視(shi)景(jing)體(ti)中(zhong)的(de)三(san)維(wei)圖(tu)元(yuan)映(ying)射(she)到(dao)二(er)維(wei)平(ping)麵(mian)上(shang),投(tou)影(ying)交(jiao)換(huan)模(mo)塊(kuai)的(de)作(zuo)用(yong)就(jiu)在(zai)於(yu)此(ci)。至(zhi)此(ci)三(san)維(wei)圖(tu)元(yuan)就(jiu)變(bian)成(cheng)了(le)二(er)維(wei)的(de)圖(tu)元(yuan),後(hou)麵(mian)兩(liang)級(ji)就(jiu)隻(zhi)需(xu)要(yao)對(dui)二(er)維(wei)圖(tu)元(yuan)進(jin)行(xing)處(chu)理(li)。
光(guang)柵(zha)化(hua)一(yi)級(ji)需(xu)要(yao)將(jiang)二(er)維(wei)圖(tu)元(yuan)的(de)坐(zuo)標(biao)變(bian)換(huan)成(cheng)整(zheng)數(shu),因(yin)為(wei)顯(xian)示(shi)設(she)備(bei)的(de)光(guang)柵(zha)是(shi)離(li)散(san)的(de)點(dian)陣(zhen),該(gai)級(ji)還(hai)需(xu)要(yao)做(zuo)的(de)工(gong)作(zuo)是(shi)填(tian)充(chong)圖(tu)元(yuan)的(de)內(nei)部(bu),另(ling)外(wai)圖(tu)元(yuan)邊(bian)緣(yuan)的(de)反(fan)走(zou)樣(yang)也(ye)需(xu)要(yao)在(zai)該(gai)級(ji)完(wan)成(cheng)。經(jing)過(guo)該(gai)級(ji)的(de)處(chu)理(li),二(er)元(yuan)圖(tu)元(yuan)就(jiu)變(bian)成(cheng)了(le)離(li)散(san)的(de)片(pian)元(yuan)數(shu)據(ju),即(ji)人(ren)們(men)常(chang)說(shuo)的(de)像(xiang)素(su)數(shu)據(ju),每(mei)個(ge)像(xiang)素(su)數(shu)據(ju)都(dou)和(he)顯(xian)示(shi)設(she)備(bei)光(guang)柵(zha)上(shang)的(de)某(mou)個(ge)點(dian)一(yi)一(yi)對(dui)應(ying)。
最zui後hou一yi級ji是shi片pian段duan處chu理li,它ta的de工gong作zuo就jiu是shi在zai像xiang素su數shu據ju送song到dao幀zhen緩huan衝chong區qu之zhi前qian再zai對dui像xiang素su數shu據ju進jin行xing篩shai選xuan,因yin為wei隻zhi有you符fu合he條tiao件jian的de才cai會hui被bei寫xie入ru到dao幀zhen緩huan衝chong區qu中zhong。比bi如ru有you一yi扇shan門men,當dang門men關guan起qi來lai的de時shi候hou我wo們men就jiu看kan不bu見jian門men裏li的de物wu體ti,這zhe時shi隻zhi需xu將jiang描miao述shu門men的de像xiang素su數shu據ju送song到dao幀zhen緩huan衝chong區qu中zhong,門men後hou麵mian的de物wu體ti是shi被bei門men擋dang住zhu了le的de,不bu應ying該gai將jiang描miao述shu門men後hou物wu體ti的de像xiang素su數shu據ju送song到dao幀zhen緩huan衝chong區qu。而er當dang門men開kai著zhe的de時shi候hou,我wo們men需xu要yao將jiang描miao述shu門men後hou物wu體ti的de像xiang素su數shu據ju送song到dao幀zhen緩huan衝chong區qu中zhong。同tong時shi如ru果guo需xu要yaoAlpha混合,則還需要將兩個物體的重疊部分的像素的顏色值做混合處理。
這8個模塊是3D圖形處理器IP核的核心所在,我們的工作就是在課題組已有工作的基礎上,在4塊FPGAJ2用Verilog HDL來設計完善這8個模塊。
四、IP核的驗證平台
驗證平台的結構示意圖如圖所示。

圖2:驗證平台的結構示意圖
驗證平台所使用的4片FPGA芯片是EP2C20Q240C8,它有18752個邏輯單元和239616BitSMemory,芯片之間采用級聯的形式,按先後順序我們分別用FPGAl、FPGA2、FPGA3、FPGA4來表示。
IP核的8個模塊需要按照圖形管線的結構分別映射到4片FPGA中,根據圖形管線各模塊所做的工作,每個模塊在FPGA中的分配如圖3所示。

圖3:IP核各模塊在FPGA中的分配
按照圖中的劃分,我們可以看作是將IP核劃分成了4部分,這裏我們分別稱之為FPGAl模塊、FPGA2模塊、FPGA3模塊和FPGA4模塊。由於條件限製,用來模擬CPU發送數據的epu.module也需要我們用Verilog HDL設計,epu 和IP核的幾何變換模塊屬於模塊,口核的光_module FPGAl照模塊屬於FPGA2模塊,FPGA3模塊則包含了IP核圖形管線的圖元裝配模塊、剔除剪切模塊、背麵剔除模塊和投影模塊,IP核圖形管線最後兩個模塊光柵化和片段處理屬於FPGA4模塊。
相關閱讀:
技術分享:基於FPGA的水聲信號采集與存儲係統設計
淺析以FLASH和反熔絲技術為基礎的FPGA
基於FPGA複位的可靠性設計方法講解
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 具身智能成最大亮點!CITE 2026開幕峰會釋放產業強信號
- 助力醫療器械產業高質量發展 派克漢尼汾閃耀2026 ICMD
- 比異步時鍾更隱蔽的“芯片殺手”——跨複位域(RDC)問題
- 數據之外:液冷技術背後的連接器創新
- “眼在手上”的嵌入式實踐:基於ROS2與RK3576的機械臂跟隨抓取方案
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall





