Wednesday, 17 December 2008
Job openings at Cadence Design Systems, India (Bangalore and Noida)
Wednesday, 15 October 2008
Verification Engineer required for Cadence Design Systems, Bangalore or Noida
Location: India, Bangalore or Noida
Job Requirement:
- This engineer’s primary role will be to work in a team oriented environment to deliver digital logic design and verification methodologies, customised design environments and design implementation solutions that align with client goals. He/she will interact and work with other engineers on the worldwide D&V VCAD delivery team.
- Responsibilities will include creating and customising design environments, design and verification methodologies.
- Ideally the canddate should be able to assist with the optimisation of acceleration and emulation technologies using the Cadence Incisive verification flows including the Palladium and Xtreme hardware.
- The engineer must have a solid background in logic design and verification experience with Cadence technology in the digital domain.
- The client should have at least a basic understanding of modeling (e.g. Architecture or system), and both block and system level verification experiance, preferably with coverage driven methodologies.
- The candidate should possess the necessary engineering and consultancy skills, i.e. that he/she is technically mature with the necessary communication skills to be able to consult effectively with clients, e.g. to talk to, coach and advise Customers.
- The engineer must have a solid background in the electronics industry with at least 4 to 5 years experience, and should be willing to learn new technical and consulting skills.
- Execution on VCAD Customer support projects, e.g. Implementation and functional verification of design systems.
- Development of customer specific verification environments including components, methodology support, operation and maintenance.
- Be prepared to provide design and verification support in VCAD Customer design projects, both remotely and onsite.
- Ability to handle all design environment implementation tasks and architectural tasks with the minimum support or through working in a joint team of Cadence and Customer engineers.
- Work on multi person projects of varying complexity, working especially in a multi-site/multi-cultural project. The latter requires excellent communication skills in English.
- Acquire a basic understanding of the (service) business environment of Cadence within 6 months including pre sales support.
Contact: getjobsinindia2007@gmail.com
DFT Engineer required for Cadence Design Systems, Bangalore
Location: Bangalore, India
Skill Sets: Scan, Jtag, Atpg, Tester interface.
Good to have skills: Exposure to ATPG tools like Encounter Test
Job Description:
- This engineer’s primary role will be to work in a team oriented environment to deliver DFT activities for implementation services. He/she will interact and work with other engineers on the worldwide delivery team.
- This engineer is expected to provide services using the following technical skills: Scan, JTAG, ATPG, Logic Synthesis, Static Timing Analysis, and to interface with designers / testing team.
- In addition to the technical skills they will be expected to operate effectively in project teams delivering the design of leading edge. Additional responsibilities include customer interactions and pre-sales activities.
- Ability to handle all design environment implementation tasks assigned, either personally or through supervising other Cadence and Customer engineers.
- Work on multi person projects of varying complexity, working especially in a multi-site/multi-cultural project. The latter requires excellent communication skills in English.
- Acquire a basic understanding of the (service) business environment of Cadence including pre sales support.
Contact: getjobsinindia2007@gmail.com
OVM 2.0 Webinar on 16th Oct, 2008
Details of webinar is mentioned below.
Date : Thursday, October 16th, 2008
Time : 10:00 AM - 11:00 AM (Pacific Daylight Time)
Location : Online via Microsoft Office Live Meeting (details provided upon registration)
For more information and registration, please click here.
OVM 2.0 update contains some technical advances. Few of are listed bellow
- Unified sequence mechanism
- OVM User Guide
- Improved debugging and expanded use of parametrized classes
- Driver/sequencer communication enhancements
Monday, 26 May 2008
IEEE Working Group Announces Updated e Language Standard
Please see following link for more details.
http://standards.ieee.org/announcements/IEEE1647_eLanguageStandard.html
Thursday, 13 March 2008
OVM Seminars at Hyderabad and Bangalore
Here are the topics covered in the seminar.
- Planning for Verification
- Testbench Architecture
- Transaction-Level Modeling (TLM) in Verification
- Transaction-Level Stimulus
- Decoupling Stimulus from the Design
- Sequential Stimulus Specification
- Layered Stimulus
- Transaction-Level Layered Coverage
- Flexible Instantiation – Using the Factory
- Configuring Verification Components for Reuse
- Hierarchical Encapsulation & Reuse
- OVM Moving Forward
Wednesday, 13 February 2008
About generation of do-not-generate fields
Say a parent struct is having two fields inside it. One is an ungenerated (with do-not-generate sign) child struct and another ungenerated field is of pre defined data types (like uint, bool etc.).
When this parent struct is generated
2) ungenerated field whose value is a range (such as [0..100]) gets the first value in the range.
3) ungenerated field of user defined data types (like sturcts) will not be allocated and none of the fields in it will be generated.
Take a look at following code.
In this example, top_s struct has one ungenerated struct and two ungenerated fields of uint (bits: 3). When top is generated inside the sys
2) x will be generated with value of 2 as it is a range bound ungenerated field.
3) child field will not be generated as it is defined as ungenerated struct. So, the fields a and b of child struct will not be generated as well.
Tuesday, 12 February 2008
By default MAIN sequence is not empty
So, in your environment, if body method of MAIN sequence of any eVC is not made empty, it will start executing some random sequences at 0 simulation time. This might have adverse effect on the behavior of the stimulus given to the design if you are using virtual sequence, because user defined sequence (executed inside virutal sequence) and MAIN sequence might be running parallely and might be driving same signals and causing undesirable stimulus.
Debugging this will become difficult. You might be wondering why some other sequences are being executed even though you are calling perticular sequence only in virtual sequence?
So, if you are an eVC developer, always provide sequence library with body of MAIN sequence made empty. And if you are verifying any DUT and if you are using virtual sequence and not using MAIN sequence of any eVC, make body method of all MAIN sequences empty.
Take a look at this e code to check that how MAIN sequence is executing a loop which creates and executes the random sequence. Load this e code and give test command with random seed. You will see that even though body method of MAIN sequence is not extended, MAIN sequence is executing random sequneces (TEST1, TEST2, SIMPLE).
Monday, 14 January 2008
OVM available on its new site
Tuesday, 8 January 2008
Checker implementation dilema
- Write down the checker in the simple english to understand its complexity.
- If checker is simple, I mean, just contains 2 to 3 basic events to check, then go for temporal expressions for the checker implementation.
- If checker is even a bit complex having more than 3 events, just go for the method based checker implementation. You will save a hell lot of time which might be lost in the debugging temporal expressions.
Friday, 4 January 2008
Specman Verification Questions - Part III
Answer:
a = 2 x.y = 8
a = 2 x.y = 4
Here, variable uint a is not updated and struct x is updated. Why is so? Because in specman, unlike user defined data types (e.g. structs, units), all variables with standard data types are passed by value in the methods. All user defined data types (like structs) are passed by reference. So, whenever, called methods update the passed structs, it is actually updating the original struct and not its copy.
If one wants user defined data types to be passed by value then he/she can use deep_copy to copy the existing variable and pass it to the method as shown below.
Question 2: What is the difference between inheritance implemented by "when" construct and implemented by "like" construct?
Answer:
like inheritance is the concept of the object oriented programming (OOP) where as when inheritance is the concept of aspect oriented programming (AOP). For more detail on AOP, please refer Aspect-Oriented Programming with the e Verification Language book written by David Robinson (Verilab).
like construct is used when someone wants to derive a child object from the already defined struct/unit. This derived child will have new struct/unit name. When someone derive the child object using when construct, the base name of the child will remain the same.
Another difference between like and when construct is that, once the child is derived using like inheritance, one can not add extra fields in the parent struct/unit, wherease, if child is derived using when construct, parent struct/unit can have extra fields.
Take a look at the following example. packet_valid field is added in the parent struct packet_s after the child is derived using like inheritance. This is not allowed and Specman will issue an error during loading phase.
Specman will issue following error.
*** Error: Cannot add new field 'packet_valid' to struct 'packet_s': it has like children (e.g. 'good_packet_s') with fields.
Note that ack() method will be added in the parent struct packet_s even though child is derived using like inheritance.