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

Subversion Repositories plasma

[/] [plasma/] [trunk/] [vhdl/] [mlite_cpu.vhd] - Diff between revs 83 and 96

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

Rev 83 Rev 96
Line 118... Line 118...
   signal shift_funcD    : shift_function_type;
   signal shift_funcD    : shift_function_type;
   signal mult_func      : mult_function_type;
   signal mult_func      : mult_function_type;
   signal mult_funcD     : mult_function_type;
   signal mult_funcD     : mult_function_type;
   signal branch_func    : branch_function_type;
   signal branch_func    : branch_function_type;
   signal take_branch    : std_logic;
   signal take_branch    : std_logic;
   signal take_branchD   : std_logic;
 
   signal a_source       : a_source_type;
   signal a_source       : a_source_type;
   signal b_source       : b_source_type;
   signal b_source       : b_source_type;
   signal c_source       : c_source_type;
   signal c_source       : c_source_type;
   signal pc_source      : pc_source_type;
   signal pc_source      : pc_source_type;
   signal mem_source     : mem_source_type;
   signal mem_source     : mem_source_type;
Line 140... Line 139...
begin  --architecture
begin  --architecture
 
 
   pause_any <= (mem_pause or pause_ctrl) or (pause_mult or pause_pipeline);
   pause_any <= (mem_pause or pause_ctrl) or (pause_mult or pause_pipeline);
   pause_non_ctrl <= (mem_pause or pause_mult) or pause_pipeline;
   pause_non_ctrl <= (mem_pause or pause_mult) or pause_pipeline;
   pause_bank <= (mem_pause or pause_ctrl or pause_mult) and not pause_pipeline;
   pause_bank <= (mem_pause or pause_ctrl or pause_mult) and not pause_pipeline;
   nullify_op <= '1' when pc_source = from_lbranch and take_branchD = '0' else
   nullify_op <= '1' when pc_source = from_lbranch and take_branch = '0' else '0';
                 '0';
 
   c_bus <= c_alu or c_shift or c_mult;
   c_bus <= c_alu or c_shift or c_mult;
   reset <= '1' when reset_in = '1' or reset_reg /= "1111" else '0';
   reset <= '1' when reset_in = '1' or reset_reg /= "1111" else '0';
 
 
   --synchronize reset and interrupt pins
   --synchronize reset and interrupt pins
   intr_proc: process(clk, reset_in, reset_reg, intr_in, intr_enable,
   intr_proc: process(clk, reset_in, reset_reg, intr_in, intr_enable,
Line 172... Line 170...
   end process;
   end process;
 
 
   u1_pc_next: pc_next PORT MAP (
   u1_pc_next: pc_next PORT MAP (
        clk          => clk,
        clk          => clk,
        reset_in     => reset,
        reset_in     => reset,
        take_branch  => take_branchD,
        take_branch  => take_branch,
        pause_in     => pause_any,
        pause_in     => pause_any,
        pc_new       => c_bus(31 downto 2),
        pc_new       => c_bus(31 downto 2),
        opcode25_0   => opcode(25 downto 0),
        opcode25_0   => opcode(25 downto 0),
        pc_source    => pc_source,
        pc_source    => pc_source,
        pc_out       => pc,
        pc_out       => pc,
Line 286... Line 284...
      shift_funcD <= shift_func;
      shift_funcD <= shift_func;
      mult_funcD <= mult_func;
      mult_funcD <= mult_func;
      rd_indexD <= rd_index;
      rd_indexD <= rd_index;
 
 
      reg_destD <= reg_dest;
      reg_destD <= reg_dest;
      take_branchD <= take_branch;
 
      pause_pipeline <= '0';
      pause_pipeline <= '0';
   end generate; --pipeline2
   end generate; --pipeline2
 
 
   pipeline3: if pipeline_stages >= 3 generate
   pipeline3: if pipeline_stages >= 3 generate
      --When operating in three stage pipeline mode, the following signals
      --When operating in three stage pipeline mode, the following signals
Line 320... Line 317...
        mem_source     => mem_source,
        mem_source     => mem_source,
        a_source       => a_source,
        a_source       => a_source,
        b_source       => b_source,
        b_source       => b_source,
        c_source       => c_source,
        c_source       => c_source,
        c_bus          => c_bus,
        c_bus          => c_bus,
        take_branch    => take_branch,
 
        take_branchD   => take_branchD,
 
        pause_any      => pause_any,
        pause_any      => pause_any,
        pause_pipeline => pause_pipeline);
        pause_pipeline => pause_pipeline);
   end generate; --pipeline3
   end generate; --pipeline3
 
 
end; --architecture logic
end; --architecture logic

powered by: WebSVN 2.1.0

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