Universal Asynchronous Receiver/Transmitter Core

Similar documents
VME64M VME64 MASTER CONTROLLER. Version 1.1

Configurable UART ver 2.10

inivme data sheet inivme

Configurable UART with FIFO ver 2.20

CANmodule-IIx. Version 2.7.0

CANmodule-III. Version Datasheet

D16750 IP Core. Configurable UART with FIFO v. 2.25

RESET CLK RDn WRn CS0 CS1 CS2n DIN[7:0] CTSn DSRn DCDn RXDATA Rin A[2:0] DO[7:0] TxDATA DDIS RTSn DTRn OUT1n OUT2n BAUDOUTn TXRDYn RXRDYn INTRPT

SPI 3-Wire Master (VHDL)

ADPCM-LCO Voice Compression Logic Core

Digital Blocks Semiconductor IP

Hello, and welcome to this presentation of the STM32 Universal Synchronous/Asynchronous Receiver/Transmitter Interface. It covers the main features

Laboratory Finite State Machines and Serial Communication

Design and Simulation of UART for Serial Communication

ALTERA FPGAs Architecture & Design

SPART - A Special Purpose Asynchronous Receiver/Transmitter

ADPCM-HCO Voice Compression Logic Core

International Journal of Research in Advent Technology IMPLEMENTATION OF UNIVERSAL ASYNCHRONOUS RECEIVER TRANSMITTER BASED ON VHDL

Single Channel HDLC Core V1.3. LogiCORE Facts. Features. General Description. Applications

SPART. SPART Design. A Special Purpose Asynchronous Receiver/Transmitter. The objectives of this miniproject are to:

SPART. SPART Design. A Special Purpose Asynchronous Receiver/Transmitter. The objectives of this miniproject are to:

Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of

10GBase-R PCS/PMA Controller Core

32 Channel HDLC Core V1.2. Applications. LogiCORE Facts. Features. General Description. X.25 Frame Relay B-channel and D-channel

UART Register Set. UART Master Controller. Tx FSM. Rx FSM XMIT FIFO RCVR. i_rx_clk o_intr. o_out1 o_txrdy_n. o_out2 o_rxdy_n i_cs0 i_cs1 i_ads_n

ECEN 468 Advanced Logic Design Department of Electrical and Computer Engineering Texas A&M University. Lab 2

Serial Communication Prof. James L. Frankel Harvard University. Version of 2:30 PM 6-Oct-2015 Copyright 2015 James L. Frankel. All rights reserved.

DQSPI IP Core. Serial Peripheral Interface Master/Slave with single, dual and quad SPI Bus support v. 2.01

ECE251: Thursday November 8

SerialLite III Streaming IP Core Design Example User Guide for Intel Arria 10 Devices

THANG LUONG CAO. Serial bus adapter design for FPGA. Master of Science Thesis

UART TO SPI SPECIFICATION

Design and Verification of Serial Peripheral Interface 1 Ananthula Srinivas, 2 M.Kiran Kumar, 3 Jugal Kishore Bhandari

DQ8051. Revolutionary Quad-Pipelined Ultra High performance 8051 Microcontroller Core

CoE3DJ4 Digital Systems Design. Chapter 5: Serial Port Operation

Fig.12.5 Serial Data Line during Serial Communication

Universal Asynchronous Receiver Transmitter (UART ) CSCE 612 Project #2 Specification

C8051 Legacy-Speed 8-Bit Processor Core

CAN on Integration Technologies

UART2BUS Open Source. Verificaiton Plan. Opencores.com

Universal Serial Bus Host Interface on an FPGA

11. SEU Mitigation in Stratix IV Devices

CPU-less CANopen at 200 C

Addressing scheme to address a specific devices on a multi device bus Enable unaddressed devices to automatically ignore all frames

FPGA Implementation Of SPI To I2C Bridge

DESIGN AND VERIFICATION OF LOW SPEED PERIPHERAL SUBSYSTEM SUPPORTING PROTOCOLS LIKE SPI, I 2 C AND UART

DCB1M - Transceiver for Powerline Communication

System Debugging Tools Overview

ALTERA FPGA Design Using Verilog

FlexRay The Hardware View

AL8259 Core Application Note

Block Diagram. mast_sel. mast_inst. mast_data. mast_val mast_rdy. clk. slv_sel. slv_inst. slv_data. slv_val slv_rdy. rfifo_depth_log2.

Choosing an Intellectual Property Core

AvnetCore: Datasheet

CoreHPDMACtrl v2.1. Handbook

Nios Embedded Processor UART Peripheral

A VHDL UART core

LogiCORE IP I/O Module v1.01a

ISSN Vol.03, Issue.02, March-2015, Pages:

