第一階段:入門 -> 熟練克服心理恐懼– 代碼這么寫可以編譯通過– 下載程序不會燒毀電路板建立思維定勢– “事非經過不知易”學會了便是“自古華山一條路”
沒用過便是“亂花漸欲迷人眼
第二階段:提高 -> 精通EDA工具——從感性認識到理性認識– 站在EDA工具的角度理解FPGA開發流程EDA工具各個流程的意義,各個階段的輸入輸出EDA工具輸出的報告:Infor和warningHDL語言——積累設計模式– 跨時鐘域處理電路– 有限狀態機電路– 特定領域的數據通路電路– 片上總線FPGA芯片——從邏輯特性到物理特性
– 搞定時序分析和約束– 看懂RTL視圖和Technology視圖第三階段:從業 -> 專業從產品需求出發認識你的芯片– 芯片之內深刻理解FPGA底層結構與應用場合的對應關系– 芯片之外FPGA外圍支持電路以及高速接口FPGA與軟件接口的設計和調試做出你的產品– 公司業務– 項目流程– 領域知識
個人的成長+成功的項目給剛剛從業的FPGA工程師的幾點忠告– 珍視你的第一份工作從工作中學習,在工作中成長記工作日志,寫博客– FPGA工程師學點軟件,學點“不可綜合語句”數據的分析和可視化工具之間的“膠水”– 使用Linux OS腳本
免費工具開源精神
第二部分:FPGA開發中的敏捷實踐FPGA開發本質上是敏捷的– 相對于芯片開發:靈活 + 快速 = 敏捷
可以隨時更新– 更短的迭代周期可以上板驗證 – 更快的反饋速度敏捷開發的思想需要結合FPGA的自身特點– 相對于軟件開發:上板調試代價更高 – 仿真驗證的必要性距離真實世界更近 – 開發驗證、調試工具的必要性? 驗證、調試工具不是最終產品的一部分? 開發工具、積累工具,合理重用刻意地模仿芯片或者軟件開發都是不可取的案例分享案例一:用Virtual JTAG加速上板驗證
– 問題1:缺少外部芯片的仿真模型。– 解決1:用VJ虛擬出一個“串口控制臺”,通過接口邏輯層,向外部芯片發送“寫”和“讀”命令。驗證接口邏輯層,積累操作外部芯片的腳本。通過這一接口,把最終產品中需要用狀態機來實現的控制電路,暫時替換為可以用PC機軟件來實現的腳本;把FPGA上的硬件調試轉化為了PC端軟件調試,加速了調試過程。– 敏捷思想:把項目中的風險,在早期的迭代中加以解決。
– 問題2:外部設備行為復雜,測試向量覆蓋率不夠、仿真速度慢。– 解決2:用VJ設計一個真實行為捕獲模塊,豐富測試向量。用VJ虛擬未實現的關鍵邏輯模塊,上板測試調試。– 敏捷思想:反思回顧,發現開發瓶頸,持續改進方法、工具。提早集成、提早測試。案例二:FPGA開發中引入回歸測試和持續構建
– 問題1:軟件的驅動層(C)和FPGA的接口層(V)需要測試和調試FPGA需要回歸測試來保證持續開發的質量– 解決1:用SystemVerilog DPI連接C和Verilog用CppUtest測試框架搭建FPGA回歸測試環境– 敏捷思想:回歸測試
– 問題2:多人協作開發中代碼的質量保證FPGA需要自動構建來實現及時發布– 解決2:用Tcl腳本實現項目編譯、仿真的自動化用Hudson CI來實現多個仿真、編譯工程的自動構建和健康度報告– 敏捷思想:每日構建
-
FPGA
+關注
關注
1626文章
21678瀏覽量
602005 -
芯片
+關注
關注
454文章
50460瀏覽量
421966 -
EDA工具
+關注
關注
4文章
265瀏覽量
31717
原文標題:如何成長為一名優秀的FPGA 工程師?
文章出處:【微信號:edn-china,微信公眾號:EDN電子技術設計】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論