Dear viewer, these subtitles were generated by a machine via the service Trint and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/101 Thanks!
So we are here to learn about
field programing, gator race and custom
Becca is going to is going to teach us
how to do that so there can be more
and merrier, you know, FPGA programmers
because they can do more cool stuff.
And I'm pleased to introduce my colleague
and fellow part time scientist Carson
Becker.
He is a local Hamburg resident
and Ph.D. candidate at the University
of BookBook.
And he learned to love FPGA
A's after he he made his first
3D graphics accelerator in university,
and he continues to pursue this
line of work in his dissertation.
And he also solves
FPGA programing and all other electronics
problems for the Google Lunar Express
team, the part time scientists
who are still in the running to be the
first private organization to put a
rover on the Moon.
So please welcome cousin Becca.
OK, thanks a lot.
I think the introduction was very slowly,
so I can just skip this slide,
so I'm going to talk about effigies
because I really loved them a lot.
And you can do
really like everything with them.
It's just very hard to do.
No way I wanted to motivate you.
It's not so hard, but you didn't need to
know what you're doing, and I
want to show you what you can do with
those, what they read, they excel
at and what are the use cases
where they're not so good at?
And essentially, what is an FPGA?
It's the programable logic.
So you can have you have an area that
you can program and you can do
whatever you want with this.
So those are a few that know
binary signals.
You know that if you have something like
two inputs, system like a C
was two pins and one output,
you can have four combinations
at the inputs.
And I would just call them A and B, and
the combinations that you can see are
very obvious.
And the thing is and programable
logic, you can set X
to whatever you want.
For example, on the left side, you see
XOR that is realized that
if you have zero zero as input output, as
zero, if it has one and one, that's
input output to zero and
otherwise it will put a one on the right
hand side, you see.
I don't know.
Yep. Perfect.
And so you got the idea.
So that's good.
You know that you know that
you can build and and you know that you
can build like every logic circuit
possible with just
those lookup tables as they are called.
So the the idea is that you have
in an FPGA, you have you have those
lookup tables where you have some inputs
and you can describe what
the output should be.
And the fun begins when you realize
that one of those outputs
can be the input of another
lookup table and then you create
a network of lookup tables and
then you can create even more complex
logic.
This is the basic idea how an FPGA
works.
In reality, it looks a
bit different.
Note how it says that this is a
simplified vertex
six slides.
So what you can see the real full
lookup tables on the left.
Then there are some multiplexes which
are selecting signals,
and then there are some registers.
And yeah, so
it's not as trivial as I, as
I may sound was just to look up tables.
It's a bit more complicated, and
I'm going to tell you a bit about
it.
So this
was the lookup tables.
You can, for example, make a very simple
error and
you can have an input signal that
is like four bits and you add one and
you get another output signal that is
four bits as well.
And the question is, how do you, for
example, implement a counter
if you just if you have if you use
the input of your own, then there's the
error and use the output of the error and
feed it directly into the error
as well. Then you have a combinatorial
loop and
it will do nothing useful.
And to avoid that because
you want to do something useful with
FPGA, those
so-called registers registers are like
data storage.
You know that your recipe, for example,
has has a clock, and what
it does is on every rising edge
of the clock. It does something
interesting its source, the data
that is on the input and
a little bit later, it puts it on the
output
and
it just captures the inputs at the very
specific, especially at the very
specific moment of the rising
edge.
And with it, you can have
you can have your logic that is, you
know, combinatorial logic with input
tables over the lookup tables and
put that into a register
and then you have another portion of
combinatorial logic.
And then you can have another register,
for example, or you can create a feedback
loop. For example, if you want to realize
a counter, you have your
you have your four digits and
you add one in your combinatorial
logic and you put it as a new input
for the for the register.
And the reason this works is because
the time it takes for the company, for
the company to have
the time it takes for the computer.
Logic is not
small, not
infinitesimally small, but has
a certain delay.
And so it will arrive.
You're the ideal you arrive for
the next rising edge, but after
the rising, it's actually occurred.
And so this way you can create the
counter and
this way you can realize all kinds
of interesting synchronous designs.
For example, you can you can create as if
you visit and do some other
fun stuff, and I will talk about what
you can do with it later.
And especially, I will talk about why
an FPGA can beat an A7
in certain tasks, even
though it is running at a frequency that
is significantly lower
than what the A7
is running at.
So when you have a look, when
you have a ship, you have like three
tasks A, B and C, and
you can sequentially execute those
and if you want to
decrease the time, but for
that it takes for those three tasks.
You can actually increase the frequency
of the of the ships you
or you can make the task shorter by,
you know, making them more efficient
in an FPGA, you have actually
something like a blank canvas.
And in this canvas, you control your
your functions.
So for example, on the upper left corner,
you can place like, you know, eight motor
controllers on the lower left
corner. You place your ship you on
or maybe because
of its more force, if you but
and maybe on the sea, you have your video
decoder or encoding algorithm.
And so the the thing
that you're working with in an FPGA
is actually the area and
the frequency, the
frequency that you can run your circuit
that is determined at the first
combinatorial delay that you have in your
whole design.
So for example, if you if you want
to compute.
So for example, you are running the
circuit, that's 10 megahertz.
And so you have a certain amount of time
between the rising edges of the clocks
where the edges are starting the data.
And if you're exceeding if your
if your audition exceeds this time,
then your timing is not
met and you cannot use
the design that you have chosen to
run with this frequency.
You have to lower the frequency.
This may be possible if your design
allows it.
Most of the time it does not because you
are constrained by, you know,
some external clock.
Or maybe you're doing you as B
data transfer or you have a camera
that is collecting your data into the
FPGA.
So in this case, you need to split up the
combinatorial logic into smaller blocks
and distribute them so that
and the one cycles you are doing the part
of the addition and the next cycle you're
doing the next part of the addition.
And so that you can increase your
frequency and you can
and area is also very difficult
if you are if you're using if you're
making blocks smaller, sometimes you're
increasing the area that it consumes.
And when your
when your area is consumed, you need to
buy a bigger device
so you can.
Yeah. So this is like the bigger device
obviously are more expensive as
smaller devices.
So in reality,
it's not just the look up table said
that this so-called fabric, which
is the programable part of the FPGA,
is composed of actually.
It also contains the lookup tables, the
flip flops
or the data storage registers
as they call them, but also contain
some multiplexes where you are selecting
between several input signals.
It contains rotting resources, which are
very important if you're
if you have a look up table here and you
have another look up table here and they
should be connected.
Then there is there are very fast
connections between those and those are
your routing resources.
And obviously, you can also run out
of those.
Usually you will also find some clock
management things like
like a parallel where you can have input
a frequency of 10 megahertz
and get all the frequency of, you know,
whatever you like.
Usually 20 megahertz or something like
this. Then there is also
Kerry Logic, which helps you to
to create faster multipliers and
errors, which is very important, and
shift registers which are used for
shifting a bit
to either direction.
In theory, you could realize
a lot or almost everything
was just those components that
you find on the left hand side.
But the problem is
making a making a CPU is just
those components is not
very efficient.
And so the windows went on to decide
like, OK, maybe it's a good idea
to, for example, add a
hardware multiplier.
You know, it consumes
significantly less space on the
on the die.
Then if you have if you're doing it,
there is lookup tables and it's also
to run significant faster.
And so they decided
to put all kinds of interesting stuff
into what's called hot blocks
or hot cores.
And one of those is, for example, the DSP
unit, which which is actually a
multiply accumulates.
You can use those for all kinds of
interesting folders and stuff, and
then our multipliers are very popular
18 18 bit by 18.
But.
Very popular and with.
You may notice that every vendors don't
really care much about eight, 16 or
32, but they care more
about it.
But, you know, I
don't know why they shows
probably have a good reason for.
You will also find block rum, which is
which is run that is embedded into the
into the fabric so that you can have some
storage,
some bigger stores there are like
multiroom megabit, sometimes
if you're like buying a really expensive
FPGA.
Sometimes they are just a few kilobits
and also you have some high speed
interfaces. For example, with an FPGA,
you can you can attach
to a PCI Express port and
connect with those, or you can
you can attach your own SATA
hut to scored your own slot or whatever
and they can.
The high speeds is really high speed
because they can go up to like 25
gigabits.
Could I sense
also some when I saw that, you know,
it is really a good idea to embed the
processor into the into the
fabric or into the into the FPGA,
which I think is a really smart idea
because then you can have your
software running on those if you but
accelerate some functions in
with the vista fabric.
And I'm going to explain to you a bit
about this later.
Also, there are some memory controllers
so that you can interface external
memories like DDR video or.
They all supporters
and some winners also include some
AC DC so that you can
really meet, read some analog
voltages or generate some analog what it
really is.
And I'm going to talk.
I want to show you, I want to motivate
you. What you can do with was
FPGA, js and I was looking for some
projects from the legacy that I really
liked. And one of those projects is
actually the bulk ventilator.
It's hmm.
I'm going to show you a picture first and
then I'm going to come back to
experimenters.
So essentially, it's like it's like a
ventilator.
But instead of sending air,
it's a serving spinning piece and
there are like 250 LEDs.
And then you can
then you can attach any video source
to it and it can be displayed.
And what the FPGA is doing is
it's, for example, are doing a particular
transformation to to
pull out coding. This is also doing
some camera correction,
and obviously it needs to do some very,
very precise timing so that so
the review is not stuttering around, but
is really showing it
at the same position.
Always.
Another very cool project that
there was demoed like two years
ago, I found that very, very cool
because what
he did was he used
an HDMI input signal
and he did not decode
the signal itself, but
he just sent up to the HD email signal
and it puts it put
in some encrypted overlay
into the stream itself.
So at one point, it was the original
picture.
And at some other point in time, it was
another picture, and he
expected the the key
and inserted the encrypted stream.
And the funny thing about is that he
he does not need to decrypt the content
stream, which is a pretty neat trick
to avoid the dismay or DMCA
lawsuits, because this would
violate us if he was the key that
was leaked several years ago.
So the question is, how
do you program and FPGA?
Well, OK, so
this is where it goes.
OK, I want to play
with you. This is where it gets fun.
So.
So you're you could easily choose
a high level tool like
MATLAB signaling.
If you're coming from, you know,
if you have this installed,
you can install it.
You can create really nice filters or
test runs.
Also, there is a very poor attempt of
converting automatically converting C to
audio, and the windows are like, This
is the best idea ever.
No, it's not,
at least for the next 10 years.
So don't do that.
There is a there's attempts of
porting open code to
audio or through a for description
language, which I think might
actually work.
And it's might not be the might
not be as worse as trying to say,
just give me a second and I will make,
uh, make it faster on the FPGA,
which will not always, never
be true.
And so this is
a very high level, very constant.
Also, you can start at at
the description level, which is what is
most commonly used these days.
Unfortunately, a rather
poor choice of languages have been
established in the space of programing
video and very look, both
very old languages.
Neither of them are nice to
write, in my opinion.
I'm going to show you, I'm
going to show you examples first and then
you'll see why I'm ranting about it.
So as you can see on the left
side, you will see VIDEO.
It's for the military contractor
to about among you.
This is Aadhaar based.
It's not like anyone cares about order,
but this is
video that's it has the same awfulness
as other.
It's very odd that you place all
the semicolons there and not there and
then the comma there and then you say and
there, but not there, and
it's very verbose as well.
This makes it very confusing.
I think
there's lots of very liquid, just like
they sound like, OK, if you show a
by the way, Bechdel was not invented
for programing FPGAs,
but it was invented for documenting
documenting the A6.
And so at one point they sound like,
hmm. If we are doing all the effort of,
you know, describing it, why shouldn't
we like simulators?
And so they used video for simulation,
and then they realize like, hmm,
every like simulating it.
We could actually use it, like for
synthesis to put it on, on the left
or on the on the async.
And so,
you know, actually, you could just use
HDMI.
It's, you know, it's like you're
describing something and
half of what you're describing cannot be
synthesized to the FPGA,
which is a problem that we actually have
a very low cost sharing.
And I think this is very
confusing, but virtual is very
popular in Europe and
very, very low is very popular in the
U.S. it's like a 50 50 split.
I've heard that China is copying
very OK.
So yeah,
and those are OK.
Shameless plug of myself.
There is also appears HDL, which is
called the plain simple transcription
language.
You know, the same is the same code as
you can see on the on the left, on the
bottom.
It's just shorter and not as
fucked up as the others.
Yeah, sorry. I really hate.
You know, it's I've been working on
at a university for quite a long time and
I've been doing.
What's called the hot property column
every year, and maybe there
are some students in the audience that
are suffering from it right now.
And it's every year it's the same, you
know, people are struggling with tools
struggling with was the language
because it's not. So we don't know.
I wonder what if is
OK, never mind.
So after you described
your, you're designed
with those beautiful words,
the sentences to run among, it's
unrealistic.
Hmm.
This piece that was described here versus
ten thousand words looks
like it's like an editor.
So I will place and edit here,
and then it will go around and
do this for all the code.
And sometimes it's guessing wrong.
So you need to find you need to find
those those kinds of
features where it goes wrong.
And then you have what's called a
synthesis.
And the synthesis actually
translates to
the words you have written into into
blogs that can be placed on
an FPGA or
into a lookup table.
It's multiplexes shift suffrages
and all that stuff.
And the result is a net list.
And after that,
this process is rather
quick. It usually doesn't take more than
two minutes.
Um, and this is really
quick.
So and then comes the process of placing
road.
If you're used to slow compilers, you
will appreciate the vastness of
a modern C++ compiler.
Once you realize that your place in road
can, anywhere can take anywhere from one
minute up to three weeks.
The problem is.
The problem is that
placing the resources on an FPGA
is an NP complete problem
and fitting it into
the timing that you are setting, for
example, you say at one point you're
saying like, I want to run this design at
one of the megahertz.
And the worst thing that could happen is
that he sees that he can fit all the
logic into the FPGA, but
the frequency is like ninety five
megahertz.
And so he is like rolling up,
throwing away stuff and putting in you,
trying out new ideas to see
if it fits or not.
And the fun thing about it is that it's
depending on the seat and the seat
sometimes comes, you know,
take some of the fire.
And so sometimes if you are generating
a fire and you're changing the dates in
the Commons, then you will get a
different place and wrote result.
And so there was there was a case where
there wasn't one window said,
Oh, wait, this is the version that we
created on the 26th looks the
best because the Commons was the
right and the IS kicks him to the
best seat versus other than the best
place in road.
And
yeah, so after that, you you have
a configuration file and
this is so you realize that this
is not called an executable because it's
not. It's configuring
the resources within the FPGA
to to do whatever you told
them to do or do something entirely else.
If you have a tiny mistake in your
description language,
by the way, and what you simulate
is what you get, which is not true for
video or very look, if
you're running, if you're running
simulation on when you log a video, it
might be what you're getting at hardware,
but it might be not.
So one of the cool features of
of of refugees is pipeline.
For something you want to multiply, you
want to calculate A-plus B times
C plus de plus 10.
And what you can do is your you have
your inputs ABCD and
you put them into the pipeline
and every clock the data gets processed.
You can see that the green blob
is first computing A-plus B and C plus D,
which is then used as
input for the multiply,
which is then added to 10.
And then you have a results
and every clock you get
the new results.
This is very important to understand
because this is how
refugees are getting there.
I can actually kick kick ass
regarding what I suppose.
So yeah, after just
four cycles or wait,
it was more seven seven cycles.
You have you have all your computer
or your results.
And, you know,
another very cool feature of of Jesus
high speed. I was I was talking about
those you have tons
of GPA or every pin that you have on FPGA
can run you odds and SBI
bus or it is good.
You know, I trust Grant,
you know what I mean.
And the other stuff, every protocol that
you can imagine, most of the protocols
that you can imagine can run on every
pin that you have.
And those pins are actually pretty
fast. So you can have you have shift
the distance within the FPGA
for the inputs so that you can have like
up to 480 or eight megabits
on each pin as input.
And then there are dedicated high speed
receivers where you
can have up to 25 gigabits per second
on one pin or two pins actually
differential.
So this is pretty neat, and we also have
very precise control of the
of the signal. So you can, for example,
say, OK, I want this to be this pin to be
a 3.3 ruled on this one to be one
point eight world.
And you can say there should be a pull
up, there should be a pull down.
And you can also say that the tri
strength which is used for for
creating the edge should be like, you
know, not so high, like one mega a
million pair or like eight million.
So you can really define
how you want the signal to be
and to know we're going to
going to compare superuser.
Refugees are actually the
combination of them.
So sippers are good at
things that you do just once.
You know, if you have if you have a large
piece of code and are just run once,
then it would be very it would be a
huge waste of resources to put that onto
an FPGA.
Refugees are good at things that repeat
very often.
Um yeah, a large complex that you
don't want to implement something like
an operating system on a refugee,
even though it would be really
appreciated to see that if someone
is really masochistic in its nature, then
you can contact me and I will help them
to suffer.
With no
conflict, with the kicking.
I was not at the King Beach
thing yet,
so severe results are
very good for for giving a
quick shot. You know, you're you're
used to fast compile times, it doesn't
take weeks, you know, just like minutes
and you can put it on to
under your recipe.
You do test those works.
What doesn't work? You have very quick
development cycles.
Those are not very common in FPGA
development,
at least until the until the PS Show
takes over the world.
But you can actually combine those
powers so
you can be very good at as, for
example, reprising the metrics tech so
that you can have
it. For example, this if you can run
Linux and exhibits some interesting
data via, isn't it?
And then you feed the data into the
fabric of the FPGA and
you do something interesting with.
So the combination of those boats, this
is a really powerful combination.
And you can also realize
the CPU in the fabric itself.
But the frequencies that you are getting
are like one and that megahertz
were not 50 megahertz, sometimes
200 megahertz, which is on the very new
devices. But you will not get lucky goods
right now, at least because
the good news the good news is that
unlike with superiors where the frequency
you kind of stopped to increase
at two point six gigahertz or
whatever your i7 is right
running right now, you're also
in the FPGA domain and
they are benefiting from the shrinking of
the process so much that the frequencies
are getting very close to one gigahertz
right now in the very, very latest
or just announced version.
And you can also have a sip you realized,
and in the FPGA
itself, those running
at 400 gigahertz or something.
Yeah, so you can. What you can do is you
can accelerate a part of your application
and you can start with a with
a full software implementation that you
run on a sip view and then you just
identify which part is taking a long
time. For example, the cipher
for encrypting something is taking a long
time. And then you just put it into the
fabric and
then you can accelerate things.
I'm going to show you an example very,
very quickly. FPGA that is running at 200
megahertz can beat an i7
right now. And this
is something our diploma rate was about.
This is about the discrete racial
transformation that is used in JPEG 2000,
which is a pretty neat compression
algorithm.
And the way it works is that you have a
2D bracelet that is applied
to rows and then to
to vertical.
And if you look at it and
the see you when you're
this looks like this, there's at
the top, you see the the input pixel
and then they are like combined
into and through other
parts. And then at the end you get to
make one Pixel one or actually you get
two pixels or
so on the CPU when you when you
load the first pixel.
It's a Cashman's and it has to go
to zero noted.
But there is a brief edge.
And so when the next pixel is as
loaded and put through the process,
you get a very efficient process.
So this discrete racial transformation is
basically memory bond.
The computations that you see at the
bottom, they like, they don't contribute
much to the to the to the time that
it takes for them to do
so.
Yeah, if you do it horizontally, you
are your pixels are all in line.
Everything is perfect.
You have preferred cache
is working as expected.
But the problem arises when
when you're actually trying to do the
vertical thing, you
start to add memory address zero and
the next row in a twenty
one thousand one 1024
pixel is at one thousand
twenty four.
And so you have a Cashman's and the
Cashman's and the Cashman's,
and so you have Cashman's.
After Cashman's and
your process, your siptu gets
starts to become really, really slow,
like like a factor of
of 30 or 40.
If you're if you have bad luck
and
it is in an FPGA, what you could do is
you do the horizontal DVT
Jupiter, you put it in your horizontal
pixel and then you store
the results of the
of the horizontal waislitz
in the block around that is in the FPGA
itself. And then you feed it into the.
Intrusive was not the logical
way for the transformation, so it doesn't
go back to the original
DDR external memory, but it's
contained within the FPGA
and those are running at full speed
of your of your fabric.
And so this way you can
you can improve the performance
significantly.
So if you you have
a horizontal line, you have a perfect
cache. It's due to the brief,
which so this is very fast and
in the vertical.
So now you have cache misses all the
time. So you have a significant slowdown.
But in an FPGA, you you're performing
a linear read of your of your image
and then you do magic
with it and then you'd perform
a linear right on the output.
And so they figure is running
at your full memory speed
while your speed was permanently stalled
by the external memory that it has to
use.
And so this way, the
the the the the reflection summation
on the FPGA that we realize that takes
like 50 milliseconds and
on then on an i7 that takes like
a lot of sudden milliseconds or
something like this, even though it is
running at two hundred megahertz while
the i7 is running at two
point six or even three gigahertz
when it's clocking up.
And so this is our FPGA
is can kick ass versus
chips.
There's also, by the way, I put up the
slides in the speaker.
So if you want to look at the shots
at any point later in time, you will find
it online.
So if you're sitting in your project
and you're like, Oh, what should I use?
You always have some obvious choices,
like you have a regular x86,
which is very nice to program or you have
a chip you, which is very powerful, a
floating point, or you have a DSP, which
is like those, which
is very nice to imagine.
Then you have FPGA, which is very good at
almost everything, but not in programing
and then you have a microcontroller.
And so
this is this shot basically is
the showing that it's, you
know, for example, if you want to put an
x86 on your on your quadcopter for
doing something fancy, you know,
you may have you may have a poor problem
because those are kind of power hungry
and embedding x86
processors is challenging,
at least. But no, there's a good one, but
computers.
But if you have a 240 world
power cut going down from your
quadcopter, that's not very helpful.
They are very good at a floating point
operations that are obviously integer
operations and control flow stuff.
Control itself is all this was, if else
Ellison break and jump and continue.
They it is very hard to
get a GPA all attached to an x86.
So this is no fun
and they can't do a pipeline as FPGA
is can do.
But the upside is they are very easy to
program and they are very easily
available.
But if you want to do very precise timing
in the area of nanoseconds of
microseconds, things get very difficult.
The GPUs, you don't want to put those on
the quadcopter. Definitely.
They are very hard to embed and they are
definitely not no low power.
They are very, very, very good at
floating point operations that are taking
that can be paralyzed.
Integer operations as well.
Control flow is like
I always like nonexistence
pipeline and cannot be done.
The probability is like a bit better than
the is,
but worse than the CPU, and you
have absolutely no control of timing.
Whatever these
pieces are, like very powerful for
multiply accumulates applications was for
the rings and all this
stuff. This is what they are optimized
for. They also optimized for being
embedded into into a power
constrained device.
And so, yeah, you can see what
they are good at.
The microcontroller, obviously is at the
very low end like I was thinking about
like a normal.
It doesn't do very floating point
operations and
the infra, just like you can do
everything.
But the problem is that floating point
operations are not well supported in the
latest vendor tools.
They are claiming that they can do
floating points, but they are very
expensive in an area and frequency
perspective.
Control flow is like
not very, quite hard to do.
You have to create state machines.
You know, those ones that you heard about
in your lectures during the university
that you it's not like why?
Why? Why would I ever need that
for programing of projects?
You need those.
But I o
capabilities are like
ginormous.
You know, there is there's a 1000
pin FPGA that you can buy and
you have like your.
Multiple hundreds, like 600 or 700
general purpose i o that you can use for
whatever you want to.
And obviously they can do pipeline, which
is pretty cool.
Well, the community is a bit challenging,
but if you want to do with timing, those
are really, really good.
You can you can do a really precise
timing up to up to a nanosecond
level if you
want to do some, if you,
for example, want to violate the set up
and whole time of registers.
You can do it with refugees.
It's pretty cool. There's also a
very interesting talk about
taking risks later.
It's like twenty one, forty
five and inside one,
which is which you should take a look at.
It's pretty interesting to see.
Very, very quick overview of what
the market is so exciting
in hotel. I like John Dixon and
Johnson.
There's really not big of a difference.
The one is producing in the low power,
high performance process at TSMC, and the
other one is probably using
the high performance, low power process
of TSMC. And they're fighting each other
over which one is the better, which is
which is quite funny to see, but in the
end, it doesn't really matter which one
you take. And
then there is also October, which is no
my Cosmi.
Those are, oh, by the way, as exciting as
the Note 10 Lite, I have like forty five
percent each share market share each.
So they are very, very common
actually are like very low power
because they are flesh based, unlike
the exciting ones which are as from
based.
There is a the advantage of an Afghan
flash based one is that you put it on and
it's there and wire and the S1 based.
They need to load the configuration from
an external source before they can pull
up, which can be a bit challenging when
you want to do something like PCI
Express.
Also, the doctored ones are used
for space missions and avionics
and stuff like this.
So if you wanna do something with
radiation, I would recommend you to use
an actor.
The latest one, I've never used one of
those.
They are, they're on the market.
By the way, if you're if you're
interested in buying the most expensive
FPGA, exciting, says
the one at priced at like
thirty two thousand euros.
That is one device, the
probably the size.
And but I tell
I was very close with just
run about twenty thousand euros, but you
have to buy three
so they don't sell this one quantities
for whatever reason was available.
I don't think you get free sampling with
those.
No.
If you want to head into programing
effigies, you're probably thinking, what,
what, what, what should I buy?
This list is by far complete.
It's just just some balls that I
heard about that I found interesting.
And the cheap ones are actually quite
well.
And the one that you see in the upper
left corner, which is the shield, what
I will introduce few that's
in my little talk. It's a
21:45 and Hall six.
I guess this should
be a really cheap shot.
I'd like 30 euros
was certainly something euros
from the the start
is a circular system on a chip, which is
like a CPU and an effigy.
And those are very interesting balls
because especially the Demichelis
that boards, because you have a
context, a dual core Cortex A9
Cortex R9 running at one gigahertz,
where you can run the perfect Linux and
then you have all the fabric as well.
So yeah, and the cheapest
way to buy them is by ordering the
parallel board.
But you also have the very strange
16 core core that
they are actually trying to sell, but
only there is some. If there's a single
FPGA, which is pretty cool and
the price is unbeatable because they
are, you're
putting some money into distributing
those.
Yeah, those are. There is a Dalton clock,
which is which was introduced
at the second this
year, which is also an
actual FPGA with was
a microcontroller.
And yeah, so
if you are interested in getting started,
programing FPGA is there will also be a
workshop tomorrow at 9:00 p.m.
and half. If you can actually try to get
somebody these blinking,
please install exciting tools
beforehand.
They are six gigabit and download and
they take 20 gigabyte of your workspace
off your disk space and they
almost run on Linux.
Well, yeah.
So if you're if you're interested in
getting some blinking ideas or if you
want to learn more about the physical
boards, you can find that there.
And are there any questions?
Thank you. If you have questions, please
line up on the microphones.
They don't have numbers, but we'll figure
that out. Do we have any questions from
the internet?
Apparently not.
So let's start with
what you're out there.
We were talking about a high level
synthesis of tools, and you are saying
that they are actually better, at least
for the next 10 years.
Could you go a little bit into the
experience you have made with them?
OK, so
the high level synthesis tools?
Yeah.
So there is there are those high level
tools that are actually generating
code for you. And they.
So my experience was I was the latest
Riverdale's readers would
just like to see to
audio tools that sightings of us.
I wasn't able to get anything useful out
of it.
There is also a side to a hot trail from
from right to human methods, which
so in general it seemed to echo
compilers. They work well, for example,
is that the vendors provided with them.
I haven't yet seen any
any Real-World application written with
it that has a decent performance
or did anything really
useful with it.
The model of similar things.
The thing is, there's
a bit better because actually
exciting are supporting them with with
blocks and they do some
neat optimizations.
So this is the model of something
I have seen in the wild,
then used successfully.
So this is something to look at.
There's also some open
source HDR translators that
are working more or less.
OK,
the gentleman in the striped shirt, the
side.
Have you ever tried Dmay
with PCI Express?
And there
are examples that
you could put onto an FPGA,
but I haven't tried it personally yet.
OK. But it should be definitely possible.
Yes.
And the next thing that you can do is put
the slide with your bots on it this
way.
Yeah, OK.
That's a box with a CPU and and
if you use it on.
Is it possible on
on which box, which both
have expressed support?
None of the votes that I listed here.
There are plenty of ports with PCI
Express. They are usually not cheapest
one.
I was always aiming for boats that are
rather affordable.
Unfortunately, a lot of ports really go
standard 500 euros, which
is not something that you want to spend
if you don't know what you
should do with it.
The Pisasale board provides an answer to
that. Or you can do plinking it with its
advantages.
OK, thanks.
Let's take a question from that line.
And after that, from over there,
I'm not actually
a question. I have a script to build
Debian packages from the ultra toolchain
if anyone needs it.
Oh, that's pretty cool.
I have a question regarding a specific
use case, namely
bitcoin number crunching.
Are there any like open source
projects or anything
like that? And if so,
how much of resources
in terms of time and money would
one have to invest to to get some real
profit out of it
for you? I mean, I know it's a very
specific question,
but I have a good answer for it.
So a friend of mine was buying this
rig of like four bots,
which is a very big Spartan
Alex, one of those 50 on them, and
he was mining some bitcoins.
With that, there is there are plenty of
open source projects for it.
You will find them very easily.
The problem is that was the latest
increase in the complexity of the bitcoin
mining algorithm and the increase of
of A6 being fairly
good available.
The
it's not not now not longer
feasible to to use FPGA
for mining bitcoins in a
if your mom doesn't pay the electric
bill.
Since we have no other people at
microphones, the
guys over there just go through it.
And until then, thanks for thank
you for your presentation, but you sound
that.
Oh geez.
I'm good at input output.
And if you come by a speaker
and if you do that, you will
get some nice results.
But actually, there is
a problem in interfaces between the
computer and the effigy,
because if you're having to
speak on a pig, you
will have problems.
If you and if you haven't say express
on the same board, so you
are bound to for about
20 megabits per second
in transfer and transmission between
you and f g.
And where is the profit?
Well, there are definitely bots available
where we have DMA address
access to your through your host
memory. So if you want,
if you this is very possible that you put
your FPGA bought into the PCI Express
slot and you have to.
I said if you're currently going to say
Express, so you know you
can do nothing.
Well, you can have PCI Express
and just not with the bots that I was
listing here. That was my point.
And also there is there are
the if you if you're using this,
the same process as it's called from some
savings where you have the CPU within
the day of the fabric, you
have a very, very broad access to the
fabric, obviously.
And I
agree talk how
cheap and small are they going to get
like thinking you want to reduce
complex ability on the board and shifted
towards software, kind of like
an Arduino where I can put in like, I
don't know, motor controller FTD and some
DSP, but I don't want to do that for 50
quid, right? So how how cheap are they
going to go?
Well, the
on the I think the abuse issue
that I'm going to to present,
this is like a very a lower bound
of what you can have with an FPGA that
is usable in the in a very
flexible way.
You can.
The FPGA itself costs like eleven
euros if you buy it single volume.
Did you? And it's it's fairly
OK from a size perspective.
Of course, there are very small FPGA, so
CPU Aldi's for doing IoT
stuff like this, and they can go
down like, you know, two euros, three
euros.
Thanks.
Firstly, just a comment on the
PCI question,
the cyclone five certainly is
available with a hard Peace Corps
on die and some
of the terror
development boards, for that part, have
PCI on board.
Yeah. Not cheap, however.
Yeah, no. The thing is the reason why
why they have had PCI
Express courses because
well, after plugging into the computer,
they have to respond within within
one or two milliseconds.
And usually, if you have a big FPGA,
the loading the configuration takes
longer time.
Then then those one or two milliseconds,
which which would not allow you to use
the plug and your FPGA board into
a regular x86 board.
And this is why they introduced hardcore
PCI Express.
I also wonder about the
choice to try to develop C2
to cut its deal
compilers since C is fundamentally
sequential, whereas
instills are fundamentally
personalized.
And I just wonder if it's really to
figure out where we've converging
functional programing languages
to there, which
might be a much better fit.
Yes, there are some items that
porting bringing the function of holding
them to programing
hardware, but
it didn't get any traction outside of
academia, unfortunately.
Thank you.
We have a question from the internet.
One question from the internet.
Is there Verdon in FPGA is
as in do they break over time
and how much time
I have yet to break an FPGA?
Well, if you have a flash based
FPGA, obviously,
if you have like only a limited
lifetime of like a million
years before the
configuration gets lost and you
can only configure it like
a few million
times or whatever,
there is no known word on
that. I am available to be put like
this.
And I can I freely choose the
description I want to use oil,
bone tools, special tools from the
windows.
Let's put it this way most Windows
supports we
very look and video
a little bit different each one so
that sometimes they're not compatible.
And what they also
support is the littlest Edith
list. So most
of the tools are in are either generating
either of those three so that you can use
them, for example, HD with generating
video code so that you can use it for
use with your. It was only when the tool
that you want to.
There are any hope for FPGA
and development boards to drop
in price towards the microcontroller
range or is the support for programing
too complex?
Let's put it this way on my
piece actually what there is, there's an
exciting which is which is
programing the
the the FPGA.
And so I think
there are some lower bounds if you don't
want to be subsidized by the vendor.
I think really that 30 years, this
is a very lower bound of
what you can. You can create a
board that is interesting
for and can has a FPGA
that does something interesting.
So I don't think
that it will ever be suitable
to say, oh no.
Instead of using a that more,
I will use an FPGA.
Is it possible to record the
the landfills at one time
so their records of the threat of so
what do you find FPGA
eve?
Well, if you if you ask the vendors, yes,
if you try it in practice, it's like,
Well, I know
it's in theory it's possible to
reconfigure the FPGA.
Why did this running?
I was talking with some winners and they
said, OK, but it's not like you can
change the configuration like every
millisecond, which would be really
interesting and awesome.
But it's more like, you know, they are
like, you can have a change
of like one time in a minute or so.
So whatever it takes one minute
and you have to
configure and take some time and
it takes like Figure four J.
It can it can take like one
or two seconds and
you need it to.
You need to have time to compensate for
that.
So, yeah, so in theory, they are.
You can do that and practice.
I haven't seen it yet in a practical
application outside of a window
demonstration.
And do
we have any more internet questions
in that case? We are done.
And please thank the speaker again.