首页> 中国专利> 用于新兴存储器技术的可编程测试引擎(PCDTE)

用于新兴存储器技术的可编程测试引擎(PCDTE)

摘要

本发明涉及一种集成电路芯片上的用于新兴存储器技术的可编程特征化-调试-测试引擎(PCDTE)。该PCDTE包括接收并存储在芯片接口提供的指令的指令存储器,以及接收并存储在芯片接口提供的配置值的配置存储器。该PCDTE还包括响应于配置值配置多个地址计数器和数据寄存器的控制器。该控制器还执行指令,其中响应于该指令从计数器中检索读/写地址和写数据。检索到的读/写地址和写数据用于访问被测试的存储器。可同时访问被测试存储器的多个端口。可链接多个指令。该指令可指定计数器中的专用计数功能和/或指定集成的(链接的)计数器。该PCDTE可从芯片传出信息以便运用芯片的传送/接收电路。

著录项

  • 公开/公告号CN102314950A

    专利类型发明专利

  • 公开/公告日2012-01-11

    原文格式PDF

  • 申请/专利权人 摩希斯股份有限公司;

    申请/专利号CN201110098611.0

  • 发明设计人 R·乔普拉;

    申请日2011-02-23

  • 分类号G11C29/12;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人张政权

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 04:04:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-07-01

    授权

    授权

  • 2013-01-23

    实质审查的生效 IPC(主分类):G11C29/12 申请日:20110223

    实质审查的生效

  • 2012-01-11

    公开

    公开

说明书

相关申请

本申请要求美国临时专利申请S/N 61/338,745的优先权,其发明名称 为“用于新兴存储器技术的可编程测试引擎(Programmable Test Engine For  Emerging Memory Technologies)”,其申请日为2010年2月23日,且通过 引用结合于此。

技术领域

本发明涉及可编程特征化调试测试引擎(PCDTE)。

背景技术

诸如美国专利7,168,005描述的传统的内置自测试(BIST)引擎,仅执 行固定的测试模式。期望拥有具有可编程的测试模式和计数器的BIST。更 加期望这样的可编程BIST,其具有与传统的BIST大致相同数量的门。

发明内容

相应地,本发明提供集成电路芯片上的可编程特征化调试测试引擎 (PCDTE)。该PCDTE包括存储从芯片接口接收的指令的指令存储器,以 及存储在芯片接口上接收的配置值的配置存储器。PCDTE还包括响应于配 置存储器中存储的配置值配置多个计数器并且填充多个数据寄存器的控制 器。响应于配置值配置的计数器的工作参数包括:计数器是递增的还是递 减的、计数器执行的步骤数量、计数器的步长(step size)以及计数器的复 位值。选择的计数器可配置成执行专门的计数器功能,其中每次计数器期 满时增加计数器的复位值。可链接其它的计数器以便实现集成计数器,其 中第一计数器配置成提供存储器访问地址的行地址,第二计数器配置成提 供存储器访问地址的列地址,第三计数器配置成提供存储器访问地址的扇 区地址,而第四计数器配置成提供存储器访问地址的存储体地址(bank  address)。

控制器还执行指令存储器中存储的指令。每个指令包括访问生成操作 码(op-code)和循环处理操作码。访问生成操作码对被测试存储器指定读 访问和/或写访问,或非操作(NOP)。PCDTE可同时执行对被测试存储器 的读和写访问。访问生成操作码包括指定选择哪个计数器来提供读地址的 读地址指针,以及指定选择哪个计数器来提供写地址的写地址指针,以及 指定选择哪个数据寄存器来提供写数据值(或读比较值)的写数据指针。

循环处理操作码包括指定选择哪个计数器作为相关联指令的循环计数 器的循环计数器指针。循环计数器指定由访问生成操作码指定的读/写访问 的将要被重复的次数。循环处理操作码包括允许相关联指令与其它指令链 接的参数。循环处理操作码还包括允许并行更新多个计数器(例如,循环 计数器、读地址计数器和写地址计数器)的参数。循环处理操作码还包括 允许顺序地更新计数器组的参数。

本发明的PCDTE提供在集成电路内生成测试模式的灵活性。该PCDTE 容易按比例缩小,从而允许测试具有大量端口的存储器。

在特定的实施例中,本发明的PCDTE还耦合到集成电路芯片的传送 器,其中PCDTE生成的存储器访问信号被串行化并且从集成电路芯片传 出。这些存储器访问信号可被路由至同一个集成电路芯片的解串行接收器 (在环路回送配置中),并最后提供给(集成电路芯片上)被测试的存储 器。该实施例中,PCDTE有利地利用集成电路芯片的传送和接收电路。在 替代实施例中,存储器访问信号可被路由至另一个集成电路芯片的解串行 接收器,并且提供给另一芯片上的存储器。

结合下面的说明和附图,将更加充分地理解本发明。

附图简述

图1是根据本发明的一个实施例的可编程特征化调试测试引擎 (PCDTE)的框图,该引擎构建在集成电路芯片上。

