Xilinx的FPGA開發(fā)工具——ISE開發(fā)流程(xilinx fpga開發(fā))
在計算機(jī)桌面上雙擊ISE圖標(biāo),便可以啟動ISE軟件的運行。整個界面采用標(biāo)準(zhǔn)Windows格式,共分8個部分:標(biāo)題欄、菜單欄、工具欄、工程管理欄、源代碼文件編輯區(qū)、過程管理區(qū)、信息顯示區(qū)和狀態(tài)欄。
圖1 ISE 工具界面
具體菜單欄中的各項的具體功能可以閱讀相關(guān)資料。下面具體介紹利用ISE軟件開發(fā)FPGA的整個過程。
1、新工程建立
選擇“File|New Projiect”選項,彈出新建工程的對話框,輸入工程名,選擇所存路徑,至于頂層源文件類型默認(rèn)為HDL,點擊NEXT進(jìn)入工程屬性,選擇器件類型、封裝、速度、綜合工具、仿真工具以及喜歡的硬件描述語言,詳見下圖設(shè)置。擇好后點擊OK進(jìn)入下一頁,可以選擇新建源代碼文件,也可直接跳過,進(jìn)入下一頁。如已有源代碼文件,則可以添加到工程中;如沒有,則單擊“NEXT”進(jìn)入最戶一頁,單擊“OK”就建立一個完整的工程文件。
圖2 新建工程
2、代碼輸入
1)在工程管理區(qū)點擊鼠標(biāo)右鍵,彈出菜單選擇New Source,或者在Project欄目菜單中選擇New Source,彈出界面;
圖3 添加代碼文件
2)輸入文件名,選擇源碼類型,這里選擇Verilog Module,單擊NEXT進(jìn)入端口定義對話框;
圖4 創(chuàng)建代碼文件
3)輸入端口名,選擇端口的方向?qū)傩?、總線以及MSB、LSB等,也可以在代碼中進(jìn)行聲明。單擊NEXT進(jìn)入下一個界面;
4)示例程序的verilog HDL程序:
圖5 verilog 代碼
5)單擊“FINISH”,完成新源代碼文件的建立。
當(dāng)代碼編輯完成后要存盤時,ISE12.2要檢查代碼的語法,如有錯誤,則存盤時在信息狀態(tài)欄當(dāng)中會給出出錯信息。根據(jù)出錯信息修改代碼,直到?jīng)]有語法錯誤為止。
3、進(jìn)行仿真
ISE仿真有兩種方法:一種是利用HDL Bencher的圖形化波形編輯功能編寫測試文件;另一種是利用HDL語言編寫測試文件,這里介紹利用HDL語言來構(gòu)建測試平臺。
1)測試平臺建立
a)在工程管理區(qū)點擊鼠標(biāo)右鍵,彈出菜單選擇New Source,彈出界面;
b)輸入文件名,選擇Verilog Test Fixture,打鉤add to project,單擊NEXT;
圖6 創(chuàng)建仿真文件
c)選擇要仿真的文件,點擊NEXT;
d)點擊“FINISH”,就生成一個Verilog測試模塊。
ISE能自動生成測試平臺的完整構(gòu)架,包括所需信號、端口聲明以及模塊調(diào)用的實現(xiàn)。所需要完成的工作就是initial….end模塊中的“//Add stimulus here”后面添加測試向量生成代碼。
這里給出示例測試代碼,將其添加于//Add stimulus here處
#100;
SW = 7;
#100;
SW = 11;
#100;
SW = 13;
#100;
SW = 14;
2)測試平臺建立后,在工程管理區(qū)將狀態(tài)設(shè)置為“Simulation”;選擇要仿真的文件名,過程管理區(qū)就會顯示“Isim simlator”;
3)下拉“Isim simlator”,選擇“Simulate Behavioral Model”,單擊鼠標(biāo)右鍵,現(xiàn)在“Process Properties”可修改仿真遠(yuǎn)行時間等。
4)修改后,直接雙擊“Isim simlator”中的“Simulate Behavioral Model”進(jìn)行仿真。檢查仿真結(jié)果是否達(dá)到預(yù)期設(shè)計目標(biāo)。
圖7 工程仿真時序
4、約束文件的編寫
約束是FPGA開發(fā)中不可缺少的一部分。FPGA設(shè)計中有3類約束文件:用戶設(shè)計文件(.UCF)、網(wǎng)表約束文件(.NCF)和物理約束文件(.PCF)。這里對我們開發(fā)FPGA過程常用的FPGA管腳約束文件進(jìn)行描述??梢杂梦谋揪庉嬈骱蚗ilinx約束文件編輯器進(jìn)行編輯。
1)約束文件建立
a)在工程管理區(qū)點擊鼠標(biāo)右鍵,彈出菜單選擇New Source,或者在Project欄目菜單中選擇New Source,彈出界面;
圖8 創(chuàng)建約束文件
b)輸入文件名,選擇Implemention Constraints File,點擊NEXT;
c)如有多個文件,則選擇相應(yīng)文件,點擊NEXT;
d)點擊“FINISH”,完成約束文件的創(chuàng)建。
2)編輯約束文件
管腳約束文件的語法為:
NET “Signal_Port_Name” LOC=“Chip_Port”;
可用“#”或“/*……..*/”添加注釋。需要注意的是UCF文件對字母的大小寫敏感,信號名必須和設(shè)計中保持大小寫一致。另外要搞清楚FPGA芯片管腳的編號方式,因不同類型的FPGA管腳編號可能是不同的,一旦選定了FPGA,知道其編號方式,就可在管腳約束文件引用。否則會出錯的。
圖9 管腳分配
5、綜合
完成了輸入、仿真以及管腳分配后,就可以進(jìn)行綜合和實現(xiàn)。
選擇要綜合的文件,在過程管理區(qū)中雙擊“Synthesis-XST”可以完成綜合操作,綜合可能有3種結(jié)果:
圖10 生成bit流文件
a)綜合后完全正確,則在“Synthesis-XST”前面有一個打鉤的綠色小圓圈,且在信息顯示區(qū)里顯示process “Synthesis-XST”completed sucessfully。用鼠標(biāo)右鍵點擊“Synthesis-XST”選擇“view Text Report”查看綜合報告,了解FPGA資源使用情況等。
b)如有告警,則出現(xiàn)一個帶感嘆號的黃色小圓圈,在信息顯示區(qū)的“warning”中可以看到相關(guān)信息;
c)如有出錯,則出現(xiàn)一個帶叉的紅色小圓圈,在在信息顯示區(qū)的“error”中可以看到相關(guān)的出錯信息;
綜合正確完成后,可以通過雙擊“View RTL Schematic”來查看RTL級構(gòu)圖,檢查是否按照設(shè)計意圖來實現(xiàn)電路。
另外需注意的,一般可使用XST屬性的默認(rèn)值來綜合,但XST也提供豐富、靈活的屬性配置,可鼠標(biāo)用右鍵點擊“Synthesis-XST”,選擇“process properties”從三個方面來配置:synthesis option、HDL option 以及specific option,具體可參閱相關(guān)資料。
6、實現(xiàn)
將綜合輸出的邏輯網(wǎng)表翻譯成所選器件的底層模塊和硬件原語,將設(shè)計映射到器件結(jié)構(gòu)上,進(jìn)行布局布線,到達(dá)在選定器件上實現(xiàn)設(shè)計的目的。涉及三個步驟:翻譯(Translate)邏輯網(wǎng)表、映射(Map)和布局布線(Place & Route)。
通過選擇“Implement Design”便可以完成整個實現(xiàn)過程,實現(xiàn)后在“Implement Design”前面有一個打鉤的綠色小圓圈,同時可在信息顯示區(qū)中得到精確的資源占用情況。
7、編程文件產(chǎn)生
只需在過程管理區(qū)中雙擊“Generate Programming File”選項即可生成編程文件。完成后該選項前面會出現(xiàn)一個打鉤的綠色小圓圈。所生成的編程文件放在ISE工程目錄下,是一個擴(kuò)展名為.bit的位流文件。
8、編程下載
在“Configure Target Device”選項下,選擇“Manage Configuration Project(iMPACT)”,彈出iMPACT界面,用鼠標(biāo)雙擊“Boundary Scan”,
圖11 識別觸發(fā)器件
然后選擇“Initialize Chain”,如果FPGA配置電路JTAG測試正確,會將JTAG鏈上掃描到得所有芯片在iMPACT主界面上列出來。
圖12 JTAG鏈正確
JTAG鏈檢測正確后,在期望的FPGA芯片上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Assign New Configuration File”,選擇后綴為.bit的二進(jìn)制比特流文件。選中下載文件后,單擊“打開”按鈕,在iMPACT的主界面會出現(xiàn)一個芯片模型以及位流文件的標(biāo)志。在此標(biāo)志上單擊鼠標(biāo)右鍵,在彈出的對話框中選擇“Program”選項,單擊“OK”,就可以對FPGA設(shè)備進(jìn)行編程,編程配置成功后,彈出配置成功的界面“Programm Suceeded”。
圖13 下載程序
到此為止實現(xiàn)了一個完整的FPGA設(shè)計流程,以上介紹的只是ISE軟件中最基本的操作,更多的內(nèi)容和操作通過閱讀或在實踐中來熟練。