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

Subversion Repositories modular_oscilloscope

[/] [modular_oscilloscope/] [trunk/] [hdl/] [epp/] [eppwbn_pkg.vhd] - Diff between revs 19 and 22

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 19 Rev 22
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
--| UNSL - Modular Oscilloscope
--| UNSL - Modular Oscilloscope
--|
--|
--| File: eppwbn_wbn_side.vhd
--| File: eppwbn_wbn_side.vhd
--| Version: 0.2
--| Version: 0.2
--| Tested in: Actel APA300
--| Tested in: Actel APA300
--|-------------------------------------------------------------------------------------------------
--|-------------------------------------------------------------------------------------------------
--| Description:
--| Description:
--|   EPP - Wishbone bridge. 
--|   EPP - Wishbone bridge. 
--|       Package for instantiate all EPP-WBN modules.
--|       Package for instantiate all EPP-WBN modules.
--|-------------------------------------------------------------------------------------------------
--|-------------------------------------------------------------------------------------------------
--| File history:
--| File history:
--|   0.01  | dic-2008 | First release
--|   0.01  | dic-2008 | First release
--|   0.10  | jan-2009 | Added testing memory
--|   0.10  | jan-2009 | Added testing memory
--|   0.20  | mar-2009 | Added extension module
--|   0.20  | mar-2009 | Added extension module
--|   0.30  | apr-2009 | Added pll
 
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
--| Copyright ® 2008, Facundo Aguilera.
--| Copyright ® 2008, Facundo Aguilera.
--|
--|
--| This VHDL design file is an open design; you can redistribute it and/or
--| This VHDL design file is an open design; you can redistribute it and/or
--| modify it and/or implement it after contacting the author.
--| modify it and/or implement it after contacting the author.
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
 
 
-- El módulo PLL solo funcionará con FPGAs de Actel 
 
 
 
 
 
-- Bloque completo
-- Bloque completo
library IEEE;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_1164.ALL;
 
 
package eppwbn_pgk is
package eppwbn_pkg is
        --------------------------------------------------------------------------------------------------
        --------------------------------------------------------------------------------------------------
        -- Componentes  
        -- Componentes  
 
 
  -- Bridge control
  -- Bridge control
  component eppwbn_ctrl is
  component eppwbn_ctrl is
    port(
    port(
      nStrobe:      in  std_logic;
      nStrobe:      in  std_logic;
 
 
      Data:         in  std_logic_vector (7 downto 0);
      Data:         in  std_logic_vector (7 downto 0);
      nAck:         out std_logic;
      nAck:         out std_logic;
      PError:       out std_logic;
      PError:       out std_logic;
      Sel:          out std_logic;
      Sel:          out std_logic;
      nAutoFd:      in  std_logic;
      nAutoFd:      in  std_logic;
      PeriphLogicH: out std_logic;
      PeriphLogicH: out std_logic;
      nInit:        in  std_logic;
      nInit:        in  std_logic;
      nFault:       out std_logic;
      nFault:       out std_logic;
      nSelectIn:    in  std_logic;
      nSelectIn:    in  std_logic;
 
 
      RST_I:        in  std_logic;
      RST_I:        in  std_logic;
      CLK_I:        in  std_logic;
      CLK_I:        in  std_logic;
 
 
      rst_pp:       out std_logic;
      rst_pp:       out std_logic;
      epp_mode:     out std_logic_vector (1 downto 0)
      epp_mode:     out std_logic_vector (1 downto 0)
          );
          );
        end component eppwbn_ctrl;
        end component eppwbn_ctrl;
 
 
  -- Comunication with EPP interface
  -- Comunication with EPP interface
  component eppwbn_epp_side is
  component eppwbn_epp_side is
                port(
                port(
                        epp_mode: in std_logic_vector (1 downto 0);
                        epp_mode: in std_logic_vector (1 downto 0);
 
 
                        ctr_nAck, ctr_PError, ctr_Sel, ctr_nFault:   in std_logic;
                        ctr_nAck, ctr_PError, ctr_Sel, ctr_nFault:   in std_logic;
 
 
                        ctr_nAutoFd, ctr_nSelectIn, ctr_nStrobe:    out std_logic;
                        ctr_nAutoFd, ctr_nSelectIn, ctr_nStrobe:    out std_logic;
 
 
                        wb_Busy:       in   std_logic;
                        wb_Busy:       in   std_logic;
                        wb_nAutoFd:    out  std_logic;
                        wb_nAutoFd:    out  std_logic;
                        wb_nSelectIn:  out  std_logic;
                        wb_nSelectIn:  out  std_logic;
                        wb_nStrobe:    out  std_logic;
                        wb_nStrobe:    out  std_logic;
 
 
                        nAck, PError, Sel, nFault:   out std_logic;
                        nAck, PError, Sel, nFault:   out std_logic;
 
 
                        Busy:         out   std_logic;
                        Busy:         out   std_logic;
                        nAutoFd:      in    std_logic;
                        nAutoFd:      in    std_logic;
                        nSelectIn:    in    std_logic;
                        nSelectIn:    in    std_logic;
                        nStrobe:      in    std_logic
                        nStrobe:      in    std_logic
                );
                );
        end component eppwbn_epp_side;
        end component eppwbn_epp_side;
 
 
        -- Comunication with WB interface
        -- Comunication with WB interface
  component eppwbn_wbn_side is
  component eppwbn_wbn_side is
                port(
                port(
                        inStrobe:     in    std_logic;
                        inStrobe:     in    std_logic;
                        iData:        inout std_logic_vector (7 downto 0);
                        iData:        inout std_logic_vector (7 downto 0);
                        iBusy:        out   std_logic;
                        iBusy:        out   std_logic;
                        inAutoFd:     in    std_logic;
                        inAutoFd:     in    std_logic;
                        inSelectIn:   in    std_logic;
                        inSelectIn:   in    std_logic;
 
 
                        RST_I, CLK_I: in    std_logic;
                        RST_I, CLK_I: in    std_logic;
                        DAT_I:        in    std_logic_vector (7 downto 0);
                        DAT_I:        in    std_logic_vector (7 downto 0);
                        DAT_O:        out   std_logic_vector (7 downto 0);
                        DAT_O:        out   std_logic_vector (7 downto 0);
                        ADR_O:        out   std_logic_vector (7 downto 0);
                        ADR_O:        out   std_logic_vector (7 downto 0);
                        CYC_O, STB_O: out   std_logic;
                        CYC_O, STB_O: out   std_logic;
                        ACK_I:        in    std_logic ;
                        ACK_I:        in    std_logic ;
                        WE_O:         out   std_logic;
                        WE_O:         out   std_logic;
 
 
                        rst_pp:       in std_logic
                        rst_pp:       in std_logic
                );
                );
        end component eppwbn_wbn_side;
        end component eppwbn_wbn_side;
 
 
        -- Testing memory
        -- Testing memory
  component test_memory is
  component test_memory is
    generic ( --USE_RESET   : boolean   := false;  -- use system reset
    generic ( --USE_RESET   : boolean   := false;  -- use system reset
 
 
              --USE_CS      : boolean   := false;  -- use chip select signal
              --USE_CS      : boolean   := false;  -- use chip select signal
 
 
              DEFAULT_OUT : std_logic;  -- Default output
              DEFAULT_OUT : std_logic;  -- Default output
              --OPTION      : integer   := 1;  -- 1: Registered read Address(suitable
              --OPTION      : integer   := 1;  -- 1: Registered read Address(suitable
                                          -- for Altera's FPGAs
                                          -- for Altera's FPGAs
                                          -- 0: non registered read address
                                          -- 0: non registered read address
              ADD_WIDTH   : integer;
              ADD_WIDTH   : integer;
              WIDTH       : integer);
              WIDTH       : integer);
 
 
    port (
    port (
      cs:        in  std_logic;           -- chip select
      cs:        in  std_logic;           -- chip select
      clk:       in  std_logic;           -- write clock
      clk:       in  std_logic;           -- write clock
      reset:     in  std_logic;           -- System Reset
      reset:     in  std_logic;           -- System Reset
      add:       in  std_logic_vector(add_width -1 downto 0);   --  Address
      add:       in  std_logic_vector(add_width -1 downto 0);   --  Address
      Data_In:   in  std_logic_vector(WIDTH -1 downto 0);       -- input data
      Data_In:   in  std_logic_vector(WIDTH -1 downto 0);       -- input data
      Data_Out:  out std_logic_vector(WIDTH -1 downto 0);       -- Output Data
      Data_Out:  out std_logic_vector(WIDTH -1 downto 0);       -- Output Data
      WR:        in  std_logic);          -- Read Write Enable
      WR:        in  std_logic);          -- Read Write Enable
  end component test_memory;
  end component test_memory;
 
 
  -- Epp-wishbone bridge
  -- Epp-wishbone bridge
  component eppwbn is
  component eppwbn is
    port(
    port(
 
      -- TEMPORAL
 
      epp_mode_monitor: out std_logic_vector (1 downto 0);
 
 
      -- Externo
      -- Externo
      nStrobe:      in    std_logic;                                                            -- HostClk/nWrite       
      nStrobe:      in    std_logic;                                                            -- 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
      Sel:          out   std_logic;                                                                                    -- XFlag (Select)
      Sel:          out   std_logic;                                                                                    -- XFlag (Select)
      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
 
 
      --  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 (7 downto 0);
      DAT_I:  in  std_logic_vector (7 downto 0);
      DAT_O:  out std_logic_vector (7 downto 0);
      DAT_O:  out std_logic_vector (7 downto 0);
      ADR_O:  out std_logic_vector (7 downto 0);
      ADR_O:  out std_logic_vector (7 downto 0);
      CYC_O:  out std_logic;
      CYC_O:  out std_logic;
      STB_O:  out std_logic;
      STB_O:  out std_logic;
      ACK_I:  in  std_logic ;
      ACK_I:  in  std_logic ;
      WE_O:   out std_logic
      WE_O:   out std_logic
      );
      );
  end component eppwbn;
  end component eppwbn;
 
 
  -- Testing component
  -- Testing component
  component eppwbn_test_wb_side is
  component eppwbn_test_wb_side is
    port(
    port(
      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 (7 downto 0);
      DAT_I:  in  std_logic_vector (7 downto 0);
      DAT_O:  out std_logic_vector (7 downto 0);
      DAT_O:  out std_logic_vector (7 downto 0);
      ADR_I:  in  std_logic_vector (7 downto 0);
      ADR_I:  in  std_logic_vector (7 downto 0);
      CYC_I:  in  std_logic;
      CYC_I:  in  std_logic;
      STB_I:  in  std_logic;
      STB_I:  in  std_logic;
      ACK_O:  out std_logic ;
      ACK_O:  out std_logic ;
      WE_I:   in  std_logic
      WE_I:   in  std_logic
    );
    );
  end component eppwbn_test_wb_side;
  end component eppwbn_test_wb_side;
 
 
 
 
  -- Width extension
  -- Width extension
  component eppwbn_width_extension is
  component eppwbn_width_extension is
  generic (
  generic (
    TIME_OUT_VALUE: integer;
    TIME_OUT_VALUE: integer;
    TIME_OUT_WIDTH: integer
    TIME_OUT_WIDTH: integer
  );
  );
  port(
  port(
    -- Slave signals
    -- Slave signals
    DAT_I_sl: in  std_logic_vector (7 downto 0);
    DAT_I_sl: in  std_logic_vector (7 downto 0);
    DAT_O_sl: out std_logic_vector (7 downto 0);
    DAT_O_sl: out std_logic_vector (7 downto 0);
    ADR_I_sl: in  std_logic_vector (7 downto 0);
    ADR_I_sl: in  std_logic_vector (7 downto 0);
    CYC_I_sl: in  std_logic;
    CYC_I_sl: in  std_logic;
    STB_I_sl: in  std_logic;
    STB_I_sl: in  std_logic;
    ACK_O_sl: out std_logic ;
    ACK_O_sl: out std_logic ;
    WE_I_sl:  in  std_logic;
    WE_I_sl:  in  std_logic;
 
 
 
 
    --  Master signals
    --  Master signals
    DAT_I_ma: in  std_logic_vector (15 downto 0);
    DAT_I_ma: in  std_logic_vector (15 downto 0);
    DAT_O_ma: out std_logic_vector (15 downto 0);
    DAT_O_ma: out std_logic_vector (15 downto 0);
    ADR_O_ma: out std_logic_vector (7 downto 0);
    ADR_O_ma: out std_logic_vector (7 downto 0);
    CYC_O_ma: out std_logic;
    CYC_O_ma: out std_logic;
    STB_O_ma: out std_logic;
    STB_O_ma: out std_logic;
    ACK_I_ma: in  std_logic ;
    ACK_I_ma: in  std_logic ;
    WE_O_ma:  out std_logic;
    WE_O_ma:  out std_logic;
 
 
    -- Common signals
    -- Common signals
    RST_I: in std_logic;
    RST_I: in std_logic;
    CLK_I: in std_logic
    CLK_I: in std_logic
  );
  );
  end component eppwbn_width_extension;
  end component eppwbn_width_extension;
 
 
  component eppwbn_16bit is
  component eppwbn_16bit is
  port(
  port(
 
    -- TEMPORAL
 
    epp_mode_monitor: out std_logic_vector (1 downto 0);
 
 
        -- Externo
        -- Externo
    nStrobe:      in std_logic;                       --  HostClk/nWrite 
    nStrobe:      in std_logic;                       --  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
        Sel:          out std_logic;                      --  XFlag (Select)
        Sel:          out std_logic;                      --  XFlag (Select)
        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
 
 
 
 
        --  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 (15 downto 0);
        DAT_O: out std_logic_vector (15 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 (7 downto 0);
        CYC_O: out std_logic;
        CYC_O: out std_logic;
        STB_O: out std_logic;
        STB_O: out std_logic;
        ACK_I: in std_logic ;
        ACK_I: in std_logic ;
        WE_O: out std_logic
        WE_O: out std_logic
        );
        );
  end component eppwbn_16bit;
  end component eppwbn_16bit;
 
 
  component eppwbn_16bit_test is
  component eppwbn_16bit_test is
  port(
  port(
    -- al puerto EPP
    -- al puerto EPP
    nStrobe:    in std_logic;                                                                                   -- Nomenclatura IEEE Std. 1284 
    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
    Sel:        out std_logic;                                                                          --  XFlag (Select)
    Sel:        out std_logic;                                                                          --  XFlag (Select)
    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
 
 
    -- a los switches
    -- a los switches
    rst:        in std_logic;
    rst:        in std_logic;
 
 
    -- al clock
    -- al clock
    clk:        in std_logic
    clk:        in std_logic;
 
 
 
    -- monitores
 
    data_monitor:     out std_logic_vector (7 downto 0);
 
    epp_mode_monitor: out std_logic_vector (1 downto 0)
 
 
        );
        );
  end component eppwbn_16bit_test;
  end component eppwbn_16bit_test;
 
 
  component eppwbn_16bit_test_wb_side is
  component eppwbn_16bit_test_wb_side is
  generic (
  generic (
    ADD_WIDTH   : integer ;
    ADD_WIDTH   : integer ;
    WIDTH       : integer
    WIDTH       : integer
    );
    );
  port(
  port(
    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 (WIDTH-1 downto 0);
    DAT_I:  in std_logic_vector (WIDTH-1 downto 0);
    DAT_O:  out std_logic_vector (WIDTH-1 downto 0);
    DAT_O:  out std_logic_vector (WIDTH-1 downto 0);
    ADR_I:  in std_logic_vector (7 downto 0);
    ADR_I:  in std_logic_vector (7 downto 0);
    CYC_I:  in std_logic;
    CYC_I:  in std_logic;
    STB_I:  in std_logic;
    STB_I:  in std_logic;
    ACK_O:  out std_logic ;
    ACK_O:  out std_logic ;
    WE_I:   in std_logic
    WE_I:   in std_logic
        );
        );
  end component eppwbn_16bit_test_wb_side;
  end component eppwbn_16bit_test_wb_side;
 
 
  -- Clock (Actel specific)
  -- Clock (Actel specific)
  component pll is
  component A3PE_pll is
    port(GLB, LOCK : out std_logic;  CLK : in std_logic) ;
      port(POWERDOWN, CLKA : in std_logic;  LOCK, GLA : out
  end component pll;
          std_logic) ;
 
  end component A3PE_pll;
 
 
 
  component dual_port_memory_wb is
 
  port(
 
    -- Puerto A (Higer prioriry)
 
    RST_I_a: in std_logic;
 
    CLK_I_a: in std_logic;
 
    DAT_I_a: in std_logic_vector (15 downto 0);
 
    DAT_O_a: out std_logic_vector (15 downto 0);
 
    ADR_I_a: in std_logic_vector (13 downto 0);
 
    CYC_I_a: in std_logic;
 
    STB_I_a: in std_logic;
 
    ACK_O_a: out std_logic ;
 
    WE_I_a: in std_logic;
 
 
 
 
 
    -- Puerto B (Lower prioriry)
 
    RST_I_b: in std_logic;
 
    CLK_I_b: in std_logic;
 
    DAT_I_b: in std_logic_vector (15 downto 0);
 
    DAT_O_b: out std_logic_vector (15 downto 0);
 
    ADR_I_b: in std_logic_vector (13 downto 0);
 
    CYC_I_b: in std_logic;
 
    STB_I_b: in std_logic;
 
    ACK_O_b: out std_logic ;
 
    WE_I_b: in std_logic
 
  );
 
  end component dual_port_memory_wb;
 
 
 
 
end package eppwbn_pgk;
end package eppwbn_pkg;
 
 
 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.