《電子技術應用》
您所在的位置:首頁 > 顯示光電 > 設計應用 > 異構SoC圖形器中可編程剪裁器的設計與實現
異構SoC圖形器中可編程剪裁器的設計與實現
2015年電子技術應用第2期
柏承雙1,蔣 林1,周建偉2
1.西安郵電大學 電子工程學院,陜西 西安710061; 2.西安郵電大學 計算機學院,陜西 西安710061
摘要: 隨著圖形處理性能的不斷提升,圖形處理的運算量也日益增多,傳統的嵌入式系統面臨著挑戰。解決這一問題的方案之一是運用可編程器件開發適用于嵌入式系統的圖形處理器,從而提高處理速度。現代圖形處理器采用各種可編程的著色處理器,雖然ASIC的速度和功耗性能優于可編程處理器,但其靈活性與可靠性卻是無法與可編程處理器比擬的。采用一種帶精簡指令的微控制器架構,重點研究用匯編和可編程處理器協同實現平面剪裁功能,代替原來用純硬件實現的功能,該流水線執行多指令多數據流(MIMD)。最后,使用大量的測試用例對點、線和三角形在FPGA開發板上進行相應的驗證。
中圖分類號: TP391
文獻標識碼: A
文章編號: 0258-7998(2015)02-0051-04
Design and implementation of programmable clipper in heterogeneous SoC
Bai Chengshuang1,Jiang Lin1,Zhou Jianwei2
1.College of Electronic Engineering,Xi′an University of Posts Telecommunications,Xi′an 710061,China; 2.College of Computer,Xi′an University of Posts Telecommunications,Xi′an 710061,China
Abstract: With the continuous improvement in graphics processing performance, the computation of graphics processing is also increasing day by day, and the traditional embedded system is facing challenges. One solution to this problem is to use a programmable device development for embedded system graphics processors to improve processing speed. Modern graphics processors use a variety of programmable shader processors. Although the speed and power performance of ASIC are better than that of programmable processor, its flexibility and reliability are unable to the programmable processor. In this paper, a micro-controller with a RISC architecture focuses on using assembly and programmable processor together to achieve the plane clipping function, instead of the function that the pure hardware implements. What′s more, the pipeline executes the multiple instruction multiple data stream(MIMD). Finally, it uses a large number of test points, lines and triangles in the FPGA development board to do the corresponding verifying.
Key words : programmable;plane clipped;graphics processor;micro-controller;the pipelined

 

0 引言

  計算機處理圖形信息時,會遇到存儲的圖形較大,而屏幕只能顯示部分圖形的情況。比如把整幅地圖顯示在屏幕上,由于不能看到局部的細節,使用縮放技術便可以把地圖中的局部區域放大顯示[1]。在放大指定區域時,必須確定圖形中哪些部分落在范圍之內,哪些部分落在顯示范圍之外,以便顯示落在顯示范圍內的圖形。裁剪的目的正是判斷某個圖形元素是否落在窗口之內,如落在窗口之內則進一步求得位于窗口內的部分。

  平面剪裁是OpenGL經典的圖形流水線的重要部件之一,也是最為復雜的部件之一。高性能的圖形處理必須通過高性能的硬件加速器來實現平面剪裁功能,本裁剪器最多支持6個裁剪面,客戶指定裁剪平面對世界空間中的物體進行裁剪,將圖元在給定平面外的部分裁剪掉,保留面內的部分,以實現特殊效果。比如,在三維視圖中標示可見面[2]、對部分圖形進行復制、移動或刪除操作防止圖形邊界混淆、從特定場景中抽取指定部分等。它在計算機圖形處理中具有重要的意義。

1 可編程裁剪器硬件設計


001.jpg

  作為3D圖形加速器的重要組成部分,平面剪裁在計算機圖形處理中具有十分重要的意義。本剪裁器由命令解析(CMD Unit)模塊、控制電路(Ctrl Unit)模塊、裝配電路(Assemb Unit)模塊及微控制器(MCU)模塊構成,總體結構如圖1所示。可編程設計體現在用底層匯編在微控制器上運行,已完成平面裁剪功能,其余的3個模塊為外圍電路,對微控制器完成圖元裁剪起輔助加速作用,以便高效實時地完成裁剪功能。MCU采用自主研發的支持90位雙發射指令、4級流水線RSIC結構,含有4片獨立的32×256RAM數據存儲(BANK)單元,完成并行存儲的功能,即一個時鐘沿可對4塊存儲體進行讀或寫,尋址范圍是1k,應用于裁剪過程中所用數據的讀寫。本微控制器可直接在BANK中進行數據讀寫操作,避免了通過寄存器來對BANK讀寫,大大減少的讀寫數據周期,提高了運算效率。

  各模塊功能如下:

  (1)CMD Unit:接受GPU內部管線上一級傳來的GPU內部148位命令,如果是與平面裁剪無關的命令,則不做任何處理,將其透傳給下一級,如果與平面裁剪有關,則對命令進行解析,將矩陣和圖元信息、參數個數及屬性個數等信息存入微控制器中的數據BANK中。

  (2)Ctrl Unit:利用數字電路設計常用的有限狀態機(Finite State Machine,FSM)原理控制命令解析、命令裝配模塊和微控制器間的通信,并采用雙軌握手協議完成GPU內部管線上下級間的信號交互,圖2為其狀態轉移圖。

