0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

易灵思Efinity入门使用-v8

XL FPGA技术交流 ? 来源:XL FPGA技术交流 ? 作者:XL FPGA技术交流 ? 2024-10-23 10:37 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、 软件预设置二、新建工程三、添加源文件四、添加管脚约束五、添加GPIO六、PLL设置 七、IPM添加IP八、添加debug九、下载十、仿真 十一、查看软件版本 一、软件预设置。60053390-90d2-11ef-a79e-92fbcf53809c.png601bb0d4-90d2-11ef-a79e-92fbcf53809c.png ?
选项 说明
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 如果勾选此选择,会打开上次关闭的工程
openfile usingdefault system application
Use lastwindow layoutsetting 使用上次软件关闭时的窗口布局。
Auto-correct Tcl command 在tcl命令窗口中输入命令时可以自动修改存在的错误。
Auto-loadPlace andRoute data 打开软件是自动加载布局布线的数据。建议关闭。
Migrate interfacedesign withdevicechange 修改器件时,interface desiger中的配置也要修改。
EnableIP upgrades prompt on project load 用新版本打开老的软件建的工程时,打开该选项会提示IP需要更新,如果不想更新IP可以关闭这个选项。

点击preference,把Auto-load Place and route data前面的对勾去掉。其目的是为了防止软件打开工程时加载时间太长。如果需要加载数据可以点击Load Place and Route Data

603b3fbc-90d2-11ef-a79e-92fbcf53809c.png

二、新建工程

Step1:点击设置

Step2:在Top level project path中输入路径

Step3:点击File -> Open Project,路径会指向step2中设置的路径

注意:易灵思的工程名为.xml,而不是.peri.xml,.peri.xml用于存放interface designer中的参数设置。

6053548a-90d2-11ef-a79e-92fbcf53809c.png

Stp1:File -->Create ProjectStp2:在Project Editor中选择路径并输入工程名Stp3:选择器件(家族)及速率等级 60721d52-90d2-11ef-a79e-92fbcf53809c.png输入top module/Entity注意:如果没有输入top module名,软件会自己选择top module,编辑结果不正确。608a74d8-90d2-11ef-a79e-92fbcf53809c.png

把retiming和seq_opt设置为0

60a3e4ae-90d2-11ef-a79e-92fbcf53809c.png

点击ok,新建工程完成。

三、添加源文件

方法1:选择Design右击,点击Create方法2:自己建立文件,添加文件到工程:Stp1:选择Design右击,点击Add60bac2f0-90d2-11ef-a79e-92fbcf53809c.png方法1:选择Design右击,点击Add方法2:Project Editoràadd file Efinity还可以添加整个文件夹的文件,如图选copy to project

60e10ce4-90d2-11ef-a79e-92fbcf53809c.png

四、管脚约束

这里我们以一个LED点灯为例,代码如下:

60fb49f6-90d2-11ef-a79e-92fbcf53809c.png

Efinty是通过interface designer工具来设置IO等和外设相关的接口电气属性的。Interface designer操作界面的打开通过下面的Open Interface Desinger来实现。

6119d13c-90d2-11ef-a79e-92fbcf53809c.png

Core 与interface的关系

Eifinty采用的把逻辑资源和硬核资源分开的架构,代码部分只针对逻辑资源,也就是我们这里提到的Core,而IO及其他硬核部分的配置在interface Designer工具中。下图是interface与Core的关系,它们之间通过被称作Siganl Interface的连线资源实现互联。

因为习惯问题,使用者在最初一定会存在一些问题,但是习惯之后它也是有不少优势存在的。比如说,在前期的硬件设计中,只需要在Interface Designer中添加已添加的IO及其他需要的硬件接口,并通过一键检测就可以很清楚的知道与外设的连接是否合理,不需要考虑内部因为没有完整的程序而可能被优化的风险。另外有些interface的选项在修改之后可以不需要先编译而直接生成数据流。

612efe7c-90d2-11ef-a79e-92fbcf53809c.png

interface与core的关系

61498684-90d2-11ef-a79e-92fbcf53809c.png

interface界面

Bank电压的设置

