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

Subversion Repositories modular_oscilloscope

[/] [modular_oscilloscope/] [trunk/] [hdl/] [epp/] [eppwbn.vhd] - Blame information for rev 42

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

Line No. Rev Author Line
1 19 budinero
----------------------------------------------------------------------------------------------------
2
--| Modular Oscilloscope
3
--| UNSL - Argentine
4 10 budinero
--|
5 19 budinero
--| File: eppwbn.vhd
6
--| Version: 0.1
7
--| Tested in: Actel APA300
8 42 budinero
--| Tested in: Actel A3PE1500
9
--|   Board: RVI Prototype Board + LP Data Conversion Daughter Board
10 19 budinero
--|-------------------------------------------------------------------------------------------------
11 10 budinero
--| Description:
12
--|   EPP - Wishbone bridge. 
13 19 budinero
--|   The top module for 8 bit wisbone data bus.
14
--|-------------------------------------------------------------------------------------------------
15 10 budinero
--| File history:
16 14 budinero
--|   0.01  | dic-2008 | First release
17 19 budinero
--|   0.10  | feb-2009 | Working
18
----------------------------------------------------------------------------------------------------
19 42 budinero
--| Copyright © 2008, Facundo Aguilera.
20 14 budinero
--|
21
--| This VHDL design file is an open design; you can redistribute it and/or
22
--| modify it and/or implement it after contacting the author.
23 10 budinero
 
24 19 budinero
--| Wishbone Rev. B.3 compatible
25
----------------------------------------------------------------------------------------------------
26 10 budinero
 
27 19 budinero
 
28
 
29 5 budinero
-- Bloque completo
30
 
31 10 budinero
library IEEE;
32
use IEEE.STD_LOGIC_1164.all;
33 22 budinero
use work.eppwbn_pkg.all;
34 10 budinero
 
35 6 budinero
entity eppwbn is
36 5 budinero
port(
37 22 budinero
 
38
  -- TEMPORAL
39
  epp_mode_monitor: out std_logic_vector (1 downto 0);
40
 
41
 
42
 
43 5 budinero
        -- Externo
44 10 budinero
        nStrobe: in std_logic;                                                                                  -- Nomenclatura IEEE Std. 1284 
45
                                                                                                                                                                                        -- HostClk/nWrite 
46
        Data: inout std_logic_vector (7 downto 0);       -- AD8..1 (Data1..Data8)
47
        nAck: out std_logic;                                                                                            --  PtrClk/PeriphClk/Intr
48
        busy: out std_logic;                                                                                            --  PtrBusy/PeriphAck/nWait
49
        PError: out std_logic;                                                                                  --  AckData/nAckReverse
50
        Sel: out std_logic;                                                                                             --  XFlag (Select)
51
        nAutoFd: in std_logic;                                                                                  --  HostBusy/HostAck/nDStrb
52
        PeriphLogicH: out std_logic;                                                            --  (Periph Logic High)
53
        nInit: in std_logic;                                                                                            --  nReverseRequest
54
        nFault: out std_logic;                                                                                  --  nDataAvail/nPeriphRequest
55
        nSelectIn: in std_logic;                                                                                --  1284 Active/nAStrb
56 19 budinero
 
57 10 budinero
 
58 5 budinero
        --  Interno
59
        RST_I: in std_logic;
60
        CLK_I: in std_logic;
61 10 budinero
        DAT_I: in std_logic_vector (7 downto 0);
62
        DAT_O: out std_logic_vector (7 downto 0);
63
        ADR_O: out std_logic_vector (7 downto 0);
64
        CYC_O: out std_logic;
65
        STB_O: out std_logic;
66
        ACK_I: in std_logic ;
67 19 budinero
        WE_O: out std_logic
68 5 budinero
        );
69
end eppwbn;
70
 
71
 
72 10 budinero
architecture structural of eppwbn is
73
  ------------------------------------------------------------------------------
74
        -- Señales
75
        signal s_epp_mode: std_logic_vector (1 downto 0);
