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

Subversion Repositories mlite

[/] [mlite/] [trunk/] [vhdl/] [tbench.vhd] - Diff between revs 6 and 7

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

Rev 6 Rev 7
Line 12... Line 12...
library ieee;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all;
use work.mips_pack.all;
use work.mips_pack.all;
 
 
entity tbench is
entity tbench is
   port(clk_out : out std_logic;
   port(clk_out : out std_logic);
        pc      : out std_logic_vector(31 downto 0)
 
       );
 
end; --entity tbench
end; --entity tbench
 
 
architecture logic of tbench is
architecture logic of tbench is
 
 
component mips_cpu
component mips_cpu
Line 27... Line 25...
        intr_in     : in std_logic;
        intr_in     : in std_logic;
 
 
        mem_address : out std_logic_vector(31 downto 0);
        mem_address : out std_logic_vector(31 downto 0);
        mem_data_w  : out std_logic_vector(31 downto 0);
        mem_data_w  : out std_logic_vector(31 downto 0);
        mem_data_r  : in std_logic_vector(31 downto 0);
        mem_data_r  : in std_logic_vector(31 downto 0);
        mem_sel     : out std_logic_vector(3 downto 0);
        mem_byte_sel: out std_logic_vector(3 downto 0);
        mem_write   : out std_logic;
        mem_write   : out std_logic;
        mem_pause   : in std_logic;
        mem_pause   : in std_logic);
 
 
        t_pc        : out std_logic_vector(31 downto 0);
 
        t_opcode    : out std_logic_vector(31 downto 0);
 
        t_r_dest    : out std_logic_vector(31 downto 0)
 
        );
 
end component;
end component;
 
 
component ram
component ram
   generic(load_file_name : string);
   generic(load_file_name : string);
   port(clk          : in std_logic;
   port(clk          : in std_logic;
Line 47... Line 40...
        mem_address  : in std_logic_vector;
        mem_address  : in std_logic_vector;
        mem_data_w   : in std_logic_vector(31 downto 0);
        mem_data_w   : in std_logic_vector(31 downto 0);
        mem_data_r   : out std_logic_vector(31 downto 0));
        mem_data_r   : out std_logic_vector(31 downto 0));
end component;
end component;
 
 
   signal clk         : std_logic := '0';
   signal clk         : std_logic := '1';
   signal reset       : std_logic := '1'; --, '0' after 100 ns;
   signal reset       : std_logic := '1';
   signal interrupt   : std_logic := '0';
   signal interrupt   : std_logic := '0';
   signal mem_sel     : std_logic_vector(3 downto 0);
 
   signal mem_write   : std_logic;
   signal mem_write   : std_logic;
   signal mem_address : std_logic_vector(31 downto 0);
   signal mem_address : std_logic_vector(31 downto 0);
   signal mem_data_w  : std_logic_vector(31 downto 0);
   signal mem_data_w  : std_logic_vector(31 downto 0);
   signal mem_data_r  : std_logic_vector(31 downto 0);
   signal mem_data_r  : std_logic_vector(31 downto 0);
   signal mem_pause   : std_logic;
   signal mem_pause   : std_logic;
   signal t_pc        : std_logic_vector(31 downto 0);
 
   signal t_opcode    : std_logic_vector(31 downto 0);
 
   signal t_r_dest    : std_logic_vector(31 downto 0);
 
   signal mem_byte_sel: std_logic_vector(3 downto 0);
   signal mem_byte_sel: std_logic_vector(3 downto 0);
begin  --architecture
begin  --architecture
   clk <= not clk after 50 ns;
   clk <= not clk after 50 ns;
   reset <= '0' after 100 ns;
   reset <= '0' after 320 ns;
   mem_pause <= '0';
   mem_pause <= '0';
 
 
   --Uncomment the line below to test interrupts
   --Uncomment the line below to test interrupts
-- interrupt <= '1' after 10000 ns when interrupt = '0' else '0' after 600 ns;
-- interrupt <= '1' after 10 us when interrupt = '0' else '0' after 600 ns;
 
 
   u1: mips_cpu PORT MAP (
   u1: mips_cpu PORT MAP (
        clk          => clk,
        clk          => clk,
        reset_in     => reset,
        reset_in     => reset,
        intr_in      => interrupt,
        intr_in      => interrupt,
 
 
        mem_address  => mem_address,
        mem_address  => mem_address,
        mem_data_w   => mem_data_w,
        mem_data_w   => mem_data_w,
        mem_data_r   => mem_data_r,
        mem_data_r   => mem_data_r,
        mem_sel      => mem_byte_sel,
        mem_byte_sel => mem_byte_sel,
        mem_write    => mem_write,
        mem_write    => mem_write,
        mem_pause    => mem_pause,
        mem_pause    => mem_pause);
 
 
        t_pc         => t_pc,
 
        t_opcode     => t_opcode,
 
        t_r_dest     => t_r_dest);
 
 
 
   u2: ram generic map ("code.txt")
   u2: ram generic map ("code.txt")
       PORT MAP (
       PORT MAP (
        clk          => clk,
        clk          => clk,
        mem_byte_sel => mem_byte_sel,
        mem_byte_sel => mem_byte_sel,
Line 94... Line 79...
        mem_address  => mem_address(15 downto 0),
        mem_address  => mem_address(15 downto 0),
        mem_data_w   => mem_data_w,
        mem_data_w   => mem_data_w,
        mem_data_r   => mem_data_r);
        mem_data_r   => mem_data_r);
 
 
   clk_out <= clk;
   clk_out <= clk;
   pc <= t_pc;
 
 
 
end; --architecture logic
end; --architecture logic
 
 
 
 
 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.