多種EDA工具的FPGA協(xié)同設計

發(fā)布時(shí)間:2010-9-1 09:11    發(fā)布者:techshare
關(guān)鍵詞: EDA , FPGA
一、前言

FPGA電子市場(chǎng)上占有舉足輕重的地位,F在的問(wèn)題是:現在市場(chǎng)在FPGA開(kāi)發(fā)方面的EDA工具令人眼花繚亂,各自側重點(diǎn)不同,性能也不一樣,我們應該如何選擇?為了加速FPGA的開(kāi)發(fā),選擇并協(xié)調好各種EDA工具顯得非常重要,本文將探討上述問(wèn)題并給出一種解決方案。本文以Altera公司的FPGA為目標器件,通過(guò)開(kāi)發(fā)實(shí)例介紹FPGA開(kāi)發(fā)的完整的流程及開(kāi)發(fā)過(guò)程中使用到的開(kāi)發(fā)工具,包括QuartusII、FPGA CompilerII、Modelsim,并重點(diǎn)解說(shuō)如何使用這三個(gè)工具進(jìn)行協(xié)同設計。

二、FPGA的開(kāi)發(fā)流程及實(shí)例

FPGA的開(kāi)發(fā)分為設計輸入、功能仿真、設計綜合、前仿真、布局布線(xiàn)、時(shí)序仿真、時(shí)序分析和編程下載幾個(gè)步驟。設計流程如圖1所示。



我們的開(kāi)發(fā)實(shí)例是“帶順序選擇和奇偶檢驗的串并數據轉換接口”。接口電路可以實(shí)現數據的串并轉換,并根據控制信號確定輸出的并行數據的順序,以及輸出奇偶檢驗位。開(kāi)發(fā)實(shí)例是用來(lái)說(shuō)明FPGA的開(kāi)發(fā)流程和各種EDA工具的協(xié)同設計,因此這里的描述重點(diǎn)并在設計本身。開(kāi)發(fā)實(shí)例使用的目標器件是Altera公司FLEX10KE系列的EPF10K30ETC114-1;開(kāi)發(fā)軟件有QuartusII2.0、FPGA CompilerII 3.6和Modelsim5.6SE。

Quartus II是Altera公司的第四代可編程邏輯器件集成開(kāi)發(fā)環(huán)境,提供從設計輸入到器件編程的全部功能。 Quartus II可以產(chǎn)生并識別EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog HDL網(wǎng)表文件,為其他EDA工具提供了方便的接口;可以在Quartus II集成環(huán)境中自動(dòng)運行其他EDA工具。 Mentor Graphics公司的Modelsim是業(yè)界較好的仿真工具,其仿真功能強大,且圖形化界面友好,而且具有結構、信號、波形、進(jìn)程、數據流等窗口。FPGA Compiler II是一個(gè)完善的FPGA邏輯分析、綜合和優(yōu)化工具,它從HDL形式未優(yōu)化的網(wǎng)表中產(chǎn)生優(yōu)化的網(wǎng)表文件,包括分析、綜合和優(yōu)化三個(gè)步驟。 如果設計的硬件系統不是很大,對綜合和仿真的要求不是很高,我們完全可以在Quartus II中完成設計。實(shí)際上,這個(gè)開(kāi)發(fā)實(shí)例完全可以在Quartus II這個(gè)集成的開(kāi)發(fā)環(huán)境中完成。下面,我先介紹一下如何在Quartus II中完成設計,然后再介紹如何利用Quartus II提供的第三方EDA工具的接口與其他EDA工具(包括綜合工具FPGA Compiler II和仿真工具ModelSim5.6SE)完成協(xié)同設計。

1. 基于Quartus II的FPGA的開(kāi)發(fā)

利用Quartus II軟件的開(kāi)發(fā)流程可概括為以下幾步:設計輸入、設計編譯、設計時(shí)序分析、設計仿真和器件編程。

(1)設計輸入

