Skip to main content

Posts

Showing posts from 2016

System Verilog Questions and Tricks - I

Queues Finite Queues What happens when you read from empty queue? Well, that depends on the what type of que it is. As in, lets say if the que is of the pre defined data type like int, real and others.. the return value will be '0'.  If the que is of a class or any dynamic objects, then the return value will be null. a inta [ $ ]; int fintq [ $ : 2 ]; In the above code, when you pop empty que of class a, then the return value will be NULL pointer When you pop from the Int que, the result will be '0'

Verdi Uses - I

COVERAGE While going through some of the blog posts, i found that the Verdi supports even coverage right out of the box, but from the 2014 Version. Well till now, we relied on the URG reports and the DVE to review the coverage and apply waivers and create exclusion files. Looks verdi supports all the features.. I did not get any hands on the features of this option, soon i will find some time to play around with this option of coverage in Verdi. How to launch the verdi with coverage. $> verdi -cov -covdir <PATH_TO_TB>.simv.vdb -covdir <PATH_TO_TEST1>.simv.vdb -covdir <PATH_TO_TEST2>.simv.vdb...  You can pass multiple covdirs, where in all the results will be merged. References: SYNOPSYS SITE Think Verification  

Visio Tips - I

Connection points for any object: sometimes you need connection points for an object. The default connection points may not be suffice your needs. At that time, you can use the connection point tool in visio This tool allows to add connector points to the shape. To add the connection point, Hold CTRL and click where you need a connection point. Source URL:  Microsoft Visio help for connection point  

Android App Patches

While i am playing Real Racing 3 for couple of years now. The game is awesome, but i cannot complete the game without spending some real money from my pocket. I tried different hacks and work arounds to get some benefits in game. The game requires lot of "R$" and "Gold" Coins which are in game points which are used to buy cars and upgrade them. I came to know about the lucky patcher. Thanks to this link:  https://www.youtube.com/watch?v=i1_ZD7hBNiU The lucky patcher is the tool that allows user to make in app purchase with out spending real money. Basically it works this way. You select the lucky patcher and select the app you want to patch. You copy the android data directory before doing so.  Select the app in lucky patcher and apply patch for in app purchases. Uninstall the app. Open lucky patcher and from bottom menu select the option install from backup. Select and install the app. copy the android data back. Open the app. Now i see that the &q

SystemVerilog: Mailboxes and Queues

Mailboxes and queues are couple of basic data constructs of system verilog language. Lets get to the definition of them: Queue: A Queue in system verilog function as the name suggests. But with a twist. Queue in system verilog is a list of similar elements. Queue is built on top of an array. Delcaration of a queue. < TYPE > < que_name >[ $ ]; Default Behaviour: The default size of the queue in system verilog is " Infinite ". The above declaration will create a que of infinite length. You can add elements to the que until your simulator crashes :) What if you want to create a queue of finite length. Just look at the declaration below: < TYPE > < que_name >[ $ :< LIMIT >]; The above declaration will create a queue of size " LIMIT+1 " Initializing queue with elements Accessing elements of a queue Methods in queue Inserting elements into queue Reoving elements from queue http://www.project-veripage.com/queue_1.ph

TODO

Interrupt sequences Virtual sequence and sequencer Virtual classes? score boards and subscribers unique variables without using rand: uses suffle method of array. Phase jump sequence grab and ungrab good practice: in reset phase reset all variables.. and states in tb/components. uvm callbacks. uvm objections. what is the best place to include them? uvm config db and resource db UVM report catcher. UVM questions:  multiple drivers to one sequencer multiple sequencers to one driver. User defined /custom phases How to use? Driver with request and response. Differences between lock and grab set different arbitration types for sequencer? sequencer arbitration at item level or arbitrate at sequence level. assertions and properties. complex uses. uvm_domain multi dimensional array constraints. phase ready to end. Processes and fork and join examples with scopes. force: -deposit, -freeze and -drive differences. SV: - queues, mailboxes what happens when full and em

TODO

Interrupt sequences Virtual sequence and sequencer Virtual classes? score boards and subscribers unique variables without using rand: uses suffle method of array. Phase jump sequence grab and ungrab good practice: in reset phase reset all variables.. and states in tb/components. uvm callbacks. uvm objections. what is the best place to include them? uvm config db and resource db UVM report catcher. UVM phasing. How does UVM start execution. UVM questions:  multiple drivers to one sequencer multiple sequencers to one driver. User defined /custom phases How to use? Driver with request and response. Differences between lock and grab set different arbitration types for sequencer? sequencer arbitration at item level or arbitrate at sequence level. assertions and properties. complex uses. uvm_domain multi dimensional array constraints. phase ready to end. Processes and fork and join examples with scopes. force: -deposit, -freeze and -drive differences. Sequence l

Fork Join in System Verilog

The fork join is very basic construct in the system verilog usage. But there are also side effects of this fork and disable fork. The fork join can be used in two ways as shown below: Un-Named fork join blocks: In this scenario Named fork join blocks: