• 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. VCD File Simulation using Spectre

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 125
  • Views 2499
  • 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

VCD File Simulation using Spectre

VK202409108412
VK202409108412 6 months ago

I have first imported the verilog (.v) file for a digital block into Cadence Virtuoso and created its symbol for it. 

 

Now, I have extracted the VCD file for it as shown below: 

The testbench for it shown below:

How can I use the VCD file as an input for this testbench in Spectre? The block generates two bus signals, d<3:0> and sel<1:0>, but in the VCD file, these signals are defined individually as separate bits. How can I properly simulate this setup while ensuring the bus signals are correctly interpreted?

I have loaded the VCD file in Result Browser and generated the analog signals. However how can we proceed further?

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett 6 months ago

    Please post the VCD as text - I was going to try out an example, but trying to capture it from an image is too much work and I'm not typing in a similar example. Then I can do some experiments...

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett 6 months ago

    Please post the VCD as text - I was going to try out an example, but trying to capture it from an image is too much work and I'm not typing in a similar example. Then I can do some experiments...

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • VK202409108412
    VK202409108412 6 months ago in reply to Andrew Beckett

    Sure. Here is the VCD file contents: 

    $timescale
    1ps
    $end

    $scope module dff_mux $end
    $var wire 1 ! clk $end
    $var wire 1 " d[0] $end
    $var wire 1 # d[1] $end
    $var wire 1 $ d[2] $end
    $var wire 1 % d[3] $end
    $var wire 1 & reset $end
    $var wire 1 ' sel[0] $end
    $var wire 1 ( sel[1] $end
    $upscope $end
    $enddefinitions $end
    #0
    $dumpvars
    0!
    0"
    0#
    0$
    0%
    1&
    0'
    0(
    $end
    #5000
    1!
    #10000
    0!
    0&
    #15000
    1!
    #20000
    0!
    1%
    1#
    #25000
    1!
    #30000
    0!
    #35000
    1!
    #40000
    0!
    1'
    #45000
    1!
    #50000
    0!
    #55000
    1!
    #60000
    0!
    0'
    1(
    #65000
    1!
    #70000
    0!
    1'
    #75000
    1!
    #80000
    0!
    0#
    1$
    #85000
    1!
    #90000
    0!
    0'
    0(
    #95000
    1!
    #100000
    0!
    1'
    #105000
    1!
    #110000
    0!
    0'
    1(
    #115000
    1!
    #120000
    0!
    1'
    #125000
    1!
    #130000
    0!
    #135000
    1!
    #140000
    0!
    0'
    0(
    #145000
    1!
    #150000
    0!
    1'
    #155000
    1!
    #160000
    0!
    0'
    1(
    #165000
    1!
    #170000
    0!
    1'
    #175000
    1!
    #180000
    0!
    #185000
    1!
    #190000

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • VK202409108412
    VK202409108412 6 months ago in reply to Andrew Beckett

    Sir, I have uploaded the VCD file and the .info file in ADE-L → Setup → Simulation Files → Vector Files. The transient simulation is running successfully, but there is an issue with the bus signals(d[3:0] & sel[1:0]). I have attached the simulation results below for your reference.

    This is the .info file I am using: 

    .in
    .tfall 0.1p
    .trise 0.1p
    .vih 1.8
    .vil 0
    .alias clk clk
    .alias reset reset
    .alias Out Out
    .alias d<3:0> {d[3] d[2] d[1] d[0]}
    .alias sel<1:0> {sel[1] sel[0]}

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett 5 months ago in reply to VK202409108412

    Your info file is wrong. It should be:

    .in clk reset d[*] sel[*]
    .tfall 0.1p
    .trise 0.1p
    .vih 1.8
    .vil 0
    .alias clk clk
    .alias reset reset
    .alias Out Out
    .alias d[*] d<*>
    .alias sel[*] sel<*>

    This produces:

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • VK202409108412
    VK202409108412 5 months ago in reply to Andrew Beckett

    Thank you sir, it worked. Alternatively I have made it work by changing the .vcd file:

    $timescale
    1ps
    $end


    $scope module dff_mux $end
    $var wire 1 ! clk $end
    $var wire 4 " d [3:0] $end
    $var wire 1 # reset $end
    $var wire 2 $ sel [1:0] $end
    $upscope $end

    $enddefinitions $end
    #0
    $dumpvars
    0!
    b0 "
    1#
    b0 $
    $end
    #5000
    1!
    #10000
    0!
    0#
    #15000
    1!
    #20000
    0!
    b1010 "
    #25000
    1!
    #30000
    0!
    #35000
    1!
    #40000
    0!
    b1 $
    #45000
    1!
    #50000
    0!
    #55000
    1!
    #60000
    0!
    b10 $
    #65000
    1!
    #70000
    0!
    b11 $
    #75000
    1!
    #80000
    0!
    b1100 "
    #85000
    1!
    #90000
    0!
    b0 $
    #95000
    1!
    #100000
    0!
    b1 $
    #105000
    1!
    #110000
    0!
    b10 $
    #115000
    1!
    #120000
    0!
    b11 $
    #125000
    1!
    #130000
    0!
    #135000
    1!
    #140000
    0!
    b0 $
    #145000
    1!
    #150000
    0!
    b1 $
    #155000
    1!
    #160000
    0!
    b10 $
    #165000
    1!
    #170000
    0!
    b11 $
    #175000
    1!
    #180000
    0!
    #185000
    1!
    #190000

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

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