Results 1 to 3 of 3

Thread: Error 10029: Constant Driver, Error 10028: Can't resolve multiple constant drivers

  1. #1
    Join Date
    Feb 2013
    Posts
    2
    Rep Power
    1

    Post Error 10029: Constant Driver, Error 10028: Can't resolve multiple constant drivers

    Hi, I am trying - processing/start/start analysis and elaboration - in Quartus 2 for the following VHDL code:

    Code:
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;

    entity ber_count is
    generic ( size : integer := 128);
    port ( clk : in std_logic;
    --clkp : in std_logic;
    enc_valid : in std_logic;
    dec_valid : in std_logic;
    enc_data : in std_logic_vector ((size-1) downto 0);
    dec_data : in std_logic_vector ((size-1) downto 0);
    error_count : out std_logic_vector (7 downto 0)
    );
    end ber_count;

    architecture behavioral of ber_count is
    signal enc_buf, dec_buf : std_logic_vector ((size-1) downto 0);
    signal ecount : integer := 0;
    signal new_dec_data, new_enc_data : std_logic;
    signal global_frame_count : integer := 0;
    signal err : std_logic;

    begin


    load_encoded_data: process(enc_valid)
    begin
    if rising_edge(enc_valid) then
    enc_buf <= enc_data;
    new_enc_data <= '1';
    global_frame_count <= global_frame_count + 1 ; -- if needed, we can use this value to calculate BER
    end if;
    end process;


    load_decoded_data : process(dec_valid)
    begin
    if rising_edge(dec_valid) then
    dec_buf <= dec_data;
    new_dec_data <= '1';
    end if;
    end process;


    count_errors: process (clk)
    begin
    if rising_edge(clk) then
    if (new_enc_data = '1'and new_dec_data = '1') then
    new_enc_data <= '0';
    new_dec_data <= '0';
    for i in 0 to (size-1) loop
    err <= (enc_buf(i) xor dec_buf(i)) ;
    --if(enc_buf(i) = dec_buf(i)) then
    if (err = '1') then
    ecount <= ecount + 1 ;
    end if;
    end loop;
    end if;
    end if;
    end process;

    error_count <= std_logic_vector(to_unsigned(ecount, error_count'length)); -- typecast integer into std_logic_vector

    end behavioral;



    Code Description: As you might have guessed this is code for an error counter module which buffers output frame from encoder and decoder, and compares
    the two frames to find number of errors.

    I am relatively new at VHDL, so the code might be a bit dirty (actually very dirty -_-).


    Errors: These are the errors I am getting : Error (10028): Can't resolve multiple constant drivers for net "new_dec_data" at ber_count.vhd(50)
    Error (10029): Constant driver at ber_count.vhd(41)
    Error (10028): Can't resolve multiple constant drivers for net "new_enc_data" at ber_count.vhd(50)
    Error (10029): Constant driver at ber_count.vhd(31)

    The indicated lines in the error message are denoted in Arial Black font in the code.

    How do I resolve this problem ?

    Thanks

    Leo

  2. #2
    Join Date
    Dec 2007
    Location
    Bochum Germany
    Posts
    6,318
    Rep Power
    1

    Default Re: Error 10029: Constant Driver, Error 10028: Can't resolve multiple constant driver

    In simple words, a signal can't be asigned a value more than once in concurrent code or in more than one process.

    In hardware terms, it's like two logic outputs driving one signal without a mux. You'll find more detailed information in your favourite VHDL text book.

  3. #3
    Join Date
    Feb 2013
    Posts
    2
    Rep Power
    1

    Default Re: Error 10029: Constant Driver, Error 10028: Can't resolve multiple constant driver

    Thanks for your reply FvM.
    Mistake looks so obvious now. I will need to move the signal manipulation to single process.
    Will do that and post again if encountered a problem. Thanks again.

Similar Threads

  1. Replies: 10
    Last Post: November 3rd, 2012, 06:34 PM
  2. Replies: 4
    Last Post: September 20th, 2012, 09:58 PM
  3. 4-QAM: Error (10028): Can't resolve multiple constant drivers
    By dtgg88 in forum General Altera Discussion
    Replies: 2
    Last Post: April 17th, 2011, 08:31 AM
  4. Replies: 6
    Last Post: December 23rd, 2010, 11:12 PM
  5. Error (10028): Can't resolve multiple constant drivers for net "w_ptr_succ[0]"
    By FeGurgel in forum Quartus II and EDA Tools Discussion
    Replies: 3
    Last Post: August 24th, 2009, 07:41 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •