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

Subversion Repositories modular_oscilloscope

[/] [modular_oscilloscope/] [trunk/] [hdl/] [epp/] [eppwbn_16bit_test.vhd] - Blame information for rev 22

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

Line No. Rev Author Line
1 22 budinero
-------------------------------------------------------------------------------------------------100
2
--| Modular Oscilloscope
3
--| UNSL - Argentine
4
--|
5
--| File: eppwbn_test.vhd
6
--| Version: 0.60
7
--| Tested in: Actel APA300, Actel A3PE1500
8
--|-------------------------------------------------------------------------------------------------
9
--| Description:
10
--|   EPP - Wishbone bridge. 
11
--|       This file is only for test purposes
12
--|   
13
--|-------------------------------------------------------------------------------------------------
14
--| File history:
15
--|   0.10   | jan-2008 | First release
16
--|   0.50   | jun-2009 | Sample testing signals
17
--|   0.60   | jun-2009 | Sample testing instance for a dual port memory
18
----------------------------------------------------------------------------------------------------
19
--| Copyright ® 2008, Facundo Aguilera.
20
--|
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
----------------------------------------------------------------------------------------------------
24
 
25
 
26
 
27
 
28
library IEEE;
29
use IEEE.STD_LOGIC_1164.ALL;
30
use work.eppwbn_pkg.all;
31
 
32
 
33
 
34
entity eppwbn_16bit_test is
35
  generic(
36
    -- Memoria hecha con registros puede causar módulos demasiado grandes.
37
    -- Limitar el tamaño reduciéndo el tamaño del bus de direcciones
38
    ADD_WIDTH: integer := 4 -- máximo: 8
39
    );
40
  port(
41
    -- al puerto EPP
42
    nStrobe:    in std_logic;                                                                                   -- Nomenclatura IEEE Std. 1284 
43
                                                -- HostClk/nWrite 
44
    Data:       inout std_logic_vector (7 downto 0);     -- AD8..1 (Data1..Data8)
45
    nAck:       out std_logic;                                                                                          --  PtrClk/PeriphClk/Intr
46
    busy:       out std_logic;                                                                                          --  PtrBusy/PeriphAck/nWait
47
    PError:     out std_logic;                                                                          --  AckData/nAckReverse
48
    Sel:        out std_logic;                                                                          --  XFlag (Select)
49
    nAutoFd:    in std_logic;                                                                           --  HostBusy/HostAck/nDStrb
50
    PeriphLogicH: out std_logic;                                                                --  (Periph Logic High)
51
    nInit:      in std_logic;                                                                           --  nReverseRequest
52
    nFault:     out std_logic;                                                                          --  nDataAvail/nPeriphRequest
53
    nSelectIn:  in std_logic;                                                                           --  1284 Active/nAStrb
54
 
55
    -- a los switches
56
    rst:        in std_logic;   -- ATENCIÓN: entrada rst activo por bajo en instancia
57
 
58
    -- al clock
59
    clk:        in std_logic;
60
 
61
 
62
 
63
    -- monitores
64
    display_cat:      out std_logic;
65
    data_monitor:     out std_logic_vector (3 downto 0);
66
    select_nibble:    in std_logic; -- Select data nibble. High: high nibble, low: ...
67
    epp_mode_monitor: out std_logic_vector (1 downto 0);
68
    nSelectIn_monitor:out std_logic;
69
    nAutoFd_monitor:  out std_logic;
70
    nStrobe_monitor:  out std_logic
71
 
72
 
73
 
74
        );
75
end eppwbn_16bit_test;
76
 
77
architecture eppwbn_test_arch0 of eppwbn_16bit_test is
78
 
79
  signal DAT_I_master:  std_logic_vector (15 downto 0);
80
  signal DAT_O_master:  std_logic_vector (15 downto 0);
81
  signal ADR_O_master:  std_logic_vector (7 downto 0);
82
  signal CYC_O_master:  std_logic;
83
  signal STB_O_master:  std_logic;
84
  signal ACK_I_master:  std_logic;
85
  signal WE_O_master:   std_logic;
86
  signal clk_pll:       std_logic;
87
 
88
  signal gnd:           std_logic;
89
  signal s_not_rst:       std_logic;
