CN205247376U - 基于fpga的四口ram - Google Patents

基于fpga的四口ram Download PDF

Info

Publication number
CN205247376U
CN205247376U CN201520979028.4U CN201520979028U CN205247376U CN 205247376 U CN205247376 U CN 205247376U CN 201520979028 U CN201520979028 U CN 201520979028U CN 205247376 U CN205247376 U CN 205247376U
Authority
CN
China
Prior art keywords
ram
module
fifo
hole
data
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.)
Expired - Fee Related
Application number
CN201520979028.4U
Other languages
English (en)
Inventor
吕波
张涌
岳振
黄侃
石永彪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiwu Photoelectric Technology Co ltd
Original Assignee
Shanghai Institute of Technical Physics of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Institute of Technical Physics of CAS filed Critical Shanghai Institute of Technical Physics of CAS
Priority to CN201520979028.4U priority Critical patent/CN205247376U/zh
Application granted granted Critical
Publication of CN205247376U publication Critical patent/CN205247376U/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本专利公开了一种基于FPGA的四口RAM,四口RAM由一个双口RAM模块、四个缓存模块和两个控制模块构成。双口RAM的作用是作为四口RAM的存储实体;四个缓存模块是外部多处理器与双口RAM之间的数据传输中介层,每个缓存模块由三个FIFO构成,分别用于缓存外部多处理器的读或写信号、地址和数据;控制模块由有限状态机实现,并通过分时读取四个缓存模块,完成对双口RAM的读写操作,实现四口RAM功能。本专利结构对称,实现简单,成本低,满足大量数据的要求,并能实时高效地完成数据的传输与交换。

Description