002.jpg

  (3)MCU:本RISC處理器具有超長指令字(VLIW)結構,由指令讀取、指令解碼、執行和前饋4級流水線等組成。超長指令字的寬度為兩條RISC指令,即能夠同時解析兩條RISC指令,并將譯碼的結果發送到相應的兩條處理流水線中。將平面裁剪匯編指令固化到指令ROM,并通過數據存儲、取指單元、譯碼單元、地址流水線單元、整數和浮點數運算流水線等11個模塊實現可編程裁剪的功能。MCU結構如圖3。

003.jpg

  (4)Assemb Unit:該模塊讀出在MCU完成平面裁剪后存儲在微控單元BANK中的圖元信息,并對裁剪后新的頂點重新裝配為148位GPU內部命令,發送到管線的下一級。

2可編程裁剪器算法和軟件設計

  2.1 平面裁剪算法

  與三維剪裁不同,平面裁剪通過圖元在給定的任意平面內外進行判別,對每個點只要它的視覺坐標(x,y,z,w)滿足(A,B,C,D)M-1(x,y,z,w)T≥0就于此平面內側,否則都將被裁剪掉。其中,(A,B,C,D)為平面系數,M是在調用裁剪平面時當前的模型視圖矩陣。

  平面裁剪采用經典的Sutherland-Hodgman[3]多邊形裁剪算法,利用給定的平面與世界坐標系下的圖元間的位置關系,計算直線與平面的交點,并結合線性插值計算交點的屬性傳至流水線下一級,完成對圖元的剪裁。

  當定義的一個裁剪面依次裁剪多邊形的每一條邊后,組成新的多邊形,再經下一個裁剪面處理,步驟相同。在所有裁剪面完成后,將保留的多邊形信息存儲在MCU的BANK中,最后重新裝配成圖元發送給管線的下一級。下面是一段基于SH裁剪算法的偽代碼。

  If(the specified plane is enable) {

  SutherlandHodgman(clipped primitive);

  for(i=0;i<outlength;i++)   {

  InVertex[i] = outVertex[i];

  outVertex[i].x = 0;

  outVertex[i].y = 0;

  outVertex[i].z = 0;

  }

  inlength = outlength;

  }

  2.2 平面裁剪軟件設計

  在計算機圖形學中,基本圖元只有點、線和三角形,其他任何復雜圖元均由這3種圖元構成,平面裁剪就是采用SH算法對這3種基本圖元進行裁剪,丟棄位于裁剪面之外的圖元信息,采用線性插值的算法,算出位于裁剪面內的圖元信息,并將其發給GPU管線下一級。平面裁剪軟件設計流程如圖4。

004.jpg

3 功能仿真驗證與原型開發

  采用SystemVerilog編寫頂層測試文件,搭建相應的平面裁剪軟硬件協同驗證平臺[4],仿真使用Mentor公司的QuestaSim 6.5(Linux環境)工具,綜合使用Xilinx公司的ISE14.2工具,并選用Dini Group最新的DNV6_F2PCIE開發板進行原型開發。

  3.1 功能仿真驗證

  該平臺采用軟件自動比較的方法進行自動化驗證[5]。每一個測試點同時在Visual Studio 2008環境、SystemVerilog模型和HDL描述的硬件系統中運行,比較繪制結果,將模型和硬件系統作模塊級輸出比較,以確保所有功能的仿真是正確的。

  根據測試點編寫的點、線和三角形的激勵,產生待測數據。將預先得到的參考結果存入FIFO中用于驗證模型的正確性。經過待測模型(DUV)進行相應的處理后生成輸出響應,與參考結果中的值進行比較,如果兩者的值相同,表示功能正確;否則標識錯誤位置,及時修改錯誤點,加速了硬件開發。圖5所示為該平臺的架構。