90
  signal s_not_epp_mode: std_logic_vector (1 downto 0);
91
  signal s_to_mem_ADR_I_a: std_logic_vector(13 downto 0);
92
 
93
begin
94
 
95
  gnd <= '0';
96
  s_not_rst <= not(rst);
97
  data_monitor <= Data(7 downto 4) when select_nibble = '1' else
98
                  Data(3 downto 0);
99
  display_cat <= '0';
100
  epp_mode_monitor <= not(s_not_epp_mode);
101
 
102
 
103
  nSelectIn_monitor <= nSelectIn;
104
  nAutoFd_monitor <= nAutoFd;
105
  nStrobe_monitor <= nStrobe;
106
 
107
 
108
 
109
 
110
--   SL_MEM1: eppwbn_16bit_test_wb_side 
111
--   generic map(
112
--     ADD_WIDTH   => ADD_WIDTH ,
113
--     WIDTH      => 16
114
--     )
115
--   port map(
116
--       RST_I => s_not_rst,
117
--       CLK_I => clk_pll,
118
--       DAT_I => DAT_O_master,
119
--       DAT_O => DAT_I_master,
120
--       ADR_I => ADR_O_master(ADD_WIDTH - 1 downto 0),
121
--       CYC_I => CYC_O_master,
122
--       STB_I => STB_O_master,
123
--       ACK_O => ACK_I_master,
124
--       WE_I  => WE_O_master
125
--     );
126
 
127
 
128
  s_to_mem_ADR_I_a <= (13 downto 8 => '0') & ADR_O_master;
129
  SL_MEM2: dual_port_memory_wb port map(
130
    -- Puerto A 
131
    RST_I_a => s_not_rst,
132
    CLK_I_a => clk_pll,
133
    DAT_I_a => DAT_O_master,
134
    DAT_O_a => DAT_I_master,
135
    ADR_I_a => s_to_mem_ADR_I_a,
136
    CYC_I_a => CYC_O_master,
137
    STB_I_a => STB_O_master,
138
    ACK_O_a => ACK_I_master,
139
    WE_I_a  => WE_O_master,
140
 
141
 
142
    -- Puerto B 
143
    RST_I_b => s_not_rst,
144
    CLK_I_b => '0',
145
    DAT_I_b => (others => '0'),
146
 
147
    ADR_I_b => (others => '0'),
148
    CYC_I_b => '0',
149
    STB_I_b => '0',
150
 
151
    WE_I_b  => '0'
152
  );
153
 
154
 
155
 
156
  MA_EPP: eppwbn_16bit port map(
157
      -- Externo
158
      nStrobe   => nStrobe,
159
      Data      => Data,
160
      nAck      => nAck,
161
      busy      => busy,
162
      PError    => PError,
163
      Sel       => Sel,
164
      nAutoFd   => nAutoFd,
165
      PeriphLogicH => PeriphLogicH,
166
      nInit     => nInit,
167
      nFault    => nFault,
168
      nSelectIn => nSelectIn,
169
      --  Interno
170
      RST_I => s_not_rst,
171
      CLK_I => clk_pll,
172
      DAT_I => DAT_I_master,
173
      DAT_O => DAT_O_master,
174
      ADR_O => ADR_O_master,
175
      CYC_O => CYC_O_master,
176
      STB_O => STB_O_master,
177
      ACK_I => ACK_I_master,
178
      WE_O  => WE_O_master,
179
 
180
      -- MONITORES
181
      -- TEMPORAL
182
      epp_mode_monitor => s_not_epp_mode
183
    );
184
 
185
 
186
 
187
  PLL_0: component A3PE_pll
188
  port map(
189
    POWERDOWN       =>  '0',
190
    CLKA            =>  clk,
191
    LOCK            =>  open,
192
    --SDIN            =>  '0',
193
    --SCLK            =>  '0',
194
    --SSHIFT          =>  '0',
195
    --SUPDATE         =>  '0',
196
    --MODE            =>  '0',
197
    GLA             =>  clk_pll
198
    --SDOUT           =>  open
199
  );
200
 
201
 
202
 
203 19 budinero
end architecture eppwbn_test_arch0;

powered by: WebSVN 2.1.0

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