選項(xiàng) | 說明 |
Usereditor | 一般軟件自帶的編輯器功能有限,而外部編輯器功能要強(qiáng)大很多。所以建議大家使用外部編輯器。在User editor中輸入編輯器的路徑。 |
Use user editor as default editor for all files。 | 如果希望每次點(diǎn)擊文件時(shí)是通過外部編輯器打開的,可以勾選Use user editor as default editor for all files。反之,如果希望使用自帶編輯器打開則不用勾選。 |
Top level project path | 指定新建工程目錄。 |
Enable flow data integrity check | |
Open last project on startup | 如果勾選此選擇,會打開上次關(guān)閉的工程 |
openfile usingdefault system application | |
Use lastwindow layoutsetting | 使用上次軟件關(guān)閉時(shí)的窗口布局。 |
Auto-correct Tcl command | 在tcl命令窗口中輸入命令時(shí)可以自動修改存在的錯誤。 |
Auto-loadPlace andRoute data | 打開軟件是自動加載布局布線的數(shù)據(jù)。建議關(guān)閉。 |
Migrate interfacedesign withdevicechange | 修改器件時(shí),interface desiger中的配置也要修改。 |
EnableIP upgrades prompt on project load | 用新版本打開老的軟件建的工程時(shí),打開該選項(xiàng)會提示IP需要更新,如果不想更新IP可以關(guān)閉這個選項(xiàng)。 |
點(diǎn)擊preference,把Auto-load Place and route data前面的對勾去掉。其目的是為了防止軟件打開工程時(shí)加載時(shí)間太長。如果需要加載數(shù)據(jù)可以點(diǎn)擊Load Place and Route Data
二、新建工程
Step1:點(diǎn)擊設(shè)置
Step2:在Top level project path中輸入路徑
Step3:點(diǎn)擊File -> Open Project,路徑會指向step2中設(shè)置的路徑
注意:易靈思的工程名為.xml,而不是.peri.xml,.peri.xml用于存放interface designer中的參數(shù)設(shè)置。
Stp1:File -->Create ProjectStp2:在Project Editor中選擇路徑并輸入工程名Stp3:選擇器件(家族)及速率等級 輸入top module/Entity注意:如果沒有輸入top module名,軟件會自己選擇top module,編輯結(jié)果不正確。
把retiming和seq_opt設(shè)置為0
點(diǎn)擊ok,新建工程完成。
三、添加源文件
方法1:選擇Design右擊,點(diǎn)擊Create方法2:自己建立文件,添加文件到工程:Stp1:選擇Design右擊,點(diǎn)擊Add方法1:選擇Design右擊,點(diǎn)擊Add方法2:Project Editoràadd file Efinity還可以添加整個文件夾的文件,如圖選copy to project
四、管腳約束
這里我們以一個LED點(diǎn)燈為例,代碼如下:
Efinty是通過interface designer工具來設(shè)置IO等和外設(shè)相關(guān)的接口及電氣屬性的。Interface designer操作界面的打開通過下面的Open Interface Desinger來實(shí)現(xiàn)。
Core 與interface的關(guān)系
Eifinty采用的把邏輯資源和硬核資源分開的架構(gòu),代碼部分只針對邏輯資源,也就是我們這里提到的Core,而IO及其他硬核部分的配置在interface Designer工具中。下圖是interface與Core的關(guān)系,它們之間通過被稱作Siganl Interface的連線資源實(shí)現(xiàn)互聯(lián)。
因?yàn)榱?xí)慣問題,使用者在最初一定會存在一些問題,但是習(xí)慣之后它也是有不少優(yōu)勢存在的。比如說,在前期的硬件設(shè)計(jì)中,只需要在Interface Designer中添加已添加的IO及其他需要的硬件接口,并通過一鍵檢測就可以很清楚的知道與外設(shè)的連接是否合理,不需要考慮內(nèi)部因?yàn)闆]有完整的程序而可能被優(yōu)化的風(fēng)險(xiǎn)。另外有些interface的選項(xiàng)在修改之后可以不需要先編譯而直接生成數(shù)據(jù)流。
interface與core的關(guān)系
interface界面
Bank電壓的設(shè)置告訴軟件FPGA目前的bank電壓,硬件電路的bank電壓要和interface中的一致,如果電壓設(shè)置不一致可能存在長時(shí)間運(yùn)行致使芯片失效。設(shè)置位置在Device Setting -->I/O Banks
五 添加GPIO
Step1:右鍵選擇GPIO
Step2:根據(jù)選擇的是單線還是多線來選擇Create Block還是Create Bus
Step3:編輯IO屬性,IO屬性如下:
選項(xiàng)
|
選擇
|
說明
|
Mode
|
Input,
|
Input:把FPGA管腳設(shè)置為輸入;
Output:把FPGA管腳設(shè)置為輸出;
Inout:把FPGA管腳設(shè)置為雙向管腳;
Clkout:把FPGA管腳設(shè)置為時(shí)鐘輸出
|
Connection Type
|
Normal,gclk,pll_clkin,VREF
|
gclk走全局時(shí)鐘網(wǎng)線,可以驅(qū)動PLL也可以直接驅(qū)動內(nèi)部邏輯
用于普通的GPIO; PLL_CLKIN表示這個IO是用于驅(qū)動PLL的; 用于存儲器的參考管腳 |
Register Option
|
None,register
|
|
I/O Standard
|
3.3v,1.8v,1.2V,1.5v
|
設(shè)置IO的電平
|
Double Data I/O Option
|
None,normal,resync
|
是否設(shè)置IO為雙延采樣
|
Clock
|
當(dāng)打開IO寄存器時(shí)需要添加指定寄存器的時(shí)鐘
|
|
Drive Strength
|
1,2,3,4
|
設(shè)置輸出IO的驅(qū)動能力
|
Enable Slew Rate
|
Yes,no
|
是否命名能slew rate
|
右鍵添加GPIO 針對上面的工程我們的參數(shù)設(shè)置如下:(1)Mode 設(shè)置為input(2) I/O Standard根據(jù)所在的Bank來選擇電壓Instacne Name: clkConnection Type : pll_clkin以arst_n為例 :Mode : inputI/O standard :根據(jù)所在bank及bank電壓設(shè)置Connection Type: normalRegister Option: none 以4位輸出的led為例:(1)Name :o_led(3)位寬從3到0Mode: output對于總線信號想要再次編輯信號屬性時(shí),需要點(diǎn)擊右側(cè)的Editbus property,
如果單獨(dú)編輯某個信號屬性是不能編輯的。如下圖所示。
IO分配點(diǎn)擊Show/Hide GPIO Resource Assigner,在Package Pin或者Resoure位置輸入管腳。
檢測Interface設(shè)計(jì)是否存在問題。
保存設(shè)置,點(diǎn)擊Check Design,檢查interface是否存在問題。
再點(diǎn)Generate Efinity Constraint Files,我們就可以在Result --> interface下面看到生成一些文件。通過xxx_template.v復(fù)制例化接口
六、PLL設(shè)置PLL是FPGA內(nèi)部常用的配置項(xiàng)。Ti60F225有4個PLL,如下圖所示,分別為PLL_BL,PLL_TL,PLL_TR和PLL_BR。
Instance Name | 用戶定義 | |
PLLResourec | ||
Output ClockInversion | on,off | 翻轉(zhuǎn)時(shí)鐘輸出 |
ConnectionType |
gclk, rclk |
時(shí)鐘類型 |
Clock Source |
External, Dynamic,Core |
External指時(shí)鐘通過IO驅(qū)動;Dynamic:支持多路時(shí)鐘選擇;Core:時(shí)鐘通參考通過core供給 |
Automated clock Calculation |
打開時(shí)鐘計(jì)算和設(shè)置窗口 |
針對上面的工程,我們的參數(shù)設(shè)置如下:右擊PLL ->add BlockInstance Name:根據(jù)需要輸入PLL Resource:PL_TR0Clock Source: external,core,dynamicExternal Clock :External Clock
七、通過IPM添加IP 點(diǎn)擊Open IP Catlog,
里面有一些常用的IP,但是要注意的是這些都是軟件核的IP,所有硬核的IP都是通過 InterfaceDesigner來添加的。
八 添加約束
添加約束的目的是為了告訴FPGA你的設(shè)計(jì)指標(biāo)及運(yùn)行情況。在上面的生成約束之后,在Result àxx.sdc中提供約束參考(請注意該文件不能直接添加到工程中,需要熱復(fù)制到別的指定目錄),對于gclk時(shí)鐘需要手動添加約束的時(shí)鐘周期,對于PLL生成的時(shí)鐘已經(jīng)約束完整。
編譯完成之后可以查看時(shí)序報(bào)告,也可以通過routing àxx.timing.rpt來查看路徑詳細(xì)延時(shí)信息,如果想查看更可以通過指令來打印或者通過print_critical_path來控制打印的路徑數(shù)量 。
編譯
點(diǎn)擊dashboard中Toggle Automated Flow來設(shè)置是單步還是全程編譯(暗色是單步),下面是綜合,布局,布線,生成數(shù)據(jù)流,stop的相應(yīng)按鍵。軟件左下角會的編譯進(jìn)行提示編譯進(jìn)程。
八添加debug
8.1通過向?qū)砑觗ebug
點(diǎn)擊Open Debugger Wizard
(1)設(shè)置Buffer Depth
(2)Input Pipeline Stage
(3)Capture control
(4)JTAG USER TAP
(5)修改時(shí)鐘域
(6)Probe Type
8.2手動debug
手動debug的方式就是自己一個個添加debug的信號 ,當(dāng)然這種方式也可以添加 VIO,VIO可以通過JTAG產(chǎn)生一些控制信號。手動添加debug的方式如下。
step1:點(diǎn)擊OpenDebugger打開Efinity Debugger頁面,在Perpectives下面選擇Profile Editor.
Step2:根據(jù)需要選擇添加VIO或者LA.
Step3: 以添加LA為例,點(diǎn)擊右側(cè)的add_probe來添加需要的信號,然后在Name中修改信號名字,Width中指定信號位寬及Probe Trigger or Data中設(shè)置信號的觸發(fā)屬性。如果要刪除信號就點(diǎn)擊右側(cè)的帶“X"的remove Probe.
另外可以指定Data Depth,也就是數(shù)據(jù)采樣深度,Input Pipeline Stage對可以數(shù)據(jù)打拍,用于優(yōu)化時(shí)序。
step4 添加VIO。根據(jù)需要選擇vio界面的add source和add probe 來添加自己需要的信號。如果要刪除信號則選擇remove source/probe.
step5:點(diǎn)擊Generate,會在工程目錄下就會生成一個debug_top.v,把該文件添加到工程并例化。效果如下。
step6.添加JTAG。打開interface Designer,右擊選擇JTAG User Tap,添加JTAG Block,并指定JTAG resource,如下圖中選擇JTAG user1.然后生成約束例化信號。
注意通過向?qū)砑覦ebugger和通過手動添加debuger這兩種方式不能共存。另外要注意在interface Designer中添加了User Tap之后,在添加向?qū)r(shí)要選擇不同的User Tap號,否則會提示接口有占用。如下圖指示“ERROR: jtage resource = JTAG USER1 has been occupied"。
8.3 在線調(diào)試
該步驟需要在配置FPGA之后再能操作。
觸發(fā)條件的設(shè)置
捕獲設(shè)置:
?觸發(fā)位置
?分段數(shù)量
?窗口嘗試
8.4 關(guān)閉debug如果調(diào)試完成,想要關(guān)閉debug可以通過Project Editor --> Debugger下面的Debugger Auto Instantiation選項(xiàng),去掉勾選并點(diǎn)擊OK.
如果關(guān)閉成功會”Debugger was disabled. Please rerun the flow start from placement"的指示框。如果沒有出現(xiàn)則沒關(guān)關(guān)閉成功,需要重啟Efinity軟件再次關(guān)閉一次。
8.5 Gtkwave界面 有些時(shí)間我們會發(fā)現(xiàn)Gtkwave界面的信號不全,比如下圖,mode信號沒有添加到右側(cè)的波形窗口,這時(shí)選擇SST窗口下的top就會把所有信號列出來,選擇相應(yīng)的信號,點(diǎn)擊insert就可以插入。
另外在2024的版本中,打開一次波界面之后可以不用關(guān)閉直接點(diǎn)擊Run等按鍵即可以刷新波形。
九 配置FPGA配置方式.易靈思的FPGA支持以下幾種配置方式。
主動模式(SPI Active)— AS模式 | 通過SPI專用插座在線燒寫FLASH,F(xiàn)LASH離線燒寫好了再焊接,FPGA自己主動通過從非易失性的SPI FLASH讀取bit流進(jìn)行加載,支持X1 X2 X4,x8(不同的FPGA支持的位寬有區(qū)別) |
被動模式(SPI Passive)— PS模式 | 上位機(jī)或者MCU通過SPI接口向FPGA發(fā)送bit流文件,對FPGA進(jìn)行加載?支持X1 X2 X8 X16 X32 |
JTAG模式 | 上位機(jī)通過JTAG口將bit流文件發(fā)送到FPGA,對FPGA進(jìn)行加載 |
SPI Active using JTAG bridge — Bridge模式 | 通過FPGA的JTAG口燒寫和FPGA連接的SPI FLASH |
十 仿真
易靈思為所有IP提供了仿真模型
以FIFO為例,在工具欄中選擇IP Catalog
Open IP Callog ->Memory ->FIFO->以默認(rèn)參數(shù)生成IP找到IP生成路徑下的Testbench文件夾。把modelsim路徑轉(zhuǎn)向該文件夾(注意路徑方向“/”)運(yùn)行do sim.do另外 關(guān)于interfce Designer接口的仿真模型在路徑C:Efinity2023.1ptsim_modelsVerilog下。
十一、查看軟件版本
在Help ->About。打開軟件詳細(xì)版本,由于軟件存在很多補(bǔ)丁,所說說明版本時(shí),要給出完整的版本號。
當(dāng)軟件版本號不對應(yīng)時(shí)可能不打開軟件,因?yàn)榈桶姹静荒芗嫒莞甙姹尽?/p>
另外peri.xml里面也是有版本號的,當(dāng)軟件打開不開的時(shí)候可以對比安裝的軟件版本號與工程開發(fā)用的版本號是否存在不兼容。
廣告時(shí)間
-
FPGA
+關(guān)注
關(guān)注
1626文章
21665瀏覽量
601828
發(fā)布評論請先 登錄
相關(guān)推薦
評論