005.jpg

  經過自動對比,硬件結果與仿真模型的誤差在可控范圍之內,基本完成功能驗證。

  3.2 原型開發

  基于上述設計方案,根據電路規模和性能要求,選擇Xilinx公司的XC6VLX550T進行原型開發。選用Xilinx公司提供的綜合工具[6]ISE14.2,單獨綜合平面裁剪模塊頻率為232.504 MHz,所占Slice為14%。采用DNV6_F2PCIE FPGA開發板進行功能驗證,啟動6個裁剪面對世界空間中的物體進行裁剪前后如圖6所示。

006.jpg

  由圖6可以看出,本裁剪器能完成基于OpenGL 1.3標準的裁剪功能,能夠高效、實時地將圖元在給定平面外的部分裁剪掉,保留面內的部分,以實現特殊效果。

4 結論

  本文對可編程裁剪器的設計與實現進行深入分析,完成可編程平面裁剪器的設計與實現。通過采用SystemVerilog搭建相應的軟硬件協同仿真驗證平臺,完成了模型和HDL描述的硬件自動化驗證,加速了軟硬件開發過程,并最終在FPGA上完成原型開發與功能驗證。從中得出了以下結論:

  (1)計算機和信息技術的快速發展使人們對微處理器的性能要求越來越高。可編程處理器具有高度的靈活性和成熟性,而性能也可能接近ASIC。本文所設計的裁剪器充分利用了處理器的靈活性,并采用底層匯編實現了裁剪功能,完成了實時高效裁剪圖形的目的。

  (2)為提高處理數據效率,處理器還采用前饋機制,將執行后的數據和地址返回給解碼控制端。除執行本地指令流外,流水線還可執行MIMD數據流。MIMD被普遍引用于當前CPU中,本裁剪器的核心模塊微控制器就采用了MIMD的方式,提升了數據吞吐量。

  (3)為了加速裁剪過程,給處理器配套外圍電路,完成命令解析,狀態控制和命令裝配。

  (4)使用匯編語言描實現可編程剪裁器的圖元裁剪部分,同樣可以用匯編程序代替前后端接收(譯碼)和發送(裝配)電路,完成基于該處理器的通用剪裁器的設計工作,使其靈活性大大增強。

