610 likes | 877 Vues
ISE 軟體使用. 6 、產生時序 ( Timing ) 格式相關檔. 1 、建立專案 Project. 5 、 Implement. Translate. 2 、加入設計 Source 檔 ( Code/ Schematic). 7 、 Timing Simulation. Map. 3 、 合成 ( Synthesize ) 產生 netlist 格式檔. Place & Route. 8 、產生規劃位元檔 ( Bit-stream File ). 4 、 Logic Simulation. 9 、下載到 Target 晶片.
E N D
6、產生時序(Timing)格式相關檔 1、建立專案 Project 5、Implement Translate 2、加入設計Source檔(Code/ Schematic) 7、 Timing Simulation Map 3、合成(Synthesize)產生 netlist格式檔 Place & Route 8、產生規劃位元檔 (Bit-stream File) 4、 Logic Simulation 9、下載到Target晶片 ISE設計程序
Project design (範例) 1、此專案擁有的Source-code檔 在此視窗可以看到自己設計的與系統處理後產生的程式 2、當點選左邊視窗的程式會出現在這裡可以做編輯,或是點選報告也可以在這裡觀看 打開ISE可以看到這樣 3、針對於上述所選的Source-code檔此視窗會顯示 相對的可處理選項 4、此為Report視窗:執行上述指定Source-code的處理時 其結果情形,會在這裡出現Report
Project design (範例) 我們舉4-bits的連波加法器為例子,說明ISE的完整使用流程: 1、開一個專案(project)來處理這個加法器:
Project design (範例) Project如果為新建立,設定一個project名稱 在此打入project名稱 設定project目錄位置 設定此專案的頂層「設計模組」型式
Project design (範例) 設定硬體元件參數與使用之軟體工具 元件族系( Device Family): Spartan2 元件編號名稱 (Device) : xc2s200 元件包裝 (Package) : pq208 元件速度等級 Speed : -5
Project design (範例) 設定New Source檔
Project design (範例) 輸入檔案名稱 。設計模組:選擇VHDL模組 。若是Test Bench :則選擇VHDL Test Bench
Project design (範例) 在此可先輸入接腳定義,軟體會自動在Source-code程式內宣告好PORT;若此時不輸入,亦可等到後面再自行輸入 PORT名稱 mode 針對vector type
Project design (範例) 按「完成」,結束Project 與Design mudule之指定
Project design (範例) 按「下一步」,結束新Source-module指定處理
Project design (範例) 如果還有其他已經完成的程式欲同時加入此專案中,則可以選擇Add Source選項鈕,加入Project中 ( 若無則選擇「下一步」)
Project design (範例) Add Source處理對話窗,選擇需要加入專案的程式
Project design (範例) 設定所選擇的Source-code相關設定項目 選擇程式的種類
Project design (範例) 選擇「OK」,按「下一步」
Project design (範例) 選擇完成,顯示此專案及其目前的所有相關設定(Project/Device/Source)
Project design (範例) 系統依你前述之設定自動產生之codes 由之前輸入的接腳定義,ISE自動生成的程式 1、使用者自行在此完成VHDL Design-modue結構主功能描述部分 2、存檔 在這裡可以看到Source程式的排列有階層順序,以這個例子而言,因為「全加器」為「漣波加法器」的其中之一的元件,所以他會排列在nbits加法器的下面,若是2個程式間並無關聯就會平行的排列。
VHDL editor 在「Source in Project」這個視窗中對要做Synthesize的程式滑鼠點選左鍵,則在Processes for Source的視窗中會出現相關的處理選項如右圖 在「 Synthesize 」項上按滑鼠右鍵,點選執行「 Run 」
VHDL editor 若程式正確無誤,會在Synthesize前面出現綠色的打勾符號「 」, 若是有ERROR則會出現紅色叉叉符號「」 , 若是黃色的驚嘆號「!」則代表可能有問題的警告Warning
VHDL editor 有ERROR會顯示出訊息,若對訊息處雙點滑鼠左鍵,則會在右邊視窗區呈現該程式錯誤的行數處出現紅色標記;自行更正再作合成
VHDL editor 合成時若還要新增程式,則在Sources in Project,按滑鼠右鍵,再點選New Source,會出現下圖,在其中選擇要新增的Source類型
VHDL editor 若是忘記程式的寫法,可以在工具列中點選電燈泡的圖案,裡面有一些程式的範本(Templates)與一些語法的說明,可做參考或複製
Simulation 在進行Simulation前先從工作列裡面的Edit=>Preferences裡面的Integrated Tools;確定一下模擬工具是否設定為「 ModelSim 」 (在ISE中使用的模擬軟體為ModelSim)
Simulation 開始寫Test Bench選擇New Source 輸入名稱,選擇VHDL Test Bench按下一步
Simulation 選擇要模擬的程式(一般為測試平台(Testbench)程式(*.vhd)) 選擇「下一步」,若無誤則選擇「完成」
Simulation 完成後會出現此畫面,ISE會自動幫我們寫好一些程式只需再補齊要輸入的測試波形訊號即可,亦可刪除,全由自己重新撰寫
Simulation 除了VHDL Test Bench以外還有Test Bench Waveform可供選擇,選擇所要模擬的程式,「下一步」最後「完成」
Simulation 1CLOCK源 1個以上CLOCK源 選擇CLOCK所需要的頻率(因FA並不需要CLOCK所以並不使用)選擇OK。右邊的圖是選擇使用CLOCK出現的畫面
Simulation 可選擇輸入的為幾進位 這條藍色的線表示要模擬到的時間 A、B、Cin為位元輸入,所以要指定其測試波形:直接對藍色的地方點滑鼠左鍵一下即可改變波形;若是為向量輸入則可以對藍色的地方點滑鼠左鍵二下會出現Pattern即可輸入向量,輸入完畢後存檔。
Simulation 若是在Sources in Project點選的為Test Bench則在Processes for Source會出現如下圖對要進行的模擬點滑鼠右鍵兩下(在這裡只需做到Functional Simulation而Gate Level Simulation等到後來做了Time Constrains 才需執行) RTL Simulation 可以直接在ISE看結果 Functional Simulation。Does function match RTL Golden model Gate Level Simulation (only gate delay) Gate Level Simulation (gate delay + wire delay )
Simulation 會自動執行ModelSim可從波形看是否正確
Implement 執行完以上的步驟,程式正確無誤後,執行Implement ,執行完此步驟後裡面有一些Reports可以查看
Implement 點選Map Report可以看到如右邊藍色範圍,裡面說的有關於你用了實習板多少的資源,例如:input output用了幾個佔全部的多少百分比、用了裡面多少的gate count、用了多少的Memory、使用了幾個Slices在裡面有很詳盡的報告。
Implement 而在Place & Route Report中可以看一些時間的報告,不過這個範例並沒有對時間做限制,所以並沒有限制過當的問題,如果是別的程式在經過了Constraints之後還必須再做一次Implement再來讀這裡的報告。
Implement 若是想知道FPGA最後在晶片內的狀況可以選View/EditRouted Design (FPGA Editor)來查看時現在FPGA內部的狀態
Implement 因為範例的程式很小所以用到的資源非常的少
Constrains 在User Constrains中選擇Assign Package Pins,則ISE會在Source in Project中產生一個.ucf的檔案
Constrains 因為我們所使用的板子為208根接腳的晶片,所以會出現如圖,而定義接腳可從左邊的I/O Name中直接拉到右邊的圖形中,或是直接在Loc欄位中直接輸入,輸入完畢後存檔 注意:在定義接腳時,必須參照硬體說明,確定要定義的接腳是否能夠指定,左邊紅色框框裡面的在說明圖中小圖案所代表的意思,不過仍以硬體說明的為準。
Constrains 亦可在Source in Project裡面新增New Source選擇Implementation Constraints File一樣會產生一個.ucf的檔案
Constrains 點ucf的檔案在下面視窗選擇Edit Constraints (Text)會出現圖右邊程式,如果有要修改定義完的接腳,只需照著上面的形式編輯即可更改
Constrains 若是要對時間做限制,選擇這個選項
Constrains 因為所選的例子為全加器,其中並沒有CLOCK所以只有Pad to Pad可以做時間上的限制
Constrains 若是像一個counter其中就有CLOCK看到的就會像是這樣,要是不懂那些選項所指的是什麼,可以按紅色圈圈裡的選項,裡面有說明