數字前端後端的區別、以及流程簡介

  • 前端設計(也稱邏輯設計)和後端設計(也稱物理設計)並無統一嚴格的界限,涉及到與工藝有關的設計就是後端設計。
  • 我的理解是:
  • 數字前端以設計架構爲起點,以生成能夠佈局佈線的網表爲終點;是用設計的電路實現想法;
  • 主要包括:基本的RTL編程和仿真,前端設計還能夠包括IC系統設計、驗證(verification)、綜合、STA、邏輯等值驗證 (equivalence check)。其中IC系統設計最難掌握,它須要多年的IC設計經驗和熟悉那個應用領域,就像軟件行業的系統架構設計同樣,而RTL編程和軟件編程至關。
  • 數字後端以佈局佈線爲起點,以生成能夠能夠送交foundry進行流片的GDS2文件爲終點;是將設計的電路製造出來,在工藝上實現想法。
  • 主要包括:後端設計簡單說是P&R,可是包括的東西很多,像芯片封裝和管腳設計,floorplan,電源佈線和功率驗證,線間干擾的預防和修 正,時序收斂,STA,DRC,LVS等,要求掌握和熟悉多種EDA工具以及IC生產廠家的具體要求。html

  • 術語:tape-out—提交最終GDS2文件作加工;Foundry—芯片代工廠,如中芯國際。。。前端

    數字前端設計的通常流程:

      1.    規格制定java

  •       芯片規格,也就像功能列表同樣,是客戶向芯片設計公司(稱爲Fabless,無晶圓設計公司)提出的設計要求,包括芯片須要達到的具體功能和性能方面的要求。
          2.    詳細設計shell

    Fabless根據客戶提出的規格要求,拿出設計解決方案和具體實現架構,劃分模塊功能。目前架構的驗證通常基於SystemC語言,對構架模型的仿真可使用SystemC的仿真工具。其中典型的例子是Synopsys公司的CoCentric和Summit公司的Visual Elite等。編程

          3.    HDL編碼後端

    使用硬件描述語言(VHDL,Verilog HDL,業界公司通常都是使用後者)將模塊功能以代碼來描述實現,也就是將實際的硬件電路功能經過HDL語言描述出來,造成RTL(寄存器傳輸級)代碼。前端工程師

    設計輸入工具:具備強大的文本編輯功能,多種輸入方法(VHDL,Verilog,狀態轉移圖,模塊圖等),語法模板,語法檢查,自動生產代碼和文檔等功能。如Active-HDL,VisualVHDL/Verilog等。數據結構

    RTL分析檢查工具:Synopsys LEDA架構

          4.    仿真驗證less

          仿真驗證就是檢驗編碼設計的正確性,檢驗的標準就是第一步制定的規格。看設計是否精確地知足了規格中的全部要求。規格是設計正確與否的黃金標準,一切違反,不符合規格要求的,就須要從新修改設計和編碼。

    設計和仿真驗證是反覆迭代的過程,直到驗證結果顯示徹底符合規格標準。

    仿真驗證工具Synopsys的VCS,Mentor ModelSim,Cadence Verilog-XL,Cadence NC-Verilog。
          5.    邏輯綜合――Design Compiler

          仿真驗證經過,進行邏輯綜合。邏輯綜合的結果就是把設計實現的HDL代碼翻譯成門級網表netlist。綜合須要設定約束條件,就是你但願綜合出來的電路在面積,時序等目標參數上達到的標準。邏輯綜合須要基於特定的綜合庫,不一樣的庫中,門電路基本標準單元(standard  cell)的面積,時序參數是不同的。因此,選用的綜合庫不同,綜合出來的電路在時序,面積上是有差別的。

    通常來講,綜合完成後須要再次作仿真驗證(這個也稱爲後仿真,以前的稱爲前仿真)

    邏輯綜合工具Synopsys的Design Compiler(DC),Cadence的 PKS,Synplicity的Synplify等。另外,和綜合工具配合使用的還有不少其餘工具,如靜態時間分析工具,等效性檢查工具等等。Synopsys公司和Cadence公司都提供完整的工具包。
          5.1.    STA

    Static Timing  Analysis(STA),靜態時序分析,這也屬於驗證範疇,它主要是在時序上對電路進行驗證,檢查電路是否存在創建時間(setup  time)和保持時間(hold time)的違例(violation)。這個是數字電路基礎知識,一個寄存器出現這兩個時序違例時,是沒有辦法正確採樣數據和輸出數據的,因此以寄存器爲基礎的數字芯片功能確定會出現問題。STA工具備Synopsys的Prime Time。
          5.2.    形式驗證

          這也是驗證範疇,它是從功能上(STA是時序上)對綜合後的網表進行驗證。經常使用的就是等價性檢查(Equivalence Check)方法,以功能驗證後的HDL設計爲參考,對比綜合後的網表功能,他們是否在功能上存在等價性。這樣作是爲了保證在邏輯綜合過程當中沒有改變原先HDL描述的電路功能。形式驗證工具備Synopsys的Formality。前端設計的流程暫時寫到這裏。從設計程度上來說,前端設計的結果就是獲得了芯片的門級網表電路。

  • 數字前端後端區別