图2A是根据本发明的一个实施例,示出由图1的PCDTE实现的专用 计数器和读地址生成电路的框图。

图2B是根据本发明的一个实施例,示出由图1的PCDTE实现的写地 址生成电路的框图。

图3A、3B和3C是根据本发明的一个实施例,示出用于配置图2A的 专用计数器的配置寄存器的框图。

图4是根据本发明的一个实施例,示出由图1的PCDTE实现的数据生 成电路的框图。

图5是根据本发明的一个实施例,示出由图1的PCDTE实现的指令操 作码的框图。

图6是根据本发明的一个实施例,示出使用图1的PCDTE来实现可编 程内置自测试(PBIST)以及内置自修复(BISR)的系统的框图。

图7是根据本发明的一个实施例的可使用图1的PCDTE实现的带宽引 擎的框图。

具体实施方式

通常,本发明提供一种设置在集成电路芯片上的可编程特征化调试测 试引擎(PCDTE)。该PCDTE可用于实现芯片上设置的电路(例如,一个 或多个存储器)的特征化、调试和测试功能。另外,PCDTE可创建从芯片 上传出、以及返回同一个芯片的接收器或者提供给不同芯片的接收器的事 务。

本发明的PCDTE可用于特征化时序、电压和模式,这些时序、电压和 模式可被运用以便实现存储器的最佳操作条件。本发明的PCDTE也可用作 调试引擎,用于调试与存储器比特单元连接的各种片上电路。本发明的 PCDTE也可用作片上内置自测试器(BIST),用于利用在特征化和调试阶 段发现的可编程模式来测试存储器。本发明的PCDTE也可用于老化 (burn-in)以及高温运行寿命(HTOL)的研究。

本发明的PCDTE在评估新兴的密集单端口和多端口存储器以及高速 电路的同时维持用于特定存储器实例或多个存储器实例的低数量的门的情 况下运转得良好。在大小、数据宽度或风格(Mosys公司的1T-静态随机存 取存储器(1T-SRAM)、增强型动态随机存取存储器(eDRAM)、静态随机存 取存储器(SRAM)等等)方面,一个或多个存储器实例可能相同或不同。

图1是根据本发明的一个实施例,在集成电路芯片150上制造的 PCDTE 100的框图。PCDTE 100包括可编程指令存储器101、可编程配置 存储器102、控制器103(其控制PCDTE的程序计数器104)、若干专用 计数器105、事务生成单元106、芯片参数控制器107以及芯片失效累加引 擎108。事务生成单元106包括读地址生成电路250、写地址生成电路300 以及数据生成电路400。

可编程指令存储器101存储指令操作码,下面将更加详细地描述它。 例如,使用随机存取存储器(RAM)或触发器阵列实现可编程指令存储器 101。根据本发明的一个实施例,可通过芯片150的串行或并行接口来编程 可编程指令存储器101。可编程指令存储器101可存储M个指令,其中M 由芯片150的门数量要求、存储器技术的类型、芯片接口和总体特征化、 以及调试和测试策略来指示。

可编程配置存储器102存储PCDTE 100的配置参数。通常,由可编程 配置存储器102存储的配置参数用于配置专用计数器105、读地址生成电路 250、写地址生成电路300以及数据生成电路400。下面将更加详细地描述 可编程配置存储器102存储的配置参数。例如,可使用触发器阵列来实现 可编程配置存储器102。根据本发明的一个实施例,也可通过芯片150的串 行或并行接口来编程可编程配置存储器102。

控制器103耦合至可编程指令存储器101以及可编程配置存储器102。 如下面详细描述的,控制器103响应于从可编程配置存储器102接收的配 置参数来配置专用计数器105以及事务生成单元106。另外,响应于从可编 程指令存储器101接收的指令,控制器103使用专用计数器105和事务生 成单元106开始对正在特征化调试测试的存储器进行读和写事务处理。在 说明性的实施例中,PCDTE 100包括用于访问正在测试的存储器的一个读 端口(其承载读使能信号RE和读地址读_地址(R_ADDR))和一个写端 口(其承载写使能信号WE、写地址写_地址(W_ADDR)以及写数据DATA)。 在描述的实施例中,虽然只说明了两个端口,如下面更详细描述的,在其 它实施例中容易修改事务生成单元106以便实现其它数量的端口。

通常,响应于可编程指令存储器101中存储的指令,使用芯片参数控 制器107来改变芯片150的操作条件(例如,电压和时序)。存储器失效 累加引擎108可存储数据0、数据1失效或失败(数据0和1组合)数据, 其可用于位映像(bit-map)被测试存储器。

图2A是根据本发明的一个实施例,说明专用计数器105的框图。这些 专用计数器包括六个20位计数器200-205(即,大型计数器)、包括四个 8位(小)计数器210-213的第一组小型计数器206、以及包括四个8位(小) 计数器220-223的第二组小型计数器207。虽然结合特殊的计数器组描述本 发明,但是应当理解的是,可容易地将专用计数器105的组修改为包括不 同数量的计数器,且该计数器具有不同的宽度。

