24.03.2013 Views

ModelSim SE User's Manual - Electrical and Computer Engineering

ModelSim SE User's Manual - Electrical and Computer Engineering

ModelSim SE User's Manual - Electrical and Computer Engineering

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Weighting coverage directives<br />

Configuring functional coverage directives UM-387<br />

As shown in the dialog above, you can assign weights to coverage directives. Weighting<br />

affects the aggregated coverage statistics in the currently selected design region. A<br />

directive with a weight of 2 has twice the effect of a directive with a weight of 1.<br />

Conversely, assigning a directive a weight of 0 would omit the directive from the statistics<br />

calculation. See "Underst<strong>and</strong>ing aggregated statistics" (UM-393) for more details.<br />

Weighting is a decision you make as to which cover points are more important than others<br />

within the context of the design <strong>and</strong> the objectives of the test. Weightings might change<br />

based on the simulation run as specific runs could be setup with different test objectives.<br />

The weightings would then be a good way of filtering how close the test came in achieving<br />

its objectives.<br />

Example scenario<br />

Choosing "AtLeast" counts<br />

The likelihood that each type of bus transaction could be interrupted in a general test is very<br />

low as interrupted transactions are normally rare. You would probably want to ensure that<br />

the design h<strong>and</strong>les the interrupt of all types of transactions <strong>and</strong> recovers properly from<br />

them. Therefore, you might construct a test such that the stimulus is constrained to ensure<br />

that all types of transactions are generated <strong>and</strong> that the probability of transactions being<br />

interrupted is relatively high. For that test, the weighting of the interrupted transaction<br />

cover points would probably be higher than the weightings of uninterrupted transactions (or<br />

other coverage criteria).<br />

The AtLeast count is a minimum threshold of coverage that gives you some confidence that<br />

the run was meaningful. You don’t need to set this threshold on every directive, but you<br />

should underst<strong>and</strong> which minimal thresholds make for a useful simulation run based on<br />

your design <strong>and</strong> the objectives of the verification session.<br />

For example, say your test program requires a certain level of PCI traffic during the<br />

simulation. 30 PCI STOP transactions might be a proxy measure of sufficient PCI traffic,<br />

so you would set an AtLeast count of 30 on the "PCI STOP" coverage directive. Another<br />

example might be that a FIFO full should have been achieved at least once as that would<br />

indicate that enough activity occurred during the simulation to reach a key threshold. So,<br />

your "FIFO full" directive would get an AtLeast count of 1.<br />

<strong>ModelSim</strong> <strong>SE</strong> User’s <strong>Manual</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!