Wednesday, June 15, 2011

Register verification in ASIC




The Register space in any ASIC is very important part for design as it provides the only means to configure and monitor the status of various processes that happen inside the ASIC The numbers of such register has been increase in step with the increase in the complexity of the ASICs to the tune that you could have millions of registers in some ASICs.. There are individual set of register & containers (array of same register). Each register have their own type (write-read, read-only), Reset values, fields etc these registers are replicated in ASIC no of times with unique address depending upon module instantiates.

Functioning of an ASIC highly depends on this registers. They are the nuts and bolts communication with firmware. Ensuring that the register work exactly as intended is one most important and challenging tasks in ASIC Verification.

In order to verify this registers efficiently one of the techniques employed is to create accurate Register Database in spirit format. Spirit Register Database is commonly used in industry because of the ease it extends to parse and convert to any language code for verification. We are using this to parse into system verilog language (OVM/UVM Register package) for our ASIC verification and same package is used to generate different language code bases (C++, Verilog, Etc).

Challenges for Register Verification:
  • The Register space in any ASIC is very important block.
  • ASIC’s contain lot of registers.
  • Different type of Register (Status, Control Etc) & Array of registers.
  • Replication of same set of Register space.
  • All the aspects of Registers RTL Implementation should be verified properly.
  • Functional coverage of all the fields of each register can be used as one of the parameter for verification closer.

OVM/UVM Register package help us to overcome all above mentioned challenges and have a below mentioned benefits.
  • Use this Register package (Register Database SV class) as Reference Model, Stimulus generator or scoreboard in Verification environment.
  • Single point modification will reflects in whole verification environment.
  • Verify all aspects of registers(type, reset, fields, reserve area).
  • Verifies Register using backdoor operations.
  • Get the functional coverage of all registers and their fields.
  • Use full to generate other language code for same register database.

Wednesday, January 6, 2010

Module Level Verification of Subsystem


While doing System Level Verification we need to make sure that every part of system as well as Integration between the peripheral and processor should be verified properly. In order to verify that subsystem (ARM/DSP) and their integration we try to cover almost all the possible test scenarios using Verification Plan but still some part of System remain unverified & That will be resolved by using Module Level Verification of Processor Subsystem.

Let me First talk about System Level Verification Environment,

SOC (system on chip) functionality is controlled by subsystem (DSP, ARM etc).Some Complex SOC has more then one subsystem inside the chip & different IP (peripherals) which executes functionality(Serial port, Audio video coded, Camera Etc) . These subsystems control peripherals inside the chip & execute functionality of peripherals. So, here we need to verify every IP (peripherals) individually and their integration with subsystems and other peripherals.

There are two type of verification we are using to verify entire SOC (System of chip).

(A) Module Level verification

This Type of Verification used to verify module or IP individually.

IPs (peripherals) mostly controlled through input pins. We provide set of input and checking the functionality & expect desired results on output pins according to IPs specifications. In this process we are checking DUT (Design under test) behaviour by providing different type of Test scenarios using Constraint - Randomization and make sure that Module or IP is fully verified by checking Coverage (Functional & Code) Coverage.

We mostly use System Verilog, e, OVA, and VHDL/verilog languages for this type of verification.

(B) System (Chip) Level verification

This type of verification helps us to verify SOC integration between different peripherals, between two subsystems, between subsystem and peripherals & functionality of entire SOC.

Functionality of SOC is controlled by Processor subsystems (DSP, ARM etc) not by inputs only. These subsystems read instruction from the program memory and executes. All peripherals are connected with subsystems and controlled though System Bus or Bridge. Now we load set of instructions (to be executed for specific functionality) inside program memory of subsystems & it executes these set of instruction & SOC function accordingly.

We mostly use C, Assembly language for this type of verification.


we write Test case in C language to execute various functionality from Processor and assembler converts C language into Assembly language. So, The Assembler reads functions & macros from C Test case and selects set of Assembly instructions and prepare entire test case in Assembly instructions. Now these instructions get converted into binary language because we can load these binary data into program memory.

Once we load data into program memory we run entire design & this verification also has a test bench which has BFM (Bus function module), Loop back & other complimentary logic through which we validate this design by checking test case pass or failed.

Above is normal verification methodology which we are using to verify system on chip. This covers all the functionality of design.

So, why we need Standalone module level verification for Processor Subsystem?

Processors has own set of instructions & how to make sure all instruction get executed in System Level Verification?

