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

Subversion Repositories lxp32

[/] [lxp32/] [trunk/] [verify/] [lxp32/] [src/] [platform/] [platform.vhd] - Diff between revs 6 and 9

Only display areas with differences | Details | Blame | View Log

Rev 6 Rev 9
---------------------------------------------------------------------
---------------------------------------------------------------------
-- LXP32 platform top-level design unit
-- LXP32 platform top-level design unit
--
--
-- Part of the LXP32 test platform
-- Part of the LXP32 test platform
--
--
-- Copyright (c) 2016 by Alex I. Kuznetsov
-- Copyright (c) 2016 by Alex I. Kuznetsov
--
--
-- A SoC-like simulation platform for the LXP32 CPU, containing
-- A SoC-like simulation platform for the LXP32 CPU, containing
-- a few peripherals such as program RAM, timer and coprocessor.
-- a few peripherals such as program RAM, timer and coprocessor.
--
--
-- Note: regardless of whether this description is synthesizable,
-- Note: regardless of whether this description is synthesizable,
-- it was designed exclusively for simulation purposes.
-- it was designed exclusively for simulation purposes.
---------------------------------------------------------------------
---------------------------------------------------------------------
 
 
library ieee;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all;
 
 
entity platform is
entity platform is
        generic(
        generic(
                CPU_DBUS_RMW: boolean;
                CPU_DBUS_RMW: boolean;
                CPU_MUL_ARCH: string;
                CPU_MUL_ARCH: string;
                MODEL_LXP32C: boolean;
                MODEL_LXP32C: boolean;
                THROTTLE_DBUS: boolean;
                THROTTLE_DBUS: boolean;
                THROTTLE_IBUS: boolean
                THROTTLE_IBUS: boolean
        );
        );
        port(
        port(
                clk_i: in std_logic;
                clk_i: in std_logic;
                rst_i: in std_logic;
                rst_i: in std_logic;
                cpu_rst_i: in std_logic;
                cpu_rst_i: in std_logic;
 
 
                wbm_cyc_o: out std_logic;
                wbm_cyc_o: out std_logic;
                wbm_stb_o: out std_logic;
                wbm_stb_o: out std_logic;
                wbm_we_o: out std_logic;
                wbm_we_o: out std_logic;
                wbm_sel_o: out std_logic_vector(3 downto 0);
                wbm_sel_o: out std_logic_vector(3 downto 0);
                wbm_ack_i: in std_logic;
                wbm_ack_i: in std_logic;
                wbm_adr_o: out std_logic_vector(27 downto 2);
                wbm_adr_o: out std_logic_vector(27 downto 2);
                wbm_dat_o: out std_logic_vector(31 downto 0);
                wbm_dat_o: out std_logic_vector(31 downto 0);
                wbm_dat_i: in std_logic_vector(31 downto 0);
                wbm_dat_i: in std_logic_vector(31 downto 0);
 
 
                wbs_cyc_i: in std_logic;
                wbs_cyc_i: in std_logic;
                wbs_stb_i: in std_logic;
                wbs_stb_i: in std_logic;
                wbs_we_i: in std_logic;
                wbs_we_i: in std_logic;
                wbs_sel_i: in std_logic_vector(3 downto 0);
                wbs_sel_i: in std_logic_vector(3 downto 0);
                wbs_ack_o: out std_logic;
                wbs_ack_o: out std_logic;
                wbs_adr_i: in std_logic_vector(31 downto 2);
                wbs_adr_i: in std_logic_vector(31 downto 2);
                wbs_dat_i: in std_logic_vector(31 downto 0);
                wbs_dat_i: in std_logic_vector(31 downto 0);
                wbs_dat_o: out std_logic_vector(31 downto 0);
                wbs_dat_o: out std_logic_vector(31 downto 0);
 
 
                gp_io: inout std_logic_vector(31 downto 0)
                gp_io: inout std_logic_vector(31 downto 0)
        );
        );