告诉软件FPGA目前的bank电压,硬件电路的bank电压要和interface中的一致,如果电压设置不一致可能存在长时间运行致使芯片失效。设置位置在Device Setting -->I/O Banks

61631fcc-90d2-11ef-a79e-92fbcf53809c.png

五 添加GPIO

Step1:右键选择GPIO

Step2:根据选择的是单线还是多线来选择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走全局时钟网线,可以驱动PLL也可以直接驱动内部逻辑

用于普通的GPIO;

PLL_CLKIN表示这个IO是用于驱动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的驱动能力

Enable Slew Rate

Yes,no

是否命名能slew rate

61758324-90d2-11ef-a79e-92fbcf53809c.png右键添加GPIO 针对上面的工程我们的参数设置如下:(1)Mode 设置为input(2) I/O Standard根据所在的Bank来选择电压Instacne Name: clkConnection Type : pll_clkin6184ef12-90d2-11ef-a79e-92fbcf53809c.png以arst_n为例 :Mode : inputI/O standard :根据所在bank及bank电压设置Connection Type: normalRegister Option: none61a9fc80-90d2-11ef-a79e-92fbcf53809c.png 以4位输出的led为例:(1)Name :o_led(3)位宽从3到0Mode: output61c23e9e-90d2-11ef-a79e-92fbcf53809c.png对于总线信号想要再次编辑信号属性时,需要点击右侧的Editbus property,

61dc75f2-90d2-11ef-a79e-92fbcf53809c.png

如果单独编辑某个信号属性是不能编辑的。如下图所示。

61fb5e90-90d2-11ef-a79e-92fbcf53809c.png

IO分配620dcb70-90d2-11ef-a79e-92fbcf53809c.png点击Show/Hide GPIO Resource Assigner,在Package Pin或者Resoure位置输入管脚。

62203972-90d2-11ef-a79e-92fbcf53809c.png

检测Interface设计是否存在问题。

62397a22-90d2-11ef-a79e-92fbcf53809c.png

保存设置,点击Check Design,检查interface是否存在问题。

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

624faf40-90d2-11ef-a79e-92fbcf53809c.png

六、PLL设置PLL是FPGA内部常用的配置项。Ti60F225有4个PLL,如下图所示,分别为PLL_BL,PLL_TL,PLL_TR和PLL_BR。
Instance Name 用户定义
PLLResourec
Output ClockInversion on,off 翻转时钟输出
ConnectionType

gclk,

rclk

时钟类型
Clock Source

External,

Dynamic,Core

External指时钟通过IO驱动;Dynamic:支持多路时钟选择;Core:时钟通参考通过core供给

Automated clock

Calculation

打开时钟计算和设置窗口

626a832e-90d2-11ef-a79e-92fbcf53809c.png

针对上面的工程,我们的参数设置如下:右击PLL ->add BlockInstance Name:根据需要输入PLL Resource:PL_TR0Clock Source: external,core,dynamicExternal Clock :External Clock

6285c06c-90d2-11ef-a79e-92fbcf53809c.png

七、通过IPM添加IP 点击Open IP Catlog,

62a4471c-90d2-11ef-a79e-92fbcf53809c.png

里面有一些常用的IP,但是要注意的是这些都是软件核的IP,所有硬核的IP都是通过 InterfaceDesigner来添加的。

62b92902-90d2-11ef-a79e-92fbcf53809c.png

八 添加约束

添加约束的目的是为了告诉FPGA你的设计指标及运行情况。在上面的生成约束之后,在Result àxx.sdc中提供约束参考(请注意该文件不能直接添加到工程中,需要热复制到别的指定目录),对于gclk时钟需要手动添加约束的时钟周期,对于PLL生成的时钟已经约束完整。

编译完成之后可以查看时序报告,也可以通过routing àxx.timing.rpt来查看路径详细延时信息,如果想查看更可以通过指令来打印或者通过print_critical_path来控制打印的路径数量 。

62c962f4-90d2-11ef-a79e-92fbcf53809c.png

62d7d29e-90d2-11ef-a79e-92fbcf53809c.png

编译

点击dashboard中Toggle Automated Flow来设置是单步还是全程编译(暗色是单步),下面是综合,布局,布线,生成数据流,stop的相应按键。软件左下角会的编译进行提示编译进程。

62f89de4-90d2-11ef-a79e-92fbcf53809c.png

八添加debug

8.1通过向导添加debug

点击Open Debugger Wizard

(1)设置Buffer Depth:

这个是需要采集信号的深度。

(2)Input Pipeline Stage

如果时序不好,可以把Pipleline设置大点保证时序。

(3)Capture control

(4)JTAG USER TAP

JTAG有4个User tap,选择可以用的即可,主要是不要与在用的冲突即可以。

(5)修改时钟域,

图看到undefined的时钟域,点击undefined就可以选择时钟,当然对于存在时钟的也是可以修改的。

(6)Probe Type

Probe Type是用于选择该信号要是用于看波形还是用于触发,有三种选择,DATA AND trigger,DATA ONLY和TRGGER ONLY;字面意思也很好理解,即用作看波形也用作触发,只用作看波形,只用作触发。

63099d9c-90d2-11ef-a79e-92fbcf53809c.png

631b73a0-90d2-11ef-a79e-92fbcf53809c.png

8.2手动debug

手动debug的方式就是自己一个个添加debug的信号 ,当然这种方式也可以添加 VIO,VIO可以通过JTAG产生一些控制信号。手动添加debug的方式如下。

step1:点击OpenDebugger打开Efinity Debugger页面,在Perpectives下面选择Profile Editor.

6331ae5e-90d2-11ef-a79e-92fbcf53809c.png

Step2:根据需要选择添加VIO或者LA.

6345b354-90d2-11ef-a79e-92fbcf53809c.png

Step3: 以添加LA为例,点击右侧的add_probe来添加需要的信号,然后在Name中修改信号名字,Width中指定信号位宽及Probe Trigger or Data中设置信号的触发属性。如果要删除信号就点击右侧的带“X"的remove Probe.

另外可以指定Data Depth,也就是数据采样深度,Input Pipeline Stage对可以数据打拍,用于优化时序。

635b1302-90d2-11ef-a79e-92fbcf53809c.png

step4 添加VIO。根据需要选择vio界面的add source和add probe 来添加自己需要的信号。如果要删除信号则选择remove source/probe.

6369f2c8-90d2-11ef-a79e-92fbcf53809c.png

step5:点击Generate,会在工程目录下就会生成一个debug_top.v,把该文件添加到工程并例化。效果如下。

637e614a-90d2-11ef-a79e-92fbcf53809c.png

step6.添加JTAG。打开interface Designer,右击选择JTAG User Tap,添加JTAG Block,并指定JTAG resource,如下图中选择JTAG user1.然后生成约束例化信号。

639b12a4-90d2-11ef-a79e-92fbcf53809c.png

63b7115c-90d2-11ef-a79e-92fbcf53809c.png

注意通过向导添加Debugger和通过手动添加debuger这两种方式不能共存。另外要注意在interface Designer中添加了User Tap之后,在添加向导时要选择不同的User Tap号,否则会提示接口有占用。如下图指示“ERROR: jtage resource = JTAG USER1 has been occupied"。

63c40754-90d2-11ef-a79e-92fbcf53809c.png

8.3 在线调试

该步骤需要在配置FPGA之后再能操作。

触发条件的设置

捕获设置:

?触发位置

?分段数量

?窗口尝试

63d0d826-90d2-11ef-a79e-92fbcf53809c.png

8.4 关闭debug如果调试完成,想要关闭debug可以通过Project Editor --> Debugger下面的Debugger Auto Instantiation选项,去掉勾选并点击OK.

63fe8f96-90d2-11ef-a79e-92fbcf53809c.png

如果关闭成功会”Debugger was disabled. Please rerun the flow start from placement"的指示框。如果没有出现则没关关闭成功,需要重启Efinity软件再次关闭一次。

64111a76-90d2-11ef-a79e-92fbcf53809c.png

8.5 Gtkwave界面 有些时间我们会发现Gtkwave界面的信号不全,比如下图,mode信号没有添加到右侧的波形窗口,这时选择SST窗口下的top就会把所有信号列出来,选择相应的信号,点击insert就可以插入。

641a887c-90d2-11ef-a79e-92fbcf53809c.png