In System level verification environment we are using Assembler which converts C Program into Assembly. So, we highly rely on assembler which has hard coded set of instructions for any functions. It uses Limited instructions or Set of instructions.

Assemblers designed only once by vendor and normally it has same set of instructions for C functions & macros.

There are other instructions also though which we can check functionality. Those instructions are not used by assembler. That way we can verify all the functionality of the design but still not verified all the instructions of Processor.

To test every instruction we have to modify the Assembler which is time consuming & also it’s difficult because by modifying it still we cant be sure of using all the instructions in assembler and again not much relevant to system level verification.

We provide Clock & Reset from Test bench and once Processor come out from Reset it start executing functionality according to given instructions & write test case in Assembly language by using all different kind of instructions & check All functionality again. So, here we don’t require assembler and we make sure that 100% coverage achieved by processor.

To execute any functionality through this module level environment, take less time & resource compare to system level.


Above mentioned figure shows the environment of Processors module Level verification. We write test case in Assembly language using all possible functionality related instructions & Assembly language is getting converted into binary format.

Now all instructions get into binary format which is now ready to load into program memory by using preloading option into test bench.

This verification environment does have its own linker file, test macros & Test bench.

Linker file which specifies the program memory location where Processor read instruction & execute also take care of jump kind of instruction where user want their program should execute from different memory locations.

Test bench at top-level which has memory pre-loading, BFM & loop back kind of functionality to verify Processors.

Conclusion:

During SOC Verification we target 100% code coverage & functionality coverage by using Module level & system level verification.

We always close our verification process once we verify all functionality but still in System like DSP/ARM remain unverified as we haven’t tested all instructions yet

Instructions are very crucial for any Processor & it’s like blood in a vein. We can’t afford to ignore it in any SOC Projects as Verification Engineer.

Saturday, July 18, 2009

The Leadership

I always admire great leaders of History & some leaders of today's generations irrespective of which side they are right or left(Wrong) but i really look up to them
and try to learn from their stories & interviews.

i work in a software firm & my previous organisation we working on one of the good project and client was happy with our work but as a professional we were not feeling satisfied because during project we were not be able to learn new technology.so,we went to our manager expressed our concern & conversation heated up manager said "SOME HOW I HAVE TO RUN THE SHOW".personally i didn't like this attitude i understand there are constraint for manager but he should have conveyed the same massage different way.Here i found the difference between Manager & Leader.




Lord Ganesha is great symbolic leader ship icon in India & Look at the picture above Leader should have quality like that.Few points i would like to add here...

Big Head: Long range thinking power

Small but sharp Eyes: Leader should see pain point of every followers

Large Ears: He should listen to even a small followers

Big stomach: Able To digest Everything & any kind of conditions remain strong in front of followers.

Half Tooth & Full Tooth :Half tooth symbolise that Leader Might not know the minor detail of subject/problem but second full tooth symbolises willingness to resolve a problem.Leader may not have in depth knowledge of subject but willingness to resolve issue is necessary.


To be a great leader requires to have above mention quality other wise they end up being manager & in future i would like to be known as good leader rather then a Manager.

Recently i came across a nice conversation between Mr. Narayana Murthy A great leader of my generation ,i always look up to him for inspiration & spiritual guru Mr Deepak chopra.It was about Leader ship & success.

Please check this conversion on Leadership Mantra which truly an inspirational & highly motivating.




Tuesday, June 23, 2009

Perfectus Announces Industry’s First SystemVerilog-based OVM Tested ONFi Verification IP for ONFi 2.1 Specification



SANTA CLARA, Calif., Jun 22, 2009 (BUSINESS WIRE) -- Santa Clara-based Perfectus Technology, the leading provider of Verification IPs, today announced the availability of ONFi (Open NAND Flash Interface) Verification IP (VIP) product based on the ONFi 2.1 specification. This is the industry's first SystemVerilog-based, OVM-based ONFi VIP with a very sophisticated Verification Engine that will help in accelerating the ONFi-based IP/FPGA/ASIC/SOC/Silicon verification cycle with higher reliability and greater assurance for verification of device. The ONFi VIP is tested to work in the Mentor Graphics(R) Questa(R) Verification Platform.

The ONFi VIP comprises a complete verification environment including test generation, assertion checking and monitoring, and functional coverage. The VIP has a rich set of constrainable parameters, sequence library, powerful error injection capabilities, APIs and Callbacks for user configurability. The VIP is configurable and extensible to satisfy each specific verification environment's requirements. The VIP complies with OVM 2.0.

"Perfectus ONFi Verification IP improves productivity of the verification engineer by using a readily available sequence library to create the verification scenarios," said Sheetal Kammaje, marketing manager of Perfectus.

"Perfectus VIP also helps with the tracking of verification progress with the use of functional coverage." The ONFi VIP verifies Open NAND Flash Interface-based devices. ONFi 2.1 offers simplified flash controller design, but pushes performance levels to a new range--166 megabytes per second (MB/s) to 200 MB/s. Using ONFi strengthens compatibility and interoperability of NAND devices from different vendors.

(http://onfi.org/) The ONFi VIP supports asynchronous and source synchronous modes with all timing modes. It supports up to 4 Target NAND Flash devices with unlimited LOGICAL UNIT, BLOCK & PAGE. For more information visit www.perfectus.com/products-onfi.html The special feature of this product is the reports generated by the Genie-Interface-Inspector. Reports include a Functional Coverage report which helps to identify what functionality has been tested; an Error Inspection report which specifies the errors that were tested and errors that were not tested; a Protocol Inspection report which shows the percentage of ONFi 2.1 specification compliance; and a Features Coverage report which shows the percentage of features covered.


"We are pleased Perfectus has made available the first OVM-tested ONFi verification IP validated to run on the Questa platform," said Dennis Brophy, director of strategic business development, Mentor Graphics Corporation. "As an active member of the Mentor Graphics Questa Vanguard Partnership program, Perfectus works together with Mentor to improve design and verification productivity." Pricing and Availability The ONFi 2.1 VIP is available now. For pricing and additional information, please contact sales@perfectus.com or 408-748-8900, x5632.

About Perfectus Perfectus is a leading provider of very high quality and completely-configurable Verification IPs. Perfectus offers several Verification IP products which include AMBA: AHB, APB & AXI, Ethernet, Fibre Channel, I2C, ONFi, PCIe, SAS, SATA, SMBus, SPI 4.2, OCP, USB3.0 and USB 2.0.

For more information about Perfectus Corp, please email us at sales@Perfectus.com or visit our website at www.Perfectus.com.

Thursday, April 23, 2009

Generic Interface Inspector in System Verilog

Today complexity of chip is increased so the complexity of verification process because of time to market factor & quality of deliverable. In Entire Design Cycle from specs to silicon verification is process which takes maximum time in cycle. if we can get rid of some of verification effort then we should beat TTM factor with quality deliverable.

So the Re usability is a need of an hour to achieve this goal.
How we can resolve this issue and what exactly we re-use to achieve our goal ?


In Design cycle there are two different type of functional verification we target.Module level verification & Chip Level Verification. Almost all the peripherals inside SOC we use to verify first at module level and then we test the same peripheral inside the system. We target similar behaviour of the peripherals in both type of verification. But we use to verify same peripherals separately in both the level with same scenario & checks. we build different components to verify the same thing in different environment which takes lot of time to code components and to verify it.

During Verification process of standard protocols we use to verify design against all the Rules at pin level & block levels.Most of the protocols have Host & Device (Master or slave) blocks which communicate through the common bus for data transfer.

if you compare checker rule list of all standard protocols you will find that most of the checks are common at pin level and at block level.we need some mechanism which allow us to to re-use this common set of checks across different standard protocols and different kind of verification environment(Module & SOC).


if somehow we can reduce this gap by using same components in both type of verification & different protocols then it will save most of time of coding and we can beat TTM with Quality deliverable.

This protocol interface inspector provide library of common checks at block level,pin level & timing level which user can access from library & implement their own set of check rules by directly using or enhancing the task or function from libraries.

This Generic Protocol Interface Inspector probe to this common bus to access the data on the interface and validate against all the rules should be followed by standard protocol from Both Host & Device level by using common library developed implement protocol related checks. it will inspect transaction from host & validate it and expect some transaction from Device and validate transaction from device.

This Protocol Interface inspector will also verify the timing related rules on bus using assertion & also provide hook for enhancement to verify more rules by user.

This Protocol Interface Inspector will also verify Pin level activity on the Bus for example during certain mode of operation behaviour of pins changes & this protocol inspector validates pin level activity against all protocols pin related rules.

These Protocol Interface inspectors have Host Level & Device Level Blocks to verify all the Rules of given transaction from Host & Device.

This Protocol Interface inspector will do coverage analysis on the Bus and generate report of functionality coverage of interface. it also give report of all scenario & Errors.

This Protocol Interface will check all the rules, pin level assertions & coverage data to early verification closer.


We can use this Protocol Interface to Verify most of the standard protocols by using common library & also to verify any standards protocols Host Module, Device module at module level & Inside SOC as independent component. We need to connect all interface ports to this protocol inspector and all rules related to protocol will be verified.


so, this Generic Protocol Inspector reusable which can save lot of coding time of verification process.

Tuesday, March 10, 2009

Courage - Only solution of communal violence in india

Let me tell you about one of my childhood & best friend naran.i really admire him as a friend not because he is my childhood friend but person with great Courage.His father vasan bhai resident of village kukma in kutch district of gujarat. vasan bhai use to runs the floor mill and his son naran was running a shop attached to his home.

i remember the day when he was very happy when he bought one tractor for farming which he use to give on rent to other farmers.so,they were making slow but steady progress.his father use to tease me a lot by saying" I am the one who is not scared of your father" because my father is in incomtax dept and vasan bhai was not coming
under incomtax radar.they were happy with that and enjoying their lives in small village.

The day came 26th Jan"2001 Republican day of india & very cold morning.i was enjoying my sleep and i felt somebody try to move my bed as i open my eyes i felt my bed was jumping on the floor & before i can think one of the speaker (which i have place above my bed) fall on me.quickly i got up from my bed and rush to my mother and my sister who were inside the kitchen and very scared.i told my brother to move out quickly from this house with my father and i also run out from my house with my sister and mother.we success fully get out from our house and got into ground near by my home.when we came out from our home we cant see anything outside there was so much fog outside.i was watching everything what is happening around and thought we have been attacked (as bhuj is very near to Pak border and it was attacked first in 1971 war) ?

After 10 to 15 minute i was able to speak some words and i asked my father what is this papa? and he said i think its earthquake.

After 20-30 minutes later me & neighbours around me came out from shock.i can still remembers those scared faces and everyone was clueless about what is going on and what to do.i asked some of them how are they and anything happen to them ? Fortunately there was not a single casualty in out our colony but some house was badly damaged but no collapsed totally because our colony has all new construction & hardly 2 floor.so,i was unaware of rest of the bhuj which is 80 % collapsed.mostly the apartments and old constructed house and human casualty countless.

Same day afternoon my father told me to visit all my close relative in near by town & village.so,i took my bike and went to all the places.my village kukma was totally collapsed & i have seen vasan bhai.who sitting near the debris which was his home in the morning he woke up.i asked about naran & his family he told everybody is fine in his family and every one is alive.when i looked at his home which converted into debris.Actually they were using some part of their home as floor mill which vasan bhai used to run & narans shop.their tractor was parked near to their home.now everything was under the debris.all the source of income lost within 45 second(duration of earthquake).i asked vasan bhai who was sitting near to debris "now what..you lost everything..!!!".He said we are alive that's enough & i can build all this thing again.

After one month or more i come to know that vasan bhai has been arrested in murder case.i was shocked & could not believe and i spoke to some other friends in
kukma.they told me after earthquake people were slipping in farm 2 km away from village and it was on highway.so,one night he was going to farm at 1 am and found dead body of person near highway.so,he informed authority but move was back fired and he was charged by authority in murder of Muslim person in belongs to neighbour village and reason was personal rivalry.this smart move by authority was actually meant to avoid communal tension in already rough situation due to earthquake.as that murder was done by some right wing activist leader due to some personal differences because he was power full & truth might have initiated communal violence police made vasan bhai a scapegoat.he send to jail & case was going on.

after some time i went to kukma to meet naran & i saw him he was helping to build home for rest of the villagers by using his tractor.though his father was in jail & no source of income for him but he was helping all villagers without looking at religion of villagers.all villagers know his father has been framed & some Muslim villagers from kukma village visited neighbour village reldi and requested that person family who's been murder and vasan bhai was charged.those people were pursued by this villager and agreed to remove case against him and vasan bhai came out of jail.

i really appreciate narans courage that he didn't see & thought anytime that i am helping to hindu or muslim.this was the quality of him helped his father and i believe naran has given us a solution of communal problem in India.

Courage to restrain yourself during rough situation
Courage to help people belongs to any religion.
courage to stand against your own community if they are doing something wrong in emotional outburst.

Vasan bhai teach us to rise against any situation comes in our life & naran true to his legacy of father teach us to help others in any kind of situation.