• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Create schematic from netlist(verilog)

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 125
  • Views 1613
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Create schematic from netlist(verilog)

SimhanAnalog
SimhanAnalog over 1 year ago

I am looking to create a schematic from a netlist(verilog) file. The verilog file just has connections of different modules. It doesnt have any logic(behaviouiral verilog code).

Example:
Say I have a cell sample_core which has a symbol view. Among other input and output ports it also has 4 outputs o_w,o_x,o_y,o_z each 7:0.
I want to create a sample_wrap cell which does some rewiring of sample_core. But I dont want to do it manually in schematic. So I will create a verilog file that does the rewiring and want to generate a schematic and symbol views from the verilog. Example given below.  This verilog file I will generate using some script to avoid mistakes.


module sample_wrap

(

//some many other inputs and outputs

output [3:0] o_a,

output [3:0] o_b,

output [3:0] o_c,

output [3:0] o_d,

output [3:0] o_e,

output [3:0] o_f,

output [3:0] o_g,

output [3:0] o_h

);

sample_core I_sample_core

(

//some many other inputs and outputs

.o_w({o_h[0],o_g[0],o_f[0],o_e[0],o_d[0],o_c[0],o_b[0],o_a[0]}),

.o_x({o_h[1],o_g[1],o_f[1],o_e[1],o_d[1],o_c[1],o_b[1],o_a[1]}),

.o_y({o_h[2],o_g[2],o_f[2],o_e[2],o_d[2],o_c[2],o_b[2],o_a[2]}),

.o_z({o_h[3],o_g[3],o_f[3],o_e[3],o_d[3],o_c[3],o_b[3],o_a[3]}),

);

endmodule

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    Did you have a question? You can use File→Import→Verilog in Virtuoso to import the verilog and create a schematic, if that is what you meant to ask.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SimhanAnalog
    SimhanAnalog over 1 year ago in reply to Andrew Beckett

    Yes. This is what I was looking for. Thanks. One observation is that the import verilog option doesnt support system verilog construct. Like if my sample_wrap.sv file had the following

    module sample_wrap

    (

    //some many other inputs and outputs

    output logic [3:0] o_a,

    output logic [3:0] o_b,

    output logic [3:0] o_c,

    output logic [3:0] o_d,

    output logic [3:0] o_e,

    output logic [3:0] o_f,

    output logic [3:0] o_g,

    output  logic [3:0] o_h

    );

    sample_core I_sample_core

    (

    //some many other inputs and outputs

    .o_w({o_h[0],o_g[0],o_f[0],o_e[0],o_d[0],o_c[0],o_b[0],o_a[0]}),

    .o_x({o_h[1],o_g[1],o_f[1],o_e[1],o_d[1],o_c[1],o_b[1],o_a[1]}),

    .o_y({o_h[2],o_g[2],o_f[2],o_e[2],o_d[2],o_c[2],o_b[2],o_a[2]}),

    .o_z({o_h[3],o_g[3],o_f[3],o_e[3],o_d[3],o_c[3],o_b[3],o_a[3]}),

    );

    endmodule

    It says import failed since it doesnt recognize the "logic" term. Is there some flag that we can give to the tool to recognize this?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • SimhanAnalog
    SimhanAnalog over 1 year ago in reply to Andrew Beckett

    Yes. This is what I was looking for. Thanks. One observation is that the import verilog option doesnt support system verilog construct. Like if my sample_wrap.sv file had the following

    module sample_wrap

    (

    //some many other inputs and outputs

    output logic [3:0] o_a,

    output logic [3:0] o_b,

    output logic [3:0] o_c,

    output logic [3:0] o_d,

    output logic [3:0] o_e,

    output logic [3:0] o_f,

    output logic [3:0] o_g,

    output  logic [3:0] o_h

    );

    sample_core I_sample_core

    (

    //some many other inputs and outputs

    .o_w({o_h[0],o_g[0],o_f[0],o_e[0],o_d[0],o_c[0],o_b[0],o_a[0]}),

    .o_x({o_h[1],o_g[1],o_f[1],o_e[1],o_d[1],o_c[1],o_b[1],o_a[1]}),

    .o_y({o_h[2],o_g[2],o_f[2],o_e[2],o_d[2],o_c[2],o_b[2],o_a[2]}),

    .o_z({o_h[3],o_g[3],o_f[3],o_e[3],o_d[3],o_c[3],o_b[3],o_a[3]}),

    );

    endmodule

    It says import failed since it doesnt recognize the "logic" term. Is there some flag that we can give to the tool to recognize this?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information