0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Efinity入門使用-v4

XL FPGA技術(shù)交流 ? 2024-11-06 15:56 ? 次閱讀

一、 軟件預設置
二、新建工程
三、添加源文件
四、添加管腳約束
五、添加GPIO
六、PLL設置
七、IPM添加IP
八、添加debug
九、下載
十、仿真


一、軟件預設置。

選項
說明
Usereditor
一般軟件自帶的編輯器功能有限,而外部編輯器功能要強大很多。所以建議大家使用外部編輯器。在User editor中輸入編輯器的路徑。
Use user editor as default editor for all files。如果希望每次點擊文件時是通過外部編輯器打開的,可以勾選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)閉時的窗口布局。
Auto-correct Tcl command
在tcl命令窗口中輸入命令時可以自動修改存在的錯誤。
Auto-loadPlace andRoute data
打開軟件是自動加載布局布線的數(shù)據(jù)。建議關(guān)閉。
Migrate interfacedesign withdevicechange
修改器件時,interface desiger中的配置也要修改。
EnableIP upgrades prompt on project load
用新版本打開老的軟件建的工程時,打開該選項會提示IP需要更新,如果不想更新IP可以關(guān)閉這個選項。



點擊preference,把Auto-load Place and route data前面的對勾去掉。其目的是為了防止軟件打開工程時加載時間太長。
如果需要加載數(shù)據(jù)可以點擊Load Place and Route Data





二、新建工程

Step1:點擊設置

Step2:在Top level project path中輸入路徑

Step3:點擊File -> Open Project,路徑會指向step2中設置的路徑

注意:易靈思的工程名為.xml,而不是.peri.xml,.peri.xml用于存放interface designer中的參數(shù)設置。

Stp1:File -->Create Project
Stp2:在Project Editor中選擇路徑并輸入工程名
Stp3:選擇器件(家族)及速率等級

輸入top module/Entity
注意:如果沒有輸入top module名,軟件會自己選擇top module,編輯結(jié)果不正確。

把retiming和seq_opt設置為0


點擊ok,新建工程完成。

三、添加源文件

方法1:選擇Design右擊,點擊Create
方法2:自己建立文件,添加文件到工程:
Stp1:選擇Design右擊,點擊Add
方法1:選擇Design右擊,點擊Add
方法2:Project Editoràadd file Efinity還可以添加整個文件夾的文件,如圖選copy to project


四、管腳約束

這里我們以一個LED點燈為例,代碼如下:


Efinty是通過interface designer工具來設置IO等和外設相關(guān)的接口電氣屬性的。Interface designer操作界面的打開通過下面的Open Interface Desinger來實現(xiàn)。


Core 與interface的關(guān)系

Eifinty采用的把邏輯資源和硬核資源分開的架構(gòu),代碼部分只針對邏輯資源,也就是我們這里提到的Core,而IO及其他硬核部分的配置在interface Designer工具中。下圖是interface與Core的關(guān)系,它們之間通過被稱作Siganl Interface的連線資源實現(xiàn)互聯(lián)。

因為習慣問題,使用者在最初一定會存在一些問題,但是習慣之后它也是有不少優(yōu)勢存在的。比如說,在前期的硬件設計中,只需要在Interface Designer中添加已添加的IO及其他需要的硬件接口,并通過一鍵檢測就可以很清楚的知道與外設的連接是否合理,不需要考慮內(nèi)部因為沒有完整的程序而可能被優(yōu)化的風險。另外有些interface的選項在修改之后可以不需要先編譯而直接生成數(shù)據(jù)流。

interface與core的關(guān)系

interface界面

Bank電壓的設置

告訴軟件FPGA目前的bank電壓,硬件電路的bank電壓要和interface中的一致,如果電壓設置不一致可能存在長時間運行致使芯片失效。設置位置在Device Setting -->I/O Banks


五 添加GPIO

Step1:右鍵選擇GPIO

Step2:根據(jù)選擇的是單線還是多線來選擇Create Block還是Create Bus

Step3:編輯IO屬性,IO屬性如下:


選項

選擇

說明

Mode

Input,
output,
inout,
clkout

Input:把FPGA管腳設置為輸入;

Output:把FPGA管腳設置為輸出;

Inout:把FPGA管腳設置為雙向管腳;

Clkout:把FPGA管腳設置為時鐘輸出

Connection Type

Normal,gclk,pll_clkin,VREF

gclk走全局時鐘網(wǎng)線,可以驅(qū)動PLL也可以直接驅(qū)動內(nèi)部邏輯

用于普通的GPIO;

PLL_CLKIN表示這個IO是用于驅(qū)動PLL的;

用于存儲器的參考管腳

Register Option

None,register

是否添加IO寄存器推薦添加。

I/O Standard

3.3v,1.8v,1.2V,1.5v

設置IO的電平

Double Data I/O Option

None,normal,resync

是否設置IO為雙延采樣

Clock


當打開IO寄存器時需要添加指定寄存器的時鐘

Drive Strength

1,2,3,4

設置輸出IO的驅(qū)動能力

Enable Slew Rate

Yes,no

是否命名能slew rate






右鍵添加GPIO

針對上面的工程我們的參數(shù)設置如下:
(1)Mode 設置為input
(2) I/O Standard根據(jù)所在的Bank來選擇電壓
Instacne Name: clk
Connection Type : pll_clkin
以arst_n為例 :
Mode : input
I/O standard :根據(jù)所在bank及bank電壓設置
Connection Type: normal
Register Option: none

以4位輸出的led為例:
(1)Name :o_led
(3)位寬從3到0
Mode: output
IO分配
點擊Show/Hide GPIO Resource Assigner,在Package Pin或者Resoure位置輸入管腳。


檢測Interface設計是否存在問題。


保存設置,點擊Check Design,檢查interface是否存在問題。

再點Generate Efinity Constraint Files,我們就可以在Result --> interface下面看到生成一些文件。通過xxx_template.v復制例化接口


六、PLL設置
PLL是FPGA內(nèi)部常用的配置項。Ti60F225有4個PLL,如下圖所示,分別為PLL_BL,PLL_TL,PLL_TR和PLL_BR。
Instance Name
用戶定義

PLLResourec


Output ClockInversion
on,off
翻轉(zhuǎn)時鐘輸出
ConnectionType

gclk,

rclk

時鐘類型
Clock Source

External,

Dynamic,Core

External指時鐘通過IO驅(qū)動;Dynamic:支持多路時鐘選擇;Core:時鐘通參考通過core供給

Automated clock

Calculation


打開時鐘計算和設置窗口

針對上面的工程,我們的參數(shù)設置如下:
右擊PLL ->add Block
Instance Name:根據(jù)需要輸入
PLL Resource:PL_TR0
Clock Source: external,core,dynamic
External Clock :External Clock

七、通過IPM添加IP
點擊Open IP Catlog,

里面有一些常用的IP,但是要注意的是這些都是軟件核的IP,所有硬核的IP都是通過 InterfaceDesigner來添加的。



八 添加約束

添加約束的目的是為了告訴FPGA你的設計指標及運行情況。在上面的生成約束之后,在Result àxx.sdc中提供約束參考(請注意該文件不能直接添加到工程中,需要熱復制到別的指定目錄),對于gclk時鐘需要手動添加約束的時鐘周期,對于PLL生成的時鐘已經(jīng)約束完整。

編譯完成之后可以查看時序報告,也可以通過routing àxx.timing.rpt來查看路徑詳細延時信息,如果想查看更可以通過指令來打印或者通過print_critical_path來控制打印的路徑數(shù)量 。


編譯

點擊dashboard中Toggle Automated Flow來設置是單步還是全程編譯(暗色是單步),下面是綜合,布局,布線,生成數(shù)據(jù)流,stop的相應按鍵。軟件左下角會的編譯進行提示編譯進程。



八添加debug

8.1通過向?qū)砑觗ebug

點擊Open Debugger Wizard

(1)設置Buffer Depth

(2)Input Pipeline Stage

(3)Capture control

(4)JTAG USER TAP

(5)修改時鐘域

(6)Probe Type


8.2手動debug

手動debug的方式就是自己一個個添加debug的信號 ,當然這種方式也可以添加 VIO,VIO可以通過JTAG產(chǎn)生一些控制信號。手動添加debug的方式如下。

step1:點擊OpenDebugger打開Efinity Debugger頁面,在Perpectives下面選擇Profile Editor.

Step2:根據(jù)需要選擇添加VIO或者LA.

