Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - Need some help!

 
Thread Tools Search this Thread
Old 04-09-2005, 04:22 PM   #1
Default Need some help!


Why am I getting this error:

ERROR:Xst:528 - Multi-source in Unit <waittime> on signal <z>
Sources are:
Signal <z> in Unit <waittime> is assigned to GND
ERROR:Xst:415 - Synthesis failed
CPU : 1.72 / 2.52 s | Elapsed : 2.00 / 3.00 s

I have a very simple schematic with waittime going out to an output
marker.

waittime:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;

entity waittime is
Port ( z : out std_logic);
end waittime;

architecture Behavioral of waittime is

begin
z <= '1' after 500000000 ns;

z <= '0' after 500000000 ns;

end Behavioral;


I am using a CR-II c256 and ISE 6.3.03i.

Any help would be appreciated!

Thanks,
Brian



bhiggins@umr.edu
  Reply With Quote
Old 04-09-2005, 04:46 PM   #2
fpgawizz
 
Posts: n/a
Default Re: Need some help!
Brian
Looks like your code is meant for simulation purposes. And you have 2
concurrent signal assignment statements on "z" which is z <= '1' follwed
by z <= '0'. thats why you are getting the multisource error.
Doing something like z <= not z after 50 ns woulg give you a toggling
signal "z". Make sure you initialize "z" to '0'. After clauses are for sim
purposes only. I am assuming you are just doing a simulation here.



fpgawizz
  Reply With Quote
Old 04-09-2005, 05:13 PM   #3
bhiggins@umr.edu
 
Posts: n/a
Default Re: Need some help!
I am actually wanting the cpld to toggle the signal for real not for
just simulation. What should I use instead of "after"? How should I
toggle it so I do not get the multisource error?

Thanks in advance,
Brian



bhiggins@umr.edu
  Reply With Quote
Old 04-09-2005, 06:42 PM   #4
fpgawizz
 
Posts: n/a
Default Re: Need some help!
You have to use a clock to do your toggling. You can have two states in a
state machine where in state 1, you set z to 0, and in state 2 z is set
to 1 and this state machine is clocked by your 50 ns clock. z would then
be a toggling signal.



fpgawizz
  Reply With Quote
Old 04-09-2005, 06:53 PM   #5
Ralf Hildebrandt
 
Posts: n/a
Default Re: Need some help!
wrote:

> ERROR:Xst:528 - Multi-source in Unit <waittime> on signal <z>


You are driving a value to one signal from more than one process. (Note
that every concurrent statement ist also considered as a process.)


> use IEEE.STD_LOGIC_ARITH.ALL;
> use IEEE.STD_LOGIC_UNSIGNED.ALL;


Just a note: It is not recommended to used these libraries, as their
implementation dependts on the simulator / synthesizer. Use
IEEE.Numeric_std.ALL instead.



>
> begin
> z <= '1' after 500000000 ns;
>
> z <= '0' after 500000000 ns;
>
> end Behavioral;


Two concurrent statements driving z.

process -- no sensitivity list - triggered at simulation start
begin
z <= '1' after 500000000 ns;
z <= '0' after 500000000 ns;
wait; -- uncomment to execute the process again after end
end process;


Note: This is only for simulation. the after-clause is NOT synthesizable.

Whats your intention for this piece of code? Is it a clock or just a
signal, that should be high and go to low later.
If it is a clock - take an internal clock generator from you FPGA or use
the clock via a FPGA input pin.
I it is a signal - you need a clock with a period suitable for you
desired "delays". Test e.g. for the rising_edge(clock).

Ralf


Ralf Hildebrandt
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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

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




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46