下面轉自:http://blog.sina.com.cn/s/blog_875c3b2f01010pi6.html

IC前端主要是數字前端設計、軟件硬件驗證、FPGA驗證等,前端的入門門檻相對後端較低(但其實還相對其餘行業是比較高的)。在北京,就我知道,前端的工程師起薪是7.5k。如今全國合格的前端工程師仍是很是少的,數量缺口達到3萬。

後端主要是模擬部分以及layout,這方面須要及其豐富的經驗,相對應收入會比前端高一點,人才也是奇缺的。人才缺口相對前端就更大了。 同時還有一些IC流程工程師,也是很是吃香的。 前端須要學習的週期相對後端短,後端尤爲是模擬部分,徹底是靠經驗熬出來的,因此若是有毅力,在模擬的路上多走幾年,前途(錢途)也是不可限量的。我有一個同窗,學模擬的,在公司屬於奇缺人才,裁人和他是絕緣體。固然自己實力也很強的, 因此樓主主要看本身吧,喜愛哪一個方面。IC有時候頗有挑戰,有時候很枯燥。像我,debug波形多了,會噁心

數字前端主要包括兩個方面:設計和驗證。設計前期是寫verilog代碼,到後來就是作些架構層面的東西,設計和驗證都是針對邏輯功能而言的,不太關心時序問題
數字後端作實現、流程,主要是學會使用工具軟件後端經驗比較重要。相對而言,前端的門檻較低,後端門檻較高。

咱們來看一下獵頭招聘就明白這兩個概念了。呵呵。。


高級數字電路工程師
工做地點:成都      
職位描述:
1.  完成公司ASIC數字前端的設計和驗證
2.  配合數字後端部門完成ASIC的後端設計;
3.  配合測試部門完成ASIC的測試;
4.  完成相關文檔的整理與編寫。
任職要求:
1.    相關專業本科以上學歷;
2.    4-5年相關工做經驗,具備獨立設計模塊、芯片能力;
3.    熟練掌握Verilog,熟悉芯片的仿真驗證方法,熟悉 NC-Sim CS, Quartus等EDA工具;熟悉ASIC設計流程;瞭解系統總線架構和經常使用軟硬件接口協議。
4.    良好的溝通協調能力及團隊合做精神。

 

  • 數字後端設計工程師