end entity;
end entity;
 
 
architecture rtl of platform is
architecture rtl of platform is
 
 
type wbm_type is record
type wbm_type is record
        cyc: std_logic;
        cyc: std_logic;
        stb: std_logic;
        stb: std_logic;
        we: std_logic;
        we: std_logic;
        sel: std_logic_vector(3 downto 0);
        sel: std_logic_vector(3 downto 0);
        ack: std_logic;
        ack: std_logic;
        adr: std_logic_vector(31 downto 2);
        adr: std_logic_vector(31 downto 2);
        wdata: std_logic_vector(31 downto 0);
        wdata: std_logic_vector(31 downto 0);
        rdata: std_logic_vector(31 downto 0);
        rdata: std_logic_vector(31 downto 0);
end record;
end record;
 
 
type wbs_type is record
type wbs_type is record
        cyc: std_logic;
        cyc: std_logic;
        stb: std_logic;
        stb: std_logic;
        we: std_logic;
        we: std_logic;
        sel: std_logic_vector(3 downto 0);
        sel: std_logic_vector(3 downto 0);
        ack: std_logic;
        ack: std_logic;
        adr: std_logic_vector(27 downto 2);
        adr: std_logic_vector(27 downto 2);
        wdata: std_logic_vector(31 downto 0);
        wdata: std_logic_vector(31 downto 0);
        rdata: std_logic_vector(31 downto 0);
        rdata: std_logic_vector(31 downto 0);
end record;
end record;
 
 
type ibus_type is record
type ibus_type is record
        cyc: std_logic;
        cyc: std_logic;
        stb: std_logic;
        stb: std_logic;
        cti: std_logic_vector(2 downto 0);
        cti: std_logic_vector(2 downto 0);
        bte: std_logic_vector(1 downto 0);
        bte: std_logic_vector(1 downto 0);
        ack: std_logic;
        ack: std_logic;
        adr: std_logic_vector(29 downto 0);
        adr: std_logic_vector(29 downto 0);
        dat: std_logic_vector(31 downto 0);
        dat: std_logic_vector(31 downto 0);
