MC-ACT-UARTF Fast UART February 25, 2003 Datasheet v1.3 MemecCore Product Line 3721 Valley Centre Drive San Diego, CA 92130 USA Americas: +1 800-752-3040 Europe: +41 (0) 32 374 32 00 Asia: +(852) 2410 2720 E-mail: [email protected] URL: www.memecdesign.com/actel TM Product Summary Intended Use • Industry Standard Serial Interfaces • System Peripherals • Debug/Maintenance Interfaces Key Features • Baudrate Synthesizer for any baudrate up to 1/10 of clock speed • No dedicated clock frequency • 7 or 8 Bits Data • No/Odd/Even Parity • • Error Detection 1 or 2 Stop Bits • Format Check • 3-Point Input Sampling • Parallel Interface with Event Control Targeted Devices • SX-A Family • Axcelerator Family • ProASIC PLUS Family General Description The MC-ACT-UARTF core is generally used as a data link layer with parallel interfaces and event communication. Microprocessor specific interfaces are built around the MC-ACT-UARTF, as well queues, interrupt controllers and 1 status reporting circuits . 1 For complete UART solutions, please contact Memec Design. February 25, 2003 Optimized for 1 Fast UART Memec Design Core Deliverables • Netlist Version o Netlist compatible with the Actel Designer place and route tool • RTL Version o VHDL Source Code o Test Bench • All o User Guide Synthesis and Simulation Support • Synthesis: Synplicity • Simulation: ModelSim • Other tools supported upon request Verification • Test Bench clk reset_n UART-F fuart_tx_data fuart_tx_we fuart_tx_busy TX Unit fuart_tx_pin fuart_rx_pin fuart_rx_data RX Unit fuart_rx_ready fuart_par_error fuart_form_error fuart_config.data_78 fuart_config.par_ebl fuart_config.par_pol fuart_config.stop_12 fuart_config.tx_run fuart_config.rx_run fuart_config.baudrate Configuration Figure 1:Block Diagram February 25, 2003 Optimized for 2 Fast UART Memec Design Functional Description Structure of UART-F The structure of MC-ACT-UARTF consists of four principal block. A dual advanced high speed baudrate synthesizer is implemented to serve as receiver sampling source and transmitter clock source. Clock generation is configured through 16-bit register value. Format analyzer detects the incoming data stream to sequence bits stored and interface by receive unit. The detection and derivation of data stream enables a bit sampling mechanism to reduce necessary clock cycle in receiving unit. Transmit unit is starting serial out after a parallel event controlled interface is used. Config Dual Advanced Hi Speed Baudrate Synthesizer RX Data RX Ctrl Receive Unit Format Analyzer serial in TX Data TX Ctrl Transmit Unit serial out UART-F Figure 2: UART-F Structure Event Communication For communicating events, the MC-ACT-UARTF core uses or produces active ‘1’ pulses, which are activated for only one clk cycle. In the inactive state, they remain low with respect to the rising clk edge, so glitches may occur. For communicating over clock domains, these events must be synchronized first! Configuration The configuration pins are used to set the bitrate, bit timing and output format. They’re static inputs and used for both receiver and transmitter in common. Baudrate The baudrate generator is not a simple prescaler, but allows generating all baudrates from the system clock within a certain range. There is no special clock frequency needed for that purpose so that you’re free to choose the system clock for the MC-ACT-UARTF, which simplifies considerably the clock structure. To configurate the baudrate a 16bit configuration register value is used. Examples: For 1Mhz clock and 115’200bps, n is 30198(dec), accuracy better than 33ppm, For 20Mhz clock and 1Mbps, n is 13107(dec), accuracy better than 76ppm. Limitations: Values for n lower than 100(dec) should not be used, otherwise the accuracy may be below 1%. e.g. for 1MHz clock, the possible baudrates with accuracy better than 1% range from 381bps to 250kbps. February 25, 2003 Optimized for 3 Fast UART Memec Design Accuracy: The worst case accuracy can be calculated by simply inversing the value n. Therefore, a value larger than 100 will guarantee accuracy better than 1%, values larger than 1000 produce results better than 0.1%. Jitter: The faster the baudrate, the better the accuracy, but more relative jitter is added. Maximum absolute jitter is always equal 1/fclk. Serial Interface The serial interface includes the receive and transmit path separately. It is full a duplex solution, receive and transmit is possible at the same time. Transmitter Interface For transmitting data, a parallel event controlled interface is used. It is an efficient way to embed the MC-ACTUARTF in systems as well as connecting simple or complex specific interfaces, including queues etc., to it. The transmitter path stores the incoming byte in the shift register by means of the fuart_tx_we signal and starts the transmitting activity. fuart_tx_busy goes high also and remains high until the data is sent. Receiver Interface For receiving data, a similar type of interface is used as in the transmitter path The receiver path contains several checks and special features. First, the level at the fuart_rx_pin is watched. When a falling edge is detected, the receiver is started. A reception is started only when the start bit after a falling edge is detected low. If parity is enabled, it is checked and event failures are reported on fuart_par_error. Missing stop bits (level not zero) are reported as format checks. In all error cases, the data byte is aborted and the error reason is reported. Please note that fuart_rx_ready is not asserted when error reporting is done. Device Requirements Family SX-A PLUS ProASIC Axcelerator Device COMB 274 (54%) n/a 270 (5%) SX08A-3 APA075-STD AX500-3 Utilization SEQ 104 (41%) n/a 104 (4%) Performance Total 378 (50%) 659 (22%) 374 (5%) 142 MHz 70 MHz 153 MHz Table 1: Device Utilization and Performance Verification and Compliance Complete functional and timing simulation has been performed on the UART-F using ModelSim 5.5d. The UART-F core has been used successfully in customer designs. February 25, 2003 Optimized for 4 Fast UART Memec Design Signal Descriptions The following signal descriptions define the IO signals. Signal Direction Description clk in reset_n fuart_config.baudrate[15:0] fuart_config.data_78 in in in fuart_config.par_ebl in fuart_config.par_pol in fuart_config.stop_12 in fuart_config.tx_run in fuart_config.rx_run in rx_pin tx_pin fuart_tx_data[7:0] in out in fuart_tx_we in fuart_tx_busy out fuart_rx_data[7:0] out fuart_rx_ready out fuart_par_error out fuart_form_error out System clock, rising edge used only, must be at least 64 times higher than maximum baudrate Asynchronous system reset, active low, goes to all flip flops Baudrate configuration value Transmit and receive data size: ‘0’: use 7 bit data ‘1’: use 8 bit data Parity enable: ‘0’: no parity check, no parity bit transmitted and received ‘1’: use parity check, parity bit inserted and checked Parity polarity: 2 ‘0’: use even parity ‘1’: use odd parity This parameter is ignored when par_ebl is inactive! Transmit and receive stop bit number: ‘0’: use and check 1 stop bit ‘1’: use and check 2 stop bits Transmit control: ‘0’: transmitter off, ignores all inputs, outputs inactive ‘1’: transmitter is working Receive control: ‘0’: receiver off, ignores all inputs, outputs are inactive ‘1’: receiver is working Pin for the incoming bit stream. The inactive state is logic ‘1’ Pin for the outgoing bit stream. The inactive state is logic ‘1’ 8bit data to be transmitted. For 7bit configuration, bit[7] is ignored. Data must be valid and stable when fuart_tx_we is active. Event for storing the tx_data in the transmit shift register and start of transmission. It’s up to the system to not activate this input when the MC-ACTUARTF is busy. When the transmitter is sending a byte, this status output remains active (logic ‘1’) until it is ready to send a new byte. While fuart_tx_busy is ‘1’, fuart_tx_we mustn’t be activated. 8bit data that has been received. For 7bit configuration, bit[7] is ignored. The data will be stable only during the active phase of fuart_rx_ready. Add a buffer register if data should remain stable until reception of next character. Event (active ‘1’) for signalling, that a new byte has arrived and the fuart_rx_data is valid now. Event (active ‘1’) for signalling, that a byte with wrong parity has been received and aborted (it’s not visible at rx_ready) This signal is always inactive when par_ebl is deactivated. Event (active ‘1’) for signalling, that a byte with wrong format has been received and aborted (it’s not visible at rx_ready) Table 2: Core I/O Signals 2 number of ones in a byte, including parity bit is even February 25, 2003 Optimized for 5 Fast UART Memec Design Recommended Design Experience For the source version, users should be familiar with HDL entry and Actel design flows. Users should be familiar with Actel Libero v2.2 Integrated Design Environment (IDE) and preferably with Synplify and ModelSim. Ordering Information Part Number MC-ACT-UARTF-NET MC-ACT-UARTF-VHD Description Core Netlist Core VHDL Table 3: Core Part Numbers The CORE is provided under license from Memec Design for use in Actel programmable logic devices. Please contact Memec Design for pricing and more information. Information furnished by Memec Design is believed to be accurate and reliable. Memec Design reserves the right to change specifications detailed in this data sheet at any time without notice, in order to improve reliability, function or design, and assumes no responsibility for any errors within this document. Memec Design does not make any commitment to update this information. Memec Design assumes no obligation to correct any errors contained herein or to advise any user of this text of any correction, if such be made, nor does the Company assume responsibility for the functioning of undescribed features or parameters. Memec Design will not assume any liability for the accuracy or correctness of any support or assistance provided to a user. Memec Design does not represent that products described herein are free from patent infringement or from any other third-party right. No license is granted by implication or otherwise under any patent or patent rights of Memec Design. MemecCore products are not intended for use in life support appliances, devices, or systems. Use of a MemecCore product in such application without the written consent of the appropriate Memec Design officer is prohibited. All trademarks, registered trademarks, or service marks are property of their respective owners. Datasheet Revision History Version Datasheet 1.0 Datasheet 1.1 Datasheet 1.2 Datasheet 1.3 February 25, 2003 Date November 27, 2002 January 07, 2003 January 23, 2003 February 25, 2003 Description Initial Release Performance information modified Modification done in section core deliverables; Added logo to footer Modification done in section device requirements, new URL and address inserted Optimized for 6