In Chapter 10, we describe ways to address complexity issues, enabling formal verification on des... more In Chapter 10, we describe ways to address complexity issues, enabling formal verification on designs that initially might seem too large or logically complicated for tools to handle. After reviewing the general concepts of state space and complexity, we describe several complexity reduction techniques on a memory controller example. Simple techniques include black boxing, case splitting, property simplification, and cut points. Generalizing analysis with free variables is also often useful. We then describe several types of abstraction models: datapath abstraction, symmetry exploitation, counter abstraction, sequence abstraction, and memory abstraction. We conclude with descriptions of creating partial “shadow” reference models, and helper assumptions that can sometimes rule out large parts of the problem space. Together these techniques have enabled successful verification of large and complex models; do not give up on formally verifying a model until you have closely examined it for these kinds of opportunities.
Ever since reading Martin Gardner’s classic Fads and Fallacies in the Name of Science back in hig... more Ever since reading Martin Gardner’s classic Fads and Fallacies in the Name of Science back in high school, I’ve had a strong interest in the idea of skepticism, critically examining our assumptions about science and the ways in which we misinterpret the world around us. This doesn’t just mean picking at easy targets such as astrology and numerology, but also asking basic questions about the sources of all our scientific knowledge. We need to be careful not to define skepticism as simply our instinctive negative reaction to the sillier of the New Age fads, but as our requirement to carefully think about our hidden and not-so-hidden assumptions.
Like many of you reading this book, I have been a lifelong fan of science fiction movies, books, ... more Like many of you reading this book, I have been a lifelong fan of science fiction movies, books, and television shows. This is not very unusual for a math and computer geek, since there has always been a strong correlation between interest in mathematics, space travel, and science fiction. To some extent, this is inherent in the topic: after all, our space program and our knowledge of astrophysics, astronomy, and cosmology are heavily dependent on some of our most advanced mathematical techniques. But I think it goes beyond this, with some fundamental similarity between the way we stretch our minds to think about what might lie beyond us in space, and what might lie in the many mathematical possibilities beyond our mundane systems of counting and measuring.
What does the word “infinity” mean? This is one of the strangest mathematical ideas we can try to... more What does the word “infinity” mean? This is one of the strangest mathematical ideas we can try to twist our mind around. Does it represent everything in the universe? Is it just a number that is bigger than all other numbers? Can something be greater than infinity? When you try to think carefully about the concept of infinity, all your preconceived notions start to fly out the window. There also seems to be some implied tie-in with religion: how many modern faiths refer to god as “The Infinite” in some form? The idea of multiple infinities was the theme of the very first Math Mutation podcast, and there have been many subsequent episodes where we have explored different aspects of this concept.
Now that the reader is familiar with the general concepts of FPV, we use this chapter to describe... more Now that the reader is familiar with the general concepts of FPV, we use this chapter to describe FPV usage for the specific goal of providing “instant testbenches” for early exercise and testing of RTL designs. Using the motivating example of a small traffic light controller implemented with a set of interacting state machines, we walk through the typical steps of design exercise FPV. First we create a design exercise plan, a lightweight collection of goals, properties, complexity staging ideas, and exit criteria. Then we develop the design exercise FPV environment, which includes building the model, creating suitable properties, and other details such as clocks and resets. Once this preparation is done, we demonstrate the “wiggling” process for early debug, followed by more interesting exercise cases. We then conclude by showing how we can evolve this FPV environment to demonstrate more complex model behaviors.
In Chapter 10, we describe ways to address complexity issues, enabling formal verification on des... more In Chapter 10, we describe ways to address complexity issues, enabling formal verification on designs that initially might seem too large or logically complicated for tools to handle. After reviewing the general concepts of state space and complexity, we describe several complexity reduction techniques on a memory controller example. Simple techniques include black boxing, case splitting, property simplification, and cut points. Generalizing analysis with free variables is also often useful. We then describe several types of abstraction models: datapath abstraction, symmetry exploitation, counter abstraction, sequence abstraction, and memory abstraction. We conclude with descriptions of creating partial “shadow” reference models, and helper assumptions that can sometimes rule out large parts of the problem space. Together these techniques have enabled successful verification of large and complex models; do not give up on formally verifying a model until you have closely examined it for these kinds of opportunities.
Ever since reading Martin Gardner’s classic Fads and Fallacies in the Name of Science back in hig... more Ever since reading Martin Gardner’s classic Fads and Fallacies in the Name of Science back in high school, I’ve had a strong interest in the idea of skepticism, critically examining our assumptions about science and the ways in which we misinterpret the world around us. This doesn’t just mean picking at easy targets such as astrology and numerology, but also asking basic questions about the sources of all our scientific knowledge. We need to be careful not to define skepticism as simply our instinctive negative reaction to the sillier of the New Age fads, but as our requirement to carefully think about our hidden and not-so-hidden assumptions.
Like many of you reading this book, I have been a lifelong fan of science fiction movies, books, ... more Like many of you reading this book, I have been a lifelong fan of science fiction movies, books, and television shows. This is not very unusual for a math and computer geek, since there has always been a strong correlation between interest in mathematics, space travel, and science fiction. To some extent, this is inherent in the topic: after all, our space program and our knowledge of astrophysics, astronomy, and cosmology are heavily dependent on some of our most advanced mathematical techniques. But I think it goes beyond this, with some fundamental similarity between the way we stretch our minds to think about what might lie beyond us in space, and what might lie in the many mathematical possibilities beyond our mundane systems of counting and measuring.
What does the word “infinity” mean? This is one of the strangest mathematical ideas we can try to... more What does the word “infinity” mean? This is one of the strangest mathematical ideas we can try to twist our mind around. Does it represent everything in the universe? Is it just a number that is bigger than all other numbers? Can something be greater than infinity? When you try to think carefully about the concept of infinity, all your preconceived notions start to fly out the window. There also seems to be some implied tie-in with religion: how many modern faiths refer to god as “The Infinite” in some form? The idea of multiple infinities was the theme of the very first Math Mutation podcast, and there have been many subsequent episodes where we have explored different aspects of this concept.
Now that the reader is familiar with the general concepts of FPV, we use this chapter to describe... more Now that the reader is familiar with the general concepts of FPV, we use this chapter to describe FPV usage for the specific goal of providing “instant testbenches” for early exercise and testing of RTL designs. Using the motivating example of a small traffic light controller implemented with a set of interacting state machines, we walk through the typical steps of design exercise FPV. First we create a design exercise plan, a lightweight collection of goals, properties, complexity staging ideas, and exit criteria. Then we develop the design exercise FPV environment, which includes building the model, creating suitable properties, and other details such as clocks and resets. Once this preparation is done, we demonstrate the “wiggling” process for early debug, followed by more interesting exercise cases. We then conclude by showing how we can evolve this FPV environment to demonstrate more complex model behaviors.
Uploads
Papers by Erik Seligman