Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
System Development Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
This course combines our Allegro PCB Editor Basic Techniques, followed by Allegro PCB Editor Intermediate Techniques.
Virtuoso Analog Design Environment Verifier 16.7
Learn learn to perform requirements-driven analog verification using the Virtuoso ADE Verifier tool.
Exchange ideas, news, technical information, and best practices.
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.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
I am using ncsim 09.20-s016.
I have a VHDL DUT. The testbench top level is VHDL. But, I have a few Verilog modules in the testbench.
From one of the Verilog modules, I want to access (monitor) a signal inside the DUT (VHDL).
if (top.level_1.level_2.sigout_1 == 1'b1) $display("Posedge received at time: %d", $time) ;
I get the following error:
ncelab: *E,CUVHNF (...): Hierarchical name component lookup failed at 'top'.
1. Is it not possible to monitor a signal inside a VHDL block from a Verilog module?
In reply to Mickey:
I'm sorry, but I gave you incorrect information in the previous post. From a verilog scope you can't directly reference an object that begins with a vhdl instance. What you need to use is $nc_mirror to mirror that value of the object into a reg in a verilog scope. You can then use the verilog object in the code. for example:
$nc_mirror ("my_probe", ":top.level_1.level_2.sigout_1");
if (my_probe == 1'b1);
Feel free to email me at email@example.com if you have any questions.
Sorry for the confusion.
Your suggestion has worked very nicely! Thank you very much for your help.
I wasn't aware of the $nc_mirror() task which allows VHDL signals to be probed from Verilog module.
I also successfully experimented by calling a user-defined Verilog task() from a verilog island module inside a VHDL top-level DUT -- that also works fine.
For example, expanding on your example, the t_write() task call inside the island verilog module executes correctly in ncsim.
$nc_mirror ("my_probe", ":top.level_1.level_2.sigout_1"); // sigout_1 is a VHDL signal
always @(posedge my_probe)
$display("my_probe asserted high at time: %d", $time) ; top_vhdl_level.vhdl_level_2.vhdl_level_3.verilog_module.t_write() ; // t_write() is task inside verilog module