Interfacing a PS/2 Keyboard

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

DESIGN A APPLICATION OF NETWORK-ON-CHIP USING 8-PORT ROUTER

DEVELOPMENT OF FPGA MICROBLAZE PROCESSOR AND GSM BASED HEART RATE MONITORING SYSTEM

SERDES Transmitter/Receiver (ALTLVDS) Megafunction User Guide

11 ASYNCHRONOUS SERIAL PORTS

FULL DUPLEX BIDIRECTIONAL UART COMMUNICATION BETWEEN PIC MICROCONTROLLERS

Embedded Systems. Read pages

TMS470R1x Serial Communication Interface (SCI) Reference Guide

I 2 C Bus Interface - Slave ver 3.08

Basics of UART Communication

MCS-51 Serial Port A T 8 9 C 5 2 1

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

AES1. Ultra-Compact Advanced Encryption Standard Core AES1. General Description. Base Core Features. Symbol. Applications

Documentation. Design File Formats. Constraints Files. Verification. Slices 1 IOB 2 GCLK BRAM

El Camino Training - Engineering - Consultancy

Hardware Synthesis. References

Digital Design LU. Lab Exercise 1

Hardware Design with VHDL PLDs IV ECE 443

Amarjeet Singh. January 30, 2012

PROJECT REPORT - UART

UM2330 User manual. ST8500 boot. Introduction

Mapping Multi-Million Gate SoCs on FPGAs: Industrial Methodology and Experience

FPGA for Software Engineers

Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool

Upper Level Protocols (ULP) Mapping. Common Services. Signaling Protocol. Transmission Protocol (Physical Coding) Physical Interface (PI)

Design Guidelines for Optimal Results in High-Density FPGAs

CHAPTER 4 DATA COMMUNICATION MODES

Ethernet Switch. WAN Gateway. Figure 1: Switched LAN Example

8B10B Decoder User Guide

DDR & DDR2 SDRAM Controller Compiler

SoC / ASIC / FPGA / IP

AP16050 SAB C161V/K/O. Emulating an asynchronous serial interface (ASC) via software routines. Microcontrollers. Application Note, V 1.0, Feb.

Focussing Assertion Based Verification Effort for Best Results

Revolutionary Quad-Pipelined Ultra High Performance 16/32-bit Microcontroller v. 6.05

Implementing LVDS in Cyclone Devices

Temperature Sensor TMP2 PMOD Part 1

Data Communication/MIDI. Juan P Bello

CHAPTER 5 REGISTER DESCRIPTIONS

i_csn i_wr i_rd i_cpol i_cpha i_lsb_first i_data [15:0] o_data [15:0] o_tx_ready o_rx_ready o_rx_error o_tx_error o_tx_ack o_tx_no_ack

microprocessor Dice Game Designed in VIVADO & Implemented on NEXYS 4 DDR FPGA Board

Transcription:

Datasheet iniuart Universal Asynchronous Receiver/Transmitter Core Revision 2.0 INICORE INC. 5600 Mowry School Road Suite 180 Newark, CA 94560 t: 510 445 1529 f: 510 656 0995 e: info@inicore.com www.inicore.com C O P Y R I G H T 2 0 0 3-2 0 1 1, I N I C O R E I N C.

Ta b l e o f C o n t e n t s 1 INTRODUCTION...4 1.1 Features...4 1.2 Deliverables...4 1.3 Block Diagram...5 1.4 Block Description...5 1.5 UART Character Format...6 2 SIGNAL DESCRIPTIONS...7 2.1 I/O Ports...7 2.2 I/O Description...8 2.2.1 Global Signals...8 2.2.2 Configuration...8 2.2.3 Serial Interface...10 2.3 Serial Bit Clocks...10 2.4 Transmitter Interface...11 2.5 Receiver Interface...12 Ta b l e o f F i g u r e s Figure 1: Block Diagram iniuart..5 Figure 2: 8-bit UART Character Format.6 Figure 3: 8-bit UART character format with two stop bits..6 Figure 4: 7-bit UART character format with parity bit.6 Figure 5: Symbol with I/Os.7 Figure 6: Serial Bit Clocks 10 Figure 7: Transmitting Data 11 Figure 8: Receiving Correct Data 12 Copyright 2003-2011 Inicore Inc. Indexes - Page II

Figure 9: Receiving Data with Parity Error.12 R e v i s i o n H i s t o r y Version Date Comments 2.0 07/11/2011 Global datasheet update Copyright 2003-2011 Inicore Inc. Indexes - Page III

