FPGA設計開發(fā)軟件ISE使用技巧之:ISE軟件的設計流程
6.3 ISE軟件的設計流程
本文引用地址:http://m.butianyuan.cn/article/269334.htmXilinx公司的ISE軟件是一套用以開發(fā)Xilinx公司的FPGA&CPLD的集成開發(fā)軟件,它提供給用戶一個從設計輸入到綜合、布線、仿真、下載的全套解決方案,并很方便地同其他EDA工具接口。
其中,原理圖輸入用的是第三方軟件ECS;狀態(tài)圖輸入用的是StateCAD;HDL綜合可以使用Xilinx公司開發(fā)的XST、Synopsys公司開發(fā)的FPGA Express和Synplicity公司的Synplify/Synplify Pro等;測試激勵可以是圖形化的HDL Bencher,也可以由用戶提供測試代碼;通過ModelSim XE(Xilinx Edition)或ModelSim SE進行仿真。
Xilinx為ModelSim預留了接口,可以直接在ISE環(huán)境中打開,使用非常方便。并且ModelSim支持綜合前、后仿真,以及時序仿真,功能很強大。
除了上述軟件以外,也可以使用其他公司的相關EDA軟件產(chǎn)品。
本節(jié)將對ISE的軟件設計流程做一個全面的介紹。一般來說完整的ISE軟件設計流程包括:電路設計與輸入、功能仿真、綜合、綜合后仿真、實現(xiàn)、布局布線后仿真與驗證以及下載調(diào)試等主要步驟,如圖6.6所示。
具體講解如下。
1.設置工作環(huán)境
這一步并不是總是需要。通常用在第一次使用ISE或需要對某些項目進行修改時,一般有以下幾項需要設置:這些設置主要是在“Edit”/“Preferences”下完成的,如圖6.7所示。
圖6.6 ISE下FPGA設計流程圖
圖6.7 “Preferences”對話框
在ISE General中主要有下面幾個選項可以進行設置。
(1)常用的。這主要是設置項目管理器中文件的顯示方式、字體、窗口的顯示方式等,一般用默認值就行。
(2)圖形編輯器(Schematic Editor)。這里可設置跳格鍵(Tab)的字符個數(shù)、編輯器的字體等,另外除了直接用ISE提供的HDL編輯器外,也可以采用第三編輯器,如gvim就是一款非常優(yōu)秀的代碼編輯器,有興趣的讀者可以在網(wǎng)上查閱相關資料。
(3)流程設置。
(4)工具設置。主要設置仿真器ModelSim、HDL測試臺生成工具HDL Bencher、狀態(tài)圖輸入工具State CAD的工作目錄。其實要設置的就是ModelSim的工作目錄,因為后兩項通常在安裝完后ISE已經(jīng)設好了。
2.新建工程
這一步和其他的軟件開發(fā)一樣,ISE要求在對文件進行綜合或布線之前必須要有一個存在的工程,在新建工程時,需要設置以下幾點。
(1)工程名,最好用英文不要有漢字,因為ISE下有些工具對于含有漢字的文件目錄支持的不是很好。
(2)工程所在目錄。ISE所產(chǎn)生的輸出文件將全部放在該目錄下,但對源文件的目錄沒有要求。
(3)器件家族。即設計中所采用的FPGA是Xilinx的哪一大類。
(4)器件型號。具體大類下的哪一種器件,此外還要設置封裝和速度等級等,這些信息都可以從芯片上提供的信息直接得到。
(5)綜合軟件。由于ISE預置了4種可選的綜合器接口(XST為Xilinx自己開發(fā),F(xiàn)PGA Express是Synopsys公司的OEM版,在安裝ISE時就已經(jīng)裝好了。而Synplify/Synplify Pro則需要另外購買并安裝),所以必須選擇一種作為該工程的綜合器。4種綜合器全部支持Verilog和VHDL。但有一點必須注意:如果設計中用到原理圖,則只能選擇XST或FPGA Express作綜合器,因為Synplify Pro不支持原理圖方式。
3.添加設計源文件
如果已有源文件,直接加入即可,否則可采用原理圖方式或?qū)慔DL代碼方式新建文件再加入。ISE下支持多種新建資源類型,包括:User Document(工程說明文件)、VHDL module(VHDL源代碼文件)、VHDL Library(VHDL庫)、VHDL Package(VHDL包)、VHDL Test Bench(VHDL測試激勵)、Verilog Module(Verilog源代碼文件)、Corgen Generator(IP核生成工具)、Schematic(原理圖)、Test Bench Waveform(測試激勵波形)、BMM文件(塊RAM映射文件)、State Diagram(狀態(tài)轉移圖)、UCF(用戶約束文件)等。每種類型的資源在ISE都有對應的處理工具。
4.寫測試文件
這一步可以利用HDL Bencher工具自動產(chǎn)生。測試臺的主要功能是給被測實體加上輸入激勵,再比較其輸出是否與期望值一致,并給出一些提示信息。但推薦大家自己寫測試代碼,通過寫代碼的測試靈活性更強,而且對于比較復雜的設計,有時在仿真時還需要讀取文件數(shù)據(jù),或?qū)⒆罱K的仿真結果寫進文件或打印,這在HDL Bencher下是很難完成的。
5.功能仿真
利用ModelSim來檢查電路仿真結果是否正確。如果編譯有錯,則先將錯誤更改。如此反復直到仿真正確為止。這只是用于檢查代碼有無錯誤,ModelSim最主要的作用在于通過仿真觀察波形來驗證設計的功能是否正確,這部分工作對于一個設計來說是非常重要的,因為如果前期的功能仿真做的不到位,會直接影響到最終電路功能的實現(xiàn),必須在確保功能仿真沒有問題的前提下,再進行下面的步驟。
6.綜合
通過這一步將設計轉換成具體的電路圖。如果設計有錯,有可能綜合通不過。這就要求用戶必須按照可綜合代碼的風格來設計。另外,綜合有很多屬性是可以設置的,如果對設計中的某些項目(如速度)有要求的話需要預先設置好。在ISE的高級版本中,XST已經(jīng)支持Veilog和VHDL混合語言代碼輸入,XST的輸出文件是NGC網(wǎng)表。
7.綜合后仿真
綜合實現(xiàn)后要進行綜合后仿真,檢驗綜合后功能是否符合設計要求,如果不符合要求要判斷是否是原理圖設計的問題,進一步對代碼進行優(yōu)化,直到符合設計要求為止。
8.設計用戶約束文件
用戶約束文件主要包括時序約束文件和管腳約束文件,時序約束可以在ISE自帶的Constraints Editor下完成,管腳約束是在PACE(約束編輯器)下完成的。約束設計完畢生成UCF文件。
9.實現(xiàn)
所謂實現(xiàn)(Implement)是將綜合輸出的邏輯網(wǎng)表翻譯成所選器件的底層模塊與硬件原語,將設計映射到器件結構上,進行布局布線,達到在選定器件上實現(xiàn)設計的目的。實現(xiàn)主要分為3個步驟:翻譯(Translate)邏輯網(wǎng)表、映射(Map)到器件單元與布局布線(Place&Route)。
10.布局布線后仿真
所謂布局布線仿真,是將Xilinx布線所產(chǎn)生的延遲加反標到電路后進行仿真。如果采用ModelSim仿真,在ISE下提供了4個仿真級別:Simulate Behavioral Model(行為仿真)、Simulate Post-Translate Verilog Model(翻譯后仿真)、Simulate Post-Map Verilog Model(映射后仿真)、Simulate Post-Place&Route Verilog Model(布局布線后仿真)。
布局布線后生成的仿真時延文件包含的時延信息最全,不僅包含門延時,還包括實際布線延時,所以布線后仿真最準確,能較好地反映芯片的實際工作情況。
11.下載
把Xilinx布線后產(chǎn)生的結果轉換成配置文件后置入FPGA中。下載成功后就可以測試實際電路了。如果需要脫機配置,則必須將配置文件寫入外置存儲器中。下載時需要將器件用JTAG線與PC機連接完成下載。
其實上面的10個步驟并不是一定要按部就班,這取決于設計者的熟練程度和設計水平。例如測試臺的編寫、前仿真、后仿真并不是必須的。但為了保證設計的正確性和節(jié)約查錯所耗的時間,推薦設計者一步一步操作,這樣能夠及時發(fā)現(xiàn)錯誤及時更正。
ISE軟件一個特點就是具有良好的開發(fā)界面,新建一個工程后,在“Processes for Source”對話框中即羅列出了ISE下FPGA設計流程中的各個環(huán)節(jié),如圖6.8所示,讀者可將圖中標注的內(nèi)容與上面介紹的FPGA的設計流程中的各個步驟相對應,可以看出,界面上列出了設計流程的各個步驟,設計時只需要按照順序依次實現(xiàn)就可以了,操作很簡便。
圖6.8 設計流程在ISE界面下的體現(xiàn)
由于ISE提供的集成開發(fā)環(huán)境非常好用,故推薦從ISE中來啟動其他程序,當然也可以在各自的軟件環(huán)境中完成上述步驟。
例如在Synplify中建工程、輸入文件和綜合,在ModelSim中新建工程并做仿真,用Xilinx的Design Manager(這個程序在ISE中是找不到的,因為ISE是通過命令行方式調(diào)用該程序使其在后臺運行,但可以在安裝目錄下找到它),再運行JTAG編程器下載。
本節(jié)對ISE的FPGA設計流程做了一個簡單的介紹,讀者可對照2.6節(jié)加深對這一流程的理解。
fpga相關文章:fpga是什么
評論