end record;
end record;
 
 
signal cpu_rst: std_logic;
signal cpu_rst: std_logic;
signal cpu_irq: std_logic_vector(7 downto 0);
signal cpu_irq: std_logic_vector(7 downto 0);
signal cpu_dbus: wbm_type;
signal cpu_dbus: wbm_type;
signal cpu_ibus: ibus_type;
signal cpu_ibus: ibus_type;
 
 
signal lli_re: std_logic;
signal lli_re: std_logic;
signal lli_adr: std_logic_vector(29 downto 0);
signal lli_adr: std_logic_vector(29 downto 0);
signal lli_dat: std_logic_vector(31 downto 0);
signal lli_dat: std_logic_vector(31 downto 0);
signal lli_busy: std_logic;
signal lli_busy: std_logic;
 
 
signal monitor_dbus: wbm_type;
signal monitor_dbus: wbm_type;
 
 
signal ram_wb: wbs_type;
signal ram_wb: wbs_type;
 
 
signal timer_wb: wbs_type;
signal timer_wb: wbs_type;
signal timer_elapsed: std_logic;
signal timer_elapsed: std_logic;
 
 
signal coprocessor_wb: wbs_type;
signal coprocessor_wb: wbs_type;
signal coprocessor_irq: std_logic;
signal coprocessor_irq: std_logic;
 
 
begin
begin
 
 
-- Interconnect
-- Interconnect
 
 
intercon_inst: entity work.intercon(rtl)
intercon_inst: entity work.intercon(rtl)
        port map(
        port map(
                clk_i=>clk_i,
                clk_i=>clk_i,
                rst_i=>rst_i,
                rst_i=>rst_i,
 
 
                s0_cyc_i=>wbs_cyc_i,
                s0_cyc_i=>wbs_cyc_i,
                s0_stb_i=>wbs_stb_i,
                s0_stb_i=>wbs_stb_i,
                s0_we_i=>wbs_we_i,
                s0_we_i=>wbs_we_i,
                s0_sel_i=>wbs_sel_i,
                s0_sel_i=>wbs_sel_i,
                s0_ack_o=>wbs_ack_o,
                s0_ack_o=>wbs_ack_o,
                s0_adr_i=>wbs_adr_i,
                s0_adr_i=>wbs_adr_i,
                s0_dat_i=>wbs_dat_i,
                s0_dat_i=>wbs_dat_i,
                s0_dat_o=>wbs_dat_o,
                s0_dat_o=>wbs_dat_o,
 
 
                s1_cyc_i=>monitor_dbus.cyc,
                s1_cyc_i=>monitor_dbus.cyc,
                s1_stb_i=>monitor_dbus.stb,
                s1_stb_i=>monitor_dbus.stb,
                s1_we_i=>monitor_dbus.we,
                s1_we_i=>monitor_dbus.we,
                s1_sel_i=>monitor_dbus.sel,
                s1_sel_i=>monitor_dbus.sel,
                s1_ack_o=>monitor_dbus.ack,
                s1_ack_o=>monitor_dbus.ack,
                s1_adr_i=>monitor_dbus.adr,
                s1_adr_i=>monitor_dbus.adr,
                s1_dat_i=>monitor_dbus.wdata,
                s1_dat_i=>monitor_dbus.wdata,
                s1_dat_o=>monitor_dbus.rdata,
                s1_dat_o=>monitor_dbus.rdata,
 
 
                m0_cyc_o=>ram_wb.cyc,
                m0_cyc_o=>ram_wb.cyc,
                m0_stb_o=>ram_wb.stb,
                m0_stb_o=>ram_wb.stb,
                m0_we_o=>ram_wb.we,
                m0_we_o=>ram_wb.we,
                m0_sel_o=>ram_wb.sel,
                m0_sel_o=>ram_wb.sel,
                m0_ack_i=>ram_wb.ack,
                m0_ack_i=>ram_wb.ack,
                m0_adr_o=>ram_wb.adr,
                m0_adr_o=>ram_wb.adr,
                m0_dat_o=>ram_wb.wdata,
                m0_dat_o=>ram_wb.wdata,
                m0_dat_i=>ram_wb.rdata,
                m0_dat_i=>ram_wb.rdata,
 
 
                m1_cyc_o=>wbm_cyc_o,
                m1_cyc_o=>wbm_cyc_o,
                m1_stb_o=>wbm_stb_o,
                m1_stb_o=>wbm_stb_o,
                m1_we_o=>wbm_we_o,
                m1_we_o=>wbm_we_o,
                m1_sel_o=>wbm_sel_o,
                m1_sel_o=>wbm_sel_o,
                m1_ack_i=>wbm_ack_i,
                m1_ack_i=>wbm_ack_i,
                m1_adr_o=>wbm_adr_o,
                m1_adr_o=>wbm_adr_o,
                m1_dat_o=>wbm_dat_o,
                m1_dat_o=>wbm_dat_o,
                m1_dat_i=>wbm_dat_i,
                m1_dat_i=>wbm_dat_i,
 
 
                m2_cyc_o=>timer_wb.cyc,
                m2_cyc_o=>timer_wb.cyc,
                m2_stb_o=>timer_wb.stb,
                m2_stb_o=>timer_wb.stb,
                m2_we_o=>timer_wb.we,
                m2_we_o=>timer_wb.we,
                m2_sel_o=>timer_wb.sel,
                m2_sel_o=>timer_wb.sel,
                m2_ack_i=>timer_wb.ack,
                m2_ack_i=>timer_wb.ack,
                m2_adr_o=>timer_wb.adr,
                m2_adr_o=>timer_wb.adr,
                m2_dat_o=>timer_wb.wdata,
                m2_dat_o=>timer_wb.wdata,
                m2_dat_i=>timer_wb.rdata,
                m2_dat_i=>timer_wb.rdata,
 
 
                m3_cyc_o=>coprocessor_wb.cyc,
                m3_cyc_o=>coprocessor_wb.cyc,
                m3_stb_o=>coprocessor_wb.stb,
                m3_stb_o=>coprocessor_wb.stb,
                m3_we_o=>coprocessor_wb.we,
                m3_we_o=>coprocessor_wb.we,
                m3_sel_o=>coprocessor_wb.sel,
                m3_sel_o=>coprocessor_wb.sel,
                m3_ack_i=>coprocessor_wb.ack,
                m3_ack_i=>coprocessor_wb.ack,
                m3_adr_o=>coprocessor_wb.adr,
                m3_adr_o=>coprocessor_wb.adr,
                m3_dat_o=>coprocessor_wb.wdata,
                m3_dat_o=>coprocessor_wb.wdata,
                m3_dat_i=>coprocessor_wb.rdata
                m3_dat_i=>coprocessor_wb.rdata
        );
        );
 
 
