Print indd


Implementation and Assembly in Hardware



Download 18,42 Mb.
Pdf ko'rish
bet28/366
Sana31.12.2021
Hajmi18,42 Mb.
#276933
1   ...   24   25   26   27   28   29   30   31   ...   366
Bog'liq
(Lecture Notes in Computer Science 10793) Mladen Berekovic, Rainer Buchty, Heiko Hamann, Dirk Koch, Thilo Pionteck - Architecture of Computing Systems – ARCS

3.3
Implementation and Assembly in Hardware
For the implementation of Lipsi we use the relatively new hardware construction
language Chisel [
14
]. In Chisel, the hardware is described in two classes: one for
the processor and one for the memory. Describing the memory component in its
own class allows future optimization to use an initialized memory (described in
VHDL), which is currently not possible with Chisel.


24
M. Schoeberl
Fig. 2. The central statement of the Lipsi assembler in Scala
The hardware abstraction level of Chisel is not so different from VHDL or
Verilog. Hardware is described at the register transfer level. However, the power
of Chisel lies in that Chisel is a language embedded in Scala [
15
], a modern
general-purpose programming language. Scala itself runs on top of the JVM and
can use libraries written in Java. Therefore, all these libraries and a modern
object oriented and functional language are available at hardware construction
time.
One of the first tools a processor developer needs is an assembler. A common
approach is to write an assembler in some general-purpose language, e.g., Java,
and spit out a VHDL table for the code that shall go into the ROM. This
approach is also used for generating any hardware table which is needed, such
as for function lookup or binary to binary-coded-decimal translation. As we can
read in data with Scala and then generate a hardware table from Scala, the
assembler can now instead generate a binary file that we read in at hardware
construction time.
We have, however, gone a step further and have written the assembler itself
in Scala, invoking it at hardware generation time, reading in the assembler code,
and directly generating the hardware table to the ROM. With the power of
the Scala match statement the assembler itself is just a handful of lines of code.
Figure
2
shows this statement, which is the core of the assembler. The full assem-
bler is less than 100 lines of code and was written in a few hours.


Lipsi: Probably the Smallest Processor in the World
25

Download 18,42 Mb.

Do'stlaringiz bilan baham:
1   ...   24   25   26   27   28   29   30   31   ...   366




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish