博客
FPGA 融合了 ASIC 和基于处理器的系统的最大优势,它能够提供硬件定时的速度和稳定性,且无需类似自定制 ASIC 设计的巨额前期费用的大规模投入。但是和所有的数字电路一样,FPGA 电路中也存在毛刺问题。它的出现会影响电路工作的可靠性、稳定性,严重时会导致整个数字系统的误动作和逻辑紊乱。下面就来讨论交流一下FPGA 的竞争冒险与毛刺问题。
这里以Xilinx为例,在Vivado中使用SRIO高速串行协议的IP演示如何使用官方例程和手册进行快速使用,在仔细阅读参考官方例程后进行一些修改就可以应用在实际项目中。
源语(Primitives)-Xilinx库中最简单的设计元素。Primitives 基元是设计元素“原子”。Xilinx原语的示例包括简单缓冲区BUF和带有时钟使能和清除功能的D触发器FDCE。
IBERT(集成误码率测试仪)是xilinx为7系列FPGA GTX收发器设计的,用于评估和监控GTX收发器。IBERT包括在FPGA逻辑中实现的模式生成器和检查器,以及对端口的访问和GTX收发器的动态重新配置端口属性,还包括通信逻辑,以允许设计在运行时通过JTAG进行访问。IBERT工具用于对Xilinx FPGA芯片的高速串行收发器进行板级硬件测试。
在通信中,通用串行总线通信接口是以下三种:
1、UART:rx(数据接收线),tx(数据发送线);
2、SPI:cs_n(片选信号),sck(串行时钟线),sdi(数据输入线),sdo(数据输出线);
3、IIC:sda(数据线),scl(时钟线);
都知道FPGA的启动方式有很多种,比如JTAG、SPI,BPI,SeletMAP,Serial等等吧,又分为主从即Master和Slave(时钟由FPGA的管脚发出,专用的CCLK信号为主,否则为从,有的配置有辅助时钟EMCCLK,它由外部的晶振提供,从FPGA的EMCCLK输入,经过专用的逻辑,再从CCLK管脚输出给想用的器件,),那么问题来了,配置失败怎么办呢??????????????
所谓增量实现,更严格地讲是增量布局和增量布线。它是在设计改动较小的情形下参考原始设计的布局、布线结果,将其中未改动的模块、引脚和网线等直接复用,而对发生改变的部分重新布局、布线。这样做的好处是显而易见的,即节省运行时间,能提高再次布局、布线结果的可预测性,并有助于时序收敛。
Xilinx_A7_K7_V7系列Cadence符号库及PCB库,包含的型号有XC7A100T-1FGG484I;XC7A200T-1FBG676I;XC7K325T-2FFG900I;XC7K410T-2FFG900I;XC7VX690T-2FFG1927I。原理图符号按照BANK建立,很规范。
使用Vivado Runs基础结构时(例如,launch_runs Tcl命令),请将此命令添加到.tcl文件,并将该文件作为执行运行的write_bitstream步骤的预钩添加
Xilinx公司的原语按照功能分为10类,包括:计算组件、I/O端口组件、寄存器和锁存器、时钟组件、处理器组件、移位寄存器、配置和检测组件、RAM/ROM组件、Slice/CLB组件以及G比特收发器组件。下面分别对其进行详细介绍。
在数据的传输过程中,我们经常可以碰见双沿传输数据到FPGA,或者FPGA传输双沿数据给外部芯片,最常见的例子就是DDR芯片。这里说明一下,FPGA内部处理的数据都是单沿数据,那么双沿数据的变换只能发生在FPGA的IOB上面,这里有特定的硬件结构可以实验上面单沿变双沿的方法,也就是使用原语进行一些列的操作。
如果VCCO0连接至2.5V或3.3V,CFGBVS连接至VCCO0。如果VCCO0连接至1.5V或1.8V,CFGBVS连接至GND。建议bank0、bank14、bank15的VCCO电压一致,避免出现I/O Transition at the End of Startup
初学 Zynq 的时候,都是按照惯例打开 Vivado 软件,然后实现 Zynq 可编程逻辑硬件部分PL的设置后,把硬件部署导出,再打开 SDK 进行 ARM 核的软件部分 PS 编程设计,最后再将硬件比特流文件(.bit)和软件的可执行链接文件(.elf)下载到 Zynq 开发板中,这样就可以对自己的软硬件设计进行调试和验证。
在 AMBA 系列之 AXI 总线协议初探 中,了解到 AXI 总线交互分为 Master / Slave 两端,而且标准的 AXI 总线支持不同的位宽,既然是总线,那么必须要支持总线互联,多 Master,多 Slave的场景
集成逻辑分析仪 (Integrated Logic Analyzer :ILA) 功能允许用户在 FPGA 设备上执行系统内调试后实现的设计。当设计中需要监视信号时,应使用此功能。用户还可以使用此功能在硬件事件和以系统速度捕获数据时触发。
XILINX 系列的 FPGA ,如果想要做一个 RAM,有两种方式:
1、使用逻辑资源组成分布式 RAM,即 Distributed RAM
2、使用 XILINX 专用的 Block RAM,即 BRAM