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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.7/] [rtl/] [vlib/] [rlink/] [rlink_sp1c.vhd] - Diff between revs 29 and 30

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

Rev 29 Rev 30
Line 1... Line 1...
-- $Id: rlink_sp1c.vhd 641 2015-02-01 22:12:15Z mueller $
-- $Id: rlink_sp1c.vhd 672 2015-05-02 21:58:28Z mueller $
--
--
-- Copyright 2011-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
-- Copyright 2011-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
--
-- This program is free software; you may redistribute and/or modify it under
-- This program is free software; you may redistribute and/or modify it under
-- the terms of the GNU General Public License as published by the Free
-- the terms of the GNU General Public License as published by the Free
-- Software Foundation, either version 2, or at your option any later version.
-- Software Foundation, either version 2, or at your option any later version.
--
--
Line 15... Line 15...
-- Module Name:    rlink_sp1c - syn
-- Module Name:    rlink_sp1c - syn
-- Description:    rlink_core8 + serport_1clock combo
-- Description:    rlink_core8 + serport_1clock combo
--
--
-- Dependencies:   rlink_core8
-- Dependencies:   rlink_core8
--                 serport/serport_1clock
--                 serport/serport_1clock
 
--                 rbus/rbd_rbmon
 
--                 rbus/rb_sres_or_2
--
--
-- Test bench:     -
-- Test bench:     -
--
--
-- Target Devices: generic
-- Target Devices: generic
-- Tool versions:  ise 13.1-14.7; viv 2014.4; ghdl 0.29-0.31
-- Tool versions:  ise 13.1-14.7; viv 2014.4; ghdl 0.29-0.31
--
--
-- Synthesized (xst):
-- Synthesized (xst):
-- Date         Rev  ise         Target      flop lutl lutm slic t peri ifa ofa
-- Date         Rev  ise         Target      flop lutl lutm slic t peri ifa ofa
 
-- 2015-05-02   672 14.7  131013 xc6slx16-2   495  671   56  255 s  8.8   -   -
-- 2011-12-09   437 13.1    O40d xc3s1000-4   337  733   64  469 s  9.8   -   -
-- 2011-12-09   437 13.1    O40d xc3s1000-4   337  733   64  469 s  9.8   -   -
--
--
-- Revision History: 
-- Revision History: 
-- Date         Rev Version  Comment
-- Date         Rev Version  Comment
 
-- 2015-05-02   672   4.2    add rbd_rbmon (optional via generics)
 
-- 2015-04-11   666   4.1    rename ENAESC->ESCFILL, rearrange XON handling
-- 2014-08-28   588   4.0    use rlink v4 iface, 4 bit STAT
-- 2014-08-28   588   4.0    use rlink v4 iface, 4 bit STAT
-- 2011-12-09   437   1.0    Initial version 
-- 2011-12-09   437   1.0    Initial version 
------------------------------------------------------------------------------
------------------------------------------------------------------------------
 
 
library ieee;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.numeric_std.all;
 
 
use work.slvtypes.all;
use work.slvtypes.all;
use work.rblib.all;
use work.rblib.all;
 
