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

Subversion Repositories plasma

[/] [plasma/] [trunk/] [vhdl/] [mlite_cpu.vhd] - Diff between revs 203 and 264

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

Rev 203 Rev 264
Line 55... Line 55...
--   48: a0a40000  sb $a0,0($a1)
--   48: a0a40000  sb $a0,0($a1)
--   4c: 00000000  nop
--   4c: 00000000  nop
--   50: 00000000  nop
--   50: 00000000  nop
--
--
--      intr_in                             mem_pause 
--      intr_in                             mem_pause 
--  reset_in                           mem_byte_we     Stages
--  reset_in                               byte_we     Stages
--     ns     mem_address mem_data_w mem_data_r        40 44 48 4c 50
--     ns         address     data_w     data_r        40 44 48 4c 50
--   3500  0  0  00000040   00000000   00000000  0  0   0
--   3600  0  0  00000040   00000000   34040041  0  0   1  
--   3600  0  0  00000044   00000000   34040041  0  0   1  0
--   3700  0  0  00000044   00000000   3405FFFF  0  0   2  1  
--   3700  0  0  00000048   00000000   3405FFFF  0  0   2  1  0 
--   3800  0  0  00000048   00000000   A0A40000  0  0      2  1  
--   3800  0  0  0000004C   00000000   A0A40000  0  0      2  1  0
--   3900  0  0  0000004C   41414141   00000000  1  0         2  1
--   3900  0  0  0000FFFC   41414141   00000000  1  0         2  1
--   4000  0  0  0000FFFC   41414141   XXXXXX41  0  0         3  2  
--   4000  0  0  00000050   41414141   XXXXXX41  0  0         3  2  0
--   4100  0  0  00000050   00000000   00000000  0  0               1
--   4100  0  0  00000054   00000000   00000000  0  0               1
 
---------------------------------------------------------------------
---------------------------------------------------------------------
library ieee;
library ieee;
use work.mlite_pack.all;
use work.mlite_pack.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_unsigned.all;
Line 80... Line 79...
           pipeline_stages : natural := 2); --2 or 3
           pipeline_stages : natural := 2); --2 or 3
   port(clk         : in std_logic;
   port(clk         : in std_logic;
        reset_in    : in std_logic;
        reset_in    : in std_logic;
        intr_in     : in std_logic;
        intr_in     : in std_logic;
 
 
        mem_address : out std_logic_vector(31 downto 0);
        address_next : out std_logic_vector(31 downto 2); --for synch ram
        mem_data_w  : out std_logic_vector(31 downto 0);
        byte_we_next : out std_logic_vector(3 downto 0);
        mem_data_r  : in std_logic_vector(31 downto 0);
 
        mem_byte_we : out std_logic_vector(3 downto 0);
        address      : out std_logic_vector(31 downto 2);
 
        byte_we      : out std_logic_vector(3 downto 0);
 
        data_w       : out std_logic_vector(31 downto 0);
 
        data_r       : in std_logic_vector(31 downto 0);
        mem_pause   : in std_logic);
        mem_pause   : in std_logic);
end; --entity mlite_cpu
end; --entity mlite_cpu
 
 
architecture logic of mlite_cpu is
architecture logic of mlite_cpu is
   --When using a two stage pipeline "sigD <= sig".
   --When using a two stage pipeline "sigD <= sig".
Line 148... Line 150...
   nullify_op <= '1' when (pc_source = FROM_LBRANCH and take_branch = '0')
   nullify_op <= '1' when (pc_source = FROM_LBRANCH and take_branch = '0')
                          or intr_signal = '1' or exception_sig = '1'
                          or intr_signal = '1' or exception_sig = '1'
                          else '0';
                          else '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';
   mem_address(1 downto 0) <= "00";
 
 
 
   --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,
      pc_source, pc_current, pause_any)
      pc_source, pc_current, pause_any)
   begin
   begin
Line 203... Line 204...
        mem_source   => mem_source,
        mem_source   => mem_source,
        data_write   => reg_target,
        data_write   => reg_target,
        data_read    => c_memory,
        data_read    => c_memory,
        pause_out    => pause_ctrl,
        pause_out    => pause_ctrl,
 
 
        mem_address  => mem_address(31 downto 2),
        address_next => address_next,
        mem_data_w   => mem_data_w,
        byte_we_next => byte_we_next,
        mem_data_r   => mem_data_r,
 
        mem_byte_we  => mem_byte_we);
        address      => address,
 
        byte_we      => byte_we,
 
        data_w       => data_w,
 
        data_r       => data_r);
 
 
   u3_control: control PORT MAP (
   u3_control: control PORT MAP (
        opcode       => opcode,
        opcode       => opcode,
        intr_signal  => intr_signal,
        intr_signal  => intr_signal,
        rs_index     => rs_index,
        rs_index     => rs_index,

powered by: WebSVN 2.1.0

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