Quartus II軟件在File菜單中提供“New Project Wizard...”向導,引導設計者完成項目的創(chuàng )建。當設計者需要向項目中添加新的VHDL文件時(shí),可以通過(guò)“New”選項選擇添加。在這里我們創(chuàng )建項目“s_to_p”,編寫(xiě)“s_to_p.vhd文件”,并將文件添加到項目中。

(2)設計編譯

Quartus II編譯器完成的功能有:檢查設計錯誤、對邏輯進(jìn)行綜合、提取定時(shí)信息、在指定的Altera系列器件中進(jìn)行適配分割,產(chǎn)生的輸出文件將用于設計仿真、定時(shí)分析及器件編程。

①首先確定軟件處于Compile Mode,可以通過(guò)Processing菜單進(jìn)行選擇。

②在Processing菜單中選擇Compiler Settings項。在這里可以進(jìn)行器件選擇、模式設定、綜合和適配選項設定及設計驗證等。我們選擇FLEX10KE系列型號為EPF10K30ETC114-1的器件,并選擇在編譯后進(jìn)行時(shí)序分析。

③單擊Processing菜單下的“Start Compilation”項,開(kāi)始編譯過(guò)程。

④查看編譯結果。編譯結果以樹(shù)狀結構組織在Compilation Report中,包含項目的設置信息,以及編譯設置、編譯效果等信息,同時(shí)也包含了靜態(tài)時(shí)序信息。

(3)設計定時(shí)分析

單擊Project菜單下的“Timing Settings...”選項,可以方便地完成時(shí)間參數的設定。Quartus II軟件的時(shí)序分析功能在編譯過(guò)程結束之后自動(dòng)運行,并在編譯報告的Timing Analyses文件夾中顯示。其中我們可以得到最高頻率fmax、輸入寄存器的建立時(shí)間tsu、輸出寄存器時(shí)鐘到輸出的延遲tco和輸入保持時(shí)間th等時(shí)間參數的詳細報告,從中可以清楚地判定是否達到系統的時(shí)序要求。本設計實(shí)例電路的fmax可達到192.31MHz。

(4)設計仿真

Quartus II軟件允許設計者使用基于文本的向量文件(.vec)作為仿真器的激勵,也可以在Quartus II軟件的波形編輯器中產(chǎn)生向量波形文件(.vwf)作為仿真器的激勵。通過(guò)Quartus II的波形編輯器,我們編輯波形文件“s_to_p.vwf”用于仿真。接著(zhù),在Processing菜單下選擇“Simulate Mode”選項進(jìn)入仿真模式,選擇“Simulator Settings...”對話(huà)框進(jìn)行仿真設置。在這里可以選擇激勵文件、仿真模式(功能仿真或時(shí)序仿真)等,我們選擇時(shí)序仿真,單擊“Run Simulator”即開(kāi)始仿真過(guò)程。完成仿真后,我們可以通過(guò)時(shí)序仿真得到的波形判斷系統設計是否達到要求。

(5)器件編程

設計者可以將配置數據通過(guò)MasterBlaster或ByteBlasterMV通信電纜下載到器件當中,通過(guò)被動(dòng)串行(Passive Serial)配置模式或JTAG模式對器件進(jìn)行配置編程,還可以在JTAG模式下給多個(gè)器件進(jìn)行編程。利用Quartus II軟件給器件編程或配置時(shí),首先需要打開(kāi)編程器(在New菜單選項中選擇打開(kāi)Chain Description File),在編程器中可以進(jìn)行編程模式設置(Mode下拉框)、硬件配置(Programming Hardware對話(huà)框)及編程文件選擇(Add File...按鈕),將以上配置存盤(pán)產(chǎn)生.cdf文件,其中存儲了器件的名稱(chēng)、器件的設計及硬件設置等編程信息。當以上過(guò)程正確無(wú)誤后,單擊Start按鈕即可開(kāi)始對器件進(jìn)行編程配置。這里我們需要根據外圍硬件電路設計的情況進(jìn)行選擇。