图2A还说明事务生成单元106的读地址生成电路250,该电路用于生 成读地址R_ADDR。读地址生成电路250包括被耦合用于从8位小型计数 器210-213接收计数器值的读地址开关215,被耦合用于从8位小型计数器 220-223接收计数器值的读地址开关225,被耦合用于从20位大型计数器 200-205以及读地址开关215和225接收计数器值的读地址多路复用器230, 以及被耦合用于从读地址多路复用器230接收计数器值的读地址加扰器 235。

图2B是说明事务生成单元106的写地址生成电路300的框图,该电路 用于生成写地址W_ADDR。写地址生成电路300包括被耦合用于从8位小 型计数器210-213接收计数器值的写地址开关315,被耦合用于从8位小型 计数器220-223接收计数器值的写地址开关325,被耦合用于从20位大型 计数器200-205以及写地址开关315和325接收计数器值的写地址多路复 用器330,以及被耦合用于从写地址多路复用器330接收计数器值的写地址 加扰器335。注意,写地址生成电路300被耦合用于与读地址生成电路250 并行地接收由计数器200-205、210-213以及220-223提供的计数器值。

专用计数器105中可同时存在若干类型的计数器。这些计数器的类型 可包括,例如,标准计数器、集成计数器(其使用多个小型计数器来实现 一个大型计数器)、以及专用功能计数器。本发明实现的专用功能计数器 包括线性反馈移位寄存器(LFSR)计数器(其使用LFSR布尔函数来提供 随机计数)、以及用于生成计数值以便执行移动反转测试的计数器。虽然 这里描述了特殊的专用功能计数器,应当理解的是,其它实施例中可实现 其它类型的专用功能计数器。在说明性的示例中,20位计数器200-205可 配置成实现标准计数器、随机计数器或专用功能计数器。小型计数器组206 和207可配置成实现标准计数器、随机计数器或集成计数器。当小型计数 器组206配置成实现集成计数器时,四个8位计数器210,211,212和213 用于存储列、行、扇区和存储体地址。同样,当小型计数器组207配置成 实现集成计数器时,四个8位计数器220,221,222和223用于存储列、 行、扇区和存储体地址。

响应于存储在可编程配置存储器102内的配置寄存器中的配置值来编 程(配置)计数器200-207。

图3A,3B和3C是说明根据本发明的一个实施例的可编程配置存储器 102的配置寄存器CR0-CR10的框图。在说明性的实施例中,可编程配置存 储器102包括11个配置寄存器CR0-CR10,均为64位宽度。

图3A说明配置寄存器CR0-CR5。这些配置寄存器CR0-CR5存储分别配 置大型计数器200到205的配置值CFG_0[63:0]到CFG_5[63:0]。

图3B说明配置寄存器CR6和CR7。配置寄存器CR6存储配置小型计数 器210和211的配置值CFG_6[63:0]。配置寄存器CR7存储配置小型计数器 212和213的配置值CFG_7[63:0]。

图3C说明配置寄存器CR8-CR10。配置寄存器CR8存储配置小型计数 器220和221的配置值CFG_8[63:0]。配置寄存器CR9存储配置计数器222 和223的配置值CFG_9[63:0]。如下面详细描述的,配置寄存器CR10存储 用于配置事务生成单元106内的数据生成电路400的配置值CFG_10[63:0]。

如图3A所示,6个配置寄存器值CFG_0到CFG_5的每一个都包括两 个保留位RESVD、一个专用功能位SPF_N、一个递增-递减位INC/DEC_N、 一个20位的‘步骤数量’值步骤_N(STEPS_N)、一个20位的偏移值偏移 _N(OFFSET_N)、以及一个20位的复位值RST_VAL_N(其中针对配置寄 存器值CFG_0的N=0,针对配置寄存器值CFG_1的N=1,等等)。

递增-递减值INC/DEC_N表示相关联的计数器是递增的还是递减的 (例如,INC/DEC_N=‘0’使得相关联的计数器递减,而INC/DEC_N=‘1’使 得相关联的计数器递增)。‘步骤数量’值STEPS_N表示相关联计数器将要 计数的步骤的数量。偏移值OFFSET_N表示每个计数器步骤的大小(例如, OFFSET_N=2使得相关联计数器被递增-递减两步)。20位的复位值 RST_VAL_N指定一旦届满时(即,一旦数到由STEPS_N指定的步骤数量) 对应的计数器将被复位的值。

专用功能位SPF_N表示相关联计数器是否实现专用计数器功能(例如, SPF_N=‘0’禁用相关联计数器的专用功能,而SPF_N=‘1’允许相关联计数器 实现专用计数器功能)。这里描述的实施例中,大型计数器200-203配置 成实现第一专用功能,而大型计数器204-205配置成实现与第一专用功能 不同的第二专用功能。更具体地,当启用任何一个大型计数器200-203中 的专用计数器功能时,在该计数器一旦届满时将该计数器的复位值增加‘1’。 例如,如果启用大型计数器203的专用计数器功能(即,SPF_3=1),则每 次该大型计数器203届满时,该计数器的复位值RST_VAL_3增加‘1’。正 如本领域的技术人员公知的,该专用功能允许创建移动反转测试模式。

