嵌入式“智能”的興起
微處理器出現帶動了電子產品開發的革命,因為可以把設計問題的各個部分轉移到高度靈活、易于升級的軟件功能上。所以,開發電子產品的本質只剩下了兩個設計層次,第一層是使用印刷電路板(PCB)上的分立器件搭建物理平臺,第二層則涉及到設計中可編程部分的開發,并在設計中或制造后將它們“裝載”進物理設計中去。
可編程器件如FPGA的興起,重新定義了軟件和硬件間的界線,也讓工程師重新思考如何在產品中添加“智能”。基本上,這些可編程部分包括設計內運行在執行平臺上的嵌入式軟件,以及在FPGA等器件上實現的可配置硬件。隨著越來越多功能從分立器件轉移到可編程領域,牽涉到的各利,設計也要融合在一起。
這也是Altium公司在原先Protel系列的基礎上推出一體化開發系統Altium Designer的原因。Altium Designer在單一的設計環境中集成了板級和FPGA系統設計、基于FPGA和分立器件的嵌入式軟件開發以及PCB板圖設計、編輯和制造。
靈活的設計
Altium中國區總經理曲剛解釋說:“傳統的FPGA開發工具使用取決于工程師的HDL設計經驗和對可編程器件體系的結構知識,并且大量的功能IP模塊的源碼和評估也是一大挑戰。”所以設計流程在概念上與使用硬連接在PCB板上的器件有極大的不同。AltiumDesigner將電路功能從板卡轉移到FPGA等可編程器件,FPGA內部的邏輯可以改變和重新配置,在板級設計時可不受硬連接器件的限制。
在Altium Designer中,可采用原理圖編輯器將大量預置的FPGA器件連接在一起創建電路設計。Altium Designer包含器件范圍從通用的邏輯功能器件(計數器、乘法器和各種邏輯門)到完整的32位處理器和高級外設。使用這些器件無需考慮版權問題,這排除了從FPGA供應商獲得IP的困難。AltiumDesigner是一個獨立的設計環境,用戶在使用FPGA構件系統功能時,可以把設計定位于面向多個不同公司的FPGA,包括Actel、Altera、Lattice和Xilinx。Altium Designer的用戶可以不固定干某一個FPGA供應商或產品系列,從而在FPGA之間移植設計,抓住機會,規避風險。
除了通過預置FPGA創建需要的系統功能,Altium Designer可通過VHDL和Verilog硬件描述語言輸入設計邏輯,創建IP模塊和定義特定邏輯功能,并以圖形化的方式放進原理圖編輯器中,或者將生成的邏輯模塊加入到Altium Designer的FPGA庫中。
Altium Designer在最新版本中添加了對第三方處理器的支持。主要FPGA供應商提供的大量軟處理器都是定位于自己的FPGA系列,雖然性能更高,但是用戶被鎖定任特定的FPGA器件上。第三方處理器支持是指可以將第三方應用程序生成的FPGA軟處理器(像Xilinx的Core Generator和Altera的Megafunction Wizard)導入Altium Designer一體化的開發系統中。導入向導解決了與導入第三方核心設計關聯的問題,智能地導入必需的文件,更新目標項目結構。
一體化開發流程
Altium Designer一體化開發的特性集中體現在FPGA設計和集成它的板卡設計的無縫連接。Altium Designer統一了FPGA和PCB設計流程,支持兩者之間的I/O同步。當FPGA還未開發時,用戶在沒有FPGA配置的情況下開始PCB物理設計步驟,而在FPGA過程中,新的引腳和I/O分配可轉換到PCB設計項目,FPGA原理圖可自動更新,反映出新的I/O定義。
作為一體化開發流程的一部分,AltiumDesigner還提供了一組FPGA虛擬儀器。Altium Designer中,FPGA作為預先驗證和綜合的邏輯模塊,可直接從庫中提取和使用,但是用戶依然需要測試這些器件構成的系統整體功能。FPGA虛擬儀器使用方法與板級平臺測試儀器的使用方法類似,用戶在運行內部對連接點進行檢測和仿真。虛擬儀器同樣是預先集成的邏輯模塊。為了簡化對系統仿真的依賴,Altium Designer添加了叫做“Live Design”的交互開發流程,用來調試FPGA系統設計。
Altium Designer對開發流程的統一延伸到了處理器的嵌入式軟件設計。用戶可以創建并編輯代碼、編譯和仿真程序,自系統上進行完整的源代碼調試。Altium Designer包含所有支持處理器的完整編譯工具。