J2 HWProgramUsingC Microproce Microprogr 94
J2 HWProgramUsingC Microproce Microprogr 94
net/publication/256414311
CITATIONS READS
2 7,810
4 authors, including:
All content following this page was uploaded by Michael K. Birbas on 31 October 2017.
The use of a programming language for describing hardware is proposed in this paper. The presented
approach, based on minor extensions of C++, gives an attractive way to program computers with reconfigurable
hardware elements (i.e. FPGAs). It can also be used as a common implementation-level language for hardware-
software codesign frameworks.
The proposed approach differs from other codesign methodologies due to the use of a single, object oriented,
notation for all design levels; from the most abstract OMT notations, where the system's functionality and
requirements are first captured, to the detailed implementation-level C++ code.
specifications and proceed with refinement steps As it can be seen, a special hardware part
until the system's structure is derived [4][8]. The labelled "programmable interconnections" is used. It
other option, is to decide on a target system opens channels for communication between the
architecture at an early phase, and then try to map reconfigurable hardware components and the other
the required tasks on that architecture [1][2]. chips of the system. This could be a specially
Although the second approach seems restrictive, it designed ASIC (e.g. crossbar switch) or a FPIC
allows for more automation thus shortening the (field programmable interconnections) chip.
design cycle. Furthermore, since the target The proposed model for the target
architecture is flexible enough, it is felt that it acts architecture can be extended or adapted in order to
more as a guideline than as a limitation to the cover many different system configurations. For
designer's creativity. example, ASICs performing specific tasks could be
In this paper we propose such a target model used instead of/ or in addition to FPGAs, the
for the system's structure. Compatibility with this memory and I/O control part could be minimised for
model is a "requirement" for the proposed an embedded control application e.t.c.
extensions of the C++ language. However, the
language could also cover other architectures, or 3. EXTENDED C++ L A N G U A G E
variations derived from the one presented here.
The proposed architecture is based on the This section presents the proposed C++
standard Microprocessor Bus Memory/IO extensions. An illustrative overview of the
structure, since this scheme has been used for more programming procedure that has to be used with
than three decades and has proven efficient, this language is shown in figure 2.
expandable and has created a basis of existing Starting from a Top-Level description in
experience among programmers. A separate module some graphical notation (like O.M.T [9]), the
for the reconfigurable hardware components is programmer can then move to writing the C++
added. Each FPGA can be viewed by the soft-ware code. A gross decision about the partitioning in
as either a "Fast" function or as a component of a software and hardware has to be made at this step.
larger hardware system. In this way, direct The C++ code can be used for functional
communication with the microprocessor can be simulation, where hardware components will be
assured and also, independence of the emulated in software. The next phase is to compile
reconfigurable parts can be allowed, if required. the software into executable code. The hardware
Figure 1 shows the proposed architecture. components can be translated to a synthesisable
format (e.g. Register Transfer level VHDL) before
being compiled on the FPGAs. Alternatively, ASICs
can be generated from this final synthesisable
MEMORYANDI/0 CONTROL
description of the hardware.
The tools that have to be developed for this
.•.Programable
design procedure are a pre-processor, that partitions
C++ into software and hardware based on simple
principles such as "as-much-hardware-as-can-fit",
MicroProcesso and the Translator to VHDL. Prototypes for both
~ mterconnections tools have been developed. The pre-processor, at
this phase, also generates a hardware emulation
routine in the executable C++ code. The translator is
currently a part of a larger VHDL translation system
--1
ExpansionBus
Figure l.Target Architecture Model
that has been built. Integration of these tools in a
unified framework is planned in the near future.
E.P. Mariatos et al. / Microprocessing and Microprogramming 40 (1994) 817-820 819
!
SIGNAL
COMPONENT Name, ID
Connect through PORT
Contain
Waveform
Name, ID List of
Sched. Events
Signals, I/O
Construct
Assign Connect
Destruct
Read (val/wav) Disconnect
Initialize
Event(Change..)
I l I I
INTERFACE •HARD" Comp. BIT