当允许任何一个大型计数器204-205中的专用计数器功能时,则允许 该大型计数器实现LFSR计数器,以便该大型计数器提供随机计数输出。 例如,如果启用大型计数器204的专用计数器功能(即,SPF_4=1),则该 大型计数器204配置成作为LFSR计数器操作。前述的方式中,可以采用 灵活的方式有利地配置大型计数器200-205以便提供宽范围的计数器选择。

如图3B所示,配置寄存器CR6存储对应的64位配置值CFG_6[63:0], 该配置值包括第一32位配置值CFG_6[31:0]和第二32位配置值 CFG_6[63:32]。第一32位配置值CFG_6[31:0]用于配置8位小型计数器210, 而第二32位配置值CFG_6[63:32]用于配置8位小型计数器211。第一32 位配置值CFG_6[31:0]包括三个保留位RESVD、一个递增-递减位 INC/DEC_SM_0、一个4位的配置值配置_0(CONFIG_0)、一个8位的‘步 骤数量’值STEPS_SM_0、一个8位的偏移值OFFSET_SM_0、以及一个8 位的复位值RST_VAL_SM_0。

递增-递减值INC/DEC_SM_0表示相关联的小型计数器210是递增的 还是递减的(例如,INC/DEC_SM_0=‘0’使得计数器210递减,而 INC/DEC_SM_0=‘1’使得计数器210递增)。8位的‘步骤数量’值 STEPS_SM_0指定相关联的小型计数器210将要计数的步骤的数量。8位的 偏移值OFFSET_SM_0表示计数器210每个步骤的大小(例如, OFFSET_N=1使得小型计数器210被递增-递减一步)。8位的复位值 RST_VAL_SM_0指定一旦届满时(即,一旦数到由STEPS_SM_0表示的 步骤数量)小型计数器210将被复位的值。配置值CONFIG_0表示相关联 计数器210是否被配置成提供存储体地址(CONFIG_0=‘1000’)、扇区地 址(CONFIG_0=‘0100’)、行地址(CONFIG_0=‘0010’)、列地址 (CONFIG_0=‘0001’),或者其它的地址类型(CONFIG_0=‘0000’)。

第二32位配置值CFG_6[63:32]包括类似的位/值:RESVD、 INC/DEC_SM_1、CONFIG_1、STEPS_SM_1、OFFSET_SM_1以及 RST_VAL_SM_1,其采用上述方式配置8位小型计数器211。

进一步如图3B所示,配置寄存器CR7存储对应的64位配置值 CFG_7[63:0],该配置值包括第一32位配置值CFG_7[31:0]和第二32位配 置值CFG_7[63:32]。第一32位配置值CFG_7[31:0]包括位/值RESVD、 INC/DEC_SM_2、CONFIG_2、STEPS_SM_2、OFFSET_SM_2以及 RST_VAL_SM_2,其采用上述方式配置8位小型计数器212。同样,第二 32位配置值CFG_7[63:32]包括位/值RESVD、INC/DEC_SM_3、CONFIG_3、 STEPS_SM_3、OFFSET_SM_3以及RST_VAL_SM_3,其采用上述方式配 置8位小型计数器213。

如图3C所示,配置寄存器CR8和CR9分别存储64位的配置值 CFG_8[63:0]和CFG_9[63:0]。配置值CFG_8[63:0]包括用于采用上述方式配 置小型计数器220的32位的配置值CFG_8[31:0],以及用于采用上述方式 配置小型计数器221的32位的配置值CFG_8[63:32]。配置值CFG_9[63:0] 包括用于采用上述方式配置小型计数器222的32位的配置值CFG_9[31:0], 以及用于采用上述方式配置小型计数器223的32位的配置值 CFG_9[63:32]。

采用上述的方式,配置值CFG_0到CFG_9允许将20位的大型计数器 200-205、计数器组206的8位小型计数器210-213以及计数器组207的8 位小型计数器220-223独立地配置成实现多种类型的计数器,从而向 PCDTE 100的读/写地址生成性能提供灵活性。

如图2A和2B所示,配置寄存器CR6和CR7中存储的配置值CONFIG_0 到CONFIG_3用于配置读开关215(图2A)和写开关315(图2B)。读开 关215将计数器210,211,212和213的输出分别路由至由配置值 CONFIG_0,CONFIG_1,CONFIG_2以及CONFIG_3指定的地址总线(即, 存储体、扇区、行或列)。例如,如果配置值CONFIG_0,CONFIG_1, CONFIG_2和CONFIG_3分别具有‘0010’,‘1000’,‘0100’和‘0001’值,则 读开关215将分别路由来自计数器210,211,212和213的计数器值作为 行、存储体、扇区和列地址。响应于配置值CONFIG_0到CONFIG_3,写 开关315采用与读开关215同样的方式操作。

