CN107977327A - 一种fpga中使用双端口ram实现多端口存储单元的电路 - Google Patents
一种fpga中使用双端口ram实现多端口存储单元的电路 Download PDFInfo
- Publication number
- CN107977327A CN107977327A CN201711203296.7A CN201711203296A CN107977327A CN 107977327 A CN107977327 A CN 107977327A CN 201711203296 A CN201711203296 A CN 201711203296A CN 107977327 A CN107977327 A CN 107977327A
- Authority
- CN
- China
- Prior art keywords
- port
- dual
- read
- clock
- ram
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明属于集成电路技术领域,涉及一种FPGA中使用双端口RAM实现多端口存储单元的电路,所述电路包含FPGA中的双端口存储资源Block RAM和多端口转双端口的逻辑;其中所述逻辑内部采用三倍频外部时钟,实现一个外部时钟周期内可接受多个读写端口访问存储单元的要求。本发明可以同时执行多个端口发起的读写请求,从设计上保证了读写数据的建立保持时间。
Description
技术领域
本发明属于集成电路技术领域,涉及一种FPGA中使用双端口RAM实现多端口存储单元的电路。
背景技术
多数FPGA工具也会提供很多BLOCK RAM资源,使用提供的BLOCK RAM资源可以节约很多额外成本。但是内嵌RAM块的端口模式最多为True Dual-Port Mode,即包含有两个均可作为读写端口使用的端口。当设计中需要使用的存储单元端口数量多于两个时,若用寄存器来作为存储单元会占用过多的资源,设计也不够灵活。
发明内容
本发明的目的是:本发明提供了一种FPGA中使用双端口RAM实现多端口存储单元的电路,能够满足设计中既需要使用多端口读写操作,又要使用FPGA工具提供的双端口RAM资源的需求;不仅可以达到待实现功能,还能节约成本且保证时序。
本发明的技术方案是:一种FPGA中使用双端口RAM实现多端口存储单元的电路,包含FPGA中的双端口存储资源Block RAM和多端口转双端口的逻辑;其中所述逻辑内部采用三倍频外部时钟,实现一个外部时钟周期内可接受多个读写端口访问存储单元的要求。
本发明的有益效果是:本发明提供的一种FPGA中使用双口RAM实现多端口存储单元的电路,用于FPGA设计中使用工具提供的片上RAM BLOCK资源实现多端口存储单元的需求,可同时执行多个端口发起的读写请求,从设计上保证了读写数据的建立保持时间。
附图说明
图1为本发明FPGA中使用双口RAM实现多端口存储单元的电路示意图;
图2为本发明FPGA中使用双口RAM实现多端口存储单元的具体设计时序图。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其它实施例,都属于本发明的保护范围。
本发明所述的FPGA中使用双口RAM实现多端口存储单元的电路,存储单元的数量较多,若使用寄存器作为存储单元会使FPGA设计复杂、面积过大,因此使用FPGA工具中提供的存储资源Block RAM,最大程度发挥器件效能、节约成本。
所述的FPGA中使用双口RAM实现多端口存储单元的电路,FPGA设计中的存储单元需要多个读写端口,但FPGA工具提供的存储资源Block RAM,最多为两个端口,因此通过设计一个多端口转双端口的逻辑,通过逻辑内部采用三倍频外部时钟的方式,实现一个外部时钟周期内可接受多个读写端口访问存储单元的要求。
所述的FPGA中使用双口RAM实现多端口存储单元的电路,由FPGA中DCM产生同源不同频的两个时钟,外部逻辑接收读写使能信号、控制信号、地址、数据时使用一倍频时钟;内部设计的多端口转双端口逻辑中使用三倍频时钟分类不同端口的输入信号;双口RAM使用三倍频时钟写入或读取数据。
所述的FPGA中使用双口RAM实现多端口存储单元的电路,设计的多端口转双端口逻辑中所使用三倍频外部时钟的方式,不仅满足了多端口向双端口功能上的转换,还从设计上保证了写入读取数据的建立和保持时间。
下面结合具体实施例详细介绍实现方法。
如图1所示,一种FPGA中使用双端口RAM实现多端口存储单元的电路,由FPGA厂商提供的双端口片上RAM和多端口转双端口的逻辑组成。本实施例中完成四读两写的存储单元。
其中双端口片上RAM由FPGA工具生成,为True Dual-Port模式,即两个端口均可以既作为读端口也作为写端口,使用外部时钟clk。
如图2所示,多端口转双端口逻辑使用外部时钟clk的三倍频时钟clk3x,当外部逻辑在时钟clk的一时钟周期内同时发出两个写请求和四个读请求时,在多端口转双端口逻辑中转换成:
1)第一个clk3x时钟周期为:外部的写a、b端口转换为写内部双口RAM两个端口的写请求,产生写使能、写地址和写数据;
2)第二个clk3x时钟周期为:外部的读a、b端口转换为读内部双口RAM两个端口的读请求,产生读使能和读地址;
3)第三个clk3x时钟周期为:外部的读c、d端口转换为读内部双口RAM两个端口的读请求,产生读使能和读地址,并在双口RAM读数据通道中采样外部a、b端口发出的读请求数据;
4)第四个clk3x时钟周期为:外部逻辑a、b读端口得到上一时钟周期采样的读数据,并在双口RAM读数据通道中采样外部c、d端口发出的读请求数据;
5)第五个clk3x时钟周期为:外部逻辑c、d读端口得到上一时钟周期采样的读数据;
上述逻辑转换的方法,使发射沿和采样沿相隔两个clk3x时钟周期,保证了数据读出内部RAM的建立保持时间,并在综合时也会对外部时钟clk和分频时钟clk3x进行多周期路径的时序例外约束,从两方面保证了存储单元时序的正确性,添加的时序例外约束如下:
set_multicycle_path 2-setup-end-from[get_clock clk]-to[get_clockclk3x]
set_multicycle_path 1-hold-end-from[get_clock clk]-to[get_clockclk3x]
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (2)
1.一种FPGA中使用双端口RAM实现多端口存储单元的电路,其特征为:所述电路包含FPGA中的双端口存储资源Block RAM和多端口转双端口的逻辑;其中所述逻辑内部采用三倍频外部时钟,实现一个外部时钟周期内可接受多个读写端口访问存储单元的要求。
2.根据权利要求1所述的电路,其特征为:所述电路实现四读两写的存储单元;其中双端口片上RAM为True Dual-Port模式,使用外部时钟clk;多端口转双端口逻辑使用外部时钟clk的三倍频时钟clk3x,当外部逻辑在时钟clk的一时钟周期内同时发出两个写请求和四个读请求时,在多端口转双端口逻辑中转换成:
1)第一个clk3x时钟周期为:外部的写a、b端口转换为写内部双口RAM两个端口的写请求,产生写使能、写地址和写数据;
2)第二个clk3x时钟周期为:外部的读a、b端口转换为读内部双口RAM两个端口的读请求,产生读使能和读地址;
3)第三个clk3x时钟周期为:外部的读c、d端口转换为读内部双口RAM两个端口的读请求,产生读使能和读地址,并在双口RAM读数据通道中采样外部a、b端口发出的读请求数据;
4)第四个clk3x时钟周期为:外部逻辑a、b读端口得到上一时钟周期采样的读数据,并在双口RAM读数据通道中采样外部c、d端口发出的读请求数据;
5)第五个clk3x时钟周期为:外部逻辑c、d读端口得到上一时钟周期采样的读数据;
在综合时,需对外部时钟clk和三倍频时钟clk3x进行多周期路径的时序例外约束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711203296.7A CN107977327A (zh) | 2017-11-24 | 2017-11-24 | 一种fpga中使用双端口ram实现多端口存储单元的电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711203296.7A CN107977327A (zh) | 2017-11-24 | 2017-11-24 | 一种fpga中使用双端口ram实现多端口存储单元的电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107977327A true CN107977327A (zh) | 2018-05-01 |
Family
ID=62011759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711203296.7A Pending CN107977327A (zh) | 2017-11-24 | 2017-11-24 | 一种fpga中使用双端口ram实现多端口存储单元的电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107977327A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858695A (zh) * | 2006-01-24 | 2006-11-08 | 华为技术有限公司 | 一种提高ram利用效率的方法 |
CN101236774A (zh) * | 2007-02-01 | 2008-08-06 | 北京芯技佳易微电子科技有限公司 | 单端口存储器实现多端口存储功能的装置和方法 |
CN102404222A (zh) * | 2011-11-28 | 2012-04-04 | 曙光信息产业(北京)有限公司 | 一种支持多端口的网络数据报文统计系统 |
CN102662887A (zh) * | 2012-05-03 | 2012-09-12 | 天津市英贝特航天科技有限公司 | 一种多端口随机存储器 |
-
2017
- 2017-11-24 CN CN201711203296.7A patent/CN107977327A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858695A (zh) * | 2006-01-24 | 2006-11-08 | 华为技术有限公司 | 一种提高ram利用效率的方法 |
CN101236774A (zh) * | 2007-02-01 | 2008-08-06 | 北京芯技佳易微电子科技有限公司 | 单端口存储器实现多端口存储功能的装置和方法 |
CN102404222A (zh) * | 2011-11-28 | 2012-04-04 | 曙光信息产业(北京)有限公司 | 一种支持多端口的网络数据报文统计系统 |
CN102662887A (zh) * | 2012-05-03 | 2012-09-12 | 天津市英贝特航天科技有限公司 | 一种多端口随机存储器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102981776B (zh) | 双倍数据率虚拟静态随机存取存储器及其控制器、存取与操作方法、写入与读取方法 | |
KR100909805B1 (ko) | 멀티포트 메모리 장치 | |
CN101751980B (zh) | 基于存储器知识产权核的嵌入式可编程存储器 | |
CN103117797B (zh) | 高速载荷数据模拟源 | |
CN106250321B (zh) | 2r1w存储器的数据处理方法及数据处理系统 | |
CN101236774B (zh) | 单端口存储器实现多端口存储功能的装置和方法 | |
CN103295624A (zh) | 采用8t高性能单端口位单元的高性能双端口sarm架构 | |
CN101236776B (zh) | 一种串行接口快闪存储器及其设计方法 | |
CN104461399B (zh) | 非易失性存储器的写缓存器系统及其数据读写方法 | |
CN102610269B (zh) | 一种多读单写片内存储器 | |
US20130058174A1 (en) | Controller and access method for ddr psram and operating method thereof | |
CN206211976U (zh) | 一种时序控制全数字dll控制电路 | |
CN102004626B (zh) | 双口存储器 | |
CN107977327A (zh) | 一种fpga中使用双端口ram实现多端口存储单元的电路 | |
CN111489774A (zh) | 改进型用于可编程逻辑器件的配置存储器的数据中继结构 | |
CN201909847U (zh) | 基于vxi接口的双通道数字信号采集装置 | |
US20130100757A1 (en) | Dual-Port Memory and a Method Thereof | |
CN110059036B (zh) | 一种存储体内部多异步接口访问控制装置及方法 | |
CN101650967B (zh) | 硬件硅知识产权的缓冲器结构 | |
US11211932B1 (en) | Storage device | |
US20210398570A1 (en) | Semiconductor device | |
CN212990690U (zh) | 一种双串口总线Nand型存储器 | |
CN108682441B (zh) | 一种静态sram的读写电路及集成电路 | |
Lu et al. | Novel smart card SoC memory architecture based on embedded STT-MRAM | |
Kim et al. | A 512 Mb two-channel mobile DRAM (OneDRAM) with shared memory array |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180501 |