職位描述:
負責數字電路的綜合、自動佈局佈線、時鐘分析、時序修正、電源分析、信號完整性分析、物理驗證、代工廠tapeout等數字後端工做,協助前端工程師完成設計、驗證和時序分析,完成對代工廠數據交接和對客戶技術支持。
任職資格:
1. 微電子相關專業,本科以上學歷。
2. 熟悉SOC從RTL到GDS的完整設計流程;                                                                                                         
3. 可以熟練使用Astro/Encounter、DC/PC、PT、Formality、MentorDFT、StarRC、Calibre等相關設計工具的某一套或幾種;
4. 較好的英文閱讀能力;                                                                                                         
5.高效的學習能力和團對合做精神。

 

  • 數字前端和後端設計工程師須要具有什麼能力

下面轉自:http://yuqix.blog.51cto.com/979066/242564

<前端>

  1. 精通verilog(包括2001)的編程,仿真,測試
  2. 充分掌握邏輯綜合和時序分析
  3. 理解前端常用的各類庫的格式和內容,好比.v, .lib
  4. 瞭解某個應用領域的知識
  5. 學會使用FPGA測試代碼
  6. 具有DFT的基本概念

<後端>

  1. 熟悉後端流程,(IO plan, floorplan, power flan, place, CTS, route)
  2. 熟練掌握一種後端工具的使用
  3. 學會如何使用工具分析功耗及其對設計的影響,(static/dynamic IR-drop, EM等)
  4. 學會使用工具分析和解決cross talk問題
  5. 精通時序分析
  6. 理解後端經常使用庫和文件的格式,內容,生成和轉換,好比: .lib, spice, lef, def
  7. 精通一種unix script語言,如今大多用perl,也能夠用awk。(TCL不是unix script語言,可是也必定要會)
  8. 十分了解circuit design及其工具 (爲DRC/LVS準備的)
  9. 具有DFT的基本概念
  10. 瞭解package design的種類和過程

一個優秀的後端工程師要可以在複雜的結果中,識別出問題的真假,好比時序上的違反,找出解決問題或者防止問題發生的方法,而後靈活有效地使用工具來達到你的要求。
 
做者:china_soc   時間:2007-12-20 17:26

也來講兩句前端工程師:
前端工程師還能夠考慮掌握:

  1. 掌握系統的劃分:功能定義,資源分析,結構劃分等體系結構上的知識.
  2. 掌握關於低功耗,高速度,低面積相關的設計理念
  3. 熟悉或掌握系統仿真平臺的搭建:前仿真,後仿真和atpg仿真等仿真平臺的擴充性和兼容性的知識,仿真必定是一大塊了.
  4. 熟悉或掌握集成電路先後端設計流程:前端和後端設計接口及影響和先後端工具的接口及影響
  5. 除.lib,.v外還應掌握,SDF/SPEF/DSPF/RSPF等數據結構
  6. 熟悉或掌握你全部用的廠家工藝的工藝特性.
  7. 掌握形式驗證工具.
  8. 掌握靜態時序分析工具的使用:好比如何保證你利用靜態時序分析分析經過的設計,流片回來時序必定正確.
  9. 掌握perl語言,shell,makefile語言

 

1)  前端主要負責邏輯實現,一般是使用verilog/VHDL之類語言,進行行爲級的描述。然後端,主要負責將前端的設計變成真正的 schematic&layout,流片,量產。打個比喻來講,前端就像是作藍圖的,能夠功能性,結構性的東西。然後端則是將藍圖變成真正的高樓。

2)  前端設計主要是進行功能設計,代碼的編寫,要會使用硬件描述語言,也就是上面有提到的verilog/VHDL等,固然,也會要使用一些仿真軟件。後端設計須要的則會更加多一些了,包括綜合,到P&R,以及最後的STA,這些工具裏candence和synopsys都有一整套系統的。有關心的能夠去他們的網站看看。

其實前端和後端對於編程沒有特別的要求。前端的設計會須要使用硬件描述語言來寫代碼,可是,須要注意的是,這裏指的是"描述",而不像是C或者 java之類的強調編程技巧啊什麼的。因此,這個選擇就看你本身了,而與編程沒有什麼特別的關係了。

相關文章
相關標籤/搜索