配置寄存器CR8和CR9中存储的配置值CONFIG_4到CONFIG_7用于 配置读开关225(图2A)和写开关325(图2B)以便采用上述的方式路由 计数器220-223的输出。结果,可灵活地路由计数器210-213和220-223的 内容以便为访问被测试存储器提供存储体、扇区、行和列地址。注意,在 说明性的实施例中,四个8位计数器用于在开关215,225,315和325的 输出处提供20位的访问地址。这通过适当地选择‘步骤数量’值 STEPS_SM_0-7以及偏移值OFFSET_SM_0-7来实现。

读地址多路复用器230(图2A)从大型计数器200-205以及小型计数 器组206-207接收20位的计数器值。读地址多路复用器230响应于读地址 选择信号RA路由这些20位的计数器值之一(下面将更加详细地描述它)。 读地址加扰器235使用预定的固定地址加扰功能来加扰所接收到的计数器 值,从而向被测试的存储器提供读地址值R_ADDR。

同样,写地址多路复用器330(图2B)从大型计数器200-205以及小 型计数器组206-207接收20位的计数器值。写地址多路复用器330响应于 写地址选择信号WA路由这些20位的计数器值之一(下面将更加详细地描 述它)。写地址加扰器335使用预定的固定地址加扰功能加扰所接收到的 计数器值,从而向被测试的存储器提供写地址值W_ADDR。根据被测试存 储器实现的地址线扭转(twisting)来选择读地址加扰器235和写地址加扰 器335实现的地址加扰功能,从而确保被测试存储器在存储器接口接收适 当的地址值。

现在返回图3C,配置寄存器CR10存储64位的配置值CFG_10[63:0], 该值配置事务生成单元106内的数据生成电路400。配置值CFG_10[63:0] 包括45位的保留位RESVD,3位的数据加扰器值SCRAMBLE,以及16 位的数据寄存器值DATA_REG[15:0]。

图4是根据本发明的一个实施例说明事务生成单元106的数据生成电 路400的框图。数据生成电路400包括数据寄存器DR0-DR6、随机数据生 成器401、写数据多路复用器410和420、反相器415以及数据加扰器425。 对数据寄存器DR0,DR1,DR2和DR3进行编程以便分别存储来自配置寄 存器CR10的数据寄存器位DATA_REG[3:0]、DATA_REG[7:4]、 DATA_REG[11:8]以及DATA_REG[15:12]。对数据寄存器DR4,DR5 和DR6进行编程以便分别存储来自写地址生成电路300的写地址位 W_ADDR[3:0]、W_ADDR[7:4]以及W_ADDR[11:8]。因此,可用对应 的4位数据值编程每个数据寄存器DR0-DR6,其可用于生成写到被测试存 储器的数据值(或者作为读比较数据值而提供)。随机数据生成器401提 供随机的4位数据值作为输出。

写数据多路复用器410从数据寄存器DR0-DR6以及随机数据生成器 401接收4位的数据值。写数据多路复用器410响应于写数据选择信号WD 路由这些4位写数据值之一(下面将详细地描述它)。反相器415反转由 多路复用器410路由的写数据值,以使写数据多路复用器420接收多路复 用器410路由的写数据值,以及由多路复用器410路由的写数据值的反转 两者。写数据多路复用器420响应于写选择信号W#向数据加扰器425路由 由多路复用器410路由的写数据值,或由多路复用器410路由的写数据值 的反转(下面将作详细描述)。数据加扰器425加扰接收到的数据值,其 中由配置寄存器CR10提供的数据加扰器值SCRAMBLER来选择加扰功能。 根据被测试存储器实现的数据线扭转来选择数据加扰功能,从而确保被测 试存储器在存储器接口处接收适当的数据值。

注意,使用配置寄存器CR10的数据加扰功能是可编程的,从而允许 PCDTE 100用于测试具有不同数据线扭转特征的不同类型的存储器。

数据加扰器425提供的4位的数据值(Data)被复制预定次数以便创 建数据值DATA。例如,如果数据值DATA具有72位宽度(即,对被测试 存储器的读/写操作的宽度是72位),则数据加扰器425提供的4位的数据 值被重复18次(72/4=18)以便创建数据值DATA。

图5是根据本发明的一个实施例的说明PCDTE 100的PCDTE指令操 作码500INST[35:0]的框图。多个指令操作码被存储在可编程指令存储器 101中,每个指令操作码具有与指令操作码500相同的格式。在描述的示例 中,可编程指令存储器101具有存储多达32个指令操作码(即,M=32) 的容量。然而,在其它的实施例中,可编程指令存储器101可具有不同的 容量。通常,更大的可编程指令存储器101允许在芯片150上执行更多的 特征化-调试-测试操作。

虽然在说明性的示例中指令操作码500包括36位,应当理解的是,在 其它实施例中可实现具有不同宽度的指令操作码。PCDTE指令操作码500 的宽度决定可编程指令存储器101的宽度。

