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

Subversion Repositories igor

[/] [igor/] [trunk/] [processor/] [pl/] [toplevel.vhd] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 atypic
library ieee;
2
use ieee.std_logic_1164.all;
3
use work.leval2_package.all;
4
 
5
entity toplevel is
6
        port(
7
                clk                     : in std_logic;
8
                rst_low         : in std_logic;
9
                fpga_data       : inout std_logic_vector(WORD_BITS - 1 downto 0);
10
                fpga_addr       : out   std_logic_vector(ADDR_BITS - 1 downto 0);
11
                avr_irq         : out std_logic;
12
                avr_rdy         : in  std_logic;
13
                sync                    : in std_logic;
14
                read                    : out std_logic;
15
                write                   : out std_logic;
16
                mem_ce          : out std_logic_vector(1 downto 0);
17
                led                     : out std_logic_vector(7 downto 0);
18
                err                     : in std_logic_vector(1 downto 0));
19
end entity;
20
 
21
 
22
 
23
architecture rtl of toplevel is
24
    signal rst : std_logic;
25
    signal MemReadData : std_logic_vector(WORD_BITS - 1 downto 0);
26
    signal MemWriteData : std_logic_vector(WORD_BITS - 1 downto 0);
27
    signal MemAddress : std_logic_vector(ADDR_BITS - 1 downto 0);
28
    signal IOwait : std_logic;
29
        signal memory_rdy : std_logic;
30
        signal MemCe : std_logic_vector(1 downto 0);
31
        signal MemWrite : std_logic;
32
        signal MemRead : std_logic;
33
begin
34
 
35
    rst <= not rst_low; -- Wonderfull.
36
    fpga_addr <= MemAddress;
37
    IOwait <= memory_rdy and avr_rdy;
38
        mem_ce <= MemCe;
39
        read <= not MemRead;
40
        write <= not MemWrite;
41
 
42
    cpu : entity leval2
43
    port map (
44
                clk => clk,
45
                rst => rst,
46
                data_in => MemReadData,
47
                data_out => MemWriteData,
48
                addr_bus => MemAddress,
49
                iowait => IOwait,
50
                sync => sync,
51
                read => MemRead,
52
                write => MemWrite,
53
                led => led
54
             );
55
 
56
    addr_decoder : entity addr_decoder
57
    port map (
58
            clk => clk,
59
            leval_addr => MemAddress, -- address to decode
60
            avr_irq => avr_irq, -- interrupt for avr
61
            mem_wait => memory_rdy, -- memory not ready 
62
            mem_ce => MemCe,  -- enable memory chip
63
            read_s => MemRead, -- memory read
64
            write_s => MemWrite); -- memory write
65
 
66
    bus_interface : entity bidirbus
67
        port map (
68
            clk => clk,
69
            bidir => fpga_data,
70
            oe => MemWrite,
71
            inp => MemWriteData,
72
            outp => MemReadData);
73
end architecture;
74
 

powered by: WebSVN 2.1.0

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