OpenCores
URL https://opencores.org/ocsvn/mod_sim_exp/mod_sim_exp/trunk

Subversion Repositories mod_sim_exp

[/] [mod_sim_exp/] [trunk/] [rtl/] [vhdl/] [core/] [sys_pipeline.vhd] - Diff between revs 32 and 36

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 32 Rev 36
Line 83... Line 83...
  constant s : integer := n/t;
  constant s : integer := n/t;
 
 
 
 
  signal m_i           : std_logic_vector(n downto 0);
  signal m_i           : std_logic_vector(n downto 0);
  signal y_i           : std_logic_vector(n downto 0);
  signal y_i           : std_logic_vector(n downto 0);
 
  signal r_sel_l : std_logic;
 
  signal r_sel_h : std_logic;
 
 
  -- systolic stages signals
  -- systolic stages signals
  signal my_cin_stage  : std_logic_vector((t-1) downto 0);
  signal my_cin_stage  : std_logic_vector((t-1) downto 0);
  signal my_cout_stage : std_logic_vector((t-1) downto 0);
  signal my_cout_stage : std_logic_vector((t-1) downto 0);
  signal xin_stage     : std_logic_vector((t-1) downto 0);
  signal xin_stage     : std_logic_vector((t-1) downto 0);
Line 99... Line 101...
  signal cout_stage    : std_logic_vector((t-1) downto 0);
  signal cout_stage    : std_logic_vector((t-1) downto 0);
  signal red_cin_stage : std_logic_vector((t-1) downto 0);
  signal red_cin_stage : std_logic_vector((t-1) downto 0);
  signal red_cout_stage : std_logic_vector((t-1) downto 0);
  signal red_cout_stage : std_logic_vector((t-1) downto 0);
  signal start_stage   : std_logic_vector((t-1) downto 0);
  signal start_stage   : std_logic_vector((t-1) downto 0);
  signal done_stage    : std_logic_vector((t-1) downto 0);
  signal done_stage    : std_logic_vector((t-1) downto 0);
  signal r_sel         : std_logic;
  signal r_sel_stage   : std_logic_vector((t-1) downto 0);
 
 
  -- mid end signals
  -- mid end signals
  signal a_0_midend : std_logic;
  signal a_0_midend : std_logic;
  signal r_sel_midend : std_logic;
  signal r_sel_midend : std_logic;
 
 
Line 144... Line 146...
      red_cin  => red_cin_stage(i),
      red_cin  => red_cin_stage(i),
      red_cout => red_cout_stage(i),
      red_cout => red_cout_stage(i),
      start    => start_stage(i),
      start    => start_stage(i),
      reset    => reset,
      reset    => reset,
      done     => done_stage(i),
      done     => done_stage(i),
      r_sel    => r_sel,
      r_sel    => r_sel_stage(i),
      r        => r(((i+1)*s)-1 downto (i*s))
      r        => r(((i+1)*s)-1 downto (i*s))
    );
    );
  end generate;
  end generate;
 
 
 
 
 
 
  -- first cell logic
  -- first cell logic
  --------------------
  --------------------
  first_cell : sys_first_cell_logic
  first_cell : sys_first_cell_logic
  port map (
  port map (
    m0       => m_i(0),
    m0       => m_i(0),
Line 184... Line 184...
    xin_stage(i) <= xout_stage(i-1);
    xin_stage(i) <= xout_stage(i-1);
    qin_stage(i) <= qout_stage(i-1);
    qin_stage(i) <= qout_stage(i-1);
    red_cin_stage(i) <= red_cout_stage(i-1);
    red_cin_stage(i) <= red_cout_stage(i-1);
    start_stage(i) <= done_stage(i-1);
    start_stage(i) <= done_stage(i-1);
    a_msb_stage(i-1) <= a_0_stage(i);
    a_msb_stage(i-1) <= a_0_stage(i);
 
    r_sel_stage(i) <= r_sel_l;
  end generate;
  end generate;
 
    r_sel_stage(0) <= r_sel_l;
 
 
  -- mid end logic
  -- mid end logic
  -----------------
  -----------------
  mid_end_cell : sys_last_cell_logic
  mid_end_cell : sys_last_cell_logic
  port map (
  port map (
Line 249... Line 251...
    xin_stage(i) <= xout_stage(i-1);
    xin_stage(i) <= xout_stage(i-1);
    qin_stage(i) <= qout_stage(i-1);
    qin_stage(i) <= qout_stage(i-1);
    red_cin_stage(i) <= red_cout_stage(i-1);
    red_cin_stage(i) <= red_cout_stage(i-1);
    start_stage(i) <= done_stage(i-1);
    start_stage(i) <= done_stage(i-1);
    a_msb_stage(i-1) <= a_0_stage(i);
    a_msb_stage(i-1) <= a_0_stage(i);
 
    r_sel_stage(i) <= r_sel_h;
  end generate;
  end generate;
 
    r_sel_stage(tl) <= r_sel_h;
 
 
  -- last cell logic
  -- last cell logic
  -------------------
  -------------------
  last_cell : sys_last_cell_logic
  last_cell : sys_last_cell_logic
  port map (
  port map (
Line 265... Line 269...
    r_sel    => r_sel_end,
    r_sel    => r_sel_end,
    start    => done_stage(t-1)
    start    => done_stage(t-1)
  );
  );
 
 
  with p_sel select
  with p_sel select
    r_sel <= r_sel_midend when "01",
    r_sel_l <= r_sel_midend when "01",
 
               r_sel_end when "11",
 
               '0' when others;
 
 
 
  with p_sel select
 
    r_sel_h <= '0' when "01",
             r_sel_end when others;
             r_sel_end when others;
 
 
end Structural;
end Structural;
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.