Step3: 以添加LA為例,點擊右側(cè)的add_probe來添加需要的信號,然后在Name中修改信號名字,Width中指定信號位寬及Probe Trigger or Data中設置信號的觸發(fā)屬性。如果要刪除信號就點擊右側(cè)的帶“X"的remove Probe.

另外可以指定Data Depth,也就是數(shù)據(jù)采樣深度,Input Pipeline Stage對可以數(shù)據(jù)打拍,用于優(yōu)化時序。

step4 添加VIO。根據(jù)需要選擇vio界面的add source和add probe 來添加自己需要的信號。如果要刪除信號則選擇remove source/probe.

step5:點擊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要選擇不同的User Tap號,否則會提示接口有占用。如下圖指示“ERROR: jtage resource = JTAG USER1 has been occupied"。


8.3 在線調(diào)試

該步驟需要在配置FPGA之后再能操作。

觸發(fā)條件的設置

捕獲設置:

?觸發(fā)位置

?分段數(shù)量

?窗口嘗試


8.4 關(guān)閉debug
如果調(diào)試完成,想要關(guān)閉debug可以通過Project Editor --> Debugger下面的Debugger Auto Instantiation選項,去掉勾選并點擊OK.

如果關(guān)閉成功會”Debugger was disabled. Please rerun the flow start from placement"的指示框。如果沒有出現(xiàn)則沒關(guān)關(guān)閉成功,需要重啟Efinity軟件再次關(guān)閉一次。



九 配置FPGA
配置方式.易靈思的FPGA支持以下幾種配置方式。


主動模式(SPI Active)— AS模式通過SPI專用插座在線燒寫FLASH,F(xiàn)LASH離線燒寫好了再焊接,FPGA自己主動通過從非易失性的SPI FLASH讀取bit流進行加載,支持X1 X2 X4,x8(不同的FPGA支持的位寬有區(qū)別)
被動模式(SPI Passive)— PS模式
上位機或者MCU通過SPI接口向FPGA發(fā)送bit流文件,對FPGA進行加載
?支持X1 X2 X8 X16 X32
JTAG模式上位機通過JTAG口將bit流文件發(fā)送到FPGA,對FPGA進行加載
SPI Active using JTAG bridge — Bridge模式通過FPGA的JTAG口燒寫和FPGA連接的SPI FLASH


另外需要注意JTAG配置使用bit文件,Flash配置使用hex文件,配置過程中需要注意讀取正常的ID,燒寫flash可以勾去VerIfy After Programming節(jié)省時間

十 仿真


易靈思為所有IP提供了仿真模型

以FIFO為例,在工具欄中選擇IP Catalog

Open IP Callog ->Memory ->FIFO->以默認參數(shù)生成IP
找到IP生成路徑下的Testbench文件夾。把modelsim路徑轉(zhuǎn)向該文件夾(注意路徑方向“/”)
運行do sim.do

另外 關(guān)于interfce Designer接口的仿真模型在路徑C:\Efinity\2023.1\pt\sim_models\Verilog下。




原文標題:Efinity入門使用-v4

文章出處:【微信公眾號:易靈思FPGA技術(shù)交流】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21616

    瀏覽量

    601105