另外在2024的版本中,打开一次波界面之后可以不用关闭直接点击Run等按键即可以刷新波形。

642b20c4-90d2-11ef-a79e-92fbcf53809c.png

九 配置FPGA配置方式.易灵思的FPGA支持以下几种配置方式。
主动模式(SPI Active)— AS模式 通过SPI专用插座在线烧写FLASH,FLASH离线烧写好了再焊接,FPGA自己主动通过从非易失性的SPI FLASH读取bit流进行加载,支持X1 X2 X4,x8(不同的FPGA支持的位宽有区别)
被动模式(SPI Passive)— PS模式 上位机或者MCU通过SPI接口向FPGA发送bit流文件,对FPGA进行加载?支持X1 X2 X8 X16 X32
JTAG模式 上位机通过JTAG口将bit流文件发送到FPGA,对FPGA进行加载
SPI Active using JTAG bridge — Bridge模式 通过FPGA的JTAG口烧写和FPGA连接的SPI FLASH
另外需要注意JTAG配置使用bit文件,Flash配置使用hex文件,配置过程中需要注意读取正常的ID,烧写flash可以勾去VerIfy After Programming节省时间64431382-90d2-11ef-a79e-92fbcf53809c.png645aa4a2-90d2-11ef-a79e-92fbcf53809c.png

十 仿真

易灵思为所有IP提供了仿真模型

以FIFO为例,在工具栏中选择IP Catalog

Open IP Callog ->Memory ->FIFO->以默认参数生成IP找到IP生成路径下的Testbench文件夹。把modelsim路径转向该文件夹(注意路径方向“/”)运行do sim.do646f77ec-90d2-11ef-a79e-92fbcf53809c.png

另外 关于interfce Designer接口的仿真模型在路径C:Efinity2023.1ptsim_modelsVerilog下。

64801958-90d2-11ef-a79e-92fbcf53809c.png

十一、查看软件版本

649d5a86-90d2-11ef-a79e-92fbcf53809c.png

在Help ->About。打开软件详细版本,由于软件存在很多补丁,所说说明版本时,要给出完整的版本号。

当软件版本号不对应时可能不打开软件,因为低版本不能兼容高版本。

64aeac3c-90d2-11ef-a79e-92fbcf53809c.png

另外peri.xml里面也是有版本号的,当软件打开不开的时候可以对比安装的软件版本号与工程开发用的版本号是否存在不兼容。

