欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于fpga的圖形控制器的制造方法

文檔序號:6524615閱讀:139來源:國知局
基于fpga的圖形控制器的制造方法
【專利摘要】本發(fā)明公開了一種基于FPGA的圖形控制器,具有:與處理器通信的處理器接口和輸出結(jié)果的控制接口模塊;緩存模塊:接收并緩存由處理器接口傳輸?shù)膱D形控制器命令和參數(shù);控制模塊:調(diào)取所述緩存模塊存儲的命令和參數(shù),根據(jù)命令和參數(shù)選擇圖形繪制模塊功能,進(jìn)行繪圖;圖形繪制模塊:至少繪制包括直線、圓、圓弧、矩形框、填充矩形和字符;工作時,處理器接口模塊接收圖形控制器命令和參數(shù),供所述控制模塊調(diào)取,所述的控制模塊根據(jù)命令和參數(shù)調(diào)用所述的圖形繪制模塊完成相應(yīng)的繪制功能并由所述的控制器接口模塊輸出結(jié)果。
【專利說明】基于FPGA的圖形控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種圖形控制器,尤其涉及一種基于FPGA的圖形控制器。涉及專利分類號G09教育;密碼術(shù);顯示;廣告;印鑒G09G對用靜態(tài)方法顯示可變信息的指示裝置進(jìn)行控制的裝置或電路G09G5/00陰極射線管指示器及其他目標(biāo)指示器通用的目視指示器的控制裝置或電路。
【背景技術(shù)】
[0002]通用VGA顯示系統(tǒng)主要由時序控制電路、顯存控制電路、讀寫仲裁控制以及CPU接口控制等部分組成??刂齐娐分饕瓿蓵r序發(fā)生、顯存數(shù)據(jù)操作、主時鐘選擇和D/A轉(zhuǎn)換等功能;顯存則提供顯示數(shù)據(jù)緩存空間;CPU接口控制實現(xiàn)顯示程序?qū)︼@存的訪問,完成顯存中的內(nèi)容到VGA屏幕圖像的映射。
[0003]隨著FPGA (Field-Programmable Gate Array)的發(fā)展及其價格的不斷下降,F(xiàn)PGA的應(yīng)用優(yōu)勢逐漸顯現(xiàn)。在嵌入式系統(tǒng)設(shè)計中,為了實現(xiàn)VGA顯示功能,既可以使用專用的VGA接口芯片,也可以使用基于FPGA的VGA接口 IP軟核。雖然使用VGA專用芯片具有更穩(wěn)定的VGA時序和更多的顯示模式等優(yōu)點,但其成本高;而使用VGA接口 IP軟核具有設(shè)計靈活、集成度高、系統(tǒng)成本低等顯著優(yōu)勢,但其功能單一,顯示模式少。

【發(fā)明內(nèi)容】