-- CPU
-- CPU
 
 
cpu_rst<=cpu_rst_i or rst_i;
cpu_rst<=cpu_rst_i or rst_i;
 
 
-- Note: we connect the timer IRQ to 2 CPU channels to test
-- Note: we connect the timer IRQ to 2 CPU channels to test
-- handling of simultaneously arriving interrupt requests.
-- handling of simultaneously arriving interrupt requests.
 
 
cpu_irq<="00000"&coprocessor_irq&timer_elapsed&timer_elapsed;
cpu_irq<="00000"&coprocessor_irq&timer_elapsed&timer_elapsed;
 
 
gen_lxp32u: if not MODEL_LXP32C generate
gen_lxp32u: if not MODEL_LXP32C generate
        lxp32u_top_inst: entity work.lxp32u_top(rtl)
        lxp32u_top_inst: entity work.lxp32u_top(rtl)
                generic map(
                generic map(
                        DBUS_RMW=>CPU_DBUS_RMW,
                        DBUS_RMW=>CPU_DBUS_RMW,
                        DIVIDER_EN=>true,
                        DIVIDER_EN=>true,
                        MUL_ARCH=>CPU_MUL_ARCH,
                        MUL_ARCH=>CPU_MUL_ARCH,
                        START_ADDR=>(others=>'0')
                        START_ADDR=>(others=>'0')
                )
                )
                port map(
                port map(
                        clk_i=>clk_i,
                        clk_i=>clk_i,
                        rst_i=>cpu_rst,
                        rst_i=>cpu_rst,
 
 
                        lli_re_o=>lli_re,
                        lli_re_o=>lli_re,
                        lli_adr_o=>lli_adr,
                        lli_adr_o=>lli_adr,
                        lli_dat_i=>lli_dat,
                        lli_dat_i=>lli_dat,
                        lli_busy_i=>lli_busy,
                        lli_busy_i=>lli_busy,
 
 
                        dbus_cyc_o=>cpu_dbus.cyc,
                        dbus_cyc_o=>cpu_dbus.cyc,
                        dbus_stb_o=>cpu_dbus.stb,
                        dbus_stb_o=>cpu_dbus.stb,
                        dbus_we_o=>cpu_dbus.we,
                        dbus_we_o=>cpu_dbus.we,
                        dbus_sel_o=>cpu_dbus.sel,
                        dbus_sel_o=>cpu_dbus.sel,
                        dbus_ack_i=>cpu_dbus.ack,
                        dbus_ack_i=>cpu_dbus.ack,
                        dbus_adr_o=>cpu_dbus.adr,
                        dbus_adr_o=>cpu_dbus.adr,
                        dbus_dat_o=>cpu_dbus.wdata,
                        dbus_dat_o=>cpu_dbus.wdata,
                        dbus_dat_i=>cpu_dbus.rdata,
                        dbus_dat_i=>cpu_dbus.rdata,
 
 
                        irq_i=>cpu_irq
                        irq_i=>cpu_irq
                );
                );
