首页 > 其他分享 >【深入浅出玩转FPGA】之FPGA配置模式

【深入浅出玩转FPGA】之FPGA配置模式

时间:2024-10-22 18:49:06浏览次数:3  
标签:深入浅出 FPGA 引脚 配置 模式 玩转 加载 时钟

FPGA配置模式

Xilinx UltraScale FPGA有7种配置模式,由模式输入引脚M[2:0]决定。

  • 主串配置模式
  • 从串配置模式
  • 主并配置模式(8位或16位)
  • 从并配置模式(8位、16位或32位)
  • 主SPI配置模式
  • 主BPI配置模式
  • JTAG/边界扫描配置模式

1、主,即配置时钟CCLK由FPGA提供;从,即配置时钟CCLK由外部控制器提供

2、在主模式下,FPGA自动加载配置文件数据,该配置文件数据存储于板载ROM里;

3、从模式下,通过外部MCU/处理器将配置文件数据加载到FPGA中

4、设计FPGA时,基本上都是采用JTAG配置模式+SPI配置模式 或者 JTAG配置模式+BPI配置模式

5、不同模式只有一些用于传输数据的引脚不同,都会使用一些相同的控制信号,并且在不同模式下这些信号功能基本一致

6、用作配置FPGA的专用管脚在配置完成后不能够被用作普通IO管脚,而非专用管脚在配置完毕后即被释放,可用作普通IO管脚

时钟电路的设计选型需要考虑的因素

系统运行的时钟频率是多少?(可能有多个时钟)

是否有内部的时钟管理单元可用(通常是有)?它的输入频率范围(需要查看器件手册进行确认)?

尽可能选择专用的时钟输入引脚

时钟电路PCB layout设计原则

  • 时钟晶振源应该尽可能放在与其连接的FPGA时钟专用引脚的临近位置
  • 时钟线尽可能走直线。如果无法避免转弯走线,使用45度线,尽量避免T型走线和直角走线
  • 尽量避免同时在多个信号层走时钟线
  • 时钟走线尽量不要使用过孔,因为过孔会导致阻抗变化及反射
  • 靠近外层的地层能够最小化噪声。如果使用内层走时钟线,要有良好的参考平面,且走带状线
  • 时钟信号应该有终端匹配电路,以最小化反射
  • 尽可能使用点到点的时钟走线
  • 对于时钟差分对的走线,必须严格按照D>25规则,以最小化相邻差分对间的串扰
  • 确保差分对在整个走线过程中的线间距恒定

复位电路设计原则

  • 尽可能使用FPGA的专用时钟或复位引脚
  • 上电复位时间的长短需要做好考量
  • 确保系统正常运行过程中复位信号不会误动作
  • 复位信号尽量不要靠近连接器附近,尤其是和面板连接的连接器,避免外部ESD误触发复位信号

(P.S.复位时间通常要长于FPGA的配置时间,才能保证FPGA刚运行起来时处于复位状态,然后进入正常运行状态,否则起不到上电复位的作用了)

配置电路设计原则

  • 配置芯片尽量靠近FPGA
  • 考虑配置信号的完整性问题,必要时增加电阻做阻抗匹配
  • 相关配置引脚正确地添加上拉或下拉电阻
  • 部分配置引脚可以被复用,但是要谨慎使用,以免影响器件的上电配置过程

(在IO引脚资源使用不紧张的情况下,不建议复用FPGA的配置引脚)

FPGA配置比特流的大小

  • 对于特定的FPGA器件,无论它本身功能实现所需的代码量有多少,它最终编译产生的比特流文件的大小都是固定的(最大的)

FPGA配置模式的选择因素

  • 配置加载的时间或速度要求(通常串行加载的时间慢于并行加载)
  • 可用配置引脚数量
  • IO Bank电平标准(通常2.5V /  3.3V)
  • 成本需求(选择较大的memory或专用的memory来做fpga配置 相比于系统中已有的mcu或cpu加载fpga成本更高)

高速FPGA配置考虑

  • 在相同配置速度的情况下,并行配置模式通常要比串行配置模式的加载时间要短
  • 单颗FPGA器件的加载,相比于采取“菊花链”方式进行多颗FPGA器件的加载,速度也要快得多
  • 主动配置模式下,FPGA产生的配置时钟CCLK默认的时钟频率是最保守的“低频”,可以通过工具中的配置选项提高这个CCLK时钟的频率,从而缩短配置时间;也可以通过配置工具中的选项,改用连接到FPGA的EMCCLK引脚上的时钟源
  • 选择的存储器速度越快,则可用的CCLK频率也可以越高,加载配置的时间也可以越短
  • 被动配置模式下,FPGA的CCLK时钟源由外部器件产生,其速度高低则完全取决于外部器件的速度性能

