⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsp_port.vhd

📁 程控交换机芯片用的VHDL语言程序, 与DSP配合完成程控交换机功能
💻 VHD
📖 第 1 页 / 共 2 页
字号:
---------------------------------------------------------------------------------------------------
--
-- Title       : dsp_port
-- Design      : RC_CKJH
-- Author      : 杨云龙
-- Company     : 北京百科融创科技有限公司
--
---------------------------------------------------------------------------------------------------
--
-- File        : dsp_port.vhd
-- Generated   : Tue Nov 24 10:28:46 2003
-- From        : interface description file
-- By          : Itf2Vhdl ver. 1.20
--
---------------------------------------------------------------------------------------------------
--
-- Description : 
--
---------------------------------------------------------------------------------------------------

--{{ Section below this comment is automatically maintained
--   and may be overwritten
--{entity {lcd_port} architecture {a}}

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

library UNISIM;
use UNISIM.VCOMPONENTS.ALL;


entity DSP_PORT is
Port (   D_IN : inout std_logic_vector(15 downto 0);--DSP DATA_BUS
    A : in std_logic_vector(22 downto 0);   --DSP ADDRESS_BUS
    XF : in std_logic;              --DSP EXT.FLAG
    IOSTRB : in std_logic;
    MSTRB : in std_logic;
    DSP_RW : in std_logic;
    DSPIS : in std_logic;
    DS : in std_logic;
    PS : in std_logic;
    DSP_CLKOUT_IN : in std_logic;     --100MHz
--    DSP_TOUT : in std_logic;
--    DSP_BCLKER : out std_logic;
--    DSP_BFSR0 : out std_logic;
--    DSP_BCLKX : in std_logic;
--    DSP_BFSX0 : in std_logic;
    SRAM_CE : out std_logic;
    SRAM_OE : out std_logic;
    SRAM_WE : out std_logic;
    FLASH_CE : out std_logic;
    FLASH_OE : out std_logic;
    FLASH_WE : out std_logic;
    FLASH_WE_EN :  in std_logic;
--    IC2_OE : out std_logic;
    IC2_TR : out std_logic;
--    IC1_TR : out std_logic;
--    IC1_OE : out std_logic;
--    IC3_OE : out std_logic;
--    IC3_TR : out std_logic;
    --LCD BUS 
    LCD_D : inout std_logic_vector(7 downto 0);
    LCD_RD : out std_logic;
    LCD_WR : out std_logic;
    LCD_CD : out std_logic;
    LCD_CE : out std_logic;
--    LCD_FS : out std_logic;
    U38_OE1 : out std_logic;
    U38_OE2 : out std_logic;
    U38_TR1 : out std_logic;
    U38_TR2 : out std_logic;
    LCD_RST: out  std_logic;

    --AD AND DA SAMPLE CLOCK
    CLK_AD : out std_logic;
    --AD1
    AD1_OUT : in std_logic;
    AD1_CS : out std_logic;
    --AD2
    AD2_OUT : in std_logic;
    AD2_CS : out std_logic;
    --AD3   
    AD3_OUT : in std_logic;
    AD3_CS : out std_logic;
    --AD4
    AD4_OUT : in std_logic;
    AD4_CS : out std_logic;     
    --AD5
    AD5_OUT : in std_logic;
    AD5_CS : out std_logic;
    
    --DA
    DA_DIN : OUT std_logic_vector(1 downto 0);
    DA_CS : out std_logic_vector( 1 downto 0);
    DA_CLK : out std_logic_vector( 1 downto 0);

    --USEER 1 CONTROL
    M1_SHK : in std_logic;
    --USEER 2 CONTROL
    M2_SHK : in std_logic;
    --USEER 3 CONTROL
    M3_SHK : in std_logic;
    --USEER 4 CONTROL
    M4_SHK : in std_logic;

    --USER RING CONTROL
    USER_RC : out std_logic_vector(3 downto 0);

    --EXT.LINE CONTROL
    RING_D : in std_logic;        --EXT.LINE RINGING DETECTED
    PASSC : out std_logic;        --EXT.LINE SWITCH ON CONTROL  

    --PCM INTERFACE
    PCM_AT: in std_logic;
    PCM_BT: in std_logic;
    PCM_CT: in std_logic;
    PCM_DT: in std_logic;
    PCM_ET : in std_logic;
    PCM_AR : out std_logic;
    PCM_BR : out std_logic;
    PCM_CR : out std_logic;
    PCM_DR : out std_logic;
    PCM_ER : out std_logic;
    FS_AR : out std_logic;
    FS_BR : out std_logic;
    FS_CR : out std_logic;
    FS_DR : out std_logic;
    FS_ER : out std_logic;
    FS_AT : out std_logic;
    FS_BT : out std_logic;
    FS_CT : out std_logic;
    FS_DT : out std_logic;
    FS_ET : out std_logic;
    PCM_BS : out std_logic;
    --RELAY PORT
    TR_PCMX : out std_logic; 
    ss7_txd : out std_logic;   --TR_FX
    TR_BX : out std_logic;
    TR_PCMR : in std_logic;
    ss7_rxd : in std_logic;  --TR_FR
    TR_BR_IN : in std_logic;

    --EXT_RAM
    EXT_RAM_D : inout std_logic_vector(7 downto 0);
    EXT_RAM_A : out  std_logic_vector(14 downto 0);
    EXT_RAM_OE : out  std_logic;
    EXT_RAM_CE : out  std_logic;
    EXT_RAM_WR : out  std_logic;

    --KEY BOARD
    KEY : in std_logic_vector(5 downto 0);

    --clock
    SYS_CLK_IN : in std_logic;--16.384MHz

    --reset   
    RST_IN: in std_logic;

    --uart port
    connect_pc : out std_logic;
    txd : out std_logic;
    rxd : in std_logic;
    uart_int:out std_logic;
    --test
--    TEST : out std_logic_vector(4 downto 0);
    dsp_clk_divout : out std_logic  
--    key_cs_out,bus_ctl_out: out std_logic
    );
end DSP_PORT;

architecture a of DSP_PORT is
--component DECLARATION

component IBUFG
      port (I : in STD_LOGIC; O : out std_logic);
end component;

component IBUF
      port (I : in STD_LOGIC; O : out std_logic);
end component;

component clk_gen_block
    Port ( dsp_clk_in : in std_logic;
           clr : in std_logic;
           dsp_clk_divout: out std_logic;
           clk_480k : out std_logic;
           clk_160k : out std_logic
    );
end component;

component mem_control
  port (
  MSTRB : in std_logic;
  A19 : in std_logic;
  PS : in std_logic;
  RW : in std_logic;
  DS : in std_logic;
  XF : in std_logic;
  SRAM_CE : out std_logic;
  SRAM_WE : out std_logic;
  SRAM_OE : out std_logic;
  FLASH_CE : out std_logic;
  FLASH_WE : out std_logic;
  FLASH_OE : out std_logic
  );
 end component ;

component system_io
  port (
  DSPIS : in std_logic;
  RW : in std_logic;
  A: in std_logic_vector(19 downto 0);
  FLAG_BLOCK_DATA : in std_logic_vector( 15 downto 0);  -- ,FFA_D_TMP
  SYSTEM_FLAG2_DATA : in std_logic_vector(15 downto 0);
  AD1_DATA : in std_logic_vector( 7 downto 0);
  AD2_DATA : in std_logic_vector( 7 downto 0);
  AD3_DATA : in std_logic_vector( 7 downto 0);
  AD4_DATA : in std_logic_vector( 7 downto 0);
  AD5_DATA : in std_logic_vector( 7 downto 0); 
  KEY_DATA : in std_logic_vector( 5 downto 0);
  DSP_DATA_OUT : out std_logic_vector( 15 downto 0);
  DA_DATA_TEMP : out std_logic_vector( 15 downto 0);
  KEY_CS : out std_logic;
  IC2_TR : out std_logic;
  LCD_RAM_CS : out std_logic; 
  AD_FIFO_RDCS : out std_logic_vector(4 downto 0);
  DA_BLOCK_CS : out std_logic_vector(3 downto 0);
  PCM_USER_INFO_CS : out std_logic;  
  EXCHANGE_MOD_CS : out std_logic;
  USER_RING_CONTROL_CS : out std_logic ;

  ss7tx_fifo_cs : out std_logic;
  ss7rx_fifo_cs : out std_logic;
  ss7_data_out : in std_logic_vector(7 downto 0);

--uart
  uart_data_out : in std_logic_vector(7 downto 0);
   uart_tx_fifo_wrcs : out std_logic;
   uart_rx_fifo_rdcs : out std_logic

  );
end component ;

component system_flag
  port(
  LCD_RAM_FLAG: in std_logic;
  EXT_RING_STA: in std_logic;
  SHK_TMP: in std_logic_vector(3 downto 0);
  DA_FLAG: in std_logic_vector( 3 downto 0);
  AD_FLAG: in std_logic_vector(4 downto 0);
  KEY_FLAG: in std_logic;
  DSP_CLK : in std_logic;
  CLR : in std_logic; 
  KEY_CS : in std_logic;
  KEY_FLAG_CLR : out std_logic;
  FLAG_BLOCK_DATA : out std_logic_vector(15 downto 0)
  );
end component ;

component system_flag2
  port(
        sta1: in std_logic;
        sta2: in std_logic;
        sta3: in std_logic;
        sta4: in std_logic;
        SYSTEM_FLAG2_DATA : out std_logic_vector(15 downto 0)
  );
end component ;
component user_sta
  port(
  CLK_256K ,CLR: in std_logic;
--  CLR : in std_logic;
  M1_SHK,M2_SHK,M3_SHK,M4_SHK: in std_logic;  -- ,RING_D 
  SHK_TMP : out std_logic_vector(3 downto 0)
--  EXT_RING_STA : out std_logic
  );
end component;
component user_ring
  port (
  CLR : in std_logic;
  RW : in std_logic;
  USER_RING_CONTROL_CS : in std_logic;
  DSP_DATA_IN : in std_logic_vector(15 downto 0); 
  USER_RC  : out std_logic_vector( 3 downto 0);
  PASSC : out std_logic
  );
end component ;
component key_control
  port(
    KEY : in std_logic_vector(5 downto 0);
    SCAN_CLK: in std_logic; --128K
    KEY_FLAG_CLR ,CLR: in std_logic;
    KEY_FLAG : out std_logic;
    KEY_DATA : out std_logic_vector(5 downto 0)
  );
end component;
  
component lcd_port
port(  
    LCD_CLK : in std_logic;  --CLK_1024K
    DSP_CLK : in std_logic; --100MHz
    CLR : in std_logic;
    DSP_RW : in std_logic;
    LCD_RAM_CS : in std_logic;
    BUS_CTL_OUT: out std_logic;
    EXT_RAM_WE_O : out STD_LOGIC;
    EXT_RAM_OE_O : out STD_LOGIC;
    EXT_RAM_CE_O : out STD_LOGIC; 
    EXT_RAM_A_O : out STD_LOGIC_VECTOR(11 downto 0) ;
    EXT_RAM_D_IN : in STD_LOGIC_VECTOR(7 downto 0) ;
    LCD_RAM_RD_OVER : out std_logic;
    DSP_ADDRESS : in std_logic_vector( 11 downto 0);
    LCD_DIN :  in std_logic_vector( 7 downto 0);
    LCD_DOUT : out std_logic_vector( 7 downto 0);
    LCD_RD_O : out std_logic;
    LCD_WR_O : out std_logic;
    LCD_CE_O : out std_logic;  
    LCD_CD_O : out std_logic
    --    LCD_RST_O : out std_logic
    );
end component;


component ext_ring_dete
  port (
  CLK : in std_logic;
  PASSC_TMP : in std_logic;
  EXT_STA:  out std_logic;
  CLR : in std_logic;
  RING_D : in std_logic;
  EXT_RING_DETECTED : out std_logic
  );
end component ;

component pcm_exchange
  port (
    DSP_DATA_IN :in std_logic_vector(15 downto 0);
    SYS_CLK : in std_logic;    
    RW: in std_logic; 
    CLK_100M : in std_logic;  --100M : dsp clk out
    CLR: in std_logic;
    EXCHANGE_MOD_CS: in std_logic;
    PCM_USER_INFO_CS : in std_logic;
    PCM_AT : in std_logic;
    PCM_BT : in std_logic;
    PCM_CT : in std_logic;
    PCM_DT : in std_logic;
    PCM_ET : in std_logic;
    PCM_AR : out std_logic;
    PCM_BR : out std_logic;
    PCM_CR : out std_logic;
    PCM_DR : out std_logic;
    PCM_ER : out std_logic;  
    FS_AR : out std_logic;  
    FS_BR : out std_logic;  
    FS_CR : out std_logic;  
    FS_DR : out std_logic;  
    FS_ER : out std_logic;       
    FS_AT : out std_logic;  
    FS_BT : out std_logic;  
    FS_CT : out std_logic;  
    FS_DT : out std_logic;  
    FS_ET: out std_logic;       
    PCM_BS : out std_logic;

    ss7_data_out : out std_logic_vector(7 downto 0);
    ss7tx_fifo_cs : in std_logic;
    ss7rx_fifo_cs : in std_logic;
    ss7_tx_busy : out std_logic;
    ss7_rx_rdy : out std_logic;

    TR_PCMX : out std_logic; 
    TR_BX : out std_logic;
    TR_PCMR : in std_logic;
    TR_BR : in std_logic;
    ss7_txd : out std_logic;  -- FX
    ss7_rxd : in std_logic;   -- FR
    
--    CLK_8192K_OUT :out std_logic;
--    CLK_4096K_OUT :out std_logic;
--    CLK_2048K_OUT :out std_logic;
--    CLK_1024K_OUT :out std_logic;
--    CLK_512K_OUT :out std_logic;
--    CLK_256K_OUT:out std_logic;
    CLK_128K_OUT:out std_logic;
    CLK_64K_OUT :out std_logic
--    RELAY: out std_logic_vector(3 downto 0)
  );
end component ;



--SIGNAL
signal RW: std_logic;
signal RST : std_logic;
signal DSP_DATA_IN : std_logic_vector(15 downto 0);      --data bus temp  ,FFA_D_TMP
signal DSP_DATA_OUT : std_logic_vector(15 downto 0);      --data bus temp
--key block signal
signal KEY_CS : std_logic;--KEY BOARD CE AND OE
signal KEY_DATA: std_logic_vector(5 downto 0);  --key board data bus
--PCM CHANGER BLOCK CONTROL SIGNAL
--signal PCM_DATA : std_logic_vector(15 downto 0);  --PCM CONTROL DATA BUS
--signal PCM_RW : std_logic;-- PCM BLOCK RW IN
signal PCM_CS : std_logic;-- PCM BLOKC CS IN
-- AD SIGNAL
signal AD_FIFO_RDCS: std_logic_vector(4 downto 0);
signal AD1_DATA,AD2_DATA,AD3_DATA,AD4_DATA,AD5_DATA : std_logic_vector(7 DOWNTO 0);
signal START_AD1,START_AD2,START_AD3,START_AD4,START_AD5 : std_logic;
--DA SIGNAL
signal DA_FLAG,DA_BLOCK_CS : std_logic_vector( 3 downto 0);
signal DA_DATA_TEMP : std_logic_vector( 15 downto 0);
--LCD BLOCK SIGNAL
signal LCD_DIN,LCD_DOUT :  std_logic_vector(7 downto 0);
signal LCD_RD_TEMP :  std_logic;
signal LCD_WR_TEMP :  std_logic;
signal LCD_CD_TEMP :  std_logic;
signal LCD_CE_TEMP :  std_logic;
--signal LCD_FS_TEMP :  std_logic; 
--signal LCD_RST_TEMP : std_logic;   
signal LCD_RAM_CS : std_logic;

signal LCD_RAM_RD_OVER ,EXT_RAM_WR_TMP ,EXT_RAM_OE_TMP ,EXT_RAM_CE_TMP: std_logic;
signal EXT_RAM_D_IN,EXT_RAM_D_OUT : std_logic_vector(7 downto 0);


--signal LCD_DATA : std_logic_vector(7 downto 0);
--FLAG BLOCK SIGNAL
signal FLAG_BLOCK_DATA: std_logic_vector(15 DOWNTO 0);
--ECHO EXT.BLOCK'S FLAG SIGNAL
signal KEY_FLAG,KEY_FLAG_CLR,PCM_FLAG,PCM_FLAG_CLR : std_logic;
signal AD_FLAG : std_logic_vector(4 downto 0);--  ,AD_FLAG_CLR

--SYSTEM CLOCK GEneric BLOCK
--signal CLK_8192K : std_logic;
--signal CLK_4096K : std_logic;
--signal CLK_2048K : std_logic;
--signal CLK_1024K : std_logic;
--signal CLK_512K : std_logic;
--signal CLK_256K: std_logic;

signal ss7_data_out : std_logic_vector(7 downto 0);
signal ss7tx_fifo_cs : std_logic;
signal ss7rx_fifo_cs : std_logic;
signal ss7_tx_busy : std_logic;
signal ss7_rx_rdy : std_logic;


signal CLK_128K: std_logic;
signal CLK_64K : std_logic;
signal CLK_480K : std_logic;  --480K
signal CLK_160K: std_logic;   --160K

--PCM_BLOCK
--signal FS_AT ,FS_BT,FS_CT ,FS_DT ,FS_ET : std_logic;
signal PCM_USER_INFO_CS :std_logic;
--signal RELAY :std_logic_vector(3 downto 0);
--signal EN_T_MODEL,EN_S_MODEL : std_logic;
signal EXCHANGE_MOD_CS: std_logic;
signal SHK_TMP : std_logic_vector(3 downto 0);
--signal PCM_FS : std_logic_vector(31 downto 0);
--signal EXT_RING_STA : std_logic;
signal PASSC_TMP : std_logic;
signal USER_RING_CONTROL_CS : std_logic;
signal EXT_RING_DETECTED ,EXT_STA_TMP: std_logic;
signal CLR : std_logic;
--signal flag_out : std_logic_vector(1 downto 0);
signal SYS_CLK,DSP_CLKOUT : std_logic;
--uart block signal
signal uart_data_in, uart_data_out : std_logic_vector( 7 downto 0);
signal uart_tx_fifo_wrcs, uart_rx_fifo_rdcs : std_logic;
signal SYSTEM_FLAG2_DATA : std_logic_vector(15 downto 0);
signal uart_tx_busy : std_logic;
signal connect_pc_tmp : std_logic;
--SIGNAL TEST_TMP : STD_LOGIC_VECTOR( 7 DOWNTO 0);
signal TR_BR : std_logic;
begin

-- Bi-Directional Output Assignments
--DSP,RAM,FLASH control signal connection
DATA_BUS_CONNECTION: block 
signal FLASH_WE_TMP : std_logic;
begin
--  D_IN <= (others=>'Z') WHEN (DSPIS='1'  OR RW='0')
--                    ELSE  DSP_DATA_OUT;
  --DSP_DATA_IN <= DSP_DATA_IN WHEN (DSPIS='1'  OR RW='1')
   --                 ELSE  D_IN;
  D_IN <= DSP_DATA_OUT WHEN (IOSTRB ='0' AND RW ='1' AND DSPIS ='0') ELSE (others=>'Z');
  DSP_DATA_IN <= D_IN WHEN (IOSTRB ='0' AND RW ='0' AND DSPIS ='0') ELSE DSP_DATA_IN;
  CLR <= NOT RST;

GCLK_UUT1: IBUFG 
port map (
      I => SYS_CLK_IN, 
      O => SYS_CLK
      );

GCLK_UUT2: IBUFG 
port map (
      I => DSP_CLKOUT_IN, 
      O => DSP_CLKOUT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -