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

Subversion Repositories modular_oscilloscope

[/] [modular_oscilloscope/] [trunk/] [hdl/] [epp/] [eppwbn.vhd] - Diff between revs 9 and 10

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 9 Rev 10
Line 1... Line 1...
-- eppwbn.vhd
--|-----------------------------------------------------------------------------
 
--| UNSL - Modular Oscilloscope
 
--|
 
--| File: eppwbn_wbn_side.vhd
 
--| Version: 0.10
 
--| Targeted device: Actel A3PE1500 
 
--|-----------------------------------------------------------------------------
 
--| Description:
 
--|   EPP - Wishbone bridge. 
 
--|       This instantiate all the other modules. The TOP
 
--------------------------------------------------------------------------------
 
--| File history:
 
--|   0.01  | dic-2008 | First testing release
 
--------------------------------------------------------------------------------
 
--| Copyright Facundo Aguilera 2008
 
--| GPL
 
 
 
 
-- Bloque completo
-- Bloque completo
 
 
 
library IEEE;
 
use IEEE.STD_LOGIC_1164.all;
 
use work.eppwbn_pgk.all;
 
 
entity eppwbn is
entity eppwbn is
port(
port(
        -- Externo
        -- Externo
        nStrobe: in std_logic;                                          -- Nomenclatura IEEE Std. 1284 ECP/EPP (Compatibiliy)
        nStrobe: in std_logic;                                                                                  -- Nomenclatura IEEE Std. 1284 
                                                                                                -- HostClk/nWrite 
                                                                                                -- HostClk/nWrite 
        Data: inout std_logic_vector (7 downto 0);       --AD8..1 (Data1..Data8)
        Data: inout std_logic_vector (7 downto 0);       --AD8..1 (Data1..Data8)
        nAck: out std_logic;                                            --  PtrClk/PeriphClk/Intr
        nAck: out std_logic;                                            --  PtrClk/PeriphClk/Intr
        busy: out std_logic;                                            --  PtrBusy/PeriphAck/nWait
        busy: out std_logic;                                            --  PtrBusy/PeriphAck/nWait
        PError: out std_logic;                                          --  AckData/nAckReverse
        PError: out std_logic;                                          --  AckData/nAckReverse
Line 14... Line 35...
        nAutoFd: in std_logic;                                          --  HostBusy/HostAck/nDStrb
        nAutoFd: in std_logic;                                          --  HostBusy/HostAck/nDStrb
        PeriphLogicH: out std_logic;                            --  (Periph Logic High)
        PeriphLogicH: out std_logic;                            --  (Periph Logic High)
        nInit: in std_logic;                                            --  nReverseRequest
        nInit: in std_logic;                                            --  nReverseRequest
        nFault: out std_logic;                                          --  nDataAvail/nPeriphRequest
        nFault: out std_logic;                                          --  nDataAvail/nPeriphRequest
        nSelectIn: in std_logic;                                        --  1284 Active/nAStrb
        nSelectIn: in std_logic;                                        --  1284 Active/nAStrb
        HostLogicH: in std_logic;                                       --  (Host Logic High)
 
 
 
        --  Interno
        --  Interno
        RST_I: in std_logic;
        RST_I: in std_logic;
        CLK_I: in std_logic;
        CLK_I: in std_logic;
        DAT_I: in std_logic_vector (15 downto 0);
        DAT_I: in std_logic_vector (7 downto 0);
        ADR_I: in std_logic_vector (15 downto 0);
        DAT_O: out std_logic_vector (7 downto 0);
        DAT_O: out std_logic_vector (15 downto 0);
        ADR_O: out std_logic_vector (7 downto 0);
        ADR_O: out std_logic_vector (15 downto 0);
        CYC_O: out std_logic;
        CYC_I: in std_logic;
        STB_O: out std_logic;
        ACK_O: out std_logic;
        ACK_I: in std_logic ;
        WE_I: in std_logic;
        WE_O: out std_logic
        );
        );