use work.rbdlib.all;
use work.rlinklib.all;
use work.rlinklib.all;
use work.serportlib.all;
use work.serportlib.all;
 
 
entity rlink_sp1c is                    -- rlink_core8+serport_1clock combo
entity rlink_sp1c is                    -- rlink_core8+serport_1clock combo
  generic (
  generic (
Line 51... Line 57...
    OFAWIDTH : natural :=  5;           -- output fifo address width (0=none)
    OFAWIDTH : natural :=  5;           -- output fifo address width (0=none)
    ENAPIN_RLMON : integer := -1;       -- SB_CNTL for rlmon  (-1=none)
    ENAPIN_RLMON : integer := -1;       -- SB_CNTL for rlmon  (-1=none)
    ENAPIN_RLBMON: integer := -1;       -- SB_CNTL for rlbmon (-1=none)
    ENAPIN_RLBMON: integer := -1;       -- SB_CNTL for rlbmon (-1=none)
    ENAPIN_RBMON : integer := -1;       -- SB_CNTL for rbmon  (-1=none)
    ENAPIN_RBMON : integer := -1;       -- SB_CNTL for rbmon  (-1=none)
    CDWIDTH : positive := 13;           -- clk divider width
    CDWIDTH : positive := 13;           -- clk divider width
    CDINIT : natural   := 15);          -- clk divider initial/reset setting
    CDINIT : natural   := 15;           -- clk divider initial/reset setting
 
    RBMON_AWIDTH : natural := 0;        -- rbmon: buffer size, (0=none)
 
    RBMON_RBADDR : slv16 := slv(to_unsigned(16#ffe8#,16))); -- rbmon: base addr
  port (
  port (
    CLK  : in slbit;                    -- clock
    CLK  : in slbit;                    -- clock
    CE_USEC : in slbit;                 -- 1 usec clock enable
    CE_USEC : in slbit;                 -- 1 usec clock enable
    CE_MSEC : in slbit;                 -- 1 msec clock enable
    CE_MSEC : in slbit;                 -- 1 msec clock enable
    CE_INT : in slbit := '0';           -- rri ato time unit clock enable
    CE_INT : in slbit := '0';           -- rri ato time unit clock enable
    RESET  : in slbit;                  -- reset
    RESET  : in slbit;                  -- reset
    ENAXON : in slbit;                  -- enable xon/xoff handling
    ENAXON : in slbit;                  -- enable xon/xoff handling
    ENAESC : in slbit;                  -- enable xon/xoff escaping
    ESCFILL : in slbit;                 -- enable fill escaping
    RXSD : in slbit;                    -- receive serial data      (board view)
    RXSD : in slbit;                    -- receive serial data      (board view)
    TXSD : out slbit;                   -- transmit serial data     (board view)
    TXSD : out slbit;                   -- transmit serial data     (board view)
    CTS_N : in slbit := '0';            -- clear to send   (act.low, board view)
    CTS_N : in slbit := '0';            -- clear to send   (act.low, board view)
    RTS_N : out slbit;                  -- request to send (act.low, board view)
    RTS_N : out slbit;                  -- request to send (act.low, board view)
    RB_MREQ : out rb_mreq_type;         -- rbus: request
    RB_MREQ : out rb_mreq_type;         -- rbus: request
Line 83... Line 91...
  signal RLB_BUSY : slbit := '0';
  signal RLB_BUSY : slbit := '0';
  signal RLB_DO : slv8 := (others=>'0');
  signal RLB_DO : slv8 := (others=>'0');
  signal RLB_VAL : slbit := '0';
  signal RLB_VAL : slbit := '0';
  signal RLB_HOLD : slbit := '0';
  signal RLB_HOLD : slbit := '0';
 
 
 
  signal RB_MREQ_M     : rb_mreq_type := rb_mreq_init;
 
  signal RB_SRES_M     : rb_sres_type := rb_sres_init;
 
  signal RB_SRES_RBMON : rb_sres_type := rb_sres_init;
 
 
begin
begin
 
 
  CORE : rlink_core8
  CORE : rlink_core8                    -- rlink master ----------------------
    generic map (
    generic map (
      BTOWIDTH     => BTOWIDTH,
      BTOWIDTH     => BTOWIDTH,
      RTAWIDTH     => RTAWIDTH,
      RTAWIDTH     => RTAWIDTH,
      SYSID        => SYSID,
      SYSID        => SYSID,
      ENAPIN_RLMON => ENAPIN_RLMON,
      ENAPIN_RLMON => ENAPIN_RLMON,
Line 97... Line 109...
      ENAPIN_RBMON => ENAPIN_RBMON)
      ENAPIN_RBMON => ENAPIN_RBMON)
    port map (
    port map (
      CLK        => CLK,
      CLK        => CLK,
      CE_INT     => CE_INT,
      CE_INT     => CE_INT,
      RESET      => RESET,
      RESET      => RESET,
 
      ESCXON     => ENAXON,
 
      ESCFILL    => ESCFILL,
      RLB_DI     => RLB_DI,
      RLB_DI     => RLB_DI,
      RLB_ENA    => RLB_ENA,
      RLB_ENA    => RLB_ENA,
      RLB_BUSY   => RLB_BUSY,
      RLB_BUSY   => RLB_BUSY,
      RLB_DO     => RLB_DO,
      RLB_DO     => RLB_DO,
      RLB_VAL    => RLB_VAL,
      RLB_VAL    => RLB_VAL,
      RLB_HOLD   => RLB_HOLD,
      RLB_HOLD   => RLB_HOLD,
      RL_MONI    => RL_MONI,
      RL_MONI    => RL_MONI,
      RB_MREQ    => RB_MREQ,
      RB_MREQ    => RB_MREQ_M,
      RB_SRES    => RB_SRES,
      RB_SRES    => RB_SRES_M,
      RB_LAM     => RB_LAM,
      RB_LAM     => RB_LAM,
      RB_STAT    => RB_STAT
      RB_STAT    => RB_STAT
    );
    );
 
 
  SERPORT : serport_1clock
  SERPORT : serport_1clock              -- serport interface -----------------
    generic map (
    generic map (
      CDWIDTH   => CDWIDTH,
      CDWIDTH   => CDWIDTH,
      CDINIT    => CDINIT,
      CDINIT    => CDINIT,
      RXFAWIDTH => IFAWIDTH,
      RXFAWIDTH => IFAWIDTH,
      TXFAWIDTH => OFAWIDTH)
      TXFAWIDTH => OFAWIDTH)
    port map (
    port map (
      CLK      => CLK,
      CLK      => CLK,
      CE_MSEC  => CE_MSEC,
      CE_MSEC  => CE_MSEC,
      RESET    => RESET,
      RESET    => RESET,
      ENAXON   => ENAXON,
      ENAXON   => ENAXON,
      ENAESC   => ENAESC,
      ENAESC   => '0',                  -- escaping now in rlink_core8
      RXDATA   => RLB_DI,
      RXDATA   => RLB_DI,
      RXVAL    => RLB_ENA,
      RXVAL    => RLB_ENA,
      RXHOLD   => RLB_BUSY,
      RXHOLD   => RLB_BUSY,
      TXDATA   => RLB_DO,
      TXDATA   => RLB_DO,
      TXENA    => RLB_VAL,
      TXENA    => RLB_VAL,
Line 135... Line 149...
      TXSD     => TXSD,
      TXSD     => TXSD,
      RXRTS_N  => RTS_N,
      RXRTS_N  => RTS_N,
      TXCTS_N  => CTS_N
      TXCTS_N  => CTS_N
    );
    );
 
 
 
  RBMON : if RBMON_AWIDTH > 0 generate  -- rbus monitor --------------
 
  begin
 
    I0 : rbd_rbmon
 
      generic map (
 
        RB_ADDR => RBMON_RBADDR,
 
        AWIDTH  => RBMON_AWIDTH)
 
      port map (
 
        CLK         => CLK,
 
        RESET       => RESET,
 
        RB_MREQ     => RB_MREQ_M,
 
        RB_SRES     => RB_SRES_RBMON,
 
        RB_SRES_SUM => RB_SRES_M
 
      );
 
  end generate RBMON;
 
 
 
  RB_SRES_OR : rb_sres_or_2             -- rbus or ---------------------------
 
    port map (
 
      RB_SRES_1  => RB_SRES,
 
      RB_SRES_2  => RB_SRES_RBMON,
 
      RB_SRES_OR => RB_SRES_M
 
    );
 
 
 
  RB_MREQ         <= RB_MREQ_M;         -- setup output signals
 
 
end syn;
end syn;
 
 
 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.