Upload
pronadeep-bora
View
225
Download
0
Embed Size (px)
Citation preview
7/26/2019 1serial Protocol Bridge
1/88
7/26/2019 1serial Protocol Bridge
2/88
SERIAL PROTOCOL BRIDGE
A thesis submitted to the Graduate School of the
University of Cincinnati
in partial fulfillment of the requirements for the degree of
Masters of Science
In the Department of Computer Engineering of
College of Engineering & Applied Sciences
By
Neena Sharma
August 14, 2012
B.E -Electronics & Communication Engineering
June 2008
Committee Chair: Dr. Carla Purdy
7/26/2019 1serial Protocol Bridge
3/88
ii
Abstract
Mobile devices are entering in every sphere of our life. With the introduction of
newer features these devices are becoming more and more data centric. Apart from
data storage another major concern in such scenarios is data movement. Many
protocols exist to aid in data movement within the mobile devices as well as to
communicate with the outside world. Among these protocols serial communication
protocols are most widely used protocols due to their low pin requirement and ease
of implementation. Usually the protocol followed by a device depends on the
amount of data that it needs to transfer as well as the speed with which it is
required to communicate. But there are situations when a single device has
different protocol requirements in two different situations. In such situations a
bridge is required such that device can follow communication protocol according
to the situational requirement rather than being bound to one kind of protocol.
In this research, a serial protocol bridge has been designed that consists of two
most widely used serial protocol controllers. It helps a particular device to
communicate with either of the protocol seamlessly. The bridge has been designed
using UML 10.0. All the design modules of bridge have been coded in VHDL and
simulated using Model Sim Altera 6.5e. Further these modules were compiled for
EP4CE115F29C7 FPGA chip on Cyclone IV Altera DE115 board using Quartus II.
7/26/2019 1serial Protocol Bridge
4/88
iii
7/26/2019 1serial Protocol Bridge
5/88
iv
Acknowledgement
I would like to gratefully acknowledge the enthusiastic supervision of Dr. Carla
Purdy during this work. Also I am thankful to all my friends from University of
Cincinnati, for being the surrogate family during these two years and for their
continued moral support.
Finally, I am forever indebted to my parents and Mohit Ahuja, my husband, for
their understanding, endless patience and encouragement when it was most
required.
Neena Sharma
7/26/2019 1serial Protocol Bridge
6/88
v
Contents
1.
Introduction..1
1.1.
Motivation..1
1.2.
Research summary.4
2. Background..6
2.1.Introduction6
2.1.1.
RS232...7
2.1.2.
RS-422 and RS-485.72.1.3. I2C...7
2.1.4.
SPI...8
2.2.
Hardware architecture for mobile devices.9
2.2.1. Evolution of mobile phones..10
2.3.
Embedded system design.13
2.4.
FPGA based design..14
2.5.
Conclusion15
3. Design.16
3.1.Introduction..16
3.2.
Basics of I2C protocol..17
3.3.Basics of SPI protocol..19
3.4.
Design methodology20
3.4.1.Designing I2C master.21
3.4.2.
Designing I2C slave26
3.4.3.Designing SPI master..30
7/26/2019 1serial Protocol Bridge
7/88
vi
3.4.4.
Designing SPI slave32
3.5.
Bridge formation34
3.6.
Conclusion..38
4.
Implementation.39
4.1.Introduction.39
4.2.
I2C master40
4.3.
I2C slave..42
4.4.SPI master44
4.5.
SPI slave/.46
4.6.
Bridge formation..47
4.7.Hardware implementation54
4.8.
Camera example revisited55
4.9.
Conclusion56
5.
Conclusion..57
References...61
Appendix A..63
A.1 I2C master implementation report ..........63
A.2 I2C slave implementation report .... 65
A.3 SPI master implementation report ..... 67
A.4 SPI slave implementation report ...... ...69
A.5 I2C master-slave interface implementation report....71
A.6 SPI master-slave interface implementation report....73
A.7 Serial protocol bridge implementation report .........75
7/26/2019 1serial Protocol Bridge
8/88
vii
List of Figures
1.1 Camera with different protocols for different purposes..3
2.1 The canonical Harvard architecture .............10
2.2 Cellular system of second generation... 11
2.3 TI OMAP4 architecture [10] ................12
3.1 Typical I2C transaction..........................19
3.2 Typical SPI transaction..........................20
3.3 Use case diagram for I2C master.......22
3.4 State diagram for I2C master.........23
3.5 Sequence diagram for I2C master write use case..24
3.6 Sequence diagram for I2C master read use case...25
3.7 Use case diagram for I2C slave.26
3.8 State diagram for I2C slave...27
3.9 Sequence diagram for I2C slave write use case28
3.10 Sequence diagram for I2C slave read use case. 29
3.11 Use case diagram for SPI master...30
3.12 State diagram for SPI master.31
3.13 Sequence diagram for SPI master data exchange use case31
3.14 Use case diagram for SPI slave.32
3.15 State diagram for SPI slave...33
7/26/2019 1serial Protocol Bridge
9/88
viii
3.16 Sequence diagram for SPI slave data exchange use case..33
3.17 SPI master writes to I2C slave through serial protocol bridge34
3.18 I2C master writes to SPI slave through serial protocol bridge35
3.19 SPI master performs read on I2C slave through serial protocol bridge36
3.20 I2C master performs read on SPI slave through serial protocol bridge36
3.21 Complete Bridge37
4.1 I2C master waveform generated through test bench42
4.2 I2C slave generated through test bench.43
4.3 SPI master waveform generated through test bench.45
4.4 SPI slave waveform generated through test bench46
4.5 I2C interface waveform generated using test bench..48
4.6 SPI interface waveform (master is reading back after writing).48
4.7 Complete I2C-SPI serial protocol bridge..50
4.8 I2C master writes to SPI slave through serial protocol bridge.51
4.9 I2C master reads SPI slave through serial protocol bridge...51
4.10 SPI master writes to I2C slave through serial protocol bridge..52
4.11 SPI master reads I2C slave through serial protocol bridge...52
4.12 Camera example revisited.55
7/26/2019 1serial Protocol Bridge
10/88
ix
List of Tables
2.1 Properties of typical serial protocol buses...8
4.1 I2C master transition table41
4.2 SPI master transition table.45
4.3 Typical characteristics of EP4CE115F29C7 FPGA chip...54
4.4 Hardware implementation details for all design modules.54
7/26/2019 1serial Protocol Bridge
11/88
x
ACRONYMS
1.
CPOLclock polarity
2.
CPHAclock phase
3. DSPdigital signal processor
4. ESWembedded software
5.
EEPROMelectrically erasable programmable read only memory
6.
FPGAfield programmable gate array
7.
GPSglobal positioning system
8. I2Cinter integrated circuit
9.
LCDliquid crystal display
10.
MISOmaster in slave out
11. MOSI- master out slave in
12.
MODFmode fault
13.
NACK- not acknowledge
14. RTC -real time clock
15. SPIserial protocol interface
16.
SCLKserial clock
17. SSslave select
18. SDAserial data
19.
SCLserial clock
7/26/2019 1serial Protocol Bridge
12/88
xi
20. SPCRserial peripheral control register
21.
SPSRserial peripheral status register
22.
SPDRserial peripheral data I/ O register
23. SPIFSPI transfer complete flag
24. SSELslave select
25.
UMLunified modeling language
26.
UML-RTunified modeling language-real time
27.
VHDLvery high speed hardware descriptive language
28. WCOLwrite collision
29.
1Gfirst generation
30.
3Gthird generation
7/26/2019 1serial Protocol Bridge
13/88
1
Chapter 1
Introduction
1.1 Motivation
Mobile devices are entering into every part of our lives. As consumer expectations
from these devices keeps on increasing with time, the data movement required
inside the system in order to incorporate the newly introduced features. This makes
mobile devices more and more data centric. With the increase in data handling
capacity of the mobile devices there increases the need for smarter communication
protocols so that overall system performance can also meet the user expectations.
Serial communication is the most widely used method of data transfer in today's
mobile embedded world due to its speed and the number of pins required for data
transfer. Efficiency of a mobile embedded system depends on the speed with which
it can transfer data to the inside as well as the outside world. Hence any equipment
that can enhance the speed of data movement can be of great importance for the
overall efficiency of the system. Considering the importance of speed of data
movement, a lot of effort is being put into improving the serial communication
protocols used inside mobile devices. There are many serial communication
protocols available, each having different characteristics such as speed, hand
7/26/2019 1serial Protocol Bridge
14/88
2
shaking methodology, and number of bits transferred in single transfer cycle.
A deeper look into the mobile embedded world reveals that each of these protocols
uses a master-slave configuration. Some of the protocols support multiple masters
on the same communication bus. Some are capable of communicating with
multiple slaves. In a typical mobile embedded system, each peripheral is slave to
one of these protocols and is capable of transferring data on command of its
respective master. Hence along with the main controller there are several other
controllers handling each type of serial protocol being used in the mobile system.
In a typical mobile system each peripheral is connected to the master of one of the
serial communication protocol according to its speed and latency requirements.
Inside the mobile system, some data transfers can be low speed and high latency
while others are needed to be high speed with low latency. Hence we need to
incorporate different protocols and use them as per the need. As long as the
peripherals inside these mobile devices, with different speed demands, are in
separate spheres, there will not be any issue while deciding which protocol is
appropriate for which peripheral. But the problem is when the same peripheral
requires low data rate in one situation and high data rate in another situation. For
example, inside a mobile phone when a user decides to click an image, the user
7/26/2019 1serial Protocol Bridge
15/88
3
sends a capture command to the camera by pressing a button on the device. This
command is going to be a short command and it needs to be served as fast as
possible. But the situation is totally opposite when the image has been captured
and the user press the save button. In this situation the data that needs to be
transferred is a huge amount but the user doesn't mind if it takes a while to save the
image into the memory especially if the device is transferring the image data in the
background. Hence the mobile device will use two different protocols for two
different types of data exchange with the same peripheral, which is the camera in
the above example. One way to handle this will be making the peripheral slave to
both the protocols. This will require additional space and routing overhead for the
designer because we need to make the camera available to both the protocols and it
should be able to respond to both the above situations accordingly. Figure 1.1
depicts the above scenario.
Figure 1.1 Camera with different protocols for different purpose.
7/26/2019 1serial Protocol Bridge
16/88
4
A simpler way to handle the above situation is to have a bridge through which the
master of one protocol will be able to send and receive data from the slave of
another protocol. This will require each peripheral in the mobile device to be slave
of only one of the protocol. It will be made accessible to other protocols through
the bridge. This is one feasible solution to the problem and is the main motivation
behind this research.
1.2 Research summary
In this research we will be discussing various protocols that are used inside the
mobile embedded systems. We will also be studying the trends in mobile phone
architecture which will help us understand the changes that occurred in mobile
devices from 1G to 3G. We will also be discussing different serial communication
protocols and their characteristics. After this discussion we will be deciding the
two most commonly used serial communication protocols to be used while
designing and implementing the serial protocol bridge.
In the design phase of the project we will be exploring UML (unified modeling
language) and using its features such as use case diagrams, sequence diagrams and
state machines to describe the protocol bridge fully and design its components.
State machine are the most common way of implementing embedded systems on
7/26/2019 1serial Protocol Bridge
17/88
5
an FPGA (field programmable gate array). We will also be implementing the serial
protocol bridge design on ALTERA ModelSim STARTER EDITION 6.5e that is
standard for the ALTERA DE115 board. After successful designing and
implementation of the serial protocol bridge state machine, we will be generating
test waveforms and demonstrating its use for sending and receiving data across the
two different protocols. We will also be implementing our designs on FPGA chip
present on ALTERA DE115 board.
Success of this project will demonstrate a way of handling the above described
situations in a better and more efficient manner. This bridge is ultimately going to
reduce the wiring on PCB board and result in the reduction of overall size of the de
vice. As now each device will be slave to only one protocol and other protocols can
reach it through the bridge. It will also serve as a base for implementing serial
protocol bridge for other protocols.
7/26/2019 1serial Protocol Bridge
18/88
6
Chapter 2
Background
2.1 Introduction
Embedded systems are becoming common in every sphere of our life. One
common feature of embedded system is communication between different
peripherals. Embedded system designers have a large number of choices when it
comes to moving data both within the embedded world and between the system
and the outside world. Various attempts have been made to distinguish these
protocols based on the way data is being transferred-for example, serial vs parallel,
or based on the speed with which the data is being transferred. There are many
different reasons why serial communication is preferred over parallel
communication. These include the low pin count as well as the need for connecting
systems with a PC during development and/or in the field [1].
Various serial protocols for communication buses are available in the market have
their own advantages and disadvantages. A thorough study of protocols is
necessary before deciding which protocol will suffice for the system. The choice of
serial bus should not only meet the speed requirement but it should also consider
other factors such as the life of the product and the number of devices to be
connected. A detailed analysis of available serial protocols is required. We will
7/26/2019 1serial Protocol Bridge
19/88
7
describe the commonly used protocols.
2.1.1 RS-232: It is the most common interface found on every computer these
days. It is a FULL DUPLEX if 2 pairs of Transmitter and receiver are deployed at
each end. Varying levels of voltages are transmitted in order to transmit logic 0
and 1. It is capable of speed up to 115.2Kbps.
2.1.2 RS-422 and RS-485: It is a simplex bus capable of communicating at a
speed of 10Mbps and a maximum distance of 4,000 feet. A similar pair can be
deployed for communicating between receiver and transmitter making the system
full duplex. RS 485 on the other hand is a half-duplex bus capable of attaining
speed equivalent to that of RS-422.
2.1.3 I2C: Inter- Integrated bus, patented by Philips is a half-duplex, synchronous
multi-master bus that requires only 2 wires (SDA and SCL) to communicate
among several devices. It is an addressable protocol where slaves can have 7-bit or
10-bit addresses .During communication master generates clock and in case slave
is not ready for the communication slave can do clock stretching where clock is
held low indicating the master to wait. This protocol is also capable of handling
multi master through a process called arbitration which gives access to bus to
7/26/2019 1serial Protocol Bridge
20/88
8
winning master. This protocol is used for rather low speeds and low distances
typically within the system.
2.1.4 SPI: Serial Peripheral Interface is a full duplex bus targeted for small
distance communication within the embedded system. It consists of four signals
with maximum achievable data rates up to 1Mbps. Disadvantage of SPI over I2C
is the requirement of dedicated select line for each slave.
Table 2.1 summarizes the various serial protocols discussed above along with their
typical properties.
Name Sync Type Duplex Max
Devices
Max Speed
(KBPS)
Max
Distance Ft
Pin Count
RS-232 No peer full 2 20 30 2
RS-422 No multi drop half 10 10000 4000 1
RS-485 No multi point half 32 10000 4000 2
I2C Yes master/ slave half *1 3400 1000
7/26/2019 1serial Protocol Bridge
21/88
9
2.2 Hardware architecture for mobile devices
Two main factors that have fueled the sales of mobile devices are a) reduction of
the footprints of devices themselves, such as cellular handsets and small computers;
and b) the success in developing low power hardware which allows devices to
operate autonomously for hours and even days. [3] . Along with that there has been
a significant change in the architecture of these devices. These are becoming more
and more data centric which require them to have an increasing computational
performance. The main challenge for designers therefore for is to increase
performance while keeping power consumption to a minimum. It has been said that
DSP (digital signal processing) are to cellular telephones as microprocessors is to
desktop systems, that is, the heart of the whole design [3] . But over a period of
time even DSP design has undergone a large number of changes that have resulted
in todays mobile phone architectures. Traditionally DSP architecture used the
concept of the canonical Harvard architecture. It required two output buses for the
address generated for the processor: a data address and a code address [3]. It was a
non-cache system using buffers to speed up computation. The majority of the
instructions used to be of the type multiply- Accumulate. A typical Harvard
architecture is shown in Figure 2.1.
7/26/2019 1serial Protocol Bridge
22/88
10
Figure 2.1 The canonical Harvard architecture
2.2.1 Evolution of mobile phone
The most generic 1G mobile phone architecture included a DSP as its heart and
additional analog circuitry for handling RF section. Apart from DSP and RF
section an additional micro controller is used for handling keypad, and display
system. The 2G phones added other features to the 1G such as MP3 and camera
which use similar block architecture. All mobiles in 2G resulted from a transition
from an analog to digital handling of transmitted data. A 2G mobile phone
architecture has been described in Figure 2.2. After that came an era of internet
over mobile phones also known as 2.5G. This is what most of the mobile phone
vendors were doing until the last decade.
7/26/2019 1serial Protocol Bridge
23/88
11
Figure 2.2 Cellular system of second generation
The third generation of mobile phones is responsible for moving from voice to data
centric systems. Now a days a single device can be used for telephony, a database,
a general purpose computer, a gaming machine, a music player and/or a digital
camera [3] . This also calls for an intelligent power management tackled by an
increased parallelism in the architecture. Various techniques applied for achieving
this include pipeline control, cache hit prediction, variable instruction length and
data compression for transmission. Current research in mobile devices
architectures for low power devices has concentrated in exposing the data pipeline
to the software, handling efficiently compressed variable length code, reducing
power consumption of caches and memory, and also in exploring extreme data
7/26/2019 1serial Protocol Bridge
24/88
12
compression for saving transmission power [3]. Moore's law is increasing the
available computational power exponentially [3]. With more and more data centric
applications, mobile phones are evolving to be a more general device incorporating
everything that a modern computer has along with the basic voice transfer
functionality. This calls for an increased parallelism in mobile phone architecture.
Figure 2.3 depicts the TI OMAP44X architecture contained in most smart phones.
Figure2.3 TI OMAP4 architecture [10].
7/26/2019 1serial Protocol Bridge
25/88
13
2.3 Embedded system design
In this era of embedded intelligence where machines are becoming smarter, a need
arises for powerful design tools for both hardware and software based designs.
When it comes to designing embedded software system, UML (Unified Modeling
Language) seems the obvious choice. UML is gaining popularity from real time
system designers [6]. UML is capturing much attention in the ESW community as
a possible solution for raising the level of abstraction to a level where productivity
can be improved, errors can be easier to identify and correct, better documentation
can be provided, and embedded software designers can collaborate more
effectively [4]. However, real time UML may not suffice for stream processor
designs because of their special needs [6]. Along with UML we need a highly
programmable platform for embedded system development. Hence for complete
system development a unified embedded system development methodology is
required. Many enhancements have been proposed to the existing UML to make it
a more powerful embedded systems design tool. UML-RT [5] is a profile that
extends UML with stereotyped active objects, called capsules, to represent system
components. The UML-RT profile defines a model with precise execution
semantics; hence it is suitable for capturing system behavior and supporting
simulation or synthesis tools [4]. But UML-RT is too restrictive a model because
capsules' behavior is defined by state charts. So it has been proposed that we
7/26/2019 1serial Protocol Bridge
26/88
14
associate capsules also with other models of computation such as synchronous
data-flow, co-design finite state machines [4]. A new UML platform has been
proposed in [4] where suggestions have been made for introducing new building
blocks to represent specific platform concepts, choosing proper UML diagrams and
considering QoS and other non-critical design factors.
2.4 FPGA based design
While dealing with the hardware-software paradigm, it is important to decide what
part of the system should be implemented as hardware and what part should be
implemented as software. The greatest advantage of implementing a software
based system is the flexibility it provides in case of re usability. In case one wants
to exploit advantages of both hardware as well as software, FPGA is an excellent
choice, as it can be programmed multiple times along with providing the
robustness of hardware system. An FPGA by definition is a field programmable
gate array where an array of gates can be configured as per the requirements. It is
generally configured using hardware description languages such as VHDL (very
high speed hardware descriptive language) and Verilog [11, 13]. A recent trend has
been to take the coarse-grained architectural approach a step further by combining
the logic blocks and interconnects of traditional FPGAs with embedded
microprocessors and related peripherals to form a complete "system on a
7/26/2019 1serial Protocol Bridge
27/88
15
programmable chip".6]. The flexibility provided by FPGA makes it an excellent
choice for prototyping as well as developing full-fledged projects.
2.5 Conclusion
So far, we have discussed how each new generation of embedded mobile devices is
becoming smarter and more capable and how important it is to have powerful
design tools for designing such smart devices. In all these devices buses play a
vital role for transferring data within the system as well as enabling the device to
communicate with the outside world.. These have been discussed in detail to give a
better understanding of each protocol. Since there are many buses available for use,
choosing the right bus becomes a matter of high importance. With this arise other
issues such as what should be the deciding factor to choose the bus for your
embedded system. Even inside a specific set of buses there are questions about
how to deal with the overhead of switching between different buses and how this
overhead can be minimized to increase the overall efficiency of the system. In my
research an attempt has been made to address the above issues and a system has
been devised to reduce the switching overhead among various buses and thus
improve the overall efficiency of the system. I will be focusing mainly on serial
protocols used inside mobile phone embedded systems and will be exploiting UML
for designing a serial protocol bridge and implementing the same on FPGA.
7/26/2019 1serial Protocol Bridge
28/88
16
Chapter 3
Design
3.1 Introduction
As discussed in the last chapter, serial communication plays an important role in
embedded systems. In this research a serial protocol bridge intended for mobile
phone applications is implemented. I2C and SPI serial protocols are invariably
deployed in all mobile applications. Thus an I2CSPI protocol bridge will provide
a way to communicate between various slave devices. This project will be based on
one of the available UML platform descriptions and will not be focusing on
making changes to the UML as such. Rather the focus will be on exploring serial
protocols used inside todays mobile devices.
A typical mobile phone mother board consists of a high speed processor at its heart
and various other peripherals such as keypad, LCD, camera, GPS, TV out, speakers,
microphone, etc. The processor uses some protocol to communicate with each of
these peripherals depending on the speed requirement. It contains a controller for
each of the protocols and each device is considered as a slave to one of the
controllers. For example, an I2C master is required for communication with an I2C
slave and an SPI master is required for communicating with an SPI slave. We will
be implementing a serial protocol bridge such that inter protocol communication is
7/26/2019 1serial Protocol Bridge
29/88
17
made possible, saving the overhead of switching between different masters or
slaves and exchanging data seamlessly between different protocols. For example if
an SPI master wants to read output of an RTC (real time clock) chip which is an
I2C slave, we can use the I2C-SPI protocol bridge where bridge can store RTC
data to EEPROM using I2C master and SPI master can read data from EEPROM
which is an SPI slave.
There are various design methodologies for implementing such a protocol bridge.
First of all the detail of the various components of the bridge is to be decided.
Further each component will be implemented independently as a state machine
based on flow charts and state diagrams. Thus we will implement a module based
design. In rest of this chapter I will be putting some light on design methodology
used for implementing the serial protocol bridge.
3.2 Basics of I2C protocol
The I2C protocol is considered to be the most basic serial protocol intended for use
inside an embedded system. It is a 2 wire protocol- SCL (serial clock line) and
SDA (serial data line). As it has a single data line, data can either be sent or
received. Hence it is capable of performing a half-duplex communication. It is a
multi-master protocol where a process known as arbitration is used to decide the
7/26/2019 1serial Protocol Bridge
30/88
18
winning master among various masters. Then the winning master generates the
clock and sends a start bit followed by the 7 or 10-bit address of the slave. All
communications in I2C are carried as an 8-bit transfer. The 10 bit address is broken
down into 7 bits and 3 bits and sent as 2 byte transfer. The 7-bit address is
appended with 1 additional R/W bit indicating whether a read or a write operation
is to be performed. In case a slave is not ready for data transfer it can keep the
clock line low as long as it is not ready for the transfer. This phenomenon is known
as clock stretching. After each successful byte transfer, an acknowledgment is sent
by the receiver. In case the master wants to stop a read operation it sends not
acknowledge signal (NACK). A more detailed description on I2C can be found at
[8]. Figure 3.1 shows a waveform for a typical I2C transaction. An I2C transaction
begins with a 'start' condition, followed by the address of the device we wish to
speak to, a bit to indicate if we want to read or write, the data written or read, and
finally a 'stop'. An I2C master is capable of communicating at 4 different speeds-
100kbits/s (standard mode), 400kbits/s (fast mode), 1Mbits/s (fast plus mode) and
3.4Mbits/s (high speed mode). Typical voltages used are 3.3 V and 5 V.
7/26/2019 1serial Protocol Bridge
31/88
19
Figure 3.1 Typical I2C transactions
3.3 Basics of SPI protocol
The SPI protocol is a full duplex communication protocol where each data transfer
is an exchange of 1 byte of data. It consists of 4 signals- MISO (master in slave
out), MOSI (master out slave in), SCK (serial clock) and SS (slave select). It is
generally used for exchanging bulk data between a single master-slave pair. An SPI
master comprises 3 basic registers -SPCR (serial peripheral control register), SPSR
(serial peripheral status register) and SPDR (serial peripheral data I/O register). A
master is capable of setting the phase and polarity of clock signal by changing
values of CPHA (clock phase) and CPOL (clock polarity) bits in the SPCR register.
Further it selects the slave by pulling the slave select line high. A byte of data is
exchanged by sending a byte on the MOSI line and simultaneously receiving a
byte on the MISO line. SPIF (SPI transfer complete flag) in SPSR is set after
successful completion of data transfer. WCOL (write collision) and MODF (mode
fault) flags in SPSR are used to indicate faults during unsuccessful transfer. A more
detailed explanation on these flags can be found at [14]. Figure 3.2 shows the
7/26/2019 1serial Protocol Bridge
32/88
20
waveform for a typical SPI transaction. The line MOSI is 'master output' and
MISO is the 'slave output'. The master pulls SSEL down to indicate beginning of
communication to the slave. Since SPI is full duplex, both lines toggles
simultaneously, with different data going from master to slave and slave to master.
Master pulls SSEL up to indicate transfer is over. Master can keep SSEL low until
communication is not over and pulls SSEL high only to indicate that transfer is
over. Typical SPI frequency is 100MHz.
Figure 3.2 Typical SPI transactions.
3.4 Design methodology
An existing UML profile (UML 10.0) [15] has been used for designing the bridge.
There are different ways to implement the bridge based on the requirements.
(i) When I2C master is required to communicate with the SPI slave bridge will
consist of I2C slave - SPI master.
(ii) When SPI master is required to communicate with the I2C slave bridge will
consists of SPI slave- I2C master.
(iii) In the third case there is a combination of both in order to make
7/26/2019 1serial Protocol Bridge
33/88
21
communication between 2 protocols seamless.
Based on the above requirement, the protocol bridge can be divided into 4 modules:
I2C master, I2C slave, SPI master and SPI slave. All these modules have been
implemented as state machines and a detailed design for each of these modules has
been described in the following sections.
3.4.1 Designing I2C master
For designing an I2C master UML profile 10.0 has been used. First a basic use case
diagram has been designed as shown in Figure 3.3. Further a state diagram has
been generated representing various states an I2C master can attain along with the
stimulation for changing one state to another. A fully descriptive state diagram has
been shown in Figure 3.4. A sequence diagram for read and write use cases is
shown which puts a light on the sequence of events that take place during the entire
communication between I2C master and slave. Figure 3.5 shows a detailed
sequence diagram for an I2C master write use case and Figure 3.6 shows a detailed
sequence diagram for read operation.
7/26/2019 1serial Protocol Bridge
34/88
22
Figure 3.3 Use case diagram for I2C master.
7/26/2019 1serial Protocol Bridge
35/88
23
Figure 3.4 State diagram for I2C master.
7/26/2019 1serial Protocol Bridge
36/88
24
Figure 3.5 Sequence diagram for I2C master write use case.
7/26/2019 1serial Protocol Bridge
37/88
25
Figure 3.6 Sequence diagram for I2C master read use case
7/26/2019 1serial Protocol Bridge
38/88
26
3.4.2 Designing I2C slave
The I2C slave has been designed on the same lines as the I2C master. First a use
case diagram has been drawn in Figure 3.7, to depict the basic functionality of the
I2C slave. Figure 3.8 is an elaborated state diagram for the I2C slave. And at last a
sequence diagrams for read and write use cases are shown in Figure 3.9 and Figure
3.10 which elaborates the sequence of events occurring during a typical I2C
communication.
Figure 3.7 Use case diagram for I2C slave.
7/26/2019 1serial Protocol Bridge
39/88
27
Figure 3.8 State diagram for I2C slave.
7/26/2019 1serial Protocol Bridge
40/88
28
Figure 3.9 Sequence diagram for I2C slave write use case.
7/26/2019 1serial Protocol Bridge
41/88
29
Figure 3.10 Sequence diagram for I2C slave read use case.
7/26/2019 1serial Protocol Bridge
42/88
30
3.4.3 Designing SPI master
Figure 3.11 shows the basic use case diagram for the SPI master. In the case of the
SPI master as mentioned before 3 registers -SPCR, SPSR and SPDR- play a vital
role. Hence the state diagram in Figure 3.12 and the sequence diagram in Figure
3.13 show checking of the various bits in these registers at different stages of
communication.
Figure 3.11 Use case diagram for SPI master.
7/26/2019 1serial Protocol Bridge
43/88
31
Figure 3.12 State diagram for SPI master
Figure 3.13 Sequence diagram for SPI master data exchange use case.
7/26/2019 1serial Protocol Bridge
44/88
32
3.4.4 Designing SPI slave
An SPI slave has a lot less work load compared to an SPI master, as the slave need
not worry about setting of the clock phase as well as clock polarity. Hence
designing an SPI slave is lot simpler. Figure 3.14 shows the use case diagram for
an SPI slave. As SPI communication is full duplex data is sent and received
simultaneously. Thus the state diagram for the SPI slave is quiet similar to the SPI
master, excluding the clock generation part. Figure 3.15 shows an elaborated state
diagram for an SPI slave and Figure 3.16 which depicts the sequence of events that
take place on the slave side of SPI communication.
Figure 3.14 Use case diagram for SPI slave.
7/26/2019 1serial Protocol Bridge
45/88
33
Figure 3.15 State diagram for SPI slave.
Figure 3.16 Sequence diagram for SPI slave.
7/26/2019 1serial Protocol Bridge
46/88
34
3.5 Bridge formation
In order to form a serial protocol bridge we need to combine the above modules
so that the master of one serial protocol is able to communicate with the slave of
another serial protocol. The most obvious way of combining modules of different
protocols is through shared memory. When one protocol writes into its slave
device, the master from the other protocol can write the data stored in the shared
memory to its own slave. In this manner the goal achieved will be a master of one
protocol writing into the slave of the other protocol. Figure 3.17 and Figure 3.18
depicts this operation.
Figure 3.17 SPI master writes to I2C slave through serial protocol bridge.
7/26/2019 1serial Protocol Bridge
47/88
35
Figure 3.18 I2C master writes to SPI slave through serial protocol bridge.
Similarly a read can be done in the reverse order. That is, the master inside the
bridge can do a read operation on its corresponding slave which is outside the
bridge and store the read data into the shared memory. And then the master
(outside the bridge) of the other protocol can perform a read operation on the slave
device which is part of the bridge. The goal achieved is a read operation performed
on the slave of one protocol by the master of another protocol. Figure 3.19 and
Figure 3.20 depicts the operation described above.
7/26/2019 1serial Protocol Bridge
48/88
36
Figure 3.19 SPI master performs read on I2C slave through serial protocol bridge.
Figure 3.20 I2C master performs read on SPI slave through serial protocol bridge.
7/26/2019 1serial Protocol Bridge
49/88
37
Another approach to the implementation is a combination of above the described
bridges where the bridge contains all four components- SPI master, SPI slave and
I2C master and I2C slave, thus enabling the communication between the two types
of protocols seamlessly. Figure 3.21 depicts the block diagram of the universal
bridge described above.
Figure 3.21 Complete bridge
7/26/2019 1serial Protocol Bridge
50/88
38
3.6 Conclusion
So far we have discussed various ways in which the serial protocol bridge can be
implemented. We have also seen how we can break the whole design into 4 main
modules and we have used UML 10.0 to design each of the modules
independently. Use case diagrams, state diagrams and sequence diagrams have
been used to design the fully working modules and further block diagrams have
been used to combine these modules into the serial protocol bridge. Now we can
move further into implementation of each of the designed modules. Next chapter
will comprise the implementation details along with simulation of the four
modules that we have designed in this chapter.
7/26/2019 1serial Protocol Bridge
51/88
39
Chapter 4
Implementation
4.1 Introduction
In the previous chapter we have designed the four basic modules for an I2C-SPI
serial protocol bridge using UML 10.0. We have also seen how each of these
modules can be represented using a state machine diagram. In this chapter we will
be focusing on how each of these state machines can be implemented using HDL
(hardware description language). In industry standards two main hardware
languages are used in order to simulate and test the designs before actually
experimenting with the hardware. These are VHDL (very high speed integrated
circuit hardware descriptive language) and Verilog [11, 13]. Both these languages
have their specific uses. Verilog is used where gate level implementation is
required whereas VHDL is more useful while implementing system level modules.
As in our design we are more focused on a system level implementation of the
serial protocol bridge, we will be simulating our designs using VHDL. Each of the
four state machines will be implemented independently with a test bench providing
incoming signals that ideally should be sent by other modules. After simulating
each of these state machines, we will be integrating these modules together in
order to create the higher level systems as described in the chapter 3.
7/26/2019 1serial Protocol Bridge
52/88
40
While implementing a state machine we will define certain commands that will
decide transition from one state to the next. Here each command will be driving
signals and data through multiple states. All the commands will have one common
state that helps in easy transitioning between successive commands. In the rest of
the chapter we will describe the four basic modules of the serial protocol bridge
along with their combinations which we have implemented in order to form the
complete bridge. Each of our designs has been implemented in VHDL and
instantiated on ALTERA DE-115 board with a CYCLONE IV E chip. In this
chapter we will be describingsimulation waveforms. All the simulations have been
done in ModelSim ALTERA STARTER EDITION 6.5e.
4.2 I2C master
I2C master state machine has five main commands- NOP, READ, WRITE, START
and STOP. Reset has not been included as a state; rather it is included as a signal to
the state machine. Each of these commands has been further divided into multiple
states depending upon the number of bits that are needed to be transmitted or
received during its execution. Each bit is transmitted on a fresh clock cycle. So in
order to transmit a 7 bit address, 7 clock bits are required. Idle state is the shared
state among all commands and solves the problem of transitioning between various
7/26/2019 1serial Protocol Bridge
53/88
41
commands. Master also has an 8-bit memory in order to save the received bit.
Figure 4.1 shows typical I2C master state machine waveforms. It depicts the
transitions on SDA line during each command. Table 4.1 describes various state
transitions involved in each of the valid I2C master commands.
Command Name Command Code State Transitions SDA Transitions
START 010 idle start_a start_b idle 1 0 1 1
STOP 010 idle stop_a idle 1 0 1
READ 100 idle rd_a rd_b rd_c
rd_d rd_e rd_f rd_g
rd_h rd_i idle
1 8-bit data read
from slave NACK
sent by master 1
WRITE 101 idle wr_a wr_b wr_c
wr_d wr_e wr_f
wr_g wr_h wr_i idle
1 8-bit data or 7-bit
address + read/write bit
ACK sent by slave
1
NOP 000 idle 1
Table 4.1 I2C master transition table
7/26/2019 1serial Protocol Bridge
54/88
42
Figure 4.1 I2C master waveform generated through test bench
4.3 I2C slave
I2C slave state machine has been implemented on the same lines as I2C master.
The most basic difference between I2C slave and I2C master is that the slave is not
capable of initiating any data transfer. So it is not having any READ or WRITE
command. Rather it will be detecting SDA (serial data) line for start bit and once it
detects a start bit it changes its state to match the address being sent. After
matching the address received with its own address, it sends acknowledge bit and
7/26/2019 1serial Protocol Bridge
55/88
43
jumps to either read or write state depending on the value of read/write bit sent by
I2C master. Hence I2C slave cannot be commanded to read or write directly by the
host. Figure 4.2 shows typical I2C slave waveform.
Figure 4.2 I2C slave generated through test bench
7/26/2019 1serial Protocol Bridge
56/88
44
4.4 SPI master
SPI master state machine contains 3 main commands -CONFIG, EXCHANGE and
NOP. In case of SPI, data is sent and received simultaneously, hence there is no
explicit read or write command. Exchange command serves the purpose of both
read and write. SPI master selects SPI slave by pulling the SS (slave select) line
connected to the desired port low. Apart from that SPI CONFIG command is very
important as it sets the register values needed during data exchange. It mainly sets
value for CPOL (clock polarity) and CPHA (clock phase). CPOL if set to '0'
indicates that no data will be exchanged when SCLK (serial clock) is at level '0'
and if set to '1' data will not be exchanged at level '1' of SCLK. Similarly CPHA is
set or reset during CONFIG command. Setting of CPHA bit to '1' indicates that
data will be exchanged on the falling edge whereas when CPHA is set to '0' data is
exchanged on the rising edge. After successful setting of these bits, SPI master
pulls SS (slave select) line low and data is exchanged. While implementing SPI
master, each of these main states has been broken down to multiple states in order
to add the delay required to get into right configuration before actual data exchange
can occur. Figure 4.3 shows a typical waveform of SPI master communicating with
SPI slave. Table 4.2 describes state transitions for typical SPI commands.
7/26/2019 1serial Protocol Bridge
57/88
45
Command Name Command Code State Transitions Signals Involved
CONFIG 010 idle config_a
config_b config_c
idle
SCLK
EXCHANGE 100 idle exchange_a
exchange_b idle
SCLK,MISO,MOSI,SS
NOP 000 idle none
Table 4.2 SPI master transition table
Figure 4.3 SPI master waveform generated through test bench
7/26/2019 1serial Protocol Bridge
58/88
46
4.5 SPI slave
SPI slave also needs to set its registers in order to send or receive data from SPI
master. Hence SPI slave state machine has a CONFIG command. But it is not
supporting any exchange command, as it depends on SPI master for data exchange.
It can only send or receive when master indicates this by pulling its SS (slave
select) line low. Hence it continuously monitors its SS line for data exchange.
Figure 4.4 shows a typical SPI slave waveform.
Figure 4.4 SPI slave waveform generated through test bench
7/26/2019 1serial Protocol Bridge
59/88
47
4.6 Bridge formation
Till now we have done simulation of individual modules for the serial protocol
bridge. Now we will be generating new state machines using the above modules as
components in order to form a fully functional bridge. As described in the chapter
3, in Figure 3.19 and Figure 3.20, we can form a serial protocol bridge using 2 of
the above modules or we can combine all four modules as described in Figure 3.21.
We will be creating two independent interfaces before forming the complete serial
protocol bridge. One of the interfaces will combine I2C Master and I2C Slave
forming an I2C interface. Another interface will combine SPI master and SPI slave
forming an SPI interface. These interfaces are formed in order to reduce the
number of components required for the complete bridge. Figure 4.5 and Figure 4.6
depicts a typical waveform for I2C interface and SPI interface respectively.
7/26/2019 1serial Protocol Bridge
60/88
48
Figure 4.5 I2C interface waveform generated using test bench
Figure 4.6 SPI interface waveform (master is reading back after writing)
7/26/2019 1serial Protocol Bridge
61/88
49
Now, as we have two interfaces ready, we will be combining these two interfaces
together in order to form the complete bridge. Hence the bridge now is going to
have these two interfaces as its components rather than 4 modules as its component.
The state machine for the complete or full serial protocol bridge is then going to
have four different modes- I2C_WRITE_SPI, I2C_READ_SPI, SPI_WRITE_I2C
and SPI_READ_I2C. These four modes are basically four different ways bridge
can be used. Along with two interfaces complete bridge will also be having shared
memory. There are two 8-bit registers in order to share data. One register is used
for sharing data between I2C slave and SPI master and the other one is used in
order to share data between I2C master and SPI slave. This has been done so that
the serial protocol bridge can be used in any of the four possible modes. Figure 4.7
depicts block diagram of serial protocol bridge having two interfaces and two
shared memories. Figure 4.8 depicts waveform of serial protocol bridge in
I2C_WRITE_SPI mode. Figure 4.9 depicts waveform of serial protocol bridge in
I2C_READ_SPI mode. Figure 4.10 depicts waveform of serial protocol bridge in
SPI_WRITE_I2C mode and Figure 4.11 depicts waveform of serial protocol bridge
in SPI_READ_I2C mode.
7/26/2019 1serial Protocol Bridge
62/88
50
Figure 4.7 Complete I2C-SPI serial protocol bridge
7/26/2019 1serial Protocol Bridge
63/88
51
Figure 4.8 I2C master writes to SPI slave through serial protocol bridge
Figure 4.9 I2C master reads SPI slave through serial protocol bridge
7/26/2019 1serial Protocol Bridge
64/88
52
Figure 4.10 SPI master writes to I2C slave through serial protocol bridge
Figure 4.11 SPI master reads I2C slave through serial protocol bridge
7/26/2019 1serial Protocol Bridge
65/88
53
4.7 Hardware implementation
All the simulations have been done using ModelSim ALTERA 6.5e. The code has
been targeted for FPGA cyclone IV E chip family on ALTERA DE115 board.
Hardware compilation has been done for device EP4CE115F29C7N using
QUARTUS II. Table 4.3 describes typical values for the on board FPGA chip. The
FPGA device has total of 114,480 LUTs (logic units), 529 pins, 3,981,312 memory
bits and 4 PLLs. It can work at 250 MHz (max) frequency. We have successfully
implemented all the design modules of serial protocol bridge on the FPGA chip on
ALTERA DE115 board. The successful simulation and compilation has proved the
functioning of the bridge. The hardware implementation reports for have been
included in Appendix A. As the design modules are not communicating with actual
slave devices we have simulated all designs at 170X2 MHz for the sake of
uniformity. An interesting fact observed while implementing the bridge on FPGA
is that although we have used basic design modules as components in order to form
interfaces and further we used interfaces as components to form the bridge but the
total logic units of the comprising modules is less as compared to sum of
individual components. Table 4.4 depicts the hardware implementation details of
all the design modules.
7/26/2019 1serial Protocol Bridge
66/88
54
Core Voltage 1.2V
Logic Elements 114480
I/O pins 529
Memory Bits 3981312
Embedded multiplier 9-bit elements 532
PLL 4
Global clocks 20
temperature 0-85(Celsius)
Table 4.3 Typical characteristics of EP4CE115F29C7 FPGA chip
Table 4.4 Hardware implementation details for all design modules
7/26/2019 1serial Protocol Bridge
67/88
55
4.8 Camera example revisited
The problem explained through Figure 1.1can be solved using the above designed
serial protocol bridge. Now camera can be slave to only one protocols master and
can be accessed by other protocols through bridge. This will make the designing of
mobile devices simpler. It is also going to reduce the wiring on the PCB (printed
circuit board). Hence using the serial protocol bridge will reduce the overall size of
the device along with making it simpler and easier to implement. Figure 4.12
depicts the change in camera example with the use of serial protocol bridge.
Figure 4.12 Camera example revisited
7/26/2019 1serial Protocol Bridge
68/88
56
4.9 Conclusion
In this chapter we have successfully done the simulation of all the modules
designed in the previous chapter. Two interfaces were designed, simulated and
implemented successfully. We have also successfully demonstrated the fully
functional serial protocol bridge in all possible modes. Hence the inter protocol
communication was made possible using the bridge and the same has been
depicted in the waveforms generated through test benches.
7/26/2019 1serial Protocol Bridge
69/88
57
Chapter 5
Conclusion
In this research we have designed and implemented an I2C-SPI serial protocol
bridge. Both these protocols are used for serial communication in embedded
mobile devices and almost all the peripherals inside these devices use one of the
serial protocols. Serial protocols work in master-slave configuration. Hence each
peripheral is slave to one of the protocols and is accessible through its respective
master. But there are many scenarios when the master of one protocol type wants
to communicate with the slave of another protocol. The bridge that we have
designed and implemented in this research is capable of making communication
between the devices of different protocols seamless as the master of one can access
the slave of another via the serial protocol bridge. We have seen different ways of
implementing the bridge depending on the requirements. As an outcome of this
research we have come to the conclusion that complex systems can be designed
and implemented by breaking them down into smaller modules. While designing
the serial protocol bridge we have used a bottom up approach.
Firstly we have discussed the available protocols needed for transmitting data from
one peripheral to another. The background chapter also sheds light on the
7/26/2019 1serial Protocol Bridge
70/88
58
importance of serial communication in the embedded world. A table summarizing
the typical characteristics of some of the most used protocols has been included.
Apart from that, trends in mobile phone architectures were discussed and at the end
the conclusion has been drawn that I2C and SPI are most widely used serial
communication protocols in mobile phone embedded systems. Hence these two
protocols were chosen for implementation in the serial protocol bridge.
During the design phase we have used an existing UML platform for designing the
modules in our design. We described the four basic modules of serial protocol
bridge- I2C slave, I2C master, SPI slave and SPI master using use case diagrams,
sequence diagrams and state diagrams. The elaborated sequence diagrams and state
diagrams helped us in clarifying the basic concepts of I2C and SPI protocol
communication. In the end of the chapter final bridge formation was discussed and
block diagrams were included to demonstrate how the basic modules could be
combined to allow communication between I2C and SPI devices.
In the implementation chapter we have successfully implemented the four basic
modules of the serial protocol bridge. After generating the waveforms for the basic
modules two interfaces were designed and tested successfully. Waveforms were
generated in order to describe the functioning of these two interfaces. At last a final
7/26/2019 1serial Protocol Bridge
71/88
59
state machine was implemented that included the two previously generated
interfaces as its components along with two shared 8-bit registers. This final state
machine could work in four modes. Below is a list of the four modes in which the
state machine could be used
a) I2C master writing to SPI slave
b) I2C master reading from SPI slave
c) SPI master writing to I2C slave
d) SPI master reading from I2C slave
Hence we successfully demonstrated the fully functional I2C-SPI serial protocol
bridge and waveforms were generated through test benches for each mode.
Implementation has been done using ModelSim ALTERA STARTER EDITION
6.5e and was targeted for ALTERA DE115 board. The complete bridge Along with
all design modules has been successfully implemented on board.
By using this bridge we are able to solve the issue discussed in chapter 1 where
each device was required to be slave to all the protocols it was communicating
with. With this bridge each peripheral needs to be slave to only one protocol. This
will reduce the wiring and as a result reduce the overall size of the device.
7/26/2019 1serial Protocol Bridge
72/88
60
Future prospects
This research has been concluded with a fully functional I2C-SPI serial protocol
bridge. It has been simulated for ALTERA board and can be used in real time
scenarios by adding protocol compatible slave devices to the board. All the
simulations have been done in VHDL and can be done for other languages as well.
This bridge can be tested for actual size reduction of mobile devices. This can
improve the on-board communication among different peripherals and thus can
improve overall efficiency of the system. A good exercise will be
1.
To add ALTERA specific protocol to the bridge and communicate with the
peripherals on the ALTERA DE115 board like LCD, LEDs.
2. Add USB protocol to the bridge and communicate with the mouse and other
USB devices.
3.
Add RS-232 protocol to the existing bridge and make it communicate with
the PC.
4.
We can also add parallel protocols to the existing serial protocol bridge and
make it a universal protocol bridge.
5.
We can add I2C or SPI specific slave devices and use bridge to communicate
with them. Most widely used I2C device for test purposes is RTC chip. Dont
forget to change clock speeds of the prototype before using it with actual I2C or
SPI slave.
7/26/2019 1serial Protocol Bridge
73/88
61
References
[1]http://www.eetimes.com/design/embedded/4023975/Serial-Protocols-Compared,
May 31 2002
[2] A. K. Oudjida, M. L. Berrandjia, R. Tiar, A. Liacha, K. Tahraoui, FPGA
Implementation of I2C & SPI protocols: a comparative study, 16th IEEE
International Conference on Electronics, Circuits, and Systems, December 2009,
pp. 507-510.
[3] Margarita Esponda, Trends in Hardware Architecture for Mobile Devices,
Technical Report B-04-17, Freie Universitt Berlin, Fachbereich Mathematik und
Informatik, November 2004
[4] R. Chen, M. Sgroi, G. Martin, L. Lavagno, A. Sangiovanni-Vincentelli, and J.
Rabaey, Embedded system design using uml and platforms, In Forum Design
Languages FDL 02. Marseille, France, September 2002.
[5] B. Selic, J. Rumbaugh, Using UML for modeling complex real-time systems,
Rational Software Corporation, March 1998.
[6]http://en.wikipedia.org/wiki/Field-programmable_gate_array
[7] Jan Jrjens, Secure Systems Development with UML, Springer Publications,
2005, ISBN 978-3-540-00701-2
[8]http://www.fpga4fun.com/I2C.html,2008
http://www.eetimes.com/design/embedded/4023975/Serial-Protocols-Comparedhttp://en.wikipedia.org/wiki/Field-programmable_gate_arrayhttp://en.wikipedia.org/wiki/Field-programmable_gate_arrayhttp://www.fpga4fun.com/I2C.htmlhttp://www.fpga4fun.com/I2C.htmlhttp://en.wikipedia.org/wiki/Field-programmable_gate_arrayhttp://www.eetimes.com/design/embedded/4023975/Serial-Protocols-Compared7/26/2019 1serial Protocol Bridge
74/88
62
[9] P.Venkateswaran, Madhumita Mukherjee, Arindam Sanyal, Snehasish Das and
R.Nandi, Design and Implementation of FPGA Based Interface Model for Scale-
Free Network using I2C Bus Protocol on Quartus II 6.0, International Conference
on Devices for Communication 2009
[10]http://www.ti.com/lit/ml/swpt034b/swpt034b.pdf
[11] Douglas J Smith, HDL Chip Design: A Practical Guide for Designing,
Synthesizing and Simulating ASICs and FPGAs using VHDL or Verilog, Doone
Publications, 1996 ISBN 0-9651934-3-8
[12]http://www.angelfire.com/in/rajesh52/verilogvhdl.html
[13] G. Martin, L. Lavagno, J. Louis-Guerin, Embedded UML: a merger of real-
time UML and co-design, Proceedings of CODES 2001, Copenhagen, Apr. 01, pp.
23-28
[14]http://www.fpga4fun.com/SPI.html,May 13 2009.
[15]http://en.wikipedia.org/wiki/Visual_Paradigm_for_UML,July 19 2012.
[16] J. da Silva Jr., M. Sgroi, F. De Bernardinis, S.F Li, A. Sangiovanni-Vincentelli
and J. Rabaey, Wireless protocols design: challenges and opportunities,
Proceedings of the 8th IEEE International Workshop on Hardware/Software
Codesign, CODES '00, S.Diego, CA, USA, May 2000
http://www.ti.com/lit/ml/swpt034b/swpt034b.pdfhttp://www.ti.com/lit/ml/swpt034b/swpt034b.pdfhttp://www.angelfire.com/in/rajesh52/verilogvhdl.htmlhttp://www.angelfire.com/in/rajesh52/verilogvhdl.htmlhttp://www.fpga4fun.com/SPI.htmlhttp://en.wikipedia.org/wiki/Visual_Paradigm_for_UMLhttp://en.wikipedia.org/wiki/Visual_Paradigm_for_UMLhttp://www.fpga4fun.com/SPI.htmlhttp://www.angelfire.com/in/rajesh52/verilogvhdl.htmlhttp://www.ti.com/lit/ml/swpt034b/swpt034b.pdf7/26/2019 1serial Protocol Bridge
75/88
63
Appendix A
A.1 I2C master implementation report
------------------------------------------------------------------------------
Analysis & Synthesis Summary------------------------------------------------------------------------------
Analysis & Synthesis Status Successful - Fri Aug 03 10:34:01 2012
Quartus II Version 10.0 Build 218 06/27/2010 SJ Web EditionRevision Name I2C_master
Top-level Entity Name I2C_master
Family Cyclone IV E
Total logic elements 77Total combinational functions 77
Dedicated logic registers 34Total registers 34Total pins 38
Total virtual pins 0
Total memory bits 0Embedded Multiplier 9-bit elements 0
Total PLLs 0
-----------------------------------------------------------------------------Fitter Summary
-----------------------------------------------------------------------------
Fitter Status Successful - Fri Aug 03 10:34:52 2012Quartus II Version 10.0 Build 218 06/27/2010 SJ Web Edition
Revision Name I2C_master
Top-level Entity Name I2C_master
Family Cyclone IV EDevice EP4CE115F29C7
Timing Models Final
Total logic elements 77 / 114,480 ( < 1 % )Total combinational functions 77 / 114,480 ( < 1 % )
Dedicated logic registers 34 / 114,480 ( < 1 % )
Total registers 34
Total pins 38 / 529 ( 7 % )Total virtual pins 0
Total memory bits 0 / 3,981,312 ( 0 % )Embedded Multiplier 9-bit elements 0 / 532 ( 0 % )
Total PLLs 0 / 4 ( 0 % )
7/26/2019 1serial Protocol Bridge
76/88
64
-----------------------------------------------------------
Slow 1200mV 85C Model Fmax Summary-----------------------------------------------------------
Fmax Restricted Fmax Clock Name Note
303.67 MHz 250.0 MHz clk limit due to minimum period restriction
------------------------------------------------------------
Slow 1200mV 85C Model Hold Summary
------------------------------------------------------------Clock Slack End Point TNS
clk 0.382 0.000
------------------------------------------------------------------------Slow 1200mV 85C Model Minimum Pulse Width Summary
------------------------------------------------------------------------
Clock Slack End Point TNS
clk -3.000 -46.690
------------------------------------------------------------------------Slow 1200mV 85C Model Setup Summary
------------------------------------------------------------------------
Clock Slack End Point TNSclk -2.293 -28.754
------------------------------------------------------------------------
Operating Settings and Conditions------------------------------------------------------------------------
Nominal Core Voltage 1.20 VLow Junction Temperature 0 C
High Junction Temperature 85 C
--------------------------------------------------------------------------
Clocks
--------------------------------------------------------------------------
Clock Name Type Period Frequency Rise Fallclk Base 1.000 1000.0 MHz 0.000 0.500
7/26/2019 1serial Protocol Bridge
77/88
65
A.2 I2C slave implementation report
------------------------------------------------------------------------------
Analysis & Synthesis Summary
------------------------------------------------------------------------------
Analysis & Synthesis Status Successful - Fri Aug 03 10:42:56 2012Quartus II Version 10.0 Build 218 06/27/2010 SJ Web Edition
Revision Name I2C_slave
Top-level Entity Name i2c_slaveFamily Cyclone IV E
Total logic elements 73
Total combinational functions 65Dedicated logic registers 43
Total registers 43
Total pins 24Total virtual pins 0
Total memory bits 0Embedded Multiplier 9-bit elements 0Total PLLs 0
-----------------------------------------------------------------------------------
Fitter Summary-----------------------------------------------------------------------------------
Fitter Status Successful - Fri Aug 03 10:43:29 2012
Quartus II Version 10.0 Build 218 06/27/2010 SJ Web EditionRevision Name I2C_slave
Top-level Entity Name i2c_slave
Family Cyclone IV EDevice EP4CE115F29C7Timing Models Final
Total logic elements 73 / 114,480 ( < 1 % )
Total combinational functions 65 / 114,480 ( < 1 % )Dedicated logic registers 43 / 114,480 ( < 1 % )
Total registers 43
Total pins 24 / 529 ( 5 % )Total virtual pins 0
Total memory bits 0 / 3,981,312 ( 0 % )
Embedded Multiplier 9-bit elements 0 / 532 ( 0 % )
Total PLLs 0 / 4 ( 0 % )
-----------------------------------------------------------------------------
Operating Settings and Conditions-----------------------------------------------------------------------------
Nominal Core Voltage 1.20 VLow Junction Temperature 0 C
High Junction Temperature 85 C
7/26/2019 1serial Protocol Bridge
78/88
66
-----------------------------------------------------------------------Clocks
-----------------------------------------------------------------------
Clock Name Type Period Frequency Rise Fall
SCL Base 1.000 1000.0 MHz 0.000 0.500
--------------------------------------------------------------------------------------------------------------
Slow 1200mV 85C Model Fmax Summary--------------------------------------------------------------------------------------------------------------
Fmax Restricted Fmax Clock Name Note
297.53 MHz 237.53 MHz SCL limit due to minimum period restriction
---------------------------------------------------------------
Slow 1200mV 85C Model Setup Summary
----------------------------------------------------------------
Clock Slack End Point TNSSCL -2.361 -32.188
-----------------------------------------------------------------
Slow 1200mV 85C Model Hold Summary
-----------------------------------------------------------------Clock Slack End Point TNS
SCL 0.384 0.000
----------------------------------------------------------------------------------Slow 1200mV 85C Model Minimum Pulse Width Summary
----------------------------------------------------------------------------------Clock Slack End Point TNS
SCL -3.210 -58.465
7/26/2019 1serial Protocol Bridge
79/88
67
A.3 SPI master implementation report
-------------------------------------------------------------------------------
Analysis & Synthesis Summary
------------------------------------------------------------------------------
Analysis & Synthesis Status Successful - Fri Aug 03 10:50:22 2012Quartus II Version 10.0 Build 218 06/27/2010 SJ Web Edition
Revision Name SPI_master
Top-level Entity Name spi_masterFamily Cyclone IV E
Total logic elements 114
Total combinational functions 114Dedicated logic registers 49
Total registers 49
Total pins 63Total virtual pins 0
Total memory bits 0Embedded Multiplier 9-bit elements 0Total PLLs 0
-------------------------------------------------------------------------------
Fitter Summary------------------------------------------------------------------------------
Fitter Status Successful - Fri Aug 03 10:50:53 2012
Quartus II Version 10.0 Build 218 06/27/2010 SJ Web EditionRevision Name SPI_master
Top-level Entity Name spi_master
Family Cyclone IV EDevice EP4CE115F29C7Timing Models Final
Total logic elements 114 / 114,480 ( < 1 % )
Total combinational functions 114 / 114,480 ( < 1 % )Dedicated logic registers 49 / 114,480 ( < 1 % )
Total registers 49
Total pins 63 / 529 ( 12 % )Total virtual pins 0
Total memory bits 0 / 3,981,312 ( 0 % )
Embedded Multiplier 9-bit elements 0 / 532 ( 0 % )
Total PLLs 0 / 4 ( 0 % )
----------------------------------------------------
Operating Settings and Conditions----------------------------------------------------
Nominal Core Voltage 1.20 VLow Junction Temperature 0 C
High Junction Temperature 85 C
7/26/2019 1serial Protocol Bridge
80/88
68
---------------------------------------------------------------------
Clocks
---------------------------------------------------------------------
Clock Name Type Period Frequency Rise Fallclk Base 1.000 1000.0 MHz 0.000 0.500
------------------------------------------------------------Slow 1200mV 85C Model Fmax Summary
-------------------------------------------------------------
Fmax Restricted Fmax Clock Name
211.15 MHz 211.15 MHz clk
---------------------------------------------------------
Slow 1200mV 85C Model Setup Summary
----------------------------------------------------------Clock Slack End Point TNS
clk -3.736 -115.546
----------------------------------------------------------
Slow 1200mV 85C Model Hold Summary-----------------------------------------------------------
Clock Slack End Point TNS
clk 0.384 0.000
------------------------------------------------------------------------------
Slow 1200mV 85C Model Minimum Pulse Width Summary------------------------------------------------------------------------------
Clock Slack End Point TNS
clk -3.000 -65.965
7/26/2019 1serial Protocol Bridge
81/88
69
A.4 SPI slave implementation report
-------------------------------------------------------------------------------
Analysis & Synthesis Summary
------------------------------------------------------------------------------
Analysis & Synthesis Status Successful - Fri Aug 03 10:59:58 2012Quartus II Version 10.0 Build 218 06/27/2010 SJ Web Edition
Revision Name SPI_slave
Top-level Entity Name spi_slaveFamily Cyclone IV E
Total logic elements 237
Total combinational functions 205Dedicated logic registers 77
Total registers 77
Total pins 59Total virtual pins 0
Total memory bits 0Embedded Multiplier 9-bit elements 0Total PLLs 0
-------------------------------------------------------------------------------
Fitter Summary------------------------------------------------------------------------------
Fitter Status Successful - Fri Aug 03 11:00:30 2012
Quartus II Version 10.0 Build 218 06/27/2010 SJ Web EditionRevision Name SPI_slave
Top-level Entity Name spi_slave
Family Cyclone IV EDevice EP4CE115F29C7Timing Models Final
Total logic elements 228 / 114,480 ( < 1 % )
Total combinational functions 205 / 114,480 ( < 1 % )Dedicated logic registers 77 / 114,480 ( < 1 % )
Total registers 77
Total pins 59 / 529 ( 11 % )Total virtual pins 0
Total memory bits 0 / 3,981,312 ( 0 % )
Embedded Multiplier 9-bit elements 0 / 532 ( 0 % )
Total PLLs 0 / 4 ( 0% )
----------------------------------------------------
Operating Settings and Conditions----------------------------------------------------
Nominal Core Voltage 1.20 VLow Junction Temperature 0 C
High Junction Temperature 85 C
7/26/2019 1serial Protocol Bridge
82/88
70
------------------------------------------------------------------Clocks
-------------------------------------------------------------------
Clock Name Type Period Frequency Rise Fall
SCLK Base 1.000 1000.0 MHz 0.000 0.500
----------------------------------------------------------
Slow 1200mV 85C Model Fmax Summary----------------------------------------------------------
Fmax Restricted Fmax Clock Name
101.64 MHz 101.64 MHz SCLK
------------------------------------------------------
Slow 1200mV 85C Model Setup Summary
-------------------------------------------------------
Clock Slack End Point TNSSCLK -8.839 -345.742
----------------------------------------------------------
Slow 1200mV 85C Model Hold Summary----------------------------------------------------------
Clock Slack End Point TNS
SCLK 0.381 0.000
----------------------------------------------------------------------------
Slow 1200mV 85C Model Minimum Pulse Width Summary-----------------------------------------------------------------------------
Clock Slack End Point TNS
SCLK -3.000 -101.945
7/26/2019 1serial Protocol Bridge
83/88
71
A.5 I2C Master-slave interface implementation report.
-------------------------------------------------------------------------------
Analysis & Synthesis Summary
------------------------------------------------------------------------------
Analysis & Synthesis Status Successful - Thu Aug 09 17:59:58 2012Quartus II Version 10.0 Build 218 06/27/2010 SJ Web Edition
Revision Name I2C_ms_interface
Top-level Entity Name I2C_ms_interfaceFamily Cyclone IV E
Total logic elements 144
Total combinational functions 136Dedicated logic registers 73
Total registers 73
Total pins 42Total virtual pins 0
Total memory bits 0Embedded Multiplier 9-bit elements 0Total PLLs 0
-------------------------------------------------------------------------------
Fitter Summary------------------------------------------------------------------------------
Fitter Status Successful - Thu Aug 09 18:00:27 2012
Quartus II Version 10.0 Build 218 06/27/2010 SJ Web EditionRevision Name I2C_ms_interface
Top-level Entity Name I2C_ms_interface
Family Cyclone IV EDevice EP4CE115F29C7Timing Models Final
Total logic elements 145 / 114,480 ( < 1 % )
Total combinational functions 136 / 114,480 ( < 1 % )Dedicated logic registers 73 / 114,480 ( < 1 % )
Total registers 73
Total pins 42 / 529 ( 8 % )Total virtual pins 0
Total memory bits 0 / 3,981,312 ( 0 % )
Embedded Multiplier 9-bit elements 0 / 532 ( 0 % )
Total PLLs 0 / 4 ( 0 % )
------------------------------------------------------------
Clocks------------------------------------------------------------
Clock Name Type Period Frequency Rise Fall------------------------------------------------------------
clock Base 1.000 1000.0 MHz 0.000 0.500
7/26/2019 1serial Protocol Bridge
84/88
72
------------------------------------------------------------
--------------------------------------------------
Slow 1200mV 85C Model Fmax Summary
-----------------------------------------------
Fmax Restricted Fmax Clock Name Note166.78 MHz 166.78 MHz clock
-----------------------------------------------
-------------------------------------
Slow 1200mV 85C Model Setup Summary
-----------------------------------
Clock Slack End Point TNSclock -4.996 -105.177
-----------------------------------
------------------------------------Slow 1200mV 85C Model Hold Summary
----------------------------------Clock Slack End Point TNS
clock 0.283 0.000
----------------------------------
---------------------------------------------------
Slow 1200mV 85C Model Minimum Pulse Width Summary
-------------------------------------------------Clock Slack End Point TNS
clock -3.000 -96.805-------------------------------------------------
7/26/2019 1serial Protocol Bridge
85/88
73
A.6 SPI master-slave interface implementation report
-------------------------------------------------------------------------------
Analysis & Synthesis Summary
------------------------------------------------------------------------------
Analysis & Synthesis Status Successful - Thu Aug 09 17:55:12 2012Quartus II Version 10.0 Build 218 06/27/2010 SJ Web Edition
Revision Name SPI_interface
Top-level Entity Name spi_interfaceFamily Cyclone IV E
Total logic elements 215
Total combinational functions 215Dedicated logic registers 91
Total registers 91
Total pins 76Total virtual pins 0
Total memory bits 0Embedded Multiplier 9-bit elements 0Total PLLs 0
-----------------------------------------------------------------------------
Fitter Summary------------------------------------------------------------------------------
Fitter Status Successful - Thu Aug 09 17:55:40 2012
Quartus II Version 10.0 Build 218 06/27/2010 SJ Web EditionRevision Name SPI_interface
Top-level Entity Name spi_interface
Family Cyclone IV EDevice EP4CE115F29C7Timing Models Final
Total logic elements 215 / 114,480 ( < 1 % )
Total combinational functions 215 / 114,480 ( < 1 % )Dedicated logic registers 91 / 114,480 ( < 1 % )
Total registers 91
Total pins 76 / 529 ( 14 % )Total virtual pins 0
Total memory bits 0 / 3,981,312 ( 0 % )
Embedded Multiplier 9-bit elements 0 / 532 ( 0 % )
Total PLLs 0 / 4 ( 0 % )
7/26/2019 1serial Protocol Bridge
86/88
74
-------------------------------------------------------------
Clocks-------------------------------------------------------------
Clock Name Type Period Frequency Rise Fall
clock Base 1.000 1000.0 MHz 0.000 0.500
-------------------------------------------------------------
--------------------------------------------------
Slow 1200mV 85C Model Fmax Summary-----------------------------------------------
Fmax Restricted Fmax Clock Name Note
185.25 MHz 185.25 MHz clock
-----------------------------------------------
-------------------------------------
Slow 1200mV 85C Model Setup Summary
-----------------------------------Clock Slack End Point TNS
clock -4.398 -275.261-----------------------------------
------------------------------------Slow 1200mV 85C Model Hold Summary
----------------------------------
Clock Slack End Point TNS
clock 0.384 0.000----------------------------------
---------------------------------------------------
Slow 1200mV 85C Model Minimum Pulse Width Summary
-------------------------------------------------Clock Slack End Point TNS
clock -3.000 -119.935
-------------------------------------------------
7/26/2019 1serial Protocol Bridge
87/88
75
A.7 Serial protocol bridge implementation report
-------------------------------------------------------------------------
Analysis & Synthesis Summary
-------------------------------------------------------------------------
Analysis & Synthesis Status Successful - Thu Aug 09 18:10:48 2012Quartus II Version 10.0 Build 218 06/27/2010 SJ Web Edition
Revision Name I2C_SPI_BRIDGE
Top-level Entity Name I2C_SPI_BRIDGEFamily Cyclone IV E
Total logic elements 393
Total combinational functions 385Dedicated logic registers 163
Total registers 163
Total pins 69Total virtual pins 0
Total memory bits 0Embedded Multiplier 9-bit elements 0Total PLLs 0
-----------------------------------------------------------------------------Fitter Summary
-----------------------------------------------------------------------------
Fitter Status Successful - Thu Aug 09 18:11:18 2012Quartus II Version 10.0 Build 218 06/27/2010 SJ Web Edition
Revision Name I2C_SPI_BRIDGE
Top-level Entity Name I2C_SPI_BRIDGEFamily Cyclone IV EDevice EP4CE115F29C7
Timing Models Final
Total logic elements 386 / 114,480 ( < 1 % )Total combinational functions 385 / 114,480 ( < 1 % )
Dedicated logic registers 163 / 114,480 ( < 1 % )
Total registers 163Total pins 69 / 529 ( 13 % )
Total virtual pins 0
Total memory bits 0 / 3,981,312 ( 0 % )
Embedded Multiplier 9-bit elements 0 / 532 ( 0 % )Total PLLs 0 / 4 ( 0 % )
7/26/2019 1serial Protocol Bridge
88/88
-------------------------------------------------------------
Clocks--------------------------------------------------------------
Clock Name Type Period Frequency Rise Fall
clk Base 1.000 1000.0 MHz 0.000 0.500
--------------------------------------------------------------
-----------------------------------------------Slow 1200mV 85C Model Fmax Summary
-----------------------------------------------
Fmax Restricted Fmax Clock Name Note
127.24 MHz 127.24 MHz clk----------------------------------------------
-------------------------------------
Slow 1200mV 85C Model Setup Summary-----------------------------------
Clock Slack End Point TNSclk -6.859 -390.679
-----------------------------------
------------------------------------
Slow 1200mV 85C Model Hold Summary
----------------------------------
Clock Slack End Point TNSclk 0.383 0.000
----------------------------------
---------------------------------------------------
Slow 1200mV 85C Model Minimum Pulse Width Summary-------------------------------------------------
Clock Slack End Point TNS
clk -3.000 -212.455
-------------------------------------------------