基于FPGA的四口RAM
技术领域
本专利涉及一种四口RAM,具体是涉及一种基于FPGA的四口RAM,应用于多处理器并行***之间的通信,保证大量的数据传输和交换的实时性要求。
背景技术
随着数字处理技术的深入研究和广泛应用,不断涌现的处理算法和各种现实需求对硬件***性能的要求越来越高。由于单处理器的运算能力往往比较有限,为了满足现代数字处理***的实时、高速及复杂的功能要求,克服传统单处理器***处理能力的瓶颈,并行、通用且处理能力强大的多处理器***逐渐受到人们的青睐。在并行处理***中,数据通信问题成为制约其性能提高的主要因素,如何提高各处理器之间的数据传输速度及加大数据交换量是控制***设计中的一个关键问题。
目前,在多处理器***中,多采用寄存器(即锁存器件)、FIFO器件互连或者多口RAM器件等连接方式进行数据通信。例如中国期刊《测控技术》朱欣华的“多机***中双口RAM的构成方法及应用”、《微计算机信息》王雪的“基于双口RAM的双CPU并行通信的研究与实现”、《微计算机信息》张有为等的“基于双口RAM的双CPU控制***设计”论述了当处理器数量为两个时,双口RAM很方便地实现了处理器之间的通信,但存在双口RAM大都容量偏小、价格昂贵的问题。若处理器数量超过两个时,中国期刊《中国测试技术》黄锐等的“基于FPGA的多DSP***端口电路设计”、《计算机工程》潘昉晟等的“基于FPGA和多DSP的并行信号处理***的实现”论述了通过FIFO互连方式实现,这种方法的缺点也很明显,就是处理器较多时,FIFO互连结构复杂,***实现困难。中国期刊《光电工程》周生兵等的“基于4×DSP的并行图像处理***”论述了通过一个同步四口SRAM和PCI总线构成的互连结构,《高技术通讯》章锦文等的“基于DSP的神经网络信号处理机的研究”论述了通过多个双口RAM作为局部存储器,四口RAM器件作为共享存储器进行互连的结构,但是这些方案同样存在器件过多、电路复杂、价格昂贵的问题,致使PCB布线困难,***设计成本巨大。
发明内容
本专利的目的在于提供一种基于FPGA的四口RAM,解决现有技术问题中存在的器件过多、电路复杂、价格昂贵的技术问题。
建立在FPGA芯片上的四口RAM包括一个双口RAM模块、四个缓存模块和两个控制模块,其中所述的四个缓存模块,每个缓存模块由3个FIFO构成,分别为用于缓存外部处理器读或写信号的命令FIFO、缓存地址的地址FIFO和缓存数据的数据FIFO,所述的四口RAM中双口RAM模块的两个端口和四个缓存模块输出端口的控制通过两个控制模块实现,所述的控制模块由有限状态机实现,一个控制模块控制两个缓存模块的输出端口和其分时复用双口RAM的一个端口。
控制模块中的有限状态机实现步骤如下:
1)FPGA上电启动后,有限状态机启动。若两个缓存模块的命令FIFO同时非空时,为了分时复用目的,将两个缓存模块分级,处于高优先级的需要优先处理,低优先级则需要处理完高优先级的操作后再处理;
此状态下首先检测需要优先处理的缓存模块的命令FIFO是否非空,若非空则进入该缓存模块的读写操作,否则检测另外一个缓存模块的命令FIFO是否非空,若非空则进入该缓存模块的读写操作,否则,若同时空将继续处于空状态;
2)给出缓存模块的命令FIFO读使能,读出缓存的读或写信号,并判断是读信号还是写信号;
3)若步骤2)判断为写信号时,则给出缓存模块的地址FIFO和数据FIFO的读使能,读出地址和数据,并写入双口RAM;
若步骤2)判断为读信号时,则给出缓存模块的地址FIFO的读使能,读出地址,并从双口RAM读出数据;
4)若步骤2)和步骤3)操作的是高优先级的缓存模块,则需要检测低优先级缓存模块的命令FIFO是否非空,若非空则重复步骤2)和步骤3)进行读写操作,否则返回空状态;若步骤2)和步骤3)操作的是低优先级的缓存模块,则直接返回空状态。
本专利具有的优点和显著特点是:
利用FPGA大容量、高速且集成度高、体积小、灵活可重配置、实验风险小等优点,替代了价格昂贵的寄存器、FIFO器件和多口RAM器件,不仅简化了电路,节省了电路板的空间,而且可以很好地解决并行性和速度问题,使得基于FPGA的四口RAM易于修改、测试及***升级,可降低设计成本,缩短开发周期。
附图说明
图1是基于FPGA的四口RAM框图。
图2是基于所设计的四口RAM的多处理器并行***实施例框图。
图3是四口RAM的双口RAM模块设计示意图。
图4是四口RAM缓存模块的命令FIFO设计示意图。
图5是四口RAM缓存模块的地址FIFO设计示意图。
图6是四口RAM缓存模块的数据FIFO设计示意图。
图7是四口RAM控制模块1的有限状态机的状态转移总图。
图8是四口RAM控制模块1的有限状态机的DSP_1读写操作状态转移子图。
图9是四口RAM控制模块1的有限状态机的DSP_2读写操作状态转移子图。
图10是四口RAM控制模块2的有限状态机2的状态转移总图。
图11是四口RAM控制模块2的有限状态机的DSP_3读写操作状态转移子图。
图12是四口RAM控制模块2的有限状态机的DSP_4读写操作状态转移子图。
具体实施方式
下面将结合本专利实施例中的附图,对本专利实施例中的技术方案进行详细说明,显然,所描述的实施例仅仅是本专利的一部分实施例,而不是全部的实施例。
图1是基于FPGA的四口RAM的框图,如图1所示,基于FPGA的四口RAM包括三大模块,分别为一个双口RAM模块、四个缓存模块(缓存模块1、缓存模块2、缓存模块3和缓存模块4)和两个控制模块(控制模块1和控制模块2),其中双口RAM作为四口RAM的存储实体,缓存模块用于缓存外部处理器读写四口RAM的读或写信号、地址和数据,而控制模块用于控制双口RAM模块的两个端口和四个缓存模块的输出端口。
如图1所示,四个缓存模块,其输出端口通过控制模块读取并写入双口RAM的两个端口作为四口RAM的四个端口,缓存模块1作为端口1,缓存模块2作为端口2,缓存模块3作为端口3,缓存模块4作为端口4。将四个缓存模块分为两组,缓存模块1和缓存模块2分时复用双口RAM左边的端口,缓存模块3和缓存模块4分时复用双口RAM右边的端口。
两个控制模块分别由有限状态机实现,控制模块1控制缓存模块1和缓存模块2的输出端口以及双口RAM左边的端口,控制模块2控制缓存模块3和控制模块4的输出端口和双口RAM右边的端口。
如图1所示,基于FPGA的四口RAM两端高度对称,结构简单,易于操作。
图2为基于所设计的四口RAM的多处理器并行***实施例子框图,具体为多处理器由四个DSP(DSP_1、DSP_2、DSP_3、DSP_4)构成,DSP_1~DSP_4分别连接到四口RAM的端口1~端口4,即连接至缓存模块1~缓存模块4的输入端口,其中DSP通过其外部存储器扩展端口EMIF与四口RAM连接。
FPGA芯片采用Xilinx的Spartan6系列XC6SLX100,该芯片的逻辑单元(LogicCells)有101261个,最大的可设计RAM空间高达4824Kb。
DSP芯片采用TI的TMS320C6713,该款芯片是高性能32位浮点DSP。EMIF是外部存储器与片内运算处理单元间的端口,其端口具有32位数据总线,20位地址总线,4个存储空间选通信号和4个字节使能信号。
外部时钟选择MERCURY的50MHz差分晶振HM57ET-50.000R-C1.5,然后通过倍频为200MHz形成内部***时钟。
图3为四口RAM中的双口RAM模块设计的示意图,双口RAM有两路完全独立的数据总线、地址总线和读写控制电路。可以通过Xilinx强大的IP核实现双口RAM。本实例的双口RAM通过Xilinx的集成开发环境ISE14.4软件插件COREGenerator生成,所设计的RAM空间为256KB,地址总线宽度为17bit,数据总线宽度为16bit,故示意图中的地址总线M=17,N=16。
图4~图6为四口RAM中的缓存模块设计示意图,缓存模块是DSP与双口RAM模块的数据传输中介层。如图所示,该模块包括三个FIFO单元,分别为命令FIFO、地址FIFO和数据FIFO,命令FIFO用于缓存DSP的读或写信号,其宽度为1bit;地址FIFO用于缓存DSP的地址,其宽度如前所述为17bit;数据FIFO用于缓存DSP的数据总线数据,其数据宽度如前所述为16bit。
四个缓存模块的FIFO单元分别为命令FIFO_1~命令FIFO_4、地址FIFO_1~地址FIFO_4和数据FIFO_1~数据FIFO_4。
其中数据FIFO_1~数据FIFO_4只用于DSP写入双口RAM时的数据缓冲,而从双口RAM读出数据,是由控制模块从双口RAM读出数据后直接从DSP的数据总线输出。
图7~图9、图10~图12分别是四口RAM两个控制模块的状态转移图,是缓存模块与双口RAM进行实时、高效、稳定通信的关键,也是本专利最核心的部分。其中控制模块2的有限状态机与控制模块1的操作过程完全一致,故本实例以控制模块1为例,详述如下:
1)状态Idle:***上电后,有限状态机准备传输,FPGA首先发送清零控制信号,将有限状态机内的所有功能模块进行清零。为了分时复用的目的,将连接DSP_1的缓存模块确定为高优先级,将连接DSP_2的缓存模块确定为低优先级,若DSP_2与DSP_1同时进行读写操作,则优先处理DSP_1,再处理DSP_2。
该状态内会不断检测两个缓存模块中的命令FIFO_1和命令FIFO_2是否非空。首先检测命令FIFO_1,若非空则进入到状态ST1,进行DSP_1的读写操作,否则检测命令FIFO_2,若非空则进入到状态ST8,进行DSP_2的读写操作。如果同时空,则仍在Idle状态。
2)状态ST1:转到DSP_1的读写操作后,给出命令FIFO_1的读使能信号,读出读或写信号,然后转到状态ST2。
3)状态ST2:对状态ST1读出的信号进行判断,若该信号表示为DSP_1向双口RAM写操作,进入状态ST3,否则表示DSP_1从双口RAM读操作,进入到状态ST5。
4)状态ST3:给出地址FIFO_1和数据FIFO_1的读使能信号,读出地址和数据,然后转到状态ST4。
5)状态ST4:给出双口RAM的写入使能信号,根据状态ST3读出的地址和数据,将数据写入双口RAM相应的地址,然后转到状态ST7,检测命令FIFO_2是否非空。
6)状态ST5:给出地址FIFO_1的读使能信号,并读出其中缓存的地址,然后转到状态ST6。
7)状态ST6:用于控制从双口RAM中读出数据,即,将状态ST5读出的双口RAM的相应地址将数据通过DSP_1数据总线输出。
8)状态ST7:对DSP_1的读写操作完成后,检测命令FIFO_2是否非空,若非空则转到对DSP_2的读写操作,否则返回状态Idle。
9)状态ST8:与状态ST1的功能相同,有限状态机进行DSP_2的读写操作。此状态给出命令FIFO_2的读使能信号,读出读或写信号,然后转到状态ST9。
10)状态ST9:与状态ST2的功能相同。对状态ST8读出的信号进行判断,若表示为DSP_2向双口RAM写操作,进入状态ST10,否则表示DSP_2从双口RAM读操作,进入到状态ST12。
11)状态ST10:与状态ST3的功能相同。给出地址FIFO_2和数据FIFO_2的读使能信号,读出地址和数据,然后转到状态ST11。
12)状态ST11:与状态ST4的功能相同。给出双口RAM的写入使能信号,根据状态ST10读出的地址和数据,将数据写入双口RAM相应的地址,然后直接返回状态Idle。
13)状态ST12:与状态ST5的功能相同。给出地址FIFO_2的读使能信号,读出地址,然后转到状态ST13。
14)状态ST13:与状态ST6的功能相同。用于控制从双口RAM中读出数据,即,将状态ST12读出的双口RAM相应地址将数据通过DSP_2数据总线输出,然后直接返回状态Idle。

