FPGA牛人的經驗談

2021-09-22 11:01:03 字數 2920 閱讀 3271

作者嵌入式玩耍者

我相信「如果有夢想,就會實現!」

在ic工業中有許多不同的領域,ic設計者的特徵也會有些不同。在a領域的乙個好的ic設計者也許會花很長時間去熟悉b領域的知識。在我們職業生涯的開始,我們應該問我們自己一些問題,我們想要成為怎樣的ic設計者?

消費?pc外圍?通訊?

微處理器或dsp?等等?

ic設計的基本規則和流程是一樣的,無論啥樣的都會加到其中。hdl,fpga和軟體等是幫助我們理解晶元的最好工具。ic的靈魂是知識。

因此我們遇到的第乙個挑戰將是獲得設計的相關資訊,然後理解資訊並應用它。

但是有些資訊不是免費的,我們需要加入一些協會或從如ieee/iso等那些組織購買一些文件。設計者應該有很強的背景知識來很快的理解他們,甚至能改進存在的標準或。乙個好的設計者應該應該有足夠的設計技能和工具應用知識並且不斷的積累他們。

例如:8口乙太網轉換hub控制器

需要知識:ieee802.3標準,包括10mhz乙太網和100mhz快速乙太網。

相關領域:非同步傳輸模式(atm),ieee802.11無限區域網,ieee1394,usb等。

hdl,計算機**和只能解決asic設計流程的數字部分。如果在ic中有任何模擬部分,他將依賴模擬設計者或從另外的廠家購買。甚至一些純數字部分也能從另外一些廠家購買以加速上市時間。

那些不是被我們設計的部分稱為ip,包括hdl**,網表,硬核。對於我們設計的技術取決於硬核。一些ip是非常貴的,如在usb2.

0中的 phy。一些小的公司沒有足夠的人力和軟體資源來完成有些工作,甚至他們不能在缺貨期預定足夠的晶原,因此涉及服務公司取代了他們的工作。但並不是每個ip都滿足我們的需要,有時我們需要在購買後作一些修改。

我們要在設計前決定所要用到的ips。

在設計開始,設計者必須理解所有相關的標準、規範和演算法。但是有許多方法來應用這些規範和演算法。最好的結構是快速和最小晶元尺寸的結合。

不幸的是,快速的需求常常和最小晶元尺寸的需求是對立的。因此,在hdl編碼工作前規劃乙個最優的結構也是乙個重要的問題。

例如:1:除法器

除數被固定。最快的方法是查表,但是這個方法需要大的記憶體。我們可以可以從被除數中不斷的減去除數直到新的被除數比除數小。

它會花更多的時間但用最少的硬體。還有許多的方法來構建除法器,每種方法都有他自己的優點和缺點。

2:影象處理的動態評估器

從前乙個**中發現最相似的8×8模組,在整個電影剪輯中。最基本的有全搜尋和三步搜尋的方法。許多的**已經討論過優化硬體複雜度和速度的結構,這裡我不再祥解釋。

乙個好的設計者應該要被實際經驗培訓和不斷的。我們要在每個設計工作中非常小心和耐心。因為乙個nre將會消耗大量的金錢和數週的時間,如果他不小心犯錯,設計者將會對金錢和計畫失敗負責。

經驗和小心也許是來完成乙個成功的設計專案最好的方法。

以下條款是一些對乙個穩步的和成功的設計的建議:(可能有些朋友也指出了其中的部分,我這裡只作簡要說明,可能稍有不同)

命名風格:

1不要用關鍵字做訊號名;

2不要在中用verilog關鍵字做訊號名;

3命名訊號用含義;

4命名i/o口用盡量短的名字;

5不要把訊號用高和低的情況混合命名;

6訊號的第乙個字母必須是a-z是乙個規則;

7使模組名、例項名和檔名相同;

編碼風格:記住,乙個好的**是其他人可以很容易閱讀和理解的。

1盡可能多的增加說明語句;

2在乙個設計中固定編碼格式和統一所有的模組,根從專案領導者定義的格式;

3把全部設計分成適合數量的不同的模組或實體;

4在乙個always/process中的所有訊號必須相關;

5不要用關鍵字或一些經常被用來安全綜合的語法;

6不要用複雜邏輯;

7在乙個if語句中的所有條件必須相關;

設計風格

1強烈建議用同步設計;

2在設計時總是記住時序問題;

3在乙個設計開始就要考慮到地電平或高電平復位、同步或非同步復位、上公升沿或下降沿觸發等問題,在所有模組中都要遵守它;

4在不同的情況下用if和case;

5在鎖存乙個訊號或匯流排時要小心;

6確信所有暫存器的輸出訊號能夠被復位/置位;

7永遠不要再寫入之前讀取任何內部儲存器(如sram)

8從乙個時鐘到另乙個不同的時鐘傳輸資料時用資料緩衝,他工作像乙個雙時鐘fifo;

9在vhdl中二維陣列可以使用,它是非常有用的。在verilog中他僅僅可以使用在測試模組中,不能被綜合;

10遵守register-in register-out規則;

11像synopsys的dc的綜合工具是非常穩定的,任何bugs都不會從綜合工具中產生;

12確保fpga版本與asic的版本盡可能的相似,特別是sram型別,若版本一致是最理想的;

13在嵌入式儲存器中使用bist;

14虛單元和一些修正電路是必需的;

15一些簡單的測試電路也是需要的,經常在乙個晶元中有許多測試模組;

16除非低功耗不要用門控時鐘;

17不要依靠指令碼來保證設計。但是在指令碼中的一些好的約束能夠起到更好的效能(例如前向加法器);

18如果時間充裕,通過時鐘做乙個多鎖存器來取代用mux;

19不要用內部tri-state, asic需要匯流排保持器來處理內部tri-state;

20在top level中作pad insertion;

21選擇pad時要小心(如上拉能力,施密特觸發器,5伏耐壓等);

22小心由時鐘偏差引起的問題;

23不要試著產生半週期訊號;

24如果有很多函式要修正,請乙個乙個地作,修正乙個函式檢查乙個函式;

25在乙個計算等式中排列每個訊號的位數是乙個好習慣,即使綜合工具能做;

26不要使用hdl提供的除法器;

27削減不必要的時鐘。它會在設計和布局中引起很多麻煩,大多數fpga有1-4個專門的時鐘通道;

以上是大家在設計中最好遵守的要點,它可以使你的設計更好。

跳槽的經驗談

首先,當我們畢業踏上社會,找到自己的乙份工作,要懂得珍惜,要有感恩的心態,要有負責任的態度,而不是把這家公司當做你的練手的地方,因為你是拿著別人的錢,俗話說的好,吃人嘴短,拿人手短 我們要有職業精神,也許我們的工作比較枯燥,或者沒有技術含量,但這不是你沒有本事的理由,在這行,只要你肯動腦筋,你的本事...

經驗 四大牛校考研牛人成功經驗談

經常看見一句話叫 不幸有各自的不幸,但是幸福的人的幸福都是一樣的 在2011年的考研劃上句話的時候,也是 考不上的各有考不上的原因,但是考上的經驗都是相似的 我們總結2011年名校高分的牛人考研經驗,不僅是對於2011年的研究生考試的一次總結,最重要的意義是對2012的考研族來說,這些寶貴的經驗是很...

跳槽經驗談

有個很重要的事實,沒有幾個公司願意在你面試時就給你開個天價,你的能力水平一概不知,他有什麼理由一口塞給你乙個大饅頭呢?5.你對原公司有什麼看法?你會遇到這種坑爹面試題 這是跳槽者面臨的雙重困境面試題。若你覺得原公司好,為何你要離開 測謊 若你覺得原公司這不好那不好,你不是合格的職業人 職業操守 參 ...