FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > VHDL

VHDL comp.lang.vhdl newsgroup / Usenet

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 01-20-2005, 04:10 AM
Ed J
Guest
 
Posts: n/a
Default global shared resources

Is there a way in VHDL for two separate modules to share signals without
having to declare them as input and/or output ports? The only way I know
how to do it is to explicitly declare the ports in both modules, and tie the
signals together through a common ancestor in the VHDL hierarchy. Is there
a way around that? I'm hoping for some kind of support for "global signals"
that infer connectivity by nature of a common name.

Ed


Reply With Quote
  #2 (permalink)  
Old 01-20-2005, 04:52 AM
Mike Treseler
Guest
 
Posts: n/a
Default Re: global shared resources

Ed J wrote:
> Is there a way in VHDL for two separate modules to share signals without
> having to declare them as input and/or output ports?


The vhdl language and simulation
tools allow packaged signals to be
used like that. Most synthesis
tools do not support this usage.

Processes within the same architecture
can access the same signals. All can
read, only one can drive.

Procedures within the same process can share
the same local process variables.

-- Mike Treseler
Reply With Quote
  #3 (permalink)  
Old 01-20-2005, 06:50 AM
Guest
 
Posts: n/a
Default Re: global shared resources

<<The only way I know
how to do it is to explicitly declare the ports in both modules, and
tie the
signals together through a common ancestor in the VHDL hierarchy. >>

That is the normal--and one might say--clean way to do it.

<<Is there
a way around that? I'm hoping for some kind of support for "global
signals"
that infer connectivity by nature of a common name.>>

As Mike Tressler pointed out, you can declare the global signals in a
package, which makes them global to all architectures (modules) that
care to reference them--provided that the architecture takes care to
make the library where the package is declared visible through a
library clause and the package and signals visible through use clauses.

One situation where this might make sense is when "debug" signals are
needed. Putting in temporary port signals to carry debug signals
through the hierarchy is somewhat of a pain in the neck.

Not all tools are compliant with this VHDL usage, however, and, as Mike
pointed out, synthesis tools are frequent offenders. About two years
ago I tried this and found that Synplify Pro did not allow signals in
packages but Xilinx XST did. So, don't try "global" signals without
checking compatibility with the VHDL tools that you are using or likely
to port to.

Reply With Quote
  #4 (permalink)  
Old 01-20-2005, 03:19 PM
Ralf Hildebrandt
Guest
 
Posts: n/a
Default Re: global shared resources

Ed J wrote:


> Is there a way in VHDL for two separate modules to share signals without
> having to declare them as input and/or output ports?


You may use:
shared variable

Note: As this is a variable, it is updated immediately when a process
executes and modifies it. So don't test for rising_edge / falling_edge
of this shared variable as this may result in a race condition.

(As you name the VHDL components "modules" I guess you are a Verilog
user: shared variable have similar behavior to blocked signal
assignments. (And also blocked signal assignments should not be used
inside sequential statements.))


Remember: For synthesis a normal signal (fed through via input / output)
is the best choice in most cases.

Ralf
Reply With Quote
  #5 (permalink)  
Old 01-20-2005, 04:13 PM
Barry Brown
Guest
 
Posts: n/a
Default Re: global shared resources


<[email protected]> wrote in message
news:[email protected] oups.com...
> Not all tools are compliant with this VHDL usage, however, and, as Mike
> pointed out, synthesis tools are frequent offenders. About two years
> ago I tried this and found that Synplify Pro did not allow signals in
> packages but Xilinx XST did. So, don't try "global" signals without
> checking compatibility with the VHDL tools that you are using or likely
> to port to.
>


I checked the Synplify Pro 7.5 Ref manual, and it says that global signals
in packages are supported (page 10-3).


Reply With Quote
  #6 (permalink)  
Old 01-21-2005, 01:04 PM
Guest
 
Posts: n/a
Default Re: global shared resources

That is good news. It was probably Synplify Pro 6 or earlier that I
tried back then.

Reply With Quote
  #7 (permalink)  
Old 01-22-2005, 03:35 AM
Charles Bailey
Guest
 
Posts: n/a
Default Re: global shared resources

Also, all processes with the same architecture can read or write shared
variables.

Charles Bailey


Reply With Quote
Reply

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to make a ram shared? malavica FPGA 1 01-26-2009 06:36 PM
Global Reset using Global Buffer [email protected] FPGA 18 11-30-2007 01:45 PM
Synthesizer is creating unwanted global resources vssumesh FPGA 8 04-26-2006 06:49 AM
Nios2 and Shared Bus Resources Noway2 FPGA 0 03-09-2006 06:24 PM
Shared bus on FPGA Ankit Raizada FPGA 3 04-11-2005 04:25 PM


All times are GMT +1. The time now is 12:14 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved