Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Verilog Synthesis using Synopsys Design Compiler

Status
Not open for further replies.

tyagifaisal

Newbie level 4
Joined
Feb 25, 2013
Messages
7
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,343
Hi,

I am trying to perform gate-level simulation of my circuit using Synopsys Design Compiler.

My program runs during functional simulation and I get the right result as compared with my C code. I then used Synopsys and performed the Analyze -> Elaborate -> Compile Design steps and saved the netlist generated as well as the .sdf delay file. On running the same testbench on the synthesized code, I found out that I wasn't getting the right results. I looked at the waveform file generated to see what was going on and found out that nothing in the main.v program is running (see attached screenshot). I mean, none of the always blocks in the main.v program are running. It looks like I messed up while performing synthesis, but I have done it a lot of times following the instructions, so can someone tell me what I am missing?

Thanks,

Faisal.
 
Last edited:

You see just because the verilog code is functional doesnt mean that it will be synthesise to correct netlist. there will be some construct in verilog file which is supported by verilog but not properly understood by the DC tool.
a) You can try to synthesize each of the sub blocks and see if they are coming out properly.
b) The usual culprits are case statements or accumulator
Please use divide and conquer to handle this problem.... also there might issue with function statement in the .lib that you are using.
 
You see just because the verilog code is functional doesnt mean that it will be synthesise to correct netlist. there will be some construct in verilog file which is supported by verilog but not properly understood by the DC tool.
a) You can try to synthesize each of the sub blocks and see if they are coming out properly.
b) The usual culprits are case statements or accumulator
Please use divide and conquer to handle this problem.... also there might issue with function statement in the .lib that you are using.

Thank you. I stripped the top module off everything including the included modules, and started with one always block at a time. Took me a long time, but finally figured it out and pinpointed it to a few places, one at a time. Thanks for the idea of 'divide and conquer.' I am never going to forget that!!!

Thanks,

Faisal.
 
Last edited:

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top