5416_dsk_vhdl_c5416_ddb
- 格式:pdf
- 大小:54.39 KB
- 文档页数:9
------------------------------------------------------------------------ FILE NAME : c5416_ddb.vhd-- TITLE :-- DESCRIPTION : This module contains the Top level file for the 5416-- DDB CPLD-- NOTES : Active low signals are indicated with '_l' appended-- to the signal name.-- Identifiers ending in '_pin' are physical pins.-- All internal registers are active high.------------------------------------------------------------------------ REVISION HISTORY :---- REV DATE DESCRIPTION AUTHOR-- === ======== ================================= ================-- * 01/09/01 Original Release------------------------------------------------------------------------LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;--USE IEEE.STD_LOGIC_ARITH.ALL;--USE WORK.STD_ARITH.ALL;--USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY c5416_ddb ISPORT(------------------------------------------------------------------------------- CPLD Reset Interface-----------------------------------------------------------------------------board_reset_l_pin: IN STD_LOGIC;-- Pulse Cont. Board Rst (Pin BRD_RST#)button_reset_l_pin: IN STD_LOGIC;-- Pushbutton Reset (Pin SW_RST#)db_vcc_bad_l_pin: IN STD_LOGIC;-- DB Power Reset (Pin DB_P_RST#)usb_dsp_reset_l_pin : IN STD_LOGIC;-- USB Host DSP Reset (Pin USB_DSP_RST#)emu_sel_pin: IN STD_LOGIC;-- Emulation Select (JTAG or On-board)reset_strobe_l_pin: OUT STD_LOGIC;-- Rst to TPS3307 (Pin MAN_RST#)dc_reset_l_pin: OUT STD_LOGIC;-- Rst to Daughter Board (Pin DC_RESET#)------------------------------------------------------------------------------- CPLD User Switches/Leds Interface-----------------------------------------------------------------------------user_switch0_pin : IN STD_LOGIC;-- Dip Switch 0 (Pin USER_SW0)user_switch1_pin : IN STD_LOGIC;-- Dip Switch 1 (Pin USER_SW1)user_switch2_pin : IN STD_LOGIC;-- Dip Switch 2 (Pin USER_SW2)user_switch3_pin : IN STD_LOGIC;-- Dip Switch 3 (Pin USER_SW3)user_led0_l_pin : OUT STD_LOGIC;-- User LED 0 (Pin USER_LED0#)user_led1_l_pin : OUT STD_LOGIC;-- User LED 1 (Pin USER_LED1#)user_led2_l_pin : OUT STD_LOGIC;-- User LED 2 (Pin USER_LED2#)user_led3_l_pin : OUT STD_LOGIC;-- User LED 3 (Pin USER_LED3#)------------------------------------------------------------------------------- CPLD Memory Interface-----------------------------------------------------------------------------dsp_data_dir_pin : OUT STD_LOGIC;-- DSP Data Buffer Dir (Pin DSP_DATA_DIR)dsp_data_oe_l_pin : OUT STD_LOGIC;-- DSP Data Buffer OE (Pin DSP_DATA_OE#)dm_mem_loc_pin: OUT STD_LOGIC;-- On-Board/Daughter Mem Sel (Pin DM_SEL#)dm_page0_pin: OUT STD_LOGIC;-- External Data Mem Pg Sel (Pin DM_PG0)dm_page1_pin : OUT STD_LOGIC;-- External Data Mem Pg Sel (Pin DM_PG1)dm_page2_pin : OUT STD_LOGIC;-- External Data Mem Pg Sel (Pin DM_PG2)dm_page3_pin : OUT STD_LOGIC;-- External Data Mem Pg Sel (Pin DM_PG3)dm_page4_pin : OUT STD_LOGIC;-- External Data Mem Pg Sel (Pin DM_PG4)dc_ds_l_pin : OUT STD_LOGIC;-- Daughter Card Data Mem Sel (Pin DC_DS#)dc_is_l_pin : OUT STD_LOGIC;-- Daughter Card I/O Mem Sel (Pin DC_IS#)dc_ps_l_pin : OUT STD_LOGIC;-- Daughter Card Program Mem Sel (Pin DC_PS#) dc_io_strb_l_pin: OUT STD_LOGIC;-- Duaghter Card I/O Strobedc_m_strb_l_pin: OUT STD_LOGIC;-- Daughter Card Memory Strobedc_cntl_oe_l_pin : OUT STD_LOGIC;------------------------------------------------------------------------------- CPLD Daughter Card Interface-----------------------------------------------------------------------------dc_det_l_pin : IN STD_LOGIC;-- Daughter Board Detect (Pin DC_DET#) dc_stat1_pin: IN STD_LOGIC;dc_stat0_pin: IN STD_LOGIC;dc_cntl1_pin: OUT STD_LOGIC;dc_cntl0_pin: OUT STD_LOGIC;bsp2_sel_pin : OUT STD_LOGIC;-- On-board/Daughter BSP 2 Sel (Pin BSP2_SEL#)db_abce_l_pin : OUT STD_LOGIC;-- (Pin DB_ABCE#)db_able_l_pin : OUT STD_LOGIC;-- (Pin DB_ABLE#)db_aboe_l_pin : OUT STD_LOGIC;-- (Pin DB_ABOE#)db_bace_l_pin : OUT STD_LOGIC;-- (Pin DB_BACE#)db_bale_l_pin : OUT STD_LOGIC;-- (Pin DB_BALE#)db_baoe_l_pin : OUT STD_LOGIC;-- (Pin DB_BAOE#)------------------------------------------------------------------------------- CPLD DSP Interface-----------------------------------------------------------------------------dsp_addr0_pin : IN STD_LOGIC;-- DSP Addr0, for I/O Reg Sel (Pin DA0)dsp_addr1_pin : IN STD_LOGIC;-- DSP Addr1, for I/O Reg Sel (Pin DA1)dsp_addr2_pin : IN STD_LOGIC;-- DSP Addr2, for I/O Reg Sel (Pin DA2)dsp_addr14_pin : IN STD_LOGIC;-- DSP Addr14, for I/O Device Sel (Pin DA14)dsp_addr15_pin : IN STD_LOGIC;-- DSP Addr15, for I/O Device Sel (Pin DA15)dsp_addr22_pin : IN STD_LOGIC;-- DSP Addr22, for PS on-brd/DB Mem Sel (Pin DA22) dsp_ds_l_pin : IN STD_LOGIC;-- DSP Data Mem Sel (Pin DSP_DS#)dsp_io_strobe_l_pin : IN STD_LOGIC;-- DSP I/O Memory Strobe (Pin DSP_IOSTRB#)dsp_is_l_pin : IN STD_LOGIC;-- DSP I/O Mem Sel (Pin DSP_IS#)dsp_m_strobe_l_pin : IN STD_LOGIC;-- DSP Memory Strobe (Pin DSP_MSTRB#)dsp_ps_l_pin : IN STD_LOGIC;-- DSP Program Mem Sel (Pin DSP_PS#)dsp_rw_l_pin : IN STD_LOGIC;-- DSP Read/Write Sel (Pin DSP_R/W#)dsp_data0_pin : INOUT STD_LOGIC;-- DSP EMIF Data0 (Pin DD0)dsp_data1_pin : INOUT STD_LOGIC;-- DSP EMIF Data1 (Pin DD1)dsp_data2_pin : INOUT STD_LOGIC;-- DSP EMIF Data2 (Pin DD2)dsp_data3_pin : INOUT STD_LOGIC;-- DSP EMIF Data3 (Pin DD3)dsp_data4_pin : INOUT STD_LOGIC;-- DSP EMIF Data4 (Pin DD4)dsp_data5_pin : INOUT STD_LOGIC;-- DSP EMIF Data5 (Pin DD5)dsp_data6_pin : INOUT STD_LOGIC;-- DSP EMIF Data6 (Pin DD6)dsp_data7_pin : INOUT STD_LOGIC;-- DSP EMIF Data7 (Pin DD7)------------------------------------------------------------------------------- CPLD Codec (A/D) Interface-----------------------------------------------------------------------------codec_clk_pin: IN STD_LOGIC; -- Codec Serial Clk (Pin MIC/SPKR_SCLK) codec_bclk_pin: OUT STD_LOGIC;-- Codec Bit Clkcodec_fs_pin : OUT STD_LOGIC; -- Codec Frame Sync (Pin MIC/SPKR_FS) codec_mc_pin: OUT STD_LOGIC;-- Codec Master Clockcodec_md_pin: OUT STD_LOGIC;-- Codec Master Datacodec_ml_pin: OUT STD_LOGIC;-- Codec Master Loadcodec_clk_out_pin : OUT STD_LOGIC; -- Derived codec clock------------------------------------------------------------------------------- CPLD Device Control Interface-------------------------------------------------------------------------------flash_ps_l_pin : OUT STD_LOGIC;-- On-Board FLASH PS Enable (Pin FLASH_PS#)--flash_ds_l_pin : OUT STD_LOGIC;-- On-Board FLASH DS Enable (Pin FLASH_DS#)--sram_ds_l_pin : OUT STD_LOGIC;-- On-Board SRAM DS Enable (Pin SRAM_DS#)--sram_ps_l_pin : OUT STD_LOGIC;-- On-Board SRAM PS Enable (Pin SRAM_PS#)-- The following signals have been added for Rev C of the boardsram_we_l_pin : OUT STD_LOGIC;sram_re_l_pin : OUT STD_LOGIC;flash_ce_l_pin : OUT STD_LOGIC;flash_we_l_pin : OUT STD_LOGIC;flash_oe_l_pin : OUT STD_LOGIC;dc_we_l_pin : OUT STD_LOGIC;dc_re_l_pin : OUT STD_LOGIC;dc_oe_l_pin : OUT STD_LOGIC;------------------------------------------------------------------------------- CPLD Clock Interface-----------------------------------------------------------------------------board_ver2_pin: IN STD_LOGIC;board_ver1_pin: IN STD_LOGIC;board_ver0_pin: IN STD_LOGIC;clk_20mhz_pin : IN STD_LOGIC-- 20MHz Clock from Osc. (Pin CLK_20MHZ));END c5416_ddb;ARCHITECTURE rtl OF c5416_ddb ISSIGNAL board_reset_l: STD_LOGIC;-- board resetSIGNAL board_ver: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL boot_int_l: STD_LOGIC;-- boot interruptSIGNAL bsp2_sel: STD_LOGIC;-- bsp1 select controlSIGNAL button_reset_l: STD_LOGIC;-- Switch ResetSIGNAL clk_20mhz: STD_LOGIC;-- cpld clockSIGNAL codec_bclk: STD_LOGIC;SIGNAL codec_clk: STD_LOGIC;-- codec clockSIGNAL codec_fs: STD_LOGIC;SIGNAL codec_hreg_sel: STD_LOGIC;SIGNAL codec_lreg_sel: STD_LOGIC;SIGNAL codec_mc: STD_LOGIC;SIGNAL codec_md: STD_LOGIC;SIGNAL codec_ml: STD_LOGIC;SIGNAL codec_mt_start: STD_LOGIC;SIGNAL codec_mt_rdy: STD_LOGIC;SIGNAL codec_m_data: STD_LOGIC_VECTOR(15 DOWNTO 0);SIGNAL cpld_rev: STD_LOGIC_VECTOR(3 DOWNTO 0); -- cpld revisionSIGNAL dc_32odd: STD_LOGIC;-- DB Mem Access Even/OddSIGNAL dc_det_l: STD_LOGIC;-- Daughter Board DetectSIGNAL db_abce_l: STD_LOGIC;-- AB Data Latch Chip EnableSIGNAL db_able_l: STD_LOGIC;-- AB Data Latch Latch EnableSIGNAL db_aboe_l: STD_LOGIC;-- AB Data Latch Output EnableSIGNAL db_bace_l: STD_LOGIC;-- BA Data Latch Chip EnableSIGNAL db_bale_l: STD_LOGIC;-- BA Data Latch Latch EnableSIGNAL db_baoe_l: STD_LOGIC;-- BA Data Latch Output EnableSIGNAL dc_cntl: STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL dm_mem_loc: STD_LOGIC;-- Data Memory Location (On-board/Daughtercard) SIGNAL dc_stat: STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL dc_reset_reg: STD_LOGIC;-- DC Reset from DSPSIGNAL db_vcc_bad_l: STD_LOGIC;-- DB Power ResetSIGNAL dc_wide: STD_LOGIC;-- Daughter Board Mem WidthSIGNAL dc_ds_l: STD_LOGIC;-- Daughter Card Data Memory SelectSIGNAL dc_is_l: STD_LOGIC;-- Daughter Card I/O Memory SelectSIGNAL dc_ps_l: STD_LOGIC;-- Daughter Card Program Memory SelectSIGNAL dc_io_strb_l: STD_LOGIC;-- Daughter Card I/O StrobeSIGNAL dc_m_strb_l: STD_LOGIC;-- Duaghter Memory StrobeSIGNAL dc_reset_l: STD_LOGIC;-- Daughter Card ResetSIGNAL dm_page: STD_LOGIC_VECTOR(4 DOWNTO 0); -- Data Memory Page 0 through 4 SIGNAL dsp_addr_high: STD_LOGIC;-- DSP Address 22SIGNAL dsp_addr_mid: STD_LOGIC_VECTOR(3 DOWNTO 0); -- dsp addr 12 -> 15SIGNAL dsp_addr_low: STD_LOGIC_VECTOR(2 DOWNTO 0); -- dsp addr 0 -> 2SIGNAL dsp_data: STD_LOGIC_VECTOR(7 DOWNTO 0); -- dsp data 7 -> 0SIGNAL dsp_data_in: STD_LOGIC_VECTOR(7 DOWNTO 0); -- dsp data in 7 -> 0SIGNAL dsp_data_out: STD_LOGIC_VECTOR(7 DOWNTO 0); -- dsp data out 7 -> 0SIGNAL dsp_data_dir: STD_LOGIC;-- DSP Data Buffer DirectionSIGNAL dsp_data_oe_l: STD_LOGIC;-- DSP Data Buffer OESIGNAL dsp_ds_l: STD_LOGIC;-- DSP's Data Memory SelectSIGNAL dsp_cpld_cs: STD_LOGIC;-- DSP's CPLD Chip selectSIGNAL dsp_io_strobe_l: STD_LOGIC;-- DSP's I/O StrobeSIGNAL dsp_is_l: STD_LOGIC;-- DSP's I/O Memory SelectSIGNAL dsp_m_strobe_l: STD_LOGIC;-- DSP's Memory StrobeSIGNAL dsp_ps_l: STD_LOGIC;-- DSP's Progam Mem SelectSIGNAL dsp_reset_l: STD_LOGIC;-- DSP's ResetSIGNAL dsp_rw_l: STD_LOGIC;-- DSP_RW#SIGNAL emu_sel: STD_LOGIC;-- Emulation SelectSIGNAL flash_ds_l: STD_LOGIC;-- flash chip enable for data spaceSIGNAL flash_ps_l: STD_LOGIC;-- flash chip enable for program spaceSIGNAL float_l: STD_LOGIC;-- FLOAT#SIGNAL mem_type_ds: STD_LOGIC;-- FLASH or SRAM CE RegisterSIGNAL mem_type_ps: STD_LOGIC;-- FLASH or SRAM CE RegisterSIGNAL dc_io_cntl : STD_LOGIC;SIGNAL reset_strobe_l: STD_LOGIC;-- Reset into TPS3307SIGNAL sram_ds_l: STD_LOGIC;-- sram chip enable for data spaceSIGNAL sram_ps_l: STD_LOGIC;-- sram chip enable for program spaceSIGNAL user_led: STD_LOGIC_VECTOR(3 DOWNTO 0); -- user_led 0 through 3SIGNAL user_switch0: STD_LOGIC;-- Dip Switch 0SIGNAL user_switch1: STD_LOGIC;-- Dip Switch 1SIGNAL user_switch2: STD_LOGIC;-- Dip Switch 2SIGNAL user_switch3: STD_LOGIC;-- Dip Switch 3SIGNAL usb_dsp_reset_l: STD_LOGIC;-- USB Software ResetSIGNAL codec_div_sel : STD_LOGIC;SIGNAL codec_clk_hold : STD_LOGIC;SIGNAL codec_clk_div : STD_LOGIC_VECTOR( 1 DOWNTO 0 );SIGNAL codec_clk_out : STD_LOGIC;------------------------------------------------------------------------ Component Definitions----------------------------------------------------------------------COMPONENT daughter_boardPORT(dc_32odd: IN STD_LOGIC;-- Even or Odd Address Selectdm_mem_loc: IN STD_LOGIC;-- Data Memory Location (Onboard or Daughtercard) dc_wide: IN STD_LOGIC;-- 16 or 32-bit Accessesdsp_addr_high: IN STD_LOGIC;-- dsp Address 19dsp_addr_low: IN STD_LOGIC_VECTOR(2 DOWNTO 0); -- dsp Address 0 ->2dsp_addr_mid: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -- dsp Address 12 -> 15dsp_ds_l: IN STD_LOGIC;-- dsp's Data Memory Selectdsp_io_strobe_l: IN STD_LOGIC;-- dsp's I/O Strobedsp_is_l: IN STD_LOGIC;-- dsp's I/O Memory Selectdsp_m_strobe_l: IN STD_LOGIC;-- dsp's Memory Strobedsp_ps_l: IN STD_LOGIC;-- dsp's Program Memory Selectdsp_rw_l: IN STD_LOGIC;-- dsp's Read/Write Linedb_abce_l: OUT STD_LOGIC;-- AB Data Latch CEdb_able_l: OUT STD_LOGIC;-- AB Data Latch LEdb_aboe_l: OUT STD_LOGIC;-- AB Data Latch OEdb_bace_l: OUT STD_LOGIC;-- BA Data Latch CEdb_bale_l: OUT STD_LOGIC;-- BA Data Latch LEdb_baoe_l: OUT STD_LOGIC;-- BA Data Latch OEdc_ds_l: OUT STD_LOGIC;-- DC Data Selectdc_is_l: OUT STD_LOGIC;-- DC I/O Selectdc_ps_l: OUT STD_LOGIC;-- DC Program Selectdc_io_strb_l: OUT STD_LOGIC;-- Daughter Card I/O Strobedc_m_strb_l: OUT STD_LOGIC);-- DC Memory StrobeEND COMPONENT; -- daughter_boardCOMPONENT decodePORT(dm_mem_loc: IN STD_LOGIC;-- Data Memory Location (Onboard or Daughtercard) dsp_addr_high : IN STD_LOGIC;dsp_addr_mid: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -- dsp addr 12 -> 15dsp_ds_l: IN STD_LOGIC;-- DSP's Data Space Selectdsp_is_l: IN STD_LOGIC;-- DSP's I/O Space Selectdsp_ps_l: IN STD_LOGIC;-- DSP's Program Space Selectdsp_rw_l: IN STD_LOGIC;-- dsp's read/write signalmem_type_ds: IN STD_LOGIC;-- flash/sram memory select (reg)mem_type_ps: IN STD_LOGIC;-- flash/sram memory select (reg)dsp_data_dir: OUT STD_LOGIC;-- dsp data buffer directiondsp_data_oe_l: OUT STD_LOGIC;-- dsp data buffer oedsp_cpld_cs: OUT STD_LOGIC;-- DSP's CPLD Chip Enableflash_ds_l: OUT STD_LOGIC;-- flash chip enable for data spaceflash_ps_l: OUT STD_LOGIC;-- flash chip enable for program spacesram_ds_l: OUT STD_LOGIC;-- sram chip enable for data spacesram_ps_l: OUT STD_LOGIC);-- sram chip enable for program spaceEND COMPONENT; -- decodeCOMPONENT registersPORT(board_reset_l: IN STD_LOGIC; -- board resetcpld_rev: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -- cpld revisiondc_det_l: IN STD_LOGIC; -- daughter board detectdc_stat: IN STD_LOGIC_VECTOR(1 DOWNTO 0);dsp_addr_low: IN STD_LOGIC_VECTOR(2 DOWNTO 0); -- dsp addr 0 -> 3dsp_cpld_cs: IN STD_LOGIC; -- dsp cpld chip seldsp_data_in: IN STD_LOGIC_VECTOR(7 DOWNTO 0); -- dsp data In 0 -> 7dsp_io_strobe_l: IN STD_LOGIC; -- dsp's I/O strobedsp_reset_l: IN STD_LOGIC; -- dsp reset status for registerdsp_rw_l: IN STD_LOGIC;codec_mt_rdy: IN STD_LOGIC;user_switch0: IN STD_LOGIC;-- user dip switch 0user_switch1: IN STD_LOGIC;-- user dip switch 1user_switch2: IN STD_LOGIC;-- user dip switch 2user_switch3: IN STD_LOGIC;-- user dip switch 3board_ver: IN STD_LOGIC_VECTOR(2 DOWNTO 0);bsp2_sel: OUT STD_LOGIC; -- McBSP2 sel Controldc_32odd: OUT STD_LOGIC; -- DB Memory Access Even/Odddc_cntl: OUT STD_LOGIC_VECTOR(1 DOWNTO 0);dm_mem_loc: OUT STD_LOGIC; -- Data Memory Location (Onboard or Daughtercard) dm_page: OUT STD_LOGIC_VECTOR(4 DOWNTO 0); -- memory page 0 -> 4dc_reset_reg: OUT STD_LOGIC; -- DB Reset from DSPdc_wide: OUT STD_LOGIC; -- DB Memory Width 16/32dsp_data_out: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -- dsp data out 0 -> 7 mem_type_ds: OUT STD_LOGIC; -- CE for FLASH or SRAMmem_type_ps: OUT STD_LOGIC; -- CE for FLASH or SRAMdc_io_cntl : OUT STD_LOGIC;user_led: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);codec_mt_start: OUT STD_LOGIC;codec_m_data: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);codec_div_sel : OUT STD_LOGIC;codec_clk_hold : OUT STD_LOGIC;codec_clk_div : OUT STD_LOGIC_VECTOR( 1 downto 0 ) );END COMPONENT; -- registersCOMPONENT codecPORT(board_reset_l: IN STD_LOGIC;-- Reset Signalcodec_clk: IN STD_LOGIC; -- PLL Clockcodec_mt_start: IN STD_LOGIC; -- load new valuecodec_m_data: IN STD_LOGIC_VECTOR(15 DOWNTO 0); -- Datacodec_bclk: OUT STD_LOGIC;codec_fs: OUT STD_LOGIC;codec_mc: OUT STD_LOGIC; -- codec master clockcodec_md: OUT STD_LOGIC; -- codec master datacodec_ml: OUT STD_LOGIC;-- codec master loadcodec_mt_rdy: OUT STD_LOGIC;codec_div_sel : IN STD_LOGIC;codec_clk_hold : IN STD_LOGIC;codec_clk_div : IN STD_LOGIC_VECTOR( 1 DOWNTO 0 );codec_clk_out : OUT STD_LOGIC);END COMPONENT;-- codecCOMPONENT resetPORT(board_reset_l: IN STD_LOGIC; -- board reset from tps3707button_reset_l: IN STD_LOGIC; -- reset from push buttondc_reset_reg: IN STD_LOGIC; -- db reset register (dsp)db_vcc_bad_l: IN STD_LOGIC; -- 3.3b db monitorusb_dsp_reset_l: IN STD_LOGIC; -- dsp reset from usb host intf.emu_sel: IN STD_LOGIC; -- Emulation Selected (JTAG or On-board)reset_strobe_l: OUT STD_LOGIC; -- reset strobe to tps3707dc_reset_l: OUT STD_LOGIC);-- reset to dcEND COMPONENT; -- resetBEGIN------------------------------------------------------------------------ Input Pin Assignments----------------------------------------------------------------------board_reset_l <= board_reset_l_pin;board_ver(2) <= board_ver2_pin;board_ver(1) <= board_ver1_pin;board_ver(0) <= board_ver0_pin;button_reset_l <= button_reset_l_pin;clk_20mhz <= clk_20mhz_pin;dc_det_l <= dc_det_l_pin;db_vcc_bad_l <= db_vcc_bad_l_pin;dc_stat(1) <= dc_stat1_pin;dc_stat(0) <= dc_stat0_pin;dsp_addr_high <= DSP_ADDR22_pin;dsp_addr_mid(3) <= DSP_ADDR15_pin;dsp_addr_mid(2) <= DSP_ADDR14_pin;dsp_addr_mid(1) <= '0'; -- Was DSP_ADDR13_pindsp_addr_mid(0) <= '0'; -- Was DSP_ADDR12_pindsp_addr_low(2) <= DSP_ADDR2_pin;dsp_addr_low(1) <= DSP_ADDR1_pin;dsp_addr_low(0) <= DSP_ADDR0_pin;dsp_data_in(7) <= dsp_data7_pin;dsp_data_in(6) <= dsp_data6_pin;dsp_data_in(5) <= dsp_data5_pin;dsp_data_in(4) <= dsp_data4_pin;dsp_data_in(3) <= dsp_data3_pin;dsp_data_in(2) <= dsp_data2_pin;dsp_data_in(1) <= dsp_data1_pin;dsp_data_in(0) <= dsp_data0_pin;dsp_ds_l <= dsp_ds_l_pin;dsp_io_strobe_l <= dsp_io_strobe_l_pin;dsp_is_l <= dsp_is_l_pin;dsp_m_strobe_l <= dsp_m_strobe_l_pin;dsp_ps_l <= dsp_ps_l_pin;dsp_rw_l <= dsp_rw_l_pin;codec_clk <= codec_clk_pin;usb_dsp_reset_l <= usb_dsp_reset_l_pin;user_switch0 <= user_switch0_pin;user_switch1 <= user_switch1_pin;user_switch2 <= user_switch2_pin;user_switch3 <= user_switch3_pin;emu_sel <= emu_sel_pin;------------------------------------------------------------------------ Bi-Directional Output Pin Assignments----------------------------------------------------------------------dsp_data7_pin <= dsp_data_out(7) WHEN (dsp_cpld_cs = '1' AND dsp_rw_l = '1') ELSE 'Z';dsp_data6_pin <= dsp_data_out(6) WHEN (dsp_cpld_cs = '1' AND dsp_rw_l = '1') ELSE 'Z';dsp_data5_pin <= dsp_data_out(5) WHEN (dsp_cpld_cs = '1' AND dsp_rw_l = '1') ELSE 'Z';dsp_data4_pin <= dsp_data_out(4) WHEN (dsp_cpld_cs = '1' AND dsp_rw_l = '1') ELSE 'Z';dsp_data3_pin <= dsp_data_out(3) WHEN (dsp_cpld_cs = '1' AND dsp_rw_l = '1') ELSE 'Z';dsp_data2_pin <= dsp_data_out(2) WHEN (dsp_cpld_cs = '1' AND dsp_rw_l = '1') ELSE 'Z';dsp_data1_pin <= dsp_data_out(1) WHEN (dsp_cpld_cs = '1' AND dsp_rw_l = '1') ELSE 'Z';dsp_data0_pin <= dsp_data_out(0) WHEN (dsp_cpld_cs = '1' AND dsp_rw_l = '1') ELSE 'Z';------------------------------------------------------------------------ Output Pin Assignments----------------------------------------------------------------------bsp2_sel_pin <= bsp2_sel;dc_cntl1_pin <= dc_cntl(1);dc_cntl0_pin <= dc_cntl(0);db_abce_l_pin <= db_abce_l;db_able_l_pin <= db_able_l;db_aboe_l_pin <= db_aboe_l;db_bace_l_pin <= db_bace_l;db_bale_l_pin <= db_bale_l;db_baoe_l_pin <= db_baoe_l;dm_mem_loc_pin <= dm_mem_loc;dc_ds_l_pin <= dc_ds_l;dc_is_l_pin <= dc_is_l;dc_ps_l_pin <= dc_ps_l;dc_io_strb_l_pin <= dc_io_strb_l;dc_m_strb_l_pin <= dc_m_strb_l;dc_reset_l_pin <= dc_reset_l;dm_page4_pin <= dm_page(4);dm_page3_pin <= dm_page(3);dm_page2_pin <= dm_page(2);dm_page1_pin <= dm_page(1);dm_page0_pin <= dm_page(0);dsp_data_dir_pin <= dsp_data_dir;dsp_data_oe_l_pin <= dsp_data_oe_l;--flash_ds_l_pin <= flash_ds_l;--flash_ps_l_pin <= flash_ps_l;codec_bclk_pin <= codec_bclk;codec_fs_pin <= codec_fs;codec_mc_pin <= codec_mc;codec_md_pin <= codec_md;codec_ml_pin <= codec_ml;codec_clk_out_pin <= codec_clk_out;reset_strobe_l_pin <= reset_strobe_l;--sram_ds_l_pin <= sram_ds_l;--sram_ps_l_pin <= sram_ps_l;user_led3_l_pin <= user_led(3);user_led2_l_pin <= user_led(2);user_led1_l_pin <= user_led(1);user_led0_l_pin <= user_led(0);dc_cntl_oe_l_pin <= '0'; -- WHEN dc_det_l_pin = '0' else '1';------------------------------------------------------------------------ BEGIN: REV C ADDS---------------------------------------------------------------------- dc_we_l_pin <= '0' when ( ( dsp_m_strobe_l = '0'and dsp_rw_l = '0')or ( dc_io_strb_l = '0'and dsp_rw_l = '0'and dc_io_cntl = '1'))else '1';dc_re_l_pin <= '0' when ( ( dsp_m_strobe_l = '0'and dsp_rw_l = '1')or ( dc_io_strb_l = '0'and dsp_rw_l = '1'and dc_io_cntl = '1'))else '1';dc_oe_l_pin <= not dsp_rw_l_pin;sram_re_l_pin <= '0' when (( dsp_m_strobe_l = '0'and dsp_rw_l = '1')and( ( dsp_ps_l = '0'and mem_type_ps = '1')or( dsp_ds_l = '0'and mem_type_ds = '1'and dm_mem_loc = '0'))) else '1';sram_we_l_pin <= '0' when (( dsp_m_strobe_l = '0'and dsp_rw_l = '0')and( ( dsp_ps_l = '0'and mem_type_ps = '1')or( dsp_ds_l = '0'and mem_type_ds = '1'and dm_mem_loc = '0'))) else '1';flash_oe_l_pin <= '0' when (( dsp_m_strobe_l = '0'and dsp_rw_l = '1')and( ( dsp_ps_l = '0'and mem_type_ps = '0')or( dsp_ds_l = '0'and mem_type_ds = '0'and dm_mem_loc = '0'))) else '1';flash_we_l_pin <= '0' when (( dsp_m_strobe_l = '0'and dsp_rw_l = '0')and( ( dsp_ps_l = '0'and mem_type_ps = '0')or( dsp_ds_l = '0'and mem_type_ds = '0'and dm_mem_loc = '0'))) else '1';flash_ce_l_pin <= '0' when ( dsp_m_strobe_l = '0'and( mem_type_ps = '0'or( mem_type_ds = '0'and dm_mem_loc = '0'))) else '1';------------------------------------------------------------------------ END: REV C ADDS---------------------------------------------------------------------------------------------------------------------------------------------- CPLD Revision Number-- Current Status : Rev 2------------------------------------------------------------------------cpld_rev <= "0010";-- CPLD Versions:-- 0000 Original C5416 DDB CPLD Code-- 0001 Added in code to derive codec clock for 6/8/24/48KHz operation -- 0010 Changed memory interface------------------------------------------------------------------------ Instantiate Components----------------------------------------------------------------------I_daughter_board : daughter_boardPORT MAP(dc_32odd,dm_mem_loc,dc_wide,dsp_addr_high,dsp_addr_low,dsp_addr_mid,dsp_ds_l,dsp_io_strobe_l,dsp_is_l,dsp_m_strobe_l,dsp_ps_l,dsp_rw_l,db_abce_l,db_able_l,db_aboe_l,db_bace_l,db_bale_l ,db_baoe_l,dc_ds_l,dc_is_l,dc_ps_l,dc_io_strb_l,dc_m_strb_l);I_decode : decodePORT MAP(dm_mem_loc,dsp_addr_high,dsp_addr_mid,dsp_ds_l,dsp_is_l,dsp_ps_l,dsp_rw_l,mem_type_ds,mem_type_ps,dsp_data_dir,dsp_data_oe_l,dsp_cpld_cs,flash_ds_l,flash_ps_l,sram_ds_l,sram_ps_l);I_registers : registersPORT MAP(board_reset_l,cpld_rev,dc_det_l,dc_stat,dsp_addr_low,dsp_cpld_cs,dsp_data_in,dsp_io_strobe_l,dsp_reset_l,dsp_rw_l,codec_mt_rdy,user_switch0,user_switch1,user_switch2,user_switch3,board_ver,bsp2_sel,dc_32odd,dc_cntl,dm_mem_loc,dm_page,dc_reset_reg,dc_wide,dsp_data_out,mem_type_ds,mem_type_ps,dc_io_cntl,user_led,codec_mt_start,codec_m_data,codec_div_sel,codec_clk_hold, codec_clk_div);I_codec : codecPORT MAP(board_reset_l,codec_clk,codec_mt_start,codec_m_data,codec_bclk,codec_fs,codec_mc,codec_md,codec_ml,codec_mt_rdy,codec_div_sel,codec_clk_hold, codec_clk_div,codec_clk_out);I_reset : resetPORT MAP(board_reset_l,button_reset_l,dc_reset_reg,db_vcc_bad_l,usb_dsp_reset_l,emu_sel,reset_strobe_l,dc_reset_l);END rtl;。