作为一个有一定工作经验(划水好多年)的FPGA工程师,很多模块都已经学习过或者使用过,但是如果让我重新实现,感觉又是一脸懵。因此,这是我发文档的原因。对于自己来说,这是一个总结归纳的过程,对读者,可能是一次解惑。后期,将会逐渐分享DDR/ETH/SERDES/PCIe/SPI/FFT/FIR等等应用、调试经历。2022.8.4@gz如果有疑惑的地方,可以站内信->共同探讨!概述在FPGA的开发过程中,FIFO几乎是所有工程中都会使用的一个存储器IP。在很多场合,例如数据的跨时域处理,流水线命令等,可以说是最佳选择。普通的FIFO(native),不管是在altera/xilinx/lattic
引言:本文我们介绍下XilinxDDR3IP核的重要架构、IP核信号管脚定义、读写操作时序、IP核详细配置以及简单的读写测试。01.DDR3IP核概述7系列FPGADDR接口解决方案如图1所示。图1、7系列FPGADDR3解决方案1.1用户FPGA逻辑(UserFPGALogic)如图1中①所示,用户FPGA逻辑块是任何需要连接到外部DDR2或DDR3SDRAM的FPGA设计。用户FPGA逻辑通过用户接口连接到内存控制器。1.2用户接口(UserInterface,UI)如图1中②和③所示,用于连接用户FPGA逻辑资源和用户接口块,它提供了一个简单的本地接口,用于实现缓冲读写数据,这也是DDR
Xilinx-7系列FPGA按照性能和价格由高到低分为Spartan®-7、Artix®-7、Kintex®-7、Virtex®-7。和前几代FPGA产品不同的是,7系列FPGA采用的是统一的28nm设计架构,客户在不同子系列的使用方式上是统一的,消除了不同子系列切换使用带来的不便。Xilinx的四个工艺级别Xilinx目前主要产品有四个工艺等级,通常情况下,Xilinx的产品每个工艺都会有Spartan、Artix、Kintex和Virtex四个族,如下图所示Virtex-7FPGAVirtex®-7FPGA针对28nm系统性能与集成进行了优化,可为您的设计带来业界最佳的功耗性能比架构、DS
GTX简易使用教程,先“知其然”,慢慢再研究“所以然”。目录一、GTX必备基础知识二、时钟篇三、复位与初始化四、GTX IP核配置介绍五、GTX收发测试六、后记一、GTX必备基础知识虽说搬砖只需要会用IP就行,但是为了把砖搬好,还是需要了解一些必备姿势的:XilinxFPGA平台GTX简易使用教程(一)GTX基础知识什么是GTX?(GTP/GTX/GTH/GTZ)PMA与PCSQuad(QPLL/CPLL)8b/10b(K28.5)GTX收发流程(TX/RX)ibert IP(眼图)二、时钟篇XilinxFPGA平台GTX简易使用教程(二)GTX时钟篇照例,时钟单独讲,时钟理清了,它才能正确
GTX简易使用教程,先“知其然”,慢慢再研究“所以然”。目录一、GTX必备基础知识二、时钟篇三、复位与初始化四、GTX IP核配置介绍五、GTX收发测试六、后记一、GTX必备基础知识虽说搬砖只需要会用IP就行,但是为了把砖搬好,还是需要了解一些必备姿势的:XilinxFPGA平台GTX简易使用教程(一)GTX基础知识什么是GTX?(GTP/GTX/GTH/GTZ)PMA与PCSQuad(QPLL/CPLL)8b/10b(K28.5)GTX收发流程(TX/RX)ibert IP(眼图)二、时钟篇XilinxFPGA平台GTX简易使用教程(二)GTX时钟篇照例,时钟单独讲,时钟理清了,它才能正确
目录一、Xilinx-7系列时钟构架二、时钟布线资源三、全局时钟资源:1.BUFGCTRL(GlobalClockControlBuffer)2.BUFG(GlobalClockSimpleBuffer)3.BUFGCE(GlobalClockBufferwithClockEnable)4.BUFGMUX(GlobalClockMuxBuffer)5.BUFGMUX_CTRL(2-to-1GlobalClockMUXBuffer)6.其它应用(1)异步时钟快速切换(2)带时钟使能控制的BUFGMUX_CTRL四、区域时钟资源1.BUFIO(I/OClockBuffer)2.BUFR(Regio
1.概述Aurora协议是一个用于在点对点串行链路间移动数据的可扩展轻量级链路层协议,并为物理层提供透明接口,让专有协议或业界标准协议上层能方便地使用高速收发器Aurora协议在Xilinx的FPGA上有两种实现方式:8B/10B与64B/10B。两个协议大部分相同,主要区别在编码方式上:Aurora-8B/10B:将8bit数据编码成10bit数码进行传输,尽量平衡数据中“0”和“1”的个数以实现DC平衡,显然这个编码方式的开销是20%,也就是效率为80%Aurora-64B/10B:将64bit数据编码成66bit块传输,66bit块的前两位表示同步头,主要由于接收端的数据对齐和接收数据位
目录1.新建工程之后 建一个ip核文件:2.编写顶层文件或者激励文件:(一定一定点击下面这个例化模板 去对ip核进行例化)3.查看rtl图: 4编写测试文件:5.仿真图:工程下载链接:https://download.csdn.net/download/qq_43811597/864887751.新建工程之后 建一个ip核文件: 根据所存数据的最大值来设置数据位宽(但位宽不知道需不需要换算,还是说将最大的那个数设为位宽)根据所存数据个数来设置数据深度(他这里的深度好像不用根据个数去换算,直接就是深度=数据个数)我本来以为我存700个数据那么深度就是10,结果一直报错不能生成ip核就是这个加
文章目录背景IP核的使用初始化仿真背景如果想在Xilinx的FPGA上构建一个RAM,通常有两种方式:使用逻辑资源LUT组成DRAM,一般来说是用verilog声明一个多维数组即可使用开发板上内嵌专用的BRAM,一般来说需要使用Xilinx提供的IP核BlockMemoryGenerator就是使用了开发板上的BRAM。我在一个项目中需要对该IP核进行初始化,主要是使用coe文件初始化存储,因此本文主要介绍如何使用并初始化Xilinx提供的IP核BlockMemoryGeneratorv8.4,为了确保成功初始化,还对其进行了一个简单的仿真,更多细节请参考官方手册。IP核的使用创建工程后,点击
Xilinx的高质量时钟输出ODDR原语【随路时钟】【全局时钟网络】【ZC706输出时钟】【ZYNQ】按照Xilinx的推荐,在输出时钟时最好还是把ODDR加上。这个测试用例没有体现出ODDR的优势,也许在资源使用较多、时钟频率更高时才能体现。另外,这里只是输出了时钟,没有输出使用该时钟的数据。很多人说时钟直接从BUFG输出到管脚会报错,必须加约束或者ODDR,目前我在ZYNQ7045上没有发现此问题。ODDR的使用场景还在于OSERDES、FPGA的源同步的系统设计,用ODDR使得随路时钟和数据在输出时是严格同步的,保证严格的相位对齐关系。本文探讨一下ODDR用于时钟输出时的作用。参考:ht