验证测试用ROM的方法技术

技术编号:3201626 阅读:172 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种验证测试用ROM的方法,利用本方法可提高验证测试用ROM的速度和正确性。在测试用ROM中预先分配四个存储单元,用来存储测试用ROM的和的高位和低位以及高位和低位的补码,并令存储高位及高位的补码的两个存储单元的内容以及存储低位及低位的补码的两个存储单元的内容互补;编译验证程序并对其二进制代码求出测试用ROM的和;接着分别将其和的高位和低位存储于测试用ROM所分配的存储和的高位和低位的存储单元中,并分别将其补码存储于测试用ROM中所分配的存储和的高位和低位的补码的存储单元中;最后通过编译修改后的程序并对其二进制代码求和,利用求出的测试用ROM的和的正确值来判断测试用ROM的和是否改变,从而验证测试用ROM的内容是否正确。

【技术实现步骤摘要】

本专利技术涉及一种验证方法,尤其是涉及IC设计中验证测试用ROM的方法
技术介绍
目前,在IC设计领域,ROM验证一般采用的是求和的方法来验证,即比较所有ROM单元中的内容的和是否和预期的所有内容的和相等。对于TROM(测试用ROM),程序会在TROM中分配两个单元来存储TROM的和的高位和低位以便于成测时进行比较和自测。而该程序本身又会对包含这两个单元在内的所有TROM的单元进行求和。即设TROM的和被存放在变量TROM_CheckSum_High和TROM_CheckSum_Low中,因为这两个值本来就是TROM中两个单元,在对TROM求和的同时也包含对这两个单元的求和,如果这两个单元的值改变,TROM的checksum和也会改变,同时,TROM的checksum和的改变也会引起TROM中的这两个单元的值的改变,这样就会形成一种循环。如何能又快又准确的求整个TROM的和呢?传统的办法是用线性逼进的办法去尝试,即先估计出TROM的和的大概值,将其填入TROM_CheckSum_High与TROM_CheckSum_Low中,然后再对TROM求和,用求出的和再去修改TROM_CheckSum_High与TROM_CheckSum_Low的值。重复以上过程,直到最后CheckSum的值和TROM_CheckSum_High与TROM_CheckSum_Low中的值吻合为止。利用这种方法,带有很大的随机性,数据收敛的快慢与验证人员的经验有很大关系。并且,由于验证采用尝试的方式进行,对于验证人员的人力和时间都是一种浪费。
技术实现思路
本专利技术的目的在于针对现有技术的上述不足,提出一种具有较高速度和正确性的验证测试用ROM的方法。本专利技术的上述目的是通过下述技术方案实现的首先,在测试用ROM中预先分配四个存储单元,分别用来存储测试用ROM的和的高位和低位以及高位和低位的补码,在验证程序初次编译之前,令存储高位及高位的补码的两个存储单元的内容互补,存储低位及低位的补码的两个存储单元的内容互补;之后,编译该验证程序并对其二进制代码求出测试用ROM的和;接着分别将其和的高位和低位存储于测试用ROM之中所分配的存储和的高位和低位的存储单元中,并分别将其补码存储于测试用ROM中预先分配的存储和的高位和低位的补码的存储单元中;最后,通过编译修改后的程序并对其二进制代码求和,利用求出的测试用ROM的和的正确值来判断测试用ROM的和是否改变,从而验证测试用ROM的内容是否正确。和现有技术相比,本专利技术具有以下有益效果由于本专利技术采用求补的方法,只需要一次编译之后就可以求出TROM之和。将该值填入源程序中后,再次编译之后求和,该和一定和上次所求的和相等。这样,只需要一次编译就求出了CheckSum的值,只需要再次编译,就验证了CheckSum的正确性,保证了其验证的快速性和正确性。附图说明图1是用线性逼进的方法求checksum的示意图;图2是本专利技术用求补方法求CheckSum的示意图;具体实施方式下面结合附图和实施例对本专利技术作进一步描述。如图1所示,传统的线性逼进的方法求checksum时,先估计出TROM的和的大概值,将其填入TROM_CheckSum_High与TROM_CheckSum_Low中,然后再对TROM求和,用求出的和再去修改TROM_CheckSum_High与TROM_CheckSum_Low的值。重复以上过程,直到最后CheckSum的值和TROM_CheckSum_High与TROM_CheckSum_Low中的值吻合为止。如图2所示,为了保证TROM的和在填入TROM中的存储单元之前和之后其和能保持不变,可以在TROM中再分配另外两个存储单元,分别用来存储保存TROM的和的补码。比如设A单元用来保存TROM的和的高位,B单元用来保存TROM的和的低位。同时,再另外分配两个存储单元C和D,分别用来存储A和B的补码,使得A+C=全F,B+D=全F。在程序编好以后,经过编译,根据其二进制代码,求出TROM的和。比如求出的TROM的和的高位为A’低位为B’。则,只要将A’和B’的值填入到相应的和的高位和低位的存储单元中A和B去,同时根据A’和B’的值,修改相应的补码存储单元C和D中的值C’和D’,使得A’+C’=全F;B’+D’=全F。根据这种方案,只要这四个单元的和保持不变,就可以保证TROM的和不变。可以通过编译修改过的程序并对其二进制代码求和来验证TROM的和是否改变。按照这种方法,可以绝对保证对于修改过后的程序,TROM求出的和与TROM中所保存的和的高位和低位一致。编程时,不论采用哪种语言实现,其基本方法类似。以字长为32位的处理器为例,只要在具体运算之前,对以下变量进行如此初始化Complement_TROM_CheckSum_High=0xffffffff;Complement_TROM_CheckSum_Low=0xffffffff;TROM_CheckSum_High=0;TROM_CheckSum_Low=0;在程序编好以后,编译该程序,并对相应的二进制文件求一次和,假设求出的和的高32位为TROM_CheckSum_High1,低32位为TROM_CheckSum_Low1,则只要把真正的TROM的和填入相应的存储单元,同时将其补码的值也做相应的改动即可。如下所示TROM_CheckSum_High=TROM_CheckSum_High1;TROM_CheckSum_Low=TROM_CheckSum_Low1;Complement_TROM_CheckSum_High=0xffffffff-TROM_CheckSum_High;Complement_TROM_CheckSum_Low=0xffffffff-TROM_CheckSum_Low;利用这种方法,TROM的和在修改前后一定没有变,所以TROM的和不需要再重复求出,该值就可以作为TROM的和的正确值来验证TROM。只要将TROM中的各个单元的内容相加,得出的值与TROM的和的正确值相比较即可验证TROM中的内容是否正确。本文档来自技高网...