[0004]本發(fā)明針對以上問題的提出,而研制的一種基于FPGA的圖形控制器,具有:與處理器通信的處理器接口和輸出結(jié)果的控制接口模塊;
[0005]緩存模塊:接收并緩存由處理器接口傳輸?shù)膱D形控制器命令和參數(shù);
[0006]控制模塊:調(diào)取所述緩存模塊存儲的命令和參數(shù),根據(jù)命令和參數(shù)選擇圖形繪制模塊功能,進(jìn)行繪圖;
[0007]圖形繪制模塊:至少繪制包括直線、圓、圓弧、矩形框、填充矩形和字符;
[0008]工作時,處理器接口模塊接收圖形控制器命令和參數(shù),供所述控制模塊調(diào)取,所述的控制模塊根據(jù)命令和參數(shù)調(diào)用所述的圖形繪制模塊完成相應(yīng)的繪制功能并由所述的控制器接口 1旲塊輸出結(jié)果。
[0009]所述的緩存模塊為先入先出(FIFO)模塊。
[0010]所述控制模塊具有校驗功能:首先,控制模塊檢查命令是否為有效命令,若命令無效,則報錯;若命令有效,再根據(jù)命令的種類判斷后續(xù)參數(shù)的數(shù)量,若參數(shù)的數(shù)量與命令不符,則報錯;若命令有效且參數(shù)的數(shù)量與命令相符,則調(diào)用所述的圖形繪制模塊進(jìn)行圖形繪制。
[0011]所述控制模塊在讀取所述緩存模塊時,首先判斷緩存模塊狀態(tài)是否為“非空”,若為“非空”,則從緩存模塊讀取命令、參數(shù)。
[0012]所述控制模塊在向所述的圖形繪制模塊發(fā)送命令和參數(shù)前,首先判斷所述的圖形繪制模塊是否為“忙”狀態(tài);若為“忙”狀態(tài),則不向圖形繪制模塊發(fā)送命令和參數(shù)。[0013]所述的圖形繪制模塊:
[0014]在繪制直線時,使用中點畫直線算法;
[0015]在繪制圓時,使用中點畫圓算法;
[0016]在繪制圓弧時,根據(jù)參數(shù)提供的圓心坐標(biāo)、半徑、圓弧起點坐標(biāo)和圓弧終點坐標(biāo)繪制圓??;在中點畫圓算法的基礎(chǔ)上,按照圓弧起點和終點的不同象限,將圓弧劃分I至9段,然后按分段將圓弧畫出來;
[0017]在繪制矩形框和矩形填充圖形時,首先確定頂點的坐標(biāo),繪制相應(yīng)的圖形。
[0018]所述的圖形繪制模塊還具有地址生成功能:將計算出來的直角坐標(biāo)系下的地址X、Y變換成可以對DDR進(jìn)行讀寫訪問的復(fù)合地址,復(fù)合地址格式為:DDR_ADDRESS〈= “X地址” & “AP”& “Y 地址” & “BANK”。
[0019]還具有時序控制模塊進(jìn)行行場同步。
[0020]所述的控制接口模塊:根據(jù)圖形系統(tǒng)中傳來地址對DDR_SDRAM進(jìn)行讀寫操作,完成對圖形中各個點的描繪,最終在顯示器上顯示出圖形。
[0021]由于采用了上述技術(shù)方案,本發(fā)明提供的一種基于FPGA的圖形控制器,實現(xiàn)了在降低了成本的同時,具有設(shè)計靈活、集成度好、系統(tǒng)成本低等顯著優(yōu)點,同時功能豐富,顯示模式多樣。
【專利附圖】

