In this paper, we propose an N ? N high speed and non-blocking asynchronous transfer mode (ATM) switch with input and output buffers. In this switch, each buffer adopts a priority discarding scheme, which discards incoming cells of low-priority traffic when its queue length is greater than a predefined threshold value. Our switch also supports broadcast/multicast functions without increasing the cost and imposing a significant performance penalty. We use the discrete-time Markov chain model to analyze cell delay and cell loss probability for each traffic class. An example 4 ? 4 ATM switch has been described with VHDL. We have verified the functionality of the switch via VHDL simulation, and have synthesized the switch to evaluate its area and timing. Experimental results and synthesis results show that our proposed ATM switch can meet a requirement for high speed and support QOS.