freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vga圖像顯示控制器設(shè)計報告(參考版)

2024-08-31 17:34本頁面
  

【正文】 面積優(yōu)化即資源利用率的降低, 速度優(yōu)化即用更。參看附錄圖 RTL圖。使用的描述語句主要是判斷和選擇,其中涉及較多比較數(shù)值大小的操作,根據(jù)比較結(jié)果選擇對進(jìn)行信號賦值。參看附錄圖 RTL圖。純色模式相對簡單, CASE語句綜合成為了選擇編碼器。報告 第 38頁 VGAColor 模塊產(chǎn)生橫彩、縱彩、純色四種模式的顏色。參看附錄圖 RTL圖。 VGASig模塊產(chǎn)生 VGA掃描時的行列同步信號和消隱信號,主要是根據(jù) PixelCNT模塊的計數(shù)信息,進(jìn)行比較,在滿足條件時輸出同步和消隱信號。中間一個六位 colorstmp 信號作為緩存,與消隱信號 hen 和 ven相與后輸出給 VGA 接口。 VGAMode 模塊輸入狀態(tài)控制信號 SW1 和 SW0 以及 VGA 消隱信號,完成狀態(tài)的轉(zhuǎn)移操作和 VGA顏色信號的生成。 PixelCNT 模塊是依靠計數(shù)和比較來輸出像素位置的信息,生成的電路中使用的主要邏輯器件也是計數(shù)器和比較器。此外,時鐘模塊可以考慮將計數(shù)器級聯(lián),減少邏輯資源的使用,但是以犧牲運行速度為代價的,但本系統(tǒng)非高速系統(tǒng),可以使用。 圖 QuartusII 編譯綜合 后各實體占用資源詳表 對各子模塊分析如下。報告 第 37頁 再進(jìn)一步從圖 進(jìn)行分析,可以看出,資源占用最多的是 UserMode 子模塊,這是很容易理解的,該模塊定義了正方形色塊,僅這一個定義就采用了四個與操作,每個與操作塊內(nèi)部又有 10 位的比較器,運動圖形的產(chǎn)生運用了多處算數(shù)運算與比較,消耗的器件資源是很可觀的。邏輯單元占用率 34%。行為級描述可能與實際綜合的電路產(chǎn)生不一致,需要謹(jǐn)慎對待。一個顯見的結(jié)論是描述代碼的長度和綜合后的電路形式與資源占用無必然聯(lián)系。 設(shè)計之初對資源使用沒有多少概念,時常以軟件的思想描述硬件,在描述中使用乘法等資源耗費嚴(yán)重的操作,也曾使用過嵌套多層的 IFELSE 語句,產(chǎn)生很長的選擇器,降低了模塊的可靠性,增加處理延時。 數(shù)字電路綜合 實驗數(shù)字系統(tǒng)的設(shè)計,例如 VGA顯示控制器的設(shè)計,重點不在于把子系統(tǒng)或者子模塊中的數(shù)學(xué)表達(dá)式寫得有多么復(fù)雜,圖形有多么絢麗,也不在于可以在子系 統(tǒng)或者子模塊中實現(xiàn)復(fù)雜運動模式的控制。如果換用擁有更多邏輯資源的實驗板,可以支持編寫更為復(fù)雜的圖形,如圓形或者是菱形等,所要做的只是給出坐標(biāo)方程即可。限于學(xué)期末時間緊張,也因為設(shè)計的重點不在于顯示圖形多 么復(fù)雜,沒有再進(jìn)一步深入設(shè)計用戶子模塊。可以在不改變系統(tǒng)框架和模塊間電路連接關(guān)系、不增加模塊的情況下對用戶模塊 UserMode 或者顏色圖形產(chǎn)生模塊 VGAColor 進(jìn)行任意的有效修改,實現(xiàn)其他功能。報告 第 35頁 第三部分 結(jié)果與分析 實現(xiàn)功能說明 本實驗完成的 VGA 顯示控制器,完成了課題要求的所有功能(參看 節(jié)“課題要求”),并在此基礎(chǔ)上,設(shè)計完成了用戶模式,實現(xiàn)了三種用戶子模式圖形的動態(tài)顯示,完成設(shè)計目標(biāo)(參看 “設(shè)計目標(biāo)”)。比較好的調(diào)試方法是下載到板上通過 CRT顯示器直接觀察,然后處理相應(yīng)的問題與錯誤。對于動態(tài)圖形的顯示,關(guān)鍵列出像素信息的不等式,然后依據(jù)一定的條件控制圖形參考坐標(biāo)的移動。對于子模塊 UserMode,由于其圖形是動態(tài)的,且包含了 3種子模式 US0、 US US2,仿真出波形難以觀察出有效信息。 圖 狀態(tài) S2 仿真波形圖 以上完成了重要模塊和 S0、 S S2三種狀態(tài)的仿真。 圖 狀態(tài) S1 仿真波形圖(縱向彩色條幅依次掃過) 圖 S2(純色模式)的仿真波形圖,圖中 SW1和 SW0位置放置相反,故“ 01”實際代表的是 S2 狀態(tài),仿真時將 SW1 設(shè)置為強(qiáng)制高電平, SW0 為強(qiáng)制低電平, SW7~ SW2 作為撥碼開關(guān)的輸入,將其設(shè)置為隨機(jī)值,以產(chǎn)生可能的 64 種顏色組合,其跳變周期是 1 秒。報告 第 34頁 圖 所示為 S1 狀態(tài) 時縱向彩色條幅的仿真,沿行掃描時顏色信號 RGB 的值依次按照定義代碼中的定義變化,同樣也可看出消隱區(qū)的作用。從行列消隱信號 hs 和 vs 的狀態(tài)還可看出,在行消隱區(qū) RGB顏色值為黑色 000000。 圖 SW1和 SW0為“ 00”狀態(tài),即狀態(tài)機(jī)處于 S0狀態(tài),輸出橫向彩色條幅時的仿真。 圖 用戶模式 UserMode 狀態(tài)機(jī)的仿真 以下再進(jìn)一步對每個狀態(tài)進(jìn)行仿真驗證。報告 第 33頁 圖 (b) 頂層狀態(tài)機(jī)仿真波形圖 而圖 給出的底層用戶模式下的狀態(tài)機(jī)的仿真,由于其狀態(tài)轉(zhuǎn)移是以按鍵為條件的,為典型的 Mealy 型狀態(tài)機(jī),故以時序邏輯實現(xiàn)其狀態(tài)轉(zhuǎn)移,狀態(tài)機(jī)的行為可仿真。 綜合器對狀態(tài)機(jī)的識別和優(yōu)化可能超出了系統(tǒng)設(shè)計者的預(yù)期,這也是硬件設(shè)計中應(yīng)該注意的問題,而且不同的綜合軟件 可能出現(xiàn)不同的綜合結(jié)果。得到的仿真結(jié)果如圖 (b)所示。當(dāng)引入 S0、 S S S3三個獨立的狀態(tài)仿真時,編譯顯示警告信息:“ Warning: Can39。單純由按鍵直接控制下一狀態(tài)和 Mealy 與 Moore 型狀態(tài)機(jī)的定義存在很大差別,其狀態(tài)轉(zhuǎn)移是強(qiáng)制的,且與當(dāng)前狀態(tài)無關(guān),而僅與輸入狀態(tài)相關(guān)。但實際下載到實驗板實驗時沒有錯誤發(fā)生。圖 (a)為頂層狀態(tài)機(jī)的仿真,此時直接引入枚舉類型變量 state 進(jìn)行仿真。 對關(guān)鍵的模塊進(jìn)行仿真以后,進(jìn)一步對系統(tǒng)整體進(jìn)行仿真驗證。 圖 PixelCNT 模塊仿真圖(列計數(shù) vt 值) 數(shù)字電路綜合 實驗 圖 Clock 模塊仿真圖( 25MHz 分頻) 圖 Clock 模塊仿真圖( 1Hz 和 100Hz 分頻) 由于像素位置信息對于多個模塊中的計數(shù)判斷有重要作用,故進(jìn)行仿真驗證。如圖 和圖 。對關(guān)鍵模塊的仿真結(jié)果和分析如下。仿真環(huán)境是 QuartusII 。 數(shù)字電路綜合 實驗 end if。 hmov = hmovus2。 hmov = hmovus1。 hmov = hmovus0。 最后再利用選擇器對三種子模式的行列位置控制信號進(jìn)行選擇,完成模式的選擇,同時避免多驅(qū)動問題。 end if。 end if。 when others = null。 when 00010 = vmovus2 = vmovus2 1。 else case button is when 01000 = hmovus2 = hmovus2 1。報告 第 30頁 process(clk100hz) user state:us2 begin if (rising_edge(clk100hz)) then if (userstate = us2) then if((hmovus2 610) or (vmovus2 450) or (hmovus2 30) or (vmovus2 30)) then hmovus2 = 0101000000。報告 第 29頁 任何改變。還有值得注意的是多余按鍵狀態(tài)的處理語句,這在狀態(tài)機(jī)的設(shè)計中是不可忽視的。使用 case 語句根據(jù)按鍵選擇運動方向。 解決問題的思路有兩種,一種是改變邊界檢測的的頻率和位置值改變的頻率,這一方法需要另外產(chǎn)生時鐘信號,將涉及到其它模塊的改動,且不易把握兩種檢測的時序配合關(guān)系,故沒有采用;另一種可 在到達(dá)邊界處加入判斷,導(dǎo)致“突變”反彈,例如 hmovus1 到達(dá) 610,則不讓其增加,而是將 hmovus1 賦值為小于 610 的某個值,如600,該值偏移 610的程度表示了突變的快慢,值越大則在邊界突變反彈越明顯。不妨設(shè)方塊從左往右運動,在前一個進(jìn)程中,當(dāng)hmovus1大于 610的瞬間(精確值為 ) borderlr 值翻轉(zhuǎn),在下面的進(jìn)程中同樣以100Hz的頻率對 borderlr 值進(jìn)行檢測,當(dāng)檢測到 borderlr 值改變的時候,實際的計數(shù)值hmovus1已經(jīng)大于了 610,根據(jù)器件的運行速度不同大于 610的程度不同,此時方塊反向向左運 動,即 hmovus1 進(jìn)行減法操作, hmovus1 必然從大于 610 的值往下減,當(dāng)還未減到小于 610 的數(shù)時電路會再次檢測 hmovus1 的值,發(fā)現(xiàn)大于 610 則 borderlr 值再次翻轉(zhuǎn),結(jié)果導(dǎo)致運動方向的再次反轉(zhuǎn), hmovus1 又進(jìn)行加法操作。因為邏輯上的變化無延時,但實際電路必然有延時。 的描述。 end process。 數(shù)字電路綜合 實驗 end if。 else if(hmovus1 610) then hmovus1 = 1001011000。 need to jump away from border else 100 pixel per second hmovus1 = hmovus1 1。139。在此略去了上下邊界反彈的描述代碼。 end process。 end if。 process(clk100hz) user state:us1 begin Bounce at left and right borders if (rising_edge(clk100hz)) then if (userstate = us1) then if(hmovus1 610 or hmovus1 30) then borderlr = not borderlr。報告 第 27頁 兩個進(jìn)程分別負(fù)責(zé)左右、上下兩組邊界的判斷,置邊界標(biāo)志取反,用以控制反彈時的反向。 下面給出 US1子模式的描述。 end if。)。 else vmovus0 = (others = 39。 end process。 end if。139。)。 else hmovus0 =(others = 39。 vclk = 39。 process(clk100hz) user state: us0 begin pattern39。實現(xiàn)時使用行位置計數(shù)和列位置計數(shù),先行運動后列運動,每秒移動 100 個行像素點。報告 第 26頁 end process。 end if。 else usercolors = 000000。 靜態(tài)方形色塊的描述如下。三個子模塊分別產(chǎn)生三種控制信息,反映在二維坐標(biāo)變量( hmov, vmov)的變化上,以實現(xiàn)動態(tài)圖像的顯示。 要實現(xiàn)動態(tài)圖像的顯示,第一步是繪制靜態(tài)的圖形:正方形色塊。 end if。 when us2 = userstate = us0。 process(scountn) state count button pressed,state changes begin if (rising_edge(scountn)) then case userstate is when us0 = userstate = us1。 end process。 scountmp1 = button(4)。039。報告 第 25頁 begin if (clk100hz39。第一個進(jìn)程中進(jìn)行了按鍵防抖動處理。 signal userstate:userstates :=us0。 狀態(tài)定義如下。 UserMode 模塊的描述 該模塊采用了有限狀態(tài)機(jī)的設(shè)計方法。 end if。 else counter1 = counter1 + 1。 process(clk50m) Time division process: 1hz begin if (rising_edge(clk50m)) then if counter1 = max1 then counter1 = 0。 50MHz分頻到 100Hz和 1Hz思路一致,設(shè)置計數(shù)器,當(dāng)計數(shù)到 max1=24999999輸出波形即可分頻 1Hz。 end if。 25MHz分頻描述如下,從 50MHz分頻到 25MHz分頻只要檢測上升沿即可。 數(shù)字電路綜合 實驗 end if。 end if。039。 process(clk25m) vertical counter begin if (rising_edge(clk25m)) then if (ht = 640+8) then if vt 525 then vt = vt + 1。 end process。 end if。039。 process(clk25m) line counter begin if (rising_edge(clk25m)) then if ht 800 then ht = ht + 1。多個模塊用到該計數(shù)值。依據(jù)時鐘信號進(jìn)行計數(shù)即可,當(dāng)行計數(shù)到 800像素時清空,列計數(shù)到 525時重新計數(shù)。
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1