Data Sheet: ACD80800 Advanced Communication Devices Data Sheet: ACD80800 Rev.1.0.0.E Last Update: September 19, 2000 Please check ACD’s website for update information before starting a design Web site: http://www.acdcorp.com/tech.html or Contact ACD at: Email: [email protected] Tel: 510-354-6810 Fax: 510-354-6834 ACD Confidential Material For ACD authorized customer use only. No reproduction or redistribution without ACD’s prior permission. 1 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. Address Resolution Logic (8K MAC Addresses) Data Sheet: ACD80800 CONTENT LIST 1. SUMMARY 2. FEATURES 3. FUNCTIONAL DESCRIPTION 4. PIN DESCRIPTION 5. INTERFACE DESCRIPTION 6. REGISTER DESCRIPTION 7. COMMAND DESCRIPTION 8. TIMING DESCRIPTION 9. ELECTRICAL SPECIFICATION ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. 10. PACKAGING 2 2. FEATURES The ACD80800 serves as an Address Resolution Logic for ACD’s switch controller chips (ACD82124, ACD82012 etc.) through a glueless ARL interface. It automatically builds up an address table and can map up to 8K MAC addresses into their associated ports. • • The ACD80800 can work without a CPU in a unmanaged switch system, or with a CPU and an ACD MIB (ACD80900 Management Information Base). A direct input/output interface is integrated to support a management CPU. The CPU can configure the operation mode of the ACD80800, learn all the addresses in the address table, add new addresses into the table, control security or filtering features of each address entry, etc. The ACD80800 is designed with such a high performance that, it will never slow down the frame switching operation conducted by the ACD’s switch controllers. Together with the non-blocking architecture of the ACD’s switch controllers, the chip set (a ACD switch controller plus the ACD80800, plus ACD80900 in a managed switch system) can provide wire speed forwarding rate under any type of traffic load. • • • • • • • • • • • • • Supports up to 8K MAC address lookup Provides Glueless ARL Interface with ACD’s switch controller chip Provides Direct Input/Output type of interface for the management CPU Provides UART type of interface for the management CPU Wire speed address lookup time. Wire speed address learning time. Address can be automatically learned from switch without THE CPU intervention Address can be manually added by the CPU through the CPU interface Each MAC address can be secured by the CPU from being changed or aged out Each MAC address can be marked by the CPU from receiving any frame Each newly learned MAC address is notified to the CPU Each aged out MAC address is notified to the CPU Automatic address aging control, with configurable aging period 0.35 micron, 3.3V CMOS technology 128-Pin PQFP package Data Sheet: ACD80800 1. SUMMARY ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. Figure-1: ACD80800 Used in A Managed n-Port Fast Ethernet Switch System P(n-1) P(n-2) P(n-3) ACD82xxx n-Port Fast Ethernet Switch Controller ACD80900 MIB P1 P0 CPU ASRAM ACD80800 Address Resolution Logic 3 ACD80800 provides Address Resolution service for ACD’s switch controller chip. ACD80800 provides a glueless interface with ACD’s switch controller, and is used to build an address table and provide address lookup service to ACD’s switch controller. Figure 2 is a block diagram of ACD80800. Traffic Snooping All Ethernet frames received by ACD’s switch controller have to be stored into memory buffer. As the frame data are written into memory, the status of the data shown on the data bus are displayed by ACD’s switch controller through a state bus. ACD80800’s Switch Controller Interface contains the signals of the data bus and the state bus. By snooping the data bus and the state bus of ACD’s switch controller, ACD80800 can detect the occurrence of any destination MAC address and source MAC address embedded inside each frame. Address Learning Each source address caught from the data bus, together with the ID of the ingress port, is passed to the Address Learning Engine of ACD80800. The Address Learning Engine will first determine whether the frame is a valid frame. For a valid frame, it will first try to find the source address from the current address table. If that address doesn’t exist, or if it does exist but the port ID associated with the MAC address is not the ingress port, the address will be learned into the address table. After an address is learned by the address learning engine, the CPU will be notified to read this newly learned address so that it can add it into the CPU’s address table. Data Sheet: ACD80800 3. FUNCTIONAL DESCRIPTION Address Aging After each source address is learned into the address table, it has to be refreshed at least once within each address aging period. Refresh means it is caught again from the switch interface. If it has not occurred for a pre-set aging period, the address aging engine will remove the address from the address table. After an address is removed by the address aging engine, the CPU will be notified through interrupt request that it needs to read this aged out address so that it can remove this address from the CPU’s address table. Address Lookup Each destination address is passed to the Address Address Learning Engine Address Aging Engine Control Registers Command Registers Data Registers CPU Interface Address Registers Switch Interface ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. Figure-2. ACD80800 Block Diagram Address Lookup Engine CPU Interface Engine Address Table (8K Entries) 4 CPU Interface ACD80800 provides a direct input/output type of interface for a management CPU to access various kind of registers inside ACD80800. The interface has 8-bit data bus, and 5-bit address bus. The timing of read and write operation is controlled by output enable signal and write enable signal. For details of CPU interface timing information, refer to the section of “Timing Description.” The CPU can also choose to access the registers of ACD80800 by sending commands to the UART data input line. Each command is consisted by action (read or write), register type, register index, and data. Each result of command execution is returned to the CPU through the UART data output line. CPU Interface Registers ACD80800 provides a bunch of registers for the control Data Sheet: ACD80800 CPU. Through the registers, the CPU can read all address entries of the address table, delete particular addresses from the table, add particular addresses into the table, secure an address from being changed, set filtering on some addresses, change the hashing algorithm etc. Through a proper interrupt request signal, the CPU can be notified whenever it needs to retrieve data for a newly-learned address or an aged-out address so that the CPU can build an exact same address table learned by ACD80800. CPU Interface Engine The command sent by the control CPU is executed by the CPU Interface Engine. For example, the CPU may send a command to learn the first newly-learned address. The CPU Interface Engine is responsible to find the newly-learned address from the address table, and passes it to CPU. The CPU may request to learn next newly-learned address. Then, it is again the responsibility of the CPU Interface Engine to search for next newly-learned address from the address table. Address Table The address table can hold up to 8K MAC addresses, together with the associated port ID, security flag, filtering flag, new flag, aging information etc. The address table resides in the embedded SRAM inside ACD80800. ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. Lookup Engine of ACD80800. The Address Lookup Engine checks if the destination address matches with any existing address in the address table. If it does, ACD80800 returns the associated Port ID to ACD’s switch controller through the output data bus. Otherwise, a no match result is passed to ACD’s switch controller through the output data bus. 5 Data Sheet: ACD80800 4. PIN DESCRIPTIONS VDD GND WCHDOG nRESET NC SWDIR1 SWDIR0 SWSTAT3 SWSTAT2 SWSTAT1 SWSTAT0 GND VDD SWEOF SWSYNC SWPID4 SWPID3 SWPID2 SWPID1 SWPID0 SWCLK GND GND ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 VDD SWDO0 SWDO1 SWDO2 SWDO3 SWDOV GND VDD SWDI0 SWDI1 SWDI2 SWDI3 SWDI4 SWDI5 GND SWDI27 SWDI26 SWDI25 SWDI24 SWDI23 SWDI22 SWDI21 SWDI20 SWDI19 SWDI18 SWDI17 SWDI16 SWDI15 SWDI14 SWDI13 SWDI12 SWDI11 SWDI10 SWDI9 SWDI8 SWDI7 SWDI6 VDD 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 SWDI39 SWDI38 SWDI37 SWDI36 SWDI35 SWDI34 SWDI33 SWDI32 SWDI31 SWDI30 VDD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 GND SWDI29 SWDI28 GND SWDI63 SWDI62 SWDI61 SWDI60 SWDI59 SWDI58 SWDI57 SWDI56 SWDI55 SWDI54 SWDI53 SWDI52 SWDI51 SWDI50 SWDI49 SWDI48 VDD GND SWDI47 SWDI46 SWDI45 SWDI44 SWDI43 SWDI42 SWDI41 SWDI40 107 106 105 104 103 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 VDD GND nCPUCS nCPUWE nCPUOE CPUA4 CPUA3 CPUA2 CPUA1 CPUA0 GND VDD CPUD7 CPUD6 CPUD5 CPUD4 CPUD3 CPUD2 CPUD1 CPUD0 CPUIRQ GND VDD UARTDO UARTDI GND Figure-3: Pin Diagram Of ACD80800 (The ARL Chip) 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 GND S WDI63 S WDI62 S WDI61 S WDI60 S WDI59 S WDI58 S WDI57 S WDI56 S WDI55 S WDI54 S WDI53 S WDI52 S WDI51 S WDI50 S WDI49 S WDI48 VDD GND S WDI47 S WDI46 S WDI45 S WDI44 S WDI43 S WDI42 S WDI41 S WDI40 S WDI39 S WDI38 S WDI37 S WDI36 S WDI35 S WDI34 S WDI33 S WDI32 S WDI31 S WDI30 VDD GND S WDI29 S WDI28 S WDI27 S WDI26 S WDI25 S WDI24 S WDI23 S WDI22 S WDI21 S WDI20 S WDI19 S WDI18 S WDI17 S WDI16 S WDI15 S WDI14 S WDI13 S WDI12 S WDI11 S WDI10 S WDI9 S WDI8 S WDI7 S WDI6 VDD Description Ground. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. 3.3V power s upply. Ground. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. 3.3V power s upply. Ground. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. 3.3V power s upply. I/O 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V Pin Name I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I - 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 GND S WDI5 S WDI4 S WDI3 S WDI2 S WDI1 S WDI0 VDD GND S WDOV S WDO3 S WDO2 S WDO1 S WDO0 VDD GND GND S WCL K S WPID0 S WPID1 S WPID2 S WPID3 S WPID4 S WS YNC S WE OF VDD GND S WS T AT 0 S WS T AT 1 S WS T AT 2 S WS T AT 3 S WDIR0 S WDIR1 NC nRE S E T WCHDOG GND VDD GND UART DI UART DO VDD GND CPUIRQ CPUD0 CPUD1 CPUD2 CPUD3 CPUD4 CPUD5 CPUD6 CPUD7 VDD GND CPUA0 CPUA1 CPUA2 CPUA3 CPUA4 nCPUOE nCPUWE nCPUCS GND VDD Description Ground. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. Data from s witch controller chip. 3.3V power s upply. Ground. Output data valid s ignal to s witch controller chip. Output data to s witch controller chip. Output data to s witch controller chip. Output data to s witch controller chip. Output data to s witch controller chip. 3.3V power s upply. Ground. Ground. 50MHz reference clock s ignal from s witch controller chip. Port ID indication s ignal from s witch controller chip. Port ID indication s ignal from s witch controller chip. Port ID indication s ignal from s witch controller chip. Port ID indication s ignal from s witch controller chip. Port ID indication s ignal from s witch controller chip. Port 0 indication s ignal from s witch controller chip. E nd Of F rame indication s ignal from s witch controller chip. 3.3V power s upply. Ground. Data S tatus s ignal from s witch controller chip. Data S tatus s ignal from s witch controller chip. Data S tatus s ignal from s witch controller chip. Data S tatus s ignal from s witch controller chip. Data direction indication s ignal from s witch controller chip. Data direction indication s ignal from s witch controller chip. Not connected. Hardware res et pin. Watch dog s ignal. Ground. 3.3V power s upply. Ground. UART data input line. UART data output line. 3.3V power s upply. Ground. Interrupt reques t. CPU data bus . CPU data bus . CPU data bus . CPU data bus . CPU data bus . CPU data bus . CPU data bus . CPU data bus . 3.3V power s upply. Ground. CPU addres s bus . CPU addres s bus . CPU addres s bus . CPU addres s bus . CPU addres s bus . Output E nable s ignal from CPU. Write E nable s ignal from CPU. Chip S elect s ignal from CPU. Ground. 3.3V power s upply. I/O 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V I I I I I I O O O O O I I I I I I I I I I I I I I I O I O O I/O I/O I/O I/O I/O I/O I/O I/O I I I I I I I I - 7 Data Sheet: ACD80800 Pin Name ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. Pin Table Switch interface provides a communication channel between ACD’s switch controller chip and ACD80800. As a frame is being received by ACD’s switch controller chip , the destination address and source address of the frame are snooped from the SWDIx lines of ACD80800, with respect to the SWCLK signal. ACD80800 carries a lookup process for each destination address, and a learning process for each source address. The result of the lookup is returned to the switch controller chip through the SWDOx lines. Table 1 shows the associated signals in the Switch Interface. Table-1: Switch Interface Name SWDI0 ~ SWDI63 SWSTAT0 ~ SWSTAT3 SWEOF SWDIR0 ~ SWDIR1 SWSYNC SWPID0 ~ SWPID4 SWCLK SWDOV SWDO0 ~ SWDO3 Type I Description Input data, which can be 48bit or 64-bit wide I Input data state I I End of frame indication signal Data direction indication signal Port synchronization signal I Port-ID indication signal I O Reference clock Output data valid signal Output data which can be 2bit or 4-bit wide I O The SWDIx signal comes from the SRAM Data bus of ACD’s switch controller chip . Since all data of the received frames have to be written into the shared memory through the Data bus, the bus can be monitored for occurrence of DA and SA values, indicated by the associated state bits. The signals in SWDIx bus can be a 48-bit or 64-bit wide data bus. For a 48-bit wide bus, the first word will be the DA and the second word will be the SA. For a 64-bit wide bus, DA is the first 48-bit of first word, SA is the last 16-bit of first word plus first 32bit of second word. SWDIR is a 2-bit signal to indicate the direction of the data displayed on the SWDI bus, 01 for receiving, 10 for transmitting, 00 or 11 for other states. ACD80800 only deals with the received data. 0000 - Third to Last word 0001 - First word 0010 - Second word 0011 - Reserved 0100 - Reserved 0101 - Drop event 0110 - Jabber 0111 - False carrier 1000 - Alignment error 1001 - Flow control/collision* 1010 - Short event/excessive collision* 1011 - Runt/Late collision* 1100 - Symbol error 1101 - FCS error 1110 - Long event 1111 - Reserved Data Sheet: ACD80800 Switch Interface • • • • • • • • • • • • • • • • * Note: error type depends on SWDIR is 01 or 10. SWSYNC is used to indicate port 0 is driving the Data bus. It is used when the bus is evenly allocated in a time division multiplexing manner, such that a monitoring device can implement a counter to indicate the ID of the port which is driving the SWDI bus, and use SWSYNC signal to reset the counter. When SWSYNC is in use, SWPID is ignored. SWPID is used to indicate the ID of the port which is driving the Data bus. When SWPID is in use, SWSYNC is ignored. SWEOF is used to indicate the start and end of a frame. It is always asserted when the corresponding port is idling. The start of a frame is indicated by a high-to-low transition of SWEOF signal. The end of a frame is indicated by a low to high transition of SWEOF signal. SWCLK is used to provide timing reference of input data snooping and output data latching. The signal is also used as the system clock of the chip. SWDOV is used to indicate the start of a lookup result package. SWDOx is used to return the result of lookup to ACD’s switch controller chip. Data is latched onto SWDOx bus with respect to the rising edge of SWCLK signal. Each result package is consisted by 5-bit source port ID, 2bit result, and 5-bit destination port ID. The 2-bit result field is defined as 01 for match, with the port ID shown by the 5-bit destination port ID field; 10 for no match; 11 for forced disregard (filtering). SWSTAT bus is a 4-bit signal, used to indicate the meaning (status) of the data. The 4-bit status is defined as: 8 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. 5. INTERFACE DESCRIPTION The CPU interface provides a communication channel between the CPU and the ACD80800. Basically, the CPU sends command to the ACD80800 by writing into associated registers, and retrieve result from ACD80800 by reading corresponding registers. The registers are described in the section of “Register Description.” The CPU interface signals are described by table 2: Table-2: CPU Interface Name CPUA0 ~ CPUA4 CPUD0 ~ CPUD7 nCPUOE nCPUWE nCPUCS CPUIRQ I/O UARTDI UARTDO Description 5 address lines for register selection. I I/O 8 data lines. I I I O Read enable signal, low active. Write enable signal, low active. Chip Select signal, low active. Interrupt request signal. I O UART input data line. UART output data line. • • • • UARTDO is used to return the result of command execution to the CPU. The format of the result packet is shown as follows: Header where: • CPUAx is the address bus used to select the registers of the ACD80800. CPUDx is the data bus used to pass data between the CPU and the registers of the ACD80800. nCPUOE is used to control the timing of the read operation. nCPUWE is used to control the timing of the write operation. nCPUCS is used to make the ACD80800 active to the nCPUOE or nCPUWE signals. CPUIRQ is used to generate an interrupt request to the CPU. For each source of the interrupt, refer to the description of the interrupt source register. UARTDI is used by the control CPU to send command into the ACD80800. The baud rate will be automatically detected by the ACD80800. The result will be returned through the UARTDO line with the detected baud rate. The format of the command packet is shown as follows: Header Address Data Checksum Header is further defined as: ∗ b1:b0 - read or write, 01 for read, 11 for write ∗ b4:b2 - device number, 000 to 111 (0 to 7) ∗ b7:b5 - device type, 010 for ARL Address - 8-bit value used to select the register to access Data - 32-bit value, only the LSB is used for write operation, all 0 for read operation Checksum - 8-bit value of XOR of all bytes Data Sheet: ACD80800 where: • • • Address Data Checksum Header is further defined as: ∗ b1:b0 - read or write, 01 for read, 11 for write ∗ b4:b2 - device number, 000 to 111 (0 to 7) ∗ b7:b5 - device type, 010 for ARL Address - 8-bit value for address of the selected register Data - 32-bit value, only the LSB is used for read operation, all 0 for write operation Checksum - 8-bit value of XOR of all bytes The ACD80800 will always check the CMD header to see if both the device type and the device number matches with its setting. If not, it ignores the command and will not generate any response to this command. Other Interface (table 3) Table-3: Other Interface Name I/O Description WCHDOG O nRESET VDD I - Alive signal from ACD80800 to indicate it is working properly. Hardware reset signal, low active. 3.3V power supply. GND - Ground. WCHDOG signal is used to prevent the system from hitting dead-lock by any abnormal event. Under normal condition, the output signal from the WCHDOG pin will not stay at low for longer than 10ms. If the state of 9 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. CPU Interface Configuration Interface The registers accessible to the CPU are described by table 4: The following table shows the Power-On-Strobed configuration setting: Power-On-Strobed Setting Name BIST Enable IC Test Enable DIO Enable Description Boot-Internal-Self-Test for optional internal RAM test IC Manufacturer test use only: always pull low 1 = Data I/O Shared Pin# 78 77 76 0 = UART Mode Port ID Select NO CPU 1 = for 82124 or 82012 0 = reserved 11 = No CPU, 80800 will self initiate 00 = With CPU, 80800 will wait for CPU to initiate Bus Width 00 = 32 bit ( reserved ) Selection 01 = 48 bit ( 82124 or 82012) 10 = reserved 11 = 64 bit ( reserved ) 000 = ID for the only or the first UART ID 80800 on the system 001 = ID for the second 80800 on the system with two 80800s Note: High=1=Enable 75 74/111 Table-4: Register Description Reg. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Name DataReg0 DataReg1 DataReg2 DataReg3 DataReg4 DataReg5 DataReg6 DataReg7 AddrReg0 AddrReg1 CmdReg RsltReg CfgReg IntSrcReg IntMskReg 15 nLearnReg0 16 nLearnReg1 17 nLearnReg2 18 AgeTimeReg0 19 AgeTimeReg 1 20 PosCfg0 21 PosCfg1 110/109 114/113/112 Description Byte 0 of data Byte 1 of data Byte 2 of data Byte 3 of data Byte 4 of data Byte 5 of data Byte 6 of data Byte 7 of data LSB of address value MSB of address value Command register Result register Configuration register Interrupt source register Interrupt mask register Address learning disable register for port 0 - 7 Address learning disable register for port 8 - 15 Address learning disable register for port 16 - 23 LSB of aging period register MSB of aging period register Power On Strobe configuration register 0 Power On Strobe configuration register 1 6. REGISTER DESCRIPTION ACD80800 provides a bunch of registers for the CPU to access the address table inside it. Command is sent to ACD80800 by writing into the associated registers. Before the CPU can pass a command to ACD80800, it must check the result register (register 11) to see if the command has been done. When the Result register indicates the command has been done, the CPU may need to retrieve the result of previous command first. After that, the CPU has to write the associated parameter of the command into the Data registers. Then, the CPU can write the command type Data Sheet: ACD80800 nRESET pin is used to do a hardware reset to the ACD80800. Please note that after a hardware reset, all learned address is cleared, and the address table has to be built again. into the command register. When a new command is written into the command register, ACD80800 will change the status of the Result register to 0. The Result register will indicate the completion of the command at the end of the execution. Before the completion of the execution, any command written into the command register is ignored by ACD80800. The DataRegX are registers used to pass the parameter of the command to the ACD80800, and the result of the command to the CPU. The AddrRegX are registers used to specify the address associated with the command. The CmdReg is used to pass the type of command to the ACD80800. The command types are listed in table 5. The details of each command is described in the chapter of “Command Description.” 10 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. WCHDOG remains at low state, the chip is not working properly and needs to be reset. 0x10 0x11 0x20 0x21 0x30 0x31 0x40 0x41 0x50 0x51 0x60 0x61 0x80 0x81 Description Add the specified MAC address into the address table Set a lock for the specified MAC address Set a filtering flag for the specified MAC address Delete the specified MAC address from the address table Assign a port ID to the specified MAC address Read the first entry of the address table Read next entry of address book Read first valid entry Read next valid entry Read first new page Read next new page Read first aged page Read next aged page Read first locked page Read next locked page Read first filtered page Read next filtered page Read first page with specified PID Read next page with specified PID 0xFF System reset 0x09 0x0A 0x0B 0x0C 0x0D The RstReg is used to indicate the status of command execution. The result code is listed as follows: • • • 01 - command is being executed and is not done yet 10 - command is done with no error 1x - command is done, with error indicated by x, where x is a 4-bit error code: 0001 for cannot find the entry as specified The CfgReg is used to configure the way the ACD80800 works. The bit definition of CfgReg is described as: • • • • • bit 0 - disable address aging bit 1 - disable address lookup bit 2 - disable DA cache bit 3 - disable SA cache bit 7:4 - hashing algorithm selection, default is 0000 The IntSrcReg is used to indicate what can cause interrupt request to CPU. The source of interrupt is listed as: bit 0 - aged address exists bit 1 - new address exists bit 2 - reserved bit 3 - reserved bit 4 - bucket overflowed bit 5 - command is done bit 6 - system initialization is completed bit 7 - self test failure Data Sheet: ACD80800 Command • • • • • • • • The IntMskReg is used to enable an interrupt source to generate an interrupt request. The bit definition is the same as IntSrcReg. A 1 in a bit enables the corresponding interrupt source to generate an interrupt request once it is set. The nLearnReg[2:0] are used to disable address learning activity from a particular port. If the bit corresponding to a port is set, ACD80800 will not try to learn new addresses from that port. The AgeTimeReg[1:0] are used to specify the period of address aging control. The aging period can be from 0 to 65535 units, with each unit counted as 2.684 second. The PosCfgReg0 is a configuration register whose default value is determined by the pull-up or pull-down status of the associated hardware pin. The bits of PosCfgReg0 is listed as follows: • • • • • bit 0 - BISTEN, shared with ARLDO0, 0 for no self test, 1 for enable self test bit 1 - TESTEN, shared with ARLDO1, 0 for normal operation, 1 for production test. bit 2 - DIOEN, shared with ARLDO2, 0 for using UART, 1 for using DIO. bit 3 - SYNCEN, shared with ARLDO3, 0 for using SWPID, 1 for using SWSYNC. bit 4 - NOCPU*, 0 for have a control CPU, 1 for do not have a control CPU. Note: When NOCPU is set as 0, ACD80800 will not start the initialization process until a System Start command is sent to the command register. The PosCfgReg1 is a configuration register whose default value is determined by the pull-up or pull-down status of the associated hardware pin. The bits of PosCfgReg1 is listed as follows: • • bit 1:0 - BUSMODE, shared with CPUD1:CPUD0, bus width selection, 01 for 48-bit, 10 for 64 bit. bit 2 - CPUGO, shared with CPUD2, only effective when NOCPU bit of PosCfgReg0 is set to 1. Setting CPUGO to 0 means 11 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. Table-5: Command List Parameter: Store the MAC address into DataReg5 DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. Result: the MAC address will be removed from the address table. The result is indicated by the Result register. Data Sheet: ACD80800 • wait for the CPU to send the System Start command before the initialization process can be started. bit 5:3 - UARTID, shared with CPUD5:CPUD3, 3-bit ID for UART communication. Command 0DH 7. COMMAND DESCRIPTION Description: Assign the associated port number to the specified MAC address. Command 09H Parameter: Store the MAC address into DataReg5 DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. Store the associated port number into DataReg6. Parameter: Store the MAC address into DataReg5 DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. Store the port number into DataReg6. Result: the port ID field of the entry containing the specified MAC address will be changed accordingly. The result is indicated by the Result register. Result: the MAC address will be stored into the address table if there is space available. The result is indicated by the Result register. Command 10H Command 0AH Parameter: None Description: Set the Lock bit for the specified MAC address. Result: the state machine will seek for an entry with matched MAC address, and set the Lock bit of the entry. The result is indicated by the Result register. Result: The result is indicated by the Result register. If the command is completed with no error, the content of the first entry of the address book will be stored into the Data registers. The MAC address will be stored into DataReg5 - DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. The port number is stored in DataReg6, and the Flag* bits are stored in DataReg7.The Read Pointer will be set to point to second entry of the address book. Command 0BH Note - the Flag bits are defined as: Parameter: Store the MAC address into DataReg5 DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. Description: Set the Filter flag for the specified MAC address. Parameter: Store the MAC address into DataReg5 DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. Description: Read the first entry of the address table. b7 b6 b5 b4 b3 Rsvd Rsvd Filter Lock New where: Result: the state machine will seek for an entry with matched MAC address, and set the Filter bit of the entry. The result is indicated by the Result register. • Command 0CH • Description: Delete the specified MAC address from the address table. • • • b2 Old b1 b0 Age Valid Filter - 1 indicates the frame heading to this address should be dropped. Lock - 1 indicates the entry should never be changed or aged out. New - 1 indicates the entry is a newly learned address. Old - 1 indicates the address has been aged out. Age - 1 indicates the address has not 12 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. Description: Add the specified MAC address into the address table. Command 11H Description: Read next entry of address book. Parameter: None Result: The result is indicated by the Result register. If the command is completed with no error, the content of the address book entry pointed by Read Pointer will be stored into the Data registers. The MAC address will be stored into DataReg5 - DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. The port number is stored in DataReg6, and the Flag bits are stored in DataReg7. The Read Pointer will be increased by one. Command 20H Description: Read first valid entry. Parameter: None Result: The result is indicated by the Result register. If the command is completed with no error, the content of first valid entry of the address book will be stored into the Data registers. The MAC address will be stored into DataReg5 - DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. The port number is stored in DataReg6, and the Flag bits are stored in DataReg7. The Read Pointer is set to point to this entry. Command 21H Description: Read next valid entry. Parameter: None Result: The result is indicated by the Result register. If the command is completed with no error, the content of next valid entry from the Read Pointer of the address book will be stored into the Data registers. The MAC address will be stored into DataReg5 DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. The port number is stored in DataReg6, and the Flag bits are stored in DataReg7. The Read Pointer is set to point to this entry. Command 30H Description: Read first new page. Parameter: None Result: The result is indicated by the Result register. If the command is completed with no error, the content of first new entry of the address book will be stored into the Data registers. The MAC address will be stored into DataReg5 - DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. The port number is stored in DataReg6, and the Flag bits are stored in DataReg7. The Read Pointer is set to point to this entry. Data Sheet: ACD80800 been visited for current age cycle. Valid - 1 indicates the entry is a valid one. Rsvd - Reserved bits. Command 31H Description: Read next new entry. Parameter: None Result: The result is indicated by the Result register. If the command is completed with no error, the content of next new entry from the Read Pointer of the address book will be stored into the Data registers. The MAC address will be stored into DataReg5 DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. The port number is stored in DataReg6, and the Flag bits are stored in DataReg7. The Read Pointer is set to point to this entry. Command 40H Description: Read first aged entry. Parameter: None Result: The result is indicated by the Result register. If the command is completed with no error, the content of first aged entry of the address book will be stored into the Data registers. The MAC address will be stored into DataReg5 - DataReg0, with DataReg5 contains the MSB of the MAC address and DataReg0 contains the LSB. The port number is stored in DataReg6, and the Flag bits are stored in DataReg7. The Read Pointer is set to point to this entry. Command 41H Description: Read next aged entry. Parameter: None Result: The result is indicated by the Result register. If the command is completed with no error, the content of next aged entry from the Read Pointer of the address book will be stored into the Data registers. The MAC address will be stored into DataReg5 DataReg0, with DataReg5 contains the MSB of the 13 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. • • Description: Read next valid entry. Parameter: None Command 50H Result: The result is indicated by the Result register. If the command is completed with no error, the content of next filtered entry from the Read Pointer of the Parameter: None address book will be stored into the Data registers. The MAC address will be stored into DataReg5 Result: The result is indicated by the Result register. If DataReg0, with DataReg5 contains the MSB of the the command is completed with no error, the content MAC address and DataReg0 contains the LSB. The of first locked entry of the address book will be stored port number is stored in DataReg6, and the Flag bits into the Data registers. The MAC address will be are stored in DataReg7. The Read Pointer is set to stored into DataReg5 - DataReg0, with DataReg5 point to this entry. contains the MSB of the MAC address and DataReg0 contains the LSB. The port number is stored in Command 80H DataReg6, and the Flag bits are stored in DataReg7. Description: Read first entry with specified port The Read Pointer is set to point to this entry. number. Command 51H Parameter: Store port number into DataReg6. Description: Read next locked entry. Result: The result is indicated by the Result register. If Parameter: None the command is completed with no error, the content of first entry of the address book with the said port Result: The result is indicated by the Result register. If number will be stored into the Data registers. The the command is completed with no error, the content MAC address will be stored into DataReg5 of next locked entry from the Read Pointer of the DataReg0, with DataReg5 contains the MSB of the address book will be stored into the Data registers. MAC address and DataReg0 contains the LSB. The The MAC address will be stored into DataReg5 port number is stored in DataReg6, and the Flag bits DataReg0, with DataReg5 contains the MSB of the are stored in DataReg7. The Read Pointer is set to MAC address and DataReg0 contains the LSB. The point to this entry. port number is stored in DataReg6, and the Flag bits are stored in DataReg7. The Read Pointer is set to Command 81H point to this entry. Description: Read next valid entry. Command 60H Parameter: Store port number into DataReg6. Description: Read first filtered page. Result: The result is indicated by the Result register. If Parameter: None the command is completed with no error, the content of next entry from the Read Pointer of the address Result: The result is indicated by the Result register. If book with the said port number will be stored into the the command is completed with no error, the content Data registers. The MAC address will be stored into of first filtered entry of the address book will be stored DataReg5 - DataReg0, with DataReg5 contains the into the Data registers. The MAC address will be MSB of the MAC address and DataReg0 contains the stored into DataReg5 - DataReg0, with DataReg5 LSB. The port number is stored in DataReg6, and the contains the MSB of the MAC address and DataReg0 Flag bits are stored in DataReg7. The Read Pointer is contains the LSB. The port number is stored in set to point to this entry. DataReg6, and the Flag bits are stored in DataReg7. The Read Pointer is set to point to this entry. Description: Read first locked entry. 14 Data Sheet: ACD80800 Command 61H ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. MAC address and DataReg0 contains the LSB. The port number is stored in DataReg6, and the Flag bits are stored in DataReg7. The Read Pointer is set to point to this entry. Data Sheet: ACD80800 FRAME BITS b7 b0 b15 b8 b23 b16 b31 b24 b39 Command FFH Description: System reset. Parameter: None b32 b47 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 D5 x x b 4 6 b 4 5 b 4 4 b 4 3 b 4 2 b 4 1 b 4 7 D4 b 3 9 b 3 8 b 3 7 b 3 6 b 3 5 b 3 4 b 3 3 b 3 2 D3 b 3 1 b 3 0 b 2 9 b 2 8 b 2 7 b 2 6 b 2 5 b 2 4 D2 b 2 3 b 2 2 b 2 1 b 2 0 b 1 9 b 1 8 b 1 7 b 1 6 D1 b 1 5 b 1 4 b 1 3 b 1 2 b 1 1 b 1 0 b 9 b 8 D0 b 0 7 b 0 6 b 0 5 b 0 4 b 0 3 b 0 2 b 0 1 b 0 0 b40 Note: The handling of the MAC address is shown in figure 4. Special attention should be given to the location of bit 47 of the MAC address, which is at bit 0 of D5. The software needs to be aware of this and make the corresponding adjustment. Result: This command will reset the ARL system. All entries of the address book will be cleared. 15 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. Figure-4: Format of a 48-bit MAC Address in a Data Register Data Sheet: ACD80800 8. TIMING DESCRIPTIONS Figure-5: Timing Of CPU Read Operation t1 CPUAx t2 t3 nOE t4 t6 nCS HIGH-Z VALID DATA t7 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. HIGH-Z CPUDx t8 t9 t5 Time Description Min Typ Max t1 Read cycle time 50 - - Unit ns t2 Address access time 50 - - ns t3 Output hold time 0 - - ns t4 nOE access time - - 45 ns t5 nCE access time - - 45 ns t6 nOE to Low-Z output 0 - - ns t7 nCE to Low-Z output 0 - - ns t8 nOE to High-Z output - - 5 ns t9 nCE to High-Z output - - 5 ns 16 Data Sheet: ACD80800 Figure-6: Timing Of CPU Write Operation t1 CPUAx t2 t3 t4 nCE t5 t6 nWE t7 VALID DATA ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. CPUDx t8 t9 Time Description Min Typ Max Unit t1 t2 t3 t4 t5 t6 t7 t8 Write Cycle Time Address Valid to Write End Address Hold for Write End nCE to Write End Address Setup time WE pulse width Data Valid to Write End Data Hold for Write End 30 30 0 25 0 25 30 0 - - ns ns ns ns ns ns ns ns 17 Data Sheet: ACD80800 9. ELECTRICAL SPECIFICATION Absolute Maximum Ratings Operation at absolute maximum ratings is not implied exposure to stresses outside those listed could cause permanent damage to the device. DC Supply voltage : VDD DC input current: Iin DC input voltage: Vin DC output voltage: Vout -0.3V ~ +4.5V +/-10 mA -0.3 ~ VDD + 0.3V -0.3 ~ VDD + 0.3V Recommended Operation Conditions Operating temperature: Ta Maximum Power dissipation 3.3V+/-10% o o 0 C -70 C 900mW ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. Supply voltage: VDD 18 Data Sheet: ACD80800 10. PACKAGING E1 E2 Symble A1 A2 D1 D2 e E1 E2 f g L1 L2 R1 R2 ZD Min 0.25 2.57 na na na na na 0.13 0.13 0.73 na 0.13 0.13 na Nom 0.33 2.71 23.2 18.5 0.5 17.2 12.5 0.15 0.2 0.88 1.6 na 0.3 0.75 Max na 2.87 na na na na na 0.17 0.28 1.03 na na na na R1 A2 R2 f L1 L2 A 1 19 ACD Confidential. Do Not Reproduce. Use under Non-Disclosure Agreement only. e A2 g D2 PQFP-128 D1 ZD