end generate;
end generate;
 
 
gen_lxp32c: if MODEL_LXP32C generate
gen_lxp32c: if MODEL_LXP32C generate
        lxp32c_top_inst: entity work.lxp32c_top(rtl)
        lxp32c_top_inst: entity work.lxp32c_top(rtl)
                generic map(
                generic map(
                        DBUS_RMW=>CPU_DBUS_RMW,
                        DBUS_RMW=>CPU_DBUS_RMW,
                        DIVIDER_EN=>true,
                        DIVIDER_EN=>true,
                        IBUS_BURST_SIZE=>16,
                        IBUS_BURST_SIZE=>16,
                        IBUS_PREFETCH_SIZE=>32,
                        IBUS_PREFETCH_SIZE=>32,
                        MUL_ARCH=>CPU_MUL_ARCH,
                        MUL_ARCH=>CPU_MUL_ARCH,
                        START_ADDR=>(others=>'0')
                        START_ADDR=>(others=>'0')
                )
                )
                port map(
                port map(
                        clk_i=>clk_i,
                        clk_i=>clk_i,
                        rst_i=>cpu_rst,
                        rst_i=>cpu_rst,
 
 
                        ibus_cyc_o=>cpu_ibus.cyc,
                        ibus_cyc_o=>cpu_ibus.cyc,
                        ibus_stb_o=>cpu_ibus.stb,
                        ibus_stb_o=>cpu_ibus.stb,
                        ibus_cti_o=>cpu_ibus.cti,
                        ibus_cti_o=>cpu_ibus.cti,
                        ibus_bte_o=>cpu_ibus.bte,
                        ibus_bte_o=>cpu_ibus.bte,
                        ibus_ack_i=>cpu_ibus.ack,
                        ibus_ack_i=>cpu_ibus.ack,
                        ibus_adr_o=>cpu_ibus.adr,
                        ibus_adr_o=>cpu_ibus.adr,
                        ibus_dat_i=>cpu_ibus.dat,
                        ibus_dat_i=>cpu_ibus.dat,
 
 
                        dbus_cyc_o=>cpu_dbus.cyc,
                        dbus_cyc_o=>cpu_dbus.cyc,
                        dbus_stb_o=>cpu_dbus.stb,
                        dbus_stb_o=>cpu_dbus.stb,
                        dbus_we_o=>cpu_dbus.we,
                        dbus_we_o=>cpu_dbus.we,
                        dbus_sel_o=>cpu_dbus.sel,
                        dbus_sel_o=>cpu_dbus.sel,
                        dbus_ack_i=>cpu_dbus.ack,
                        dbus_ack_i=>cpu_dbus.ack,
                        dbus_adr_o=>cpu_dbus.adr,
                        dbus_adr_o=>cpu_dbus.adr,
                        dbus_dat_o=>cpu_dbus.wdata,
                        dbus_dat_o=>cpu_dbus.wdata,
                        dbus_dat_i=>cpu_dbus.rdata,
                        dbus_dat_i=>cpu_dbus.rdata,
 
 
                        irq_i=>cpu_irq
                        irq_i=>cpu_irq
                );
                );
 
 
        ibus_adapter_inst: entity work.ibus_adapter(rtl)
        ibus_adapter_inst: entity work.ibus_adapter(rtl)
                port map(
                port map(
                        clk_i=>clk_i,
                        clk_i=>clk_i,
                        rst_i=>rst_i,
                        rst_i=>rst_i,
 
 
                        ibus_cyc_i=>cpu_ibus.cyc,
                        ibus_cyc_i=>cpu_ibus.cyc,
                        ibus_stb_i=>cpu_ibus.stb,
                        ibus_stb_i=>cpu_ibus.stb,
                        ibus_cti_i=>cpu_ibus.cti,
                        ibus_cti_i=>cpu_ibus.cti,
                        ibus_bte_i=>cpu_ibus.bte,
                        ibus_bte_i=>cpu_ibus.bte,
                        ibus_ack_o=>cpu_ibus.ack,
                        ibus_ack_o=>cpu_ibus.ack,
                        ibus_adr_i=>cpu_ibus.adr,
                        ibus_adr_i=>cpu_ibus.adr,
                        ibus_dat_o=>cpu_ibus.dat,
                        ibus_dat_o=>cpu_ibus.dat,
 
 
                        lli_re_o=>lli_re,
                        lli_re_o=>lli_re,
                        lli_adr_o=>lli_adr,
                        lli_adr_o=>lli_adr,
                        lli_dat_i=>lli_dat,
                        lli_dat_i=>lli_dat,
                        lli_busy_i=>lli_busy
                        lli_busy_i=>lli_busy
                );
                );
