一种fpga与通用处理器之间的通信方法及系统的制作方法
【专利摘要】本发明公开了一种FPGA与通用处理器之间的数据传输方法及系统,所述方法将FPGA模拟为包含SDRAM控制器的通用处理器的外接SDRAM存储器,从而实现FPGA与通用处理器之间的同步数据传输。具体为:通用处理器对FPGA内部的同步输入输出接口(STI)包含的模式寄存器进行配置,进而设定SDRAM控制器的突发传输长度和读延时周期;所述同步输入输出接口(STI)一端与FPGA中的存储模块或数据处理单元相连,另一端与通用处理器的SDRAM控制器相连;同步输入输出接口(STI)接收SDRAM控制器发送的同步信号,然后对接收的同步信号进行逻辑译码和转换,翻译为FPGA内部的数据存储或处理单元能够应用的信号形式,实现通用处理器通过SDRAM控制器对FPGA内部数据存储或处理单元的数据进行写入和读取的操作。
【专利说明】—种FPGA与通用处理器之间的通信方法及系统
【技术领域】
[0001]本发明属于电路与信号系统数据传输领域,具体涉及一种FPGA与通用处理器之间的通信方法及系统。
【背景技术】
[0002]在电路与信号系统数据传输领域,FPGA与通用处理器进行数据通信的时候一般采用通用处理器的外部异步总线接口进行处理。采用这种接口方式的优点是接口实现简单,易操作,缺点是数据传输速率低。因此,当对数据传输速率要求较高时,这种传统的FPGA与通用处理器之间的异步数据传输方式不能满足应用的基本需求。
【发明内容】
[0003]本发明的目的在于,为克服上述技术问题,本发明提供一种FPGA与通用处理器之间的通信方法及系统。
[0004]为了实现上述目的,本发明提供一种FPGA与通用处理器之间的通信方法,所述方法将FPGA模拟为包含SDRAM控制器的通用处理器的外接SDRAM存储器,从而实现FPGA与通用处理器之间的同步数据传输。
[0005]可选的,采用如下策略将FPGA模拟为SDRAM控制器的外接SDRAM存储器:
[0006]在FPGA内部设置同步输入输出接口,所述同步输入输出接口一端与FPGA中的存储模块或数据处理单元相连,另一端与通用处理器的SDRAM控制器相连;
[0007]采用通用处理器对FPGA内部的同步输入输出接口包含的模式寄存器进行配置,进而设定SDRAM控制器的突发传输长度和读延时周期。
[0008]为了实现上述方法,本发明还提供一种FPGA与通用处理器的通信系统,包含FPGA和通用处理器,且通用处理器包含SDRAM控制器,其特征在于,所述FPGA中还包含:
[0009]同步输入输出接口,该同步输入输出接口 一端与FPGA中的存储模块或数据处理单元相连,另一端与SDRAM控制器相连,进而实现FPGA与通用处理器之间的同步数据传输。
[0010]可选的,上述同步输入输出接口进一步包含:
[0011]模式寄存器,用于设定SDRAM控制器的数据突发传输长度和读延时周期;
[0012]锁存模块,用于锁存SDRAM控制器发送的数据和地址信号;
[0013]地址解析转换模块,用于将SDRAM控制器的行列地址进行转换,翻译成为FPGA内部数据存储或处理单元可以直接使用的地址信号;
[0014]译码模块,用于根据SDRAM控制器的读写命令,译码出与数据存储或处理单元接口的读、写和使能等信号。
[0015]最后,基于上述通信系统本发明还提供了一种FPGA与通用处理器的数据同步传输方法,所述数据传输方法为:
[0016]同步输入输出接口接收SDRAM控制器发送的同步信号,然后对接收的同步信号进行逻辑译码和转换,翻译为FPGA内部的数据存储或处理单元能够应用的信号形式,实现通用处理器通过SDRAM控制器对FPGA内部数据存储或处理单元的数据进行写入和读取的操作,即完成FPGA与通用处理器的同步数据传输。
[0017]可选的,上述方法具体包含:
[0018]步骤101)对SDRAM控制器发送的数据和地址信号进行锁存;
[0019]步骤102)针对SDRAM控制器的激活和读写命令把SDRAM控制器的行列地址进行解析,转换为直接寻址地址,所述的直接寻址地址为FPGA内部数据存储或处理单元能够直接使用的地址信号;
[0020]步骤103)依据模式寄存器中配置的内容,根据SDRAM控制器的读写命令,译码出与数据存储或处理单元接口的读、写和使能等信号;
[0021]依据译码得到的信号、直接寻址地址以及步骤101)所述的锁存的数据信号完成通用处理器与FPGA内部数据存储或处理单元的数据传输。
[0022]与现有技术相比,本发明的技术优势在于:在不增加硬件任何成本的前提下,巧妙的利用了通用处理器固有设备的属性,进而将传统的异步传输方式改进为同步传输,极大的提高了数据传输系统的工作效率。
【专利附图】
【附图说明】
[0023]图1是本发明实施例提供的STI的功能结构及系统连接框图;
[0024]图2是本发明实施例提供的FPGA与通用处理器之间的同步数据传输方法的流程图。
【具体实施方式】
[0025]下面结合附图及具体实施例对本发明作进一步的描述。
[0026]本发明基于的原理为:由于现有的通用处理器都带有SDRAM控制器,所述SDRAM控制器的用途是可以通过接口外部SDRAM存储器,进而扩展外部存储空间。且现有技术的SDRAM控制器均使用同步逻辑传输数据,具备很高的数据传输效率。
[0027]基于上述技术背景,本发明巧妙的将FPGA模拟为SDRAM控制器的外部存储器,进而通过SDRAM控制器实现通用处理器与FPGA之间的同步数据传输,采用这种同步逻辑传输数据,使得数据传输速率将会较异步传输大大提高。
[0028]可选的,当采用这种同步方式进行数据传输时需要设计复杂的接口。为了实现这个目的,本发明提供一种具体的实施方式,具体内容如下:
[0029]为了实现上述目的,本发明提出了如何在FPGA内部构建同步输入输出接口与外部通用处理器SDRAM控制器相接口的技术方案。
[0030]在FPGA内部构建一个双向的同步输入输出接口(STI),该接口的一端与外部通用处理器的SDRAM控制器相连,另一端与FPGA内部的存储模块或数据处理单元相连。
[0031]通用处理器的SDRAM控制器严格按照SDRAM的工作原理与外部SDRAM存储器接口。因此,如果按照SDRAM工作原理在FPGA内部构建一个双向的同步输入输出接口(STI),此接口一端与外部通用处理器的SDRAM控制器进行接口,另一端与FPGA内部的存储模块或数据处理单元接口。则FPGA便可以与外部通用处理器实现同步数据传输,提高数据传输效率。[0032]同步输入输出接口(STI)的功能结构及系统连接框图如图1所示。
[0033]同步输入输出接口(STI)做为连接FPGA内部数据存储或处理单元和外部SDRAM控制器的接口,其输入端为完整的SDRAM信号输入,输出端为内部数据存储或处理单元的数据、地址及控制等信号。
[0034]上述FPGA内部的数据存储或处理单元与同步输入输出接口(STI)通过时钟信号Clk,地址信号Address,数据信号Data和控制信号Control Signal etc.等互联。
[0035]上述同步输入输出接口(STI)的接收来自SDRAM控制器的同步信号,按照SDRAM控制器的命令将接收的同步信号进行逻辑译码转换,翻译成为FPGA内部的数据存储或处理单元可以正确应用的信号形式。从而确保数据传输的准确无误。
[0036]图中FPGA与通用处理器之间数据位宽为DQO?DQn ;寻址空间由地址信号AO?An及BANK信号BAO?BAl来决定;数据传输同步时钟信号为CLK ;时钟使能信号为CKE ;片选信号为CS# ;命令译码信号为RAS#,CAS#’ WE# ;数据屏蔽信号为DQM。
[0037]具体的实现过程如图2所示,主要包括以下几个方面的内容:
[0038]I)对FPGA与通用处理器上电,然后要对STI的模式寄存器进行配置,进而设定SDRAM控制器突发传输长度、读延时周期。
[0039]2)然后对SDRAM控制器发送的数据、地址信号进行锁存。
[0040]3)针对SDRAM控制器的激活、读写等命令把SDRAM控制器的行列地址进行解析,转换为直接寻址地址即FPGA内部数据存储或处理单元可以直接使用的地址信号。
[0041]4)结合模式寄存器的配置内容,根据SDRAM控制器的读写命令,译码出与数据存储或处理单元接口的读、写、使能等信号。译码出的信号配合直接寻址地址以及步骤2)锁存的数据信号共同完成与FPGA内部数据存储或处理单元的数据传输工作。
[0042]以上几个方面内容的代码实现全部在FPGA内部完成。
[0043]将该方法应用于基于TS201 (DSP处理器)和EP2S180 (FPGA)的通用信号处理电路板,已经取得很好的实用效果。经过实际测试,采用该方法后,数据传输正确无误,数据传输速率是传统异步接口传输的至少5倍以上。
[0044]需要说明的是,以上介绍的本发明的实施方案而并非限制。本领域的技术人员应当理解,任何对本发明技术方案的修改或者等同替代都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围内。
【权利要求】
1.一种FPGA与通用处理器之间的通信方法,所述方法将FPGA模拟为包含SDRAM控制器的通用处理器的外接SDRAM存储器,从而实现FPGA与通用处理器之间的同步数据传输。
2.根据权利要求1所述的FPGA与通用处理器之间的通信方法,其特征在于,采用如下策略将FPGA模拟为SDRAM控制器的外接SDRAM存储器: 在FPGA内部设置同步输入输出接口,所述同步输入输出接口一端与FPGA中的存储模块或数据处理单元相连,另一端与通用处理器的SDRAM控制器相连; 采用通用处理器对FPGA内部的同步输入输出接口包含的模式寄存器进行配置,进而设定SDRAM控制器的突发传输长度和读延时周期。
3.一种基于权利要求1-2任意一条权利要求记载的方法得到的FPGA与通用处理器的通信系统,包含FPGA和通用处理器,且通用处理器包含SDRAM控制器,其特征在于,所述FPGA中还包含: 同步输入输出接口,该同步输入输出接口一端与FPGA中的存储模块或数据处理单元相连,另一端与SDRAM控制器相连,进而实现FPGA与通用处理器之间的同步数据传输。
4.根据权利要求3所述的FPGA与通用处理器的通信系统,其特征在于,所述同步输入输出接口进一步包含: 模式寄存器,用于设定SDRAM控制器的数据突发传输长度和读延时周期; 锁存模块,用于锁存SDRAM控制器发送的数据和地址信号; 地址解析转换模块,用于将SDRAM控制器的行列地址进行转换,翻译成为FPGA内部数据存储或处理单元可以直接使用的地址信号; 译码模块,用于根据SDRAM控制器的读写命令,译码出与数据存储或处理单元接口的读、与和使能等?目号。
5.一种基于权利要求3-4任意一个权利要求记载的系统实现的FPGA与通用处理器的数据同步传输方法,所述数据传输方法为: 同步输入输出接口接收SDRAM控制器发送的同步信号,然后对接收的同步信号进行逻辑译码和转换,翻译为FPGA内部的数据存储或处理单元能够应用的信号形式,实现通用处理器通过SDRAM控制器对FPGA内部数据存储或处理单元的数据进行写入和读取的操作,即完成FPGA与通用处理器的同步数据传输。
6.根据权利要求5所述的FPGA与通用处理器的数据同步传输方法,其特征在于,所述方法具体包含: 步骤101)对SDRAM控制器发送的数据和地址信号进行锁存; 步骤102)针对SDRAM控制器的激活和读写命令把SDRAM控制器的行列地址进行解析,转换为直接寻址地址,所述的直接寻址地址为FPGA内部数据存储或处理单元能够直接使用的地址信号; 步骤103)依据模式寄存器中配置的内容,根据SDRAM控制器的读写命令,译码出与数据存储或处理单元接口的读、写和使能等信号; 依据译码得到的信号、直接寻址地址以及步骤101)所述的锁存的数据信号完成通用处理器与FPGA内部数据存储或处理单元的数据传输。
【文档编号】G06F15/163GK103970708SQ201410101787
【公开日】2014年8月6日 申请日期:2014年3月18日 优先权日:2014年3月18日
【发明者】胡强 申请人:中国航天科工信息技术研究院