Rtl code coverage tools




















This is how we can rate the testbench and measure the simulation progress. In this case, we redefine the coverage target based on the number of days available and at the same time how best we can verify and assure that the expression will not break.

Coverage closure is an iterative process. Though code coverage is meant for improving the testbench quality, still we would be able to identify the design bugs too as part of this iterative process, as shown in the figure below.

This is how code coverage works. Where are we heading in the Semiconductor business? December 10, Sivakumar P R 0. David R. David Stamm. David Stewart. David Yao. Davorin Mista. Dawson Engler. Dean Drako.

Deepak Shankar. Deepak Kumar Tala. Dejan Markovic. Derek King. Devadas Varma. Devesh Guatam. Diana Marculescu. Dirk Lanneer. Dominik Strasser. Don Emil Pezzolo. Don McInnis. Don-Min Tsou. Donald Bennett. Doug Fairbairn. Drew E. Duncan Bremner. Durga Lakshmi Sangisetti.

Ed Blackmond. Edmund K. Edward A. Edward Komp. Edward N. Egino Sarto. Elena Potanina. Eli Yablonovitch. Ellis Smith. Enno Wein. Eric Ryherd. Eric Beisser. Eric Dormer. Eric Dupont.

Eric Dupont-Nivet. Eric Peers. Eric T. Erik Lauwers. Esin Terzioglu. Eun Sei Park. Ewald Detjens. Fadil Kotaji. Fang-Cheng Chang. Fang-Li Yuan.

Farakh Javid. Fergus Slorach. Fia Johansson. Firas Mohamed. Founder s Unknown. Francis Bernard. Frank Gennari. Frank Costa. Frank DeRemer. Frank Schenkel. Franz Dugand. Frederic Reblewski. Frederick Fred Saal. Fuad Musa. Fumiaki Sato. Gabi Leshem. Gagan Hasteer. Ganapathy Subramaniam. Gene Dancause. Gene Marsh.

Geoffrey Tate. Gerald H. Gerald L Jerry Frenkil. Gerald Pechanek. Gerhard Angst. Gert Goossens. Ghassan Gus Y. Ghislain Kaiser. Giacinto Paolo Saggese.

Gil Winograd. Glen M. Gopa Periyadan. Gopal Krishna Nayak. Gordon B. Gordon Baty. Gordon E. Graham Hellestrand. Grant A. Greg Doyle. Greg Hoeppner. Greg Lloyd. Greg M. Gregory Recupero. Guido Arnout. Guy Bois. Guy de Burgh. Hal Alles. Hal Conklin. Hamid Savoj. Harald Neubauer. Hardeep Gulati. Harm Arts. HarnHua Ng. Harvey C. Jones jr. Hayder Mrabet. Hazem El Tahawy. Hein van der Wildt. Heinrich Meyr.

Helmut Mahr. Henrik Pallisgaard. Henry Cox. Hermann Hauser. Hiro Moriyasu. Holly Stump. Howard L. Howard Pakosh. Ian Lankshear. Ian Page. Ian Tsybulkin. Ihao Chen. Ivan Pesic. Eric Bracken. George Janac. Jack Herrick. Jack Harding. Jack Little. Jack Peng. Jacob Ben-Meir. James Jim Fiske. James Jim Ready. James B. James C. James E. Jim Solomon. James G. James Girand. James Truchard. James V Barnett II. Jamsheed Agahi.

Janak H. Jane Karwoski McCracken. Jason Campbell. Jason Cong. Jason Xing. Jauher Zaidi. Jaushin Lee. Jay Avula. Jean Barbier. Jean Brouwers. Jean-Luc Pelloie. Jean-Philippe Lambert. Jean-Pierre Appel. Jean-Pierre Lecailliez. Jean-Yves Brena. Jeff Fox. Jeff Bier. Jeff Galloway. Jeff Kodosky. Jeff Tuan. Jens C. Jens J. Tybo Jensen. Jens P. Jeong-Tyng Li. Jeremy Birch. Jerome Vanthournout. Jesper Knudsen. Jez San.

Jian X. Jim McCanny. Jim Sansbury. Jinsong Zhao. Joe Higgins. Joe Tanous. Joe Tatham. Joerg Grosse. Joey Y. Johan Van Praet. Johan Peeters. Johann Foucher. Johannes Emigholz. John Gilbert. John A. John Charles Carveth.

John Croix. John Durbetaki. John F. John Goodenough. John Halfpenny. John Hall. John Hatfield. John K. John Lee. John Lofton Holt. John Maneatis. John Mills. John Ott. John R. John Sanguinetti. John Tanner. Johnathan Weiss. Johnson Limqueco. Jonathan Cagan. Jonathan Rose. Jordan Swartz.

Joseph Skazinski. Joseph B. Joseph E. Joseph Lee. Joseph Rothman. Josh Lee. Juliusz Poltz. Jun-Jyeh Hsiao. Charles Janac. Kaiwin Lee. Kamran Elahian. Kannankote Sriram. Karel Masarik. Karen Vahtra. Kaushik I. Kavitha Tala. Keith Short. Keith Seymour. Keith Whisnant. Ken McElvain. Ken Matusow. Ken Seymour. Ken Tseng. Kenneth L. Kevin Chou. Kevin Hotaling. Kevin Ladd. Khalil Shalish. Kim Hailey. Kimon Michaels. Kirvy Teo.

