CN109376049B - 一种fpga嵌入式块存储器的性能测试方法 - Google Patents
一种fpga嵌入式块存储器的性能测试方法 Download PDFInfo
- Publication number
- CN109376049B CN109376049B CN201811614983.2A CN201811614983A CN109376049B CN 109376049 B CN109376049 B CN 109376049B CN 201811614983 A CN201811614983 A CN 201811614983A CN 109376049 B CN109376049 B CN 109376049B
- Authority
- CN
- China
- Prior art keywords
- read
- write
- clock
- embedded block
- block memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
Abstract
本发明涉及一种FPGA嵌入式块存储器的性能测试方法,包括如下步骤:(1)嵌入式块存储器功能设计;(2)伪随机序列测试向量设计;(3)读写使能、读写地址与读写时钟设计;(4)RTL级行为仿真;(5)测试结果分析。本发明提供的FPGA嵌入式块存储器的性能测试方法,实施步骤简单,可移植性强,具有一定的工程应用价值。
Description
技术领域
本发明涉及一种FPGA嵌入式块存储器的性能测试方法,属于集成电路技术领域。
背景技术
现场可编程门阵列(Field Programmable Gate Arrays,FPGA)是一种可编程使用的信号处理器件,用户可通过改变配置信息对其功能进行定义,以满足设计需求。与传统数字电路系统相比,FPGA具有可编程、高集成度、高速和高可靠性等优点,因此得到了越来越广泛的应用。
FPGA的片上存储资源通常可分为两类:分布式存储器(Distributed RandomAccess Memory,DRAM)和嵌入式块存储器(Block Random Access Memory,BRAM)。其中,DRAM用查找表(Look-Up Table,LUT)来实现,可用于少量数据的存储与缓存;BRAM是FPGA中的一种嵌入式IP(Intellectual Property,知识产权)硬核,相较于DRAM,其具有存储容量大、速度快、功耗低等优点。
当前,在BRAM的性能测试过程中,受限于FPGA内部IO(输入/输出)端口性能,以及传输线损耗、反射引起的信号完整性问题,BRAM引出测试非常困难。高采样率在短时间内产生大量数据,缓存数据的存储器难以完整保存结果。此外,高带宽测试设备的采购价格昂贵,高速专用测试印刷电路板(Printed Circuit Board,PCB)设计复杂,加工周期长,成本高。在FPGA的测试验证阶段,BRAM的极限工作频率测试成为需要解决的一个技术难题。
发明内容
本发明要解决技术问题是:克服上述技术的缺点,提供一种基于PLL的高速时钟产生方法,同时将伪随机序列作为激励输入的FPGA嵌入式块存储器的性能测试方法。
为了解决上述技术问题,本发明提出的技术方案是:一种FPGA嵌入式块存储器的性能测试方法,包括如下步骤:
(1)嵌入式块存储器功能设计;采用真双端口、读写时钟模式、有输入输出寄存、36位宽的RAM工作模式中作为嵌入式块存储器的工作模式;
(2)伪随机序列测试向量设计;伪随机序列由种子、时钟、复位信号通过确定性算法产生;
(3)读写使能、读写地址与读写时钟设计;读写使能、写地址、读地址分别通过读写使能产生模块、写地址产生模块、读地址产生模块生成;所述读写使能产生模块、写地址产生模块、读地址产生模块以复位信号和相应的时钟信号为输入,通过采用计数器的方式产生相应的输出信号;
(4)RTL级行为仿真;通过ModelSim进行RTL级行为仿真获得预期的正确输出结果;
(5)测试结果分析;通过与所述嵌入式块存储器的实测输出结果进行比较,即可判断所述嵌入式块存储器功能是否正确。
上述方案进一步的改进在于:所述步骤(3)中,包括快写慢读测试和慢写快读测试;在所述快写慢读测试过程中,写操作所需的快速时钟wrclock通过PLL倍频产生,读操作所需的慢速时钟rdclock直接采用时钟输入信号;在所述慢写快读测试过程中,读操作所需的快速时钟rdclock通过PLL倍频产生,写操作所需的慢速时钟wrclock直接采用时钟输入信号。
上述方案进一步的改进在于:所述步骤(5)中,通过逐步提高PLL输出的时钟频率,即可得到所述嵌入式块存储器所能达到的最快写时钟频率和最快读时钟频率。
本发明提供的FPGA嵌入式块存储器的性能测试方法,采用了基于PLL的高速时钟产生方法,解决了引出测试费用高、测试技术难度大的缺点;同时将伪随机序列作为激励输入,降低了测试时间,提高了测试效率。充分利用了FPGA芯片可编程的特点,以及芯片内部丰富的可编程逻辑单元与PLL单元,通过编程将FPGA的一部分逻辑资源用作测试向量发生器(Test Pattern Generation,TPG),TPG可以为BRAM提供所需的激励输入,这样只需在片外提供时钟信号和复位信号即可,从而大大减少了测试所需的仪器设备,同时也降低了测试PCB板的设计难度与加工成本。本方法实施步骤简单,可移植性强,具有一定的工程应用价值。
附图说明
下面结合附图对本发明作进一步说明。
图1是本发明一个优选的实施例性能测试实施流程。
图2是伪随机序列产生原理框图。
图3是快写慢读电路原理框图。
图4是慢写快读电路原理框图。
具体实施方式
实施例
本实施例的FPGA嵌入式块存储器的性能测试方法,如图1所示,包括如下步骤:
(1)嵌入式块存储器功能设计;
(2)伪随机序列测试向量设计;
(3)读写使能、读写地址与读写时钟设计;
(4)RTL级行为仿真;
(5)测试结果分析。
锁相环(Phase Locked Loop,PLL)是FPGA时钟管理单元的核心器件,可为FPGA内部的各个模块提供时钟输入。PLL是一个负反馈系统,它能够使输入时钟和经过频率合成后的输出时钟在频率和相位上同步,同时具备输入抖动滤波、零延迟缓冲以及相位匹配等功能。通过PLL的分频、倍频,可以产生测试所需的各种时钟频率。对于普通商用FPGA而言,PLL的输出频率范围可以达到10MHz~1GHz。
在FPGA内部,PLL的最快输出频率显著超过BRAM的极限工作速度,可以满足BRAM性能测试的要求。鉴于FPGA芯片具有可重构性的特点,可以借助内建自测试(Built in SelfTest,BIST)的理念对FPGA进行检测。通过编程将FPGA的一部分逻辑资源用作测试向量发生器。
对于一般商用FPGA芯片而言, BRAM支持的工作模式包括RAM(Random AccessMemory,随机存储器)模式和ROM(Read-Only Memory,只读存储器)模式;支持的端口模式包括:包模式、单端口模式、简单双端口模式和真双端口模式;支持的时钟模式包括:单时钟模式、读写时钟模式和独立时钟模式;支持的字宽模式包括:1位、2位、4位、8位、9位、16位、18位、32位、36位等。数据输入模式可以被配置成有寄存和无寄存两种,就测试而言,无寄存模式是包括在有寄存器模式中的,故通常只需测试验证有寄存模式。
综上,为了提高测试覆盖率与节省测试时间,在步骤(1)中,采用真双端口、读写时钟模式、有输入输出寄存、36位宽的RAM工作模式作为BRAM的典型工作模式。
遍历测试是对被测电路输入所有可能的测试激励,并观察被测电路输出结果的测试方法。假设写入BRAM的数据data位宽为n,则进行遍历测试所需的测试矢量有2n种。设每次测试并完成观测的单位时间为t,则完成测试需要的总时间为2n·t。对于BRAM而言,该测试方法需要消耗大量的测试时间,测试成本高昂。为解决此问题,data可以通过伪随机序列产生,从而达到无需遍历测试所有测试矢量的目的。这样既可提高测试效率,又可减少所需的IO数。如图2所示,步骤(2)中,伪随机序列由种子、时钟、复位信号通过确定性算法产生。
步骤(3)中,对BRAM的极限工作频率进行测试,BRAM的极限工作频率可细分为极限写操作频率和极限读操作频率,因此BRAM的性能测试也分为快写慢读测试和慢写快读测试,分别测试BRAM的极限写入速度和极限读出速度。
如图3所示,在快写慢读测试过程中,写操作所需的快速时钟wrclock可以通过PLL倍频产生,读操作所需的慢速时钟rdclock可以直接采用时钟输入信号。
如图4所示,在慢写快读测试过程中,读操作所需的快速时钟rdclock可以通过PLL倍频产生,写操作所需的慢速时钟wrclock可以直接采用时钟输入信号。
读写使能wren/rden、写地址wraddress、读地址rdaddress可以分别通过读写使能产生模块、写地址产生模块、读地址产生模块生成。这些模块以复位信号和相应的时钟信号为输入,通过采用计数器的方式产生相应的输出信号。
BRAM的输出信号q需进行按位异或操作,最后输出一位宽的out信号。这样可以减少输出信号所需的IO数,同时降低了数据位间的串扰。在慢写快读测试过程中,异或操作还可以降低输出信号的翻转率,有助于屏蔽由信号完整性问题导致的输出错误。
当嵌入式块存储器的工作模式与各输入激励信号确定后,就可以通过ModelSim进行RTL级(Register Transfer Level,寄存器传输级)行为仿真获得预期的正确输出结果;通过与BRAM的实测输出结果进行比较,即可判断BRAM功能是否正确。通过逐步提高PLL输出时钟c0的频率,即可得到BRAM所能达到的最快写时钟频率和最快读时钟频率。
本发明不局限于上述实施例。凡采用等同替换形成的技术方案,均落在本发明要求的保护范围。
Claims (1)
1.一种FPGA嵌入式块存储器的性能测试方法,其特征在于,包括如下步骤:
(1)嵌入式块存储器功能设计:采用真双端口、读写时钟模式、有输入输出寄存、36位宽的RAM工作模式作为嵌入式块存储器的工作模式;
(2)伪随机序列测试向量设计:伪随机序列由种子、时钟、复位信号通过确定性算法产生;
(3)读写使能、读写地址与读写时钟设计:读写使能、写地址、读地址分别通过读写使能产生模块、写地址产生模块、读地址产生模块生成;所述读写使能产生模块、写地址产生模块、读地址产生模块以复位信号和相应的时钟信号为输入,通过采用计数器的方式产生相应的输出信号;
(4)RTL级行为仿真:通过ModelSim进行RTL级行为仿真获得预期的正确输出结果;
(5)测试结果分析:将预期的正确输出结果与嵌入式块存储器的实测输出结果进行比较,判断所述嵌入式块存储器功能是否正确;
所述步骤(3)中,包括快写慢读测试和慢写快读测试;在所述快写慢读测试过程中,写操作所需的快速时钟wrclock通过PLL倍频产生,读操作所需的慢速时钟rdclock直接采用时钟输入信号;在所述慢写快读测试过程中,读操作所需的快速时钟rdclock通过PLL倍频产生,写操作所需的慢速时钟wrclock直接采用时钟输入信号;
所述步骤(5)中,通过逐步提高PLL输出的时钟频率,得到所述嵌入式块存储器所能达到的最快写时钟频率和最快读时钟频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811614983.2A CN109376049B (zh) | 2018-12-27 | 2018-12-27 | 一种fpga嵌入式块存储器的性能测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811614983.2A CN109376049B (zh) | 2018-12-27 | 2018-12-27 | 一种fpga嵌入式块存储器的性能测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109376049A CN109376049A (zh) | 2019-02-22 |
CN109376049B true CN109376049B (zh) | 2022-04-01 |
Family
ID=65371989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811614983.2A Active CN109376049B (zh) | 2018-12-27 | 2018-12-27 | 一种fpga嵌入式块存储器的性能测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109376049B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399257A (zh) * | 2019-07-04 | 2019-11-01 | 上海创功通讯技术有限公司 | 存储器的检测方法、电子设备及计算机可读存储介质 |
CN113985256A (zh) * | 2021-11-01 | 2022-01-28 | 北京中科胜芯科技有限公司 | 一种fpga寿命试验方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551439A (zh) * | 2009-02-24 | 2009-10-07 | 北京时代民芯科技有限公司 | 一种fpga输入输出模块的内建自测试方法 |
US7761754B1 (en) * | 2008-03-25 | 2010-07-20 | Altera Corporation | Techniques for testing memory circuits |
CN106098104A (zh) * | 2016-06-11 | 2016-11-09 | 复旦大学 | Fpga芯片内嵌bram核的测试系统及方法 |
CN106205736A (zh) * | 2016-06-29 | 2016-12-07 | 联想(北京)有限公司 | 一种测试方法及测试设备 |
CN109032879A (zh) * | 2017-06-09 | 2018-12-18 | 展讯通信(上海)有限公司 | 多核处理器访存数据检测验证系统及方法 |
-
2018
- 2018-12-27 CN CN201811614983.2A patent/CN109376049B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761754B1 (en) * | 2008-03-25 | 2010-07-20 | Altera Corporation | Techniques for testing memory circuits |
CN101551439A (zh) * | 2009-02-24 | 2009-10-07 | 北京时代民芯科技有限公司 | 一种fpga输入输出模块的内建自测试方法 |
CN106098104A (zh) * | 2016-06-11 | 2016-11-09 | 复旦大学 | Fpga芯片内嵌bram核的测试系统及方法 |
CN106205736A (zh) * | 2016-06-29 | 2016-12-07 | 联想(北京)有限公司 | 一种测试方法及测试设备 |
CN109032879A (zh) * | 2017-06-09 | 2018-12-18 | 展讯通信(上海)有限公司 | 多核处理器访存数据检测验证系统及方法 |
Non-Patent Citations (1)
Title |
---|
"基于内建自测试的测试向量生成方法";魏淑华 等;《电脑与电信》;20140630(第06期);第44-46+57页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109376049A (zh) | 2019-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7814385B2 (en) | Self programmable shared bist for testing multiple memories | |
CN102262212B (zh) | 一种检测数字专用集成电路中触发器单粒子效应的系统 | |
CN102981776A (zh) | 双倍数据率虚拟静态随机存取存储器及其控制器、存取与操作方法、写入与读取方法 | |
CN109376049B (zh) | 一种fpga嵌入式块存储器的性能测试方法 | |
CN104810060A (zh) | 半导体测试装置 | |
CN100368818C (zh) | 一种芯片内建电可擦除存储器的测试模块及其测试方法 | |
CN105426314A (zh) | 一种fpga存储器的工艺映射方法 | |
CN112712829A (zh) | 一种跨时钟域的寄存器读写电路及方法 | |
CN102967819A (zh) | 高速测试电路与方法 | |
US6909301B2 (en) | Oscillation based access time measurement | |
US20020172080A1 (en) | Propagation delay independent sdram data capture device and method | |
KR100850204B1 (ko) | 고속 반도체 메모리 장치를 테스트하기 위한 고주파 커맨드 신호 및 어드레스 신호 생성 방법 및 장치 | |
US20220120811A1 (en) | High-speed functional protocol based test and debug | |
US20100027359A1 (en) | Memory test circuit which tests address access time of clock synchronized memory | |
CN108053856B (zh) | 读写sram的电路及sram数据访问方法 | |
Che | FPGA-based memory test system design and test algorithm implementation | |
US8412983B2 (en) | Memory test circuit, semiconductor integrated circuit, and memory test method | |
TWI387922B (zh) | 晶片燒錄系統 | |
CN113764012B (zh) | 一种可调刷新速率的双端口存储器 | |
CN219040074U (zh) | 集成芯片及数据处理电路芯片 | |
CN218974525U (zh) | 芯片测试系统 | |
Zhang et al. | A Precise Design for Testing High-Speed Embedded Memory using a BIST Circuit | |
KR102666336B1 (ko) | 클록 생성 회로, 메모리 및 클록 듀티 사이클 교정 방법 | |
US10714207B2 (en) | Scannable-latch random access memory | |
CN117235003A (zh) | 存储器读出电路,存储器内的数据运算方法及相关设备 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220315 Address after: 250000 2-110, Taifu Plaza, No. 277, Quancheng Road, Lixia District, Jinan City, Shandong Province Applicant after: Shandong Quanjing Shengyue Information Technology Co.,Ltd. Address before: 211103 No.33 Dongqi Road, Dongshan international enterprise R & D Park, Jiangning District, Nanjing City, Jiangsu Province Applicant before: NANJING SHENGYUE NEW MATERIAL TECHNOLOGY CO.,LTD. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |