Search code examples
vhdlmodelsimcadence

Get internal signals of vhdl design in ncvhdl (alternative to modelsim's signal spy)


In ModelSim you can use something like

in modelsim we can use init_signal_spy("../.../sig", mysignal);

to get deep hierarchy signals. Is there a way to get such signals with Cadence's NCVhdl?

This should be flagged "SimVision", which is the name the tool, but that flag does not seem to exist.


Solution

  • If Cadence tools support VHDL-2008, you can access signals, shared variables, or constants in other levels of your design via external names.

    Direct usage is as follows.

    A <= <<signal .tb_top.u_comp1.my_sig : std_logic_vector >>; 
    

    Note that the object must be elaborated before the reference. Since VHDL designs are elaborated in order of instantiation later designs may reference into earlier ones.

    Use an alias to create a local short hand name:

    alias u1_my_sig is <<signal u1.my_sig : std_logic_vector >>; 
    

    Path starts with:

    • “.” = path starts at top level: “.tb_top.my_sig”
    • “u1” = path starts from current level: “u1.my_sig”
    • “^” = path starts from level above current: “^u2.my_sig”