Search This Blog

Tuesday, May 24, 2011

Tech-No!: Verification Methodologies and Design Patterns: Singleton Pattern


Definition/Intent: Ensure a class only has one instance, and provide a global point of access to it. It is a creational pattern.


Participants & Implementation:

Singleton:

is responsible for creating and storing its own unique instance

defines an Instance operation that lets clients access its unique instance


The “class level” Instance operation will either return or create and return the sole instance; a “class level” attribute will contain either a default indicating there is no instance yet or the sole instance


Applicability:

There must be exactly one instance of a class, and it must be accessible to clients from a well-known access point.

When the sole instance should be extensible by subclassing, and clients should be able to use an extended instance without modifying their code.

Benefits:

Controlled access to sole instance

Permits a variable number of instances

Usage in OVM:

· OVM_TOP – instance of ovm_root. Only one instance of ovm_top

· OVM Factory - only one instance of ovm_factory

References:

i. http://sourcemaking.com/

ii. http://www.oodesign.com

iii. http://home.gwu.edu/~blankeng/Classes/CSCI253/Class%20page%20(spring%202007).htm

vi. http://www.dofactory.com/Default.aspx


Tech-No!: Clock Dividers

Here is a good article for Clock Dividers:

"Clock Dividers Made Easy" - (SNUG Boston 2002 paper)


"Unusual Clock Dividers" - (Xilinx article)


Tech-No!: Clock Gating

Here is an article on Clock Gating basics. This is a SNUG2000 article.

"Power Reduction Through RTL Clock Gating"

Tech-No!: Clock Muxing

Here is a good article that talks about various glitch free clock muxing techniques.

"Techniques to make clock switching glitch free"

Monday, May 23, 2011

Tech-No!: Verification Methodologies and Design Patterns: A Preview

Ever since I worked on my first project in the industry, a simple Vera based verification environment, I have been thinking about the possible usage of Design Patterns in ASIC/SoC Verification. After all these years, I have managed to get a better understanding of this topic. I have worked on various Verification Methodologies and have identified a few design patterns in these methodologies.

In this series, I will target one design pattern in each post and hope to have a series of articles covering this topic. I will start with the usage of Singleton Pattern in OVM.