1 I n t r o d u c t i o n Inicore's iniuart is a versatile implementation of the Universal Asynchronous Receiver/Transmitter (UART) protocol. This core is designed as a building block for FPGA and ASIC implementation that need to interface with other serial devices. The core contains a highly accurate baudrate generator, which allows to select any baudrate independently (up to 1/64) of the system clock speed. This means that there is no need for a fixed ratio between baudrate and system clock. The receiver uses three point input sampling and glitch rejection to increase noise immunity. The iniuart supports 5, 6, 7, and 8 bit wide data characters, an optional parity (even or odd), and one or two stop bytes. The core does't contain any FIFOs making it an ideal candidate for low-level interface implementations or for application that require multiple ports. 1.1 Features Following are the iniuart features: Single UART channel Very small Baudrate synthesizer for any baudrate of up to 1/64 th of clock frequency 5, 6, 7, or 8 bit data format Parity enable, ddd or even Format and parity error detection 1 or 2 stop bits Three point input sampling and glitch rejection Parallel interface with event control Technology independent Fully synchronous design 1.2 Deliverables Netlist, VHDL RTL, or Verilog RTL source code Verification testbench Timing constraints file Copyright 2003-2011 Inicore Inc. Introduction - Page 4

Synthesis script User Guide 1.3 Block Diagram The main building block and interface signals of the iniuart are shown in the block diagram below: 1.4 Block Description Figure 1: Block Diagram iniuart Baudrate Synthesizer The baudrate generator is not a simple prescaler, but an innovative digitally controlled oscillator which allows generating any baudrate from the system clock. This makes system integration much easier as the common baudrate dependency on the system clock is eliminated. Receiver The receiver translates the serial uart_rx bit stream into the parallel format according to the selected configuration. Parity and format errors are detected and reported. Copyright 2003-2011 Inicore Inc. Introduction - Page 5

Transmitter The transmitter formats transmit data according to the selected configuration and performs the parallel to serial conversion to generate the uart_tx bit stream. 1.5 UART Character Format The standard UART character format consist of one start bit, five to eight data bits, an optional parity bit, and one or two stop bits. An example with 8 data bits and one stop bit is shown in figure 2. As can be seen, the idle level of the bus is high, the start bit is low and the stop bit is high again. The data is sent with the least significant bit first. Figure 2: 8-bit UART Character Format Figure 3 shows the UART character format with two stop bits. Figure 3: 8-bit UART character format with two stop bits Figure 4 shows the UART character format for 7 data bits and one parity bit. The parity can be either even or odd. Even parity means that the number of ones in the data field plus the parity bit are even. Figure 4: 7-bit UART character format with parity bit Copyright 2003-2011 Inicore Inc. Introduction - Page 6

2 S i g n a l D e s c r i p t i o n s The following paragraph lists the input and output ports of the iniuart. 2.1 I/O Ports The figure below shows all I/Os of the iniuart. Figure 5: Symbol with I/Os Copyright 2003-2011 Inicore Inc. Signal Descriptions - Page 7

2.2 I/O Description The following paragraphs list the inputs and outputs of the iniuart and provide an overview of the core's functionality. 2. 2. 1 Global Signals All registers of this core are reset with the asynchronous active low reset_n. All registers are clocked with clk_sys. There are no other local clock or asynchronous reset signals. Pin Name Type Description reset_n in Asynchronous reset, active low clk_sys in System clock 2. 2. 2 Configuration The configuration signals are used to set the UART baudrate and the data format. All configuration signals are static inputs and may not be changed during operation. Pin Name Type Description config_baudrate[15:0] in Baudrate of serial data stream config_length in Character length The receiver and the transmitter share the same baudrate generation. config_baudrate= 217 f clk_sys 16 Baudrate 0: 5-bit data field 1: 6-bit data field 2: 7-bit data field 3: 8-bit data field config_parity_ebl in Parity enable 0: No parity field is used 1: Parity field is used Copyright 2003-2011 Inicore Inc. Signal Descriptions - Page 8

Pin Name Type Description config_parity_pol in Parity polarity 0: Even parity. The number of ones in data field including parity bit is even config_stop_bit in Length of stop bit field 1: Odd parity. The number of ones in data field including parity bit is odd 0: Use one stop bit 1: Use two stop bits config_rx_ebl in Receiver enable 0: Receiver is not enabled 1: Receiver is enabled config_tx_ebl in Transmitter enable 0: Transmitter is not enabled Baudrate Generator Configuration 1: Transmitter is enabled The baudrate generator is not a simple prescaler, but an innovative digitally controlled oscillator which allows generating any baudrates from the system clock. There is no dedicated oscillator needed that is an exact multiple of the baudrate. For configuring the baudrate, the 16-bit value is calculated according the following formula: Baudrate= f clk_sys config_baudrate respective config_baudrate= 2 17 16 Baudrate 16 2 17 f clk_sys where Baudrate is the transmitting speed in bits per second f clk_sys is the system clock speed in Hz config_baudrate is the 16-bit configuration value Note: The maximal baudrate is 1/64 th of the system clock frequency The lower the baudrate, the better is the accuracy. The higher the clock, the smaller is the edge jitter. Maximum absolute jitter is always equal 1/f clk_sys Copyright 2003-2011 Inicore Inc. Signal Descriptions - Page 9

