Hi,
I have a design written in VHDL .I have written system verilog assertions in an external files which uses internal signals of this design.
I have written a testbench in Verilog/SystemVerilog.
When i simulate assertion module is not getting connected to the VHDL module.
I tried bind statement also.
Can any one plz tell me what is the right method to connect SVA to internal signals of VHDL.
thanks
VHDL (pre-2008) does not allow you to access internal signals from an external scope.
If you are using QuestaSim, you can try the following:
You can use SignalSpy, which is a Questa-specific capability using C-based functions to gain access to internal signals, similar to Verilog hierarchical pathnames. I think other simulators might have a similar feature.
If your simulator supports VHDL 2008 features, you can now use “external” names in VHDL. Basically, wherever you would use a signal name, you can use external names. The syntax is
<< signal *.path.to.signal* : subtype >>
(the << and >> delimiters are part of the syntax). If you need to use the same external name many times, it pays to use an alias:
alias mysig is << signal .path.to.signal : subtype >>;
QuestaSim version 6.5b supports VHDL 2008 external names. I’m not sure about other simulators.
I am using Riviera-Pro from ALDEC.
Is there any simulator independent method.
I read in one of the Ben Cohen’s materials which shows that bind can be used for connecting to internal signals of VHDL design.Is that wrong?
Any ways i dont want to use global package?So plz tell a better way.
thanks
We at CVC created a package that wraps these simulator dependent code to a generic one and made it working for NC, MTI & Aldec few years back. I need to dig it around as there have been several disk changes and that tiny code is archived somewhere.
thanks for the suggestion.
I tried using $signal_agent,but could not compile it.
I used alog -work mylibrary -pli myfile.sv
as recommended in the manual.
Still there is this error which says :
unknowm function $system_signal_agent ,expecting endmodule,end…
What is the problem here.
And srini can you plz send me the code you wrote for aldec thanks.
waris war_isbest2005@yahoo.com
thanks for the suggestion.
I tried using $signal_agent,but could not compile it.
I used alog -work mylibrary -pli myfile.sv
as recommended in the manual.
Still there is this error which says :
unknowm function $system_signal_agent ,expecting endmodule,end…
What is the problem here.
And srini can you plz send me the code you wrote for aldec thanks.
waris war_isbest2005@yahoo.com
But from your description it looks like you need it work on SV-VHDL boundary, we didn’t try that as our Riviera licenses are under renewal stage as of now. What I’ve uploaded at http://www.cvcblr.com/downloads/probe_pkg.tgz is pure VHDL package that will keep your VHDL code SIM independent.
BTW, Kurt’s idea is cool - I can’t wait for more tools to support that VHDL-08 feature!