CN117435550A - 一种基于fpga的语言编写控制器双通道缓存方法及系统 - Google Patents
一种基于fpga的语言编写控制器双通道缓存方法及系统 Download PDFInfo
- Publication number
- CN117435550A CN117435550A CN202311405845.4A CN202311405845A CN117435550A CN 117435550 A CN117435550 A CN 117435550A CN 202311405845 A CN202311405845 A CN 202311405845A CN 117435550 A CN117435550 A CN 117435550A
- Authority
- CN
- China
- Prior art keywords
- write
- core
- data
- read
- app
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000013461 design Methods 0.000 claims abstract description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 9
- 238000012772 sequence design Methods 0.000 claims abstract description 6
- 238000004088 simulation Methods 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 11
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 230000003993 interaction Effects 0.000 claims description 4
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 230000009977 dual effect Effects 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims 2
- 238000012544 monitoring process Methods 0.000 abstract description 4
- 238000010438 heat treatment Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 13
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明属于视频监控系统高速缓存传输技术领域,公开了一种基于FPGA的语言编写控制器双通道缓存方法及系统。该方法通过IP核的写时序设计、IP核的读时序设计、读写仲裁模块设计、IP核外围添加异步FIFO模块接口设计、用户读模块及用户写模块设计,将基于AXI总线的DDR3SDRAM IP核接口封装为通用的FIFO接口,控制在芯片内部的读写地址分配,完成大数据量视频缓存与传输。本发明引入DDR3SDRAM工作频率可以达到800MHz以上,并且具有发热量小以及功耗低等特点,本发明还搭建基于第三代DDR3SDRAM存储芯片的读写缓存控制器,解决大数据量视频缓存与传输的问题。
Description
技术领域
本发明属于视频监控系统高速缓存传输技术领域,尤其涉及一种基于FPGA的语言编写控制器双通道缓存方法及系统。
背景技术
目前现有技术都研制出许多视频监控系统,都有各自的优点,也都存在一定的缺点。通用的技术方案主要包括以下几种:摄像头+视频采集卡+PC机的设计方案,摄像头+ARM+SRAM/SDRAM+VGA的设计方案,摄像头+DSP+SRAM/SDRAM+VGA的视频采集方案,摄像头+ASIC+SDRAM+VGA设计方案,摄像头+FPGA+SDRAM+VGA的设计方案;
对于缓存模块,目前大多数系统还在使用的SDRAM和DDR2 SDRAM,导致缓存速度受限,吞吐量无法匹配FPGA的处理速度,影响整体的传输带宽。
直接用Verilog HDL硬件描述语言编写DDR3 SDRAM控制器的底层电路驱动非常困难,现有技术FPGA内部集成IP核来控制此类SDRAM芯片,熟悉FPGA内部相关IP核的使用方法可减少开发周期和成本。DDR3 SDRAM控制器IP核主要包括两组接口,其中一组是DDR端口,可直接与DDR3 SDRAM芯片端口引脚绑定,另一组是基于AXI总线的APP端口,APP端口可由用户端操作使用,设计者可根据APP端口的读写时序设计驱动电路控制IP核实现读写操作。但是直接控制基于AXI总线的APP端口操作复杂且效率低,无法发挥DDR3 SDRAM真正的读写速度。另外当有多个节点的数据同时向DDR4缓存数据时,需要仲裁,仲裁期间容易造成数据的丢失。
发明内容
为克服相关技术中存在的问题,本发明公开实施例提供了一种基于FPGA的语言编写控制器双通道缓存方法及系统。
所述技术方案如下:一种基于FPGA的语言编写控制器双通道缓存方法,该方法通过IP核的写时序设计、IP核的读时序设计、读写仲裁模块设计、IP核外围添加异步FIFO模块接口设计、用户读模块及用户写模块设计,将基于AXI总线的DDR3 SDRAM IP核接口封装为通用的FIFO接口,控制在芯片内部的读写地址分配,完成大数据量视频缓存与传输;具体包括以下步骤:
S1,调取DDR3 SDRAM IP控制器,进行核内部参数配置、DDR3 SDRAM IP核的初始化,以及将文件夹下的仿真模型例化到测试文件中,获取Init_calib_complete状态标识位;
S2,DDR3 SDRAM IP核初始化成功后,获取IP核的写命令和写数据的时序波形;
S3,基于获取的写命令和写数据的时序波形,获取读命令和读数据的时序波形;
S4,基于步骤S2-步骤S3获取的波形,进行读写控制模块仲裁判断;
S5,根据获取的仲裁判断数据在外围添加IP核外部添加异步FIFO接口;
S6,根据添加的IP核外部添加异步FIFO接口,在用户端进行DDR3 SDRAM写控制;
S7,根据获取的DDR3 SDRAM写控制数据,在用户端进行DDR3 SDRAM读控制,读出大数据量视频数据。
进一步的,在步骤S1中,配置DDR3 SDRAM IP核内部参数包括DDR3的工作时钟频率、芯片类型、电平标准、数据总线位宽、输入时钟频率、输入参考时钟、控制器的突发类型以及内部终端电阻。
进一步的,在步骤S1中,进行DDR3 SDRAM IP核的初始化包括:调取IP核后,工程目录下生成一个.\project_1.srcs\sources_1\ip的路径,该路径包括docs文件夹、example_design文件夹以及user_design文件夹;
所述DDR3 SDRAM IP控制器的端口的一部分以DDR3为首命名,绑定到外部管脚。
进一步的,在步骤S1中,将文件夹下的仿真模型例化到测试文件中,获取Init_calib_complete状态标识位包括:在仿真调试过程中,将顶层文件内的Init_calib_complete信号添加到观察窗口中,仿真运行后,检测Init_calib_complete信号是否由低变高,若变成高电平,则DDR3 SDRAM控制器IP核初始化成功,若为低电平则需要检测测试文件内实例化模块之间的连线是否正确。
在步骤S2中,通过写命令和写数据的时序波形进行写时序控制,使写命令时序波形中app_en与app_rdy同时有效时,app_cmd被IP核接收;
以及使写数据时序波形中app_wdf_wren与app_wdf_rdy同时有效,app_wdf_data被IP核接收;
在获取IP核的写命令和写数据的时序波形后,app_wdf_end信号作为当前写突发操作的最后一个数据标志位,在调取IP核后,通过选择DDR3的物理层与用户层存在速度匹配关系,判断app_wdf_end与使能信号时序是否同步。
在步骤S3中,获取读命令和读数据的时序波形的条件需满足:
app_en与app_rdy同时有效时,app_cmd与app_addr的数值被IP核接收。
进一步的,在步骤S4中,进行读写控制模块仲裁判断包括:
DDR3控制器IP核的读控制模块与写控制模块读写命令共用一组总线端口,IP核的读命令总线与写命令总线分时使用,进行仲裁判断;将写控制模块和读控制模块中的app_cmd信号分时传输给IP核的app_cmd端口;
对于app_addr信号线,将写控制模块与读控制模块中的地址总线进行按位或操作,其结果输入到IP核的地址端口;同理,写控制模块与读控制模块中的app_en也进行或操作,作为IP核app_en的端口输入值;
完成读控制和写控制模块与IP核的交互后,当读写启动信号同时产生时,则app_addr端口与app_en端口输入信号同时有效,利用读写仲裁器控制产生读写信号的先后顺序。
在步骤S5中,通过添加外围存储器的方式将暂时无法执行的命令和数据进行缓存;
在步骤S6中,通过用户端写控制器根据FIFO缓存模块接收数据的时序实现对应的逻辑功能以及写地址分配,将写入的数据缓存到数据FIFO中,在接收到命令后,获取正确的突发长度数据并进行传输。
在步骤S7中,通过用户端读控制器预留两类接口,其中一类为命令FIFO端口,一类为数据FIFO端口,将相应的信息发送到命令缓存FIFO中;FIFO IP核检测到内部有命令时根据命令信息发送突发长度的数据到读数据FIFO;当检测到数据FIFO达到了所需要的数据量,就读出相应的数据。
本发明的另一目的在于提供一种基于FPGA的语言编写控制器双通道缓存系统,该系统包括:
写命令和写数据的时序波形获取模块,用于S2,DDR3 SDRAM IP核初始化成功后,获取IP核的写命令和写数据的时序波形;
读命令和读数据的时序波形获取模块,用于基于获取的写命令和写数据的时序波形,获取读命令和读数据的时序波形;
仲裁判断模块,用于S4,基于获取的波形,进行读写控制模块仲裁判断;
IP核外部添加异步FIFO接口添加模块,用于根据获取的仲裁判断数据在外围添加IP核外部添加异步FIFO接口;
写控制模块,用于根据添加的IP核外部添加异步FIFO接口,在用户端进行DDR3SDRAM写控制;
读控制模块,用于根据获取的DDR3 SDRAM写控制数据,在用户端进行DDR3SDRAM读控制,读出大数据量视频数据。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:根据视频监控系统现阶段存在的不足,本发明引入DDR3 SDRAM代替DDR SDRAM与DDR2SDRAM,与DDR2 SDRAM相比,其工作频率可以达到800MHz以上,并且具有发热量小以及功耗低等特点,并且提出一种基于FPGA的DDR3双通道缓存设计方法,搭建基于第三代DDR3 SDRAM存储芯片的读写缓存控制器,解决大数据量视频缓存与传输的问题。
本发明通过IP核的写时序设计、IP核的读时序设计、读写仲裁模块设计、IP核外围添加异步FIFO模块接口设计、用户读模块及用户写模块设计。将基于AXI总线的DDR3 SDRAMIP核接口封装为通用的FIFO接口,便于控制在芯片内部的读写地址分配,提高了DDR3SDRAM IP核的访问效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理;
图1是本发明实施例提供的基于FPGA的语言编写控制器双通道缓存方法及系统图;
图2是本发明实施例提供的IP核的框图与连线图;
图3是本发明实施例提供的IP写命令时序设计波形图;
图4是本发明实施例提供的IP写数据时序设计波形图;
图5是本发明实施例提供的速度匹配关系4:1时序对应关系图;
图6是本发明实施例提供的速度匹配关系2:1时序对应关系图;
图7是本发明实施例提供的时序波形设计图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。
本发明实施例提供的基于FPGA的语言编写控制器双通道缓存方法及系统创新点在于:
本发明通过IP核的写时序设计、IP核的读时序设计、读写仲裁模块设计、IP核外围添加异步FIFO模块接口设计、用户读模块及用户写模块设计。将基于AXI总线的DDR3 SDRAMIP核接口封装为通用的FIFO接口,便于控制在芯片内部的读写地址分配,提高了DDR3SDRAM IP核的访问效率。
实施例1,图1是本发明实施例提供的基于FPGA的语言编写控制器双通道缓存方法包括:
S1,调取DDR3 SDRAM IP控制器,进行核内部参数配置、DDR3 SDRAM IP核的初始化,以及将文件夹下的仿真模型例化到测试文件中,获取Init_calib_complete状态标识位;
S2,DDR3 SDRAM IP核初始化成功后,获取IP核的写命令和写数据的时序波形;
S3,基于获取的写命令和写数据的时序波形,获取读命令和读数据的时序波形;
S4,基于步骤S2-步骤S3获取的波形,进行读写控制模块仲裁判断;
S5,根据获取的仲裁判断数据在外围添加IP核外部添加异步FIFO接口;
S6,根据添加的IP核外部添加异步FIFO接口,在用户端进行DDR3 SDRAM写控制;
S7,根据获取的DDR3 SDRAM写控制数据,在用户端进行DDR3 SDRAM读控制,读出大数据量视频数据。
在本发明实施例步骤S1中,调取DDR3 SDRAM IP控制器;包括:
S1.1,配置DDR3 SDRAM IP核内部参数,包括DDR3的工作时钟频率、芯片类型、电平标准、数据总线位宽、输入时钟频率、输入参考时钟、控制器的突发类型以及内部终端电阻等;
S1.2,进行DDR3 SDRAM IP核的初始化,调取IP核后,工程目录下生成一个.\project_1.srcs\sources_1\ip的路径,该路径下存在三个子文件夹,其中docs文件夹是与该IP核相关的文档介绍文件以及操作使用文件;example_design文件夹是Xilinx官方提供的IP核参考示例文件以及代码文件;user_design文件夹包括可综合示例文件以及约束文件等。在constraints子文件夹内部包含IP核的约束文件,rtl文件夹内部包含IP核的可综合示例文件。在rtl文件夹下找到与该IP核名称相同的HDL文件,该DDR3 SDRAM IP控制器的端口的一部分是以DDR3为首命名,将此类IO接口绑定到外部管脚。
S1.3,将文件夹下的仿真模型例化到测试文件中。获取Init_calib_complete状态标识位。在仿真调试过程中,将顶层文件内的Init_calib_complete信号添加到观察窗口中。仿真运行一段时间后,检测Init_calib_complete信号是否由低变高,若变成高电平,则DDR3 SDRAM控制器IP核初始化成功,若为低电平则需要检测测试文件内实例化模块之间的连线是否正确。
在本发明实施例步骤S2中,DDR3 SDRAM IP核初始化成功后,则进行写命令和写数据的时序波形设计,DDR3 SDRAM IP核分为两类总线接口,一组可直接与DDR3 SDRAM芯片管脚相连,另一组端口是基于AXI总线的写端口与读端口,此类读写端口需要设计者直接进行读写控制,IP核的框图与连线如图2所示。中间部分为初始化成功的IP核,Logic为用户控制端逻辑驱动,DDR3 SDRAM为缓存芯片。IP核与缓存芯片之间的总线端口以DDR为首命名,此类总线端口与缓存芯片管脚直接相连无需进行控制,Logic控制端与IP核之间的总线以APP为首命名,此类端口是需要设计和控制的逻辑接口部分。
在本发明实施例步骤S3中,进行读命令和读数据的时序波形设计,DDR3SDRAM IP核读写命令总线复用,app_cmd=3`b001表示读命令,app_cmd=3`b000表示写命令,需要app_en与app_rdy同时有效时(即同时为高电平时),app_cmd与app_addr的数值才能够被IP核接收。
在本发明实施例步骤S4中,DDR3控制器IP核的读控制模块与写控制模块读写命令共用一组总线端口,因此IP核的读命令总线与写命令总线要分时使用,进行仲裁判断。可以将写控制模块和读控制模块中的app_cmd信号分时传输给IP核的app_cmd端口。
对于app_addr信号线,需将写控制模块与读控制模块中的地址总线进行按位或操作,其结果输入到IP核的地址端口。同理,写控制模块与读控制模块中的app_en也可进行或操作,作为IP核app_en的端口输入值。
完成读控制和写控制模块与IP核的交互后,当读写启动信号同时产生时,则app_addr端口与app_en端口输入信号同时有效,上述的按位或的解决方案将会失去作用,因此应设计读写仲裁器以避免读写启动信号同时产生,通过读写仲裁器控制产生读写信号的先后顺序。
在本发明实施例步骤S5中,进行IP核外部添加异步FIFO接口设计与实现,在此之前,已经实现了IP核的读控制模块,写控制模块以及读写仲裁模块,但是无论读或写都存在的一个弊端,每次都只能发送一次命令和一次突发数据,在读或写的过程中,如果再一次收到读写命令,上述设计的控制器则无法执行。为了解决这个问题,可以通过添加外围存储器的方式将暂时无法执行的命令和数据进行缓存,当前操作结束后,从所添加的外围存储器内取下一次需要执行的数据和命令,这样的设计方法可以防止命令和数据的丢失。
在本发明实施例步骤S6中,用户端实现DDR3 SDRAM写控制,在完成外围添加多个异步FIFO缓存模块的DDR3 SDRAM控制器后,下一步就可通过设计用户端读写控制模块来操作FIFO的读写命令端口及读写数据端口。用户端写控制器的主要功能需根据FIFO缓存模块接收数据的时序实现对应的逻辑功能以及写地址分配。FIFO缓存模块写端口主要包含两类,其中一类接口可以缓存突发数据,另一类接口可以缓存地址、突发长度、读写命令等。为了避免数据写入DDR3SDRAM出现数据量与突发长度不匹配的情况,可以将需要写入的数据缓存到数据FIFO中,在接收到命令后,则有正确的突发长度数据进行传输。
在本发明实施例步骤S7中,用户端实现DDR3 SDRAM读控制,完成用户端写控制模块,则可进行用户读控制模块的设计。用户端读控制器框架减少了一组数据FIFO端口,其实FIFO IP核缓存读端口也预留了两类接口,其中一类为命令FIFO端口,一类为数据FIFO端口,需要将相应的信息发送到命令缓存FIFO中。FIFO IP核检测到内部有命令时根据命令信息发送突发长度的数据到读数据FIFO。当检测到数据FIFO达到了所需要的数据量,就可读出相应的数据。
通过上述实施例可知,本发明引入DDR3 SDRAM代替DDR SDRAM与DDR2SDRAM,与DDR2 SDRAM相比,其工作频率可以达到800MHz以上,并且具有发热量小以及功耗低等特点,并且提出一种基于FPGA的DDR3双通道缓存设计方法,搭建基于第三代DDR3 SDRAM存储芯片的读写缓存控制器,解决大数据量视频缓存与传输的问题。
另外,本发明通过IP核的写时序设计、IP核的读时序设计、读写仲裁模块设计、IP核外围添加异步FIFO模块接口设计、用户读模块及用户写模块设计。将基于AXI总线的DDR3SDRAM IP核接口封装为通用的FIFO接口,便于控制在芯片内部的读写地址分配,提高了DDR3 SDRAM IP核的访问效率。
实施例2,作为本发明另一种实施方式,以Vivado 2018.3开发环境为例,进一步说明本发明实施例提供的基于FPGA的语言编写控制器双通道缓存方法,包括:
首先在Vivado 2018.3开发环境中调取DDR3 SDRAM IP控制器;
进一步的配置其内部参数,如DDR3的工作时钟频率、芯片类型、电平标准、数据总线位宽、输入时钟频率、输入参考时钟、控制器的突发类型以及内部终端电阻等;
本发明IP内参数配置要求如表1所示。
表1IP核配置参数统计表
完成DDR3 SDRAM IP核的初始化,调取IP核后,工程目录下生成一个.\project_1.srcs\sources_1\ip的路径,该路径下存在三个子文件夹,其中docs文件夹是与该IP核相关的文档介绍文件以及操作使用文件;example_design文件夹是Xilinx官方提供的IP核参考示例文件以及代码文件;user_design文件夹包括可综合示例文件以及约束文件等。在constraints子文件夹内部包含IP核的约束文件,rtl文件夹内部包含IP核的可综合示例文件。在rtl文件夹下找到与该IP核名称相同的HDL文件,该模块的端口的一部分是以DDR3为首命名,将此类IO接口绑定到外部管脚。
将文件夹下的仿真模型例化到测试文件中。
观察Init_calib_complete状态标识位。在仿真调试过程中,将顶层文件内的Init_calib_complete信号添加到观察窗口中。仿真运行一段时间后,查看Init_calib_complete信号是否由低变高,若变成高电平,则DDR3 SDRAM控制器IP核初始化成功,若为低电平则需要查看测试文件内实例化模块之间的连线是否正确。
初始化成功后,则进行写命令和写数据的时序波形设计,DDR3 SDRAM IP核分为两类总线接口,一组可直接与DDR3 SDRAM芯片管脚相连,另一组端口是基于AXI总线的写端口与读端口,此类读写端口需要设计者直接进行读写控制。IP核与缓存芯片之间的总线端口以DDR为首命名,此类总线端口与缓存芯片管脚直接相连无需进行控制,Logic控制端与IP核之间的总线以APP为首命名,此类端口是需要设计和控制的逻辑接口部分。
为了实现写时序控制,可设计如图3所示IP写命令时序设计波形图(命令总线波形图)与图4所示的IP写数据时序设计波形图(数据总线波形图),如图3可以看出当app_en与app_rdy同时有效时,app_cmd才有效,因此1、2处的的指令不被IP核接收,只有3、4处的app_cmd才可以被IP核接收。
相同的情况,如图4所示,当app_wdf_wren与app_wdf_rdy同时有效时,app_wdf_data才有效,否则对于IP核端是无效的数据。在设计完成写命令与写数据时序后,需要对app_wdf_end信号做进一步的阐述,该信号表示当前写突发操作的最后一个数据标志位。由于在DDR3 IP核控制器中只存在八突发的形式,所以每一次的写突发数据为128bit,在调取IP核后,DDR3的物理层与用户层存在两种速度匹配关系,即为4:1和2:1。
当选择的速度匹配关系为4:1时,对于16bit数据位宽的DDR3芯片而言app_wdf_data为128bit,发送一个数据就为八突发的最后一个数据,此时app_wdf_end与使能信号时序同步,如图5速度匹配关系4:1时序对应关系所示。当选择的速度匹配关系为2:1时,对于16bit数据位宽的DDR3芯片而言,app_wdf_data为64bit,此时app_wdf_end与使能信号时序不同步,如图6速度匹配关系2:1时序对应关系所示.
进一步的,进行读命令和读数据的时序波形设计,DDR3 SDRAM IP核读写命令总线复用,app_cmd=3`b001表示读命令,app_cmd=3`b000表示写命令,需要app_en与app_rdy同时有效时(即同时为高电平时),app_cmd与app_addr的数值才能够被IP核接收。当发送完成读命令以及读地址命令信息后,读数据在一段时间后出现,另外根据app_rd_data_vaild的状态变化可以得知此时读出的数据是否有效,具体的时序波形设计如图7所示.
进行读写控制模块仲裁机制实现。
DDR3控制器IP核的读控制模块与写控制模块读写命令共用一组总线端口,因此IP核的读命令总线与写命令总线要分时使用,进行仲裁判断。可以将写控制模块和读控制模块中的app_cmd信号分时传输给IP核的app_cmd端口。
对于app_addr信号线,需将写控制模块与读控制模块中的地址总线进行按位或操作,其结果输入到IP核的地址端口。同理,写控制模块与读控制模块中的app_en也可进行或操作,作为IP核app_en的端口输入值。
完成读控制和写控制模块与IP核的交互后,当读写启动信号同时产生时,则app_addr端口与app_en端口输入信号同时有效,上述的按位或的解决方案将会失去作用,因此应设计读写仲裁器以避免读写启动信号同时产生,通过读写仲裁器控制产生读写信号的先后顺序。
进行IP核外部添加异步FIFO接口设计与实现,在此之前,已经实现了IP核的读控制模块,写控制模块以及读写仲裁模块,但是无论读或写都存在的一个弊端,每次都只能发送一次命令和一次突发数据,在读或写的过程中,如果再一次收到读写命令,上述设计的控制器则无法执行。为了解决这个问题,可以通过添加外围存储器的方式将暂时无法执行的命令和数据进行缓存,当前操作结束后,从所添加的外围存储器内取下一次需要执行的数据和命令,这样的设计方法可以防止命令和数据的丢失。
用户端实现DDR3 SDRAM写控制,在完成外围添加多个异步FIFO缓存模块的DDR3SDRAM控制器后,下一步就可通过设计用户端读写控制模块来操作FIFO的读写命令端口及读写数据端口。用户端写控制器的主要功能需根据FIFO缓存模块接收数据的时序实现对应的逻辑功能以及写地址分配。FIFO缓存模块写端口主要包含两类,其中一类接口可以缓存突发数据,另一类接口可以缓存地址、突发长度、读写命令等。为了避免数据写入DDR3SDRAM出现数据量与突发长度不匹配的情况,可以将需要写入的数据缓存到数据FIFO中,在接收到命令后,则有正确的突发长度数据进行传输。
用户端实现DDR3 SDRAM读控制,完成用户端写控制模块,则可进行用户读控制模块的设计。用户端读控制器框架减少了一组数据FIFO端口,其实FIFO IP核缓存读端口也预留了两类接口,其中一类为命令FIFO端口,一类为数据FIFO端口,需要将相应的信息发送到命令缓存FIFO中。FIFO IP核检测到内部有命令时根据命令信息发送突发长度的数据到读数据FIFO。当检测到数据FIFO达到了所需要的数据量,就可读出相应的数据。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述,仅为本发明较优的具体的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于FPGA的语言编写控制器双通道缓存方法,其特征在于,该方法通过IP核的写时序设计、IP核的读时序设计、读写仲裁模块设计、IP核外围添加异步FIFO模块接口设计、用户读模块及用户写模块设计,将基于AXI总线的DDR3 SDRAM IP核接口封装为通用的FIFO接口,控制在芯片内部的读写地址分配,完成大数据量视频缓存与传输;具体包括以下步骤:
S1,调取DDR3 SDRAM IP控制器,进行核内部参数配置、DDR3 SDRAM IP核的初始化,以及将文件夹下的仿真模型例化到测试文件中,获取Init_calib_complete状态标识位;
S2,DDR3 SDRAM IP核初始化成功后,获取IP核的写命令和写数据的时序波形;
S3,基于获取的写命令和写数据的时序波形,获取读命令和读数据的时序波形;
S4,基于步骤S2-步骤S3获取的波形,进行读写控制模块仲裁判断;
S5,根据获取的仲裁判断数据在外围添加IP核外部添加异步FIFO接口;
S6,根据添加的IP核外部添加异步FIFO接口,在用户端进行DDR3 SDRAM写控制;
S7,根据获取的DDR3 SDRAM写控制数据,在用户端进行DDR3 SDRAM读控制,读出大数据量视频数据。
2.根据权利要求1所述的基于FPGA的语言编写控制器双通道缓存方法,其特征在于,在步骤S1中,配置DDR3 SDRAM IP核内部参数包括DDR3的工作时钟频率、芯片类型、电平标准、数据总线位宽、输入时钟频率、输入参考时钟、控制器的突发类型以及内部终端电阻。
3.根据权利要求1所述的基于FPGA的语言编写控制器双通道缓存方法,其特征在于,在步骤S1中,进行DDR3 SDRAM IP核的初始化包括:调取IP核后,工程目录下生成一个.\project_1.srcs\sources_1\ip的路径,该路径包括docs文件夹、example_design文件夹以及user_design文件夹;
所述DDR3 SDRAM IP控制器的端口的一部分以DDR3为首命名,绑定到外部管脚。
4.根据权利要求1所述的基于FPGA的语言编写控制器双通道缓存方法,其特征在于,在步骤S1中,将文件夹下的仿真模型例化到测试文件中,获取Init_calib_complete状态标识位包括:在仿真调试过程中,将顶层文件内的Init_calib_complete信号添加到观察窗口中,仿真运行后,检测Init_calib_complete信号是否由低变高,若变成高电平,则DDR3SDRAM控制器IP核初始化成功,若为低电平则需要检测测试文件内实例化模块之间的连线是否正确。
5.根据权利要求1所述的基于FPGA的语言编写控制器双通道缓存方法,其特征在于,在步骤S2中,通过写命令和写数据的时序波形进行写时序控制,使写命令时序波形中app_en与app_rdy同时有效时,app_cmd被IP核接收;
以及使写数据时序波形中app_wdf_wren与app_wdf_rdy同时有效,app_wdf_data被IP核接收;
在获取IP核的写命令和写数据的时序波形后,app_wdf_end信号作为当前写突发操作的最后一个数据标志位,在调取IP核后,通过选择DDR3的物理层与用户层存在速度匹配关系,判断app_wdf_end与使能信号时序是否同步。
6.根据权利要求1所述的基于FPGA的语言编写控制器双通道缓存方法,其特征在于,在步骤S3中,获取读命令和读数据的时序波形的条件需满足:
app_en与app_rdy同时有效时,app_cmd与app_addr的数值被IP核接收。
7.根据权利要求1所述的基于FPGA的语言编写控制器双通道缓存方法,其特征在于,在步骤S4中,进行读写控制模块仲裁判断包括:
DDR3控制器IP核的读控制模块与写控制模块读写命令共用一组总线端口,IP核的读命令总线与写命令总线分时使用,进行仲裁判断;将写控制模块和读控制模块中的app_cmd信号分时传输给IP核的app_cmd端口;
对于app_addr信号线,将写控制模块与读控制模块中的地址总线进行按位或操作,其结果输入到IP核的地址端口;同理,写控制模块与读控制模块中的app_en也进行或操作,作为IP核app_en的端口输入值;
完成读控制和写控制模块与IP核的交互后,当读写启动信号同时产生时,则app_addr端口与app_en端口输入信号同时有效,利用读写仲裁器控制产生读写信号的先后顺序。
8.根据权利要求1所述的基于FPGA的语言编写控制器双通道缓存方法,其特征在于,在步骤S5中,通过添加外围存储器的方式将暂时无法执行的命令和数据进行缓存;
在步骤S6中,通过用户端写控制器根据FIFO缓存模块接收数据的时序实现对应的逻辑功能以及写地址分配,将写入的数据缓存到数据FIFO中,在接收到命令后,获取正确的突发长度数据并进行传输。
9.根据权利要求1所述的基于FPGA的语言编写控制器双通道缓存方法,其特征在于,在步骤S7中,通过用户端读控制器预留两类接口,其中一类为命令FIFO端口,一类为数据FIFO端口,将相应的信息发送到命令缓存FIFO中;FIFO IP核检测到内部有命令时根据命令信息发送突发长度的数据到读数据FIFO;当检测到数据FIFO达到了所需要的数据量,就读出相应的数据。
10.一种基于FPGA的语言编写控制器双通道缓存系统,其特征在于,实施权利要求1-9任意一项所述的基于FPGA的语言编写控制器双通道缓存方法,该系统包括:
写命令和写数据的时序波形获取模块,用于S2,DDR3 SDRAM IP核初始化成功后,获取IP核的写命令和写数据的时序波形;
读命令和读数据的时序波形获取模块,用于基于获取的写命令和写数据的时序波形,获取读命令和读数据的时序波形;
仲裁判断模块,用于S4,基于获取的波形,进行读写控制模块仲裁判断;
IP核外部添加异步FIFO接口添加模块,用于根据获取的仲裁判断数据在外围添加IP核外部添加异步FIFO接口;
写控制模块,用于根据添加的IP核外部添加异步FIFO接口,在用户端进行DDR3 SDRAM写控制;
读控制模块,用于根据获取的DDR3 SDRAM写控制数据,在用户端进行DDR3SDRAM读控制,读出大数据量视频数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311405845.4A CN117435550A (zh) | 2023-10-27 | 2023-10-27 | 一种基于fpga的语言编写控制器双通道缓存方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311405845.4A CN117435550A (zh) | 2023-10-27 | 2023-10-27 | 一种基于fpga的语言编写控制器双通道缓存方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117435550A true CN117435550A (zh) | 2024-01-23 |
Family
ID=89554816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311405845.4A Pending CN117435550A (zh) | 2023-10-27 | 2023-10-27 | 一种基于fpga的语言编写控制器双通道缓存方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435550A (zh) |
-
2023
- 2023-10-27 CN CN202311405845.4A patent/CN117435550A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6434660B1 (en) | Emulating one tape protocol of flash memory to a different type protocol of flash memory | |
CN108268414B (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
US20040236877A1 (en) | Switch/network adapter port incorporating shared memory resources selectively accessible by a direct execution logic element and one or more dense logic devices in a fully buffered dual in-line memory module format (FB-DIMM) | |
CN109902042B (zh) | 一种实现dsp与zynq之间高速数据传输的方法及系统 | |
US20040054864A1 (en) | Memory controller | |
US5287457A (en) | Computer system DMA transfer | |
CN111931442B (zh) | Fpga内嵌flash控制器及电子装置 | |
US20020162055A1 (en) | Trace circuit | |
CN111563059B (zh) | 一种基于PCIe的多FPGA动态配置装置及方法 | |
CN1504900B (zh) | 自内存读取数据的控制电路及其方法 | |
CN209842608U (zh) | 一种基于fpga fifo模块的ddr3存储器控制 | |
CN113270137B (zh) | 一种基于fpga嵌入式软核的ddr2测试方法 | |
US11237832B2 (en) | Module with a serialization unit and improved compatibility with deserialization units of different series | |
CN111290986A (zh) | 一种基于神经网络的总线互联系统 | |
CN114297962A (zh) | 一种自适应接口fpga软硬件协同仿真加速系统 | |
KR100476895B1 (ko) | 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 | |
US6742142B2 (en) | Emulator, a data processing system including an emulator, and method of emulation for testing a system | |
US7395197B2 (en) | Verification method and system for logic circuit | |
CN111506461B (zh) | 一种基于总线、用于测试的反压模块及其实现方法 | |
WO2020255087A1 (en) | Memory module and processor contained in the memory module | |
CN218068843U (zh) | 一种axi主端口转apb从端口的桥接电路结构及一种soc系统 | |
CN117435550A (zh) | 一种基于fpga的语言编写控制器双通道缓存方法及系统 | |
CN107291652B (zh) | 一种并行通信方法 | |
CN111290889A (zh) | 基于fpga的面向通用处理器的测试方法及系统 | |
KR100438736B1 (ko) | 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |