基于Xilinx的DDR2 SDRAM存储控制器的用户接口设计与仿真
基于DDR2 SDRAM乒乓双缓冲的高速数据收发系统设计
基于DDR2 SDRAM乒乓双缓冲的高速数据收发系统设计刘杰;赛景波【摘要】在高速数据收发系统设计中,首先需要解决的问题是实时数据的高速缓存,然而FPGA内部有限的存储资源无法满足海量数据缓存的要求。
为了解决系统中海量数据的缓存问题,系统创新提出了一种基于DDR2 SDRAM的乒乓双缓冲设计方案。
方案设计了两路基于DDR2 SDRAM的大容量异步FIFO,通过FPGA内部选择逻辑实现两条通路间的乒乓操作,从而实现数据的高速缓存。
实验结果表明,基于DDR2 SDRAM的数据收发系统实现了每路512 Mbit的缓存空间和200 MHz的总线速率,解决了海量数据的高速缓存问题。
%In the high-speed data transceiver system design, the first problem to be solved is the real-time data cache,However,the limited memory resources of FPGA can not meet the requirements of massive data cache,To solve the problem of system cache huge amounts of data,the system proposed ping-pong double buffering innovative design based on the DDR2 SDRAM. Design of two-way high-capacity asynchronous FIFO based on DDR2 SDRAM, selection logic operations to achieve a ping-pong between the two paths through the FPGA to achieve the cached da-ta . Experimental results show that the Data transceiver system based on DDR2 SDRAM realized every road 512 Mbit cache space and 200 MHz of the bus rate and solved the problem of the huge amounts of data cache.【期刊名称】《电子器件》【年(卷),期】2015(000)003【总页数】5页(P650-654)【关键词】高速数据收发;乒乓双缓冲;DDR2 SDRAM技术;异步FIFO【作者】刘杰;赛景波【作者单位】北京工业大学电控学院,北京100022;北京工业大学电控学院,北京100022【正文语种】中文【中图分类】TN919.6高速数据传输是现代信号处理的基础,在雷达、通信、遥测遥感等技术应用领域得到了广泛的应用。
网络处理器中的DDRSDRAM控制器的设计与实现的开题报告
网络处理器中的DDRSDRAM控制器的设计与实现的开题报告1.课题背景随着网络技术的不断发展,网络设备的处理能力和稳定性要求越来越高。
网络处理器是一类专用于网络应用的高性能处理器。
网络处理器的核心是其内置的DDR SDRAM控制器。
DDR SDRAM控制器是网络处理器内部的一个重要模块,它完成了在处理器与外部存储器之间的数据传输、存储和读取等功能。
2.研究内容和目标本项目旨在探究基于FPGA的网络处理器中DDR SDRAM控制器的设计与实现方法。
主要研究内容包括:(1)DDR SDRAM控制器的架构和原理(2)DDR SDRAM控制器的时序控制和数据传输(3)FPGA中DDR SDRAM控制器的实现方法(4)性能测试和验证研究目标是实现一个高效的DDR SDRAM控制器,能够满足网络处理器的数据传输要求,并具有较高的性能。
3.研究方法和步骤本项目将采用以下研究方法和步骤:(1)阅读相关文献,了解DDR SDRAM控制器的基本原理和FPGA 中DDR SDRAM控制器的实现方法。
(2)根据DDR SDRAM的时序和数据传输要求,设计DDR SDRAM 控制器的架构和接口。
(3)使用Verilog语言实现DDR SDRAM控制器的模块。
(4)在FPGA上进行验证和性能测试。
(5)对实现的DDR SDRAM控制器进行性能测试和优化,以达到更高的性能。
4.研究意义和预期成果本项目的意义在于探究网络处理器中DDR SDRAM控制器的设计和实现方法,并且实现一个高效的DDR SDRAM控制器。
该控制器可用于各种网络设备中,提高网络设备的运行效率和稳定性。
预期成果包括:(1)DDR SDRAM控制器的设计与实现文档(2)基于 FPGA 的网络处理器中 DDR SDRAM 控制器模块的Verilog 代码(3)DDR SDRAM 控制器在 FPGA 上的验证和性能测试报告(4)论文发表和技术报告5.存在的问题和风险存在的问题:(1)DDR SDRAM控制器的设计和实现需要充分考虑时序和数据传输的要求,因此需要仔细分析和设计。
基于FPGA的DDR2 SDRAM存储器用户接口设计
基于FPGA 的DDR2SDRAM 存储器用户接口设计杨斌,段哲民,高峰(西北工业大学电子信息学院,陕西西安710129)摘要:使用功能强大的FPGA 来实现一种DDR2SDRAM 存储器的用户接口。
该用户接口是基于XILINX 公司出产的DDR2SDRAM 的存储控制器,由于该公司出产的这种存储控制器具有很高的效率,使用也很广泛,可知本设计具有很大的使用前景。
本设计通过采用多路高速率数据读写操作仿真验证,可知其完全可以满足时序要求,由综合结果可知其使用逻辑资源很少,运行速率很高,基本可以满足所有设计需要。
关键词:DDR2SDRAM ;FPGA ;用户接口;DDR2SDRAM 存储控制器中图分类号:TN919.8文献标识码:A文章编号:1674-6236(2012)23-0147-03Design of DDR2SDRAM memory user interface based on FPGAYANG Bin ,DUAN Zhe -min ,GAO Feng(School of Electronic Information ,Northwestern Polytechnical University ,Xi ’an 710129,China )Abstract:The user interface of a DDR2SDRAM memory is implemented by using the powerful FPGA .The user interface is based on DDR2SDRAM memory controller produced by the XILINX company .The company produced such memory controllers with high efficiency and used widely .So that this design has great prospects .Through the simulation of multi -channel high -speed data read and write operations we can know that it can fully meet the timing requirements .Through the synthesis results we can know that the use of logic resources is very little ,run rate is high .It can basically meet all design needs.Key words:DDR2SDRAM ;FPGA ;user interface ;DDR2SDRAM memory controller收稿日期:2012-08-06稿件编号:201208014作者简介:杨斌(1981—),男,陕西佳县人,硕士研究生。
DDR存储控制器的设计与应用
DDR存储控制器的设计与应用随着科技的不断进步,数字电子设备在日常生活和工作中的应用越来越广泛。
其中,DDR存储控制器作为计算机存储系统的重要组成部分,对于整个系统的性能和稳定性具有举足轻重的作用。
本文将详细阐述DDR存储控制器的概念、设计步骤、技术方案以及实验结果,并探讨其未来的发展趋势。
DDR存储控制器,全称Double Data Rate SDRAM控制器,是一种用于管理计算机存储系统的芯片或模块。
其主要作用是控制数据的传输速率和带宽,协调内存与处理器之间的数据交换,从而确保数据的高速、稳定传输。
DDR存储控制器适用于各种计算机存储设备,如DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM等。
DDR存储控制器的硬件设计主要包括以下步骤:(1)确定控制器的架构和组成元件,包括数据路径、控制逻辑、时钟发生器等。
(2)设计电路板,包括布局布线和元件放置等。
(3)编写硬件描述语言(HDL),如Verilog或VHDL,用于实现控制器的逻辑功能。
(4)仿真和验证硬件设计,确保其符合预期的功能和性能要求。
DDR存储控制器的软件设计主要包括以下步骤:(1)编写存储控制器的驱动程序,包括初始化和配置控制器、读写数据等操作。
(2)优化数据传输速率和带宽,以实现更高效的数据传输和控制。
(3)配合硬件设计,实现软硬件联合调试和测试。
在DDR存储控制器的设计中,我们采用了以下技术方案:采用同步动态随机存取存储器(SDRAM)作为主要的存储介质,其具有较高的存储密度和较低的功耗。
使用双倍数据速率(DDR)技术,使得SDRAM在每个时钟周期内可以进行两次数据传输,从而大幅提高了数据传输速率和带宽。
引入高速缓存接口(Cache Interface),以提高数据访问速度和降低CPU的负载。
使用可编程逻辑门阵列(FPGA)作为控制器的主要芯片,其具有灵活性和可定制性,能够满足各种不同的存储需求。
我们设计并实现了一款DDR存储控制器,并对其进行了严格的测试。
基于FPGA的Verilog语言描述的SDRAM接口电路设计
基于FPGA的SDRAM存储器接口实现摘要随着信息科学的飞速发展,人们面临的信号处理任务越来越繁重,对数据采集处理系统的要求也越来越高。
单片机、DSP等微处理器内部RAM 有限,这就需要在微处理器的外部扩展存储器。
同步动态随机访问存储器具有价格低廉、密度高、数据读写速度快的优点,从而成为数据缓存的首选存储介质,在数据采集系统和图像处理系统等方面中有着重要和广泛的应用。
SDRAM 的读写逻辑复杂,最高时钟频率达100MHz 以上,普通单片机无法实现复杂的SDRAM 控制操作。
复杂可编程逻辑器件CPLD具有编程方便,集成度高,速度快,价格低等优点。
因此选用CPLD 设计SDRAM 接口控制模块, 简化主机对SDRAM 的读写控制。
通过设计基于CPLD 的SDRAM 控制器接口,可以在STM系列、ARM系列、STC系列等单片机和DSP等微处理器的外部连接SDRAM,增加系统的存储空间。
论文开始介绍了SDRAM接口设计研究的背景和研究的目的及意义,引出对SDRAM的研究,详细介绍了SDRAM的基本原理、内部结构、基本操作和工作时序,以及设计的重点及难点。
在这些理论基础上对SDRAM 接口进行模块化设计,了解设计中所使用的硬件和软件。
最后用Verilog语言在软件QuartusⅡ设计CPLD芯片,通过在硬件和软件上的调试基本实现了SDRAM接口的设计。
关键词SDRAM;接口;Verilog;CPLDThe Implementation of SDRAM MemoryInterface Based on the EPM570AbstractWith the rapid development of information science, people face more and more onerous task of signal processing, the requirements of data acquisition and processing system are getting higher and higher. Microprocessor such as single-chip microprocessor, DSP etc, their RAM is limited, which requires external expansion in the microprocessor memory. Synchronous Dynamic Random Access Memory has a low cost, high density, fast read and write data on the merits, thereby becoming the first choice for data cache storage medium, which paly an important role and widely used in the data acquisition system and image processing systems.SDRAM read and write logic is complex, the maximum clock frequency reaches above 100MHz, the ordinary microcontroller can not achieve complex SDRAM control operation. Complex programmable logic device has advantages such as programming convenience, high integrity, high speed and low cost etc. Therefore select CPLD to design control module of SDRAM interface , to simplify the host to read and write control of the SDRAM. Through the design of SDRAM controller interface based on CPLD, you can connect SDRAM in the external of STM series, ARM series, STC series single chip microprocessor and the DSP, increase system storage space.At the beginning of paper introduces the research background, research purpose and significance of the study of SDRAM interface design, leads to the study of SDRAM, detailed introduces information of SDRAM about the basic principles, the internal structure, the basic operation and timing of work, and the design emphasis and difficulty. Based on these theories, modularing the designof SDRAM interface, understanding hardware and software used in the design. Finally, it uses Verilog language in Quartus Ⅱsoftware to design CPLD chip, Through the hardware and the software realization SDRAM the commissioning of the basic design of the interface.Keywords SDRAM; Interface; Verilog; CPLD目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 课题背景 (1)1.2 课题研究的目的及意义 (1)1.3 同步动态随机存储器简介 (2)1.4 论文的结构和框架 (3)第2章SDRAM的工作原理 (4)2.1 存储器的概述 (4)2.1.1 存储器的分类 (4)2.1.2 存储器的技术指标 (5)2.1.3 存储器的比较 (5)2.2 SDRAM的工作原理 (6)2.2.1 SDRAM存储的基本原理 (6)2.2.2 SDRAM的内部结构 (7)2.3 本章小结 (8)第3章SDRAM的基本操作 (9)3.1 SDRAM的基本操作 (9)3.1.1 芯片初始化 (9)3.1.2 行有效 (9)3.1.3 列读写 (10)3.1.4 读操作 (11)3.1.5 写操作 (12)3.2 SDRAM的工作特性 (13)3.2.1 模式寄存器的设置 (13)3.2.2 预充电 (14)3.2.3 刷新 (15)3.3 SDRAM接口设计的要求 (16)3.3.1 存储器接口解决数据存取的难点 (17)3.3.2 存储器接口在工作方式上的初步优化 (17)3.4 本章小结 (18)第4章系统结构及硬件设计 (19)4.1 SDRAM接口设计的整体结构 (19)4.1.1 控制接口模块 (19)4.1.2 CAS延迟模块 (20)4.1.3 突发长度模块 (22)4.1.4 地址转换模块 (22)4.2 EPM570芯片简介 (23)4.2.1 MAXⅡ系列芯片功能简介 (24)4.2.2 逻辑阵列 (25)4.2.3 全局时钟 (25)4.2.4 I/O端口结构 (26)4.3 MT48LC系列芯片简介 (26)4.4 本章小结 (28)第5章软件设计与实现 (30)5.1 利用QuartusⅡ进行设计的流程 (30)5.2 软件的设计 (31)5.2.1 Verilog语言的特点 (31)5.2.2 采用Verilog设计综合的过程 (32)5.2.3 SDRAM接口设计的仿真 (34)5.3 本章小结 (36)结论 (37)致谢 (38)参考文献 (39)附录A (41)附录B (46)附录C (51)第1章绪论1.1课题背景数据采集处理技术是现代信号处理的基础,广泛应用于雷达、声纳、软件无线电、瞬态信号测试等领域。
基于FPGA的DDR2 SDRAM控制器设计
基于FPGA的DDR2SDRAM控制器设计钱素琴,刘晶华(东华大学信息科学与技术学院,上海,201600)摘要:基于高速数据传输与存储的数据釆集记录仪对缓存模块高性能的需求,选择了读写速度快、低成本、大容量、运行稳定的DDR2SDRAM作为本地存储器,在其存储寻址原理和IP核的读写控制逻辑的基础上,借助硬件描述语言设计了一个DDR2存储控制器方案。
在Intel的FPGA Cyclone IV系列开发板上进行了整体方案的功能验证,完成了用户接口和控制器之间的多数据宽度、多突发长度的高效数据传输和读写操作,在166.7MHz时钟频率下实现了稳定读写的目标。
关键词:FPGA;DDR2SDRAM;IP核Design of DDR2SDRAM controller based on FPGAQian Suqin,Liu Jinghua(College of information science and technology,Donghua University,Shanghai,201600) Abstract;Based on the requirement of high-speed data transmission and storage data acquisition recorder for high performance of cache module,DDR2SDRAM with high read-write speed,low cost, large capacity and stable operation is selected as the local memory.Based on its storage addressing principle and the read-write control logic of IP core,a DDR2storage controller scheme is designed with the help of hardware description language.The functional verifiestion of the overall scheme is carried out on the FPGA cyclone IV series development board of Intel.The efficient datQ transmission and read-write operation of multipie data widths and burst lengths between the user interface and the cont r oller are comple t ed.The st a ble read-wr ite t a rge t is achieved a/t166.7MHz clock frequency. Keywords:FPGA;DDR2SDRAM;IP coreo引言随着数据采集系统的发展,应用于图像采集和数据传输等领域的产品对存储器的速度要求越来越高。
基于H.264视频解码器DDR2存储器接口的设计与验证的开题报告
基于H.264视频解码器DDR2存储器接口的设计与验证的开题报告一、研究背景和意义随着图像和视频传输技术的飞速发展,视频解码器已经成为移动终端、便携式媒体播放器等众多电子设备的必备组件。
而基于H.264视频解码器的电子设备则因其高质量的视频解码功能而备受关注。
在H.264视频解码器中,DDR2存储器接口是关键的组成部分。
在此基础上,通过对嵌入式H.264视频解码器的DDR2存储器接口的设计和验证,可以实现视频解码器的高效工作,并有效提高视频输出质量。
因此,本研究的意义在于:深入分析H.264视频解码器的DDR2存储器接口,研究其工作原理和特点,设计并验证嵌入式H.264视频解码器DDR2存储器接口的性能,进而提高视频解码器的性能和质量。
二、研究目标和内容(一)研究目标本研究旨在设计和验证基于H.264视频解码器DDR2存储器接口的嵌入式视频解码器,具体研究目标包括:1. 深入研究H.264视频解码器的DDR2存储器接口的工作原理和特点;2. 设计基于DDR2存储器接口的嵌入式视频解码器;3. 对嵌入式视频解码器进行性能测试,并分析其性能指标;4. 对嵌入式视频解码器进行功能验证,并测试其视频输出质量。
(二)研究内容1. H.264视频解码器DDR2存储器接口的原理分析;2. 基于DDR2存储器接口设计嵌入式视频解码器的硬件架构;3. DDR2存储器接口的驱动程序设计;4. 嵌入式视频解码器的性能测试和结果分析;5. 嵌入式视频解码器的功能验证和视频质量测试。
三、研究方法和技术路线(一)研究方法1. 文献研究法:阅读相关文献,深入了解H.264视频解码器的DDR2存储器接口的特点和性能指标;2. 设计方法:采用硬件设计方法进行嵌入式视频解码器的设计;3. 测试方法:采用性能测试和功能验证法测试嵌入式视频解码器的性能和视频输出质量。
(二)技术路线1. 理论研究:深入研究H.264视频解码器DDR2存储器接口的工作原理和特点;2. 硬件设计:根据DDR2存储器接口的特点,设计基于DDR2存储器接口的嵌入式视频解码器的硬件架构;3. 驱动程序设计:编写DDR2存储器接口的驱动程序,实现与嵌入式视频解码器的通信和控制;4. 性能测试和功能验证:测试嵌入式视频解码器的性能指标和功能,并对其视频输出质量进行分析和测试。
基于FPGA的DDR2存储器控制器设计_河北科技大学.
毕业设计学生姓名:洪雷学号: 09xxxxxxxx 专业:电子科学与技术题目:基于FPGA的DDR2存储器控制器设计指导教师:安国臣(讲师评阅教师:武瑞红(副教授2013年6月毕业设计中文摘要随着消费电类电子产品以及便携式通讯产品向多功能、高性能和低功耗方向的飞快发展,而随之带来的是对大量的数据处理,而产品的系统对其主要的存储设备的要求也越来越高。
目前,DDR2凭着其及其高的数据传输速率和低廉的成本则越来越多的被用到一些高档类的消费类电子和便携式产品中。
对DDR2 SDRAM的控制器处理的设计变得也就非常有必要。
使用FPGA技术设计数字电路,不仅可以简化设计过程,而且还可以减低整个系统的体积和成本,增加系统的可靠性。
本次设计则使用Altear公司的Cyclone V 代器件,经行开发的最小系统。
本次设计使用的是Mircon公司的MT47系列的芯片,借助Altera公司提供的IP 核所自动生成PHY接口。
由于DDR2的读写驱动的要求,多次设计了电压的要求。
本文对DDR2 SDRAM基本结构和原理进行了简单的介绍。
并且阐述基于FIFO和PHY接口的DDR2设计方法。
关键词DDR2 FPGA 存储器控制器 FIFO毕业设计外文摘要Title DDR2 Memory Controller Design based on FPGAAbstractAs consumer electric class electronic products and portable communication products to multi-functional, high performance and low power consumption direction of rapid development, and then brings about a lot of data processing, the product of the system to the main storage device requirements more and more higher. At present, the DDR2 with its and high data transfer rate and low cost are more and more used in some high-end consumer electronics and portable products. Processing of DDR2 SDRAM controller design becomes and is very necessary.Digital circuit design using FPGA technology, not only can simplify the design process, but also can reduce the size and cost of the whole system, increase the reliability of the system. This design USES Altear company Cyclone V generation device, the smallest system development. This design USES the Mircon MT47 series chips, and IP core provided by Altera corporation how can automatically generate the PHY interface. Driven requirements due to DDR2, speaking, reading and writing, and design the voltage requirements for many times.in this paper, the basic structure and principle of DDR2 SDRAM has carried on the simple introduction. And in this paper, the DDR2 design method based on FIFO and PHY interfaceKey Words DDR2 FPGA memory controlle FIFO目录1 绪论 (12 动态随机存储器 (32.1 同步动态随机存储器原理与结构 (32.2 双倍动态随机存储器原理与特点 (32.3 DDR2随机存储器的简介 (43 可编程逻辑器件原理 (73.1 FPGA原理 (73.2 FPGA结构 (73.3 FPGA器件开发的优点 (94 外围电路设计 (114.1芯片的选择和介绍 (114.2 FPGA电源设计 (154.3 FPGA时钟和复位设计 (164.4 FPGA的配置设计 (175 软件设计与仿真 (185.1 FPGA的设计开发流程 (18 5.2 系统设计软件介绍 (195.3 VHDL语言的介绍 (195.4 系统设计 (20结论 (29致谢 (30参考文献 (311 绪论随着大规模、甚大规模的集成电路的设计技术的飞速发展,科技的日益更新,跟随而来的是各种的芯片的弄能不段的变复杂,而同时,数字产品例如掌上电脑、网络设备、音频设备、高清电视等,对高性能的内存的需求也越来越高。
基于FPGA的DDR2深存储设计
基于FPGA的DDR2深存储设计
李修一;王厚军;曾浩
【期刊名称】《自动化信息》
【年(卷),期】2011(000)008
【摘要】高存储深度是高端数字存储示波器的发展方向之一,应用DDR2存储器能够提高数字示波器的存储深度。
本文中,设计并实现了采角IGbitDDR2的最大存储深度为256MB的深存储系统,作者介绍了利用MIG软件工具在Xilinx的Spartan一6系列FPGA中实现DDR2控制器的设计方法,详细叙述了其基本原理并给出了硬件测试结果。
【总页数】3页(P25-27)
【作者】李修一;王厚军;曾浩
【作者单位】电子科技大学白动化工程学院,成都611731
【正文语种】中文
【中图分类】TP2
【相关文献】
1.一种基于DSO的DDR2深存储设计 [J], 叶兵;王厚军;曾浩
2.基才FPGA的DDR2 SDRAM存储器用户接口设计 [J], 杨斌;段哲民;高峰
3.基于DDR2 SDRAM的SAR成像转置存储器的FPGA实现 [J], 白海龙;全英汇;王虹现;王彤
4.基于DDR2和FPGA的实时成像转置存储器设计 [J], 徐艺;黄静
5.基于FPGA的DDR2 SDRAM数据存储研究 [J], 向兴富;袁玉群;谭亚军
因版权原因,仅展示原文概要,查看原文内容请购买。
DDR设计概述以及分析仿真案例完整版
D D R设计概述以及分析仿真案例HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】DRAM (动态随机访问存储器)对设计人员特别具有吸引力,因为它提供了广泛的性能,用于各种计算机和嵌入式系统的存储系统设计中。
本文概括阐述了DRAM 的概念,及介绍了SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM、DDR5 SDRAM、LPDDR、GDDR。
DRAMDRAM较其它内存类型的一个优势是它能够以IC(集成电路)上每个内存单元更少的电路实现。
DRAM 的内存单元基于电容器上贮存的电荷。
典型的DRAM 单元使用一个电容器及一个或三个FET(场效应晶体管)制成。
典型的SRAM (静态随机访问内存)内存单元采取六个FET 器件,降低了相同尺寸时每个IC 的内存单元数量。
与DRAM 相比,SRAM 使用起来更简便,接口更容易,数据访问时间更快。
DRAM核心结构由多个内存单元组成,这些内存单元分成由行和列组成的两维阵列(参见图1)。
访问内存单元需要两步。
先寻找某个行的地址,然后在选定行中寻找特定列的地址。
换句话说,先在DRAM IC 内部读取整个行,然后列地址选择DRAM IC I/O(输入/ 输出)针脚要读取或要写入该行的哪一列。
DRAM读取具有破坏性,也就是说,在读操作中会破坏内存单元行中的数据。
因此,必需在该行上的读或写操作结束时,把行数据写回到同一行中。
这一操作称为预充电,是行上的最后一项操作。
必须完成这一操作之后,才能访问新的行,这一操作称为关闭打开的行。
对计算机内存访问进行分析后表明,内存访问中最常用的类型是读取顺序的内存地址。
这是合理的,因为读取计算机指令一般要比数据读取或写入更加常用。
此外,大多数指令读取在内存中顺序进行,直到发生到指令分支或跳到子例程。
图1. DRAMs 内存单元分成由行和列组成的两维阵列DRAM的一个行称为内存页面,一旦打开行,您可以访问该行中多个顺序的或不同的列地址。
利用 ISERDES 和 OSERDES 实现高性能
WRITE
IDLE
OSERDES Inputs D1, D2, D3, D4
0, 0, 0, 0 0, 1, 0, 1
0, 0, 0 ,0
OSERDES Inputs T1, T2, T3, T4
1, 1, 1, 0 0, 0, 0, 0
0, 1, 1, 1
Strobe (DQS), OSERDES Output
R
XAPP721 (v1.4) 2006 年 5 月 25 日
应用指南:Virtex-4 系列
利用 ISERDES 和 OSERDES 实现高性能 DDR2 SDRAM 接口数据采集
作者:Maria George
提要
本应用指南介绍了高性能 DDR2 SDRAM 接口的数据采集技术。本技术使用每个 Virtex™-4 I/O 中的输入串行器 / 解串器 (ISERDES) 和输出串行器 / 解串器 (OSERDES) 功能,可用于频率为 200 MHz (400 Mb/s) 及更高的存储器接口。
0
由存储器供应商指定。
175
由存储器供应商指定。
30
考虑到封装歪斜,对 DQS 及其相关联 DQ
位的 PCB 迹线延迟需加以调整。所列值表
示介电常数的变化。
50
用于生成 DQS 和 DQ 的同一个 DCM。
50
全局时钟树歪斜。
140
同一个 DCM 的不同时钟输出间的相位偏移
错误。
50
板上的数据线和相关联的 DQS 之间的歪
• CLK:使用 BUFIO 布线的读 DQS 提供 ISERDES 的 CLK 输入,如图 7 所示。 • OCLK:在硬件上,ISERDES 的 OCLK 输入连接到 OSERDES 的 CLK 输入。在本设计中,
xilinx平台DDR3设计教程之仿真篇_中文版教程
想做个DDR设计不?想还是不想?你要知道FPGA这种东西,片内存储资源终究有限,实在谈不上海量存储。
万一哪天你想要海量存储数据了咋办?你是不是得用DRAM条子啊?什么?你还想用SRAM?今年已经2013年了童鞋~关于DRAM,或许是SDRAM,或许是DDR1(再次提醒你,2013年了已经),或许是DDR2或者DDR3。
这些条子都有一套控制协议,这套协议对不同的条子大同小异,但是里面又有各种细节的区别,这些你都搞懂了吗?没搞懂?其实,你不需要搞懂。
现在的EDA设计不需要你从基础知识开始研究。
这个时代,你要生存要发展,最佳的办法是站在巨人的肩膀上,而不是亲自长成个巨人。
DDR设计太常用了,只要你在搞FPGA,自然有人给你搞定一套IP,免费的给你用。
你不会还想自己从底层写起吧?多花些时间在没有免费IP用的协议合算法上吧。
现在进入正题:我刚刚讲的免费IP,在哪里?怎么用的?(小白问题,IP是什么,IP地址吗?)这里的IP就是Intelligence Property说白了就是xilinx里的core gen(对应于altera里面的mega wizard)这个文档就举一个例子来讲,选哪家呢?本人是xilinx和altera都来一个?条子选啥?SDR?DDR1? 各种条子全都写一套?(你以为写这个文档容易吗,是不是要连chipscope怎么用也一起出个文档啊?全部都写一套可以,先往我账户上打五千块钱,然后我再考虑考虑。
记住这个世界上没有白吃的午餐,你要看白痴都能看会的DDR教程,你就得听我在这里唠叨)本教程选择一个例子来讲,那就是xilinx平台下用DDR3(常见的笔记本内存条)接下来是你玩转这个教程所必须要准备的工具:xilinx ISE 14.1或者更高版本(不好意思,比14.1还低的版本我没试过。
vivado当然也可以,不过我是用的ISE)modelsim SE 6.6a或者更高版本(更低版本我负责的告诉你不可以,因为无法正常生成编译库,所以,6.5版本或者更低的你干脆就别装了)有鉴于这个文档的面相对象设定为连chiscope都不太会用的人,就是那种刚毕业不到一两年甚至还在校的,我必须郑重的告诉你一下这两个工具上哪里去下载:网上下载,百度股沟搜索会不会?什么?你告诉我搜不到?我给你跪了,菜鸟兄XILINX ISE 14.4这里下载http://simplecd.me/entry/L1a0enD2/破解文件:/f/62469961.htmlmodelsim 6.6这里下载(要注册和花积分的):/viewthread.php?tid=232457破解文件:/f/34760037.html(注意,时间长了以后这几个链接是可能失效的,比如你可能在2015年看到这个2013年11月写的文档,到时候可能只能自己找下载了)PPT翻了一页了,工具都装完了吗亲?已经装完了啊?很好哦,那我们就开始吧!你知道用ISE做DDR设计的第一步是啥吗?当然是打开工具了——我估计这你肯定知道打开工具之后做啥?当然是生成一个IP,对xilinx来说也就是core gen了我估计你即便是新手上路,这个也是知道的——因为我前面刚刚讲过了嘛那么core gen生成完了之后呢?是不是要仿真啊?仿真需要什么?当然是modelsim了——我还是刚刚讲过,哈哈那你知道用modelsim仿真DDR的core gen,是需要xilinx仿真库的吗?什么?你不知道啥叫仿真库?乖乖隆地洞,我还是给你讲讲啥叫仿真库吧先关于FPGA的仿真库本人不是学校里的学究,本人是工程师所以用工程师的语言告诉你啥叫仿真库FPGA本身是一种特定的芯片,这个芯片里有很多特定的基本电路单元。
ddr2测试规范
DDR2 SDRAM接口硬件测试规范目录DDR2 SDRAM接口硬件测试规范 (I)1 范围 (3)2 术语和定义 (3)3 缩略语 (3)4 测试仪器仪表清单 (4)5 接口说明 (4)5.1 SDRAM接口信号说明 (4)5.2 DDR2 SDRAM接口功能指标 (5)5.2.1 电源完整性需要测试以下指标 (6)5.2.2 信号完整性需要测试以下指标 (7)5.2.3 时序需要测试以下指标 (7)5.2.4 时钟信号需要测试以下指标 (8)5.3 DDR2 SDRAM参数测试说明 (9)5.3.1 DDR2 SDRAM读写区分的方法 (9)5.3.2 单端信号AC输入参数测量 (11)5.3.2.1 VSWING(MAX)的测试方法 (11)5.3.2.2 SlewR参数测量方法 (12)5.3.2.3 SlewF参数的测量方法 (13)5.3.2.4 VIH的测试方法 (14)5.3.2.5 VIL的测试方法 (15)5.3.2.6 tDIPW的测试方法 (15)5.3.2.7 tIPW的测试方法 (15)5.3.3 输入信号过冲欠冲测试 (16)5.3.3.1 信号过冲测试方法 (16)5.3.3.2 信号欠冲测试方法 (17)5.3.4 差分信号AC参数测量 (17)5.3.4.1 SlewR测试方法 (17)5.3.4.2 SlewF测试方法 (18)5.3.4.3 VID测试方法 (19)5.3.4.4 VIX测试方法 (20)5.3.4.5 VOX的测试方法 (21)5.3.4.6 tDQSH的测试方法 (22)5.3.4.7 tDQSL的测试方法 (23)5.3.5 控制和地址信号时序测试 (24)5.3.5.1 tIS(base)测试方法 (24)5.3.5.2 tIH(base)测试方法 (26)5.3.6 数据信号时序测试 (26)5.3.6.1 tDS(base)测试方法 (26)5.3.6.2 tDH(base)测试方法 (27)5.3.6.3 tDS1(base)测试方法 (28)5.3.6.4 tDH1(base)测试方法 (30)5.3.6.5 tAC的测试方法 (32)5.3.6.6 tDQSCK的测试方法 (33)5.3.6.7 tDQSQ的测试方法 (34)5.3.6.8 tQH的测试方法 (35)5.3.6.9 tDQSS的测试方法 (36)5.3.6.10 tDSS的测试方法 (37)5.3.6.11 tDSH的测试方法 (38)5.3.6.12 tHZ的测试方法 (39)5.3.6.13 tLZ的测试方法 (40)5.3.6.14 tRPRE的测试方法 (42)5.3.6.15 tRPST的测试方法 (43)5.3.6.16 tWPRE的测试方法 (44)5.3.6.17 tWPST的测试方法 (45)5.3.7 时钟信号测试 (46)5.3.7.1 tCK(avg)的测试方法 (46)5.3.7.2 tCH(avg)/ tCL(avg)的测试方法 (47)5.3.7.3 Tj、Dj和Rj的测试方法 (47)5.3.7.4 tJIT(per)的测试方法 (48)5.3.7.5 tJIT(cc)的测试方法 (48)5.3.7.6 tJIT(duty)的测试方法 (49)5.3.7.7 tERR(nper)的测试方法 (49)6 测试内容 (50)6.1 电源完整性测试 (50)6.1.1.1 HS-DDR2 SDRAM-P-001 电源精度测试 (50)6.1.1.2 HS-DDR2 SDRAM-P-002 电源纹波测试 (51)6.1.1.3 HS-DDR2 SDRAM-P-003 电源上电波形测试 (53)6.1.1.4 HS-DDR2 SDRAM-P-003 电源上电时序测试 (53)6.2 信号完整性和时序测试 (54)6.2.1.1 HS-DDR2 SDRAM-S-001控制信号完整性测试 (54)6.2.1.2 HS-DDR2 SDRAM-S-002地址信号完整性测试 (55)6.2.1.3 HS-DDR2 SDRAM-S-003读操作数据信号完整性测试 (56)6.2.1.4 HS-DDR2 SDRAM-S-004写操作数据信号完整性测试 (56)6.3 时序测试 (58)6.3.1.1 HS-DDR2 SDRAM-T-001 读操作数据信号时序测试 (58)6.3.1.2 HS-DDR2 SDRAM-T-002 写操作数据信号时序测试 (59)6.3.1.3 HS-DDR2 SDRAM-T-003 控制信号时序测试 (60)6.3.1.4 HS-DDR2 SDRAM-T-004 地址信号时序测试 (60)6.4 时钟信号测试 (61)6.4.1.1 HS-DDR2 SDRAM-C-001 时钟信号波形测试 (61)6.4.1.2 HS-DDR2 SDRAM-C-002 时钟Jitter测试 (62)6.4.1.3 HS-DDR2 SDRAM-C-003 时钟精度测试 (63)7 引用 (63)1 范围本标准规定了DDR2 SDRAM接口的硬件测试方法和相关测试注意事项,并结合测试示例给以说明。
xilinx平台DDR3设计教程之仿真篇
想做个DDR设计不?想还是不想?你要知道FPGA这种东西,片内存储资源终究有限,实在谈不上海量存储。
万一哪天你想要海量存储数据了咋办?你是不是得用DRAM条子啊?什么?你还想用SRAM?今年已经2013年了童鞋~关于DRAM,或许是SDRAM,或许是DDR1(再次提醒你,2013年了已经),或许是DDR2或者DDR3。
这些条子都有一套控制协议,这套协议对不同的条子大同小异,但是里面又有各种细节的区别,这些你都搞懂了吗?没搞懂?其实,你不需要搞懂。
现在的EDA设计不需要你从基础知识开始研究。
这个时代,你要生存要发展,最佳的办法是站在巨人的肩膀上,而不是亲自长成个巨人。
DDR设计太常用了,只要你在搞FPGA,自然有人给你搞定一套IP,免费的给你用。
你不会还想自己从底层写起吧?多花些时间在没有免费IP用的协议合算法上吧。
现在进入正题:我刚刚讲的免费IP,在哪里?怎么用的?(小白问题,IP是什么,IP地址吗?)这里的IP就是Intelligence Property说白了就是xilinx里的core gen(对应于altera里面的mega wizard)这个文档就举一个例子来讲,选哪家呢?本人是xilinx和altera都来一个?条子选啥?SDR?DDR1? 各种条子全都写一套?(你以为写这个文档容易吗,是不是要连chipscope怎么用也一起出个文档啊?全部都写一套可以,先往我账户上打五千块钱,然后我再考虑考虑。
记住这个世界上没有白吃的午餐,你要看白痴都能看会的DDR教程,你就得听我在这里唠叨)本教程选择一个例子来讲,那就是xilinx平台下用DDR3(常见的笔记本内存条)接下来是你玩转这个教程所必须要准备的工具:xilinx ISE 14.1或者更高版本(不好意思,比14.1还低的版本我没试过。
vivado当然也可以,不过我是用的ISE)modelsim SE 6.6a或者更高版本(更低版本我负责的告诉你不可以,因为无法正常生成编译库,所以,6.5版本或者更低的你干脆就别装了)有鉴于这个文档的面相对象设定为连chiscope都不太会用的人,就是那种刚毕业不到一两年甚至还在校的,我必须郑重的告诉你一下这两个工具上哪里去下载:网上下载,百度股沟搜索会不会?什么?你告诉我搜不到?我给你跪了,菜鸟兄XILINX ISE 14.4这里下载http://simplecd.me/entry/L1a0enD2/破解文件:/f/62469961.htmlmodelsim 6.6这里下载(要注册和花积分的):/viewthread.php?tid=232457破解文件:/f/34760037.html(注意,时间长了以后这几个链接是可能失效的,比如你可能在2015年看到这个2013年11月写的文档,到时候可能只能自己找下载了)PPT翻了一页了,工具都装完了吗亲?已经装完了啊?很好哦,那我们就开始吧!你知道用ISE做DDR设计的第一步是啥吗?当然是打开工具了——我估计这你肯定知道打开工具之后做啥?当然是生成一个IP,对xilinx来说也就是core gen了我估计你即便是新手上路,这个也是知道的——因为我前面刚刚讲过了嘛那么core gen生成完了之后呢?是不是要仿真啊?仿真需要什么?当然是modelsim了——我还是刚刚讲过,哈哈那你知道用modelsim仿真DDR的core gen,是需要xilinx仿真库的吗?什么?你不知道啥叫仿真库?乖乖隆地洞,我还是给你讲讲啥叫仿真库吧先关于FPGA的仿真库本人不是学校里的学究,本人是工程师所以用工程师的语言告诉你啥叫仿真库FPGA本身是一种特定的芯片,这个芯片里有很多特定的基本电路单元。
基于FPGA的SDRAM读写双口控制器设计
Ab ta t sr c :A o to c e fd u l n e fc swih o e sn l S RAM o told b GA sp o o e c n r ls h meo o b eit ra e t n i ge Dl c n r l y FP e i r p s d
将单片 S R M 作为乒乓 R M 的双口接口设计。采用 DA A
L Ⅱ己 T A公 司的 E 1 6 20 8 HY I P C Q 4C 和 N X的 HY 7 I 11D C 8将 F G 5V 660 T - , P A作 为主控制 器 , 并在其 中配 置两块 R M 分 A
别作为 S R M的输入、 D A 输出缓冲区。前者接者读取 S R M 中数据。 DA 为外 围高速设备提供高速数据流。高速数据流按自定义数据包间续发送 , 在此间隔中执行慢速数据流写入 S R M 和 自动刷新 D A S R M 的操作。 D A
i tr a st ei o t rr c ie h O s e d d t r m h u e n ie h m n o t eS n e v l h mp re e ev st e lw p e a afo t eo tra d wr st e i t h DRAM. t
d t te m y s el o h i h s e d p rp e a q ime t ih g tfo t eS aa sr a b p l f rt eh g p e e ih r l u p n swh c o r m h DRAM .Du ig t e e s e rn h s
DDR+SDRAM控制器的设计与实现
万方数据万方数据万方数据第3期朱炜,刘新宁:DDRSDRAM控制器的设计与实现595到刷新请求,状态机会跳转到DDR—INT—REF—PREC状态,对DDRSDRAM进行全部预充电,使SDRAM各个BANK都处于空闲状态,然后跳转到DDR_AUO_REF状态,执行刷新操作,刷新完毕,自动返回DDR—IDLE状态。
读写状态机按照这种设计,在各个状态间循环往复工作,可以确保对DDRSDRAM进行正确的操作。
图4读写状态机2.3DDR控制器数据通道设计DDR控制器的读写数据通道直接涉及到数据读写的稳定性,而DDRSDRAM的读写时序需要用到同一时钟的上升沿与下降沿,时序的正确性很难保证。
本设计对数据通道进行了优化处理,读写数据的稳定性都得到了提高。
2.3.1读数据通道图5是本文采用的DDR读数据通道电路,s_rd—data是从DDRSDRAM的IX:l总线上读取的16bit数据,我们用dqs—delay(延时90。
相位后的dqs)作为数据采样时钟,结合图1,DQ在dqs的高电平和低电平处都有数据送出,所以在dqs—delay的上升和下降沿都要采样数据,设计时,先用dqs—delay的上升沿采样DQ数据,寄存在s_data_l中,然后再用下降沿采样s_rd_data和s_data_l,分别作为低16位数据和高16位数据,合并为32位的新数据s_da—ta_ddr,最后用系统时钟hclk寄存数据,得到最终的与系统时钟helk同步的32位数据out_data。
图5读数据通道原理图2.3.2写数据通道写数据通道将系统送来的32位数据拆分为低16位和高16位,送到DDRSDRAM的16数据总线上。
本设计采用的方案如图5,首先将系统的32位数据wr_data分为wr...data_l(低16位)和wrda-ta_h(高16位),送入一个2选1的MUX,用hclk作为选通信号,这就能够使得按照helk周期变化的32位数据wr—data变成按照hclk一2x周期变化的16位数据,这时再用hclk一2x寄存MUX出来的数据,保持数据稳定,就可以得到与DQS边沿对齐的数据ddr—wr.data。
基于FPGA的DDR_SDRAM测试平台设计
计算机测量与控制!"#"$!$%!%#"!!"#$%&'()'*+%('#',&-!",&(".!!#&'!#收稿日期 "#"$#$#&$!修回日期 "#"$#(%"%作者简介 谢树平!%)*&"&男&硕士&工程师%引用格式 谢树平&毛源豪!基于+,-.的//01/0.2测试平台设计'3(!计算机测量与控制&"#"$&$%!%#")&''4!文章编号 %&'%(4)* "#"$ %###&'#)!!/56 %#!%&4"& 7!89:;!%%<('&" =>!"#"$!%#!#%%!!中图分类号 ?,"'(!!文献标识码 .基于/012的3345342)测试平台设计谢树平 毛源豪!湖南艾科诺维科技有限公司&长沙!(%####"摘要 //01/0.2是+,-.板卡中的重要组成部分&其可靠性与带宽决定了设备能否正常工作$为了测试//01/0.2的性能是否符合预期&开发了一种基于+,-.的//01/0.2测试平台&平台包含一个基于//01/0.2控制器的测试器6,核&具有数据校验*带宽测量的功能$编写了控制测试器6,核的?@A脚本&用于配置测试参数*控制测试流程与读取测试结果$在,B=C D9语言下使用,B E=4开发库设计了图形界面程序&能够根据用户操作生成并执行对应的?@A脚本$最终实现了一个操作简单*测试流程可配置*自动输出测试结果的//01/0.2测试平台$测试结果表明&测试平台能够正确地进行//0 1/0.2测试并输出统计结果$对比26-的示例工程&测试平台额外增加了带宽测试*结果统计*循环测试等功能&且使用的+,-.资源下降了$#F&测试用时缩短了'#F以上%关键词 //01/0.2$+,-.$?@A脚本$测试平台$,B E=43'+67,"83345342)9'+&0.*&8"(#:*+';",/012G6H1C I>;9J&2.5K I L9C L D!M I9L9.8N9D O L?P8C9D Q D J B@D R&A=S R&@C L9J T C L!(%####&@C;9L"2<+&(*=&)//01/0.2;T L9;U>D V=L9=8D U>D9P9=D W+,-.X D L V S T&L9S;=T V P Q;L X;Q;=B L9S X L9S Y;S=C S P=P V U;9PY C P=C P V=C P S P Z O;8P8L9W I98=;D9>V D>P V Q B R?DO P V;W B=C L==C P>P V W D V U L98PD W=C P//01/0.2U P P=TP[>P8=L=;D9T&L//01/0.2=P T=>Q L=W D V U X L T P SD9+,-.;T S P O P Q D>P S R?C P>Q L=W D V U;98D V>D V L=P T L=P T=P V6,8D V P&Y C;8C;T X L T P S D9L//01/0.28D9=V D Q Q P V L9SC L T=C P8L Z >L X;Q;=B=DO P V;W B S L=L L9SU P L T I V PX L9S Y;S=C R?@AT8V;>=T L V PI T P S=D8D9=V D Q=C P=P T=P V6,8D V P&;98Q I S;9J T P==;9J=P T=>L V L U P=P V T& U L9L J;9J=P T=>V D8P T T P T&L9S V P=V;P O;9J=P T=V P T I Q=T R.S S;=;D9L Q Q B&L J V L>C;8L Q;9=P V W L8P>V D J V L U;T S P T;J9P SI T;9J=C P,B E=4S P O P Q D>Z U P9=Q;X V L V B;9,B=C D9&Y C;8C J P9P V L=P T L9SP[P8I=P T8D V V P T>D9S;9J?@AT8V;>=TX L T P SD9I T P V;9>I=R.T L V P T I Q=&L//01/0.2 =P T=;9J>Q L=W D V U;T;U>Q P U P9=P S=C L=;T X D=CI T P V Z W V;P9S Q B L9S W Q P[;X Q P;9=P V U T D W=C P=P T=;9J>V D8P T T&Y C;Q P L Q T D>V D O;S;9J L I=D U L=;8 V P T I Q=T D I=>I=R?P T=V P T I Q=T S P U D9T=V L=P=C L==C P>Q L=W D V UL88I V L=P Q B=P T=T//01/0.2L9SD I=>I=T T=L=;T=;8L Q V P T I Q=T R2D V P D O P V& 8D U>L V P S=D=C P P[L U>Q P S P T;J9D W26-&=C P=P T=;9J>Q L=W D V U;98Q I S P T X L9S Y;S=C=P T=;9J&V P T I Q=T=L=;T=;8T&L9S L I=D U L=;88D9=V D Q W I98Z =;D9T&I Q=;U L=P Q B V P S I8;9J+,-.V P T D I V8PI T L J PX B$#F L9S8I==;9J=P T==;U PX B U D V P=C L9'#F R>'@"(;+)//01/0.2$+,-.$?@AT8V;>=$=P T=>Q L=W D V U$,B E=4A!引言现场可编程逻辑门阵列!+,-.&W;P Q S>V D J V L U U L X Q PJ L=P L V V L B"是一种半定制芯片&因其独特的电路可编程特性区别于其他器件%随着近年+,-.芯片的快速发展&其内部的资源数量与丰富度显著提升'%(%+,-.在通信*图像处理'"(*深度学习'$(*人工智能'((与数据中心'4(等领域发挥着重要的作用%双倍数据传输速率同步动态随机存储器!//01/0.2&S D I X Q P S L=L V L=P T B98C V D9D I TS B9L U;8V L9ZS D UL88P T TU P U D V B"是+,-.板卡中最常用的高速缓存解决方案%//01/0.2的工作情况直接影响到整个设备能否正常运作&所以//01/0.2测试也是+,-.板卡测试中最重要的测试项目之一%此前对//01/0.2的测试主要通过//01/0.2控制器的调试端口进行%然而这种测试方案存在操作人员学习门槛高*测试流程不灵活*无法自动生成测试报告等缺点%操作人员在测试前需要充分了解调试端口中约"##个信号的定义*各控制信号间的逻辑关系以及操作//01/0.2的相关知识%此类方案在生成比特流后测试内容相对固定&可在线配置的测试参数有限&无法设置测试队列并自动完成%且没有生成测试报告的功能&相关数据需要操作人员手动记录%降低了工作效率&增加了出错风险%在+,-.与//01/0.2的数据交互设计中&设计者通常使用+,-.厂家提供的//01/0.2控制器%比如G;Q;9[公司为旗下的+,-.提供了成熟的存储器接口生成器!26-&U P U D V B;9=P V W L8P J P9P V L=D V"%26-内包含控制器和物理层&设计者可以通过用户接口或先进可扩展接口!.G6&L S O L98P S P G=P9T;X Q P;9=P V W L8P"访问//01/0.2%文献'&(提出了一种基于26-用户接口的应用&在26-用户接口的基础上设计了先入先出!+6+5&W;V T=;9W;V T=D I="接口&使其既拥有+6+5缓存简单易用的特点&又有//01/0.2存储空间大的优势%文献''(在数据+6+5!投稿网址 Y Y Y!7T78Q B:\!8D UCopyright©博看网. All Rights Reserved.!!计算机测量与控制!第$%""""""""""""""""""""""""""""""""""""""""""""""""""""卷#&*!#接口的基础上增设了一个命令+地址+6+5&实现了随机读写功能%在//01/0.2控制器的测试技术中&通常使用的方案是向//01/0.2写入特定的>L ==P V 9&然后读取数据并校验数据一致性%文献'*(提出了一种包含内部自测!]61?&X I ;Q =Z ;9T P Q W Z =P T ="模块的//01/0.2控制器%该模块将来自随机数发生器的数据写入//01/0.2中&并将读出的数据与写入的数据在数据比较器中进行对比&从而实现自监测的功能%文献')(提出了一种基于在线逻辑分析仪!6A .&;9=P J V L =P SQ D J ;8L 9L Q B \P V "知识产权!6,&;9=P Q Q P 8=I L Q >V D >P V =B "核验证//01/0.2控制器的方法%使用.G 6?V L W W ;8J P 96,核产生.G 6总线的读写事务&并用6A .抓取.G 6总线上的信号&分析其时序与数据正确性%实际应用中&通常使用标准3?.-接口实现,@上位机与+,-.之间的通信%文献'%#(设计了一种基于+,-.的//01/0.2通用测试电路%该设计使用3?.-接口启动测试电路&电路自动完成整个测试过程并将测试结果从3?.-接口传回,@上位机%文献'%%(提出了一种使用工具命令语言!@A &=D D Q 8D U U L 9S Q L 9J I L J P "脚本语言测试数字电路的方法%该方法通过在^;O L S D 软件中执行?@A 脚本实现自动对调试核虚拟输入输出!^65&O ;V =I L Q ;9>I =D I =>I ="的修改与读取&从而达成高效率的测试%文献'%"(提出了一种基于A L X ^6H _软件调用?@A 脚本的测试方法&将^;O L S D 软件的启动与执行?@A 脚本的命令封装为批处理文件&实现了自动化测试与生成报表%文献'%$(提出了一种+,-.的.G 6总线接口调试方法&通过使用3?.-=D.G 66,核&允许用户通过执行?@A 脚本来对.G 6总线上的从设备进行访问%为了解决当前+,-.板卡中//01/0.2测试工作复杂及效率低下的问题&本设计做了如下工作)%"设计了//01/0.2控制器的测试器6,核26-P T =P V %该6,核具有生成读写事务*校验数据*记录数据读写用时等功能%同时26-?P T =P V 支持对数据位宽*>L =Z =P V 9类型*起始地址*测试地址范围*突发长度等参数的在线配置&具有高度的灵活性%""设计了?@A 脚本%用于控制^65*6A .*3?.-=D .G 6等6,核&从而实现对整个测试流程的控制以及测试结果信息的读取%$"设计了上位机图形界面程序%将测试流程中各个阶段需要执行的@A 脚本封装%通过文本框打印测试信息&同时自动生成测试报告&便于操作人员使用%B !测试平台架构及原理测试平台架构主要由两个部分构成)+,-.板卡与,@上位机%+,-.板卡内包含+,-.与//01/0.2&二者通过板卡上的//01/0.2接口相连接%,@上位机与+,Z -.通过3?.-接口实现通讯%用户在,@上位机操作图形界面程序&完成测试流程与输出测试结果'%(%4(%所述架构如图%所示%图%!测试平台架构框图//01/0.2是待测的目标器件&由+,-.中的26-控制%在对//01/0.2的测试中&重点关注的是//01/0.2的读写正确性与带宽两项性能'%&(%+,-.与//01/0.2通过//01/0.2接口相连接&+,-.内例化的26-控制//01/0.2的初始化与数据读写%26-?P T =P V 可以通过26-的.G 6T Q L O P 接口对//01/0.2进行数据读写%26-?P T =P V 的功能是测试读写正确性与带宽%26-?P T =P V 有两个主要接口)一个是.G 6T Q L O P 接口&作为控制接口与3?.-=D.G 6相连&?@A 脚本控制3?.-=D.G 6来与26-?P T =P V 进行通信&控制测试流程与读回测试结果$另一个是.G 6U L T =P V 接口&作为数据读写接口与26-相连&测试过程中对26-的数据传输均由此接口实现%此外26-?P T =P V 还有一个块随机存取存储器!]0.2&X Q D 8:V L 9S D UL 88P T TU P U D V B "主接口&用于向]0.2写入错误数据对应的地址信息&便于后续对错误数据的溯源分析%+,-.内例化的^65*3?.-=D.G 6和6A .调试核互相配合下起到控制26-初始化*控制26-P T =P V *抓取.G 6总线信号的作用&这些调试核均受,@上位机控制'%'%*(%,@上位机通过3?.-接口与+,-.进行通信%通过在,@上位机的^;O L S D ?8Q 1C P Q Q 程序中执行?@A 脚本&可以对+,-.中调试核的信息读取与控制%图形界面程序将^;O L S D ?8Q 1C P Q Q 作为子进程运行&并将测试相关的?@A 脚本封装为对应的按钮%操作人员可以通过图形界面程序便捷地控制整个测试流程&提高了测试效率&降低了学习门槛'%)"#(%C !/012工程设计测试板卡使用的+,-.产自G ;Q ;9[公司&型号为[8':$"4=W W J)##Z "&使用的//01/0.2型号为2?*3?+"Z 4&&(M `Z %-&2%%C D B !/012工程主要模块工程主要包含3?.-=D.G 6*26-?P T =P V *.G 61U L V =Z!投稿网址 Y Y Y!7T 78Q B:\!8D U Copyright ©博看网. All Rights Reserved.第%#期谢树平&等)基于+,-.的//01/0.2""""""""""""""""""""""""""""""""""""""""""""""""""""测试平台设计#&)!#@D 99P 8=*26-*.G 6]V L U @D 9=V D Q Q P V 等6,%模块之间主要通过.G 6总线进行连接&所有.G 6总线通过.G 61U L V =Z @D 99P 8=互联6,连接在一起%地址空间分配中&26-基地址被设为#[*#######&可被26-?P T =P V 和3?.-=D.G 6访问%26-?P T =P V 基地址设为#[((.#####&.G 6]0.2@D 9=V D Q Q P V 基地址设为#[########&两者都只能被3?.-=D .G 6访问%]0.2的类型为真双口]0.2&其中一个接口受.G 6]0.2@D 9=V D Q Q P V 控制&另一个接口供26-?P T =P V的]0.2主接口写入数据'"%""(%C D C !)'#"(E,&'(8*='1','(*&"(26-是由G ;Q ;9[官方提供的存储器接口成熟的解决方案&是可靠的//01/0.2控制器%26-由一个控制器与//0物理层接口组成%26-将复杂的//0物理接口封装为被广泛使用的.G 6接口&简化了用户的设计%在+,-.工程设计中&26-的.G 6T Q L O P 接口与26-?P T =P V 的.G 6U L T =P V 接口相连接&在测试过程中完成数据传输%26-的复位信号控制着26-初始化的开始&由^65驱动%26-的初始化完成信号是高电平时表示26-完成了初始化&由^65监听%根据//01/0.2型号与具体电路&对26-进行了如下配置)使能.G 6接口&并设置数据位宽为4%"&以适配26-?P T =P V 的.G 6主接口$工作时钟频率设为*##2M \&参考时钟输入设为"##2M \&以适配板卡上的参考时钟晶振%C D F !)'#"(E,&'(8*='1','(*&"(9'+&'(26-?P T =P V 是自主设计的26-专用测试6,核&主要包含以下模块).G 6T Q L O P 接口*控制器*写数据生成器*.G 6U L T =P V 接口*数据校验器*预期数据生成器*错误计数器*计时器与]0.2主接口%26-?P T =P V 的框架如图"所示%图"!26-?P T =P V 框架图.G 6T Q L O P 接口是控制接口&通过.G 6T Q L O P 接口可以读写控制器中寄存器的值&各寄存器与地址的映射关系与详细描述如表%所示%.G 6T Q L O P 接口的寄存器位宽均为$"位%其中偏移为#[#!#[%*的寄存器是可读可写的&主要包括可配置的测试参数与测试控制%偏移为#["#!#[$(的寄存器是只读的&主要包括测试结果以及固定测试参数%表%!.G 6T Q L O P 接口寄存器地址映射关系寄存器名偏移描述]L T P .S S V P T T #[#测试起始地址]I V T =A P 9J =C #[(读写突发长度]I V T =a I U X P V #[*单次测试突发数量?P T =@D 9=V D Q #[@启动测试与清除中断P T =1=L =I T #[%#26-?P T =P V 状态,L ==P V 91Y ;=8C#[%(固定,L ==P V 9功能开关,L ==P V 9#[%*,L ==P V 9设定0P T P V O P #[%@保留_V ;=P @B 8Q P #["#写数据所用时钟周期数0P L S @B 8Q P #["(读数据所用时钟周期数H V V D V a I U X P V #["*读写数据校验错误数0P T P V O P #["@保留/L =L _;S =C #[$#26-数据位宽+V P N I P 98B#[$(计时时钟频率写数据生成器在控制器的控制下&生成所设地址范围与所设>L ==P V 9的写数据事务%//01/0.2测试的地址范围由测试起始地址*读写突发长度*单次测试突发数量与26-数据位宽(个参数共同确定%公式如下)!=P T ="#S L =L $%X I V T =$&X I V T =*!%"'C ;JC "'X L T P (!=P T =!""式中&!=P T =是测试地址范围大小&'C ;JC 是测试终止地址&'X L T =是测试起始地址&#S L =L 是数据位宽&%X I V T =是突发长度&&X I V T =是突发数量%测试中写入//01/0.2的数据默认是*X ;=长的递增数>L ==P V 9&当固定>L ==P V 9开关被使能后&//01/0.2写入的>L ==P V 9将和#[%*地址寄存器内的数据保持一致%.G 6U L T =P V 接口是数据传输接口&与26-的.G 6T Q L O P 接口相连接%写数据生成器生成的写数据事务和数据校验器生成的读数据事务均由此接口完成具体的数据传输%数据校验器用于校验读回的数据与预期数据的一致性%当两者数据不相符时&错误标志信号P V V D V ,W Q L J 置-%.&使错误计数器计数加一&并将错误数据对应的地址写入]0.2%错误计数器接收数据校验器的错误标志信号进行计数%在完成测试后把错误计数写入H V V D V a I U X P V 寄存器%每次开始测试时错误计数器清零%计时器用于计算.G 6总线读写数据所用时钟周期%在完成测试过程后计时器会将读写数据用时分别写入0P L S @B Z 8Q P 寄存器与_V ;=P @B8Q P 寄存器%根据这两项测试结果以及计时时钟频率得出读写数据用时以及平均带宽%公式如下))Y V ;=P "*Y V ;=P+=;U P V!$",Y V ;=P "!=P T =)Y V ;=P!("式中&)Y V ;=P 是写数据实际所用时长&*Y V ;=P 是从寄存器中读取的写数据所用时钟周期数&+=;U P V 是计时器频率&,Y V ;=P 是写数!投稿网址 Y Y Y!7T 78Q B:\!8D U Copyright ©博看网. All Rights Reserved.!!计算机测量与控制!第$%""""""""""""""""""""""""""""""""""""""""""""""""""""卷#'#!#据平均带宽%读数据所用时间和平均带宽的计算方式类似&不再赘述%图$为26-?P T =P V 控制器的状态机示意图%当P T =@D 9=V D Q 寄存器的启动位被写入-%.时&处于空闲状态下的控制器进入写数据状态%.G 6U L T =P V 接口开始对指定地址范围写入所设>L ==P V 9%在完成指定地址范围的数据写入后&控制器进入读数据与数据校验状态%.G 6U L T =P V 接口读取指定地址范围的数据并校验%在完成指定范围数据的读取与比较后&进入测试完成状态&测试结果被写入.G 6T Q L O P 接口的测试结果寄存器中&同时完成中断信号置-%.%测试结果写入完成后&控制器回到空闲状态%图$!控制器状态机C D G !:."=H )'#"(?1','(*&"(]Q D 8:2P U D V B -P 9P V L =D V 可以使用+,-.内的]0.2资源生成性能优秀的存储器&这类存储器一般就被称为]0.2%在设计中]0.2被设置为真双口模式&用于存储读写校验发生错误的错误数据对应的地址信息%C D I !2J E:42)!",&("..'(.G 6]0.2@D 9=V D Q Q P V 提供了可供访问本地]0.2的.G 6T Q L O P 接口&支持突发事务&性能优秀%在设计中.G 6]0.2@D 9=V D Q Q P V 控制真双口]0.2的其中一个端口%3?.-=D.G 6可以通过此6,读取]0.2中的数据%C D K !L 6(&%*.E ,$%&M %&$%&^65用于在线监测或驱动+,-.内部的信号%本设计中主要使用^65驱动26-的复位信号&以及监测26-的初始化完成信号%^65由,@上位机通过3?.-接口控制%C D N !2J E &"O 921.G 6=D 3?.-用于生成.G 6接口事务%本设计中主要使用.G 6=D3?.-控制26-?P T =P V &并读回测试结果%.G 6=D 3?.-由,@上位机通过3?.-接口控制%C D P !E ,&'7(*&';Q "76=2,*.?R '(6A .用于捕获+,-.内部信号%本设计中主要使用6A .捕获读写数据校验错误时26-的.G 6接口的数据&并通过@A 命令将数据保存至,@上位机%6A .由,@上位机通过3?.-接口控制%C D S !2J E 5#*(&!",,'=&.G 61U L V =@D 99P 8=是由G ;Q ;9[官方提供的.G 6总线互联6,&可以将一个或多个.G 6内存映射主设备连接到一个或多个.G 6内存映射从设备%本设计中主要使用.G 61U L V =@D 99P 8=将各.G 6设备互联%F !0!上位机软件设计,@上位机软件的设计主要包括?@A 脚本设计与图形界面程序设计两个部分%F D B !9!Q 脚本设计@A 作为一门具有简明高效*便于移植的脚本语言&应用于众多H /.软件%^;O L S D 软件在?@A 语言的基础上增添了许多命令&以帮助开发者提高生产力%在本设计中&通过@A 脚本编程控制+,-.中的$个调试6,&配合完成初始化测试与读写测试两种测试功能%$R %R %!^65控制脚本通过在^;O L S D 软件中执行?@A 脚本&,@上位机可以控制^65的驱动值或读取^65探针的电平%需要修改^65输出探针驱动值时&使用T P =,>V D >P V =B 命令修改对应探针的5b ?,b ?,^.A b H 值&之后使用8D U U ;=,C Y ,O ;D 命令执行驱动值的修改%需要读取^65输入探针电平时&使用V P W V P T C ,C Y ,O ;D 命令刷新^65输入探针的电平&然后使用J P =,>V D >P V =B 命令获取对应探针的6a ,b ?,^.A b H 数值%$R %R "!.G 6=D 3?.-控制脚本,@上位机可以通过执行?@A 脚本来控制.G 6=D3?.-发起.G 6总线读写事务&从而访问目标设备%当需要对.G 6设备进行读操作时&使用8V P L =P ,C Y ,L [;,=[9命令创建读数据事务&执行V I 9,C Y ,L [;命令运行该事务%随后使用V P >D V =,C Y ,L [;,=[9命令报告读取数据%在完成传输数据事务后&使用S P Q P =P ,C Y ,L [;,=[9命令删除该事务%写.G 6设备数据的过程与读数据过程类似&区别在于生成写事务时需要指定事务类型为写&并增加一个写入数据作为参数%$R %R $!6A .控制脚本?@A 脚本可以控制6A .执行信号抓取任务&并将抓取的数据展示或保存下来%需要通过6A .抓取特定信号时&首先使用T P =,>V D >P V =B 命令修改需要抓取的信号以及触发方式&然后使用V I 9,C Y ,;Q L 命令开始执行抓取信号%抓取到信号后&使用I >Q D L S ,C Y ,;Q L ,S L =L 命令更新数据&并用Y V ;=P ,C Y ,;Q L ,S L =L 命令将抓取到的信号数据保存为;Q L 文件和8T O 文件&便于后续进行分析%$R %R (!初始化测试脚本初始化测试的原理是&对26-重复进行复位与初始化&记录该过程中26-是否能在限定时间内完成初始化%?@A 脚本编程的//01/0.2初始化测试流程如图(所示%在开始//01/0.2初始化测试后&首先控制^65驱动26-复位信号U ;J ,V T =,9为#&以确保26-处于复位状态%之后控制^65驱动26-复位信号U ;J ,V T =,9为%&26-开始一次初始化过程%之后^65监测的;9;=,8D U Z >Q P =P 信号的值&如果在指定时间内检测到高电平&则视为初始化成功&反之则视为初始化失败%完成测试结果记录后&判断已测试次数是否已达到指定的测试次数&如果已满足则输出测试结果&反之则返回第一步继续进行测试%!投稿网址 Y Y Y!7T 78Q B:\!8D U Copyright ©博看网. All Rights Reserved.第%#期谢树平&等)基于+,-.的//01/0.2""""""""""""""""""""""""""""""""""""""""""""""""""""测试平台设计#'%!#图(!初始化测试流程图$R %R 4!读写测试脚本读写测试的原理是&将测试参数写入26-?P T =P V&控制26-?P T =P V 开始读写测试&并将每次测试结果进行记录与统计%@A 脚本控制的读写测试流程如图4所示%首先控制3?.-=D.G 6向26-?P T =P V 写入读写测试的起止地址*写操作的>L ==P V 9与读写的突发数等测试参数%随后设置6A .的触发信号为错误标志信号P V V D V ,W Q L J 信号的高电平%写P T =@D 9=V D Q 寄存器启动26-?P T =P V %通过^65监控测试完成信号;9=V ,S D 9P 直到它变为高电平%至此一次测试完成&由3?.-=D.G 6读出测试结果并保存%随后判断测试次数是否以达到目标&若已达到则统计所有测试结果并输出&反之则再次启动测试%图4!读写测试流程图F D C !图形界面程序设计图形界面程序在,B E =4框架下进行开发%,B E =4衍生自@cc 的E ?库&具有能够跨平台兼容多种环境&功能强大&开源免费等优势%图形界面程序通过创建子进程的方式运行命令行程序&并在命令行程序中打开@A 模式的^;O L S D %点击程序中的功能按钮即可执行对应的^;O L S D 指令或者@A 脚本%图形界面程序的界面如图&所示&主要功能包括)%"人机交互)操作人员可以根据测试需求&在图形界面程序中调整测试参数*执行测试任务和读取测试信息%""器件控制)程序可以通过3?.-接口完成连接+,Z -.器件*状态检测*下载比特流*控制调试核等操作%$"统计结果)程序自动重复并统计测试结果&在测试循环完成后输出测试统计报告并保存为日志文件%图&!应用程序界面程序界面主要分为(个区域%区域%主要包括连接器件以及下载比特流文件功能%区域"包括初始化测试的参数设置与执行%区域$包括读写测试的参数设置与执行%区域(是一个文本框&输出文本信息%首先需要在区域%中完成器件的连接与比特流文件的下载%程序启动后将自动运行^;O L S D 子进程&并在文本框处提示-^;O L S D 启动中.%待^;O L S D 启动完成&文本框处打印-启动完成.信息&-连接器件.按钮变为可用%点击-连接器件.&^;O L S D 进程将打开硬件管理器&并尝试连接+,-.器件%如果未检测到+,-.器件&则打印-连接失败.信息&如果检测到+,-.器件&则在-当前器件.标签处显示检测到的器件型号*连接状态与编程状态%-器件型号.下拉选项和-比特流选择.下拉选项会自动筛选出符合当前器件的选项%用户需要在这一步自行选择适用的比特流文件并点击-下载比特流.按钮%等待文本框提示-比特流下载完成.&即可在区域"或区域$中执行后续测试%!投稿网址 Y Y Y!7T 78Q B:\!8D U Copyright ©博看网. All Rights Reserved.!!计算机测量与控制!第$%""""""""""""""""""""""""""""""""""""""""""""""""""""卷#'"!#区域"中&初始化时间限制即是?@A 脚本中判定初始化是否成功的界限&初始化测试次数是本次执行初始化测试的总测试数%执行测试后&测试结果打印在文本框中&并在完成一轮测试后生成日志文件%日志文件内容如图'所示&日志内容包括)测试日期*测试项目名*测试序号*初始化测试结果以及完成本轮次的测试后的统计数据%图'!初始化测试结果输出区域$中&软件将根据设置的起始地址*结束地址以及.G 6总线突发数量等参数&计算出对应的配置参数&并写入到26-?P T =P V 的配置寄存器中%可以勾选下方的测试>L ==P V 9复选框来选定本次测试需要测试的>L ==P V 9%勾选了自定义>L ==P V 9的情况下需要将自定义的>L ==P V 9填入后方的文本框内%设置好>L ==P V 9测试次数后点击-执行读写测试.按钮&软件将依次执行每个选定>L ==P V 9的测试%测试结果将打印在下方的文本框中&并在一轮测试完成后将生成日志文件%日志文件内容如图*所示&输出的内容包括)测试日期*测试项目名*测试序号*读写平均带宽*错误数据数量以及本轮次的测试的统计数据%图*!读写测试结果输出如果在读写测试过程中发生了读数据与预期数据不符的情况&6A .将抓取错误发生时.G 6总线上的信号并保存到硬盘上%在需要分析信号时&可以在^;O L S D 程序中使用V P L S ,C Y ,;Q L ,S L =L 命令读取数据&并用S ;T >Q L B ,CY ,;Q L ,S L =L 命令绘制信号波形图%如图)所示&图中标记的部分P V V D V ,W Q L J 信号为-%.&表示该位置出现了读写错误%图)!数据错误发生时的信号波形图同时]0.2接口写使能&将错误数据对应的地址信息写入]0.2中%程序可以通过3?.-=D.G 6访问26-中这些地址并读回数据&从而生成错误数据列表%如图%#所示&L S S V 是错误数据对应的地址%P [,S L =L 是期望数据&也就是读写功能正常情况下应读回的数据%V S ,S L =L 则是实际读回的数据%操作人员可以根据该报告分析可能存在的问题%图%#!错误数据记录文件G !实验结果与分析G D B !)E 19'+&'(功能验证使用^;O L S D 软件的仿真功能对26-?P T =P V 进行功能验证%配置.G 6^P V ;W ;8L =;D 96,为从模式&连接至26-?P T =P V 的.G 6U L T =P V 接口&在仿真中关注.G 6总线的读写事务以及相关信号的变化%在单次读写测试中&.G 6总线上先后发生的写事务与读事务%为了缩短仿真时间&测试的地址范围设置为#[#!#[&$+++%在通过控制接口启动测试后&26-?P T =P V 先对整个测试地址范围顺序写入一次>L ==P V 9&然后进入读取数据状态&并将读取的数据与预期数据进行校验%完成整个过程后&完成中断信号将被置-%.%在.G 6总线的写通道中&写地址L Y L S S V 在每次握手写!投稿网址 Y Y Y!7T 78Q B:\!8D U Copyright ©博看网. All Rights Reserved.第%#期谢树平&等)基于+,-.的//01/0.2""""""""""""""""""""""""""""""""""""""""""""""""""""测试平台设计#'$!#入后增加突发传输所占的地址大小&实现对测试地址范围内所有地址的写入%当设置的>L ==P V 9是递增数时&写数据Y S L =L 每写入一次数据后递增%%写突发结束计数器Y Q L T =,8D I 9=P V 在Y Q L T =信号置位时计数加一&用于控制数据的突发传输%Y V ;=P ,=;U P V 信号是写状态计时器&从测试进入写>L ==P V 9过程开始计时&直到进入读数据状态停止计时%在.G 6总线的读通道中&读地址L V L S S V 在每次握手写入后增加突发传输所占的地址大小&实现对测试地址范围内所有地址的读取%读数据V S L =L 是读回的数据%当设置的>L ==P V 9是递增数&预期数据P [>P 8=P S ,S L =L 每写入一次数据后发生递增%错误标志信号P V V D V ,W Q L J 的特征是在预期数据与读取数据V S L =L 不同时置%&由于读取过程中预期数据与读取数据相符&所以错误标志保持为#%读突发结束计数器V Q L T =,8D 9=P V 在每次V Q L T =信号置位时计数加一&用于控制状态机的转换%V P L S ,=;U P V 是读状态计时器&从状态机进入读数据状态开始计时&直到进入测试完成状态停止计时%然后人为插入错误数据验证数据校验模块功能是否正常%插入错误数据的方式如下)选择>L ==P V 9为递增数&并且当写入数据为.4时&将其替换为4.%在读数据时&读回数据V S L =L 为4.&与其对应的预期数据.4不符合&所以错误标志信号P V V D V ,W Q L J 置-%.&且错误计数器加一%证明数据校验功能正常%经过上述功能验证&可以确认测试6,核26-?P T =P V 逻辑功能符合预期&可以将其用于//01/0.2的测试%G D C !/012资源使用对比+,-.测试平台工程设计完毕后&在软件^;O L Z S D "#"#R "默认设置下执行生成比特文件%作为对比&打开26-的示例工程并生成比特文件%26-的示例工程常作为//01/0.2的测试调试工程使用%对比测试平台工程与示例工程的资源使用数量&结果如表"所示%测试平台工程资源使用量对比示例工程显著减少%其中作为+,-.主要资源的查找表!A b ?&Q D D :Z I >Z =L X Q P "的使用减少了$$R ""F &触发器!++&+Q ;>+Q D >"的使用减少了$*R (#F %表"!+,-.资源使用数量对比+,-.资源名测试平台工程示例工程A b ?%'(%4"&#*%A b ?0.2$)"&("%#++"#$'%$$#'#]0.2$)(*R 4G D F !/012板卡测试测试板卡使用的+,-.产自G ;Q ;9[公司&型号为[8':$"4=W W J )##Z "&使用的//01/0.2型号为2?*3?+"Z 4&&(M `Z %-&2%%(R $R %!测试流程//01/0.2测试基本流程如下)%"设计+,-.工程&生成比特流文件与Q =[文件!调试核信息文件"&并拷贝到图形界面程序目录下的X ;=T =V P L U 文件夹中%""使用仿真器将+,-.板卡连接至,@上位机并上电%打开图形界面程序&待启动完成后点击-连接器件.&等待连接完成&标签栏处出现+,-.器件名称与状态%$"选择与+,-.对应的比特流&点击-下载比特流.&等待比特流下载完成&标签栏处显示-已连接&已编程.%("在文本框中设置测试参数&根据测试需求执行相应的测试%在测试完成后&将在程序目录下生成测试结果报告%(R $R "!初始化测试根据赛灵思官方手册提供的数据&设置初始化时间限制为%###U T %执行%##次初始化测试%初始化测试结果如表$所示%在%##次初始化测试中&//01/0.2的初始化均在%###U T 以内完成%结果说明&测试板卡中的//01/0.2能够正常初始化%表$!初始化测试结果总初始化次数超时次数成功次数%###%##(R $R $!读写测试设置读写测试起始地址为#&结束地址为#['++++Z +++&即测试整个"-]的地址空间%设置.G 6总线突发数为&(&测试,L ==P V 9栏目中勾选递增数##*++*44*..&每个>L ==P V 9测试%##次%数据读写测试测试结果如表(所示%写平均带宽和读平均带宽分别达到了理论带宽的*$R )F 和**R %F &且没有出现过读写数据校验错误%证明了在测试环境下//01/0.2读写数据功能正常&带宽性能良好%表(!数据读写测试结果-]+T ,L ==P V 9写平均带宽读平均带宽理论带宽校验错误数递增数)R ))'%#R 4#"%%R )"%###)R ))'%#R 4#"%%R )"%#++)R ))'%#R 4#"%%R )"%#44)R ))'%#R 4#"%%R )"%#..)R ))'%#R 4#"%%R )"%#平均值)R ))'%#R 4#"%%R )"%#(R $R (!测试时长对比表4是两类测试的测试平均时长对比%对于初始化测试&示例工程的测试方法如下)操作人员使用^;O L S D 软件的硬件管理器控制^65输出的复位信号失效&之后通过^65观察26-输出的初始化完成信号是否置-%.&据此判断26-是否完成了初始化%在此过程中&操作人员需要不断重复上述过程%一方面存在操作人员操作或记录失误的可能性$另一方面手动操作效率低下&且无法准确判断初始化所用时长%对于读写测试&选用测试##*++*44*..与递增数物种>L ==P V 9的情况进行对比%示例工程的测试方!投稿网址 Y Y Y!7T 78Q B:\!8D U Copyright ©博看网. All Rights Reserved.。
介绍下用MIG生成的DDR2 SDRAM控制器
MIG2.0是Xilinx内嵌在ISE中用来生成各种IP核的软件工具,可以用它来直接生成DDR2控制器设计模块,模块包含可自由修改的HDL源代码和约束文件。
用户可以在MIG 的GUI图形界面根据所选的存储器件选择对应模板、总线宽度和速度级别,并设置CAS延迟、突发长度、引脚分配等关键参数。
如果所选器件与MIG所列模板不相符,可在代码生成后灵活修改这些代码。
DDR2 SDRAM控制器参考设计主要包含四个模块:Infrastructure module(基础模块)、Data_Path module(数据通道模块)、Controller module(控制模块)和IOBs module(输入输出接口模块)。
Infrastructure module产生控制器工作的时钟和复位信号,时钟信号由内部的DCM(时钟管理单元)对外部输入的时钟倍频产生,模块还包含一个延迟校准监视器,用来校准读数据选通脉冲(DQS)对读数据(DQ)的延迟,使读数据选通脉冲边沿正确对齐DQ有效窗口的中间位置,以便正确锁存读数据。
Data_Path module负责传输数据,在写操作时将写数据传送给DDR2 SDRAM;在读操作时将DDR2发送过来的数据寄存并同步到系统时钟去。
Controller module负责DDR2 SDRAM的上电初始化,在初始化后接收用户的指令并将其译码产生读写和相关的控制信号,此外控制器也为其他模块提供控制信号以辅助这些模块完成其功能。
控制器所有的输入/输出信号都在IOBs module中被接收或者发送,而所有地址和控制信号在IOB中都用触发器打一拍后再被送出,以最大限度的满足DDR2 SDRAM的建立和保持时间。
用户接口信号系统上电后,用户发出初始化命令,控制器负责对DDR2进行寄存器的配置及其他初始化操作,待初始化完成后,控制器置init_val为‘1’,然后用户就可以继续对DDR2 SDRAM 进行读写等操作。
基于FPGA的SDRAM控制器的设计与实现
基于FPGA的SDRAM控制器的设计与实现1.设计SDRAM控制器的功能:SDRAM控制器的主要功能是控制SDRAM的读写操作,包括地址、数据和控制信号的生成以及时序管理。
其次,还需要实现初始化、写入数据、读取数据等相关功能。
2.确定SDRAM的总线类型:SDRAM控制器需要根据不同的SDRAM接口类型进行设计,例如,DDR、SDR、LPDDR等。
不同的接口类型有不同的时序和数据传输方式,因此根据使用的SDRAM类型确定总线宽度、传输速率和时序约束等。
3.确定FPGA型号和资源:根据SDRAM控制器的设计规模和FPGA的资源情况选择合适的FPGA型号。
资源包括逻辑门、存储器单元、DSP片等,选择合适的型号可以满足设计要求并提高系统性能。
4.设计时序控制电路:根据SDRAM的时序要求,设计时序控制电路来实现SDRAM读写操作的同步和序列控制。
时序控制电路通常包括时钟分频模块、时钟同步模块、读写状态机和地址计数器等功能模块。
5.实现控制信号与FPGA引脚的映射:将SDRAM控制器内部产生的控制信号映射到FPGA引脚上,以便与SDRAM进行数据的传输和时钟同步。
通过FPGA引脚的选择和约束来满足SDRAM接口要求。
6.进行功能仿真和时序分析:在FPGA设计工具中进行功能仿真和时序分析,验证SDRAM控制器的设计是否满足功能要求,并检查时序约束是否满足。
7.进行硬件布局和布线:根据FPGA设计工具生成的后端文件,进行硬件布局和布线,将逻辑电路映射到FPGA芯片上,并考虑时序约束和引脚约束等因素,以满足设计要求。
8.进行SDRAM控制器的验证和调试:通过连接SDRAM和FPGA开发板,验证SDRAM控制器的读写操作是否正常,检查数据的正确性和时序的准确性。
9.进行性能优化和资源利用:根据实际需求,考虑对SDRAM控制器进行性能优化,例如增加缓存、提高数据通路宽度等。
同时,优化资源利用,减小逻辑门延迟和功耗等。
Xilinx DDR2 IP核控制器设计
T O N4 2 中图分类号
De n o ln sg fXii x DDR2 I n r l r i P Co to l e
ZOU a y n YU n Li n i g Fe g
( h o fElcrc la d I o ma in En ie rng, u n I siu eo c noo y,W u a 4 0 0 ) Sc o lo etia n nfr to gn e i W ha n tt t fTe h lg hn 3 2 5
Ab ta t Thsp p rprs n saDDR2 Co tolrI or fFP src i a e e e t n r l P c eo GA mp e e t t n whc s rfin l n uc l p l dt h r d e i lm n ai ih u e re d ya d q ik ya pi ot ep o ~ o e
总第 2 6期 1
2 1 第 6期 0 2年
舰 船 电 子 工 程
S i e to i n i e r g h p Elc r n c E g n e i n
Vo . 2 No 6 13 .
1 39
Xi n l xDDR2I i P核 控 制 器 设 计
邹连英 余 峰
更快 。 3 ( D( f hpD ie) 线 驱 动 调 整 : 过 调 整 输 出 ) 0fC i r r离 _ v 通
员会通过 F GA直接对 D R P D 2进 行控制 , 时他们 必须 对 这
D R D 2的工 作 原 理 有 深 入 的 了解 , 这 样 就 很 可 能 加 大 了 但 研 发 周 期 , 接影 响 了 公 司 的 经 济 效 益 。因 此 设 计 一 款 开 直 发 人 员 完 全 不 需 要 了解 D 2工 作 原 理 的 D R2 制 器 I DR D 控 P
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Xilinx的DDR2 SDRAM存储控制器的用户接
口设计与仿真
摘要:使用功能强大的FPGA来实现一种DDR2 SDRAM存储器的用户接口。
该用户接口是基于XILINX公司出产的DDR2 SDRAM的存储控制器,由于该公司出产的这种存储控制器具有很高的效率,使用也很广泛,可知本设计具有很大的使用前景。
本设计通过采用多路高速率数据读写操作仿真验证,可知其完全可以满足时序要求,由综合结果可知其使用逻辑资源很少,运行速率很高,基本可以满足所有设计需要。
现如今,随着电子技术和通信技术的飞速发展,电路设计对存储器的要求也越来越高,其主要体现在对存储器的容量和存储操作速度两个方面。
鉴于此,JEDEC定义了DDR2 SDRAM技术标准,其以低能耗、低发热量、高密度以及高频率成为了现代存储技术的核心器件。
DDR2自身的工作频率可以达到667MHz,几乎可以满足所有电路设计的要求。
而这也使得整个电路设计的频率瓶颈出现宰了用户设计部分与DDR2存储器之间的逻辑上,主要是因为DDR2本身的结构特性是的DDR2的操作时许很复杂苛刻。
而这之间的部分又主要分为DDR2存储控制器和用户接口部分。
现如今已经有了很多的厂家在生产DDR2存储控制器,其中以Xilinx公司设计的ddr2存储控制器效率最高使用最为广泛,该存储控制器的单独操作频率非常高,完全不会影响DDR2存储器的操作,因此这又将整个电路系统的频率瓶颈缩小到用户接口部分。
用户接口的设计有很多种方案,而FPGA以其高速度、丰富的片。