end generate;
end generate;
 
 
-- DBUS monitor
-- DBUS monitor
 
 
dbus_monitor_inst: entity work.dbus_monitor(rtl)
dbus_monitor_inst: entity work.dbus_monitor(rtl)
        generic map(
        generic map(
                THROTTLE=>THROTTLE_DBUS
                THROTTLE=>THROTTLE_DBUS
        )
        )
        port map(
        port map(
                clk_i=>clk_i,
                clk_i=>clk_i,
                rst_i=>rst_i,
                rst_i=>rst_i,
 
 
                wbs_cyc_i=>cpu_dbus.cyc,
                wbs_cyc_i=>cpu_dbus.cyc,
                wbs_stb_i=>cpu_dbus.stb,
                wbs_stb_i=>cpu_dbus.stb,
                wbs_we_i=>cpu_dbus.we,
                wbs_we_i=>cpu_dbus.we,
                wbs_sel_i=>cpu_dbus.sel,
                wbs_sel_i=>cpu_dbus.sel,
                wbs_ack_o=>cpu_dbus.ack,
                wbs_ack_o=>cpu_dbus.ack,
                wbs_adr_i=>cpu_dbus.adr,
                wbs_adr_i=>cpu_dbus.adr,
                wbs_dat_i=>cpu_dbus.wdata,
                wbs_dat_i=>cpu_dbus.wdata,
                wbs_dat_o=>cpu_dbus.rdata,
                wbs_dat_o=>cpu_dbus.rdata,
 
 
                wbm_cyc_o=>monitor_dbus.cyc,
                wbm_cyc_o=>monitor_dbus.cyc,
                wbm_stb_o=>monitor_dbus.stb,
                wbm_stb_o=>monitor_dbus.stb,
                wbm_we_o=>monitor_dbus.we,
                wbm_we_o=>monitor_dbus.we,
                wbm_sel_o=>monitor_dbus.sel,
                wbm_sel_o=>monitor_dbus.sel,
                wbm_ack_i=>monitor_dbus.ack,
                wbm_ack_i=>monitor_dbus.ack,
                wbm_adr_o=>monitor_dbus.adr,
                wbm_adr_o=>monitor_dbus.adr,
                wbm_dat_o=>monitor_dbus.wdata,
                wbm_dat_o=>monitor_dbus.wdata,
                wbm_dat_i=>monitor_dbus.rdata
                wbm_dat_i=>monitor_dbus.rdata
        );
        );
 
 