end eppwbn;
end eppwbn;
 
 
 
 
architecture wbn16epp8 of eppwbn
architecture structural of eppwbn is
 
  ------------------------------------------------------------------------------
  entity eppwbn_ctrl is
        -- Señales
    port(
        signal s_epp_mode: std_logic_vector (1 downto 0);
      nStrobe: in std_logic;                  -- Nomenclatura IEEE Std. 1284-2000, 
  signal s_rst_pp: std_logic;
      Data: in std_logic_vector (7 downto 0); -- AD8..1/AD8..1 (Data1..Data8)
 
      nAck: out std_logic;                    -- PtrClk/PeriphClk/Intr
  signal s_wb_Busy:       std_logic;
      PError: out std_logic;                  -- AckData/nAckReverse
  signal s_wb_nAutoFd:    std_logic;
      Sel: out std_logic;                     -- XFlag (Select). Select no puede usarse
  signal s_wb_nSelectIn:  std_logic;
      nAutoFd: in std_logic;                  -- HostBusy/HostAck/nDStrb
  signal s_wb_nStrobe:    std_logic;
      PeriphLogicH: out std_logic;            -- (Periph Logic High)
 
      nInit: in std_logic;                    -- nReverseRequest
  signal s_ctr_nAck:   std_logic;
      nFault: out std_logic;                  -- nDataAvail/nPeriphRequest
  signal s_ctr_PError: std_logic;
      nSelectIn: in std_logic;                -- 1284 Active/nAStrb
  signal s_ctr_Sel:    std_logic;
 
  signal s_ctr_nFault: std_logic;
      RST_I: in std_logic;
 
      CLK_I: in std_logic;
  signal s_ctr_nAutoFd:    std_logic;
 
  signal s_ctr_nSelectIn:  std_logic;
 
  signal s_ctr_nStrobe:    std_logic;
 
 
      rst_pp: out std_logic;  -- generador de reset desde la interfaz del puerto paralelo
 
      epp_mode: out std_logic_vector (1 downto 0) -- indicador de modo de comunicaci?n epp
 
    );
 
  end entity eppwbn_ctrl;
 
 
 
  entity eppwbn_epp_side is
 
    port(
 
      epp_mode: in std_logic_vector (1 downto 0);-- indicador de modo de comunicaci?n epp
 
 
 
      ctr_nAck:   in std_logic;                  -- PtrClk/PeriphClk/Intr
 
      ctr_PError: in std_logic;                  -- AckData/nAckReverse
 
      ctr_Sel:    in std_logic;                  -- XFlag (Select). Select no puede usarse
 
      ctr_nFault: in std_logic;                  -- nDataAvail/nPeriphRequest
 
 
 
      ctr_nAutoFd:    out std_logic;               -- HostBusy/HostAck/nDStrb
 
      ctr_nSelectIn:  out std_logic;               -- 1284 Active/nAStrb
 
      ctr_nStrobe:    out std_logic;               -- HostClk/nWrite
 
 
 
      wb_Busy:       in std_logic;              -- PtrBusy/PeriphAck/nWait
 
      wb_nAutoFd:    out std_logic;               -- HostBusy/HostAck/nDStrb
 
      wb_nSelectIn:  out std_logic;               -- 1284 Active/nAStrb
 
      wb_nStrobe:    out std_logic;               -- HostClk/nWrite
 
 
 
      nAck:   out std_logic;                  -- PtrClk/PeriphClk/Intr
 
      PError: out std_logic;                  -- AckData/nAckReverse
 
      Sel:    out std_logic;                  -- XFlag (Select). Select no puede usarse
 
      nFault: out std_logic;                  -- nDataAvail/nPeriphRequest
 
 
 
      Busy:      out std_logic;                 -- PtrBusy/PeriphAck/nWait
begin
      nAutoFd:   in std_logic;                  -- HostBusy/HostAck/nDStrb
 
      nSelectIn: in std_logic;                  -- 1284 Active/nAStrb
 
      nStrobe:   in std_logic                  -- HostClk/nWrite
 
    );
 
  end entity eppwbn_epp_side;
 
 
 
  entity eppwbn_wbn_side is
        -- Conexión del módulo de control
    port(
        U1:  eppwbn_ctrl
      inStrobe: in std_logic;                                                                           -- HostClk/nWrite 
                port map (
      iData: inout std_logic_vector (7 downto 0); -- AD8..1/AD8..1 (Data1..Data8)
                        nStrobe => s_ctr_nStrobe,
      iBusy: out std_logic;                                                                                     -- PtrBusy/PeriphAck/nWait
                        Data => Data,
      inAutoFd: in std_logic;                                                                           -- HostBusy/HostAck/nDStrb
                        nAck => s_ctr_nAck,
      inSelectIn: in std_logic;                                                                         -- 1284 Active/nAStrb
                        PError => s_ctr_PError,
 
                        Sel => s_ctr_Sel,
 
                        nAutoFd => s_ctr_nAutoFd,
 
                        PeriphLogicH => PeriphLogicH,
 
                        nInit => nInit,
 
                        nFault => s_ctr_nFault,
 
                        nSelectIn => s_ctr_nSelectIn,
 
 
      RST_I: in std_logic;
                        RST_I => RST_I,
      CLK_I: in std_logic;
                        CLK_I => CLK_I,
      DAT_I: in std_logic_vector (7 downto 0);
 
      DAT_O: out std_logic_vector (7 downto 0);
 
      ADR_O: out std_logic_vector (7 downto 0);
 
      CYC_O: out std_logic;
 
      STB_O: out std_logic;
 
      ACK_I: in std_logic ;
 
      WE_O: out std_logic;
 
 
 
      rst_pp: in std_logic  -- reset desde la interfaz del puerto paralelo
                        rst_pp => s_rst_pp,
 
                        epp_mode => s_epp_mode
  );
  );
 
 
 
                        -- Conexión de módulo multiplexor
 
        U2:  eppwbn_epp_side
 
                port map (
 
                        epp_mode => s_epp_mode,
 
 
 
                        ctr_nAck => s_ctr_nAck,
 
                        ctr_PError => s_ctr_PError,
 
                        ctr_Sel => s_ctr_Sel,
 
                        ctr_nFault => s_ctr_nFault,
 
 
 
                        ctr_nAutoFd => s_ctr_nAutoFd,
 
                        ctr_nSelectIn => s_ctr_nSelectIn,
 
                        ctr_nStrobe=> s_ctr_nStrobe,
 
 
 
                        wb_Busy => s_wb_Busy,
 
                        wb_nAutoFd => s_wb_nAutoFd,
 
                        wb_nSelectIn => s_wb_nSelectIn,
 
                        wb_nStrobe => s_wb_nStrobe,
 
 
 
                        nAck => nAck,
 
                        PError => PError,
 
                        Sel => Sel,
 
                        nFault => nFault,
 
 
 
                        Busy => Busy,
 
                        nAutoFd => nAutoFd,
 
                        nSelectIn => nSelectIn,
 
                        nStrobe => nStrobe
 
        );
 
 
begin
        -- Conexión del módulo de comunicación con interfaz wishbone
 
        U3:  eppwbn_wbn_side
 
                port map(
 
                        inStrobe => s_wb_nStrobe,
 
                        iData => Data,
 
                        iBusy => s_wb_Busy,
 
                        inAutoFd => s_wb_nAutoFd,
 
                        inSelectIn => s_wb_nSelectIn,
 
 
 
                        RST_I => RST_I,
 
                        CLK_I => CLK_I,
 
                        DAT_I => DAT_I,
 
                        DAT_O => DAT_O,
 
                        ADR_O => ADR_O,
 
                        CYC_O => CYC_O,
 
                        STB_O => STB_O,
 
                        ACK_I => ACK_I,
 
                        WE_O => WE_O,
 
 
 No newline at end of file
 No newline at end of file
 
                        rst_pp => s_rst_pp
 
                );
 
end architecture;
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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