2.多種EDA工具協(xié)同設計

在FPGA設計的各個(gè)環(huán)節都有不同公司提供不同的EDA工具。每個(gè)EDA工具都有自己的特點(diǎn)。一般情況,由FPGA廠(chǎng)商提供的集成開(kāi)發(fā)環(huán)境,如Quartus II,在設計綜合和設計仿真環(huán)節都不是非常優(yōu)秀,因此一般都會(huì )提供第三方EDA工具的接口,讓用戶(hù)更方便地利用其他EDA工具。在這方面,作為EDA集成開(kāi)發(fā)環(huán)境的Quartus II做得很好,不僅可以產(chǎn)生并識別EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog HDL網(wǎng)表文件,為其他EDA工具提供了方便的接口,而且可以在Quartus II集成環(huán)境中自動(dòng)運行其他EDA工具。 在FPGA的開(kāi)發(fā)中,如果選用Altera公司器件的話(huà),Quartus II+FPGA Compiler II+Modelsim的工具組合是非常理想的選擇。如圖2所示,使用這三個(gè)EDA工具對實(shí)例進(jìn)行協(xié)同設計的流程。下面,我們將詳細介紹這三個(gè)工具的協(xié)同設計。



(1)設計輸入和綜合

在FPGA Compiler II中編輯“s_to_p.vhd”設計文件,并進(jìn)行邏輯分析、綜合和優(yōu)化。使用FPGA Compiler II綜合時(shí),我們能夠設置綜合的各種約束條件及優(yōu)化重點(diǎn),并選擇不同廠(chǎng)家的器件。在設計中,我們使用File菜單中的“Design Wizard”,創(chuàng )建項目,添加“s_to_p.vhd”設計文件,并選擇Altera公司FLEX10KE系列型號為EPF10K30ETC114-1的器件為目標器件,在設置完成后,軟件將自動(dòng)開(kāi)始綜合和優(yōu)化。綜合、優(yōu)化后,我們可以查看結果和綜合所得到的原理圖,看看是否能滿(mǎn)足要求。接著(zhù),在Synthesis菜單中選擇“Export Netlist...”打開(kāi)導出網(wǎng)表的對話(huà)框。在這里,可以設置和導出用于布局布線(xiàn)和前仿真的網(wǎng)表。在項目對應的文件夾中,“s_to_p.edf”是用于Quartus II布局布線(xiàn)的,而“s_to_p.vhd”(注意:這個(gè)文件和源文件具有相同的名字)則用于Modelsim前仿真的。

(2)功能仿真和前仿真

使用Modelsim來(lái)進(jìn)行功能仿真和前仿真。在Modelsim進(jìn)行功能仿真和前仿真的操作一摸一樣,只是輸入的源程序不同罷了。首先,我們要創(chuàng )建項目,選擇對應的工作庫,并將源文件加入到項目中。接著(zhù)選擇Compile菜單中的“Compile...”對源文件進(jìn)行編譯,并編寫(xiě)測試臺(可以是Macro文件,也可以是TestBench)。最后,選擇Simulate菜單中的“Simulate...”,在“Simulate”對話(huà)框中選擇仿真需要實(shí)體,采用對應的測試臺進(jìn)行仿真,驗證系統的邏輯功能及綜合后的邏輯功能的正確性。

(3)布局布線(xiàn)和時(shí)序分析