-- Program RAM
-- Program RAM
 
 
program_ram_inst: entity work.program_ram(rtl)
program_ram_inst: entity work.program_ram(rtl)
        generic map(
        generic map(
                THROTTLE=>THROTTLE_IBUS
                THROTTLE=>THROTTLE_IBUS
        )
        )
        port map(
        port map(
                clk_i=>clk_i,
                clk_i=>clk_i,
                rst_i=>rst_i,
                rst_i=>rst_i,
 
 
                wbs_cyc_i=>ram_wb.cyc,
                wbs_cyc_i=>ram_wb.cyc,
                wbs_stb_i=>ram_wb.stb,
                wbs_stb_i=>ram_wb.stb,
                wbs_we_i=>ram_wb.we,
                wbs_we_i=>ram_wb.we,
                wbs_sel_i=>ram_wb.sel,
                wbs_sel_i=>ram_wb.sel,
                wbs_ack_o=>ram_wb.ack,
                wbs_ack_o=>ram_wb.ack,
                wbs_adr_i=>ram_wb.adr,
                wbs_adr_i=>ram_wb.adr,
                wbs_dat_i=>ram_wb.wdata,
                wbs_dat_i=>ram_wb.wdata,
                wbs_dat_o=>ram_wb.rdata,
                wbs_dat_o=>ram_wb.rdata,
 
 
                lli_re_i=>lli_re,
                lli_re_i=>lli_re,
                lli_adr_i=>lli_adr,
                lli_adr_i=>lli_adr,
                lli_dat_o=>lli_dat,
                lli_dat_o=>lli_dat,
                lli_busy_o=>lli_busy
                lli_busy_o=>lli_busy
        );
        );
 
 
-- Timer
-- Timer
 
 
timer_inst: entity work.timer(rtl)
timer_inst: entity work.timer(rtl)
        port map(
        port map(
                clk_i=>clk_i,
                clk_i=>clk_i,
                rst_i=>rst_i,
                rst_i=>rst_i,
 
 
                wbs_cyc_i=>timer_wb.cyc,
                wbs_cyc_i=>timer_wb.cyc,
                wbs_stb_i=>timer_wb.stb,
                wbs_stb_i=>timer_wb.stb,
                wbs_we_i=>timer_wb.we,
                wbs_we_i=>timer_wb.we,
                wbs_sel_i=>timer_wb.sel,
                wbs_sel_i=>timer_wb.sel,
                wbs_ack_o=>timer_wb.ack,
                wbs_ack_o=>timer_wb.ack,
                wbs_adr_i=>timer_wb.adr,
                wbs_adr_i=>timer_wb.adr,
                wbs_dat_i=>timer_wb.wdata,
                wbs_dat_i=>timer_wb.wdata,
                wbs_dat_o=>timer_wb.rdata,
                wbs_dat_o=>timer_wb.rdata,
 
 
                elapsed_o=>timer_elapsed
                elapsed_o=>timer_elapsed
        );
        );
 
 
-- Coprocessor
-- Coprocessor
 
 
coprocessor_inst: entity work.coprocessor(rtl)
coprocessor_inst: entity work.coprocessor(rtl)
        port map(
        port map(
                clk_i=>clk_i,
                clk_i=>clk_i,
                rst_i=>rst_i,
                rst_i=>rst_i,
 
 
                wbs_cyc_i=>coprocessor_wb.cyc,
                wbs_cyc_i=>coprocessor_wb.cyc,
                wbs_stb_i=>coprocessor_wb.stb,
                wbs_stb_i=>coprocessor_wb.stb,
                wbs_we_i=>coprocessor_wb.we,
                wbs_we_i=>coprocessor_wb.we,
                wbs_sel_i=>coprocessor_wb.sel,
                wbs_sel_i=>coprocessor_wb.sel,
                wbs_ack_o=>coprocessor_wb.ack,
                wbs_ack_o=>coprocessor_wb.ack,
                wbs_adr_i=>coprocessor_wb.adr,
                wbs_adr_i=>coprocessor_wb.adr,
                wbs_dat_i=>coprocessor_wb.wdata,
                wbs_dat_i=>coprocessor_wb.wdata,
                wbs_dat_o=>coprocessor_wb.rdata,
                wbs_dat_o=>coprocessor_wb.rdata,
 
 
                irq_o=>coprocessor_irq
                irq_o=>coprocessor_irq
        );
        );
 
 
end architecture;
end architecture;
 
 

powered by: WebSVN 2.1.0

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