<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于FPGA及DSP Builder的VGA接口時序和系統(tǒng)設(shè)計

          基于FPGA及DSP Builder的VGA接口時序和系統(tǒng)設(shè)計

          作者: 時間:2012-05-02 來源:網(wǎng)絡(luò) 收藏

          Avalon MM控制

          中,Altera提供了本與SOPC的——Avalon MM。

          Avalon MM接口定義的接口信號主要有片選、讀使能、寫使能、地址,以及數(shù)據(jù)等。根據(jù)外設(shè)的邏輯,選用不同的接口定義信號,通過這些信號Avalon主端(CPU)可以向掛在Avalon總線上的從端外設(shè)寫地址與數(shù)據(jù)信號,Avalon主端外設(shè)也可以主動去獲取Avalon總線上的SRAM或SDRAM中的數(shù)據(jù)。不管是主傳輸還是從傳輸,都需要符合Avalon總線的讀寫才能發(fā)起一次正確的數(shù)據(jù)傳輸??梢岳肁valon MM接口將 的模塊做成自定義外設(shè)。NiosⅡ CPU就可以利用Avalon總線與 中產(chǎn)生的自定義外設(shè)進行通信,在本中對集成到SOPC上的接口的地址賦值為0x1后,數(shù)據(jù)寫入0x1,接口控制器接收到數(shù)據(jù),就會根據(jù)設(shè)計產(chǎn)生信息及RGB信號,在屏幕上顯示圖像。圖3為整個一維信號VGA顯示的結(jié)構(gòu)圖。


          圖3 結(jié)構(gòu)圖

          仿真與硬件驗證

          本設(shè)計在2C70 DSP硬件開發(fā)平臺下驗證。

          借助于DSP Builder中的Signal Complier模塊,可以容易地將設(shè)計完成的系統(tǒng)直接轉(zhuǎn)化成RTL級的硬件描述語言,在QuartusⅡ下完成VGA的驗證與正弦波信號的下載與顯示。

          從顯示器上硬件仿真結(jié)果來看,正弦波的幅度在有效的顯示區(qū)域內(nèi)呈周期性變化,因此當(dāng)顯示器與VGA口的J21相連時,屏幕上正弦波幅度在設(shè)計的范圍內(nèi)顯示,一幅屏幕所顯示的周期數(shù)和DSP Builder中所設(shè)定的一致。在此基礎(chǔ)上還可以調(diào)整正弦波的采樣頻率,控制正弦波的顯示頻率與幅度大小,實現(xiàn)示波器的功能,觀察內(nèi)部的信號。

          結(jié)語

          隨著VGA接口的廣泛使用,這種結(jié)合與DSP Builder的系統(tǒng)級設(shè)計方法已經(jīng)展現(xiàn)優(yōu)勢。從整個設(shè)計流程來看,系統(tǒng)的靈活性強,可靠性高,設(shè)計周期大大縮減,成本降低,且系統(tǒng)的可擴展性強。未來,VGA接口的圖像與視頻監(jiān)控系統(tǒng)應(yīng)用將會很有市場。

          本文引用地址:http://www.ex-cimer.com/article/149151.htm
          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();