When did global signals become part of VHDL

T

Tricky

I was just wondering when global signals became part of VHDL, and
whether they should be synthesisable. Quartus wont synthesise the
following saying:

Error (10808): VHDL error at test_build.vhd(33): unsupported reference
to global signal or variable my_sig
Error (10784): HDL error at test_build.vhd(5): see declaration for
object "my_sig"


ibrary ieee;
use ieee.std_logic_1164.all;

package sig_p is
signal my_sig : std_logic;
end package sig_p;



library IEEE;
use IEEE.STD_LOGIC_1164.all;
use ieee.numeric_std.all;

use work.sig_p.all;

entity test_build is
port(
clk : in std_logic;
a : in std_logic;

b : out std_logic
);
end test_build;

architecture BEHAVIOR of test_build is
signal r : std_logic;
begin

process(clk)
begin
if rising_edge(clk) then
r <= a;
my_sig <= r;
b <= my_sig;
end if;
end process;


end BEHAVIOR;
 
H

HT-Lab

Tricky said:
I was just wondering when global signals became part of VHDL, and
whether they should be synthesisable. Quartus wont synthesise the
following saying:

Error (10808): VHDL error at test_build.vhd(33): unsupported reference
to global signal or variable my_sig
Error (10784): HDL error at test_build.vhd(5): see declaration for
object "my_sig"

Same with Mentor's Precision, not supported.

Hans
www.ht-lab.com
 
H

HT-Lab

Brian Drummond said:
Been around for a long time; never intended to be synthesisable.
And rightly so IMO; too many possibilities for hard-to-track-down
problems as with a global variable in C code.

But it has potential uses, e.g. to examine signals anywhere deep in the
hierarchy in simulation, without bringing them out on ports.

If you have access to Modelsim then SignalSpy is easier IMHO. Of course this
will become somewhat obsolete when VHDL2008 becomes available.

Hans.
www.ht-lab.com
 
K

KJ

But it has potential uses, e.g. to examine signals anywhere deep in the
hierarchy in simulation, without bringing them out on ports.

Not sure I follow what use you have in mind. In simulation there is
no need to bring signals "deep in the hierarchy" up to ports...you
simply add them to the wave window. Even in code intended for
synthesis the need really isn't there for global signals for debug
since debug tools that let you bring out most any signal to some form
of logic analyzer port or via the JTAG interface.

Kevin Jennings
 
K

KJ

Not sure I follow what use you have in mind. In simulation there is
no need to bring signals "deep in the hierarchy" up to ports...you
simply add them to the wave window. Even in code intended for
synthesis the need really isn't there for global signals for debug
since debug tools that let you bring out most any signal to some form
of logic analyzer port or via the JTAG interface.

Disregard previous post...in simulation you're probably referring to
getting communication between two separate models without the overhead
of bringing signals all the way up and down the chain which can be
useful for design verification purposes.

When you said 'examine signals' that through me off.

KJ
 
H

HT-Lab

Not sure I follow what use you have in mind. In simulation there is
no need to bring signals "deep in the hierarchy" up to ports...you
simply add them to the wave window. Even in code intended for
synthesis the need really isn't there for global signals for debug
since debug tools that let you bring out most any signal to some form
of logic analyzer port or via the JTAG interface.

Kevin Jennings

I agree with Brian that this is a very useful feature. I use SignalSpy to
connect a testbench bus monitor to signals deep in the hierarchy. The last
thing I want to do is to connect all those signal via portmaps/entities up
to the top level.

Hans
www.ht-lab.com
 
D

Dave

I agree with Brian that this is a very useful feature. I use SignalSpy to
connect a testbench bus monitor to signals deep in the hierarchy. The last
thing I want to do is to connect all those signal via portmaps/entities up
to the top level.

Hanswww.ht-lab.com

I like the idea of synthesizing global signals for test port
connections. We use the free version of ISE and Modelsim XE, and don't
have access to SignalSpy or ChipScope. Yes, global signals could be
abused just like global variables in C, but I don't think that is a
reason to disallow it. And if global signals are dangerous, isn't
SignalSpy super-dangerous, since it essentially gives global scope to
all of your signals? I've never used SignalSpy, so I might have the
wrong idea of how it works.

Dave
 
H

HT-Lab

.....

I like the idea of synthesizing global signals for test port
connections. We use the free version of ISE and Modelsim XE, and don't
have access to SignalSpy or ChipScope.

Your Modelsim XE version should support SignalSpy, AFAIK it is only crippled
in performance and instance count.
Yes, global signals could be
abused just like global variables in C, but I don't think that is a
reason to disallow it. And if global signals are dangerous, isn't
SignalSpy super-dangerous, since it essentially gives global scope to
all of your signals?

Why would it be dangerous, it is not a global signal. It simply maps/mirrors
2 signals at different levels in the hierarchy.
I've never used SignalSpy, so I might have the
wrong idea of how it works.

Have a look at it, I think it is ideal for writing testbench monitors.

Hans
www.ht-lab.com
 
D

Dave

Your Modelsim XE version should support SignalSpy, AFAIK it is only crippled
in performance and instance count.


Why would it be dangerous, it is not a global signal. It simply maps/mirrors
2 signals at different levels in the hierarchy.


Have a look at it, I think it is ideal for writing testbench monitors.

Hanswww.ht-lab.com

I misunderstood - I had the impression that SignalSpy would give you
that visibility for synthesis, not only simulation. My mistake.

Dave
 
H

HT-Lab

Brian Drummond said:
...

Can SignalSpy connect them back into a VHDL testbench, or do you port
the verification stuff into another language?

If you are asking if SignalSpy supports mixed languages than the answer is
yes, that is you can mirror a VHDL signal to say a Verilog net/register or a
SystemC signal and vice versa. SignalSpy also allows you to drive and force
a signal anywhere in the hierarchy.

Hans.
www.ht-lab.com
 
B

Brian Davis

Dave said:
I like the idea of synthesizing global signals for test port
connections. We use the free version of ISE and Modelsim XE, and don't
have access to SignalSpy or ChipScope.

Note that XST's support of globals in synthesis is very
limited, so this won't work as an in circuit probe.

There was a thread about this over on comp.arch.fpga
last fall, summary post here:
http://groups.google.com/group/comp.arch.fpga/msg/59f20575a54da960

Brian
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top