Disclosed is a device and method for testing of a program or a design of an electronic device comprising digital
logic circuitry. The method comprises testing the design of
software or an electronic device and injecting, after
initiation of the testing step, a predetermined error pattern into a value operated upon by the design of the digital
logic circuitry. In a preferred embodiment, the
software is a
simulation of the design of a processor having a cache with error detection and / or correction circuitry. A triggering condition is preferably a cache hit, in response to which a detectable error is injected into the cache. The simulated operations of the model are observed to determine whether the injected error is detected, as should happen if the processor's error detection circuitry has been designed properly. In another respect, the invention is an apparatus, or
computer software embedded on a computer readable medium, for testing a program comprising an error
detector. The apparatus or
software comprises the program, an error
injector module connected to the program; and a checker module connected to the program. The checker module is capable of determining whether the program responds appropriately to an error dynamically produced by the error
injector module during execution of the program. By injecting errors dynamically the invention easily facilitates precisely focused testing at any time during simulated operation regardless of initialization conditions.