1.軟件安裝教程
step1:安裝Python,注意勾選“Add Python 3.7 to PATH” (2022版本及以后直接跳過(guò)該步驟)
注意:從2021.1就不需要單獨(dú)安裝python了,軟件安裝時(shí)會(huì)自己安裝python3.8,也不需要下載。
step2:安裝efinity。該步驟比較簡(jiǎn)單,一路選擇Next,或者勾選同意。
stpe3:安裝補(bǔ)丁。如果所選擇的版本有補(bǔ)丁則安裝補(bǔ)丁,如果沒(méi)有則不必。
如果需要安裝補(bǔ)丁,則打開(kāi)補(bǔ)丁文件夾,運(yùn)行里面的run.bat文件。
輸入y,按任意鍵退出。
如果安裝失敗,可能是軟件沒(méi)有關(guān)閉或者軟件沒(méi)有安裝在默認(rèn)路徑下。打開(kāi)run.bat文件,里面的路徑默認(rèn)是
set DEFAULT_EFINITY_PATH=C:Efinity2022.2。
修改成自己的Efinity軟件安裝路徑即可。
stpe4:安裝下載器驅(qū)動(dòng)。注意該步驟要插入下載器才可以檢測(cè)到相應(yīng)的下載器信息。
(1)打開(kāi)zadig,
(2)選擇Options中l(wèi)ist all devices,
(3)勾掉Options中Ignore Hubs or Composite parents
(4)選擇相應(yīng)驅(qū)動(dòng);
(5)Driver中選擇libusbk替換現(xiàn)有驅(qū)動(dòng);
另外也可以通過(guò)YLS_DL驅(qū)動(dòng)直接安裝。這種方式更簡(jiǎn)單,也是推薦的方式。請(qǐng)參考下載器安裝。
注意:zadig的版本使用2.8或者以后的版本,舊的2.5版本會(huì)存在更換下載器的USB口需要重新安裝驅(qū)動(dòng)的情況。
step5:安裝gtkwave
gtkwave的作用是用于在線調(diào)試。把gtkwave解壓到efinty安裝路徑下,然后添加環(huán)境變量,在變量path中添加gtkwave所在路徑,如“C:Efinitygtkwave64bin”保存即可以。
注意:在安裝完成Efinity之后,有些電腦在使用軟件時(shí)可能存在各種問(wèn)題。請(qǐng)務(wù)必按照Efinity Software InstallationUser Guide中的指導(dǎo)安裝一些庫(kù)文件。只要按照下面的要求去安裝可以解決大部分問(wèn)題。
=================================
2、常見(jiàn)問(wèn)題總結(jié)
(1)The installer has encountered an unexpected error installing this package . This may indicate a problem with this package. The error code is 2503
Python安裝過(guò)程報(bào)錯(cuò)The error code is 2503的解決方案_谷哥的小弟的博客-CSDN博客
網(wǎng)上有一篇 Python安裝過(guò)程報(bào)錯(cuò)The error code is 2503的解決方案 ,原文鏈接如下:
原文鏈接:https://blog.csdn.net/lfdfhl/article/details/105639792
(2)zadig安裝失敗
Zadig提示:system policy has been modified to reject unsigned drivers
以管理員身份運(yùn)行zadig
說(shuō)明:可能與別的驅(qū)動(dòng)有沖突。
也可能是系統(tǒng)問(wèn)題。
(3)軟件打開(kāi)時(shí)指示IPC 沒(méi)有連接
安裝VC_redist.x64。相應(yīng)的安裝文件可以找FAE或者按照Efinity Software Installation User Guide中提供的鏈接自行下載。
(4)Efinity軟件打不開(kāi)
可能是安裝了自己的字體。
說(shuō)明(1)完整軟件安裝過(guò)程;
(2)補(bǔ)充軟件安裝可能存在的問(wèn)題。
(5)Efinity單獨(dú)安裝programmer報(bào)錯(cuò)
報(bào)錯(cuò)如下:
Error: could not find USB backend,cannot perfom any USB operations。
最近老是碰到客戶單獨(dú)安裝programmer會(huì)報(bào)錯(cuò)的現(xiàn)象。經(jīng)過(guò)AE提示發(fā)現(xiàn),在efinity-installation.pdf安裝文檔中也有說(shuō)明:?jiǎn)为?dú)安裝programmer時(shí)是要安裝x86和x64的Microsoft Visual C++。
Efinity入門(mén)使用教程
1、 軟件預(yù)設(shè)置 2、新建工程 3、添加源文件 4、添加管腳約束 5、添加GPIO 6、PLL設(shè)置 7、添加debug 8、下載 9、仿真 軟件預(yù)設(shè)置。
選項(xiàng) | 說(shuō)明 |
Usereditor | 一般軟件自帶的編輯器功能有限,而外部編輯器功能要強(qiáng)大很多。所以建議大家使用外部編輯器。在User editor中輸入編輯器的路徑。 |
Use user editor as default editor for all files。 | 如果希望每次點(diǎn)擊文件時(shí)是通過(guò)外部編輯器打開(kāi)的,可以勾選Use user editor as default editor for all files。反之,如果希望使用自帶編輯器打開(kāi)則不用勾選。 |
Top level project path | 指定新建工程目錄。 |
Enable flow data integrity check | |
Open last project on startup | 如果勾選此選擇,會(huì)打開(kāi)上次關(guān)閉的工程 |
openfile usingdefault system application | |
Use lastwindow layoutsetting | 使用上次軟件關(guān)閉時(shí)的窗口布局。 |
Auto-correct Tcl command | 在tcl命令窗口中輸入命令時(shí)可以自動(dòng)修改存在的錯(cuò)誤。 |
Auto-loadPlace andRoute data | 打開(kāi)軟件是自動(dòng)加載布局布線的數(shù)據(jù)。建議關(guān)閉。 |
Migrate interfacedesign withdevicechange | 修改器件時(shí),interface desiger中的配置也要修改。 |
EnableIP upgrades prompt on project load | 用新版本打開(kāi)老的軟件建的工程時(shí),打開(kāi)該選項(xiàng)會(huì)提示IP需要更新,如果不想更新IP可以關(guān)閉這個(gè)選項(xiàng)。 |
點(diǎn)擊preference,把Auto-load Place and route data前面的對(duì)勾去掉。其目的是為了防止軟件打開(kāi)工程時(shí)加載時(shí)間太長(zhǎng)。 如果需要加載數(shù)據(jù)可以點(diǎn)擊Load Place and Route Data
新建工程
Step1:點(diǎn)擊設(shè)置
Step2:在Top level project path中輸入路徑
Step3:點(diǎn)擊File -> Open Project,路徑會(huì)指向step2中設(shè)置的路徑
注意:易靈思的工程名為.xml,而不是.peri.xml,.peri.xml用于存放interface designer中的參數(shù)設(shè)置。
Stp1:File -->Create Project Stp2:在Project Editor中選擇路徑并輸入工程名 Stp3:選擇器件(家族)及速率等級(jí)
輸入top module/Entity 注意:如果沒(méi)有輸入top module名,軟件會(huì)自己選擇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還可以添加整個(gè)文件夾的文件,如圖選copy to project
管腳約束
這里我們以一個(gè)LED點(diǎn)燈為例,代碼如下:
Efinty是通過(guò)interface designer工具來(lái)設(shè)置IO等和外設(shè)相關(guān)的接口及電氣屬性的。Interface designer操作界面的打開(kāi)通過(guò)下面的Open Interface Desinger來(lái)實(shí)現(xiàn)。
Core 與interface的關(guān)系
Eifinty采用的把邏輯資源和硬核資源分開(kāi)的架構(gòu),代碼部分只針對(duì)邏輯資源,也就是我們這里提到的Core,而IO及其他硬核部分的配置在interface Designer工具中。下圖是interface與Core的關(guān)系,它們之間通過(guò)被稱作Siganl Interface的連線資源實(shí)現(xiàn)互聯(lián)。
因?yàn)榱?xí)慣問(wèn)題,使用者在最初一定會(huì)存在一些問(wèn)題,但是習(xí)慣之后它也是有不少優(yōu)勢(shì)存在的。比如說(shuō),在前期的硬件設(shè)計(jì)中,只需要在Interface Designer中添加已添加的IO及其他需要的硬件接口,并通過(guò)一鍵檢測(cè)就可以很清楚的知道與外設(shè)的連接是否合理,不需要考慮內(nèi)部因?yàn)闆](méi)有完整的程序而可能被優(yōu)化的風(fēng)險(xiǎn)。另外有些interface的選項(xiàng)在修改之后可以不需要先編譯而直接生成數(shù)據(jù)流。
interface與core的關(guān)系
interface界面
Bank電壓的設(shè)置
告訴軟件FPGA目前的bank電壓,硬件電路的bank電壓要和interface中的一致,如果電壓設(shè)置不一致可能存在長(zhǎng)時(shí)間運(yùn)行致使芯片失效。設(shè)置位置在Device Setting -->I/O Banks
添加GPIO
Step1:右鍵選擇GPIO
Step2:根據(jù)選擇的是單線還是多線來(lái)選擇Create Block還是Create Bus
Step3:編輯IO屬性,IO屬性如下:
選項(xiàng) | 選擇 | 說(shuō)明 |
Mode |
Input, output, inout, clkout |
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ū)動(dòng)PLL也可以直接驅(qū)動(dòng)內(nèi)部邏輯 用于普通的GPIO; PLL_CLKIN表示這個(gè)IO是用于驅(qū)動(dòng)PLL的; 用于存儲(chǔ)器的參考管腳 |
Register Option | None,register | 是否添加IO寄存器,推薦添加。 |
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)打開(kāi)IO寄存器時(shí)需要添加指定寄存器的時(shí)鐘 | |
Drive Strength | 1,2,3,4 | 設(shè)置輸出IO的驅(qū)動(dòng)能力 |
Enable Slew Rate | Yes,no | 是否命名能slew rate |
右鍵添加GPIO 針對(duì)上面的工程我們的參數(shù)設(shè)置如下: (1)Mode 設(shè)置為input (2) I/O Standard根據(jù)所在的Bank來(lái)選擇電壓 Instacne Name: clk Connection Type : pll_clkin
以arst_n為例 : Mode : input I/O standard :根據(jù)所在bank及bank電壓設(shè)置 Connection Type: normal Register Option: none
以4位輸出的led為例: (1)Name :o_led (3)位寬從3到0 Mode: output
PLL設(shè)置 PLL是FPGA內(nèi)部常用的配置項(xiàng)。Ti60F225有4個(gè)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í)鐘通過(guò)IO驅(qū)動(dòng);Dynamic:支持多路時(shí)鐘選擇;Core:時(shí)鐘通參考通過(guò)core供給 |
Automated clock Calculation |
打開(kāi)時(shí)鐘計(jì)算和設(shè)置窗口 |
針對(duì)上面的工程,我們的參數(shù)設(shè)置如下: 右擊PLL ->add Block Instance Name:根據(jù)需要輸入 PLL Resource:PL_TR0 Clock Source: external,core,dynamic External Clock :External Clock
IO分配
點(diǎn)擊Show/Hide GPIO Resource Assigner,在Package Pin或者Resoure位置輸入管腳。
檢測(cè)Interface設(shè)計(jì)是否存在問(wèn)題。
保存設(shè)置,點(diǎn)擊Check Design,檢查interface是否存在問(wèn)題。
再點(diǎn)Generate Efinity Constraint Files,我們就可以在Result --> interface下面看到生成一些文件。通過(guò)xxx_template.v復(fù)制例化接口
添加約束
添加約束的目的是為了告訴FPGA你的設(shè)計(jì)指標(biāo)及運(yùn)行情況。在上面的生成約束之后,在Result àxx.sdc中提供約束參考(請(qǐng)注意該文件不能直接添加到工程中,需要熱復(fù)制到別的指定目錄),對(duì)于gclk時(shí)鐘需要手動(dòng)添加約束的時(shí)鐘周期,對(duì)于PLL生成的時(shí)鐘已經(jīng)約束完整。
編譯完成之后可以查看時(shí)序報(bào)告,也可以通過(guò)routing àxx.timing.rpt來(lái)查看路徑詳細(xì)延時(shí)信息,如果想查看更可以通過(guò)指令來(lái)打印或者通過(guò)print_critical_path來(lái)控制打印的路徑數(shù)量 。
編譯
點(diǎn)擊dashboard中Toggle Automated Flow來(lái)設(shè)置是單步還是全程編譯(暗色是單步),下面是綜合,布局,布線,生成數(shù)據(jù)流,stop的相應(yīng)按鍵。軟件左下角會(huì)的編譯進(jìn)行提示編譯進(jìn)程。
添加debug
點(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
觸發(fā)條件的設(shè)置
捕獲設(shè)置:
?觸發(fā)位置
?分段數(shù)量
?窗口嘗試
下載程序 配置方式.易靈思的FPGA支持以下幾種配置方式。
主動(dòng)模式(SPI Active)— AS模式 | 通過(guò)SPI專用插座在線燒寫(xiě)FLASH,F(xiàn)LASH離線燒寫(xiě)好了再焊接,F(xiàn)PGA自己主動(dòng)通過(guò)從非易失性的SPI FLASH讀取bit流進(jìn)行加載,支持X1 X2 X4,x8(不同的FPGA支持的位寬有區(qū)別) |
被動(dòng)模式(SPI Passive)— PS模式 | 上位機(jī)或者MCU通過(guò)SPI接口向FPGA發(fā)送bit流文件,對(duì)FPGA進(jìn)行加載 ?支持X1 X2 X8 X16 X32 |
JTAG模式 | 上位機(jī)通過(guò)JTAG口將bit流文件發(fā)送到FPGA,對(duì)FPGA進(jìn)行加載 |
SPI Active using JTAG bridge — Bridge模式 | 通過(guò)FPGA的JTAG口燒寫(xiě)和FPGA連接的SPI FLASH |
另外需要注意JTAG配置使用bit文件,Flash配置使用hex文件,配置過(guò)程中需要注意讀取正常的ID,燒寫(xiě)flash可以勾去VerIfy After Programming節(jié)省時(shí)間
仿真
易靈思為所有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下。
-
python
+關(guān)注
關(guān)注
56文章
4823瀏覽量
86146
發(fā)布評(píng)論請(qǐng)先 登錄
手把手教你如何調(diào)優(yōu)Linux網(wǎng)絡(luò)參數(shù)
正點(diǎn)原子Linux系列全新視頻教程來(lái)啦!手把手教你MP257開(kāi)發(fā)板,讓您輕松入門(mén)!
KiCad直播活動(dòng)(三):在 Windows上編譯KiCad 手把手教您編譯/構(gòu)建 KiCad 源碼

《手把手教你做星閃無(wú)人機(jī)—KaihongOS星閃無(wú)人機(jī)開(kāi)發(fā)實(shí)戰(zhàn)》系列課程課件匯總
開(kāi)發(fā)者集結(jié)!《手把手教你做星閃無(wú)人機(jī)》第二課開(kāi)講啦!

《手把手教你做星閃無(wú)人機(jī)》即將開(kāi)播,鎖定15日晚七點(diǎn)!

《手把手教你做PC》課程即將啟動(dòng)!深開(kāi)鴻引領(lǐng)探索KaihongOS筆記本電腦開(kāi)發(fā)實(shí)戰(zhàn)

Air780E模組LuatOS開(kāi)發(fā)實(shí)戰(zhàn) —— 手把手教你搞定數(shù)據(jù)打包解包

Efinity入門(mén)使用-v2
Efinity入門(mén)使用-v4
Efinity軟件安裝-v5
Efinity編譯生成文件使用指導(dǎo)-v1

Efinity debuger常見(jiàn)問(wèn)題總結(jié)-v2

Efinity RISC-V IDE入門(mén)使用-3

手把手教你排序算法怎么寫(xiě)

評(píng)論