隨著EDA平臺服務趨于網絡化,如何通過對資源和流程的有效管理,為用戶提供更為方便安全的遠程EDA平臺調用服務,已成為關鍵問題。在FPGA開發平臺上集成了EDA工具環境,并部署SGD軟件。在實現遠程控制的基礎上構建一個可兼容異構系統的EDA工具遠程調用接口,解決了EDA工具的遠程啟動和圖形界面傳輸問題,得到一種相對簡單方便又有一定安全保障的遠程控制模式,實現可視化的在線虛擬集成電路芯片設計。
1 引言
當前,中國所采用的FPGA芯片基本依賴于進口,研發具有自主知識產權的FPGA芯片具有重要意義。FPGA芯片研發必須使用EDA工具。EDA(Electronic Design Automation)是在CAD技術基礎上發展起來的計算機軟件系統,是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的最新成果,進行集成電路芯片產品的自動設計。EDA集成開發環境IDE(Integrated Development Environment)是指根據集成電路芯片設計流程,將設計流程中各個階段所需要的EDA工具軟件集成在一個硬件平臺上,進行項目設計開發的軟硬件工作環境。在此環境中,項目的設計數據通過文件方式在各個EDA工具之間流轉,直到設計全過程結束。集成電路芯片EDA設計工具很多,其中按市場所占份額排主要有Cadence、Mentor Graphics和Synopsys。這三家都是ASIC設計領域相當有名的軟件供應商。集成電路芯片EDA設計工具包含了集成電路芯片開發的各個領域:前端設計、后端設計和設計驗證。前端設計工具將完成從芯片邏輯部分的概念化設計到芯片邏輯門級表示的工作。后端設計描述了如何使設計結構在芯片上物理實現,關鍵是芯片庫單元的布局和布線。設計驗證將保證芯片滿足功能、時序、功率和其他指標的要求。
21世紀EDA技術的發展日新月異。中國先后在7個國家產業化基地建立了EDA技術與服務平臺。從功能上看,這些EDA平臺上安裝有當前所有主流EDA軟件和測試工具,并配備有相應的設計環境,以租用的方式提供給企業使用。然而,目前能夠以網絡平臺為載體向用戶提供在線IC設計的平臺還很少,僅適用于進駐的企業,對于遠程訪問的企業則無能為力。
本文FPGA開發平臺集成了FPGA芯片設計流程中各個階段所需要的Cadence、Synopsys、Mentor等公司的各種EDA工具,用于研發具有自主知識產權的千萬門級FPGA課題產品。在自主千萬門級FPGA芯片設計課題中有海外設計團隊參與,為了不受地域限制來使用開發平臺上的EDA工具,又不影響數據安全,使用SGD軟件是目前最佳的方法。SGD(Secure Global Desktop)軟件基于互聯網的遠程仿真計算技術,能夠實現可視化的在線虛擬集成電路芯片設計,用戶通過網頁瀏覽器即可使用FPGA開發平臺上集成的EDA工具和資源。在數據安全方面,由于在FPGA開發平臺服務器和用戶終端之間傳輸的僅僅是鼠標鍵盤的輸入和屏幕的變化量,用戶終端只負責交互,所有計算和存儲都在平臺服務器端完成,所以能夠保證設計數據的安全。
2 EDA工具集成和SGD軟件部署總體框架
EDA工具集成和SGD軟件部署總體框架如圖1所示。
圖1 EDA工具集成和SGD軟件部署總體框架
服務器端的功能由SGD Server陣列、SGD Gateway Server、管理服務器以及多臺EDA Tool Server共同承擔。用戶通過互聯網與SGD Gateway Server相連。管理服務器提供用戶認證、許可證管理、版本控制和缺陷追蹤等功能。EDA Tool Server用于各類EDA工具的安裝和運行。 SGD Server陣列為用戶訪問資源和調用工具提供界面和負載均衡。SGD Gateway Server提供安全加密訪問通道。在此架構中,用戶端的運行環境一般為Windows系列,而服務器端的運行環境包括了Linux、Solaris、Windows Server等多種操作系統。
3 EDA工具集成
3.1 NIS服務器
網絡信息服務(NIS)利用客戶機/服務器模式和遠程過程調用(RPC)接口在主機之間進行通訊。網絡信息服務由服務器、客戶機程序庫和一些管理工具組成。在FPGA開發平臺中,用戶一般需要在多臺Linux機器上工作,每臺機器上用相同的用戶名、屬于相同的組、使用相同的密碼。建立NIS服務器,將這些需要共享的信息存放在NIS服務器上統一管理,其他機器都從NIS服務器獲得信息,一旦要更改某個用戶的信息,只需要在NIS服務器上進行更改, 其他機器就自動收到更改后的信息。完成整個NIS網絡環境的建設之后,就能根據設計項目對設計人員進行分組管理,根據所做項目為其配置相應的EDA使用環境。
3.2 網絡文件系統(NFS)
網絡信息服務通常和網絡文件系統一起使用。NFS可用于不同類型計算機和操作系統之間通過網絡進行文件遠程訪問和共享。在FPGA開發平臺中,配置AutoFS Map文件來集中管理NIS域內所有的NFS共享目錄。AutoFS的工作流程是,當客戶端配置好AutoFS Map文件,在客戶端如果有NFS目錄讀寫請求,系統進程automountd就自動把NFS服務器的資源掛接到客戶機上。所有機器通過NFS共用tools目錄,不需要在每臺機器上安裝EDA工具軟件,使得整個EDA設計環境進行集中和統一管理。所有機器通過NFS共用home目錄,用戶登錄到NIS域中的任一臺機器,自己的home目錄內容都相同。
3.3 Modules軟件
隨著EDA工具的更新,系統中一定會存在同一工具的不同版本。版本不同,其路徑、庫和license等環境變量都有可能不同,如果用戶在使用中臨時修改環境變量會比較困難。FPGA開發平臺用Modules軟件進行EDA工具的環境變量管理。modules是一系列腳本的集合,簡化了shell的初始化,允許用戶在工作過程中很容易地修改環境變量,減少其維護難度,提供了一種動態修改應用環境的機制。modules使用以下方式工作,$ module avail列出可以加載的工具, $ module load加載工具,$ module list列出已加載的工具,$ module unload卸載工具。在腳本中還可以設置工具之間的依賴或沖突關系。
3.4 版本控制和缺陷追蹤軟件
在整個FPGA開發流程中,每個設計環節都需要團隊來完成。在多團隊緊密合作開發流程中,版本控制和缺陷追蹤等管理軟件是必不可少的。在FPGA開發平臺上,安裝了SVN、SOS版本管理軟件和bugzilla缺陷追蹤軟件。SVN是開源軟件,適合芯片設計流程中的文檔版本管理。SOS是ClioSoft公司開發的集成電路設計數據版本控制軟件,支持Cadence公司virtuoso平臺的DFII。 開源的Bugzilla是一個搜集缺陷的數據庫,它用于記錄和管理產品缺陷從發現到修復的全流程。
3.5 EDA工具軟件
根據EDA工具對操作系統版本的要求,分別在兩臺tool server上安裝redhat enterprise 4 update 8和redhat enterprise 5 update 8兩個版本的操作系統。集成電路芯片設計集成環境需要滿足foundary廠家PDK庫的要求。PDK(process design kit)是溝通IC設計公司、代工廠與EDA廠商的橋梁。PDK用代工廠的語言定義了一套反映foundary工藝的文檔資料,包含了反映制造工藝的基本數據集。根據PDK對EDA工具及版本的要求,在兩臺tool server上按照FPGA芯片設計流程,集成了設計流程中各個階段所需要的Cadence、Synopsys、Mentor等公司的EDA工具。
4 SGD軟件部署
SGD軟件部署分為兩個部分,SGD網關和由多臺SGD服務器組成的陣列。SGD網關是一種代理服務器,部署在防火墻隔離區(DMZ)。在客戶端與陣列中的SGD服務器建立連接之前,通過SGD網關先在DMZ中對所有連接進行驗證。SGD服務器陣列和其他需要控制訪問權限的應用系統放置SGD網關后側,位于內部網絡中。SGD服務器陣列由多臺SGD服務器組成一個負載均衡和故障轉移組,與管理服務器和tool server連接。
SGD利用遠程控制技術構建一個可兼容異構系統和工具的中間接口,是一種基于圖形模式的遠程控制技術,將遠程主機桌面和應用程序完全地顯示到客戶端,使用戶能夠直觀地對服務端進行操作。在FPGA開發平臺中,EDA工具集成環境中的各種應用,如linux系統的EDA工具和windows系統的各種資源等應用程序,都可以通過SGD遠程顯示,遠程用戶用IE瀏覽器或Firefox瀏覽器通過互聯網就能夠使用FPGA開發平臺上的各種應用軟件。
5 FPGA開發平臺應用
本文介紹的大容量FPGA設計平臺已應用于全自主千萬門級FPGA芯片設計。30多位設計工程師使用該平臺參與全自主千萬門級FPGA芯片設計。團隊中在異地工作的工程師使用SGD遠程登錄到FPGA設計平臺共同參與設計工作。設計團隊采用中芯國際SMIC 40 nm CMOS設計技術,用正向設計的方法,設計基于SRAM配置的面向高性能通用邏輯與信號處理的全自主千萬門級FPGA器件。器件含有數字ASCI電路、全定制電路、數模混合電路以及memory complier等。
6 結束語
本文介紹了FPGA開發平臺中EDA工具集成的各種技術,以及部署SGD軟件實現遠程訪問的方法。FPGA開發平臺是為面向高性能通用邏輯與信號處理的自主千萬門級FPGA課題產品研發建立的設計平臺。在此平臺上設計團隊不受地域限制,通過瀏覽器即可遠程使用平臺集成的各種EDA工具。在FPGA開發平臺上,已經完成第一個全自主千萬門級FPGA的第一次MPW芯片設計,打通了數字ASIC設計、定制設計、數模混合設計全流程。