76
  signal s_rst_pp: std_logic;
77 9 budinero
 
78 10 budinero
  signal s_wb_Busy:       std_logic;
79
  signal s_wb_nAutoFd:    std_logic;
80
  signal s_wb_nSelectIn:  std_logic;
81
  signal s_wb_nStrobe:    std_logic;
82
 
83
  signal s_ctr_nAck:   std_logic;
84
  signal s_ctr_PError: std_logic;
85
  signal s_ctr_Sel:    std_logic;
86
  signal s_ctr_nFault: std_logic;
87 9 budinero
 
88 10 budinero
  signal s_ctr_nAutoFd:    std_logic;
89
  signal s_ctr_nSelectIn:  std_logic;
90
  signal s_ctr_nStrobe:    std_logic;
91 9 budinero
 
92
 
93
 
94 10 budinero
 
95 9 budinero
 
96 6 budinero
begin
97 22 budinero
 
98
  -- TEMPORAL
99
  epp_mode_monitor <= s_epp_mode;
100
 
101
 
102 10 budinero
        -- Conexión del módulo de control
103
        U1:  eppwbn_ctrl
104
                port map (
105
                        nStrobe => s_ctr_nStrobe,
106
                        Data => Data,
107
                        nAck => s_ctr_nAck,
108
                        PError => s_ctr_PError,
109
                        Sel => s_ctr_Sel,
110
                        nAutoFd => s_ctr_nAutoFd,
111
                        PeriphLogicH => PeriphLogicH,
112
                        nInit => nInit,
113
                        nFault => s_ctr_nFault,
114
                        nSelectIn => s_ctr_nSelectIn,
115
 
116
                        RST_I => RST_I,
117
                        CLK_I => CLK_I,
118
 
119
                        rst_pp => s_rst_pp,
120
                        epp_mode => s_epp_mode
121
        );
122 6 budinero
 
123 14 budinero
        -- Conexión de módulo multiplexor
124 10 budinero
        U2:  eppwbn_epp_side
125
                port map (
126
                        epp_mode => s_epp_mode,
127
 
128
                        ctr_nAck => s_ctr_nAck,
129
                        ctr_PError => s_ctr_PError,
130
                        ctr_Sel => s_ctr_Sel,
131
                        ctr_nFault => s_ctr_nFault,
132
 
133
                        ctr_nAutoFd => s_ctr_nAutoFd,
134
                        ctr_nSelectIn => s_ctr_nSelectIn,
135
                        ctr_nStrobe=> s_ctr_nStrobe,
136
 
137
                        wb_Busy => s_wb_Busy,
138
                        wb_nAutoFd => s_wb_nAutoFd,
139
                        wb_nSelectIn => s_wb_nSelectIn,
140
                        wb_nStrobe => s_wb_nStrobe,
141
 
142
                        nAck => nAck,
143
                        PError => PError,
144
                        Sel => Sel,
145
                        nFault => nFault,
146
 
147
                        Busy => Busy,
148
                        nAutoFd => nAutoFd,
149
                        nSelectIn => nSelectIn,
150
                        nStrobe => nStrobe
151
        );
152
 
153
        -- Conexión del módulo de comunicación con interfaz wishbone
154
        U3:  eppwbn_wbn_side
155
                port map(
156
                        inStrobe => s_wb_nStrobe,
157
                        iData => Data,
158
                        iBusy => s_wb_Busy,
159
                        inAutoFd => s_wb_nAutoFd,
160
                        inSelectIn => s_wb_nSelectIn,
161
 
162
                        RST_I => RST_I,
163
                        CLK_I => CLK_I,
164
                        DAT_I => DAT_I,
165
                        DAT_O => DAT_O,
166
                        ADR_O => ADR_O,
167
                        CYC_O => CYC_O,
168
                        STB_O => STB_O,
169
                        ACK_I => ACK_I,
170
                        WE_O => WE_O,
171
 
172
                        rst_pp => s_rst_pp
173
                );
174
end architecture;

powered by: WebSVN 2.1.0

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