參考文獻

  [1] 王浩鵬.二維圖形的裁剪算法研究與改進[D].西安:西安電子科技大學,2011.

  [2] 孫楊.計算機輔助隱形牙齒正畸功能實現[D].杭州:浙江大學,2010.

  [3] SULAND I E,HODGMAN G W.Reentrant polygon clipping[J].Communication of ACM,1974,17(1):32-42.

  [4] 山蕊.基于System Verilog的可重用驗證平臺[J].電子技術應用,2013(5):38-40.

  [5] 陳永光.RTL層次之系統互連線及系統電路的軟件自動化驗證方法研究[D].成都:電子科技大學,2012.

  [6] 田耕,許文波.Xilinx ISE design suite 10.x FPGA 開發指南[M].北京:人民郵電出版社,2008.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产一区二区三区四区老人| 亚洲经典自拍| 欧美日本精品| 欧美电影专区| 免费观看不卡av| 久久综合亚洲社区| 久久噜噜亚洲综合| 久久频这里精品99香蕉| 久久国产一二区| 久久精品动漫| 久久久久久一区二区三区| 久久激情久久| 久久久91精品国产一区二区三区| 欧美在线免费一级片| 欧美一区二区视频在线观看2020| 校园激情久久| 欧美亚洲综合另类| 欧美在线一级视频| 久久不见久久见免费视频1| 久久精品视频在线播放| 久久久久国产一区二区| 久久偷看各类wc女厕嘘嘘偷窃| 久久久激情视频| 久久免费视频在线| 欧美大片va欧美在线播放| 欧美激情小视频| 欧美日本在线播放| 国产精品成人在线观看| 国产精品网站在线观看| 国产日韩综合| 韩日欧美一区二区| 亚洲国产精品v| 亚洲美女淫视频| 亚洲图片欧洲图片av| 午夜亚洲视频| 亚洲激情视频在线播放| 一本久久综合亚洲鲁鲁| 亚洲专区国产精品| 久久国内精品视频| 男人插女人欧美| 欧美日韩一区在线观看视频| 国产精品三上| 一区二区视频欧美| 日韩视频免费观看高清在线视频| 亚洲一区二区成人在线观看| 久久成人这里只有精品| 日韩视频一区二区| 亚洲你懂的在线视频| 久久久久9999亚洲精品| 欧美激情日韩| 国产精品入口夜色视频大尺度 | 亚洲韩日在线| 一区二区三区免费看| 欧美一区二区三区在线免费观看| 玖玖视频精品| 欧美日韩一区二区三区免费看| 国产日韩欧美日韩| 亚洲精品免费在线观看| 亚洲免费视频在线观看| 亚洲欧洲一区二区在线播放| 亚洲自拍偷拍一区| 免费成人高清| 国产精品黄视频| 精品动漫3d一区二区三区| 99视频精品免费观看| 久久精品成人| 亚洲午夜免费视频| 久久婷婷综合激情| 国产精品国产精品| 亚洲福利在线观看| 亚洲综合999| 亚洲精华国产欧美| 西瓜成人精品人成网站| 欧美成ee人免费视频| 国产精品亚洲片夜色在线| 亚洲精品国产精品乱码不99 | 国产精品国产福利国产秒拍| 伊人久久综合97精品| 亚洲色图制服丝袜| 亚洲区国产区| 久久精品国产一区二区电影| 欧美日韩在线看| 亚洲第一中文字幕| 欧美一区二区三区视频免费播放| 在线视频精品一| 男人的天堂亚洲在线| 国产亚洲视频在线| 亚洲一区二区三区精品动漫| 999亚洲国产精| 美女视频黄 久久| 国产一区二区三区视频在线观看| 亚洲图色在线| 一区二区欧美在线观看| 欧美sm重口味系列视频在线观看| 国产婷婷成人久久av免费高清| 一本色道久久综合亚洲精品按摩| 最新亚洲视频| 久久久精品网| 国产日产高清欧美一区二区三区| 在线一区二区三区做爰视频网站| 日韩视频在线观看一区二区| 看片网站欧美日韩| 国产视频一区在线| 亚洲免费在线精品一区| 亚洲自拍偷拍视频| 欧美午夜精品伦理| 亚洲美女福利视频网站| 日韩视频免费观看| 欧美电影美腿模特1979在线看| 曰本成人黄色| 亚洲国产精品999| 久久一区免费| 国产主播一区二区| 欧美一区精品| 久久久精彩视频| 国产亚洲精品一区二555| 亚洲欧美精品在线| 欧美一区午夜精品| 国产日韩欧美在线观看| 性色一区二区| 久久久精品网| 激情综合久久| 亚洲精品欧美日韩专区| 欧美激情综合色| 亚洲精品国产系列| 一本色道久久88综合日韩精品| 欧美精品七区| 9久re热视频在线精品| 亚洲一级影院| 国产精品免费在线 | 亚洲欧美网站| 国产麻豆视频精品| 久久成人亚洲| 蜜桃久久av一区| 亚洲激情自拍| 中文在线资源观看网站视频免费不卡| 欧美日韩亚洲网| 亚洲午夜久久久久久久久电影院 | 欧美顶级少妇做爰| 亚洲精品无人区| 亚洲免费影视| 国产偷国产偷亚洲高清97cao| 久久国产夜色精品鲁鲁99| 美女精品视频一区| 亚洲精品日本| 亚洲欧美国内爽妇网| 国产日韩欧美视频| 亚洲高清一区二区三区| 欧美激情综合亚洲一二区 | 亚洲一区二区三区精品视频 | 久久久综合网站| 亚洲国产精品久久人人爱蜜臀| 99亚洲视频| 国产精品黄色| 久久国产手机看片| 欧美激情精品久久久六区热门 | 午夜精品福利电影| 国产在线欧美日韩| 日韩视频中文字幕| 国产精品毛片高清在线完整版| 欧美在线精品免播放器视频| 欧美激情一区二区三区全黄| 一区二区三区国产在线| 久久精品国产清自在天天线| 亚洲国产美女精品久久久久∴| 亚洲一卡二卡三卡四卡五卡| 国产亚洲电影| av成人免费在线| 国产精品一区毛片| 亚洲巨乳在线| 国产精品永久免费观看| 亚洲黄色在线观看| 欧美无砖砖区免费| 久久精品国产综合精品| 欧美日韩精品久久| 欧美一区1区三区3区公司| 欧美精品一区二区三区久久久竹菊| 亚洲一区二区精品| 欧美成人免费视频| 亚洲综合激情| 牛夜精品久久久久久久99黑人| 在线视频一区二区| 鲁大师影院一区二区三区| 中文欧美日韩| 女同性一区二区三区人了人一 | 亚洲欧美日韩精品久久| 欧美激情精品久久久久久蜜臀| 亚洲欧美中文日韩v在线观看| 欧美精品一区在线观看| 欧美一站二站| 国产精品草莓在线免费观看| 91久久久久久久久| 国产日韩欧美中文| 国产精品99久久99久久久二8| 一区二区视频免费在线观看| 午夜视频精品| 99re6热只有精品免费观看| 美女日韩在线中文字幕| 午夜久久黄色| 国产精品福利在线|