如果仿真結果沒(méi)有問(wèn)題,接下來(lái)的工作就是布局布線(xiàn)。在布局布線(xiàn)之前,先對Quartus II的設計環(huán)境進(jìn)行設置。在Project菜單中選擇“EDA Tool Setting...”,打開(kāi)EDA工具設置對話(huà)框。在這里,我們能選擇設計輸入和綜合工具,仿真工具,時(shí)序分析工具和版圖級工具,F在,我們關(guān)心的是設計輸入和綜合工具還有仿真工具,分別在對應的列表框中選擇FPGA Compiler II和Modelsim。注意仿真工具還要確定輸出語(yǔ)言。布局布線(xiàn)的輸入源文件是經(jīng)FPGA Compiler II綜合、優(yōu)化的輸出文件。在這里,FPGA Compiler II 的輸出文件“s_to_p.edf”即是Quartus II布局布線(xiàn)的輸入文件。對這個(gè)文件進(jìn)行編譯和時(shí)序分析,就可以得到布局布線(xiàn)后的用于時(shí)序仿真和編程下載的文件。觀(guān)察編譯結果,發(fā)現時(shí)序分析中fmax為204.08MHz,就這個(gè)指標而言,采用FPGA Compiler II綜合、優(yōu)化顯然比采用Quartus II綜合的效果要好。編譯輸出的文件中有幾個(gè)是下面步驟要用到的:一個(gè)是時(shí)序仿真文件,軟件將這些文件都存于項目文件夾下面的“Simulation”文件夾中,包括描述電路的邏輯結構的網(wǎng)表文件“s_to_p.vho”和對應的延時(shí)標準格式文件“s_to_p_vhd.sdo”;另一個(gè)是編程下載文件,包括不同格式的“s_to_p.sof”和“s_to_p.pof”。

(4)時(shí)序仿真

進(jìn)行時(shí)序仿真前,我們要確定已經(jīng)獲得針對特定FPGA輸出網(wǎng)表文件,對應延時(shí)標準格式文件,以及廠(chǎng)家提供的與特定FPGA對應的庫文件。其中網(wǎng)表文件和標準延時(shí)格式文件是布局布線(xiàn)時(shí)產(chǎn)生的文件,而庫文件則是由廠(chǎng)商提供,在Quartus II軟件的安裝目錄中可以找到。本設計中,網(wǎng)表文件時(shí)“s_to_p.vho”,延時(shí)標準格式文件是“s_to_p_vhd.sdo”,并由于選用Altera公司FLEX10KE系列的EPF10K30ETC114-1為目標器件,所以庫文件是“FLEX10KE_ATOMS.VHD”和“FLEX10KE_COMPONENTS.VHD”。 確定輸入文件后,我們就能利用Modelsim進(jìn)行時(shí)序仿真。

首先,建立項目,將上述文件添加到項目中去,并在“work”庫中新建 “flex10ke” 庫。 接著(zhù),打開(kāi)“Compile”對話(huà)框,先在“flex10ke” 庫中編譯文件“flex10ke _atoms.vhd”和“flex10ke _compomnets.vhd”,再在“work”庫中編譯文件“s_to_p.vho”(注意一定要弄清楚編譯次序)。編譯完成之后,我們就可以進(jìn)行仿真了。時(shí)序仿真與功能仿真和前仿真不同的是時(shí)序仿真需要加入延時(shí)標準格式文件。打開(kāi)“Simulate”對話(huà)框,選擇要仿真的實(shí)體“s_to_p”,并在選擇SDF標簽,加入延時(shí)標準格式文件是“s_to_p_vhd.sdo”。其他的操作和功能仿真和前仿真相同。從時(shí)序仿真的結果,我們可以進(jìn)行最接近硬件的一次設計驗證。

(5)編程下載

利用集成開(kāi)發(fā)環(huán)境Quartus II中的編程工具,根據外圍硬件電路的情況,設置編程模式,我們能很方便地完成編程下載工作,在硬件上對設計進(jìn)行驗證。

三、結論


在實(shí)際的FPGA的開(kāi)發(fā)中,選用Quartus II+FPGA Compiler II+Modelsim的EDA工具組合能很好地規劃設計流程,充分利用各EDA工具的優(yōu)點(diǎn),提高開(kāi)發(fā)效率。
本文地址:http://selenalain.com/thread-25005-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页