存储器数据读取电路及芯片的制作方法

文档序号:30864035发布日期:2022-07-23 08:53阅读:163来源:国知局
存储器数据读取电路及芯片的制作方法

1.本技术属于数字电路技术领域,具体涉及一种存储器数据读取电路及芯片。


背景技术:

2.随着集成电路技术的不断更新迭代,芯片的结构和功能复杂度都越来越高,一款芯片的完成难度也越来越大,而完成后对其进行修改或重新制作的成本也越来越高,所以,对芯片的功能正确性及良品率要求也就越来越高,故芯片功能正确性测试的重要性也就日益突出。
3.目前,通常先读取硬件的存储器中的数据,再将读取的数据与预设数据进行比较,若完全一致,则说明该芯片的功能正常;若不完全一致,则可对应不一致的数据确定芯片的异常问题。
4.现有技术中,读取硬件存储器中的数据,所采用的存储器数据读取电路方案往往思路简单,非常容易被破解,且读取过程繁琐,通用性较差。


技术实现要素:

5.本技术提出一种存储器数据读取电路及芯片,该电路结构简单,只需要发送简单的命令便可以测试任意地址的数据,通用性较好。
6.本技术第一方面实施例提出了一种存储器数据读取电路,包括:
7.双向引脚,包括输入引脚和输出引脚,分别与上位机连接,所述输入引脚用于接收上位机发送的命令数据和测试启动数据,所述输出引脚用于将读取结果反馈至所述上位机;
8.第一组合逻辑电路,与所述输入引脚连接,自所述测试启动数据中选出地址数据,并将所述地址数据发送至地址寄存器组,将所述测试启动数据中除地址数据外的剩余数据发送至启动控制单元;
9.地址寄存器组,与待读取的存储器连接,存储所述地址数据,并控制所述存储器的地址端;
10.启动控制单元,与所述存储器连接,并基于所述剩余数据生成输出信号,所述输出信号使所述存储器处于读取模式;
11.数据寄存器组,分别与所述输出引脚和所述存储器连接,读取所述存储器中的相应内容,并将读取结果发送至所述输出引脚;
12.主控状态机,分别与所述括输入引脚、所述读取控制模块及所述数据寄存器组连接,根据所述命令数据进行对应的状态跳转,以开启所述地址寄存器组和所述数据寄存器组的工作时序。
13.在本技术一些实施例中,还包括时钟配置模块,所述时钟模块分别与所述括输入引脚和所述主控状态机连接,并基于所述测试启动数据在相应状态下分别生成第五时钟和第六时钟;
14.所述第五时钟触发所述地址寄存器组存入所述地址数据;所述第六时钟触发所述数据寄存器组读取所述存储器中对应所述地址数据的内容。
15.在本技术一些实施例中,所述时钟配置模块包括配置寄存器组、第五逻辑电路及第六逻辑电路;所述状态包括第一状态,所述第一状态触发所述主控状态机获取第一配置数据;
16.所述配置寄存器组分别与所述输入引脚和所述主控状态机连接,基于所述测试启动数据生成第二配置数据;
17.所述第一配置数据和所述第二配置数据经过所述第五逻辑电路,生成所述第五时钟;所述第一配置数据和所述第二配置数据经过所述第六逻辑电路,生成所述第六时钟。
18.在本技术一些实施例中,所述配置寄存器组包括第一时钟端和第一使能端,所述第一时钟端连接用于接收上位机提供的时钟信息,所述第一使能端连接第二逻辑电路的输出端,所述第二逻辑电路输入端接入所述第一配置数据,在所述主控状态机处于指定状态时,所述第二逻辑电路输出高电平,触发所述配置寄存器组生成所述第二配置数据。
19.在本技术一些实施例中,所述启动控制单元输入所述剩余数据和所述第二配置数据,生成所述存储器的使能数据、时钟数据及操作模式数据,且所述使能数据、所述时钟数据及所述操作模式数据均满足所述存储器的读时序,使所述存储器处于可读状态。
20.在本技术一些实施例中,所述地址寄存器组的时钟端通过所述第五时钟控制,所述第五时钟生成则触发所述地址寄存器组存入所述地址数据;所述数据寄存器组的时钟端通过所述第六时钟控制,所述第六时钟生成且所述数据寄存器组的使能端为高电平时,触发所述数据寄存器组读取所述存储器中对应所述地址数据的内容。
21.在本技术一些实施例中,所述数据寄存器组的使能端连接比较逻辑电路的输出端,所述比较逻辑电路的输入端为所述剩余数据和所述存储器在芯片内存中分配的逻辑空间地址,若所述剩余数据的逻辑空间地址和所述存储器在芯片内存中分配的逻辑空间地址一致,则所述比较逻辑电路输出高电平。
22.在本技术一些实施例中,还包括输入输出寄存器组,所述输入输出寄存器组分别与所述双向引脚和所述主控状态机连接,在所述主控状态机跳转至第三状态时,所述输入输出寄存器组由低位到高位串行存入所述测试启动数据,对所述测试启动数据进行串并转换,并将转换后的数据分别发送至所述读取控制模块和所述时钟配置模块;或者,
23.在所述主控状态机跳转至第三状态时,所述输入输出寄存器组并行存入所述读取结果,对所述读取结果进行并串转换,并将所述读取结果由高位到低位串行发送至所述输出引脚。
24.在本技术一些实施例中,还包括测试启动状态机,所述测试启动状态机的输入端连接所述接口模块,并接入上位机发送的输入信号;所述测试启动状态机的输出端经过第一逻辑电路生成输出信号,所述输出信号分别输入所述输入输出寄存器组的使能端和所述读取控制模块的使能端。
25.在本技术一些实施例中,所述测试启动状态机包括第二组合逻辑电路和多个第一寄存器,所述第二组合逻辑电路用于接收所述输入信号,多个第一寄存器分别与所述第二组合逻辑电路连接,用于存储和输出所述输入信号。
26.在本技术一些实施例中,还包括输入缓存器,所述输入缓存器设置于所述输入输
出寄存器组和所述读取控制模块之间,用于缓存所述输入输出寄存器组上的数据,并发送给所述读取控制模块。
27.在本技术一些实施例中,还包括输出缓存器,所述输出缓存器设置于所述输入输出寄存器组和所述数据寄存器组之间,用于缓存所述数据寄存器组存储的数据,并发送给所述输入输出寄存器组。
28.本技术第二方面的实施例提供了一种芯片,其上形成有如第一方面所述的存储器数据读取电路。
29.本技术实施例中提供的技术方案,至少具有如下技术效果或优点:
30.本技术实施例提供的存储器数据读取电路,通过主控状态机控制读取控制模块和数据寄存器组的工作时序,并通过读取控制模块确定待读取存储器的地址数据,实现待测硬件存储器的数据读取功能的开启控制,然后在存储器数据读取功能开启情况下,通过与接口模块和存储器连接的数据寄存器组,读取存储器中的相应内容,并将读取结果发送至接口模块,从而可得到该待测硬件的存储器读取结果,继而能够实现对待测硬件的功能正确性检测。且该电路结构简单,但思路新颖不易被破解,并且只需要发送简单的命令就可以测试任意地址的数据,读取过程简洁,通用性较好。
附图说明
31.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
32.图1示出了本技术实施例提供的存储器数据读取电路的框架结构示意图;
33.图2示出了本技术实施例提供的存储器数据读取电路的详细结构示意图;
34.图3示出了本技术实施例中存储器数据读取电路的应用过程结构示意图;
35.图4示出了本技术实施例中主控状态机的结构示意图;
36.图5示出了本技术实施例中输入输出寄存器组的结构示意图;
37.图6示出了本技术实施例中测试启动状态机的结构示意图;
38.图7示出了本技术实施例中配置寄存器组的结构示意图;
39.图8示出了本技术实施例中地址寄存器组的结构示意图;
40.图9示出了本技术实施例中数据寄存器组的结构示意图;
41.图10示出了本技术实施例中输入缓存器的结构示意图;
42.图11示出了本技术实施例中输出缓存器的结构示意图。
具体实施方式
43.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
44.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
45.下面结合附图来描述根据本技术实施例提出的一种存储器数据读取电路及芯片。其中,硬件可以理解为应用于计算机上的各种芯片类器件,通常硬件上都集成有存储器,该存储器数据读取电路可用于读取待测试硬件的存储器中的内容,以便于根据读取结果测试硬件的功能正确性。其中,存储器可以但不限于eeprom。本技术实施例提供的硬件测试电路,可通过接口模块发送命令数据和测试启动数据,从而打开eeprom的读通道、配置eeprom的地址以及打开eeprom数据输送通道,继而实现对存储器数据的测试。且该电路结构简单,但思路新颖不易被破解,并且只需要发送简单的命令就可以测试任意地址的数据,通用性较好。
46.如图1所示,为本技术实施例提供的存储器数据读取电路,包括接口模块、读取控制模块、数据寄存器组及主控状态机,其中,接口模块与上位机连接,用于接收上位机发送的命令数据和测试启动数据,并将读取结果反馈至上位机。读取控制模块分别与接口模块和待测硬件的存储器连接,根据测试启动数据确定待读取存储器的地址数据,并控制存储器开启数据读取功能。数据寄存器组分别与接口模块和存储器连接,读取存储器中的相应内容,并将读取结果发送至接口模块。主控状态机分别与接口模块、读取控制模块及数据寄存器组连接,根据命令数据进行对应的状态跳转,以开启读取控制模块和数据寄存器组的工作时序。
47.本实施例提供的存储器数据读取电路,通过主控状态机控制读取控制模块和数据寄存器组的工作时序,并通过读取控制模块确定待读取存储器的地址数据,实现待测硬件存储器的数据读取功能的开启控制,然后在存储器数据读取功能开启情况下,通过与接口模块和存储器连接的数据寄存器组,读取存储器中的相应内容,并将读取结果发送至接口模块,从而可得到该待测硬件的存储器读取结果,继而能够实现对待测硬件的功能正确性检测。且该电路结构简单,但思路新颖不易被破解,并且只需要发送简单的命令就可以测试任意地址的数据,通用性较好。
48.其中,上位机可理解为控制该存储器数据读取电路(所在芯片)的计算机设备。如图2所示,接口模块包括一个芯片(硬件测试电路所在芯片,以下未进行说明的芯片均指硬件测试电路所在芯片)的双向引脚test、输入引脚(testdin端)和输出引脚(testdout),通过输入引脚可以接收上位机发送的命令数据和测试启动数据,通过输出引脚可以将读取结果反馈给上位机。接口模块还包括是芯片的一个输入管脚(testclk端),上位机通过testclk端给硬件测试电路提供时钟。
49.命令数据和测试启动数据均可理解为一串字符,包括但不限于16进制数据,通常由本领域技术人员根据电路的具体结构进行设计,例如9位的16进制数据152、116、146、176等。命令数据通常是发给主控状态机的,主控状态机可根据不同的命令数据进行相应的状态跳转。测试启动数据中可以包含待检测硬件的地址数据,以便能够快速读取硬件存储器中的内容,例如下文中32位的16进制数据test_ad、fe000c11等。
50.具体地,如图4所示,主控状态机包括一个组合逻辑电路和多个寄存器(对应bst0-bst5),该组合逻辑电路用于接收命令数据,多个寄存器分别与组合逻辑电路连接,用于存储和输出命令数据。具体地,每个寄存器可对应一个命令数据,可通过组合逻辑电路判断当前接收到的命令数据对应哪个寄存器。
51.在一些实施方式中,如图2和图3所示,该存储器数据读取电路还包括输入输出寄
存器组,输入输出寄存器组分别与接口模块和主控状态机连接,在主控状态机跳转至第三状态时,输入输出寄存器组由低位到高位串行存入测试启动数据,对测试启动数据进行串并转换,并将转换后的数据分别发送至读取控制模块和时钟配置模块;或者,在主控状态机跳转至第三状态时,输入输出寄存器组并行存入读取结果,对读取结果进行并串转换,并将读取结果由高位到低位串行发送至接口模块。
52.如图5所示,本实施例中输入输出寄存器组用于存储32位的16进制数据,可设置32个寄存器(对应areg0-areg31),并行进行数据存储。并且每个寄存器可配设一个门电路(32个门电路结构基本一致),该门电路包括两个并连的与门电路,该两个与门电路与一个或非门电路串接,用于判断数据是否需要存储。
53.在另一些实施方式中,该存储器数据读取电路还包括测试启动状态机,测试启动状态机的输入端连接接口模块,并接入上位机发送的输入信号(包括测试启动数据和时钟数据);测试启动状态机的输出端经过第一逻辑电路生成输出信号,该输出信号能够作为输入输出寄存器组的使能端和读取控制模块的使能端。其中,时钟数据可以为频率为4mhz占空比1:1的方波,也可以为其它波形或频率的信号,只要输入信号经过第一逻辑电路,能够生成上述输出信号即可。
54.具体地,如图6所示,测试启动状态机可包括一个组合逻辑电路和多个寄存器(对应ast0-ast4),第二组合逻辑电路用于接收输入信号,多个寄存器分别与该组合逻辑电路连接,用于存储和输出该输入信号。具体地,每个寄存器可对应一个或一类命令数据,可通过组合逻辑电路判断当前接收到的命令数据对应哪个寄存器。
55.在另一具体施例方式中,该存储器数据读取电路还包括时钟配置模块,时钟配置模块分别与接口模块和主控状态机连接,并基于测试启动数据在相应状态下分别生成第五时钟(clk5)和第六时钟(clk6)。第五时钟触发地址寄存器组存入地址数据;第六时钟触发数据寄存器组读取存储器中对应地址数据的内容。如此,通过设置第五时钟和第六时钟,可以分别实现地址寄存器组和数据寄存器的工作时序,以便于设计地址寄存器组和数据寄存器的按照预设条件进行地址数据的存储和存储器数据的读取。且本实施例的硬件测试电路结构简单,但思路新颖不易被破解,并且只需要发送简单的命令就可以测试任意地址的数据。
56.其中,时钟配置模块包括配置寄存器组、第五逻辑电路(逻辑5)及第六逻辑电路(逻辑6)。状态包括第一状态,第一状态触发主控状态机获取第一配置数据(即图2和图3中的ce[3:0])。配置寄存器组分别与接口模块和主控状态机连接,基于测试启动数据生成第二配置数据;第一配置数据和第二配置数据经过第五逻辑电路,生成第五时钟;第一配置数据和第二配置数据经过第六逻辑电路,生成第六时钟。
[0057]
该第一状态如图3中的r0-r1-r2-r3,每个状态获取一位数据,即可得到第一配置数据ce[3:0]。具体地,该第一配置数据可基于图3中寄存器s0-寄存器s4随机生成。基于每个命令数据,主控状态机每次跳转至r0-r1-r2-r3,便获取一个第一配置数据,可用于本次跳转过程的后续逻辑判断。
[0058]
其中,配置寄存器组包括第一时钟端和第一使能端,第一时钟端连接用于接收上位机提供的时钟信息,第一使能端连接第二逻辑电路的输出端,第二逻辑电路输入端接入第一配置数据,在主控状态机处于指定状态时,第二逻辑电路输出高电平,触发配置寄存器
组生成第二配置数据。
[0059]
如图7所示,配置寄存器组可参照输入输出寄存器组的设置,也设置32个寄存器,并行进行数据存储。并且每个寄存器可配设一个门电路(32个门电路结构基本一致),该门电路包括两个并连的与门电路,该两个与门电路与一个或非门电路串接,用于判断数据是否需要存储。
[0060]
在另一具体施例方式中,读取控制模块包括第一组合逻辑电路、地址寄存器组和启动控制单元;第一组合逻辑电路与接口模块连接,自测试启动数据中选出地址数据,并将地址数据发送至地址寄存器组,将测试启动数据中除地址数据外的剩余数据发送至启动控制单元;地址寄存器组与存储器连接,存储地址数据,并控制存储器的地址端;启动控制单元与存储器连接,并基于剩余数据生成输出信号,输出信号使存储器处于读取模式。
[0061]
其中,启动控制单元输入剩余数据和第二配置数据,生成存储器的使能数据、时钟数据及操作模式数据,且使能数据、时钟数据及操作模式数据均满足存储器的读时序,使存储器处于可读状态。
[0062]
地址寄存器组的时钟端通过第五时钟控制,第五时钟生成则触发地址寄存器组存入地址数据。数据寄存器组的时钟端通过第六时钟控制,第六时钟生成且数据寄存器组的使能端为高电平时,触发数据寄存器组读取存储器中对应地址数据的内容。
[0063]
如图8所示,该地址寄存器组可包括32个与门电路和13个寄存器,分别存储地址数据ee_ad0-ee_ad 12,每个寄存器对应一个与门电路。13个寄存器分别对应13位的逻辑空间地址。
[0064]
数据寄存器组的使能端连接比较逻辑电路的输出端,比较逻辑电路的输入端为剩余数据和存储器在芯片内存中分配的逻辑空间地址,若剩余数据的逻辑空间地址和存储器在芯片内存中分配的逻辑空间地址一致,则比较逻辑电路输出高电平。
[0065]
如图9所示,数据寄存器组可包括32个与门电路和32个寄存器,与门电路的输入包括使能端数据(即上述比较逻辑电路的输出数据)和自存储器读取的数据ee_dout[31:0],输出数据ddreg0-ddreg 12,且每个寄存器连接一个与门电路,不同的寄存器连接不同的与门电路。
[0066]
在另一具体施例方式中,该存储器数据读取电路还包括输入缓存器,输入缓存器设置于输入输出寄存器组和读取控制模块之间,用于缓存输入输出寄存器组上的数据,并发送给读取控制模块。
[0067]
如图10所示,该输入缓存器对应输入输出寄存器组的设置,可设置同样数量的寄存器,如32个,每个寄存器可缓存一位数据,进行并行存储。
[0068]
在另一具体施例方式中,该存储器数据读取电路还可包括输出缓存器,输出缓存器设置于输入输出寄存器组和数据寄存器组之间,用于缓存数据寄存器组存储的数据,并发送给输入输出寄存器组。
[0069]
如图11所示,该输出缓存器也对应输入输出寄存器组的设置,设置同样数量的寄存器,如32个,还可为每个寄存器配设一个与门电路,保证在有数据且使能为高电平时才进行数据缓存,以免造成重复缓存,浪费资源。
[0070]
在本实施例中,命令数据可包括第一命令、第二命令、第三命令、第四命令、第五命令及第六命令。主控状态机基于不同的命令分别进行状态跳转,并在第一命令对应的状态
跳转过程中得到第一配置数据和第二配置数据;在第二命令对应的状态跳转过程中,接收地址数据;在第三命令对应的状态跳转过程中,生成第五时钟,开启待测试硬件的存储器的读使能;在第四命令对应的状态跳转过程中,生成第六时钟;在第五命令对应的状态跳转过程中,触发数据寄存器组读取存储器中的相应内容;在第六命令对应的状态跳转过程中,输入输出寄存器组将读取结果发送至接口模块,并反馈至上位机。
[0071]
测试启动数据可包括第一启动数据、地址相关数据、第一辅助数据、第二启动数据及第二辅助数据。
[0072]
主控状态机基于第一命令,自初始状态经过第一状态、第二状态、第四状态及至少一个其它中间状态跳转至第三状态,在第一状态,主控状态机获取第一配置数据;在第二状态,输入输出寄存器组存储接口模块发送的第一启动数据;在第三状态,配置寄存器组基于第一启动数据生成第二配置数据。
[0073]
主控状态机基于第二命令,自中间状态经过第一状态、第二状态、第四状态及至少一个其它中间状态跳转至第三状态,在第一状态,主控状态机获取第一配置数据;在第二状态,输入输出寄存器组存储接口模块发送的地址相关数据,以使读取控制模块根据地址相关数据确定地址数据。
[0074]
主控状态机基于第三命令,自中间状态经过第一状态、第二状态、第四状态及至少一个其它中间状态跳转至第三状态,在第一状态,主控状态机获取第一配置数据;在第二状态,输入输出寄存器组存储接口模块发送的第一辅助数据;在第三状态,时钟配置模块基于第一启动数据生成第五时钟。
[0075]
主控状态机基于第四命令,自中间状态经过第一状态、第二状态、第四状态及至少一个其它中间状态跳转至第三状态,在第一状态,主控状态机获取第一配置数据;在第二状态,输入输出寄存器组存储接口模块发送的第二启动数据;在第三状态时钟配置模块基于第二启动数据生成第六时钟。
[0076]
主控状态机基于第五命令,自中间状态经过第一状态、第二状态、第四状态及至少一个其它中间状态跳转至第三状态,在第一状态,主控状态机获取第一配置数据;在第二状态,输入输出寄存器组存储接口模块发送的第二辅助数据;在第三状态,数据寄存器组读取存储器中的相应内容。
[0077]
主控状态机基于第六命令,自中间状态经过第一状态、第五状态及至少一个其它中间状态跳转至第六状态,在第一状态,主控状态机获取第一配置数据;在第五状态,主控状态机生成第一时钟,输入输出寄存器组存储数据寄存器组的读取结果;在第六状态,输入输出寄存器组将读取结果反馈至上位机。
[0078]
需要说明的是,上述第一命令、第二命令等,以及第一状态、第二状态等,均只用于区分,没有其它特别指定的含义,也没有具体的定义,其可以相同也可以不同(相同时可根据第几次接收进行区分),本领域技术人可根据需要进行设定,只要能最终实现存储器数据的读取即可。且,上述各部件的结构只是本实施例的一种实施方式,本实施例并不以此为限,只要能实现上述各部件的作用即可。
[0079]
下面结合附图3,对应用本实施例提供的存储器数据读取电路的过程进行详细说明:
[0080]
1)上位机通过testclk端发送频率为4mhz占空比1:1的方波(提供时钟),上位机通
过testdin端由低位到高位串行发送一个16位的16进制数据aaaa(即上述的输入信号),这时,测试启动状态机进行状态跳转,然后经过第一逻辑电路后使信号on_p拉高,使该存储器数据读取电路开启。
[0081]
2)该存储器数据读取电路开启后,根据主控状态机的电路原理,上位机通过testclk端发送频率为4mhz占空比1:1的方波,上位机通过testdin端由低位到高位串行发送一个9位的16进制数据152(可理解为上述第一命令),主控状态机的跳转情况为:初始状态0-》a-》r0-》r1-》r2-》r3-》b-》c-》d-》e,根据图2和图3,这时第一配置数据ce[3:0]的值在状态r0、r1、r2、r3下获取。e状态时,芯片(该存储器数据读取电路)会反馈3位的16进制数据2以表示前面数据接收正确,同时主控状态机的跳转情况为e-》f-》g-》h,也即状态e、f、g为上位机接收芯片反馈的状态。接着上位机通过testdin端由低位到高位串行发送一个2位的16进制数据0,主控状态机的跳转情况为h-》l-》m。由图2和图3可知,在m状态(可对应上述第二状态)下,输入输出寄存器组的时钟clk1以及数据输入移位使能端sf_en均打开,上位机通过testdin端由低位到高位串行发送一个32位的16进制数据fe000c11(可理解为上述第一启动数据,用于生成clk5),计数器开始从0计数,输入输出寄存器组每移位一个bit位,计数器计数一次,计完32个testclk周期后数据fe000c11全部存入了输入输出寄存器组。然后上位机通过testdin端由低位到高位串行发送2个bit的数据0,这时主控状态机将由状态m跳转到状态n-》p,p状态(可对应上述第三状态)下,此步骤中获取的ce[3:0]值经过逻辑2(电路)使配置寄存器组的数据控制端c_enn(图中未显示)打开,此时已成功配置qreg[31:0]值fe000c11。
[0082]
3)上位机通过testdin端由低位到高位串行发送一个9位的16进制数据116(可理解为上述第二命令),基于该命令,主控状态机的跳转情况为:中间状态a-》r0-》r1-》r2-》r3-》b-》c-》d-》e,根据图2和图3,这时ce[3:0]的值在状态r0、r1、r2、r3下获取。然后芯片反馈3位的16进制数据2表示前面数据接收正确,主控状态机的跳转情况为e-》f-》g-》h,也即状态e、f、g为上位机接收芯片反馈的状态。接着上位机通过testdin端由低位到高位串行发送一个2位的16进制数据0,主控状态机的跳转情况为h-》l-》m。由图3可知,在m状态下,输入输出寄存器组的时钟clk1以及数据输入移位使能端sf_en均打开,上位机通过testdin端由低位到高位串行发送一个32位的16进制数据test_ad(可理解为上述地址相关数据),该数据为设计人员想读出测试的eeprom地址,计数器开始从0计数,输入输出寄存器组每移位一个bit位,计数器计数一次,计完32个testclk周期后eeprom地址数据全部存入了输入输出寄存器组。然后上位机通过testdin端由低位到高位串行发送2个bit的数据0,这时主控状态机将由状态m跳转到状态n-》p,n状态(对应上述第四状态)下,此步骤中获取的ce[3:0]值经过逻辑4(电路)使数据输入缓存器的clk2时钟端生效,也即需要调试的eeprom的地址数据写入了数据输入缓存器,并进入存储器地址寄存器组中的组合逻辑电路中,也即图3中的bs[12:0]接管了eeprom的地址ee_ad,bs[31:13]要与eeprom在芯片内存中分配的逻辑空间地址一致。
[0083]
4)上位机通过testdin端由低位到高位串行发送一个9位的16进制数据146(可理解为上述第三命令),基于该命令主控状态机的跳转情况为:中间状态a-》r0-》r1-》r2-》r3-》b-》c-》d-》e,根据图2和3,这时ce[3:0]的值在状态r0、r1、r2、r3下获取。然后芯片反馈3位的16进制数据2表示前面数据接收正确,主控状态机的跳转情况为e-》f-》g-》h,也即状态e、
f、g为上位机接收芯片反馈的状态。接着上位机通过testdin端由低位到高位串行发送一个2位的16进制数据0,主控状态机的跳转情况为h-》l-》m。由图3可知,在m状态下,输入输出寄存器组的时钟clk1以及数据输入移位使能端sf_en均打开,上位机通过testdin端由低位到高位串行发送一个32位的16进制数据00000002(可理解为上述第一辅助数据,使输入输出寄存器处于工作状态),计数器开始从0计数,输入输出寄存器组每移位一个bit位,计数器计数一次,计完32个testclk周期后数据00000002全部存入了输入输出寄存器组。然后上位机通过testdin端由低位到高位串行发送2个bit的数据0,这时主控状态机将由状态m跳转到状态n-》p,n状态下,在步骤2)中配置的qreg[31:0]值的基础上,结合此步骤中获取的ce[3:0]值经过逻辑5使存储器地址寄存器组中的clk5时钟端生效,也即需要调试的eeprom的地址数据写入了地址寄存器组,成功接管了eeprom地址端ee_ad。
[0084]
5)上位机通过testdin端由低位到高位串行发送一个9位的16进制数据152(可理解为上述第四命令),基于该命令主控状态机的跳转情况为:中间状态a-》r0-》r1-》r2-》r3-》b-》c-》d-》e,根据图3,这时ce[3:0]的值在状态r0、r1、r2、r3下获取。然后芯片反馈3位的16进制数据2表示前面数据接收正确,主控状态机的跳转情况为e-》f-》g》h,也即状态e、f、g为上位机接收芯片反馈的状态。接着上位机通过testdin端由低位到高位串行发送一个2位的16进制数据0,主控状态机的跳转情况为h-》l-》m。由图1可知,在m状态下,输入输出寄存器组的时钟clk1以及数据输入移位使能端sf_en均打开,上位机通过testdin端由低位到高位串行发送一个32位的16进制数据fe000c19(可理解为上述第二启动数据,用于生成clk6),计数器开始从0计数,输入输出寄存器组每移位一个bit位,计数器计数一次,计完32个testclk周期后数据fe000c19全部存入了输入输出寄存器组。然后上位机通过testdin端由低位到高位串行发送2个bit的数据0,这时主控状态机将由状态m跳转到状态n(15)-》p(19),p状态下,此步骤中获取的ce[3:0]值经过逻辑2(电路)使配置寄存器组的数据控制端c_enn打开,此时已成功配置qreg[31:0]值为fe000c19,此时ce[3:0]值与qreg[31:0]经过逻辑模块6(电路)生成clk6。上述步骤3)中,bs[31:13]是eeprom在芯片内存空间中的逻辑地址,因此,存储器数据寄存器组的数据使能端ld_p和时钟端clk6全部生效。
[0085]
6)上位机通过testdin端由低位到高位串行发送一个9位的16进制数据176(可理解为上述第五命令),基于该命令主控状态机的跳转情况为:中间状态a-》r0-》r1-》r2-》r3-》b-》c-》d-》e,根据图2和3,这时ce[3:0]的值在状态r0、r1、r2、r3下获取。然后芯片反馈3位的16进制数据2表示前面数据接收正确,主控状态机的跳转情况为e-》f-》g-》h,也即状态e、f、g为上位机接收芯片反馈的状态;接着上位机通过testdin端由低位到高位串行发送一个2位的16进制数据0,主控状态机的跳转情况为h-》l-》m。由图1可知,在m状态下,输入输出寄存器组的时钟clk1以及数据输入移位使能端sf_en均打开,上位机通过testdin端由低位到高位串行发送一个32位的16进制数据00000000(可理解为上述第二辅助数据,使输入输出寄存器处于工作状态),计数器开始从0计数,输入输出寄存器组每移位一个bit位,计数器计数一次,计完32个testclk周期后数据00000000全部存入了输入输出寄存器组。然后上位机通过testdin端由低位到高位串行发送2个bit的数据0,这时主控状态机将由状态m跳转到状态n-》p,n状态下,此步骤中获取的ce[3:0]值和步骤3)中获取的bs[31:13]经过启动控制单元后,启动控制单元的输出信号ee_clk,ee_en以及ee_ql[2:0]使eeprom处于读模式,此时,eeprom存储单元中的数据将读出送到ee_dout[31:0]端,设计人员需要读出测试的
eeprom地址test_ad中的数据存入存储器数据寄存器组中。
[0086]
7)上位机通过testdin端由低位到高位串行发送一个9位的16进制数据12e(可理解为上述第六命令),基于该命令主控状态机的跳转情况为:中间状态a-》r0-》r1-》r2-》r3-》b-》c-》d-》e,根据图2和3,这时ce[3:0]的值在状态r0、r1、r2、r3下获取。然后芯片反馈3位的16进制数据2表示前面数据接收正确,主控状态机的跳转情况为e-》f-》g-》r,也即状态e、f、g为上位机接收芯片反馈的状态。r状态(可对应上述第六状态)是芯片反馈数据给上位机的状态,在r状态下上位机再接收芯片反馈的32位数据。此步骤中获取的ce[3:0]值使数据输出缓存器中的数据使能端fd_p生效,ee_dout[31:0]数据进入数据输出缓存器。根据图2和3,状态f与此步骤中获取的ce[3:0]经过逻辑7(电路)和逻辑3(电路)后clk1生效,并且输入输出寄存器组的加载使能lo_en生效,ee_dout[31:0]数据在此步骤的状态f(对应上述第五状态)下存入输入输出寄存器组中。输入输出寄存器组的移位使能sf_en生效,输入输出寄存器组从高位到低位移位并从testdout端送出,经过32个clk1周期,ee_dout[31:0]数据全部从test串行送出。
[0087]
综合上述步骤1)-7):即一个完整的读取一个eeprom地址数据的操作,实现连续读取eeprom地址数据,只需要先执行步骤1)打开读取功能,然后循环执行步骤2)-7),其中每次循环中只需要变化步骤3)中发送的test_ad即可。
[0088]
需要说明的是,本实施例对上述各种逻辑电路的具体结构不做具体限定,只要能实现上述各种逻辑控制功能即可。
[0089]
基于上述存储器数据读取电路相同的构思,本实施例还提供一种芯片,该芯片上形成有上述的存储器数据读取电路。
[0090]
本实施例提供的芯片,基于上述存储器数据读取电路相同的构思,故至少能够实现上述存储器数据读取电路能够实现的有益效果,在此不再赘述。
[0091]
基于上述存储器数据读取电路相同的构思,本实施例还提供一种硬件测试方法,该方法可以包括以下步骤:
[0092]
步骤s1,通过接口模块接收上位机发送的命令数据和测试启动数据;
[0093]
步骤s2,通过主控状态机根据命令数据进行对应的状态跳转,以开启读取控制模块和数据寄存器组的工作时序;
[0094]
步骤s3,读取控制模块开启后,根据测试启动数据确定待读取存储器的地址数据,并控制存储器开启数据读取功能;
[0095]
步骤s4,数据寄存器组开启后,读取存储器中的相应内容,并将读取结果发送至接口模块;
[0096]
步骤s5,确定读取结果与预设存储数据是否一致;若是,则结束硬件测试。
[0097]
本实施例提供的硬件测试方法,基于上述存储器数据读取电路相同的构思,故至少能够实现上述存储器数据读取电路能够实现的有益效果,在此不再赘述。
[0098]
应该注意的是上述实施例对本技术进行说明而不是对本技术进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本技术可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实
现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0099]
以上,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1