《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > FPGA常犯錯誤集錦

FPGA常犯錯誤集錦

2015-10-15
關鍵詞: 錯誤集錦 FPGA

  一個合格的FPGA工程師需要掌握哪些知識?這里根據(jù)自己的一些心得總結一下,其他朋友可以補充啊。
  1.Verilog語言及其于硬件電路之間的關系。
  2.器件結構(最好熟練掌握Spartan3,Vertix4系列的器件結構,及其資源于Verilog行為描述方法的關系。)。
  3.開發(fā)工具(熟練掌握Synplify,Quartus,ISE,Modelsim)。
  4.數(shù)字電路(組合電路,觸發(fā)器,特別是D觸發(fā)器構成分頻器,奇數(shù)倍分頻占空比為50%,時序電路,并且能用Verilog語言描敘。)。
  5.熟悉FPGA設計流程(仿真,綜合,布局布線,時序分析)。
  6.熟練掌握資源估算(特別是slice,lut,ram等資源的估算)。
  7.同步設計原理。
  8.熟練掌握基本概念(如建立時間,保持時間,流量(即所做FPGA設計的波特率)計算,延遲時間計算(所做FPGA設計),競爭冒險,消除毛刺的方法等等)。
  9.具備具體設計經(jīng)驗(對應屆生而言如畢業(yè)設計)。
  10.良好的設計思路(流水線設計即熟稱打拍子,在速率資源功耗之間的折中考慮)。
  一個合格的FPGA工程師至少在以下三個方面的一個非常熟悉:
  1.嵌入式應用
  2.DSP應用
  3.高速收發(fā)器應用
  將自己的走過的彎路和總結的經(jīng)驗與大家分享一下,希望對您有一點點的參考價值。
  首先從先從如何成為一個合格的設計者說起吧!初學者覺得一切都是挑戰(zhàn),一切都新鮮,不知從何處下手。我總結了學習EDA邏輯設計的4個步驟,請拍磚!
  1。 首先,應該好好學習一下FPGA/CPLD的設計設計流程。
  不要簡單的以為就是設計輸入-》仿真-》綜合-》實現(xiàn)那么一回事,要摳細,要學精,要多問每個步驟的注意事項,區(qū)分相關步驟的聯(lián)系和區(qū)別。比如要搞清楚功能仿真、綜合后仿真、Translate后仿真、Map后的仿真、布局布線后仿真的作用都是什么,什么時候應該做,什么時候可以不做這些仿真!學習清楚了設計流程最大的好處就是有利于培養(yǎng)良好的EDA設計習慣,日后會受益非淺!
  2。 關于設計輸入和Coding Style。
  設計輸入最好學習HDL語言,Verilog、VHDL都可以,可以把狀態(tài)機輸入和原理圖輸入作為補充內(nèi)容,但不是重點。我在前面的帖子已經(jīng)反復強調(diào)了 Coding Style的重要性。因為它是邏輯設計人員的一個基本業(yè)務素質。而且Coding Style不是看幾篇文章,學幾條原則就能夠成為高手的,他需要您在工作中不斷的體會和積累,在學習的最初,有Coding Style的意識,設計者就會有意的積累,對日后發(fā)展很有好處。反之則后患無窮。
  3。 培養(yǎng)硬件的意識,培養(yǎng)系統(tǒng)的觀念。
  我也在交流和授課的時候很強調(diào)硬件意識,如果從形式上看,邏輯設計隨著智能化和優(yōu)化手段的不斷發(fā)展最后會越來越靈活,越來越簡單。比如我們現(xiàn)在在使用大型 FPGA時就很少談如何用Floorplanner優(yōu)化,手動布線,如果用手動方式,其工作量太大了??!一個設計的優(yōu)劣,關鍵看其設計者的硬件意識,和系統(tǒng)意識。硬件意識就是要求先做到對設計的硬件胸有成竹,HDL代碼僅僅是一個表述心中硬件的工具。系統(tǒng)意識要求設計者有宏觀的觀念,對設計的全局有個合適的安排,比如時鐘域,模塊復用,約束,面積,速度等問題。要知道在系統(tǒng)上復用模塊節(jié)省的面積遠比在代碼上小打小鬧來的實惠得多。
  4。 最后才是工具軟件的使用。
  現(xiàn)在EDA軟件都越來越友好,越來越“傻瓜化”,如果您費了1年還沒有基本摸清軟件的使用,我敢說,那是一個比較爛的軟件(起碼在用戶接口上),因為這是和EDA這種方式的理念背道而馳的。但是作為設計者,軟件是工具,應該熟練掌握各個步驟不同方面的軟件,這樣才能最大程度地發(fā)揮您的聰明才智,才能使您如虎添翼!
  需要對相關器件的要有一定的了解,對和這些器件之間的控制、數(shù)據(jù)交換等通信要清晰,對性能和功能清楚。而且作為基本的素質要求要能看懂原理圖,和PCB要不沒法調(diào)試,呵呵。
  另外比較重要的一點是對FPGA設計的一些基本原則要有一個清晰的認識,比如:
  “面積和速度的互換”,“流水線設計方式”,“乒乓操作”。
  對最基本和最常用的模塊要非常熟悉,比如單口/雙口RAM,同步/異步FIFO等等。
  除了問題要多想想自己的設計。雖然綜合,布線工具的性能有差異,但是一個設計的優(yōu)劣根本還是設計者的思路是否巧妙。當我們的設計達不到要求或者性能太差的時候,請不要埋怨綜合工具太濫,布線結果太差,因為工具不會想人那么聰明。這時候,我們應該靜下心,想一下自己的設計是不是有什么問題,結構是否合理,代碼的風格是否符合工具的要求。系統(tǒng)結構的改進帶來的優(yōu)化遠遠超過最好的優(yōu)化工具所能達到的結果

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。