如何进行硅后测试

发布时间:2024年01月02日
1.be simple and fast.  
	dont use a reference model
		而是生成测试用例,并尽量保证覆盖率
2.handler of interrupt
	instead of placing the branch instruction into the test stream, 
		it writes an illegal instruction form. 
	This way,when the test-case is executed, 
		the illegal instruction causes an illegal instruction interrupt.  
	The handler of this interrupt calls a generation function 
		dedicated to the completion of the branch instruction generation

3.data path selection
	22 types of fp number forms - 
		10 single forms and 12 double forms
		normalized,
		denormalized,
		infinity 
	We defined a coverage model 
		that includes the occurrence of all the legal number forms 
			in the input and outputs operands of the 10 fp instructions. 
		This model includes 280 different legal events
	
3.how to checking 
	execute each generated test-case several times (passes). 
	After each pass we check that certain resources, 
		including registers and memory areas, 
			are consistent and have the same end-of-test values. 
	In this way, we have the first pass essentially 
		serve as a reference model.	
		
	This consistency is guaranteed by restricting the test-case generation as follows. 
		First, we do not randomly generate any instruction whose behavior is not fully predictable
			This includes, for instance, the Load-and-reserve instruction, 
			This attempt may succeed or fail depending on run-time conditions 
				that involve other threads in the system, 
					and cannot, in general, be predicted during test-case generation
		Second, we forbid any write-write collisions on checked memory areas 
			since we can not predict the order between the colliding write accesses.
			
		Third, we must ensure that any data written to a checked resource is deterministic, 
			in the sense that it has the same value in every pass
			This is achieved either by having another checked resource 
				serve as the source of the data 
				or by simply using a constant
4.why use multi-pass consistency checking				
	Some variability is created automatically, 
		for example due to page tables filling up and different cache states 
		the ordering of instructions executing in the pipeline of the same thread 
			can also be different

	However, some type of bugs cannot be detected. 
		For example, a bug in the processor’s datapath causing 1+1=3 will go undetected
referenced:
	Threadmill: A Post-Silicon Exerciser for Multi-Threaded Processors

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_38963393/article/details/135335857
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。