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/708 Thanks!
All right, without any further ado,
I would like to introduce Charlotte Papa,
who is the main developer behind
a spinal idol, a HeartWare description,
language which you can use to program
FTP, DJs and the like.
He is working on spinal HDL full time
and I'm looking forward to the
presentation. Please give a warm round of
applause for Shah.
Thank you, so
drunkest, OK.
I will start to tell you a
little bit about why we here and very
logout not so good,
then I will introduce
you next year.
And all the rest of the presentation
will be about showing you example and
thinking about.
Why this is bizarre, by the way,
that example are done.
So, yeah, I have said
before this presentation will only
be about visible hardware.
I will not talk about any
simulation features outside of
things.
So, yeah, they are going
very lurg, initially designed
for simulation and documentation
purposes, and it's only later that they
were added as an input
language for this tool.
And that was a very long time ago, which
mean yeah,
Verdell and very missed many pictures
that could be interesting.
And to see to to infer
hardware you have to use
simulation constructs like processing
and Facebook, which doesn't really make
any sense from that point
of view. And so you don't have things
like obliterated programing and function
and programing.
It could send Trink to talk about
objects not that far since
it is able hardware, but in fact, it make
a lot of sense.
And I'll show you some examples of where
it it it is really powerful.
Then inveigling very simple
concepts are often very verbose, like
instating subcomponent or
as module is very painful.
And so you don't have some notion of
interface. You are always enumerating
signals one by one and many
of the things that make them not so good
and you don't have possibilities
to rise absorption level.
If you use Yaghdan very large, you will
be still stuck in kind
of real abstraction layer.
You will still have to connect everything
by hand.
You will still have to define gaits
one by one.
I mean, it
could be better then
there is back to the 2008
system.
But yeah,
there are not really they have to say us.
I mean they still keep the same from
parodic between Furter you still have to
use in different constructs.
You are still using the eventa driven
paradigm to tell
then they still didn't offer any
hardware description capabilities
and.
The idea to support could be very bad.
I mean, there is many interesting
features in both language, but depending
that you're told that you have to use
false impression of this, you will
not be able to use them, which mean,
yeah, you are still stuck in a
subset of them.
And as well as, for instance, um,
system, Varella grew up a very
interesting features, which is interface
definitions.
But we see in detail that Evan.
This fetus is not that.
That good system.
OK, so, yeah, what to
do next? Um, my
solution are and it has
a solution of other people.
One solution is to use violence
as necklaced language, which is
automatically generated from
higher level language.
And there I go. It's been alleged.
Yeah. So basically, um,
it is an ambitious project that I started
in December 2014.
It focus exclusively on Atayal
description. So the idea behind that is
to do not to not do any compromise,
to really have the best language possible
to do one very precise
thing, which is describing Etel.
Then since the beginning, it was going
to be interoperable with existing tools
because you can go to the Chinese company
and ask them to support your brand new
language. They will never they will never
do that.
So the compiler
is able to generate
its output. Netlist, as very long
as you can also
integrate legacy APIs inside the spine
in Nigeria by using a black box system.
It's a little bit like having a C
header file, then
application level start at the same level
as an the actual very
log or nearly the same level.
But the thing is, and the top
of the deal, you can build
new abstraction level, you can build new
tools and it is its
biggest
powerful side.
Then there is a flow.
So basically you would have to define
your description
by using that scarified.
Since then, you would ask
Network Tool to generate the
corresponding reaccelerating Netlist.
Then you can grab
you of that person,
but then all together and you can use
your flow as before by using same
simulation tools and before and same
synthesis tool. But then before.
So, yeah, no, I will start with some
examples or just some things,
um, let's point to Tokyo.
So spinless Dale.
Will not create any overhead
in the.
You will not lose Gates, you will not
lose performance because
it is not the kind of issue, you know,
if there is a divide where you've tried
some not arbitrary,
but you can provide some see a
great move that will be translated
automatically into space.
So that is not that spin.
That is really an approach where you
have to define register
a little bit as before and gates a little
bit as before.
Then all
components key and
all the names that
are integrated area,
which mean you can do your mission
simulation as before with the wave you
can look signals and match them
with your description.
It's not an issue at all.
And OK, in fact,
it's not really a language.
It's what we call an internal
data.
So there is basically
scatter, which is
it is a scalar liberi.
So there is a canard angry and
Banerjee's and Liberi implemented on the
top of it
and it could and trying to have some
language into another one.
But in fact, this is probably one
of the best part of
the example.
Um, yes, there is a simple example
where you have some
as common conditions
to merge, to drive imex,
to drive a counter, to drive another
country with a reset
value in which
you would have to.
If you want to do that, you would have to
write three different process
because you are in an event driven
predications.
Yeah, this is how you have to do things.
It is really boring.
It is already verbals.
And as you can see here, you duplicate
three times the same condition, which is
not very good in terms of good
quality.
And there is a equivalence in
Spain in the
first to define signals.
It's already different than if
you want to define this. Cabinda
ultimately say I want Adbul, which
is a hardware boolean that I type.
Then if you want this registar,
you say, I want all of
this. Given that I type which that we
sign up from, it's so it's
not like in Vectron and very low where
our register, I think that we can become
our register. Because you assign it in
that process, though it's not that
here. It's really explicit definition.
And this simple fact changed
a lot of things.
Like, for example, you can assign
all those guys inside,
inside the same if condition.
So it is a random example.
But basically
it happened very often, like in a state
machine where you have a pass and
as a commercial path, you have to
duplicate switch statement.
And this is terrible in terms of
quality.
Then go for it for twenty
eight line of Jagdale before to land line
of final deal with Abitur
explicitly expressivity
so on.
Yeah it's it's good
then. OK, let's take another example.
Let's imagine you want, you have FGB
input and you want to calculate the grade
level of those inputs by
multiplying each of them with a constant
coefficient.
So yeah.
Yeah I can see if I had three times the
same pattern.
Basically you have three time um
and signals
unsane signals and a floating
point constant and then as
output gets out the
output of our register.
So you have three times this pattern
if you want to be smart in
L and avoiding rewriting each
time the same three times the same stuff,
you can define a component
which contains that. But you know,
using and in fact that is really boring.
It is very verbose.
So it's not so good.
But here you can use function.
So let's take the um
implementation.
The final here we can define
FGB value,
then you can define a function which
take as argument.
How do I find value with
Alabamian time constant
and dysfunction.
We return to the output of
to split up so you can see if I can.
Defining intermediate register
has Irag of Ebbetts then
doing some fixed point calculation
and returning it and then we using
this function time.
So yeah.
Well and voila you have, you
have functions, you have procedural, you
have a task but you can't, you
can't instantiate intro's
function, arbitrary outwait.
You still, you are still kind of stuck
with a syntax that will limit
you to give relationship between inputs
and outputs by.
Really, it's all the way, which is not
very powerful,
then, um, yeah,
let's take another example.
It is let's imagine you have a handshake.
This, though, very simple with just
are valid as
m. misprision and are ready from
safe to say stop.
I'm not ready. Oh yeah.
You can go. I ready and
upload the you can see
here and imagine
you have two instance of those bits of
tidbits like soothsayer's and sync
and you want to insert a Q between those
pieces if you want to do that,
in which there you, you would have to
write all this boring stuff.
So like redefining or signals
one by one of your and
this time
then you will have AZO to insult to
FIFA, which is.
Yeah it is boring.
I mean you have to map into
a vector
or go goes one by one.
So here we just have three elements.
But I rocket in a company where
in average we have like 20 signals.
It's time to, to map
into that are stricter.
So yeah, it's not very great.
Then here there is a first approach
of how you can do that in Spain.
So in Spain, like the
handshake, this is name stream.
So Astrium is a handshake boost that can
carry an arbitrary data type.
And here it is, an ad lib color
with this phrase
parameterization.
So here you can define so
sorry can define stuff.
And I think we can stream of Adibi color
of this parameterization.
Then you can define a pfeifle like
five, four, three, five, four, which
would create this kind of data type with
this depth.
And here you don't have to bend.
It signals one by one.
You don't need to be in six.
Basically you can directly access
either of this pfeifle
by saying five that I that
push, for example, to access this bar
of Bob to access this bar.
And here, for example, it's saying,
I want to take my soul stream
and I want to connect it by using a fully
conscious way, though direct connections
in respect of that direction
to the for your part,
and then say I take the
fight for your birth and I want to
connect it to my think.
The fall from twenty
a line of work to seven line of
it is good, but it could be better later.
We see a better way then.
OK, so here I
think that we have an adlib that has
stricter it come from the spine library
and there is how it is defined
like it is a case class which you
name FGB with
this parameterization for the
construction of it diskless extend
bundle bender represents the
notion of that are structure in hardware.
Then here you can
define elements that you have in this
data structure, although it is simple
syntax.
And for example, here is the definition
of the stream concept.
In original, though, this is still
a case class we take as
an parameter.
The type then
it takes an independent state
representative district stricter with the
concept of master slave, because
you can take a history and say it is a
master of my opponent and isolate
part of my component, then can
define find value it already has.
That signals
then the payload as an instance of
disparities, principle, that type.
Then you can implement the master
function to say how it is that a
structure could be set as a master or as
a slave of a component.
By saying that outputs
are valid and the payload has input, you
have the ready and
then you can already do this kind of
syntax and here comes the fun
stuff.
So basically, I told you
before that binary is basically
a library, which I mean here
this is this is object oriented, which
means you can add function in this in
this class, like adding the
combinatorial operator
connection and the
reverse one, which means the reverse of
this one. And you can as of,
for example, add in this
business definition a
function that will, when
you call it on Natrium, it will need to
set a FIFO, connect
this stream on the one you are calling
it, connect it to the back
part of this story of this Phifer
and then returning the both
of these FIFO.
And there you go.
You can you pass you
you are moving from, um,
discard as before, which you do
everything by hand in financial to
this card, which is only two lines like
where you say, I have thought and I think
we can stream of every color with this
parameterization.
Then I take myself
I want to cue it with a faithful
A16 element, and then I want to connect
the output part of this
effort to my thinking.
And yeah, here we start
to rise to the level of abstraction via
going out of this mess of
wayout, which is how that description
things.
So this is a
simple example and
there is many other funny things that you
can do with tramp's.
Like, for example, imagine
you want to do this arbitrary
hardware like you have a stream of color,
then you want to drop transaction of
this stream of color when they are black
by adding this arbitration.
And then you want to either by planning
stages for performance reasons for
us. I don't know
if you want to do that.
Um, yeah.
If you want to do that, I don't
know. It is, it is really boring.
And if
you want to do that, it's, it's only two
lines. Like you say, I have a stream
of color named source.
Then you say I take
this off and I want
to throw it transaction when
the source payload is black.
And then I want to add pipetting stages
and the end of it, and then I will name
the original staging function.
I think
though, all this stuff here is infrared
by design.
So because if I want to be
at a strictly about or definer is black
function and these kind of things.
So it could look like magic,
but in fact it is pure aertel, because if
you look like, um, how is
implemented the trun function,
you will fall on something which is pure
attia. I mean
it's not about adding magic
things that to make abstraction for you,
you can always look
inside how it is done by using regular
aertel like the turbine function
where you can say can see
it's instantiate, are it on stream
of the same data type.
Then by default he would connect
this stream to the written stream,
but it will in fact
get there.
They're undervalued and that's already by
adding some additional conditions, like
if I want to throw transaction's
then but the force and
then there is a true
I mean, yeah, this is still
Aertel so.
Yeah, no, I would change the topic.
Um, safety first.
I mean when you do aertel, it's very
easy to do bad things like infrared
combinatorial loops across multiple
module, inferring, for
example, something that is by forgetting,
assigning a comment or think that in all
case and we check
all those things for you.
So, for example,
this loop would be detected by the
compiler or here's a result is
not assigned by default.
If this force, which we will
infer, though, which I mean,
if you successfully generate
if you generate whose output
ethyl. You have much more trust
in this United States than in our
handwritten one, because many, many
things are already checked for you.
There is some checks about
cognomen crossing, which is them
then basic obstruction, though
it is a simple example of
how you can opt out.
What could be an abstract like
imagine you need to do a communication
module and you need a timeout inside it
to check some things
you can say.
I want to create a timeout named Timeout,
which is a timeout which will take after
one thousand cycle.
And then you can say if my timeout
stick then I want to clear
it though.
But it is hardware.
But as you can see here, you are using
a function to to access our hardware
in place of the timeout that counter
equals zero.
I use a function they would clear to.
In fact, um,
another example is if you want to
control, which would count from zero to
nine, can say I want to container of
ten states, then you can say, I want to
clear it, I want to increment it, I want
to get its value, I want to get its next
value. I want to know if it will overflow
this cycle. I want to check if it's
equal to five.
I mean, just kind of things you can
you can kind of have them with that
and very large, but by using components
and you know how components are
going to use.
And if you just say
you want it and then you can use
it as what you want,
then oh yeah,
total obstruction. I will add the top of
that. It's not something it created in
its compiler, which I mean, you can
create those abstraction can define
what what is a timeout or these kind of
things.
So functional programing, um
basically
function programing is something with
which is big and at least
one part of it.
An example of just one part of it.
Like if you want to infer this
hardware where you have an address
and array of addresses, then
you want to check which addresses
I was given K and then you
want to know if
one of them is true
or you want to do that.
You can say, I want to define address,
which is a vector of these are the type
four time.
Then I can define the K and then
can say I take my array of addresses
and I want to create a new away
from it. So you use the concept of
mapping by and
you give as a function that you want
to use to translate
those elements one by one to the
next. All right.
Or you can also use the radius
concept of functional programing, like
let's say I think that it's all right.
And I want to reduce it to a single
element by using this reduction function,
which will be used on
each element, each pair of
elements to try to to reduce them until
a single one.
So it's kind of things that you can use
very easily with Benilde.
And yet this is a funny things,
like basically,
um, each time you use Binary Excel,
in fact you are doing some Scarra
programing by using spinach delivery
and basically you use
it. It would bring it into your computer
memory, a graph of your design,
which means you can also ask how
this graph is currently
to get some information of it.
Imagine you have, um, A and B,
both value sequence together which appear
together.
Then you have A which
go through the
calculation pipeline that you don't
already know that I don't see.
And then when there is bit of a come
out, you need to add
as a B value that were present at the
same moment than the ever present
that so you have to delay B by the
same delays and this pipeline.
And basically in order
to do that, to to know how
many of you have to use to to specify
participatory style, you will have to
count by hand.
Megale, you have to run a simulations
to look at the wave and just kind of
things. But it's not very nice because if
the if the pipelining latency change
there, you are kind of annoying
because you have to change things and
maybe we forget to back.
Yeah, but in Spain, Rexdale,
you can ask, um,
the Netlist to give you the latency
between this point and this point,
but using this function and
there you go, the latency of this
pipeline.
And you can if you delay, um,
by with a right delay,
which makes your design much more
elastic, which allow you to modify things
there without having to care about
this stuff.
So I am as an example,
this is more about what I mean is
of a description like
stopping doing aertel
with each time signals and
scanning of things.
So imagine you want to define
this state machine with a state
that is a beast.
I see with some conditions,
like when you enter into Interstate B,
you sets acounter to zero.
Exactly.
In B, you incremented, then an exit of
it. You want to arrested to try
to do that to do autistic machine.
You can do that and splenetic there
so you can use a state machine tool,
which is again one thing which is
on the top of it. It's not implemented
into the compiler.
So you can say, I want a new state
machine, I want a different state A, B,
C, which are state and
A is the entry point, then can you find
some signals and some stuff like that
and then you can say Onstad
and state to be an entry.
I want to set my content to zero
when state B is active.
I want to increment my counter cycle
and I want to check my quantize go
too far. Then I want to go to state C
and on exit I've said B, I want
to, but I always lived through.
I mean.
This is really something
to show you that
there is not a fixed syntax, you can
extend it, you can create new obstruction
of the top of it, depending your
challenges, could be really useful.
Then let's take another example.
Imagine you have designed a timer, a
simple timer with a simple input,
a simple, clear input,
a limit to say when you timer
will become full on output
value. We can tell you when times
are full and add value to get
the current value of the timer.
So there is a corresponding
implementation of
this component.
Like you define a timer with some
time mitigation, like how many bits you
want for it.
This class extant component to say
yep, it is component, then
you can define either of this component
in new that structure
by saying you have six, which is our
input clear, which is our input bill.
And yeah, simple things then
can define cantell, you can define
the value of your components
and then OK, you have it, you are happy
and you want to map it into
something already existing.
You want to, you want to
from every memory is like the
one you want to be able to set
a limit of the timer.
You want to be able to
define which
signals we'd be able to make you
automatic.
It's going to things
to do that it's been in
there and you will probably use some
switch statements and these kind of
things. But here there is another
solution which is really
using obliterated programing.
So basically there is a tool
named Bisley Factory,
and this tool is abstract, which
means it is an abstract class and
it's defined how it
defined function that will allow you to
define the mapping between
a memory and some rest of
your design and
user is multiple implementation of these
tools like an arbitrary one, another
one and an excellent one.
And there you go.
OK, so as
instance, in our time, our component
in the bendir that are strictly
defined are you can add a new function
that could be used to say,
I want to drive this
time a component from memory
abuse.
So factory at a given
base addressing the mapping of this
space. And you can also specify
a list of signals which could be
able to make you automatic can as
give a list of clear signals to
say that they can
create.
And then you can say,
I want my controller to be
able to drive and read the
limit of my time at the base at
zero.
So basically, yeah, here
you are saying that the upper limit
is our register of
TACE Bisley factory
that you can access as a zero and
you this will be able to
read it, but it will also
take the control of it to be able to
drive it then
can say you want you you want to be able
to.
Set the clear flag
of the timer when the controller is
rattling the base of the zero.
So, I
mean, this kind of abstract definition of
regular mapping allows you to
not care about this
time.
Things like you don't need to know that
Abib timings the AvalonBay stymying
ACSI, Furbies timing.
You know, not you don't have to know
how the bills work.
To create a custom peripheral, which
is very interesting, because it means
this function is abstract, you can use it
with an Avalon base
and purpose without having to create
kind of bridge by yourself to map
into a fixed definition.
So there you go.
There is an example how you can
use all that stuff you want to create
a big time component with a preschooler,
with one timer and
these kind of things.
So you can define, for example, an APB
Trabis with this metaphysician.
Then can you find some signals?
Then you can say, I want a preschooler of
16 because I want a timer after a
it. I want a time A, B and C of 16.
But then you say
you want to create this IPB previously
factory, which will be able to map
the IPB trip is defined there to
some other.
And then you can say if I can pull I want
I take my tamasi, I want
to be able to drive either
of this Tamasi with my Piscatella at
this address in the mapping.
And there is a list of things that I
could be able to make it tick, and
there is a list of things that I could be
able to make it clear.
So.
Yeah, it is
it is very short, I mean, it is
really I mean, it is
very expressive.
You say, I want I want that.
I want that. I want that.
I want to connect them back this way.
And this is done for you.
You don't have to play with wire
by hand and by hand and
all these things. It is very flexible.
And if you want to edit it, you you can't
introduce Arberg inside it.
I mean, you don't have to play with
timings.
You don't have to play with all the
things,
then. Yeah, it is a
project which was made with by
next year, which is kind of
a little microcontroller with a risk,
five c.p.u with instructions,
with instruction, cash with
an extension and just kind of things
with duct tape,
um, to get by using
see we are using Breakpoint
and things like that.
There is a is there a memory.
There is, there is
an XY, uh, for
crossbar to connect all those guys
together with a good buddy.
There is an APB, three Brees
Bridge to go to peripherals.
Which are your time.
Are you out of control?
And basically there is something
interesting is the implementation of this
design. As instance, the
IPB decoder, though,
to try to install
T.S.A.. So it is used for control of five
lines, though.
But I've already talked about these kind
of things before, but for
example, to instantiate
and create all those connections between
between them and I.
What defines a mapping of Auto's
in this arbitration?
This is use that like you say,
I want an APB Trittico the semester
is AVP Bregier you IPB, so
DKA and there you can give
a list of slave like
that you are there are you people you
will be mapped at this address with
this memory renge.
Then another example is
how, um, yeah,
this thing is made so that
actually for crossbar, which connect or
does go together.
So here it, you then
build a pattern from object onto
the world. So basically you can say,
I want to create an axis for a factory
and then you will you kind of fit
that model in this tool to
say what you want.
And when you have this
tool is what you want to say.
It's all right, you can build yourself
and the tool. We do what you want.
Then I think simple
it is to have the FIDs
list of slaves, like saying,
I have the ram ram, I have an
rage rachmat at those location.
Then you can say there is,
for example,
controller which should be able to access
it as the RAM controller, your Yuxi and
just get off things
and yeah it's nearly
has is it than to use
those things are KISS's things but
it's still.
PUCA without using
graphical GUI,
then, yeah, about Scarra,
uh, basically,
yeah, sculler is probably
a very good general-purpose languages
then if you want to
test it, there is already some
idea we can use
which can help you like to
have to have syntax
error, highlighting, refactoring,
these kind of things, navigation tools
which are very useful with
EMAC plugin.
And yeah,
so
it is, as I say, completely opensource.
You can find some documentation
there.
There is some ready to use project with
some directive how you can install tools
and you can think so.
Yeah. If you want to try it.
That already goes there.
There is also some communication channel
if you have questions like
architecture, but uh, do
not hesitate to make the issue.
If the compiler has some
strange things, it could happen, but
it is pretty up now.
And if you want to talk me in cremator
is my email address at
the.
Thank you.
Thank you very much.
We have some time left for questions and
answers if you want to leave the room
now. That's OK.
But please be quiet and take some trash
with you if possible.
In order to ask a question, please line
up at any of the microphones and I will
call you out.
Yes, please.
Uh, hello. Thanks for your talk.
I was wondering.
So now we have this very high level
description of of our hardware.
So what is the debulking story
like? So if something goes wrong,
do we have to look at the video code or
is there some kind of high level
debugging mode that I can use?
OK, the first for
instance, I could take example,
the for example
here, if you have a problem
in this drive from function, like
the mapping is not working correctly.
So integrated vector, you will still
keep Ya'acov components and
names that you use, like, for example,
this timer here, we take
those names, things like that
are here. The logic used
a little different there.
If you define a signal for complete
dysfunction
that there is a name will be
kept because this function written on
an area which so.
It's not very difficult,
though, because, yeah, it's to keep them
and there is something it is
the fact that, you know,
if you use this kind of obstruction,
they're like traumatization
when something happened and please
at a pipeline to those because
those functions were already verified by
somebody else.
And you don't have to rewrite it each
time by hand.
You can kind of type what
you think. And it carried you from
directly because because you are using a
more abstract way to define the hardware.
You have much less bucks coming
in your description.
And really sometimes
it's really unbelievable.
Like, you know, when you are doing work,
then it never work the first time.
But by using the ZAPORA
really sometime it happen
already. Sometimes it is surprising,
but yeah.
Then you can take a look
at that if you are really not sure.
And there is something strange. So the
United Way is not crap.
It is readable. If you talk
about your single name, you will find it.
It will still keep the same.
If you use one statement, you will still
try them integrated with Excel.
So it is not a mess.
It is right. But normally you don't have
to go into the Excel.
You will still have points where you can
prob signals and that would be right.
Thank you.
Question in the front.
Hello.
Um, nice.
Um, 4:00.
Uh.
Um. No.
Ever heard of, uh,
a system level design languages
like System C or
spec C because so
do a very
similar approach to the problem of
raising the
level of.
Was the level of a lot
of them, so, yeah, I have
heard about EMC and those
I went back.
Yeah, sexy.
I don't know about sexy, I don't know
about it. So about EMC.
So much.
OK, you can use I know that you can use
many features or like or features that
you want when you are using
EMC for different things.
But then for think visible
things I am really
not sure that you can use or crazy
features of EMC, but
I am not an expert and I want to say
crap. But I think EMC,
when you want to come back to cities,
is things you will have to use
since it is synthetic is much more
restrictive and maybe not
so much powerful, but maybe I'm
seeing some crap.
Oh no you don't.
But it's similar to
some things you only can
use while simulating the whole
process.
You are still using sensitivity and
these kind of things, right?
Yeah, but you don't have
to use sensitivity.
You can also use fifers for
the vocal communication or you
can introduce some
biases
very
um.
Common to your approach.
Yeah. Which I really like
raising the level of abstraction to make
everything easier.
So you don't just have to synthesize
it down.
OK, thanks a lot. Thanks.
We're taking the next question from the
very back.
Can you compare it to Chisel, which
is also skull based and also
a high level synthesis tool?
Yeah, OK, so basically
before starting from Delaware using K2,
but I move away from there because
of some bad feelings that
I had, though
I don't want to be to be
to to touch either.
Um, but there is really many features
that are not working well in it.
Like for example, you don't have the
you can't use kind of them and
support, but not really.
It didn't work very well when I used it.
And for example, you are still forced to
use Synchronoss reset, which are
active high diskette, I think.
I mean,
it's I
mean the team behind
Kaser from Maine opinions focus on
their needs are not seeing Shiza
like are tools to solve problems
of everybody.
Things are things they
hate what they want.
They don't go further.
They don't polish it enough from
my point of view and really
know is there
are really much more happy with it
because, yeah, I have a page of
my documentation which is talking about
the difference between Israel and Israel.
And there is really a lot of
little things, little issue with
but which we completely break Chastel
if you really want to use it in a
productive environment.
And about the synthesis, you mean
you have a question about is it is this
right?
Um, no, I just mentioned that was
it to.
But speaking of the differences, wouldn't
it make more sense to just Chastel
to address those differences
instead of working it?
Oh, I try to, yeah.
OK, now, first time I started
to understand how that could work behind
the scene and then come back to hazal and
fix it.
But yeah, it really appu
very fast. That wasn't possible at
all. I submit some fixes
and may get
who were
remaining and where they are
without any interaction with the team
they'll fit back. So it was a
development process issue maybe from
the team.
I tried very.
I tried.
All right.
Next question from the front, please.
Yeah, I think we all know the concept
of IP cause with a standard HD
we have. And how
did you think about a review
process of the library that is building
with Spinell and how
could that happen?
So you say you don't want to rewrite
code every time, so we have to reuse
it and how can we review
it that that is good code, that
this is OK?
Basically, this is probably the next
announcement that I really have to do.
And it is
really something critical and
complicated, because when you have done
something in the library which has
that, you don't have to go back and
remove pectus that you have added,
though until now.
What is documented and unlike
the competition, could be interpreted
like safe, like using stream to
do things is safe because I already
but many attention if it in
it.
But yeah, there is
some work to do on the additional
library will come directly with Binaggio
and it will be one way
of expression until
now are really focused on spinning things
onto cars and the library
is the next step to go further.
OK, next question from the front please.
As is possible, which apparently she had
to create clawless logic
or sequence logic,
crotchless logic like
you mean you don't have a fixed clock
handshake everywhere between every year,
like and.
Yeah, like all the logic, everything.
There is absolutely no clock, no flip
flop, no flip flop everywhere into your
design. So.
No, no, sorry.
Yeah. I also wanted to ask you about
another tool.
Can you talk about the relation, the
relation between your system
and Blue Back that's
based on Haskell and it's been fairly
heavily taken up by Amity
and worked rather well on things like
eight to six counters.
So I personally, OK,
I hear about respec,
but I don't really know about it.
Um, I
can't really talk about
it. Sorry.
All right. Any other questions now?
Is your chance
to have any questions from the Internet?
All right, if anything comes to your
mind, please find a speaker afterwards
and before you leave, please take the
trash out with you.
With that, let's give a final round of
applause, Tushar. Thank you.