【技术保护点】
一种验证测试用ROM的方法,其特征在于:首先,在测试用ROM中预先分配四个存储单元,分别用来存储测试用ROM的和的高位和低位以及高位和低位的补码,在验证程序初次编译之前,令存储高位及高位的补码的两个存储单元的内容互补,存储低位及低位的补码的两个存储单元的内容互补;之后,编译该验证程序并对其二进制代码求出测试用ROM的和;接着分别将其和的高位和低位存储于测试用ROM之中所分配的存储和的高位和低位的存储单元中,并分别将其补码存储于测试用ROM中预先分配的存储和的高位和低位的补码的存储单元中;最后,通过编译修改后的程序并对其二进制代码求和,利用求出的测试用ROM的和的正确值来判断测试用ROM的和是否改变,从而验证测试用ROM的内容是否正确。

【技术特征摘要】
1.一种验证测试用ROM的方法,其特征在于首先,在测试用ROM中预先分配四个存储单元,分别用来存储测试用ROM的和的高位和低位以及高位和低位的补码,在验证程序初次编译之前,令存储高位及高位的补码的两个存储单元的内容互补,存储低位及低位的补码的两个存储单元的内容互补;之后,编译该验证程序并对其二进制代码求出测试用ROM的和...

【专利技术属性】
技术研发人员:蒋英
申请(专利权)人:上海华虹集成电路有限责任公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利