多種EDA工具的FPGA協同設計[轉帖]
摘 要:在FPGA開發的各個階段,市場為我們提供了很多優秀的EDA工具。面對眼花繚亂的EDA工具,如何充分利用各種工具的特點,并規劃好各種工具的協同使用,對FPGA開發極其重要。本文將通過開發實例“帶順序選擇和奇偶檢驗的串并數據轉換接口”來介紹基于多種EDA工具——QuartusII、FPGA CompilerII、Modelsim——的FPGA協同設計。
關鍵詞:FPGA;EDA;協同設計
一、前言
FPGA在電子市場上占有舉足輕重的地位。現在的問題是:現在市場在FPGA開發方面的EDA工具令人眼花繚亂,各自側重點不同,性能也不一樣,我們應該如何選擇?為了加速FPGA的開發,選擇并協調好各種EDA工具顯得非常重要,本文將探討上述問題并給出一種解決方案。本文以Altera公司的FPGA為目標器件,通過開發實例介紹FPGA開發的完整的流程及開發過程中使用到的開發工具,包括QuartusII、FPGA CompilerII、Modelsim,并重點解說如何使用這三個工具進行協同設計。
二、FPGA的開發流程及實例
FPGA的開發分為設計輸入、功能仿真、設計綜合、前仿真、布局布線、時序仿真、時序分析和編程下載幾個步驟。設計流程如圖1所示。

我們的開發實例是“帶順序選擇和奇偶檢驗的串并數據轉換接口”。接口電路可以實現數據的串并轉換,并根據控制信號確定輸出的并行數據的順序,以及輸出奇偶檢驗位。開發實例是用來說明FPGA的開發流程和各種EDA工具的協同設計,因此這里的描述重點并在設計本身。開發實例使用的目標器件是Altera公司FLEX10KE系列的EPF10K30ETC114-1;開發軟件有QuartusII2.0、FPGA CompilerII 3.6和Modelsim5.6SE。
Quartus II是Altera公司的第四代可編程邏輯器件集成開發環境,提供從設計輸入到器件編程的全部功能。 Quartus II可以產生并識別EDIF網表文件、VHDL網表文件和Verilog HDL網表文件,為其他EDA工具提供了方便的接口;可以在Quartus II集成環境中自動運行其他EDA工具。 Mentor Graphics公司的Modelsim是業界較好的仿真工具,其仿真功能強大,且圖形化界面友好,而且具有結構、信號、波形、進程、數據流等窗口。 FPGA Compiler II是一個完善的FPGA邏輯分析、綜合和優化工具,它從HDL形式未優化的網表中產生優化的網表文件,包括分析、綜合和優化三個步驟。
如果設計的硬件系統不是很大,對綜合和仿真的要求不是很高,我們完全可以在Quartus II中完成設計。實際上,這個開發實例完全可以在Quartus II這個集成的開發環境中完成。下面,我先介紹一下如何在Quartus II中完成設計,然后再介紹如何利用Quartus II提供的第三方EDA工具的接口與其他EDA工具(包括綜合工具FPGA Compiler II和仿真工具ModelSim5.6SE)完成協同設計。
1. 基于Quartus II的FPGA的開發 利用Quartus II軟件的開發流程可概括為以下幾步:設計輸入、設計編譯、設計時序分析、設計仿真和器件編程。
(1)設計輸入 Quartus II軟件在File菜單中提供“New Project Wizard...”向導,引導設計者完成項目的創建。當設計者需要向項目中添加新的VHDL文件時,可以通過“New”選項選擇添加。在這里我們創建項目“s_to_p”,編寫“s_to_p.vhd文件”,并將文件添加到項目中。
(2)設計編譯 Quartus II編譯器完成的功能有:檢查設計錯誤、對邏輯進行綜合、提取定時信息、在指定的Altera系列器件中進行適配分割,產生的輸出文件將用于設計仿真、定時分析及器件編程。
①首先確定軟件處于Compile Mode,可以通過Processing菜單進行選擇。 ②在Processing菜單中選擇Compiler Settings項。在這里可以進行器件選擇、模式設定、綜合和適配選項設定及設計驗證等。我們選擇FLEX10KE系列型號為EPF10K30ETC114-1的器件,并選擇在編譯后進行時序分析。 ③單擊Processing菜單下的“Start |