2. 2. 3 Serial Interface Pin Name Type Description uart_tx out Transmit output pin uart_rx in Receive input pin 2.3 Serial Bit Clocks Synchronous to the serial bit stream uart_tx, a serial clock output is provided. Pin Name Type Description uart_tx_clk out Transmit Clock uart_tx_clk_ebl out Transmit Clock Enable This clock is in phase with the uart_tx data stream. The rising edge is aligned with the beginning of a bit time. This clock enable is in phase with the uart_tx data stream. It is high for one clock cycle at the beginning of each bit time. uart_tx_clk uart_tx_clk_ebl 1 bit time Figure 6: Serial Bit Clocks Copyright 2003-2011 Inicore Inc. Signal Descriptions - Page 10

2.4 Transmitter Interface The transmitter has a simple parallel user side interface. Pin Name Type Description uart_tx_data[7:0] in Transmit Data uart_tx_req in Transmit data request uart_tx_busy out Transmit Busy uart_tx_done out Transmit Done The transmit data is loaded into the transmit buffer when uart_tx_req is asserted. If the data length is less than 8 bits, the most significant bits are ignored. Event for storing the tx_data in the transmit shift register and start of the transmission. It's up to the system to not activate this input when the iniuart is busy. 1: The transmitter is busy sending the requested data 0: The transmitter is idle A one clock cycle pulse indicates the end of the data transmission. Figure 7 shows the timing diagram for transmitting data. clk_sys uart_tx_req uart_tx_data[] uart_tx_busy uart_tx_done uart_tx Transmitter is sending data Figure 7: Transmitting Data Copyright 2003-2011 Inicore Inc. Signal Descriptions - Page 11

2.5 Receiver Interface Pin Name Type Description uart_rx_data[7:0] in Receive Data uart_rx_valid in Receive Data Valid parity_error_event out Parity Error Event format_error_event out Format Error Event This is the captured data character. If the data length is less than 8 bits, the most significant bits are fixed at 0. uart_rx_data is only valid when uart_rx_valid is high. Event (active 1) for signaling that a byte has arrived and rx_data is valid now. An active one event indicates that a parity bit error has been detected and the received characters aborted. This check is only performed when the parity feature is enabled (config_parity_ebl = 1). An active one event indicates that a stop bit with the wrong level has been detected and the received characters aborted. Figure 8 shows the timing diagram for receiving data: clk_sys uart_rx Receiver is capturing data uart_rx_valid uart_rx_data[] Figure 8: Receiving Correct Data Figure 9 shows the timing diagram for receiving data where a parity error is detected: clk_sys uart_rx Receiver is capturing data parity_error_event uart_rx_valid uart_rx_data[] Figure 9: Receiving Data with Parity Error Copyright 2003-2011 Inicore Inc. Signal Descriptions - Page 12

A b o u t I n i c o r e FPGA and ASIC Design Easy-to-use IP Cores System-on-Chip Solutions Consulting Services ASIC to FPGA Migration Obsolete ASIC Replacements Inicore is an experienced system design house providing FPGA / ASIC and SoC design services. The company's expertise in architecture, intellectual property, methodology and tool handling provides a complete design environment that helps customers shorten their design cycle and speed time to market. Our offering covers feasibility study, concept analysis, architecture definition, code generation and implementation. When ready, we deliver you a FPGA or take your design to an ASIC provider, whatever is more suitable for your unique solution. Customer Advantages We offer one-stop shopping for everything from the specifications to the chip or module solution. Our experience and fast turnaround time reduces your development costs and increases your returns from the market. Your system is not limited by the level of expertise and standard chip solutions you happen to have in-house. Achieve market success by differentiating and optimizing your product. Reusability builds the basis for further developments in the ever-decreasing product life cycle. Visit us @ www.inicore.com INICORE INC. has made every attempt to ensure that the information in this document is accurate and complete. However, INICORE INC. assumes no responsibility for any errors, omissions, or for any consequences resulting from the information included in this document or the equipments it accompanies. INICORE INC. reserves the right to make changes in its products and specifications at any time without notice. Copyright 2003-2011 INICORE INC. All rights reserved. Copyright 2003-2011 Inicore Inc. Signal Descriptions - Page 13