Selective Focus

For anyone who has ever picked up a camera and seriously wants to take pictures, rather than just snaps, one of the first techniques you learn is selective focus or controlling the depth of field. Selective focus allows the photographer to decide what should be the center of attention in a picture and to ensure that everything else around it does not become a distraction. The same applies to design and verification.

Consider the very simple example of the two photographs show below (I just fired these off in the back yard and they are by no means good photographs). Both of these photographs were taken from the same place, with the only difference being the aperture size used (other things such as ISO and shutter speed were adjusted to ensure correct exposure). It is simply a matter of physics and for anyone interested, Wikipedia has a good explanation of the physics involved.

In the top photograph, a large aperture was used and this restricts the depth of field so that only the flowers are properly focused. On the bottom, a small aperture is used and everything from close up to way in the distance is in focus and creates a much more distracting photograph.

Now why do I talk about photography in a verification forum? Simply because exactly the same affect is at play here, and yet people seem to have problems relating to the concepts when we are discussing design and verification. If too much detail exists, then the detail overwhelms the things that are important. In another context those things may be important. If I were to have done the same with a sweeping landscape picture, I would want all of it to be in crisp focus. The point is I decide on a case by case basis how much detail I want to see.

When we consider verifying a complex system, it is not always appropriate to see all of the details all of the time. For example if we were trying to verify a cell phone booting, registering with the tower, making a call and sending a picture it would be close to impossible to do this at the RTL level, where all of the details can be seen. I need to abstract what is going on in order to be able to see what is important to me, which is the basic functionality. Now does that simulation have to be done with the same level of accuracy? No – we only need to model the things that are pertinent in an accurate manner. From the shot on the left, you have no idea what is growing in the background, and similarly you really do not care about the details in the simulation so long as it approximates it to a reasonable level.

If we consider this from an ESL perspective, where we are doing a top down design, it is quite possible that all of the details are just not known yet. That is the process of design – making those decisions. But the fact that they have not been made does not mean that it is useless until we have everything. Yes it does mean that we cannot answer detailed questions about what is in the background until we have the fully detailed picture, but at the same time let me ask you how many flower buds are in the picture. You stand a good chance of getting it right by looking at the picture on the left and much less hope with the one on the right. So which is more likely to help you answer that question?

This is a concept that we will keep coming back to many times I am sure during our discussion on this forum, but for now let just leave it at that.

Brian Bailey – keeping you covered

[amazon_enhanced asin=”0240813359″ /] [amazon_enhanced asin=”1933952512″ /] [amazon_enhanced asin=”1580628788″ /] [amazon_enhanced asin=”1856694208″ /]

 

One thought on “Selective Focus

Comments are closed.