【附圖說明】
[0022]為了更清楚的說明本發(fā)明的實施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0023]圖1為本發(fā)明的模塊示意圖
[0024]圖2為本發(fā)明繪制直線的原理圖
[0025]圖3為本發(fā)明繪制圓的原理圖
[0026]圖4為本發(fā)明繪制矩形框的原理圖
[0027]圖5為本發(fā)明繪制填充矩形的原理圖
[0028]圖6為本發(fā)明行同步示意圖
[0029]圖7為本發(fā)明場同步示意圖
[0030]圖8為本發(fā)明行場同步模擬示意圖
【具體實施方式】
[0031]為使本發(fā)明的實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚完整的描述:
[0032]如圖1所示:一種基于FPGA的圖形控制器,主要包括如下模塊:與處理器通信的處理器接口和輸出結(jié)果的控制接口模塊;緩存模塊:接收并緩存由處理器接口傳輸?shù)膱D形控制器命令和參數(shù);控制模塊:調(diào)取所述緩存模塊存儲的命令和參數(shù),根據(jù)命令和參數(shù)選擇圖形繪制模塊功能,進(jìn)行繪圖;圖形繪制模塊:至少繪制包括直線、圓、圓弧、矩形框、填充矩形和字符;工作時,處理器接口模塊接收圖形控制器命令和參數(shù),供所述控制模塊調(diào)取,所述的控制模塊根據(jù)命令和參數(shù)調(diào)用所述的圖形繪制模塊完成相應(yīng)的繪制功能并由所述的控制器接口模塊輸出結(jié)果。
[0033]作為一個較佳的實施方式,所述的緩存模塊為先入先出(FIFO)模塊。用來存儲圖形控制器的命令和參數(shù)。FIFO是一個數(shù)據(jù)位寬是17bit,深度是16的先入先出存儲器,用來緩存圖形控制器將要執(zhí)行的命令和相應(yīng)的參數(shù)。有了這個緩存的FIFO,可以減少處理器直接訪問參數(shù)寄存器和命令寄存器的次數(shù),節(jié)省CPU時間,提高圖形控制器的效率。
[0034]相應(yīng)的,為了保證系統(tǒng)高速運行,所述控制模塊具有校驗功能,具體校驗過程如下:首先,控制模塊檢查命令是否為有效命令,若命令無效,則報錯;若命令有效,再根據(jù)命令的種類判斷后續(xù)參數(shù)的數(shù)量,若參數(shù)的數(shù)量與命令不符,則報錯;若命令有效且參數(shù)的數(shù)量與命令相符,則調(diào)用所述的圖形繪制模塊進(jìn)行圖形繪制。
[0035]同樣的,所述控制模塊在讀取所述緩存模塊時,首先判斷緩存模塊狀態(tài)是否為“非空”,若為“非空”,則從緩存模塊讀取命令、參數(shù)。具體判斷過程如下:控制模塊判斷緩存模塊的狀態(tài)信號EMPTY,若EMPTY信號“無效”,說明緩存模塊中有尚未完成的繪圖命令,此時可以讀取緩存模塊中的命令、參數(shù)。
[0036]所述控制模塊在向所述的圖形繪制模塊發(fā)送命令和參數(shù)前,首先判斷所述的圖形繪制模塊是否為“忙”狀態(tài);若為“忙”狀態(tài),則不向圖形繪制模塊發(fā)送命令和參數(shù),例如:如果圖形繪制模塊正在執(zhí)行“直線”命令,此時圖形繪制模塊處于“忙”狀態(tài),控制模塊就不能再向圖形繪制模塊發(fā)送其它的繪圖命令了。直到圖形繪制模塊完成“直線”命令之后,圖形繪制模塊處于“空閑”狀態(tài),控制模塊才能向圖形繪制模塊發(fā)送新的命令和參數(shù);
[0037]圖形繪制模塊中包含了不同圖形的算法,是圖形控制器的核心部分,下面列出了各個不同圖形的算法實現(xiàn):
[0038]直線:根據(jù)參數(shù)數(shù)據(jù)提供的直線的起點坐標(biāo)(xl,yl)和終點坐標(biāo)(x2,y2),應(yīng)用中點畫直線的算法,按照直線從(xl,yl)到(x2,y2)的方向不同,把坐標(biāo)平面分為8個象限,其中第Ia象限內(nèi)的中點算法如下:
[0039]1.計算誤差:dx=x2_xl, dy=y2_yl,誤差的初值為 p0=2*abs(dy)_abs(dx),
[0040]2.求直線的下一點的位置:x=x+l ;如果p0>0,則y=y+l ;否則y=y ;
[0041]3.求下一個誤差 p1:如果 p0>0,則 pl=2* (abs (dy)-abs (dx)),否則pl=2*abs(dy);
[0042]4.根據(jù)求出的誤差值pl,轉(zhuǎn)向2,再求出直線的下一點位置.[0043]5.當(dāng) x=x2, y=y2 時,直線完成。
[0044]圓:根據(jù)參數(shù)數(shù)據(jù)提供的圓心坐標(biāo)(xc,yc)和半徑r,應(yīng)用中點畫圓的算法。根據(jù)圓的對稱性,可以把坐標(biāo)平面分為8個象限,只要將第Ib象限內(nèi)圓上的點坐標(biāo)求出,則另外的7個象限中的點可以根據(jù)對稱法則計算出來,其中第Ib象限內(nèi)的中點算法如下:
[0045]1.先假定圓心的坐標(biāo)是在原點(0,0),圓的起點是(O,r),那么,每當(dāng)χ遞增I,在χ方向上的增量初值為deltax=3,每當(dāng)y遞減I,在y方向上的遞減的量是deltay=2-r_r,中點判別式d=l_r.[0046]2.如果中點判別式的值d〈0,那么,就在χ的方向x=x+l ;在7方向上的數(shù)值不變,在X方向上的增量變?yōu)閐eltax=deltax+2;中點判別式的值為d=d+(deltax+2);
[0047]3.如果中點判別式的值d>0,那么,就在χ方向x=x+l,在y方向y=y_l;在χ方向上的增量變?yōu)閐eltax=deltax+2;在y方向上的增量變?yōu)閐eltay=deltay+2;中點判別式的值為 d=d+ ((deltax+2) + (deltay+2));
[0048]4.按照2,3的步驟,可以把Ib象限中圓上的點都確定出來,當(dāng)χ方向上的增量值和y方向上的增量值相同時,Ib象限中圓上的點坐標(biāo)完成。根據(jù)圓的對稱性,可將另外7部分圓畫出。
[0049]圓弧:根據(jù)參數(shù)數(shù)據(jù)提供的圓心坐標(biāo)、半徑、圓弧起點坐標(biāo)和圓弧終點坐標(biāo)繪制圓弧。
[0050]圓弧程序的算法,即是在圓程序的基礎(chǔ)上,按照圓弧起點和終點的不同象限,將其劃分I至9段,然后按分段將圓弧畫出來。
[0051]矩形框:根據(jù)參數(shù)數(shù)據(jù)提供的矩形的左上角頂點坐標(biāo)(xl,yl)與右下角頂點坐標(biāo)(x2,y2), (x2>xl,y2>yl)計算出經(jīng)過矩形框的每點像素的坐標(biāo),算法如下:
[0052]1.確定矩形的起點坐標(biāo):x=xl ;y=yl ;
[0053]2.求出第一條線的地址:x=xl ;保持不變,y的數(shù)值在時鐘下依次加1,直到加到1=12 ;第一條直線地址完成;
[0054]3.求出第二條線的地址:y=y2 ;保持不變,χ的數(shù)值在時鐘下依次加1,直到加到x=x2 ;第二條地址完成;
[0055]4.根據(jù)2、3的方法依次求出另外的兩條直線,整個矩形的坐標(biāo)地址完成。
[0056]矩形填充:根據(jù)參數(shù)數(shù)據(jù)提供的矩形的左上角頂點坐標(biāo)(xl,yl)和矩形陣列的陣列大小matsizeX, matsizeY計算出經(jīng)過矩形陣列的每點像素的坐標(biāo),算法如下:
[0057]1.確定矩形的起點坐標(biāo):x=xl ;y=yl ;
[0058]2.求出第一行的地址:x=xl ;保持不變,y的數(shù)值在時鐘下依次加1,直到加到y(tǒng)=yI+matsizeY ;第一行地址完成,再求下一行x=xl+l ;
[0059]3.依次求出x=xl+matsizeX行后,整個矩形的坐標(biāo)地址完成。
[0060]字符:字符生成模塊可實現(xiàn)在顯示器上顯示漢字、字符等。字模信息由處理器提供,存儲在字符寄存器中,得到了字符的字模信息后,根據(jù)參數(shù)確定的位置,將字模信息映射到DDR_SDRAM中,這樣就可以在屏幕上相應(yīng)的位置顯示該漢字、字符。
[0061]更進(jìn)一步的,所述的圖形繪制模塊還具有地址生成功能:將計算出來的直角坐標(biāo)系下的地址X、Y變換成可以對DDR進(jìn)行讀寫訪問的復(fù)合地址,復(fù)合地址格式為:DDR_ADDRESS<= “X 地址” & “AP”& “Y 地址” & “BANK”。
[0062]VGA時序控制模塊是圖形控制系統(tǒng)的重要組成部分。整個圖形控制器的時序控制,都是在VGA的行場同步時序模塊控制下進(jìn)行的。根據(jù)VGA時序標(biāo)準(zhǔn),行同步信號HS,行周期為31.78 μ s,每行包括800點,其中640點為有效顯示區(qū),160點為行消隱區(qū),每行有一個脈沖,該脈沖的低電平寬度為3.81 μ s (即96個脈沖),場同步信號VS,場周期為16.683ms,每場有525行,其中480行為有效顯示行,45行為場消隱區(qū),每場有一個脈沖,該脈沖的低電平寬度為63 μ s。VGA行同步、場同步的時序圖如圖6和圖7所示。
[0063]作為一個較佳的實施方式,利用Xilinx公司的ISE12.1軟件對VHDL語言描述的VGA時序控制模塊進(jìn)行編譯、仿真,可得到行同步信號HS,場同步信號VS的時序仿真波形,如圖9所示。
[0064]由仿真結(jié)果波形可以看到,行同步信號的時鐘周期約為31.9us,場同步信號的時鐘周期約為16.6ms,達(dá)到了 VGA標(biāo)準(zhǔn)時序的要求,可以提供準(zhǔn)確的行場同步信號。
[0065]相應(yīng)的,DDR_SDRAM接口的主要功能,一方面根據(jù)圖形系統(tǒng)中傳來地址對DDR_SDRAM進(jìn)行讀寫操作,完成對圖形中各個點的描繪,最終在顯示器上顯示出要畫的圖形;另一方面在VGA時序控制模塊的時序控制下,將DDR_SDRAM中的數(shù)據(jù)讀出來,存放在串行器中,然后在視頻行場同步信號的作用下,把串行器中數(shù)據(jù)顯示在屏幕上。下面就分別介紹這兩個功能的具體實現(xiàn);
[0066]DDR_SDRAM接口對一個地址的描繪,是以讀——改——寫的操作順序來完成的。具體的工作過程如下:首先,在圖形繪制模塊中產(chǎn)生要對DDR進(jìn)行操作的地址,將其數(shù)據(jù)讀取出來,因為DDR里的數(shù)據(jù)都是進(jìn)行分層處理的,不同的數(shù)據(jù)位代表不同層的數(shù)據(jù),分為字符層、數(shù)據(jù)層、圖形層,要對讀取出來的數(shù)據(jù)進(jìn)行掩碼處理,完成這個地址不同層次的修改,生成要寫到這個地址的新數(shù)據(jù),然后,再將修改之后的新數(shù)據(jù)寫到DDR_SDRAM存儲器中,這樣,就完成了圖形控制器對一個地址(即I個點)的描繪。
[0067]DDR_SDRAM接口的另外一個功能就是將DDR_SDRAM中的數(shù)據(jù)存儲到串行器中,并在點時鐘DOTCLK和VGA時序控制模塊產(chǎn)生的行場同步信號的作用下,將數(shù)據(jù)一個個從串行器中讀出來,在屏幕上顯示出來。
[0068]以上所述,僅為本發(fā)明較佳的【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),根據(jù)本發(fā)明的技術(shù)方案及其發(fā)明構(gòu)思加以等同替換或改變,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于FPGA的圖形控制器,具有:與處理器通信的處理器接口和輸出結(jié)果的控制接口模塊; 緩存模塊:接收并緩存由處理器接口傳輸?shù)膱D形控制器命令和參數(shù); 控制模塊:調(diào)取所述緩存模塊存儲的命令和參數(shù),根據(jù)命令和參數(shù)選擇圖形繪制模塊功能,進(jìn)行繪圖; 圖形繪制模塊:至少繪制包括直線、圓、圓弧、矩形框、填充矩形和字符; 工作時,處理器接口模塊接收圖形控制器命令和參數(shù),供所述控制模塊調(diào)取,所述的控制模塊根據(jù)命令和參數(shù)調(diào)用所述的圖形繪制模塊完成相應(yīng)的繪制功能并由所述的控制器接口 1吳塊輸出結(jié)果。
2.根據(jù)權(quán)利要求1所述的一種基于FPGA的圖形控制器,其特征還在于:所述的緩存模塊為先入先出(FIFO)模塊。
3.根據(jù)權(quán)利要求1所述的一種基于FPGA的圖形控制器,其特征還在于:所述控制模塊具有校驗功能:首先,控制模塊檢查命令是否為有效命令,若命令無效,則報錯;若命令有效,再根據(jù)命令的種類判斷后續(xù)參數(shù)的數(shù)量,若參數(shù)的數(shù)量與命令不符,則報錯;若命令有效且參數(shù)的數(shù)量與命令相符,則調(diào)用所述的圖形繪制模塊進(jìn)行圖形繪制。
4.根據(jù)權(quán)利要求1所述的一種基于FPGA的圖形控制器,其特征還在于:所述控制模塊在讀取所述緩存模塊時,首先判斷緩存模塊狀態(tài)是否為“非空”,若為“非空”,則從緩存模塊讀取命令、參數(shù)。
5.根據(jù)權(quán)利要求1所述的一種基于FPGA的圖形控制器,其特征還在于:所述控制模塊在向所述的圖形繪制模塊發(fā)送命令和參數(shù)前,首先判斷所述的圖形繪制模塊是否為“忙”狀態(tài);若為“忙”狀態(tài),則不向圖形繪制模塊發(fā)送命令和參數(shù)。
6.根據(jù)權(quán)利要求1所述的一種基于FPGA的圖形控制器,其特征還在于:所述的圖形繪制模塊: 在繪制直線時,使用中點畫直線算法; 在繪制圓時,使用中點畫圓算法; 在繪制圓弧時,根據(jù)參數(shù)提供的圓心坐標(biāo)、半徑、圓弧起點坐標(biāo)和圓弧終點坐標(biāo)繪制圓?。辉谥悬c畫圓算法的基礎(chǔ)上,按照圓弧起點和終點的不同象限,將圓弧劃分I至9段,然后按分段將圓弧畫出來; 在繪制矩形框和矩形填充圖形時,首先確定頂點的坐標(biāo),繪制相應(yīng)的圖形。
7.根據(jù)權(quán)利要求1所述的一種基于FPGA的圖形控制器,其特征還在于:所述的圖形繪制模塊還具有地址生成功能:將計算出來的直角坐標(biāo)系下的地址X、Y變換成可以對DDR進(jìn)行讀寫訪問的復(fù)合地址,復(fù)合地址格式為:DDR_ADDRESS〈= “X地址” & “AP”& “Y地址” & “BANK”。
8.根據(jù)權(quán)利要求1所述的一種基于FPGA的圖形控制器,其特征還在于具有時序控制模塊進(jìn)行行場同步。
9.根據(jù)權(quán)利要求1所述的一種基于FPGA的圖形控制器,其特征還在于所述的控制接口模塊:根據(jù)圖形系統(tǒng)中傳來地址對DDR_SDRAM進(jìn)行讀寫操作,完成對圖形中各個點的描繪,最終在顯示器上顯示出圖形。
【文檔編號】G06F3/14GK103617790SQ201310705826
【公開日】2014年3月5日 申請日期:2013年12月19日 優(yōu)先權(quán)日:2013年12月19日
【發(fā)明者】譚玉雙, 王松, 王敏 申請人:大連遼無二電器有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
鹤岗市| 临漳县| 凯里市| 绥中县| 茶陵县| 遂川县| 郁南县| 紫云| 金秀| 张北县| 理塘县| 桃江县| 丹阳市| 荃湾区| 河源市| 稷山县| 临汾市| 观塘区| 林口县| 长沙县| 会泽县| 桓仁| 馆陶县| 太原市| 桦川县| 莲花县| 明光市| 安丘市| 平昌县| 天津市| 广汉市| 富宁县| 都昌县| 寿光市| 普兰县| 观塘区| 庆城县| 彭山县| 井冈山市| 荣昌县| 惠水县|