如下面更详细描述的,PCDTE指令操作码500用于启动对处在特征化 -调试-测试下的存储器(或其它电路)的读/写操作或非操作(NOP)。PCDTE 指令操作码500能够访问来自不同的专用计数器105的不同的地址源。 PCDTE指令操作码500也能够访问来自事务生成单元106内的数据寄存器 DR0-DR6(以及随机数据生成器401)的不同的数据源。PCDTE指令操作 码500具有自循环的能力,以及与任意其它PCDTE指令操作码循环的能力。 PCDTE指令操作码500能够并行地递增多个计数器105。PCDTE指令操作 码500也能够按顺序递增多个计数器105。

PCDTE指令操作码500被分为两个操作码,包括控制程序计数器104 和专用计数器105的循环处理操作码501,以及生成基于指令的事务的访问 生成操作码502。访问生成操作码502还可用于使用芯片参数控制器107 改变芯片150的关键参数,诸如时序和电压。

访问生成操作码502包括读访问使能位(RE=INST[23])、读地址指针 (RA=INST[26:24])、写访问使能位(WE=INST[27])、写地址指针 (WA=INST[30-28])、写数据条选择信号(W#=INST[31])、写数据多路 复用器选择值(WD=INST[34:32])、以及操作参数选择位(OP=INST[35])。 具有逻辑‘0’值的读访问使能位RE表示不执行读操作(NOP),而具有逻 辑‘1’值的读访问使能位RE表示将要执行读操作。控制器103通过事务生 成逻辑106将读访问使能位RE传送到被测试的存储器。

读地址指针RA指示哪个专用计数器105将为指定的读操作提供读地 址。控制器103将读地址指针RA传送到读地址生成块250的读地址多路 复用器230(图2A)。作为响应,读地址多路复用器230将由大型计数器 200-205以及开关215和225提供的所选择的一个20位计数器值路由到读 地址加扰器235。读地址加扰器235采用上述的方式加扰接收到的计数器值 以便向被测试存储器提供读地址R_ADDR。

现在返回访问生成操作码502,具有逻辑‘0’值的写访问使能位WE表 示不执行写操作(NOP),而具有逻辑‘1’值的写访问使能位表示将要执行 写操作。控制器103通过事务生成逻辑106将写访问使能位WE传送到被 测试的存储器。

写地址指针WA指示哪个专用计数器105将为指定的写操作提供写地 址。控制器103将写地址指针WA传送到写地址生成块300中的写地址多 路复用器330(图2B)。作为响应,写地址多路复用器330将大型计数器 200-205以及开关215和225提供的所选择的一个20位计数器值发送到写 地址加扰器335。写地址加扰器335采用上述的方式编码接收到的计数器值 以便向被测试存储器提供写地址W_ADDR。

仍然,在访问生成操作码502中,写数据寄存器选择值WD表示事务 生成单元106中的多个数据寄存器的哪一个向所指定的写操作提供写数据。 写数据条选择信号W#表示写数据还是写数据的反转被用于实现写操作。控 制器103向数据生成器400的写数据多路复用器410传送写数据寄存器选 择值WD(图4)。如上所述,多路复用器410响应于写数据寄存器选择值 WD路由由数据寄存器DR0-DR6以及随机数据生成器401提供的所选择的 一个4位的数据值。控制器103还向数据生成器400的写数据多路复用器 420传送写数据条选择信号W#(图4)。如上所述,响应于写数据条选择 信号W#,多路复用器420向数据加扰器425选择性地发送由多路复用器 410路由的数据值,或者由多路复用器410路由的数据值的反转。数据加扰 器425采用上述的方式向被测试存储器提供数据值DATA。

在对应的指令执行期间,访问生成操作码502的操作参数选择位OP 可用于选择芯片150的操作参数(例如,供给电压或信号时序)。例如, 具有逻辑‘0’值的操作参数选择位OP表示将在芯片150上实现第一供给电 压,而具有逻辑‘1’值的操作参数选择位OP表示应在芯片150上实现不同 于第一供给电压的第二供给电压。当接收到指令时,控制器103指示芯片 参数控制器107来设置由操作参数选择位OP指定的供给电压。注意,在其 它实施例中,附加操作参数选择位可用于选择两个以上供给电压电平。此 外,附加操作参数选择位可用于控制其它芯片参数,诸如信号延迟。

循环处理操作码501包括循环计数器指针(LCP=INST[3:0])、循环 至指令指示器(L2I=INST[4])、循环指令地址(LIA=INST[9:5])、按序 小型计数器使能信号(SCE=INST[10])、按序小型计数器选择信号 (SCS=INST[11])、并行大型计数器使能位(PLE=INST[17:12])、并行 小型计数器使能位(PSE=INST[21:18])、以及并行小型计数器组选择 (PSS=INST[22])。

循环计数器指针LCP指示使用专用计数器105的哪个计数器作为对应 指令的循环计数器。循环计数器指针LCP是一个4位值,其允许选择任意 一个大型计数器200-205,或任意一个计数器组206-207,或者任意一个小 型计数器210-213或220-223作为指令的循环计数器。

具有逻辑‘0’值的循环-至-指令指示器位L2I表示当前的指令不与任何 其它的指令一起循环,而具有逻辑‘1’值的循环至指令指示器位L2I表示当 前的指令与可编程指令存储器101中的另一个指令操作码一起循环。循环 指令地址LIA指向存储与当前指令一起循环的指令的可编程指令存储器 101的地址。允许诸指令相互循环有利地增大PCDTE 100可实现的操作范 围。

如上所述,专用计数器105包括六个大型计数器200-205以及两个小 型计数器组206-207,其中每个小型计数器组206-207包括四个小型计数器 (即,210-213和220-223)。具有逻辑‘0’值的按序小型计数器使能信号SCE 表示不允许两个小型计数器组206-207的任何一个顺序地计数(即,每个 小型计数器210-213和220-223作为标准计数器操作)。相反,具有逻辑‘1’ 值的按序小型计数器使能信号SCE表示允许两个小型计数器组206-207之 一顺序地计数(即,小型计数器组206-207之一作为集成计数器操作)。 按序小型计数器选择信号SCS指示小型计数器的两个组206或207的哪一 个被配置成实现按序计数。例如,具有‘0’值的按序小型计数器选择信号SCS 表示小型计数器组206作为集成计数器操作,而具有‘1’值的按序小型计数 器选择信号SCS表示小型计数器组207作为集成计数器操作。

六个并行大型计数器使能位PLE的每一个与专用计数器105中相应的 六个大型计数器200-205之一相关联。并行大型计数器使能位PLE识别并 行地更新(递增/递减)六个大型计数器200-205中的哪几个。具有逻辑‘0’ 值的并行大型计数器使能位PLE表示该相应大型计数器不与其它大型计数 器一起并行更新,而具有逻辑‘1’值的并行大型计数器使能位PLE表示该相 应大型计数器与也具有逻辑‘1’的并行大型计数器使能位PLE的其它大型计 数器一起并行更新。

具有逻辑‘0’值的并行小型计数器组选择信号PSS表示启用两组小型计 数器之一(例如,小型计数器组206)以便实现并行更新,而具有逻辑‘1’ 值的并行小型计数器组选择信号PSS表示启用两组小型计数器的另一个 (例如,小型计数器组207)以便实现并行更新。如上所述,每组小型计数 器包括四个小型计数器。四个并行小型计数器使能位PSE的每一个与组中 对应的四个小型计数器之一相关联。具有逻辑‘0’值的并行小型计数器使能 位PSE表示该对应的小型计数器不与组中的其它小型计数器并行更新,而 具有逻辑‘1’值的并行小型计数器使能位PSE表示该对应的小型计数器与组 中的也具有逻辑‘1’的并行小型计数器使能位PSE的其它小型计数器并行更 新。在可选的实施例中,其中指令大小(门数)不是问题的情况下,可使 用两组PSE位,其中小型计数器组206和207的每个组具有一个包括四个 PSE位的对应组。在该可选的实施例中,不需要PSS信号。

根据一个实施例,控制器103顺序地取出并执行可编程指令存储器101 中存储的指令操作码,从而执行被测试存储器中的读/写/非(NOP)操作的 序列。

现在将描述示例性指令操作码的执行。在该示例中,指令操作码指示 应使用由大型计数器200提供的地址(RE=1并且RA=‘000’)执行读访问, 并且应使用由大型计数器201提供的地址以及由数据寄存器DR1提供的写 数据(WE=1,WA=‘001’,WD=‘001’,以及W#=0)执行写访问。在该示 例中,大型计数器202作为循环计数器,该指令不与另一个指令一起循环, 不使用小型计数器组206-207(LCP=‘0010’,L2I=0,LIA=‘xxxxx’,SCE=0, SCS=x,PSE=0000,PSS=‘x’)。这种情况下,对被测试存储器并行执行读 和写操作。并行更新(递增/递减)读地址(大型计数器200)、写地址(大 型计数器201)以及循环计数器(大型计数器202)直到循环计数器(大型 计数器202)届满(即,PLE=‘111000’)为止。结果,指令操作码可使得对 被测试存储器执行大量的顺序读/写操作。当检测到循环计数器(大型计数 器202)已经届满时,控制器103取出可编程指令存储器101中的下一个指 令操作码,并且执行该指令操作码。

如果指令操作码选择小型计数器组206-207之一作为集成计数器操作 (SCE=1),则控制器103链接小型计数器组的小型计数器。链接小型计 数器类似于对计数器递增设置优先级。例如,如果选择小型计数器组206 作为集成(按序)计数器操作,则控制器103可增加小型计数器210直到 该计数器届满为止,然后增加小型计数器211直到该计数器届满为止,然 后增加小型计数器212直到该计数器届满为止,然后增加小型计数器213 直到该计数器届满为止。如上所述,这些小型计数器210-213可配置成列、 行、扇区以及存储体地址计数器。

如上所述,事务生成单元106通过复用计数器值以提供读/写地址和写 数据(或读比较数据)来生成对于被测试存储器的访问。这种灵活性允许 以PCDTE 100门数的最小增量来增加由PCDTE 100实现的端口数量。即, 可通过对PCDTE 100添加附加的复用结构来添加附加端口。例如,为了对 PCDTE 100添加附加读端口,附加的读多路复用器(类似于多路复用器230) 以及附加的读地址加扰器(类似于读地址加扰器235)将耦合到计数器 200-207,且附加位将被添加到访问生成操作码502以便指定该附加读端口 的读访问使能位(RE)、以及该附加读端口的附加读地址指针(RA)。采 用类似的方式,附加的写端口可被添加到PCDTE 100。

图6是根据本发明的一个实施例,说明使用PCDTE 100来实现内置自 测试(BIST)以及内置自修复(BISR)的系统600的框图。系统600包括 上面已经描述过的PCDTE 100以及与PCDTE 100相同的PCDTE 100A。 PCDTE 100和PCDTE 100A被耦合到被测试存储器601。被测试存储器601 包括一个写端口和两个读端口。存储器601的写端口和第一读端口耦合到 PCDTE 100,而存储器601的第二读端口耦合到PCDTE 100A。存储器601 响应于存储器601的第一和第二读端口上启动的读操作分别提供读数据值 R_DATA和R_DATA_A。多路复用器602路由所选择的读数据值R_DATA 或R_DATA_A之一作为输出数据R_DOUT。输出数据R_DOUT被提供到 异或电路605。来自PCDTE 100A的写端口的读比较数据DATA_A被提供 到异或电路605。PCDTE 100A响应于由PCDTE 100指定的测试模式(即, 写和读操作)算法化地确定读比较数据DATA_A。因此,假设向存储器601 写入的数据以及从存储器601读取的数据中没有错误,则输出数据R_DOUT 应与读比较数据DATA_A匹配。异或电路605指示输出数据R_DOUT与 读比较数据DATA_A之间存在的任何不同(即,存储器601中的错误)。 异或电路605向电熔断(E-Fuse)/BISR电路610传输该信息,其响应于所检 测到的不同/错误执行校正动作。

图7是根据本发明的另一个实施例,可在芯片150中实现的带宽引擎 700的框图。带宽引擎700说明在芯片150中放置PCDTE 100的一个选项。 带宽引擎700包括CEI物理层接收器以及位对准器701、物理编码子层 (PCS)通道(lane)和帧对准器702、存储器控制逻辑703、存储器宏704、 数据加扰器705,以及CEI物理串行器和传送器706。在图7的带宽引擎 700中,CEI是指串行通信接口协议,诸如序列号为12/697763的被转让给 MoSys公司的美国专利申请所公开的那样。

CEI物理层接收器以及位对准器701包括从芯片150外部的源接收高 速串行数据流的模拟前端(AFE)710,以及将数据与时钟信号进行对准的 触发器711。PCS通道和帧对准器702包括存储对准的串行数据并且实现通 道偏移功能的滑移缓冲器(slip buffer)712、对由滑移缓冲器712提供的数 据进行解串行化的解串行器713、以及对由解串行器713提供的数据进行解 除加扰的解扰器714。存储器控制逻辑703包括根据从解扰器714接收的数 据来解码存储器访问命令的命令解码器715、以及识别并校正从解扰器714 接收的数据中的错误的循环冗余码校验(CRC)检查逻辑716。存储器控制 逻辑还包括PCDTE 100。存储器宏704从存储器控制逻辑703接收控制、 地址和数据信号。注意,响应于由AFE 710接收的(以及通过块711-716 传送的)串行数据,可提供由存储器宏704接收的控制、地址和数据信号。 可选地,采用上述的方式,可由PCDTE 100提供传送到存储器宏704的控 制、地址和数据信号。

从存储器宏704读取的数据被提供到数据加扰器705。作为响应,数 据加扰器705将加扰的数据提供给数据串行器717。作为响应,数据串行器 717将串行数据提供给模拟后端(ABE)718,其将高速串行数据传出芯片 150。

根据一个实施例,在PCDTE 100的读端口和/或写端口处生成的存储器 访问信号被直接路由至数据加扰器705(而不是直接路由至存储器宏704)。 结果,模拟后端718对由PCDTE 100生成的存储器访问信号进行加扰(通 过数据加扰器705)、串行化(通过数据串行器717),并且作为高速串行 数据从芯片150传出。根据本发明的一个实施例,这些存储器访问信号被 传送到具有类似于芯片150的带宽引擎700的带宽引擎的另一个芯片。这 种配置有利地运用带宽引擎700的传送路径,以及外部带宽引擎的接收路 径。从带宽引擎700传送的存储器访问信号可用于测试其它芯片中的存储 器宏。

在可选的实施例中,模拟后端718耦合到模拟前端710,以便通过模 拟前端710接收由PCDTE 100生成的并且从模拟后端718传输的存储器访 问信号。在该实施例中,采用环路回送模式来运用贯穿串并转换(SerDes) 传送器706、串并转换接收器701、PCS通道和帧对准器702以及存储器控 制逻辑703到存储器宏704的数据路径。

虽然结合多种实施例描述了本发明,应当理解的是,本发明并不限于 所公开的实施例,但能够实现各种修改,这对于本领域的技术人员是显而 易见的。因此,本发明仅由所附权利要求来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号