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

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

3天内不再提示

Efinity入门使用-v2

XL FPGA技术交流 2024-11-06 15:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群



1、 软件预设置
2、新建工程
3、添加源文件
4、添加管脚约束
5、添加GPIO
6、PLL设置
7、添加debug
8、下载
9、仿真


软件预设置。

选项
说明
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





新建工程

Step1:点击设置

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

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

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

Stp1:File -->Create Project
Stp2:在Project Editor中选择路径并输入工程名
Stp3:选择器件(家族)及速率等级

输入top module/Entity
注意:如果没有输入top module名,软件会自己选择top module,编辑结果不正确。

把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等和外设相关的接口电气属性的。Interface designer操作界面的打开通过下面的Open Interface Desinger来实现。


Core 与interface的关系

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

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

interface与core的关系

interface界面

Bank电压的设置

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


添加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






右键添加GPIO

针对上面的工程我们的参数设置如下:
(1)Mode 设置为input
(2) I/O Standard根据所在的Bank来选择电压
Instacne Name: clk
Connection Type : pll_clkin
以arst_n为例 :
Mode : input
I/O standard :根据所在bank及bank电压设置
Connection Type: normal
Register Option: none

以4位输出的led为例:
(1)Name :o_led
(3)位宽从3到0
Mode: output

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


打开时钟计算和设置窗口

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


IO分配
点击Show/Hide GPIO Resource Assigner,在Package Pin或者Resoure位置输入管脚。


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


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

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


添加约束

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

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


编译

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



添加debug

点击Open Debugger Wizard

(1)设置Buffer Depth

(2)Input Pipeline Stage

(3)Capture control

(4)JTAG USER TAP

(5)修改时钟域

(6)Probe Type


触发条件的设置

捕获设置:

触发位置

分段数量

窗口尝试


关闭debug
如果调试完成,想要关闭debug可以通过Project Editor --> Debugger下面的Debugger Auto Instantiation选项,去掉勾选即可。



下载程序
配置方式.易灵思的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节省时间

仿真


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

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

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

另外 关于interfce Designer接口的仿真模型在路径C:\Efinity\2023.1\pt\sim_models\Verilog下。




原文标题:Efinity入门使用-v2

文章出处:【微信公众号:易灵思FPGA技术交流】欢迎添加关注!文章转载请注明出处。

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

    关注

    1664

    文章

    22504

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    uM-FPU V2 浮点协处理器:功能特性与应用指南

    uM-FPU V2 浮点协处理器:功能特性与应用指南 引言 在电子设计领域,浮点运算能力对于许多应用至关重要。Micromega Corporation 的 uM-FPU V2 浮点协处理器为
    的头像 发表于 04-11 15:15 479次阅读

    AA Boost Module V2:便捷的电源解决方案

    AA Boost Module V2:便捷的电源解决方案 在电子设计中,电源供应是一个关键问题。今天要给大家介绍的是DFRobot的独家产品——AA Boost Module V2(SKU
    的头像 发表于 03-27 12:50 201次阅读

    如何在 VisionFive v2 上使用外部 GPU?

    如果旧的 amd gpu 在 VisionFive V2 上运行,我想使用带有开源 amd 驱动程序的 amd gpu。我需要什么以及如何将 GPU 连接到 VisionFive v2
    发表于 03-13 06:38

    RDMA设计44:RoCE v2原语功能验证与分析

    它是RoCE v2协议进行信息及数据交换的核心机制,也是DUT需要实现的核心机制之一,对该功能的仿真验证需要考虑指令的提交数据包的组装及发送、数据的DMA处理等。
    的头像 发表于 02-25 09:26 316次阅读
    RDMA设计44:RoCE <b class='flag-5'>v2</b>原语功能验证与分析

    RDMA设计37:RoCE v2 子系统模型设计

    本博文主要交流设计思路,在本博客已给出相关博文160多篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 RoCE v2 子系统模型是用来模拟 RoCE v2 功能
    发表于 02-06 16:19

    RDMA设计30:RoCE v2 发送模块2

    当 RoCE v2 发送模块检测到发送队列非空时,则从发送队列中读取一个发送队列条目,并判断请求类型。根据不同的请求类型和请求长度进入不同的包生成流程,这一过程由请求状态机实现。
    的头像 发表于 01-27 11:56 819次阅读
    RDMA设计30:RoCE <b class='flag-5'>v2</b> 发送模块<b class='flag-5'>2</b>

    RDMA设计29:RoCE v2 发送及接收模块设计2

    本博文主要交流设计思路,在本博客已给出相关博文约100篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 (1)RoCE v2 发送模块 RoCE v2 发送模块
    发表于 01-26 16:47

    RDMA设计28:RoCE v2 发送及接收模块设计

    本博文主要交流设计思路,在本博客已给出相关博文约100篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 RoCE v2 发送及接收模块负责将用户指令组装为 RoCE
    发表于 01-25 10:45

    RDMA设计19:RoCE v2 发送及接收模块设计

    本博文主要交流设计思路,在本博客已给出相关博文约100篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 RoCE v2 发送及接收模块负责将用户指令组装
    发表于 01-06 08:08

    AURIX™ Audio Application Kit for AURIX™ lite Kit V2 深度解析

    AURIX™ Audio Application Kit for AURIX™ lite Kit V2 深度解析 在音频技术不断发展的今天,一款功能强大且灵活的音频应用套件对于电子工程师来说至关重要
    的头像 发表于 12-20 20:35 1459次阅读

    uIO-Stick v2 用户指南:设计、应用与安全要点

    uIO-Stick v2 用户指南:设计、应用与安全要点 在电子工程领域,接口设备对于连接不同系统和实现功能交互起着至关重要的作用。uIO-Stick v2 作为一款用于 MOTIX™ MCU 设备
    的头像 发表于 12-20 11:10 865次阅读

    RDMA设计5:RoCE V2 IP架构

    上面分析,基于RoCE v2 高速数据传输IP 的高速传输应用整体架构如图 1 所示。 图1 基于RoCE V2 IP应用的系统整体架构图 它通过 QSFP28 接口连接上位机进行
    发表于 11-25 10:34

    Efinity RISC-V IDE入门使用-5

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

    RDMA over RoCE V2设计1:为什么要设计它?

    基于PC-PC或GPU-GPU之间RDMA设计已有较多厂商投入,虽然有的大厂投入几年后折羽而归,但不影响PC领域成熟应用产品的推广。这里主要讨论在FPGA上设计RDMA over RoCE V2,虽然已有xilinx的ernic应用,但是性价比以及国产化需求还是有其发展空间。
    的头像 发表于 07-15 10:58 822次阅读
    RDMA over RoCE <b class='flag-5'>V2</b>设计1:为什么要设计它?

    Efinity debuger常见问题总结-v4

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