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