收藏 人收藏

    評論

    相關(guān)推薦

    Efinity入門使用-v2

    。 原文標題:Efinity入門使用-v2
    的頭像 發(fā)表于 11-06 15:56 ?6次閱讀

    Efinity入門使用-v3

    :\Efinity\2023.1\pt\sim_models\Verilog下。 原文標題:Efinity入門
    的頭像 發(fā)表于 11-06 15:56 ?7次閱讀

    Efinity RISC-V IDE入門使用-4

    原文標題:Efinity RISC-V IDE入門使用-4
    的頭像 發(fā)表于 11-01 11:06 ?98次閱讀

    RISCV 操作常見問題集 - v4

    。 原文標題:RISCV 操作常見問題集 - v4
    的頭像 發(fā)表于 11-01 11:06 ?115次閱讀

    Efinity軟件安裝-v5

    DEFAULT_EFINITY_PATH=C:\Efinity\2022.2。修改成自己的Efinity軟件安裝路徑即可。stpe4:安裝下載器驅(qū)動。注意該步驟要插入下載器才可以檢測
    的頭像 發(fā)表于 11-01 11:06 ?73次閱讀

    Efinity FIFO IP仿真問題 -v1

    Efinity目前不支持聯(lián)合仿真,只能通過調(diào)用源文件仿真。 我們生成一個fifo IP命名為fifo_sim 在Deliverables中保留Testbench的選項。 在IP的生成目錄下會有以下
    的頭像 發(fā)表于 10-21 11:41 ?761次閱讀
    <b class='flag-5'>Efinity</b> FIFO IP仿真問題 -<b class='flag-5'>v</b>1

    Efinity編譯生成文件使用指導-v1

    接上篇: (6)查看Unassigned Core Pins。 在placement下面的palce.rpt文件中搜索 Unassigned C ore Pins就可以看到。它說明這些管腳沒有用于內(nèi)部連接。 大家可以點擊這個鏈接查看上文 Efinity編譯生成文件使用指導
    的頭像 發(fā)表于 08-13 14:22 ?637次閱讀
    <b class='flag-5'>Efinity</b>編譯生成文件使用指導-<b class='flag-5'>v</b>1

    特斯拉正積極測試其V4超級充電樁

    近日,特斯拉在快速充電技術(shù)領(lǐng)域的最新動態(tài)引發(fā)了廣泛關(guān)注。據(jù)悉,特斯拉正積極測試其現(xiàn)有的V4超級充電樁(基于V3充電柜構(gòu)建)的潛力,旨在突破300千瓦的充電功率上限,這一舉措標志著特斯拉在提升充電速度方面邁出了重要一步。
    的頭像 發(fā)表于 08-06 16:52 ?748次閱讀

    Efinity debuger常見問題總結(jié)-v2

    Efinity在Debug時會出現(xiàn)UUID mismatch錯誤。很多剛開始使用的人經(jīng)常遇到。下面我們做一個總結(jié)。歡迎遇到案例時共同分享。
    的頭像 發(fā)表于 07-11 11:39 ?1954次閱讀
    <b class='flag-5'>Efinity</b> debuger常見問題總結(jié)-<b class='flag-5'>v</b>2

    Efinity RISC-V IDE入門使用-3

    自從新版本的Efinity RISC-V IDE發(fā)布之后,這直沒有時間操作一下,它為RISC-V ' C '和' c++ '軟件開發(fā)提供了一個完整、無縫的環(huán)境;今天終于安裝了,但安裝自不必多說,一路
    的頭像 發(fā)表于 07-09 08:46 ?946次閱讀
    <b class='flag-5'>Efinity</b> RISC-<b class='flag-5'>V</b> IDE<b class='flag-5'>入門</b>使用-3

    X-CUBE-CRYPTOLIB V4庫文件無法添加,鏈接錯誤的原因?

    看官方介紹,V4版本的靜態(tài)庫是支持多個編譯器的,芯片是stm32h743,我用的是arm-none-eabi-gcc,版本是gcc version 13.2.1 20231009 (Arm GNU
    發(fā)表于 05-31 07:54

    Efinity軟件安裝教程與Efinity入門使用教程 大牛手把手教程

    ,軟件安裝時會自己安裝python3.8,也不需要下載。 step2 :安裝efinity。該步驟比較簡單,一路選擇Next,或者勾選同意。 stpe3:安裝補丁。如果所選擇的版本有補丁則安裝補丁,如果
    的頭像 發(fā)表于 05-20 17:10 ?2485次閱讀
    <b class='flag-5'>Efinity</b>軟件安裝教程與<b class='flag-5'>Efinity</b><b class='flag-5'>入門</b>使用教程 大牛手把手教程

    stm32cubemx生成mdk-arm v4項目文件無法打開是什么原因?qū)е碌模?/a>

    stm32cubemx 生成mdk-arm v4 項目文件無法打開
    發(fā)表于 05-14 06:43

    LTC3305串聯(lián)蓄電池組的各個節(jié)點不能與芯片的V1-V4引腳直接相連嗎?

    關(guān)于LTC3305的應用問題: 這是芯片的典型應用示意圖,V4端可承受電壓最高為68V,均衡回路、電池與芯片的連接回路是分開設計的。我在設計中將串聯(lián)蓄電池組的各個中間節(jié)點直接與芯片引腳
    發(fā)表于 12-26 06:38

    三錳銅表ADC芯片RN8207D V4用戶手冊

    電子發(fā)燒友網(wǎng)站提供《三錳銅表ADC芯片RN8207D V4用戶手冊.pdf》資料免費下載
    發(fā)表于 12-06 09:28 ?11次下載