LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Redant Steven<redant@i...>
    Date: Fri Aug 31 11:31:20 CEST 2007
    Subject: [oc] I am having trouble editing a signal in a sub program IN VHDL
    Top
    First: KEEP the <=. <= is the assignment for signals. Ports of an entity
    are signals too.

    You are assigning a value to siganl reg_A from the process AND from the
    instantiation (r1: ...)
    Reg_A is connected to the vlaggie out port of the component (as well as
    to the input).

    r1: ALU_toets4 port map (clk,choze,reg_A,reg_A);

    Has to be changed into e.g.

    r1: ALU_toets4 port map (clk,choze,reg_A,OutW);

    Your problem shows that it is best to always use NAMED assignment. You
    would probably have seen the issue.
    I would write

    r1: ALU_toets4 port map (clk => clk,
    choose => choze,
    vlaggieIN => reg_A,
    vlaggie => OutW);

    Steven

    --------------------------------------------
    Steven Redant- Manager ASIC Design - IMEC/INVOMEC
    Phone: +32 16 28 1928
    Fax: +32 16 28 1584
    E-mail: Steven.Redant@i...

    IMEC vzw - Register of Legal Entities Leuven VAT BE 0425.260.668 -
    Kapeldreef 75, B-3001 Leuven, Belgium - http://www.imec.be <IMEC
    e-mail disclaimer:
    http://www.imec.be/wwwinter/about/email-disclaimer.shtml>
    -----Original Message-----
    From: cores-bounces@o... [mailto:cores-bounces@o...]
    On Behalf Of 14345609@s...
    Sent: Wednesday 29 August 2007 21:19
    To: cores@o...
    Subject: [oc] I am having trouble editing a signal in a sub program IN
    VHDL

    I declared a signal called reg_A. I then want to edit the signal in
    another subprogram. I basically want reg_A to be one of my inputs to a
    sub program(ALU_test) edit reg_A in the subprogram and then I want the
    output of my subprogram to change reg_A in the main program (test).
    When I tried to do this an error occurred ("Signal reg_A has multiple
    sources"). I am not sure what to do could some one please help me.

    library ieee;
    use ieee.std_logic_1164.all;

    entity test is
    port ( clk : in std_logic;
    choze : in std_logic_vector(3 downto 0);
    data_t : in std_logic_vector(7 downto 0);
    Outw : out std_logic_vector(7 downto 0));
    end entity test;

    architecture no1 of test is
    ------------------------------------------------------------
    component ALU_test is
    port ( clk : in std_logic;
    choose : in std_logic_vector(3 downto 0);
    vlaggieIN : in std_logic_vector(7 downto 0);
    vlaggie : out std_logic_vector(7 downto 0));
    end component ALU_test;
    ------------------------------------------------------------
    signal reg_A
    : std_logic_vector(7 downto 0);
    ------------------------------------------------------------
    begin
    process (clk)
    begin
    if rising_edge(clk) then
    reg_A <= "11111111";
    end if;--if rising_edge(clk) then
    end process;

    r1: ALU_toets4 port map (clk,choze,reg_A,reg_A);

    Outw <= reg_A;

    end architecture no1;
    ---------------------------------------------------------------------
    -----
    ========================================
    =================
    ---------------------------------------------------------------------
    -----
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;

    entity ALU_test is
    port ( clk : in std_logic;
    choose : in std_logic_vector(3 downto 0);
    vlaggieIN : in std_logic_vector(7 downto 0);
    vlaggie : out std_logic_vector(7 downto 0));
    end entity ALU_test; architecture alu1 of ALU_test is begin process (clk) begin if rising_edge(clk) then case choose is ----------------------------------- -- add ----------------------------------- when "1000" => vlaggie <= "10101011" + vlaggieIN; ----------------------------------- -- sub ----------------------------------- when "0100" => vlaggie <= "10100100"; ----------------------------------- -- maal ----------------------------------- when "0010" => vlaggie <= vlaggieIN; ----------------------------------- when others => vlaggie <= "00000000"; ----------------------------------- end case;--case kies is end if;--if rising_edge(clk) then end process; end architecture alu1; _______________________________________________ http://www.opencores.org/mailman/listinfo/cores

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.