Looking Through My WINDOW...
Monday, February 1, 2016
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
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
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),
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.
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:
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
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.
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
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
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.