这篇文章我们讲一下Virtex7上DDR3的测试例程,Vivado也提供了一个DDR的example,但却是纯Verilog代码,比较复杂,这里我们把DDR3的MIG的IP Core挂在Microblaze
一、板卡概述 板卡由北京太速科技自主研发,基于VPX架构,主体芯片为两片 TI DSP TMS320C6678,两片Virtex-6 XC6VSX315T-ff1156 FPGA,1个RapidIO 提供2个FMC子卡接口,每个FMC子卡接口与一片Virtex-6 XC6VSX315T FPGA连接;支持热插拔,工业级设计。 FPGA芯片具备2片FPGA Virtex-6 XC6VSX315T;两片Virtex-6 FPGA直接通过40bit LVDS以及8X GTX互联每片Virtex-6 FPGA与一片DSP连接EMIF 总线与中断资源每片Virtex-6 FPGA对VPX连接28bit LVDS每片Virtex-6 FPGA对VPX连接12bit LVCMOS-18每片Virtex-6 FPGA对VPX连接8X GTX 每片Virtex-6 FPGA通过60bit LVDS连接一个FMC-HPC子卡接口每片Virtex-6 FPGA外挂两簇32bit高1GB DDRIII SDRAM每片Virtex-6 FPGA外挂一片
支持的SPI Flash芯片型号 这里指的SPI Flash一般是1位和4位数据总线的SPI Flash, 7 系列的FPGA支持的SPI Flash芯片型号 包括Kintex-7、Artix-7、Virtex 7系列支持的SPI芯片型号 注意: 支持S25FL129P、S25FL256S,不支持S25FL128P 只支持64KB扇区大小的Flash芯片 Virtex和Spartan系列支持的SPI芯片型号 主要包括 Spartan-3、Spartan-6、Virtex-5、Virtex-6。 7系列支持的BPI Flash芯片型号 包括Kintex-7、Artix-7、Virtex-7系列。 ? 7系列支持的BPI芯片型号 Virtex和Spartan系列支持的BPI芯片型号 主要包括Spartan-3、Spartan-6、Virtex-5、Virtex-6。 ?
中支持到58Gb的GTM,大多数Virtex Ultrascale+仅仅支持32.75Gb的GTY。 Speedster7t更是支持400G的网卡,而Virtex Ultrascale+系列最高也只到100G。 对于DDR Controller,更是支持DDR4/5和GDDR6,在目前的Virtex Ultrascale+的FPGA中,都没有的。 价格 这也是非常关键的因素,集成了我们上面所列举的目前最先进的硬核,但价格却比Virtex Ultrascale+便宜很多。 当然,目前Achronix的FPGA中的逻辑资源数量相对Virtex Ultrascale+要少一些,I/O数量也自然少一些。
DSP48最早出现在XilinxVirtex-4 FPGA中,但就乘法器而言,Virtex-II和Virtex-II Pro中就已经有了专用的18x18的乘法器,不过DSP48可不只是乘法器,其功能更加多样化 同时,与Virtex-II不同,Virtex-II中,相邻的DSP48和Block RAM共享互连资源,而在Virtex-4中,DSP48和Block RAM有独立的布线资源。 ? 此外,从资源角度看,Virtex-4SX55包含的DSP48最多,一共8列512个DSP48,在全流水模式下,可运行到的最高频率为500MHz。 在Virtex-5中,引入了增强型DSP48,称之为DSP48E,其基本结构如下图所示(图片来源ug193, Figure 1-1)。 从资源角度看,Virtex-5 SX240T包含的DSP48E最多,共1056个,在全流水模式下,可运行到的最高频率为550MHz。 ?
Spantan-7 FPGA系列 2015年推出 在此之前2012年推出Aritix-7、Kintex-7和Virtex-7FPGA系列 赛灵思FPGA 7系列芯片:Spantan-7 FPGA、Aritix -7、Kintex-7和Virtex-7FPGA、其性能/密度/价格也随着系列的不同而提升。 Virtex7系列则是7系列中的大佬,只在高端应用中使用,在中低端应用就如同高射炮打蚊子,大材小用! 其四种分别代表四种工艺,Xilinx的产品每个工艺都会有Spartan、Artix、Kintex和Virtex四个族。 图片 应用领域: Virtex:高速联网(10G~100G)、便携雷达和ASIC原型验证等领域,这些领域的特点是对资源数量和性能要求高,但是对功耗和成本不怎么敏感。整个FPGA业界最好的器件。
面向高性能逻辑应用市场的三款Virtex-5 LX系列平台FPGA,即Virtex-5 LX50、LX85和LX110器件。 1.1.3.11Virtex-5 LX:针对高性能逻辑进行优化 1.1.3.12Virtex-5 LXT:针对具有低功耗串行I/O的高性能逻辑进行优化 1.1.3.13Virtex-5 SXT:针对具有低功耗串行 Virtex-4 器件上 ? Virtex-4FX器件上 ? 简评:低成本FPGA,使用仍然很广泛 Virtex/Virtex-E: 大规模SRAM工艺FPGA,逐渐被VirtexII,VirtexII-Pro,Virtex4取代 简评
与Virtex-6 FPGA相比,Virtex-7系列的系统性能翻了一番、功耗降低一半、速度提升30%、其重点在于容量扩大2.5倍、多达200万个逻辑单元、串行宽带达1.9Tbps、线速高达28Gbps 与Virtex-6相比,Virtex-7的系统性能番了一倍,功耗降低一半,速度提升了30%,是7系列中最高端的子系列; c. 因此,在有线通信架构的构建中,Virtex-7系列芯片应用的也越来越多了。采用Virtex-7系列方案的NPU或交换结构图如右上图所示。下表是两种方案的对比。 从表中就可明显看出Virtex-7系列芯片的优势。 ? 注意看Virtex7那张图下面第1条和第6条Notes,Virtex7还细分了Virtex7T、Virtex7XT和Virtex7HT。
DCM是比较早的FPGA中使用的,比如Sparten-3和Virtex-4,后面的器件不再使用了。在Virtex-4中,CMT包括一个PLL和两个DCM。 MMCM是在Virtex-6中被引入的,而且Virtex-6中也只有MMCM。 到了7系列和Ultrascale中,MMCM和PLL同时存在。
本节以Virtex平台介绍各类原语,因为该系列的原语类型是最全面的。其它系列芯片原语的使用方法是类似的。 .SIM_DEVICE("VIRTEX4") // 指定目标芯片, "VIRTEX4" 或者 "VIRTEX5" ) BUFR_inst ( .O(O), //时钟缓存输出信号 .CE(CE), 下面对BSCAN_VIRTEX4组件进行简单介绍,其余组件的使用方法是类似的。 1.BSCAN_VIRTEX4 当JTAG USER1/2/3/4指令被加载后,BSCAN_VIRTEX4允许设计人员来检测TCK、TMS以及TDI等专用JTAG管脚的数据,并且可以将用户数据写入到 在Virtex-4芯片中,有4个BSCAN_VIRTEX4硬件原语可用。因此,其属性JTAG_CHAIN的有效值为1~4,默认值为1。
定义 把物体的数学描述以及与物体相关的信息转换为屏幕上用于对应位置的像素及用于填充像素的颜色这个过程成为光栅化 主要工作: 将得到的新图元(添加额外的Virtex和计算图元的信息)转换成像素,超过像素中心店即为有效 当放大位图时就可以看到无数个单个方块 这些方块的来历:CPU计算出图元,之后GPU拿到图元进行坐标转换,计算纹理光照,对图元添加额外的Virtex以便生成更复杂的几何图形和;连接这些Virtex图元就是由这些 Virtex构成的; 将图元转换成像素【覆盖过中心点的像素才是有用的需要进行渲染的】,对这些像素进行上色和采用画家算法进行合成图层缓存到back buffer中,等待Display取进行渲染) 如果想要更真实
那么输出的信号实际上就是输入的时钟信号 ODDR Primitive: A dedicated output register to transmit dual data rate (DDR) signals from Virtex The ODDR primitive is a dedicated output registers to transmit dual data rate (DDR) signals from Virtex In addition, IDDR will work in conjunction with Select I/O features of Xilinx Virtex-4 architecture. Virtex-4 -- Xilinx HDL Libraries Guide version 6.3i ODDR_inst : ODDR generic map ( DDR_CLK_EDGE Virtex-4 // Xilinx HDL Libraries Guide version 6.3i ODDR ODDR_inst ( .Q(Q), // 1-bit DDR
它在Virtex-5和Kintex7 FPGA中实现。 但是一般的想法也适用于较新的设备,特别是在考虑LUT时,因为它们保持不变;它是6输入LUT,适用于Virtex-5,Virtex-6和7系列FPGA。 为了使针对Virtex-5设计的AC ICAP适应7系列器件,需要进行某些更改。主要差异总结如下: (1)7系列系列中每帧的字数为101而不是41(Virtex-5)。 对于7系列,该寄存器使用32位中的26位,而在Virtex5 FAR中,它使用24位。这是由于FPGA的大小增加。 (3)与Virtex-5相反,对于7系列,在读取帧任务开始时不需要额外的字。 对于Virtex-5,它在0到40之间变化。
一、板卡概述 该板卡为了考虑兼容1.8V电平IO,适配Virtex7,Kintex Ultrascale,Virtex ultrasacle + FPGA而特制,如果要兼容原来的3.3V 也可以修改硬件参数
三、软件支持 基于spartan6、Virtex5、Virtex6系列的FPGA测试例子程序。
DCM DCM 是比较早的 FPGA 中使用的,某些 Sparten-3 和 Virtex-4 ,后面的器件不再使用了。在 Virtex-4 中,CMT 包括一个P LL 和两个 DCM 。 Virtex-6 中也只有 MMCM 。 7系列 FPGA 中,每个 CMT 包含一个 MMCM 和一个 PLL 。
HD Bank应用于低速I/O的场景,最高速率限制在250M以内,最高电压也是支持到3.3V Kintex UltraScale 和Virtex UltraScale中有HP Bank和HR Bank ,Virtex UltraScale+系列中只有HP Bank,Zynq UltraScale+ MPSoC 和Kintex UltraScale+ 系列包含HP和HR Bank。
三、软件支持 基于spartan6、Virtex5、Virtex6系列的FPGA测试例子程序。
该结构类似于Virtex-6 FPGA实现。 图1 显示了使用OPPOSITE_EDGE模式的输入DDR的时序图。 该结构类似于Virtex-6 FPGA实现。 图2显示了使用SAME_EDGE模式的输入DDR的时序图。 在时序图中,输出对Q1和Q2不再是(0)和(1)。 SAME_EDGE模式与Virtex-6架构相同,这个模式允许设计者在ODDR时钟的上升沿向ODDR原语提供数据输入,从而节省CLB和时钟资源,并提高性能。此模式使用DDR_CLK_EDGE属性实现。 这种结构与virtex-6的实现比较相似。两个输出都提供给IOB的数据输入或者三态控制输入。 SAME_EDGE模式: 在此模式下,数据可以在相同的时钟边沿从给IOB。
Virtex-5系列FPGA和Artix-7系列FPGA都是基于ASMBL(AdvancedSilicon Modular Block)架构的(但是Virtex-5基于二代ASMBL技术,Artix-7 图1.7 XC5VLX110T所示 再来看一下Virtex-5FPGA的内部结构,如图1.7所示,可以看到,Virtex-5FPGA的结构与7系列FPGA很相似,都是模块化的、按列排布的;我们重点关注一下 二、FPGA配置帧格式与寻址格式 FPGA配置数据的最小单位是帧,下面先以Virtex-5为例,介绍配置帧的格式与寻址方式;然后介绍7系列FPGA与Virtex-5在配置帧格式与寻址方式方面的区别。 1.Virtex-5 FPGA配置帧格式与寻址格式 Virtex-5配置帧格式如图1.8所示,图中共有36个帧,每个帧包含41个word,每个word由32bit组成,图中“X odd”部分代表一个CLB 图1.10 Virtex-5 FPGA配置帧寻址格式 Virtex-5 FPGA配置帧的寻址格式如图1.10所示,Virtex-5系列FPGA配置帧的地址由24bit组成,其中,bit23-bit21作用是指示配置对象的类型