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

Subversion Repositories tdm

[/] [tdm/] [trunk/] [code/] [ISDN_cont/] [core/] [ISDN_cont_top.vhd] - Rev 6

Compare with Previous | Blame | View Log

-------------------------------------------------------------------------------
-- Title      : ISDN tdm controller
-- Project    : TDM controller
-------------------------------------------------------------------------------
-- File       : ISDN_cont_top.vhd
-- Author     : Jamil Khatib  <khatib@ieee.org>
-- Organization:  OpenCores.org
-- Created    : 2001/05/06
-- Last update:2001/05/06
-- Platform   : 
-- Simulators  : NC-sim/linux, Modelsim XE/windows98
-- Synthesizers: Leonardo
-- Target      : 
-- Dependency  : ieee.std_logic_1164
--               tdm.components_pkg
--               hdlc.hdlc_components_pkg
-------------------------------------------------------------------------------
-- Description:  ISDN tdm controller that extracts 2B+D channels from 3 time
-- slots of the incoming streem (Top Block)
-------------------------------------------------------------------------------
-- Copyright (c) 2001  Jamil Khatib
-- 
-- This VHDL design file is an open design; you can redistribute it and/or
-- modify it and/or implement it after contacting the author
-- You can check the draft license at
-- http://www.opencores.org/OIPC/license.shtml
-------------------------------------------------------------------------------
-- Revisions  :
-- Revision Number :   1
-- Version         :   0.1
-- Date            :  2001/05/06
-- Modifier        :  Jamil Khatib  <khatib@ieee.org>
-- Desccription    :  Created
-- ToOptimize      :
-- Known Bugs      : 
-------------------------------------------------------------------------------
-- $Log: not supported by cvs2svn $
-- Revision 1.2  2001/05/08 21:10:41  jamil
-- Initial release
--
--
-------------------------------------------------------------------------------
 
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
 
LIBRARY hdlc;
USE hdlc.hdlc_components_pkg.ALL;
 
LIBRARY tdm;
USE tdm.components_pkg.ALL;
 
ENTITY isdn_cont_top_ent IS
 
  PORT (
    C2     : IN  STD_LOGIC;             -- ST-Bus clock
    DSTi   : IN  STD_LOGIC;             -- ST-Bus input Data
    DSTo   : OUT STD_LOGIC;             -- ST-Bus output Data
    F0_n   : IN  STD_LOGIC;             -- St-Bus Framing pulse
    F0od_n : OUT STD_LOGIC;             -- ST-Bus Delayed Framing pulse
    RST_I  : IN  STD_LOGIC;
    CLK_I  : IN  STD_LOGIC;
 
-- B1      Channel
    ADR_I_B1  : IN  STD_LOGIC_VECTOR(2 DOWNTO 0);
    DAT_O_B1  : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
    DAT_I_B1  : IN  STD_LOGIC_VECTOR(31 DOWNTO 0);
    WE_I_B1   : IN  STD_LOGIC;
    STB_I_B1  : IN  STD_LOGIC;
    ACK_O_B1  : OUT STD_LOGIC;
    CYC_I_B1  : IN  STD_LOGIC;
    RTY_O_B1  : OUT STD_LOGIC;
    TAG0_O_B1 : OUT STD_LOGIC;
    TAG1_O_B1 : OUT STD_LOGIC;
 
-- B2     Channel
    ADR_I_B2  : IN  STD_LOGIC_VECTOR(2 DOWNTO 0);
    DAT_O_B2  : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
    DAT_I_B2  : IN  STD_LOGIC_VECTOR(31 DOWNTO 0);
    WE_I_B2   : IN  STD_LOGIC;
    STB_I_B2  : IN  STD_LOGIC;
    ACK_O_B2  : OUT STD_LOGIC;
    CYC_I_B2  : IN  STD_LOGIC;
    RTY_O_B2  : OUT STD_LOGIC;
    TAG0_O_B2 : OUT STD_LOGIC;
    TAG1_O_B2 : OUT STD_LOGIC;
 
-- D     Channel
    ADR_I_D  : IN  STD_LOGIC_VECTOR(2 DOWNTO 0);
    DAT_O_D  : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
    DAT_I_D  : IN  STD_LOGIC_VECTOR(31 DOWNTO 0);
    WE_I_D   : IN  STD_LOGIC;
    STB_I_D  : IN  STD_LOGIC;
    ACK_O_D  : OUT STD_LOGIC;
    CYC_I_D  : IN  STD_LOGIC;
    RTY_O_D  : OUT STD_LOGIC;
    TAG0_O_D : OUT STD_LOGIC;
    TAG1_O_D : OUT STD_LOGIC
 
    );
 
END isdn_cont_top_ent;
 
-------------------------------------------------------------------------------
 
ARCHITECTURE isdn_cont_top_str OF isdn_cont_top_ent IS
 
  SIGNAL HDLCen1   : STD_LOGIC;
  SIGNAL HDLCen2   : STD_LOGIC;
  SIGNAL HDLCen3   : STD_LOGIC;
  SIGNAL HDLCTxen1 : STD_LOGIC;
  SIGNAL HDLCTxen2 : STD_LOGIC;
  SIGNAL HDLCTxen3 : STD_LOGIC;
  SIGNAL Dout      : STD_LOGIC;
  SIGNAL Din1      : STD_LOGIC;
  SIGNAL Din2      : STD_LOGIC;
  SIGNAL Din3      : STD_LOGIC;
 
BEGIN  -- isdn_cont_top_str
-------------------------------------------------------------------------------
 
 
  ST_IF : isdn_cont_ent
    PORT MAP (
      rst_n     => RST_I,
      C2        => C2,
      DSTi      => DSTi,
      DSTo      => DSTo,
      F0_n      => F0_n,
      F0od_n    => F0od_n,
      HDLCen1   => HDLCen1,
      HDLCen2   => HDLCen2,
      HDLCen3   => HDLCen3,
      HDLCTxen1 => HDLCTxen1,
      HDLCTxen2 => HDLCTxen2,
      HDLCTxen3 => HDLCTxen3,
      Dout      => Dout,
      Din1      => Din1,
      Din2      => Din2,
      Din3      => Din3);
 
  B1_Channel : hdlc_ent
    GENERIC MAP (
      FCS_TYPE  => 2,
      ADD_WIDTH => 7)
    PORT MAP (
      Txclk     => C2,
      RxClk     => C2,
      Tx        => Din1,
      Rx        => Dout,
      TxEN      => HDLCTxen1,
      RxEn      => HDLCen1,
      RST_I     => RST_I,
      CLK_I     => CLK_I,
      ADR_I     => ADR_I_B1,
      DAT_O     => DAT_O_B1,
      DAT_I     => DAT_I_B1,
      WE_I      => WE_I_B1,
      STB_I     => STB_I_B1,
      ACK_O     => ACK_O_B1,
      CYC_I     => CYC_I_B1,
      RTY_O     => RTY_O_B1,
      TAG0_O    => TAG0_O_B1,
      TAG1_O    => TAG1_O_B1);
 
 
  B2_Channel : hdlc_ent
    GENERIC MAP (
      FCS_TYPE  => 2,
      ADD_WIDTH => 7)
    PORT MAP (
      Txclk     => c2,
      RxClk     => c2,
      Tx        => Din2,
      Rx        => Dout,
      TxEN      => HDLCTxen2,
      RxEn      => HDLCen2,
      RST_I     => RST_I,
      CLK_I     => CLK_I,
      ADR_I     => ADR_I_B2,
      DAT_O     => DAT_O_B2,
      DAT_I     => DAT_I_B2,
      WE_I      => WE_I_B2,
      STB_I     => STB_I_B2,
      ACK_O     => ACK_O_B2,
      CYC_I     => CYC_I_B2,
      RTY_O     => RTY_O_B2,
      TAG0_O    => TAG0_O_B2,
      TAG1_O    => TAG1_O_B2);
 
 
  D_Channel : hdlc_ent
    GENERIC MAP (
      FCS_TYPE  => 2,
      ADD_WIDTH => 7)
    PORT MAP (
      Txclk     => c2,
      RxClk     => c2,
      Tx        => Din3,
      Rx        => Dout,
      TxEN      => HDLCTxen3,
      RxEn      => HDLCen3,
      RST_I     => RST_I,
      CLK_I     => CLK_I,
      ADR_I     => ADR_I_D,
      DAT_O     => DAT_O_D,
      DAT_I     => DAT_I_D,
      WE_I      => WE_I_D,
      STB_I     => STB_I_D,
      ACK_O     => ACK_O_D,
      CYC_I     => CYC_I_D,
      RTY_O     => RTY_O_D,
      TAG0_O    => TAG0_O_D,
      TAG1_O    => TAG1_O_D);
 
-------------------------------------------------------------------------------
END isdn_cont_top_str;
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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