  The testing and verification of a complex hardware or software system, such
as modern integrated circuits (ICs) found in everything from smartphones to
servers, can be a difficult process. One of the most difficult and
time-consuming tasks a verification team faces is reaching coverage closure, or
hitting all events in the coverage space. Coverage-directed-generation (CDG),
or the automatic generation of tests that can hit hard-to-hit coverage events,
and thus provide coverage closure, holds the potential to save verification
teams significant simulation resources and time. In this paper, we propose a
new approach to the CDG problem by formulating the CDG problem as a noisy
derivative free optimization (DFO) problem. However, this formulation is
complicated by the fact that derivatives of the objective function are
unavailable, and the objective function evaluations are corrupted by noise. We
solve this noisy optimization problem by utilizing techniques from direct
optimization coupled with a robust noise estimator, and by leveraging
techniques from inverse problems to estimate the gradient of the noisy
objective function. We demonstrate the efficiency and reliability of this new
approach through numerical experiments with an abstract model of part of IBM's
NorthStar processor, a superscalar in-order processor designed for servers.