64c5f996-90d2-11ef-a79e-92fbcf53809c.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1646

    文章

    22072

    浏览量

    619819
  • 易灵思
    +关注

    关注

    5

    文章

    57

    浏览量

    5256
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    进迭时空 V8 RISC-V 后端优化

    前言V8是Google开发及开源的JavaScript和WebAssembly语言编译引擎,是Chromium项目的一部分,主要应用于Chrome浏览器和Node.js等项目,在浏览器生态中发
    的头像 发表于 07-31 09:02 ?217次阅读
    进迭时空 <b class='flag-5'>V8</b> RISC-<b class='flag-5'>V</b> 后端优化

    Efinity RISC-V IDE入门使用-5

    一、Efinity工程 io_memoryClk是与存储器接口共用的时钟,需要连接正确。 UART 由于钛金系列是有片上晶振的,所以有些客户可能会选择片上晶振作为SOC的系统时钟或者选择片上晶振作
    的头像 发表于 07-23 12:42 ?2107次阅读
    <b class='flag-5'>Efinity</b> RISC-<b class='flag-5'>V</b> IDE<b class='flag-5'>入门</b>使用-5

    与南京大学集成电路学院暑期课程圆满结课

    近日,由国产FPGA领军企业与南京大学集成电路学院联合举办的“深度学习与硬件加速”暑期课程圆满结课。本次课程为期5天(7月7日至7月11日),面向大三本科生,旨在通过理论与实践结合的方式,帮助学生掌握FPGA硬件加速与Ti
    的头像 发表于 07-17 11:33 ?906次阅读

    Efinity debuger常见问题总结-v4

    ? 把烧写文件和json文件提供给他人进行调试 该方法是在不需要要提供源文件的情况下可以提供给别进行debuger用的。但是也要有以下准备: (1)安装efinity; (2)安装gtkwave
    的头像 发表于 06-10 10:43 ?293次阅读
    <b class='flag-5'>Efinity</b> debuger常见问题总结-<b class='flag-5'>v</b>4

    邀您相约2025上海国际汽车工业展览会

    第二十一届上海国际汽车工业展览会将于2025年4月23日至5月2日在国家会展中心上海举行。作为专注于FPGA芯片领域的创新型企业,将携基于16nm钛金系列FPGA开发的汽车相关解决方案亮相本次车展,展位号为 2BC104
    的头像 发表于 04-16 09:18 ?513次阅读
    <b class='flag-5'>易</b><b class='flag-5'>灵</b><b class='flag-5'>思</b>邀您相约2025上海国际汽车工业展览会

    2025 FPGA技术研讨会北京站圆满结束

    2025FPGA技术研讨会北京站于4月10日在北京丽亭华苑酒店圆满结束!本次研讨会吸引了来自全国各地的行业专家、工程师及企业代表踊跃参与,现场座无虚席,气氛热烈。
    的头像 发表于 04-16 09:14 ?736次阅读

    低温失效的原因,有没有别的方法或者一些见解?

    低温失效的原因,有没有别的方法或者一些见解。就是芯片工作温度在100°--40°区间,然后呢我们到了0°以下就不工作了,然后在低温的情况下监测了电流和电压都正常,频率也都正常,频率不是FPGA的频率是晶振的频率,焊接的话七台都不行都是这个,0°一下就不工作了,是怎么
    发表于 12-30 16:28

    FPGA产品的主要特点

    近年来,全球半导体供应链屡受挑战,芯片短缺问题一度对行业产生深远影响。通过优化供应链管理、强化产能规划,确保客户的FPGA需求得到及时满足。面向工业控制、机器视觉、医疗影像、消费电子、汽车智驾等一众终端领域,
    的头像 发表于 12-04 14:20 ?1612次阅读
    <b class='flag-5'>易</b><b class='flag-5'>灵</b><b class='flag-5'>思</b>FPGA产品的主要特点

    Efinity入门使用-v2

    。 原文标题:Efinity入门使用-v2
    的头像 发表于 11-06 15:56 ?1271次阅读

    Efinity入门使用-v3

    Please rerun the flow start from placement"的指示框。如果没有出现则没关关闭成功,需要重启Efinity软件再次关闭一次。八?配置FPGA配置方式.
    的头像 发表于 11-06 15:56 ?662次阅读

    Efinity入门使用-v4

    Efinity入门使用-v4 文章出处:【微信公众号:
    的头像 发表于 11-06 15:56 ?961次阅读

    Efinity RISC-V IDE入门使用-4

    ,?description?'ELITES-232DL',?serial?'*'?at?bus?location?'*'这个错误其实并不陌生,文档也有一个相关的记录.????目前的下载器主要使用的是FTDI
    的头像 发表于 11-01 11:06 ?1049次阅读

    Efinity软件安装-v5

    感谢朋友提供的视频。1、软件下载管网地址为https://www.elitestek.com最近一段时间官网有些调整,软件的下载在产品中心。那当然软件的下载还是要先注册才能下载的。2.软件安装
    的头像 发表于 11-01 11:06 ?1034次阅读

    Efinity FIFO IP仿真问题 -v1

    Efinity目前不支持联合仿真,只能通过调用源文件仿真。 我们生成一个fifo IP命名为fifo_sim 在Deliverables中保留Testbench的选项。 在IP的生成目录下会有以下
    的头像 发表于 10-21 11:41 ?1603次阅读
    <b class='flag-5'>Efinity</b> FIFO IP仿真问题 -<b class='flag-5'>v</b>1

    史无前例,移植V8虚拟机到纯血鸿蒙系统

    Android系统使用V8,然而,鸿蒙系统却没有可以执行Roma框架的JS引擎,因此需要移植一个JS引擎到鸿蒙平台。 二、
    的头像 发表于 09-18 10:28 ?1787次阅读
    史无前例,移植<b class='flag-5'>V8</b>虚拟机到纯血鸿蒙系统