Kurt Matis. Curtis Widdoes Jr. John Doerr III. Richard Carley. Larry Carver. Larry Lewis. Larry Rubin. Lars-Eric Lundgren. Laurent Moss. Lawrence T. Larry Pileggi. Lee Tavrow. Lei He. Lev A. Limin He. Lip-Bu Tan. Lisa McIlrath. Lloyd Pople.

Lothar Linhard. Luc Burgun. Lucio Lanza. Lukas van Ginneken. Lutz P. Maha Zaidi. Maheen Hamid. Mahesh Rao. Mahshad Koohgoli. Manny Marcano. Mar Hershenson.

Marc Renaudin. Marc Witteman. Marcelino Santos. Marco Rubinstein. Margarida Sousa. Margie Levine. Mario Blazevic. Mark Beardslee. Mark Cianfaglione. Mark Hampton. Mark Horowitz. Mark Olen. Mark R. Mark Santoro. Mark Waller. Mark Williams.

Mark-Eric Jones. Markus Mergens. Marleen Boonen. Martin Baechtold. Martin Langhammer. Martin Lefebvre. Martin Walker. Martin Wilson. Mathias Silvant. Maurice Whelan. Maurizio Arienzo. Maximilian Odendahl. Mehmet A. Mel Gilmore. Michael McNamara. Michael Alam. Michael Burstein. Michael D. Michael Goldstone. Michael J. Michael Magranet. Michael Nicolaidis. Michael Pronath. Michael Wakim.

Michel Oger. Mike Rieger. Mike Bartley. Mike Borza. Mike Chandler. Mike Dini. Mike Farmwald. Mike Kliment. Mike Lee. Mike Meredith. Mike Scase. Mike Yungho Tsai. Mikko Varpiola. Milton R. Misha Burich. Mohamed Kassem. Mohan R. Mojy Chian. Morris Chang. Murat Alaybeyi. Mustafa Celik. Naeem Zafar. Nagesh Gupta.

Naveed Sherwani. Naveen Chava. Neil Johnson. Neil Roberts. Nick Cobb. Nick Martin. In cases of low OBC coverage, we examined our test plans and modified the tests so that they resulted in activity propagating to specified points.

Usage of OBC in this manner significantly increases the chance that potential bugs will be made visible to the verification engineer. As a result of our experience with OBC, we have incorporated it into our deliverables and run it regularly.

Because it provides a more accurate measurement of the completeness of verification stimulus on the design code, OBC allows us to produce higher quality designs compared to traditional coverage tools. Functional coverage and data mining OBC is definitely a significant step forward in the coverage world. However, it is only a building block upon which we would like to create a more sophisticated coverage infrastructure. RTL is one implementation of a design specification.

In the case of our Xtensa product, for instance, the RTL implements a processor according to a certain pipelined micro-architecture. Designers tend to think at the architectural or micro-architectural level when debugging the chip, not in terms of lines of RTL.

The most obvious property in a processor is the notion of instruction. Which instructions are in which pipeline stages is critical to understanding whether the design behaves correctly or not.

More generally, coverage at this level means having a clear picture of what the processor is doing. This is where a temporal assertion language becomes handy. A hot topic today is whether a standard will be achieved soon and tools will start using temporal assertions to describe all kinds of coverage data.

In our case, we would want to define many temporal assertions corresponding to interesting architecture situations - for example, if a certain buffer is full, if some state machin e is in an interesting state, and so forth. We would then query this "database" of coverage events with sophisticated requests.

For instance, was the state machine for the Instruction Fetch module in state A when an interrupt occurred? Furthermore, under the previous scenario, was the interrupted instruction aligned on a bit boundary? Did that happen when this other buffer in the LoadStore unit was full?

Each of these properties can be expressed fairly simply using a temporal assertion language. The step of building such a coverage database and using it would mean entering the world of data mining.

Figure 3 - Cross-product coverage table This example shows how we wrote some monitors that extract coverage information and perform a cross-product between two states. The columns represent different alignment possibilities, the rows correspond to instruction classes.

The different values in the table Miss, Hit, Both, or eXecute add a third dimension to the table. We would like to generalize this concept using data mining and perform more sophisticated analysis or our micro-architectural coverage. The challenge lies in visualizing and navigating data in multi-dimensional forms, where the number of dimensions or independent variables can easily reach 5 or 6. Conclusion As design verification becomes more challenging, coverage is about to play a more central role in the verification methodology.

In the coming years, it could be expected that coverage will interface with a variety of tools such as formal engines, temporal assertion languages and data-mining tools, ultimately building what could be called the "Verification Grail. Observed coverage is a continued step in the direction of better verification technology.

It is our experience that having different ways of questioning the design, by using dif ferent approaches, is the best guarantee of finding all the bugs. Each time a new methodology offers a fresh way to challenge the design, we usually gather interesting information that had been overlooked by other methods.

No portion of this site may be copied, retransmitted, reposted, duplicated or otherwise used without the express written permission of Design And Reuse. Design And Reuse. Code coverage techniques -- a hands-on view Code coverage techniques -- a hands-on view By Alain Raynaud, EEdesign February 28, p.

Partner with us Partner with us. List your Products Suppliers, list your IPs for free. List your Products. Printer-Friendly Page.



0コメント

  • 1000 / 1000