Claims (1)

1.一种基于FPGA的四口RAM,它包括一个双口RAM模块、四个缓存模块和两个控制模块,其特征在于:
所述的四口RAM建立在FPGA芯片上,其中:所述的四个缓存模块,每个缓存模块由3个FIFO构成,分别为用于缓存外部多处理器读或写信号的命令FIFO、缓存地址的地址FIFO和缓存数据的数据FIFO,
所述的四口RAM中双口RAM模块的两个端口和四个缓存模块输出端口的控制通过两个控制模块实现,所述的控制模块由有限状态机来实现,一个控制模块控制两个缓存模块的输出端口和其分时复用双口RAM的一个端口。
CN201520979028.4U 2015-12-01 2015-12-01 基于fpga的四口ram Expired - Fee Related CN205247376U (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201520979028.4U CN205247376U (zh) 2015-12-01 2015-12-01 基于fpga的四口ram

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201520979028.4U CN205247376U (zh) 2015-12-01 2015-12-01 基于fpga的四口ram

Publications (1)

Publication Number Publication Date
CN205247376U true CN205247376U (zh) 2016-05-18

Family

ID=55946458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201520979028.4U Expired - Fee Related CN205247376U (zh) 2015-12-01 2015-12-01 基于fpga的四口ram

Country Status (1)

Country Link
CN (1) CN205247376U (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373494A (zh) * 2015-12-01 2016-03-02 中国科学院上海技术物理研究所 一种基于fpga的四口ram
CN111078598A (zh) * 2018-10-18 2020-04-28 珠海格力电器股份有限公司 存储模块数据访问控制方法、数据访问装置和芯片

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373494A (zh) * 2015-12-01 2016-03-02 中国科学院上海技术物理研究所 一种基于fpga的四口ram
CN111078598A (zh) * 2018-10-18 2020-04-28 珠海格力电器股份有限公司 存储模块数据访问控制方法、数据访问装置和芯片
CN111078598B (zh) * 2018-10-18 2021-06-01 珠海格力电器股份有限公司 存储模块数据访问控制方法、数据访问装置和芯片

Similar Documents

Publication Publication Date Title
CN105373494A (zh) 一种基于fpga的四口ram
CN102946529B (zh) 基于fpga和多核dsp的图像传输及处理***
CN102073481B (zh) 多核dsp可重构专用集成电路***
Yuyama et al. A 45nm 37.3 GOPS/W heterogeneous multi-core SoC
CN106886177B (zh) 一种雷达信号处理***
CN103020002B (zh) 可重构多处理器***
CN105207957B (zh) 一种基于片上网络多核架构的***
EP2224345A2 (en) Multiprocessor with interconnection network using shared memory
CN109828941A (zh) Axi2wb总线桥实现方法、装置、设备及存储介质
CN102609389A (zh) 一种基于vpx总线实现的数字信号处理平台
CN205247376U (zh) 基于fpga的四口ram
CN105892359A (zh) 一种多dsp并行处理***及其处理方法
CN114443170A (zh) Fpga动态并行加卸载***
CN109656856A (zh) 利用fpga实现非复用总线与复用总线互联装置及方法
CN108874730A (zh) 一种数据处理器及数据处理方法
WO2019211611A1 (en) Data processing network with flow compaction for streaming data transfer
CN104598404B (zh) 计算设备扩展方法和装置、以及可扩展的计算***
CN103412849A (zh) ARM处理器的NoC资源网络接口及其驱动方法
CN105791172A (zh) 一种基于龙芯2H的Rapid IO数据交换板
CN102043750B (zh) 一种微处理器总线结构及微处理器
CN101556571A (zh) 实现clb总线与从属模块之间高低速切换的桥接器
JP2525117B2 (ja) アレイ・プロセッサ
CN109766293B (zh) 连接芯片上fpga和人工智能模块的电路和***芯片
CN202495036U (zh) 总线从单元通用接口
CN208077175U (zh) 拟态任务处理机

Legal Events

Date Code Title Description
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170531

Address after: 201821, Shanghai Jiading Industrial Zone, green road, No. 2398, comprehensive experimental building 1, 1, the ground floor, Jiading District

Patentee after: SHANGHAI JIWU PHOTOELECTRIC TECHNOLOGY CO.,LTD.

Address before: 200083 Yutian Road, Shanghai, No. 500, No.

Patentee before: SHANGHAI INSTITUTE OF TECHNICAL PHYSICS, CHINESE ACADEMY OF SCIENCE

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160518

Termination date: 20211201