CN101692214A - Cpu与fpga间高速间接存取装置和方法 - Google Patents
Cpu与fpga间高速间接存取装置和方法 Download PDFInfo
- Publication number
- CN101692214A CN101692214A CN200910092520A CN200910092520A CN101692214A CN 101692214 A CN101692214 A CN 101692214A CN 200910092520 A CN200910092520 A CN 200910092520A CN 200910092520 A CN200910092520 A CN 200910092520A CN 101692214 A CN101692214 A CN 101692214A
- Authority
- CN
- China
- Prior art keywords
- cpu
- dpram
- write
- read
- group
- 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
Images
Landscapes
- Microcomputers (AREA)
Abstract
本发明提供一种CPU与FPGA间高速间接存取装置和方法。所述存取装置包括:DPRAM组,其包括至少一个适于与所述FPGA的寄存器组以及所述CPU相连并与所述FPGA的寄存器组以及所述CPU进行数据交换的DPRAMCPU读写电路,其与所述DPRAM组及所述CPU相连接,用于控制所述DPRAM组与所述CPU之间的数据交换;以及硬件读写电路,其与所述DPRAM组及所述寄存器组相连接,用于控制所述DPRAM组与所述寄存器组之间的数据交换。由此,提供了一种新的存取装置来实现高速与高效的存取。
Description
技术领域
本发明涉及CPU与FPGA间的数据存取方法及装置,尤其是CPU与FPGA间的高速存取方法和装置。
背景技术
FPGA已应用于现代各种电路设计之中。在目前的FPGA中,CPU读写电路都设计为直接读写,即用地址总线进行译码,然后用译码后的信号去控制寄存器的读写。这种方法对于一般的小规模读写电路是比较合适的,在对CPU读写速率无特别要求时也是比较合适的。但是,随着FPGA电路规模的扩大,FPGA所执行的功能越来越复杂,FPGA所涉及的控制信号和测试结果可能很多,如果使用直接读写法会导致读写效率很低,从而过多地占用CPU资源。此外,当为了提高CPU的存取速度而提高CPU总线的工作速率时,必须插入等待状态,否则可能由于电路延迟太大而使得CPU根本无法正确完成存取操作。而插入等待状态又使存取速率下降。
发明内容
为了克服传统直接存取工作方式的慢速、低效问题,本发明的目的在于提供一种新的存取装置来实现高速与高效的存取。
本发明通过提供一种存取装置而实现上述目的。所述存取装置用于实现CPU与FPGA的寄存器组之间的存取,包括:DPRAM组,其包括至少一个适于与所述FPGA的寄存器组以及所述CPU相连并与所述FPGA的寄存器组以及所述CPU进行数据交换的DPRAMCPU读写电路,其与所述DPRAM组及所述CPU相连接,用于控制所述DPRAM组与所述CPU之间的数据交换;以及硬件读写电路,其与所述DPRAM组及所述寄存器组相连接,用于控制所述DPRAM组与所述寄存器组之间的数据交换。
通过采用DPRAM作为CPU和FPGA寄存器组之间的存取缓冲,极大地减小了CPU读写电路的复杂度和CPU总线的负载,从而可以提高CPU的工作速率。而且,CPU有可能以突发的方式对DPRAM组进行存取。从而进一步提高CPU的工作效率。
优选地,所述存取装置可以通过对所述FPGA进行配置而在所述FPGA中实现。通过利用FPGA内部丰富的DPRAM资源,只需对FPGA进行适当的配置就可以实现所述存取装置。通过充分利用FPGA内部丰富的DPRAM(双端口RAM)资源为高速复杂读写电路提供一种高速、高效的解决方法。它不仅能够提高CPU总线的工作速率,而且能大大提高CPU的存取效率,使CPU的工作效率得到提高。
优选地,所述DPRAM组包括第一DPRAM和第二DPRAM,其中所述第一DPRAM适于与所述FPGA的寄存器组中的控制寄存器组以及所述CPU相连并与所述控制寄存器组以及所述CPU进行数据交换;所述第二DPRAM适于与所述FPGA的寄存器组中的数据寄存器组以及所述CPU相连并与所述数据寄存器组以及所述CPU进行数据交换。采用两片DPRAM,将CPU读和CPU写(更具体而言,是CPU与寄存器组之间的存取)分成两个相对独立的部分,从而简化了FPGA内部的CPU读写电路设计。
优选地,所述第一DPRAM用于向所述FPGA的控制寄存器组写入数据以及由所述CPU读写数据;所述第二DPRAM用于由所述CPU读写数据以及从所述FPGA的数据寄存器组读取数据。采用两片DPRAM,且各片DRRAM与FPGA寄存器之间仅仅是单向的数据传送关系,从而,简化了FPGA内部的硬件读写电路的设计。
优选地,所述CPU读写电路包括译码电路和CPU读写控制电路,其中所述译码电路用于基于来自CPU地址总线的信号而产生所述第一DPRAM和第二DPRAM的片选信号,所述CPU读写控制电路用于基于来自CPU地址总线的信号和CPU读写信号而产生所述第一DPRAM或第二DPRAM的存取地址与DPRAM的读写使能信号。通过CPU读写控制电路可以产生突发读写地址,提高存取效率。
优选地,所述硬件读写电路包括第一部分和第二部分,其中所述第一部分用于控制所述第一DPRAM(3)与所述寄存器组的控制寄存器组之间的数据交换,所述第二部分用于控制所述第二DPRAM(6)与所述寄存器组的数据寄存器组之间的数据交换。将所述寄存器组细分为控制寄存器组和数据寄存器组,并将第一DPRAM与控制寄存器组之间的数据交换与第二DPRAM与数据寄存器组之间的数据交换分隔开,从而简化了设计的复杂性,有利于数据的有序交换。
优选地,所述硬件读写电路的所述第一部分包括写仲裁电路与第一顺序读写电路,其中所述写仲裁电路与CPU时钟信号以及所述CPU读写电路相连,从而根据CPU时钟信号和所述CPU读写电路对所述第一DPRAM的写使能信号而产生写仲裁信号发送至所述第一顺序读写电路,从而阻止在CPU写第一DPRAM的同时第一顺序读写电路对所述控制寄存器进行写操作。由此,可以阻止在CPU写第一DPRAM的同时第一顺序读写电路对控制寄存器进行写操作。增加系统的可靠性。
优选地,所述硬件读写电路的所述第二部分包括读仲裁电路与第二顺序读写电路,所述读仲裁电路与FPGA时钟信号、所述CPU以及所述第二顺序读写电路相连接,用于将所述第二DPRAM的读写划分为读和写两个时间段,第一个时间段内通过第二顺序读写电路将数据寄存器组中的数据按序写入第二DPRAM中,在第二个时间段的开始向CPU发出中断请求,然后由CPU在第二个时间段内读取第二DPRAM中的内容。其优点在于,以定时中断的方式实现CPU读取DPRAM中的数据,从而实现对数据寄存器数据的定时读取。
本发明还提供一种其于实现CPU与FPGA的寄存器组之间存取的存取方法。所述方法包括:在所述CPU和所述FPGA的所述寄存器组之间提供DPRAM组,所述DPRAM组包括至少一个适于与所述FPGA的寄存器组以及所述CPU相连并与所述FPGA的寄存器组以及所述CPU进行数据交换的DPRAM;在CPU向所述寄存器组写入数据时,先将CPU的数据写入所述DPRAM,然后再将来自所述CPU的数据从所述DPRAM组写入所述寄存器组;以及定时地将所述寄存器组的数据写入所述DPRAM组,然后向所述CPU发出中断请求,由所述CPU从所述DPRAM读取来自所述寄存器组的数据。其优点在于,采用DPRAM作为CPU和FPGA寄存器组之间的存取缓冲,极大地减小了CPU读写电路的复杂度和CPU总线的负载,从而可以提高CPU的工作速率。而且,CPU可以突发的方式对DPRAM组进行存取。从而进一步提高CPU的工作效率。
优选地,在所述方法中,所述DPRAM组包括第一DPRAM和第二DPRAM,在CPU向所述寄存器组写入数据时,先将CPU的数据写入所述第一DPRAM,然后再将所述来自CPU的数据从所述DPRAM组写入所述寄存器组的控制寄存器组;以及定时地将所述寄存器组的数据寄存器组的数据写入所述第二DPRAM,然后向所述CPU发出中断请求,由所述CPU从所述DPRAM读取来自所述数据寄存器组的数据。其优点在于,以定时中断的方式实现CPU读取DPRAM中的数据,从而实现对数据寄存器数据的定时读取。并且将所述寄存器组细分为控制寄存器组和数据寄存器组,并将第一DPRAM与控制寄存器组之间的数据交换与第二DPRAM与数据寄存器组之间的数据交换分隔开,从而简化了设计的复杂性,有利于数据的有序交换。
优选地,CPU每向第一DPRAM中写一次,顺序读写电路1就将第一DPRAM中的控制信息按序读出并写到控制寄存器组中,通过写仲裁电路阻止CPU写第一DPRAM的同时第一顺序读写电路对控制寄存器的写操作。通过读仲裁电路将第二DPRAM的读写划分为读和写两个时间段,第一个时间段内通过第二顺序读写电路将数据寄存器组中的数据按序写入第二DPRAM中,在第二个时间段的开始向CPU发出中断请求,然后由CPU在第二个时间段内读取第二DPRAM中的内容。
采用这种结构的电路后,CPU读写FPGA内部寄存器的电路被分割为CPU读写和硬件读写两个部分,它不仅将电路延时一分为二,减小了电路延时,而且大大减轻了CPU总线负载,简化了CPU译码电路,实现了CPU的高速读操作。同时,因为读数据被合并到DPRAM中,使CPU读操作实现了突发,大大提高了CPU读数的效率,而且查看控制信息容易,方便了对FPGA内部电路的调试。
本发明进一步的有益效果是:提高了CPU总线的工作速率和存取效率,实现了CPU与FPGA间的高速数据存取。同时,由于将CPU与FPGA的数据交互集中到CPU与DPRAM之间,使得该电路移植到不同的CPU与FPGA系统以及电路调试都非常方便。
附图说明
图1为根据本发明一个实施例的存取装置的示意性原理框图,图中包括FPGA的控制寄存器和数据寄存器;
图2为根据本发明一个实施例的CPU读写控制电路的示意性框图;
图3为根据本发明一个实施例的顺序读写电路的示意性框图;
图4为根据本发明一个实施例的顺序读写电路的示意性框图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
根据本发明的一个实施例,用于实现CPU与FPGA的寄存器组之间存取的存取装置包括:DPRAM组,其包括至少一个适于与所述FPGA的寄存器组以及所述CPU相连并与所述FPGA的寄存器组以及所述CPU进行数据交换的DPRAM;CPU读写电路,其与所述DPRAM组及所述CPU相连接,用于控制所述DPRAM组与所述CPU之间的数据交换;以及硬件读写电路,其与所述DPRAM组及所述寄存器组相连接,用于控制所述DPRAM组与所述寄存器组之间的数据交换。通过采用DPRAM作为CPU和FPGA寄存器组之间的存取缓冲,极大地减小了CPU读写电路的复杂度和CPU总线的负载,从而可以提高CPU的工作速率。而且,CPU有可能以突发的方式对DPRAM组进行存取。从而进一步提高CPU的工作效率。
所述存取装置可以通过对所述FPGA进行配置而在所述FPGA中实现。通过利用FPGA内部丰富的DPRAM资源,只需对FPGA进行适当的配置就可以实现所述存取装置。通过充分利用FPGA内部丰富的DPRAM(双端口RAM)资源为高速复杂读写电路提供一种高速、高效的解决方法。它不仅能够提高CPU总线的工作速率,而且能大大提高CPU的存取效率,使CPU的工作效率得到提高。
如图1中所示,所述DPRAM组包括第一DPRAM 3和第二DPRAM 6,其中所述第一DPRAM适于与所述FPGA的寄存器组中的控制寄存器组9以及所述CPU相连并与所述控制寄存器组以及所述CPU进行数据交换;所述第二DPRAM适于与所述FPGA的寄存器组中的数据寄存器组10以及所述CPU相连并与所述数据寄存器组以及所述CPU进行数据交换。采用两片DPRAM,将CPU读和CPU写(更具体而言,是CPU与寄存器组之间的存取)分成两个相对独立的部分,从而简化了FPGA内部的CPU读写电路设计。如本领域中的技术人员可以理解的,所述DPRAM组也可以仅仅包括一个DPRAM,同样可以实现本发明的功能。之所以在此实施例中采用两个DPRAM,其原因在于:(1)FPGA中的DPRAM目前主要是按18kbit(或说2k字节)组织的,这种两个DPRAM的设计比较符合实际使用(容纳适当数量的数据);(2)本发明的主要目的是提高存取速度,分片设计利于减小顺序读写电路的复杂度和DPRAM的总线负载,从而支持更高工作速率。
如图1中所示,所述第一DPRAM 3用于向所述FPGA的控制寄存器组9写入数据以及由所述CPU读写数据;所述第二DPRAM 6用于由所述CPU读写数据以及从所述FPGA的数据寄存器组10读取数据。采用两片DPRAM,且各片DRRAM与FPGA寄存器之间仅仅是单向的数据传送关系,从而,简化了FPGA内部的硬件读写电路的设计。
所述CPU读写电路包括图1中所示的译码电路1和CPU读写控制电路2,其中所述译码电路用于基于来自CPU地址总线的信号而产生所述第一DPRAM和第二DPRAM的片选信号,所述CPU读写控制电路用于基于来自CPU地址总线的信号和CPU读写信号而产生所述第一DPRAM或第二DPRAM的存取地址与DPRAM的读写使能信号。通过CPU读写控制电路可以产生突发读写地址,提高存取效率。
如图1中所示,所述硬件读写电路包括第一部分和第二部分,其中所述第一部分用于控制所述第一DPRAM 3与所述寄存器组的控制寄存器组之间的数据交换,所述第二部分用于控制所述第二DPRAM 6与所述寄存器组的数据寄存器组之间的数据交换。将所述寄存器组细分为控制寄存器组和数据寄存器组,并将第一DPRAM与控制寄存器组之间的数据交换与第二DPRAM与数据寄存器组之间的数据交换分隔开,从而简化了设计的复杂性,有利于数据的有序交换。所述硬件读写电路的所述第一部分包括写仲裁电路5与第一顺序读写电路4,其中所述写仲裁电路5与CPU时钟信号以及所述CPU读写电路相连,从而根据CPU时钟信号和所述CPU读写电路对所述第一DPRAM的写使能信号而产生写仲裁信号发送至所述第一顺序读写电路,从而阻止在CPU写第一DPRAM的同时第一顺序读写电路对所述控制寄存器进行写操作。由此,可以阻止在CPU写第一DPRAM的同时第一顺序读写电路对控制寄存器进行写操作。增加系统的可靠性。所述硬件读写电路的所述第二部分包括读仲裁电路8与第二顺序读写电路7,所述读仲裁电路与FPGA时钟信号、所述CPU以及所述第二顺序读写电路相连接,用于将所述第二DPRAM的读写划分为读和写两个时间段,第一个时间段内通过第二顺序读写电路将数据寄存器组中的数据按序写入第二DPRAM中,在第二个时间段的开始向CPU发出中断请求,然后由CPU在第二个时间段内读取第二DPRAM中的内容。其优点在于,以定时中断的方式实现CPU读取DPRAM中的数据,从而实现对数据寄存器数据的定时读取。
本发明还提供一种用于实现CPU与FPGA的寄存器组之间存取的存取方法。所述方法包括:在所述CPU和所述FPGA的所述寄存器组之间提供DPRAM组,所述DPRAM组包括至少一个适于与所述FPGA的寄存器组以及所述CPU相连并与所述FPGA的寄存器组以及所述CPU进行数据交换的DPRAM;在CPU向所述寄存器组写入数据时,先将CPU的数据写入所述DPRAM,然后再将来自所述CPU的数据从所述DPRAM组写入所述寄存器组;以及定时地将所述寄存器组的数据写入所述DPRAM组,然后向所述CPU发出中断请求,由所述CPU从所述DPRAM读取来自所述寄存器组的数据。其优点在于,采用DPRAM作为CPU和FPGA寄存器组之间的存取缓冲,极大地减小了CPU读写电路的复杂度和CPU总线的负载,从而可以提高CPU的工作速率。而且,CPU可以突发的方式对DPRAM组进行存取。从而进一步提高CPU的工作效率。
在一优选实施例中,所述DPRAM组包括第一DPRAM和第二DPRAM,在CPU向所述寄存器组写入数据时,先将CPU的数据写入所述第一DPRAM,然后再将所述来自CPU的数据从所述DPRAM组写入所述寄存器组的控制寄存器组;以及定时地将所述寄存器组的数据寄存器组的数据写入所述第二DPRAM,然后向所述CPU发出中断请求,由所述CPU从所述DPRAM读取来自所述数据寄存器组的数据。其优点在于,以定时中断的方式实现CPU读取DPRAM中的数据,从而实现对数据寄存器数据的定时读取。并且将所述寄存器组细分为控制寄存器组和数据寄存器组,并将第一DPRAM与控制寄存器组之间的数据交换与第二DPRAM与数据寄存器组之间的数据交换分隔开,从而简化了设计的复杂性,有利于数据的有序交换。
在图1所示的实施例中,CPU每向第一DPRAM 3中写一次,顺序读写电路1就将第一DPRAM 3中的控制信息按序读出并写到控制寄存器组中,通过写仲裁电路阻止CPU写第一DPRAM的同时第一顺序读写电路对控制寄存器的写操作。通过读仲裁电路将第二DPRAM的读写划分为读和写两个时间段,第一个时间段内通过第二顺序读写电路将数据寄存器组中的数据按序写入第二DPRAM中,在第二个时间段的开始向CPU发出中断请求,然后由CPU在第二个时间段内读取第二DPRAM中的内容。假设CPU需向第一DPRAM 3写入三个数据(分别对应于控制寄存器1、控制寄存器3、控制寄存器7这三个寄存器),且第一DPRAM3再将这三个数据写入相应控制寄存器(这属于三个单次写,不属于突发写)。则图1所示的存取装置依次执行下面的步骤:1)片选第一DPRAM 3;2)产生DPRAM写使能信号;3)向第一DPRAM 3写入数据1;(步骤1~3实际上是同时进行的);4)更新全部控制寄存器组中的数据,即将第一DPRAM 3中的全部数据写入每一个相应控制寄存器中(需要指出的是,也可以设置成只更新部分控制寄存器,这可以根据下一次写数据与本次写数据的时间间隔而设置。例如设置成:当两次写数据的时间间隔小于30秒时,则只更新部分控制寄存器);6)执行第二次写数据,即写入数据3;7)执行第三次写数据,即写入数据7。
采用这种结构的电路后,CPU读写FPGA内部寄存器的电路被分割为CPU读写和硬件读写两个部分,它不仅将电路延时一分为二,减小了电路延时,而且大大减轻了CPU总线负载,简化了CPU译码电路,实现了CPU的高速读操作。同时,因为读数据被合并到DPRAM中,使CPU读操作实现了突发,大大提高了CPU读数的效率,而且查看控制信息容易,方便了对FPGA内部电路的调试。
根据本发明一个实施例的CPU与FPGA间的高速存取装置包括三个部分,即CPU读写电路、DPRAM组和硬件读写电路。所述DPRAM组在CPU读写电路的控制之下与CPU实现数据交换,在所述硬件读写电路的控制之下与FPGA的寄存器(包括控制寄存器组和数据寄存器组)实现数据交换。其中DPRAM组包括第一DPRAM 3和第二DPRAM 6,第一DPRAM 3与控制寄存器组相连接,而第二DPRAM 6与数据寄存器组相连接。此外,本领域普通技术人员容易理解的是,第一DPRAM 3和第二DPRAM 6都可以与CPU数据总线连接,以实现与CPU的数据交换。
CPU读写电路包括译码电路1和CPU读写控制电路2。译码电路1对来自CPU地址总线的信号(例如,高位地址)进行译码,以得到第一DPRAM3和第二DPRAM 6的片选信号,该片选信号可直接传送至第一DPRAM 3或第二DPRAM 6的片选信号。在该实施例中,该片选信号被送到CPU读写控制电路(2)。如图2所示,CPU读写控制电路2包括写使能信号发生电路11、首地址装入脉冲产生电路12、读使能信号发生电路13以及突发地址发生器14。片选信号与CPU读写信号中的写使能信号组合而在CPU读写控制电路2的写使能信号发生电路11中产生DPRAM的写使能信号以确定将被执行写操作的DPRAM,如果是单次写则其产生一个写脉冲,如果是突发写则产生连续写脉冲。当CPU读时,首地址装入脉冲产生电路12产生一个锁存首地址的单脉冲,该脉冲使CPU读写控制电路2的突发地址发生器14装入当前的CPU地址,然后突发地址发生器14根据读写信号自动产生DPRAM地址,读使能信号发生电路13根据CPU读使能信号和片选信号产生DPRAM读使能信号以及突发地址发生器使能信号。
在图1所示实施例中,第一DPRAM 3用于中转所有的控制信号。第二DPRAM 6用于中转所有的读数据。如图1中所示,第一DPRAM 3可以与CPU数据总线和控制寄存器组9连接,以从CPU接收数据,并将所述数据写至控制寄存器组9中的相应寄存器。类似地,第二DPRAM 6适于与CPU数据总线和数据寄存器组9连接,以从数据寄存器10中的相应寄存器读取数据,并被CPU读取数据。
在图1中,控制寄存器组9用于存储FPGA内部的控制信号,其数量根据FPGA内部所需的控制信号数量确定;数据寄存器组10是FPGA中存储各种测试结果的存储器,其数量根据FPGA内部电路所进行的测试的参数数量确定。
根据本发明的一实施例,硬件读写电路包括控制寄存器组读写控制电路和数据寄存器组读写控制电路。控制寄存器组读写控制电路包括第一顺序读写电路4和写仲裁电路5。控制寄存器组读写控制电路包括第二顺序读写电路7和写仲裁电路8。
第一顺序读写电路4用于将写仲裁电路5产生的仲裁信号进行同步转换。如图3所示,第一顺序读写电路4包括同步转换电路15、地址发生器16和译码器17。同步转换电路15将写仲裁信号从同步于CPU时钟转换为同步到本地时钟,地址发生器16在仲裁信号的控制下清‘0’,使控制寄存器写禁止,一旦清‘0’结束,地址发生器16就自动递增产生DPRAM读地址,该地址同时进入译码器17进行译码,产生控制寄存器写使能信号,写完后地址保持在一个未用的状态上,等待下一次写操作启动。CPU每向第一DPRAM中写一次,第一顺序读写电路4就将第一DPRAM中的控制信息按序读出并写到控制寄存器组中,通过写仲裁电路阻止在CPU写第一DPRAM的同时第一顺序读写电路对控制寄存器进行写操作。
如图4所示,第二顺序读写电路7包括写使能信号发生电路18、地址发生器16以及译码器20。在读仲裁电路8产生的信号控制下,写使能信号发生电路18产生DPRAM写使能信号,同时产生地址发生器19的使能信号和同步清‘0’信号,地址发生器19产生DPRAM写地址,同时将该地址送到译码器20进行译码,产生数据寄存器读使能信号。通过读仲裁电路将第二DPRAM的读写划分为读和写两个时间段,第一个时间段内通过第二顺序读写电路将数据寄存器组中的数据按序写入第二DPRAM中,在第二个时间段的开始向CPU发出中断请求,然后由CPU在第二个时间段内读取第二DPRAM中的内容。
FPGA是英文Field-Programmable Gate Array的缩写,也称为现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。FPGA是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,其内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和I/O引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。从而,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
因此,根据本发明一个实施例,所述存取装置中的所有电路都在一片FPGA中实现,且该存取装置用于实现该片FPGA与外部CPU之间的数据存取。如本领域的普通技术人员所容易理解的,FPGA是由存放在片内RAM中的程序来设置其工作状态的,加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失(因此,FPGA能够反复使用)。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。在一个优选实施例中,对FPGA配置一片EPROM,以实现FPGA中实现上述的存取装置。当然,也可以采取其它方式对FPGA实行配置。例如可以将FPGA作为微处理器的外设,由微处理器对其编程或配置来实现上述的存取装置。
Claims (10)
1.一种存取装置,其用于实现CPU与FPGA的寄存器组之间的存取,其特征在于,包括:
DPRAM组,其包括至少一个适于与所述FPGA的寄存器组以及所述CPU相连并与所述FPGA的寄存器组以及所述CPU进行数据交换的DPRAM;
CPU读写电路,其与所述DPRAM组及所述CPU相连接,用于控制所述DPRAM组与所述CPU之间的数据交换;以及
硬件读写电路,其与所述DPRAM组及所述寄存器组相连接,用于控制所述DPRAM组与所述寄存器组之间的数据交换。
2.如权利要求1所述的存取装置,其特征在于,所述存取装置通过对所述FPGA进行配置而在所述FPGA中实现。
3.如权利要求2所述的存取装置,其特征在于,所述DPRAM组包括第一DPRAM(3)和第二DPRAM(6),其中所述第一DPRAM(3)适于与所述FPGA的寄存器组中的控制寄存器组以及所述CPU相连并与所述控制寄存器组以及所述CPU进行数据交换;所述第二DPRAM(6)适于与所述FPGA的寄存器组中的数据寄存器组以及所述CPU相连并与所述数据寄存器组以及所述CPU进行数据交换。
4.如权利要求3所述的存取装置,其特征在于,所述第一DPRAM(3)用于向所述FPGA的控制寄存器组写入数据以及由所述CPU读写数据;所述第二DPRAM(6)用于由所述CPU读写数据以及从所述FPGA的数据寄存器组读取数据。
5.如权利要求3所述的存取装置,其特征在于,所述CPU读写电路包括译码电路(1)和CPU读写控制电路(2),其中所述译码电路用于基于来自CPU地址总线的信号而产生所述第一DPRAM(3)和第二DPRAM(6)的片选信号,所述CPU读写控制电路(2)用于基于来自CPU地址总线的信号和CPU读写信号而产生所述第一DPRAM(3)或第二DPRAM(6)的存取地址与DPRAM的读写使能信号。
6.如权利要求3所述的存取装置,其特征在于,所述硬件读写电路包括第一部分和第二部分,其中所述第一部分用于控制所述第一DPRAM(3)与所述寄存器组的控制寄存器组之间的数据交换,所述第二部分用于控制所述第二DPRAM(6)与所述寄存器组的数据寄存器组之间的数据交换。
7.如权利要求6所述的存取装置,其特征在于,所述硬件读写电路的所述第一部分包括写仲裁电路与第一顺序读写电路,其中所述写仲裁电路与CPU时钟信号以及所述CPU读写电路相连,从而根据CPU时钟信号和所述CPU读写电路对所述第一DPRAM的写使能信号而产生写仲裁信号发送至所述第一顺序读写电路,从而阻止在CPU写第一DPRAM的同时第一顺序读写电路对所述控制寄存器进行写操作。
8.如权利要求6所述的存取装置,其特征在于,所述硬件读写电路的所述第二部分包括读仲裁电路与第二顺序读写电路,所述读仲裁电路与FPGA时钟信号、所述CPU以及所述第二顺序读写电路相连接,用于将所述第二DPRAM的读写划分为读和写两个时间段,第一个时间段内通过第二顺序读写电路将数据寄存器组中的数据按序写入第二DPRAM中,在第二个时间段的开始向CPU发出中断请求,然后由CPU在第二个时间段内读取第二DPRAM中的内容。
9.一种其用于实现CPU与FPGA的寄存器组之间存取的存取方法,其特征在于,包括:
在所述CPU和所述FPGA的所述寄存器组之间提供DPRAM组,所述DPRAM组包括至少一个适于与所述FPGA的寄存器组以及所述CPU相连并与所述FPGA的寄存器组以及所述CPU进行数据交换的DPRAM;
在CPU向所述寄存器组写入数据时,先将CPU的数据写入所述DPRAM,然后再将来自所述CPU的数据从所述DPRAM组写入所述寄存器组;以及
定时地将所述寄存器组的数据写入所述DPRAM组,然后向所述CPU发出中断请求,由所述CPU从所述DPRAM读取来自所述寄存器组的数据。
10.如权利要求9所述的存取方法,其特征在于,所述DPRAM组包括第一DPRAM和第二DPRAM,在CPU向所述寄存器组写入数据时,先将CPU的数据写入所述第一DPRAM,然后再将所述来自CPU的数据从所述DPRAM组写入所述寄存器组的控制寄存器组;以及定时地将所述寄存器组的数据寄存器组的数据写入所述第二DPRAM,然后向所述CPU发出中断请求,由所述CPU从所述DPRAM读取来自所述数据寄存器组的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910092520A CN101692214A (zh) | 2009-09-17 | 2009-09-17 | Cpu与fpga间高速间接存取装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910092520A CN101692214A (zh) | 2009-09-17 | 2009-09-17 | Cpu与fpga间高速间接存取装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101692214A true CN101692214A (zh) | 2010-04-07 |
Family
ID=42080905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910092520A Pending CN101692214A (zh) | 2009-09-17 | 2009-09-17 | Cpu与fpga间高速间接存取装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101692214A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566982A (zh) * | 2012-01-10 | 2012-07-11 | 复旦大学 | 一种fpga两级流水线配置电路 |
CN104714832A (zh) * | 2013-12-14 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | 一种用于机载数据网络异步数据交互区的缓冲管理方法 |
WO2017143642A1 (zh) * | 2016-02-25 | 2017-08-31 | 邦彦技术股份有限公司 | 一种基于fpga实现pcm音频采集装置及系统及方法 |
CN108984441A (zh) * | 2018-05-31 | 2018-12-11 | 烽火通信科技股份有限公司 | 一种保持数据传送一致性的方法及系统 |
-
2009
- 2009-09-17 CN CN200910092520A patent/CN101692214A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566982A (zh) * | 2012-01-10 | 2012-07-11 | 复旦大学 | 一种fpga两级流水线配置电路 |
CN102566982B (zh) * | 2012-01-10 | 2014-06-11 | 复旦大学 | 一种fpga两级流水线配置电路 |
CN104714832A (zh) * | 2013-12-14 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | 一种用于机载数据网络异步数据交互区的缓冲管理方法 |
WO2017143642A1 (zh) * | 2016-02-25 | 2017-08-31 | 邦彦技术股份有限公司 | 一种基于fpga实现pcm音频采集装置及系统及方法 |
CN108984441A (zh) * | 2018-05-31 | 2018-12-11 | 烽火通信科技股份有限公司 | 一种保持数据传送一致性的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102981776B (zh) | 双倍数据率虚拟静态随机存取存储器及其控制器、存取与操作方法、写入与读取方法 | |
US5960458A (en) | Shared memory system | |
CN100585852C (zh) | 使用最少引脚而被测试的半导体器件、以及测试其的方法 | |
US20020194446A1 (en) | Data transfer control method, and peripheral circuit, data processor and data processing system for the method | |
CN101694512A (zh) | 测试电路和片上系统 | |
CN104599227A (zh) | 用于高速ccd数据存储的ddr3仲裁控制器及方法 | |
CN105335548B (zh) | 一种用于ice的mcu仿真方法 | |
CN101169673B (zh) | 实时时钟芯片接口电路的控制方法及实时时钟控制电路 | |
CN101859289A (zh) | 一种片外存储器访问控制器 | |
CN102789815B (zh) | 一种用于fpga配置的prom电路架构 | |
CN101692214A (zh) | Cpu与fpga间高速间接存取装置和方法 | |
CN101436171A (zh) | 模块化通信控制系统 | |
CN201788657U (zh) | 基于NiosⅡ软核CPU的LCD控制器 | |
CN117033279A (zh) | 一种时序输入输出控制方法 | |
CN103729165A (zh) | 应用于高速运动控制系统的pci从设备核心控制模块 | |
CN101769988A (zh) | 芯片调试方法、系统和调试模块 | |
CN101515436B (zh) | 嵌入式led显示屏控制系统 | |
CN103530263B (zh) | 基于fpga/mcu结构的1553b远程终端装置 | |
CN114089649A (zh) | 一种自动化测试工装系统及方法 | |
CN114281751A (zh) | 芯片系统 | |
US20110314197A1 (en) | Data processing system | |
CN102508807B (zh) | 一种基于sparc v8处理器的总线结构 | |
CN107918593B (zh) | 近端一对多串行总线的拓展接口电路以及通信方法 | |
CN102521180B (zh) | 一种多通道实时直读存储器结构 | |
CN201812284U (zh) | 一种存储器接口 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100407 |