多種EDA工具的FPGA協(xié)同設計
FPGA在電子市場上占有舉足輕重的地位?,F(xiàn)在的問題是:現(xiàn)在市場在FPGA開發(fā)方面的EDA工具令人眼花繚亂,各自側重點不同,性能也不一樣,我們應該如何選擇?為了加速FPGA的開發(fā),選擇并協(xié)調好各種EDA工具顯得非常重要,本文將探討上述問題并給出一種解決方案。本文以Altera公司的FPGA為目標器件,通過開發(fā)實例介紹FPGA開發(fā)的完整的流程及開發(fā)過程中使用到的開發(fā)工具,包括QuartusII、FPGA CompilerII、Modelsim,并重點解說如何使用這三個工具進行協(xié)同設計。
二、FPGA的開發(fā)流程及實例
FPGA的開發(fā)分為設計輸入、功能仿真、設計綜合、前仿真、布局布線、時序仿真、時序分析和編程下載幾個步驟。設計流程如圖1所示。
我們的開發(fā)實例是“帶順序選擇和奇偶檢驗的串并數(shù)據轉換接口”。接口電路可以實現(xiàn)數(shù)據的串并轉換,并根據控制信號確定輸出的并行數(shù)據的順序,以及輸出奇偶檢驗位。開發(fā)實例是用來說明FPGA的開發(fā)流程和各種EDA工具的協(xié)同設計,因此這里的描述重點并在設計本身。開發(fā)實例使用的目標器件是Altera公司FLEX10KE系列的EPF10K30ETC114-1;開發(fā)軟件有QuartusII2.0、FPGA CompilerII 3.6和Modelsim5.6SE。
Quartus II是Altera公司的第四代可編程邏輯器件集成開發(fā)環(huán)境,提供從設計輸入到器件編程的全部功能。 Quartus II可以產生并識別EDIF網表文件、VHDL網表文件和Verilog HDL網表文件,為其他EDA工具提供了方便的接口;可以在Quartus II集成環(huán)境中自動運行其他EDA工具。
Mentor Graphics公司的Modelsim是業(yè)界較好的仿真工具,其仿真功能強大,且圖形化界面友好,而且具有結構、信號、波形、進程、數(shù)據流等窗口。
FPGA Compiler II是一個完善的FPGA邏輯分析、綜合和優(yōu)化工具,它從HDL形式未優(yōu)化的網表中產生優(yōu)化的網表文件,包括分析、綜合和優(yōu)化三個步驟。
如果設計的硬件系統(tǒng)不是很大,對綜合和仿真的要求不是很高,我們完全可以在Quartus II中完成設計。實際上,這個開發(fā)實例完全可以在Quartus II這個集成的開發(fā)環(huán)境中完成。下面,我先介紹一下如何在Quartus II中完成設計,然后再介紹如何利用Quartus II提供的第三方EDA工具的接口與其他EDA工具(包括綜合工具FPGA Compiler II和仿真工具ModelSim5.6SE)完成協(xié)同設計。
1. 基于Quartus II的FPGA的開發(fā)
利用Quartus II軟件的開發(fā)流程可概括為以下幾步:設計輸入、設計編譯、設計時序分析、設計仿真和器件編程。
(1)設計輸入
Quartus II軟件在File菜單中提供“New Project Wizard...”向導,引導設計者完成項目的創(chuàng)建。當設計者需要向項目中添加新的VHDL文件時,可以通過“New”選項選擇添加。在這里我們創(chuàng)建項目“s_to_p”,編寫“s_to_p.vhd文件”,并將文件添加到項目中。
(2)設計編譯
Quartus II編譯器完成的功能有:檢查設計錯誤、對邏輯進行綜合、提取定時信息、在指定的Altera系列器件中進行適配分割,產生的輸出文件將用于設計仿真、定時分析及器件編程。
①首先確定軟件處于Compile Mode,可以通過Processing菜單進行選擇。
②在Processing菜單中選擇Compiler Settings項。在這里可以進行器件選擇、模式設定、綜合和適配選項設定及設計驗證等。我們選擇FLEX10KE系列型號為EPF10K30ETC114-1的器件,并選擇在編譯后進行時序分析。
③單擊Processing菜單下的“Start Compilation”項,開始編譯過程。
④查看編譯結果。編譯結果以樹狀結構組織在Compilation Report中,包含項目的設置信息,以及編譯設置、編譯效果等信息,同時也包含了靜態(tài)時序信息。
(3)設計定時分析
單擊Project菜單下的“Timing Settings...”選項,可以方便地完成時間參數(shù)的設定。Quartus II軟件的時序分析功能在編譯過程結束之后自動運行,并在編譯報告的Timing Analyses文件夾中顯示。其中我們可以得到最高頻率fmax、輸入寄存器的建立時間tsu、輸出寄存器時鐘到輸出的延遲tco和輸入保持時間th等時間參數(shù)的詳細報告,從中可以清楚地判定是否達到系統(tǒng)的時序要求。本設計實例電路的fmax可達到192.31MHz。
(4)設計仿真
Quartus II軟件允許設計者使用基于文本的向量文件(.vec)作為仿真器的激勵,也可以在Quartus II軟件的波形編輯器中產生向量波形文件(.vwf)作為仿真器的激勵。通過Quartus II的波形編輯器,我們編輯波形文件“s_to_p.vwf”用于仿真。接著,在Processing菜單下選擇“Simulate Mode”選項進入仿真模式,選擇“Simulator Settings...”對話框進行仿真設置。在這里可以選擇激勵文件、仿真模式(功能仿真或時序仿真)等,我們選擇時序仿真,單擊“Run Simulator”即開始仿真過程。完成仿真后,我們可以通過時序仿真得到的波形判斷系統(tǒng)設計是否達到要求。
(5)器件編程
設計者可以將配置數(shù)據通過MasterBlaster或ByteBlasterMV通信電纜下載到器件當中,通過被動串行(Passive Serial)配置模式或JTAG模式對器件進行配置編程,還可以在JTAG模式下給多個器件進行編程。利用Quartus II軟件給器件編程或配置時,首先需要打開編程器(在New菜單選項中選擇打開Chain Description File),在編程器中可以進行編程模式設置(Mode下拉框)、硬件配置(Programming Hardware對話框)及編程文件選擇(Add File...按鈕),將以上配置存盤產生.cdf文件,其中存儲了器件的名稱、器件的設計及硬件設置等編程信息。當以上過程正確無誤后,單擊Start按鈕即可開始對器件進行編程配置。這里我們需要根據外圍硬件電路設計的情況進行選擇。
2.多種EDA工具協(xié)同設計
在FPGA設計的各個環(huán)節(jié)都有不同公司提供不同的EDA工具。每個EDA工具都有自己的特點。一般情況,由FPGA廠商提供的集成開發(fā)環(huán)境,如Quartus II,在設計綜合和設計仿真環(huán)節(jié)都不是非常優(yōu)秀,因此一般都會提供第三方EDA工具的接口,讓用戶更方便地利用其他EDA工具。在這方面,作為EDA集成開發(fā)環(huán)境的Quartus II做得很好,不僅可以產生并識別EDIF網表文件、VHDL網表文件和Verilog HDL網表文件,為其他EDA工具提供了方便的接口,而且可以在Quartus II集成環(huán)境中自動運行其他EDA工具。
在FPGA的開發(fā)中,如果選用Altera公司器件的話,Quartus II+FPGA Compiler II+Modelsim的工具組合是非常理想的選擇。如圖2所示,使用這三個EDA工具對實例進行協(xié)同設計的流程。下面,我們將詳細介紹這三個工具的協(xié)同設計。
(1)設計輸入和綜合
在FPGA Compiler II中編輯“s_to_p.vhd”設計文件,并進行邏輯分析、綜合和優(yōu)化。使用FPGA Compiler II綜合時,我們能夠設置綜合的各種約束條件及優(yōu)化重點,并選擇不同廠家的器件。在設計中,我們使用File菜單中的“Design Wizard”,創(chuàng)建項目,添加“s_to_p.vhd”設計文件,并選擇Altera公司FLEX10KE系列型號為EPF10K30ETC114-1的器件為目標器件,在設置完成后,軟件將自動開始綜合和優(yōu)化。綜合、優(yōu)化后,我們可以查看結果和綜合所得到的原理圖,看看是否能滿足要求。接著,在Synthesis菜單中選擇“Export Netlist...”打開導出網表的對話框。在這里,可以設置和導出用于布局布線和前仿真的網表。在項目對應的文件夾中,“s_to_p.edf”是用于Quartus II布局布線的,而“s_to_p.vhd”(注意:這個文件和源文件具有相同的名字)則用于Modelsim前仿真的。
(2)功能仿真和前仿真
使用Modelsim來進行功能仿真和前仿真。在Modelsim進行功能仿真和前仿真的操作一摸一樣,只是輸入的源程序不同罷了。首先,我們要創(chuàng)建項目,選擇對應的工作庫,并將源文件加入到項目中。接著選擇Compile菜單中的“Compile...”對源文件進行編譯,并編寫測試臺(可以是Macro文件,也可以是TestBench)。最后,選擇Simulate菜單中的“Simulate...”,在“Simulate”對話框中選擇仿真需要實體,采用對應的測試臺進行仿真,驗證系統(tǒng)的邏輯功能及綜合后的邏輯功能的正確性。
(3)布局布線和時序分析
如果仿真結果沒有問題,接下來的工作就是布局布線。在布局布線之前,先對Quartus II的設計環(huán)境進行設置。在Project菜單中選擇“EDA Tool Setting...”,打開EDA工具設置對話框。在這里,我們能選擇設計輸入和綜合工具,仿真工具,時序分析工具和版圖級工具?,F(xiàn)在,我們關心的是設計輸入和綜合工具還有仿真工具,分別在對應的列表框中選擇FPGA Compiler II和Modelsim。注意仿真工具還要確定輸出語言。布局布線的輸入源文件是經FPGA Compiler II綜合、優(yōu)化的輸出文件。在這里,F(xiàn)PGA Compiler II 的輸出文件“s_to_p.edf”即是Quartus II布局布線的輸入文件。對這個文件進行編譯和時序分析,就可以得到布局布線后的用于時序仿真和編程下載的文件。觀察編譯結果,發(fā)現(xiàn)時序分析中fmax為204.08MHz,就這個指標而言,采用FPGA Compiler II綜合、優(yōu)化顯然比采用Quartus II綜合的效果要好。編譯輸出的文件中有幾個是下面步驟要用到的:一個是時序仿真文件,軟件將這些文件都存于項目文件夾下面的“Simulation”文件夾中,包括描述電路的邏輯結構的網表文件“s_to_p.vho”和對應的延時標準格式文件“s_to_p_vhd.sdo”;另一個是編程下載文件,包括不同格式的“s_to_p.sof”和“s_to_p.pof”。
(4)時序仿真
進行時序仿真前,我們要確定已經獲得針對特定FPGA輸出網表文件,對應延時標準格式文件,以及廠家提供的與特定FPGA對應的庫文件。其中網表文件和標準延時格式文件是布局布線時產生的文件,而庫文件則是由廠商提供,在Quartus II軟件的安裝目錄中可以找到。本設計中,網表文件時“s_to_p.vho”,延時標準格式文件是“s_to_p_vhd.sdo”,并由于選用Altera公司FLEX10KE系列的EPF10K30ETC114-1為目標器件,所以庫文件是“FLEX10KE_ATOMS.VHD”和“FLEX10KE_COMPONENTS.VHD”。 確定輸入文件后,我們就能利用Modelsim進行時序仿真。
首先,建立項目,將上述文件添加到項目中去,并在“work”庫中新建 “flex10ke” 庫。
接著,打開“Compile”對話框,先在“flex10ke” 庫中編譯文件“flex10ke _atoms.vhd”和“flex10ke _compomnets.vhd”,再在“work”庫中編譯文件“s_to_p.vho”(注意一定要弄清楚編譯次序)。
編譯完成之后,我們就可以進行仿真了。時序仿真與功能仿真和前仿真不同的是時序仿真需要加入延時標準格式文件。打開“Simulate”對話框,選擇要仿真的實體“s_to_p”,并在選擇SDF標簽,加入延時標準格式文件是“s_to_p_vhd.sdo”。其他的操作和功能仿真和前仿真相同。從時序仿真的結果,我們可以進行最接近硬件的一次設計驗證。
(5)編程下載
利用集成開發(fā)環(huán)境Quartus II中的編程工具,根據外圍硬件電路的情況,設置編程模式,我們能很方便地完成編程下載工作,在硬件上對設計進行驗證。
三、結論
在實際的FPGA的開發(fā)中,選用Quartus II+FPGA Compiler II+Modelsim的EDA工具組合能很好地規(guī)劃設計流程,充分利用各EDA工具的優(yōu)點,提高開發(fā)效率。
參考文獻
1 石俊斌,林輝.在PLD開發(fā)中提高VHDL的綜合質量,單片機與嵌入式系統(tǒng)應用,2003年,第4期
2 孫富明,李笑盈.基于多種EDA工具的FPGA設計,電子技術應用,2002年1月,第1期
3 林敏,方穎立.VHDL數(shù)字系統(tǒng)設計與高層綜合. 北京,電子工業(yè)出版社,2002年1月,12~61
4 Altera Corporation,“QuartusII Help Version 2.0”.
5 Model Technology Incorporated,“ModelSim SE User's Manual Version 5.6”
6 Synopsys Incorporated,“FPGA Compiler II/FPGA Express VHDL Reference Manual Version 1999,05”
評論