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

Subversion Repositories lxp32

[/] [lxp32/] [trunk/] [rtl/] [lxp32u_top.vhd] - Blame information for rev 6

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ring0_mipt
---------------------------------------------------------------------
2
-- LXP32U CPU top-level module (U-series, without instruction cache)
3
--
4
-- Part of the LXP32 CPU
5
--
6
-- Copyright (c) 2016 by Alex I. Kuznetsov
7
--
8
-- This version uses a Low Latency Interface for the instruction bus
9
-- (IBUS). It is designed for low-latency slaves such as on-chip
10
-- RAM blocks.
11
--
12
-- Parameters:
13
--     DBUS_RMW:           Use RMW cycle instead of SEL_O() signal
14
--                         for byte-granular access to data bus
15
--     DIVIDER_EN:         enable divider
16
--     MUL_ARCH:           multiplier architecture ("dsp", "opt"
17
--                         or "seq")
18
--     START_ADDR:         address in program memory where execution
19
--                         starts
20
---------------------------------------------------------------------
21
 
22
library ieee;
23
use ieee.std_logic_1164.all;
24
 
25
entity lxp32u_top is
26
        generic(
27
                DBUS_RMW: boolean:=false;
28
                DIVIDER_EN: boolean:=true;
29
                MUL_ARCH: string:="dsp";
30 6 ring0_mipt
                START_ADDR: std_logic_vector(31 downto 0):=(others=>'0')
31 2 ring0_mipt
        );
32
        port(
33
                clk_i: in std_logic;
34
                rst_i: in std_logic;
35
 
36
                lli_re_o: out std_logic;
37
                lli_adr_o: out std_logic_vector(29 downto 0);
38
                lli_dat_i: in std_logic_vector(31 downto 0);
39
                lli_busy_i: in std_logic;
40
 
41
                dbus_cyc_o: out std_logic;
42
                dbus_stb_o: out std_logic;
43
                dbus_we_o: out std_logic;
44
                dbus_sel_o: out std_logic_vector(3 downto 0);
45
                dbus_ack_i: in std_logic;
46
                dbus_adr_o: out std_logic_vector(31 downto 2);
47
                dbus_dat_o: out std_logic_vector(31 downto 0);
48
                dbus_dat_i: in std_logic_vector(31 downto 0);
49
 
50
                irq_i: in std_logic_vector(7 downto 0)
51
        );
52
end entity;
53
 
54
architecture rtl of lxp32u_top is
55
 
56
begin
57
 
58
cpu_inst: entity work.lxp32_cpu(rtl)
59
        generic map(
60
                DBUS_RMW=>DBUS_RMW,
61
                DIVIDER_EN=>DIVIDER_EN,
62
                MUL_ARCH=>MUL_ARCH,
63
                START_ADDR=>START_ADDR
64
        )
65
        port map(
66
                clk_i=>clk_i,
67
                rst_i=>rst_i,
68
 
69
                lli_re_o=>lli_re_o,
70
                lli_adr_o=>lli_adr_o,
71
                lli_dat_i=>lli_dat_i,
72
                lli_busy_i=>lli_busy_i,
73
 
74
                dbus_cyc_o=>dbus_cyc_o,
75
                dbus_stb_o=>dbus_stb_o,
76
                dbus_we_o=>dbus_we_o,
77
                dbus_sel_o=>dbus_sel_o,
78
                dbus_ack_i=>dbus_ack_i,
79
                dbus_adr_o=>dbus_adr_o,
80
                dbus_dat_o=>dbus_dat_o,
81
                dbus_dat_i=>dbus_dat_i,
82
 
83
                irq_i=>irq_i
84
        );
85
 
86
end architecture;

powered by: WebSVN 2.1.0

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