hard & software interface
TRANSCRIPT
-
8/14/2019 Hard & Software Interface
1/21
UNU/IISTInternational Institute forSoftware Technology
UNU/IIST Report No. 244
Hardware/Software Interface Design
Chen Chang and He Jifeng
October 2001
-
8/14/2019 Hard & Software Interface
2/21
UNU/IIST and UNU/IIST Reports
UNU/IIST (United Nations University International Institute for Software Technology) is a Research and TrainingCentre of the United Nations University (UNU). It is based in Macau, and was founded in 1991. It started oper-
ations in July 1992. UNU/IIST is jointly funded by the Governor of Macau and the governments of the Peoples
Republic of China and Portugal through a contribution to the UNU Endownment Fund. As well as providing two-
thirds of the endownment fund, the Macau authorities also supply UNU/IIST with its office premises and furnitureand subsidise fellow accommodation.
The mission ofUNU/IIST is to assist developing countries in the application and development of software tech-nology.
UNU/IIST contributes through its programmatic activities:
1. Advanced development projects, in which software techniques supported by tools are applied,
2. Research projects, in which new techniques for software development are investigated,
3. Curriculum development projects, in which courses of software technology for universities in developing
countries are developed,
4. University development projects, which complement the curriculum development projects by aiming tostrengthen all aspects of computer science teaching in universities in developing countries,
5. Courses, which typically teach advanced software development techniques,
6. Events, in which conferences and workshops are organised or supported by UNU/IIST, and
7. Dissemination, in which UNU/IIST regularly distributes to developing countries information on interna-tional progress of software technology.
Fellows, who are young scientists and engineers from developing countries, are invited to actively participate in
all these projects. By doing the projects they are trained.
At present, the technical focus of UNU/IIST is on formal methods for software development. UNU/IIST is aninternationally recognised center in the area of formal methods. However, no software technique is universally
applicable. We are prepared to choose complementary techniques for our projects, if necessary.
UNU/IIST produces a report series. Reports are either Research R , Technical T , Compendia C or Adminis-
trative A . They are records ofUNU/IIST activities and research and development achievements. Many of thereports are also published in conference proceedings and journals.
Please write to UNU/IIST at P.O. Box 3058, Macau or visit UNU/IIST home page: http://www.iist.unu.edu , ifyou would like to know more about UNU/IIST and its report series.
Zhou Chaochen, Director 01.8.1997 31.7.2003
-
8/14/2019 Hard & Software Interface
3/21
UNU/IISTInternational Institute forSoftware Technology
P.O. Box 3058
Macau
Hardware/Software Interface Design
Chen Chang and He Jifeng
Abstract
Hardware/Software Interface plays an important role in co-design of the embedded computer system. It
links the software part and the hardware part of the system. The design process supports software inter-
face implementation and hardware interface synthesis. This report shows how the hardware and software
interfaces can be implemented by using bus extended technology in embedded computer system, which
includes the primitive interface, the synchronous interface and the data communication protocol between
the hardware and the software.
-
8/14/2019 Hard & Software Interface
4/21
Chen Chang is a Fellow of UNU/IIST, on leave form the Department of Computer Science and Technol-
ogy, East China Normal University, Shanghai, where he is a senior engineer. E-mail: [email protected]
He Jifeng is a Senior Research Fellow of UNU/IIST, on leave of absence from East China Normal Uni-versity, Shanghai, where he is a professor. His research interest lies in the sound methods of specification
of computer system, communications, application and standards, and the techniques for designing and
implementing those specifications in software and/or hardware, with high reliability and at low cost.
E-mail: [email protected]
Copyright c
2002 by UNU/IIST, Chen Chang and He Jifeng
-
8/14/2019 Hard & Software Interface
5/21
Contents i
Contents
1 Introduction 1
2 Bus Extended Technology 2
3 Primitive Interface Design 23.1 Input Interface for Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2 Output Interface for Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3 Inout Interface for Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 Synchronous Interface design 8
4.1 Input Interface for Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Output Interface for Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 Hand Shaking Protocol for Embedded Computer System 12
5.1 Hand Shaking Protocol for Hardware and Software Components . . . . . . . . . . . . . 12
5.2 The Synchronous Protocol between Processor and Co-processor . . . . . . . . . . . . . 13
6 Conclusion 14
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
6/21
-
8/14/2019 Hard & Software Interface
7/21
Introduction 1
1 Introduction
Hardware/Software Co-design technique supports the simultaneous design of both hardware and soft-
ware to implement a desired function. It has widely been used in design of Embedded Computer Sys-
tem(ECS). With hardware and software co-design methodology, a system specification is partitioned intohardware and software parts according to the system architecture.
software
implementation Interface
SW/HW
systhesis
specification
HW/SW patation
hardware
Intergration and test
Figure 1: Hardware/Software Co-design Partition
In this vertical partition processing, the formal method [1] can be used for ensuring the system de-
sign correct. Hardware/Software Interface links the software part and the hardware part in the system.
Hardware/Software Interface design includes software interface implementation and hardware interface
synthesis.
Embedded Computer System usually requires high performance at low cost. To meet such requirements
in application, powerful chips, such as Micro-Processors (MP), Micro-controllers (MC) and Digital Sig-
nal Processors (DSP), and high level programming languages are used to facilitate the software design.
Meanwhile, Hardware Description Languages (HDL) are adopted to improve the efficiency in hardware
design,
Bus is used for dispatching information in computers, through which address, data and control messages
all can be transmitted. The relationship of these signals is based on the architecture of the processor in
system. Use of bus technology in design of the hardware/software interface of embedded systems can
reduce the link number of wires and devices, and make the system easy to be extended.
This paper shows how the hardware and software interfaces can be implemented using bus extendedtechnology, and discusses in detail the primitive interface, the synchronous interface and the data com-
munication protocol between the hardware and the software. The reminder of this paper is organized as
follows. Section 2 briefly describes the Bus extended technology used in the communication interface
design. Section 3 presents the primitive hardware/software interfaces. Section 4 deals with the design of
the synchronous interface. Section 5 gives the examples of the data communication interface design.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
8/21
2 Bus Extended Technology
2 Bus Extended Technology
A standard Bus is composed of the data Bus, the address Bus and the control Bus. The Bus width is
determined by the processor architecture. The data Bus transmits data messages and normally its width
is 8Bit, 16Bit or 32Bit. The address Bus transmits address messages and its width determines the access
space of processor. The control Bus transmits system control signals.
Reading and writing are two primitive functions in the Bus. The reading protocol sees figure 2 and the
writing protocol sees figure 3.
WR
RD
dataBus
addrBus
Figure 2: The reading protocol
WR
RD
dataBus
addrBus
Figure 3: The writing protocol
In the reading and writing protocol, a specific address is first sent through the address Bus to identify the
location where the data is fetched from or is stored to. Then the data is present in the data Bus and the
control signal or in the control Bus. When the signal is in place, the processor reads the
data from the data Bus. When the signal
is valid, the data is output from the processor to the data
Bus. However,
and
can not be valid at the same time. When
and
both are absent, the
Bus is in the
state.
We use the following notations to represent the reading and writing functions in the later discussion.
reads a data into a variable form the channel .
writes the value of to the channel .
where the channel is selected by the Bus address, and the number of the channels available for commu-
nication is determined by the width of the address Bus.
3 Primitive Interface Design
The primitive interface implements input and output, where the input interface supports the reading
function, and the output interface the writing function.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
9/21
Primitive Interface Design 3
3.1 Input Interface for Processor
The input interface for processor is composed of the hardware interface and the software interface.
The behaviour of the hardware interface can be described by a Verilog module
1 define BUSwidth 8 // Width of BUS
2 module Data_input( x, y, g );
3 input [BUSwidth-1:0] x;
4 output [BUSwidth-1:0] y;
5 input g;
6 assign y = (g) ? x : {BUSwidth{1bz}} ;
7 endmodule
In this program, line 1 defines the Bus width. Line 2 introduces the module # % # ' ( 0 % as an input
hardware interface, where the parameter
stands for input,3
for output and4
for control. A digitaldevice % 5 7 - @ % # % 4 # % has the same behaviour as the hardware interface
g
yx
Figure 4: three-state gate
which performs a signal assignment
3 C E
G
4 I Q
The gate has its input wire directly connected to the input source, whose selection is determined by
the address value sent by the software input interface shown below. Its output wire3
and control wire
4are linked to the data Bus and the control Bus respectively. If
4is valid,
3is assigned the value of ,
otherwise3
is equal toQ
(which denotes high impedance).
The software interface reads the data from the hardware interface. It is implemented as a procedure
# % # # U V X
X `, where its value parameters and
identify the selected address and the control
signal, and the result parameterV
is the holder of the incoming message.
# % # # U V X
X ` cE # 7 d 0 @ C E
f
% 7 d 0 @ C E
f
q r
f
V C E # % # d 0 @
f
% 7 d 0 @ C E
f
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
10/21
4 Primitive Interface Design
To perform a primitive reading function , the application program can invoke the software interface
procedure.
In the multi-input hardware interface, the selection of the input can be implemented in two ways. One is
based on the control signal, see figure 5. The other one is based on the input source, see figure 6.
g1
g2
gn
......
dataBus
y
x1
x2
xn
......
Figure 5: control based input
Busdata
RD
addrBus
selector
xn
x2
x1
xy
g
......
Figure 6: source based input
In figure 5, the multi-input hardware interface is a collection of the three-state gates connected to the
Bus in parallel. As in the case of single three-state gate, the inputs v X w w w X are connected to their input
sources. The control wire4
becomes valid only when both
signal and the corresponding address
are available. The behaviour of this multi-input hardware interface can be modelled by
cE
4
v
3 C E
v f
4
3 C E
f
w w w w w w
4
3 C E
f
4
v
4
w w w
4
3 C E Q
f
where the input message passed to the data Bus is selected by the control signals4
. To avoid interference
between multiple inputs, we must ensure that only one of control signals can be active at any time.
In figure 6, the multi-input hardware interface is built by a three-state gate together with a selector. The
input wires v X w w w X are connected to their corresponding input resource. One of them is selected by
the address and linked to the input wire of the three-state gate. The control wire4
is solely controlled
by the
signal. This multi-input hardware interface can be modelled by the program
cE 3 C E
U # 7 d 0 @ E # 7
v
`
v f
U # 7 d 0 @ E # 7 `
f
w w w w w w
U # 7 d 0 @ E # 7
`
f
U # 7 d 0 @
# 7
v
w w
`
Q
f
G
I Q
where the input message assigned to3
is selected by the address. To avoid interference between multiple
inputs, users must ensure that only one of addresses can be active and must be active at any time.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
11/21
Primitive Interface Design 5
The procedure # % # # U V X
X `can also be used to implement the multi-input software interface.
These input interfaces for processor are the typical asynchronous interfaces. They require that the input
data should be ready before the processor executes the reading function.
3.2 Output Interface for Processor
The output interface for processor is composed of the hardware interface and the software interface. The
hardware interface can be described by the Verilog program
1 define BUSwidth 8; // Width of BUS
2 module Data_output( x, y, k );
3 input [BUSwidth-1:0] x;
4 output [BUSwidth-1:0] y;
5 input k ;
6 reg [BUSwidth-1:0] y;
7 always @( k or x or y )
8 begin
9 if (k) y=x; else y=y;
10 end
11 endmodule
A digital device # %
5 has the same behaviour as the hardware interface
k
x
y
Figure 7: Latch
where the output wire3
is directly connected to output destination. The input wire and the control wirel
are linked to the data Bus and the control Bus respectively. Whenl
is valid, the value of propagates
to the output wire 3 , otherwise 3 remains unchanged.
The software interface writes data to the hardware interface, and is implemented by the procedure
# % # 7 % U X X `
# % # 7 % U X X ` cE # 7 d 0 @ C E
f
# % # d 0 @ C E
f
% 7 d 0 @ C E
f
# 3 U
r
`
f
% 7 d 0 @ C E
f
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
12/21
6 Primitive Interface Design
where the parameter
gives the output message,
delivers the selected address and
outputs a control
signal for writing. The procedure is invoked when an application program wants to perform the writing
function .
For the multi-output interface, the selection of the output in the hardware interface can be implemented
in two ways. One is based on the control signal, see figure 8. The other one is based on the output
destination, see figure 9. In figure 8, the multi-output hardware interface is composed of a collection of
dataBus
k1
k2
kn
...... ......
y1
y2
yn
x
Figure 8: control-based output
dataBus
kWR s
elector
addrBus
......
y1
y2
yn
yx
Figure 9: destination based output
the latches connected to the Bus. As in the case of single latch, each output wire3
is linked to its own
output destination. The control wirel
is valid after both signal and the address become available.
The behaviour of this multi-output hardware interface can be modelled by the multiple assignment
cE 3
v
X 3 X w w w X 3
C E
G
l
v
I 3
v
X
G
l
I 3 X w w w X
G
l
I 3
In figure 9, the multi-output hardware interface is composed of a single latch connected to the Bus. This
kind of the multi-output hardware interface can be modelled by,
cE
U # 7 d 0 @ E # 7
v
`
3
v
U # 7 d 0 @ E # 7 `
3
w w w w w w
U # 7 d 0 @ E # 7
`
3
C E
G
I 3
f
where the output control signal is
. The output message from the data Bus is determined by theaddress. In this interface, at least one of the address must be active at any time.
The multi-output software interface can invoke the procedure # % # 7 % U X X `
to write the data
to the multi-output hardware interface. All these output interfaces for processor are the typical asyn-
chronous output interfaces. As the simplest case, the constraint of using these interfaces is that the
receiver should be ready when the data is output by the processor.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
13/21
Primitive Interface Design 7
3.3 Inout Interface for Processor
The primitive inout interface is composed of the hardware interface and the software interface. The
hardware component of the inout interface is made up of the modules # % #
' ( 0 %
and # % # 0 % ( 0 %
defined in the previous sections.
1 define BUSwidth 8; // Width of BUS
2 wire [BUSwidth-1:0] x1, x2;
3 wire g, k ;
4 reg [BUSwidth-1:0] y2;
5 tri [BUSwidth-1:0] y1;
6 Data_input IO_input( x1, y1, g ); // Input
7 Data_output IO_output( x2, y2, k ); // Output
The structure of the inout interface is shown in figure 10, where the input interface and the output inter-face link to the same data Bus.
Busdata
w
x
y
g
k
Figure 10: inout interface
The software interface interacts with the hardware interface by invoking the procedures # % # # U V X X `
and # % # 7 % U X X `
to perform the reading and writing functions.
The inout interface can only sever as either input interface or output interface (but not both) at any time.
If the reading and the writing occur at the same time, the data Bus and the three-state gate will output to
the same wire. This may damage the circuit when one outputs 1 and the other outputs 0. To exclude
the interference between the input and the output, users are required to maintain the invariant
4
l
E } # @
The multi-inout interface can be built in a very similar way as the multi-input interface and the multi-
output interface. Its hardware component encompasses a number of primitive input and output devices,
all of which are linked to the same Bus. The figure 11 is an example of the multi-inout interface, where
the input source and the output destination is selected by the control signal4
and address.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
14/21
8 Synchronous Interface design
dataBus
addrBus
WR
xm
gm...... ..........
g1
x1
y1y2
yn
......y
k
w
Figure 11: an example of the multi-inout
The multi-inout software interface is the same as the primitive inout software interface. The inout in-
terface for processor is asynchronous. Its correct function assumes that the input data has been ready
before it is read by the processor, and that the receiver is willing to input when the data is output by the
processor.
yes
4 Synchronous Interface design
The synchronous interface is used in support of synchronous communication between the software com-
ponent and the hardware component of an embedded system.
In synchronous interface, a flag is introduced to synchronise the parallel execution of its hardware com-ponent and software component, i.e., a communication can occur only after the flag is set indicating both
sender and receiver are ready for it.
The behaviour of a flag
is described by the following Verilog module
1 module Flag( S, R, Q );
2 input S, R ;
3 output Q ;
4 reg Q ;
5 always @ (posedge S or posedge R)6 begin if (R) Q = 1b0; else Q = 1b1; end
7 endmodule
where the flag is set by the positive edge signal from
, and reset by the positive edge signal from
.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
15/21
Synchronous Interface design 9
4.1 Input Interface for Processor
The hardware component of the synchronous input interface is made up of the flag and the primitive
input interface.
1 define BUSwidth 8; // Width of BUS
2 wire [BUSwidth-1:0] x;
3 tri [BUSwidth-1:0] y;
4 wire g, set;
5 reg F;
6 Data_input syn_input( x, y, g ); // Data input
7 Flag synin_flag( set, g, F ); // flag
Its structure is shown below 12. The software component of the synchronous interface inputs data from
g
yBusdata
RD Flag
F
x
R S
Figure 12: synchronous input interface
the hardware component, and is devised as a procedure@ 3 '
7 # U V X
X `, where the parameter
Vis
the holder of the input message, is the selected address and is a control signal for reading. defined
as follows,
@ 3 '
7 # U V X
X ` cE # % }
f
# % # # U V X
X `
f
Here, the program waits for the flag } to be set to indicate availability of an input data on the data Bus.
The reset wire of the flag is linked to the control wire4
, which is driven by the control signal
. The
assignment % 7 d 0 @ C E in the procedure # % # 7 # U V X X ` has the effect of resetting the flag.
The synchronous multi-input interface is also composed of the hardware interface and the software inter-
face. Its hardware component is constructed using a multi-input interface and a flag indicator 13. wherethe input source is selected by the address value.
The software component of the synchronous multi-input interface invokes the procedure@ 3 '
7 # U V X
X `
to read the data from the multi-input hardware interface synchronously.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
16/21
10 Synchronous Interface design
Busdata
RD
......
x1
x2
xn
Flag
F
y
addrBus
g
SR
x
Figure 13: synchronous multi-input interface
4.2 Output Interface for Processor
The hardware of the synchronous output interface is made up of the primitive output interface and the
flag indicator.
1 define BUSwidth 8; // Width of BUS
2 wire [BUSwidth-1:0] x;
3 reg [BUSwidth-1:0 ] y;
4 wire k, reset;
5 reg F;
6 Data_output syn_output( x, y, k ); // Data output
7 Flag synout_flag( k, reset, F ); // flag
Its structure of the synchronous output interface is shown below
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
17/21
Synchronous Interface design 11
Flag
x y
WR
F
dataBus
S R
k
Figure 14: synchronous output interface
The software component of the synchronous output interface is responsible for writing data to the hard-
ware component, and coded as a procedure@ 3 '
7 % U X X `, where the parameter
is the output
message,
is the selected address and
is a control signal for writing.
@ 3 '
7 % U X X ` cE # %
}
f
# % # 7 % U X X `
f
In this program, the data can only be written after the flag}
is reset. Notice that in the hardware
component the @ % wire of the flag indicator is linked to the control wirel
of the latch, which is driven
by the control signal
. The assignment % 7 d 0 @ C E
in the procedure # % # 7 % U X X `
,
has the effect of setting the flag } .
The architecture of the hardware component of the synchronous multi-output interface is similar to that
of the hardware component of the synchronous multi-input interface. 15.
FlagWR
F
dataBus
S R
k
yx......
y1
y2
yn
addrBus
Figure 15: synchronous multi-output interface
where the output destination is chosen using the address value.
The software component of the synchronous multi-output interface is the same as that of the synchronous
output interface.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
18/21
12 Hand Shaking Protocol for Embedded Computer System
5 Hand Shaking Protocol for Embedded Computer System
This section explores two communication protocols used for transmitting data between the components
of the hardware/software mixed systems, where
The sender is not allowed to transmit a new data before the previous one has been input by the
receiver.
The receiver can input a data once after it has been output by the sender.
5.1 Hand Shaking Protocol for Hardware and Software Components
We propose the following hand shaking protocol to synchronise the hardware and software components
in an embedded system.
1. The protocol for the software components
Trigger the hardware component by sending a data to the output channel.
Never dispatch a new data to the hardware component before receipt of the acknowledgement
of the previous output.
The software component continues its execution after activating the hardware component.
2. The protocol for hardware component
The hardware component remains idle before the flag
is rising, where it is assumed that
the flag will be reset after one clock cycle.
The flag}
is set after the operation is completed.
As a result, the hardware component of an embedded system will be in the following form
% 7 0 U # %
f f
} C E `
where the function will be fired after
is set, and the flag}
is rising on its completion. In this
protocol, all flags is reset initially. Firstly the data is sent by the software component and processed by
the hardware component, then the result will be read by the software component. As one of the imple-
mentations, the structure of the protocol sees figure 16, where the wires # % #
- 0 %
from the software
component connects to the input port of the hardware component. The wires # % # - ' of the software
component links to the output port 3 of the hardware component. The address bus links to the hardware
directly.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
19/21
Hand Shaking Protocol for Embedded Computer System 13
k
H
W
WR
data
Bus
RD
addrBus
FN
Frdy
FrdyS
Data-in
Data-out
g
Fout
RS
R
STS
rst
ST-flag
x
y
Figure 16: The Protocol for Hardware and Software Components
In figure 16, the protocol for the software component is composed of the primitive output interface, the
synchronous input interface, the data output flag } 0 % which is set by the control signal and reset
by the signal 7 @ % , and the start flag which is set by the output of } 0 % in the rising edge of the clock
and reset after one clock cycle. The behaviour of can be described using the Verilog module
1 module ST_flag( S, rst, ST, clk );
2 input S, clk;
3 output ST, rst;
4 reg ST, rst;
5 always @( posedge clk )
6 begin
7 if (S) begin ST = 1b1; rst = 1b1; end
8 else begin ST = 1b0; rst = 1b0; end
9 end10 endmodule
5.2 The Synchronous Protocol between Processor and Co-processor
To support synchronous communication in a multiple processor system we adopt the following protocol
The data can be sent when the flag is reset.
The data can be received when the flag is set.
Using this protocol, all flags is reset initially. where the wires # % #
- 0 %
from the software component
connects to the input port of the hardware component. The wires # % #
- '
of the software component
links to the output port3
of the hardware component. The address bus links to the hardware directly.
The structure of the protocol sees figure 17. where the component in the upper dashed box, composed
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
20/21
14 Conclusion
Flag
dataBus
RD
Busdata
WR
P1 P2
WR RD
F21
Flag
g1
k1
y1
y2
k2
w1
w2
g2
F12
RS
SR
x1
x2
Figure 17: The protocol between processor and co-processor
of the synchronous output interface and the synchronous input interface, is used for transmitting datafrom the processor to the co-processor, The component in the lower dashed box, used for transmitting
data from the co-processor back to the processor, is composed of the synchronous input interface and the
synchronous output interface.
As an example of using this protocol, we assume that the application system is made up of two pro-
cessors. The one is the main processor running the main program. The other one is the co-processor
managing the input and output devices, such as the keyboard and the LCD screen. In the system, the
co-processor can input and process the information from the keyboard, and then transmit it to the proces-
sor synchronously using the component in the lower dashed box. On the other hand, the processor can
display some outcomes of the main program in the LCD screen by transmitting them to the co-processor
synchronously using the component in the upper dashed box.
6 Conclusion
This paper shows how to apply the Bus extended technology in design of the communication interface for
the embedded systems. Firstly, we build the primitive input and output interfaces for processor, and thenimplement the synchronous input and output interface. Finally as their applications, we devise a hand-
shaking protocol for the hardware and software components of the embedded systems, and a synchronous
communication protocol between the processor and the co-processor. The technique discussed in the
report can also be used in design of various links between the components of the hardware/software
mixed systems.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau
-
8/14/2019 Hard & Software Interface
21/21
References 15
References
[1] Qin Shengchao and He jifeng, An algebraic Approach to Hardware/Software Portioning, In the
proceeding of IEEE conference ICECS2K, the IEEE press, Lebanon, Dec., 2000.
[2] Rockson Huang. Embedded Tools Target MPU/MCU Interface. Aisys Inc., Electronic News, Oct
9,2000.
[3] Rolf Ernst. Codesign of Embedded System: Status and Trends. IEEE Design & Test of Comput-
ers. 1998
[4] Ulrich Golze. VLSI Chip Design with the Hardware Description Language VERILOG. Springer-
Verlag Berlin Heidelberg, 1996.
[5] Bob Moore. SOC Should Mean Software-on-a-Chip . CoWare Inc., Electronic News, Oct
23,2000.
[6] M. Chiodo et al. Hardware-Software Codesign of Embedded Systems. IEEE micro, Vol.14, No.4,
Jul.-Aug. 1994.
[7] J.Van den Hurk and J.Jess. System-Level Hardware-Software Codesign. Kluwer Academic,1998.
[8] Intel Inc. MCS 51 Microcontroller Family Users Manual. Feb.,1994.
http://www.intel.com/design/mcs51/manuals
[9] Xilinx,Inc., Development system reference guide. 2000.
[10] Xilinx,Inc., Xilinx Synthesis Technology(XST) User Guide-3.1i. 2000.
[11] Synopsys,Inc., FPGA Compiler II/FPGA Express Verilog HDL Reference Manual. May 1999.
[12] Xilinx,Inc., Xilinx Netlist Format(XNF) Specification. June 1,1995.
[13] Craig Peacock, Interfacing the Standard Parallel Port. Feb.,1998.
http://www.senet.com.au/ cpeacock.
Report No. 244, October 2001 UNU/IIST, P.O. Box 3058, Macau