Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Multi source error in VHDL

Status
Not open for further replies.

verylsi

Full Member level 2
Joined
Mar 12, 2012
Messages
123
Helped
16
Reputation
32
Reaction score
16
Trophy points
1,308
Activity points
2,130
Hello All,

Please look at the following code -
I am geting these errors :
Line 47: Signal data_valid_demod in unit DeModulator(8) is connected to following multiple drivers:
Line 45: Driver 0: output signal data_valid_demod of instance Flip-Flop
Line 47: Driver 7: output signal data_valid_demod of instance Flip-Flop



HTML:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;

entity DeModulator is
    Generic
	      (
	       symbolLength : integer := 8
	       );
    Port (
           clk_demod              : in  STD_LOGIC;
	  reset_async             : in  STD_LOGIC := '0';
	  reset_sync              : in  std_logic := '0';
	  data_valid_noise_out : in  STD_LOGIC := '1';
          data_mod                : in  STD_LOGIC_VECTOR((2*symbolLength -1) DOWNTO 0) := "1001010111101011";
	  data_valid_demod     : out STD_LOGIC;
          data_demod             : out STD_LOGIC_VECTOR((symbolLength -1) DOWNTO 0)
            );
end DeModulator;

architecture RTL of DeModulator is
   signal data_demodulated     : STD_LOGIC_VECTOR((symbolLength -1) DOWNTO 0) := (others =>'0');
begin
---------------------------- Reverse of mod is performed ----------------------------------
Generate_demod : for i in 0 to symbolLength - 1 Generate
process (clk_demod, reset_async)
begin 
   if reset_async = '1' then 
      data_valid_demod <= '0';
   elsif rising_edge(clk_demod) then 
      if reset_sync = '1' then 
         data_valid_demod <= '0';
      elsif data_valid_noise_out = '1' and data_mod(2*i+1) = '0' then 
         data_demodulated(i)   <= '1';
        -- data_valid_demod  <= '1';
      elsif data_valid_noise_out = '1' and data_mod(2*i+1) = '1' then
         data_demodulated(i)   <= '0';
      	--data_valid_demod  <= '1';
      else
      	data_valid_demod   <= '0';  
         data_demodulated(i)    <= data_demodulated(i);     
      end if;
   end if;
end process; 
end Generate;

I never faced multi source error when I am not updating an output in 2 or more process ?
 

Hello All,

Please look at the following code -
I am geting these errors :
Line 47: Signal data_valid_demod in unit DeModulator(8) is connected to following multiple drivers:
Line 45: Driver 0: output signal data_valid_demod of instance Flip-Flop
Line 47: Driver 7: output signal data_valid_demod of instance Flip-Flop

<snip>
I never faced multi source error when I am not updating an output in 2 or more process ?

You're updating the signals inside a generate statement that creates multiple instances of drivers. Can't do that either.

Kevin Jennings
 
  • Like
Reactions: verylsi

    verylsi

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top