查看VivadoSchematic视图

  • RTL Analysis --> Elaborated Design --> Schematic
  • "RTL分析"将HDL代码转换为逻辑电路

  • Synthesis --> Synthesized Design --> Schematic
  • "综合"这一步将经过“RTL分析”后的门电路映射为FPGA器件的物理结构

  • 代码学习过程中,通过查看比对RTL Analysis 与 Synthesis的Schematic视图,对代码和电路的映射关系有更直观的认识和理解,达到“敲的是代码,想的是电路”的境界

标签:深入浅出,FPGA,引脚,配置,模式,玩转,加载,时钟
From: https://blog.csdn.net/Zoe_whz/article/details/143158747

相关文章

  • 连锁餐饮行业也能玩转 Tita
    “我们以往主要采用口头汇报的形式,还有微信、QQ进行工作交流和沟通。每天在沟通交流的软件上进行工作执行进度和工作问题的汇报等。这种方式虽然沟通上还算比较方便,但是并不利于我们对员工的统一管控,店面的运营状况也不能及时了解到,往往我们还要自己去整合事情进展和员工工作”......
  • 国产安路FPGA SD NAND FLASH 初步描述
        说起SDNANDFLASH常被联想到SD卡,SDNANDFLASH具备当前SD卡的基本功能,并具有更高的存储密度,更小的体积,通过芯片形式焊接在电路中稳定可靠,在电路中高度集成可SMT机贴片等优点。这一节我们主要是介绍一下SDNANDFLASH,该应用实例的SDNANDFLASH采用深圳市雷龙发展有限......
  • 域渗透之 内网穿透 隧道技术聊聊看 环境搭建 regeorg技术 proxifier联合使用 一步步让
    Http通道ReGeorg环境搭建win10安装reGeorgwin2003phpstudywin7安装phpstudy软件下载地址通过网盘分享的文件:隧道工具链接:https://pan.baidu.com/s/1Jmh2QbfmIPRdeTuWN9-Dkg?pwd=k81v提取码:k81v试验步骤在win2003和win10之间建立一个隧道那么就将regeorg......
  • Xilinx 7系列FPGA中IDDR的介绍(一)
    欢迎各位朋友关注“郝旭帅电子设计团队”,本公众号会定时更新相关技术类资料、软件等等,感兴趣的朋友可以浏览一下本公众号的其他“模块”,希望各位朋友都能在本公众号获得一些自己想要的“东西”。 本篇主要讨论Xilinx7系列FPGA中IDDR的介绍(一)。 大多数数字电路内部只能处理S......
  • FPGA图像处理之构建3×3矩阵
    免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。读者在使用本文信息时,应自行验......
  • CSS中深入浅出系列之盒子定位:绝对定位!(脱离文档流)
    #在CSS中当一个元素被设置为绝对定位时,它会脱离正常的文档流,不再占据原本在页面布局中的空间。这意味着其他元素会忽略它的存在,就好像它不存在一样,如设计页面中的覆盖层、弹出框等时非常有用处。#一、 绝对定位的定义1、前言绝对定位可以用于脱离文档流,盒子从标准流中......
  • FPGA时序约束基础
    一、时序约束的目的由于实际信号在FPGA内部期间传输时,由于触发器等逻辑期间并非理想期间,因此不可避免地存在传输延时,这种延迟在高速工作频率、高逻辑级数时会造成后级触发器地建立时间和保持时间不满足,造成时序违例。(这也是为什么需要把FPGA设计不能以高级编程语言思想看的原因,设......
  • 每天5分钟玩转C#/.NET之C#语言详细介绍
    C#语言介绍C#语言是适用于.NET平台(免费的跨平台开源开发环境)的最流行语言。C#程序可以在许多不同的设备上运行,从物联网(IoT)设备到云以及介于两者之间的任何设备。可为手机、台式机、笔记本电脑和服务器编写应用。C#是一种跨平台的通用语言,可以让开发人员在编写高性能代......
  • 【玩转jetson orin nano(二)系统基本设置】
    B站运行YOLOv8n视频demo:https://www.bilibili.com/video/BV1dc411J71N文章目录一、系统基本设置1.软件换源2.安装ssh3.jtop安装4.模式切换(可选)5.cuda+cudnn+TensorRT配置5.1cuda配置5.2cudnn配置5.3TensorRT配置5.4查看环境版本一、系统基本设置1.软件......
  • 深入浅出之cuda编程概念
    CUDA(ComputeUnifiedDeviceArchitecture)是NVIDIA推出的一种用于通用并行计算的编程模型和编程接口。它允许开发者利用NVIDIAGPU的强大计算能力来加速应用程序。CUDA编程涉及使用CUDAC/C++或CUDAFortran等语言编写代码,这些代码可以在GPU上并行执行,从而显著提高计算性能。......