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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > FPGA工程師手記:FPGA系統(tǒng)設計黃金法則

          FPGA工程師手記:FPGA系統(tǒng)設計黃金法則

          作者: 時間:2013-07-22 來源:網絡 收藏

          不管你是一名邏輯設計師、硬件或系統(tǒng),甚或擁有所有這些頭銜,只要你在任何一種高速和多協(xié)議的復雜系統(tǒng)中使用了,你就很可能需要努力解決好器件配置、電源管理、IP集成、信號完整性和其他的一些關鍵設計問題。

          本文引用地址:http://www.ex-cimer.com/article/189562.htm

          不過,你不必獨自面對這些挑戰(zhàn),因為在當前業(yè)內領先的公司里工作的應用每天都會面對這些問題,而且他們已經提出了一些將令你的設計工作變得更輕松的設計指導原則和解決方案。掌握設計的三大黃金法則,讓你設計更輕松。

          一.面積與速度的平衡互換原則

          這里的面積指的是FPGA的芯片資源,包括邏輯資源和I/O資源等;這里的速度指的是FPGA工作的最高頻率(和DSP或者ARM不同,F(xiàn)PGA設計的工作頻率是不固定的,而是和設計本身的延遲緊密相連)。 在實際設計中,使用最小的面積設計出最高的速度是每一個開發(fā)者追求的目標,但是“魚和熊掌不可兼得”,取舍之間展示了一個開發(fā)者的智慧。

          1.速度換面積

          速度優(yōu)勢可以換取面積的節(jié)約。面積越小,就意味著可以用更低的成本來實現(xiàn)產品的功能。速度換面積的原則在一些較復雜的算法設計中常常會用到。在這些算法設計中,流水線設計常常是必須用到的技術。在流水線的設計中,這些被重復使用但是使用次數(shù)不同的模塊將會占用大量的FPGA資源。對FPGA的設計技術進行改造,將被重復使用的算法模塊提煉出最小的復用單元,并利用這個最小的高速代替原設計中被重復使用但次數(shù)不同的模塊。當然,在改造的過程中必然會增加一些其他的資源來實現(xiàn)這個代替的過程。但是只要速度具有優(yōu)勢,那么增加的這部分邏輯依然能夠實現(xiàn)降低面積提高速度的目的。

          可以看到,速度換面積的關鍵是高速基本單元的復用。

          2.面積換速度

          在這種方法中面積的復制可以換取速度的提高。支持的速度越高,就意味著可以實現(xiàn)更高的產品性能。一些注重產品性能的應用領域可以采用并行處理技術,實現(xiàn)面積換速度。

          二.硬件可實現(xiàn)原則

          FPGA設計通常會使用HDL語言,比如Verilog HDL或者VHDL。當采用HDL語言來描述一個硬件電路功能的時候,一定要確保代碼描述的電路是硬件可實現(xiàn)的。

          Verilog HDL語言的語法與C語言很相似,但是它們之間有著本質的區(qū)別。C語言是基于過程的高級語言,編譯后可以在CPU上運行。而Verilog HDL語言描述的本身就是硬件結構,編譯后是硬件電路。因此,有些語句在C語言的環(huán)境中應用是沒有問題的,但是在HDL語言環(huán)境下就會導致結果不正確或者不理想。如:

          for(i=0;i16;i++)

          DoSomething();

          在C語言中運行沒有任何問題,但是在Verilog HDL的環(huán)境下編譯就會導致綜合后的資源嚴重浪費。

          三.同步設計原則

          同步電路和異步電路是FPGA設計的兩種基本電路結構形式。

          異步電路的最大缺點是會產生毛刺。同步設計的核心電路是由各種觸發(fā)器構成的。這類電路的任何輸出都是在某個時鐘的邊沿驅動觸發(fā)器產生的。所以,同步設計可以很好地避免毛刺的產生。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();