從錯誤中學(xué)習――不再仿真
前幾天,我與一位從事硬核FPGA設計的設計師談起我開(kāi)發(fā)系統芯片的方式。由于我提到了‘FPGA’,因此他問(wèn)我對于仿真器的感覺(jué)怎么樣。而當我告訴他我已近三年不依賴(lài)仿真器后,他大吃一驚,覺(jué)得不可思議。
本文引用地址:http://dyxdggzs.com/article/151750.htm這同我與許多其他FPGA設計師圍繞著(zhù)提高設計抽象度的對話(huà)很類(lèi)似。正如軟件開(kāi)發(fā)人員非常依賴(lài)調試器和代碼仿真器來(lái)查找錯誤和驗證功能一樣,FPGA設計師同樣一直習慣利用仿真器來(lái)進(jìn)行這些工作。仿真器為FPGA設計師提供了開(kāi)發(fā)復雜IP所需的控制手段和可視性,隨后設計師們設計流程就可以以良好的仿真工具為中心組織起來(lái)。不進(jìn)行仿真而從事設計的觀(guān)念是完全違背常規的。
與此相對的是電路板設計師所用的方法。電路板設計師就是那些從事將現成元器件拼接在一塊印刷電路板上來(lái)從而制造出新型電子產(chǎn)品的人。通過(guò)假定這些元器件滿(mǎn)足其產(chǎn)品資料的規范,電路板設計師將元器件視為“黑盒”,他們將精力集中于圍繞元器件之間的相互通信上而非元器件內部的開(kāi)發(fā)上,對系統進(jìn)行整體仿真的情況十分少見(jiàn)。相反它們使用測試代碼和/或仿真源代碼進(jìn)行樣品設計和“實(shí)況”運行。
和電路板設計師,在門(mén)級/門(mén)電路水平上對整個(gè)系統進(jìn)行仿真的情況一樣,FPGA設計師不對系統進(jìn)行仿真的情況一樣是令人費解的。隨著(zhù)電路板設計師日益使用FPGA和現成IP來(lái)縮小設計和加快開(kāi)發(fā)速度,什么才是最合適的開(kāi)發(fā)方法呢?他們應當不仿真還是仿真?
FPGA仿真最適合開(kāi)發(fā)定制IP的設計師。但是,一旦IP得到驗證,使用該IP下游的設計師們重復這一工作就沒(méi)有多少價(jià)值了。相反,他們應當采取與電路板設計師相似的策略,也就是進(jìn)行 “實(shí)況”樣品設計。當然,需要有一個(gè)合適的執行平臺才能使其成為可能。
對許多傳統FPGA設計師來(lái)說(shuō),使用這一方式的主張仍然讓人覺(jué)得不太舒服。但是,隨著(zhù)設計從抽象水平不斷朝著(zhù)系統水平上升,在仿真基礎開(kāi)發(fā)方面,這種方法仍然是比較好的。具有諷刺意味的是,采用下一代設計工具的電路板設計師實(shí)際上能夠比傳統使用者更好地利用FPGA。
評論