Breaking News
Comments
Newest First | Oldest First | Threaded View
<<   <   Page 2 / 3   >   >>
Peter Clarke
User Rank
Blogger
Re: The event-driven paradigm
Peter Clarke   9/18/2013 6:32:39 AM
NO RATINGS
Thanks Jan

And MyHDL has the advantage of being open-source.

If that is an advantage????

 

 

 

jandecaluwe
User Rank
Rookie
The event-driven paradigm
jandecaluwe   9/17/2013 2:40:20 PM
NO RATINGS
Most HDLs that have been proposed are like Chisel and C~: registers are explicit, and events such as clock edges are implicit.

Notable exceptions are Verilog and VHDL. These HDLs follow the event-driven paradigm: registers are implicit and events are explicit.

Would-be HDL language designers seem to ignore this historical lesson systematically. The HDL language winners are the exception, and all those other HDLs are all but forgotten.

Why is that? Because the event-driven paradigm is much more expressive for modeling and better suited to verification (which is much harder than design itself). This is what the market wants and needs, not the focus on "full synthesizability" or "generating hardware".

In addition to SystemC, there is one more exception that I know of: MyHDL. MyHDL proudly follows the event-driven paradigm, like Verilog and VHDL. Of all the newer HDLs that have been proposed, it is the only one afaik.

Jan Decaluwe (the MyHDL guy)

AZskibum
User Rank
CEO
Re:Chisel
AZskibum   9/17/2013 1:21:17 PM
NO RATINGS
"And why has HLS not worked?"



Two basic reasons: (1) Hardware designers are reluctanct to move from HDL to C -- even to hardware-friendly SystemC, and (2) The productivity gains of HLS only apply to DSP-oriented designs -- number crunchers. Try designing a complex state machine or a serial comm interface with HLS. Yes, it can be done, but by the time it is done, the designer wonders exactly what the point of that exercise was.

Matthieu Wipliez
User Rank
Rookie
Re: An intermediate level of abstraction?
Matthieu Wipliez   9/17/2013 9:22:00 AM
NO RATINGS
Hi Peter,

yes these are big questions, we look forward to customers' reactions! Graphical design is a tough question, too. We already know it's not perfect for every use case in its current form, that said if done well graphical can be awesome. Anyway, it is already a huge improvement over how VHDL/Verilog/SystemC do it!

What we're saying is that software engineers may well get interested in designing hardware, but if they do they should not expect to dump a piece of C and expect the best hardware there is (HLS had promised that, I already blogged about why it will never be able to do that). However, if software engineers do get into hardware design and want a high quality of results, they would definitely go a lot faster with C~ than if they had to use VHDL/Verilog.

Matthieu Wipliez
User Rank
Rookie
Re: An intermediate level of abstraction?
Matthieu Wipliez   9/17/2013 9:02:36 AM
NO RATINGS
Hi GSMD,

yes I'm aware of Chisel, I included it in my post on Synflow's blog Beyond RTL part 2: Domain-Specific Languages. I think Chisel is a good idea, like MyHDL and similar efforts. It has the advantage of being open-source, but being open or close source, or free or not, does not seem to have made a big difference in EDA historically.

Now back to Chisel, it is a bit like SystemC in that it is based on an existing, large, complex language (Scala is much better than C++, but it is far from being simple). Is the designer really free from having to deal with the Scala layer? Then it's a matter of taste, but I find Chisel's syntax complicated, and its semantics difficult to understand ('when' and 'unless' to do if/then/else but in a slightly different way).

Matthieu Wipliez
User Rank
Rookie
Re: An intermediate level of abstraction?
Matthieu Wipliez   9/17/2013 8:41:26 AM
NO RATINGS
Hi Nicolas,

the major difference is that C~ is a programming language dedicated for hardware, contrary to C/C++, which are software languages. Try translating 'malloc' or 'new' to hardware ^^ SystemC is somewhere in the middle, but I think it is not the solution.

C~ is above RTL, as it does not have an explicit clock, reset, or signals. The language is still cycle-accurate, so it's lower level than the code you would typically write with HLS. So it's kind of in-the-middle, we use a model of computation derived from dataflow process networks, which define computations in terms of action firings; in C~ a firing is executed in a cycle.

As I explained in the post I linked to above, extending C++ is probably not a good idea, it is difficult to parse, complicated to analyze, and you still have to deal with the C++ layer (hello ugly error messages).

Peter Clarke
User Rank
Blogger
Re:Chisel
Peter Clarke   9/17/2013 7:42:34 AM
NO RATINGS
I agree there has been a reluctance to move up to higher levels of abstraction but it is partly because HLS does not really work. Is definitely not sufficiently automated.

So you end up modeling at high-level and then designing at lower level and then spending a lot of effort to try and be confident that what you modeled at high level is equivalent to what you are designing at lower level.

And why has HLS not worked?

Here is my argument.

Because unlike RTL-to-gate-level -- where designers were willing to give up messing about with transistors and gates and dimensions of cells -- there was no obvious way to accept constraints (even at the IP core level).

And that has happened because there is not equivalent to the NAND completeness of logic at the gate level. Isn't it DeMorgan's Theorems that prove that all logic systems can be converted into NAND gates or NOR gates? Therefore being constained to using a limited set of gates allow all digital logic to be created. The constraint of using those predetermined gates allows synthesis to work.

There is no equivalent limited set of IP cores that could create all-imaginable logic circuits and so engineers are reluctant to accept any constraints on either IP cores or their dimensions and no obvious way to guide a synthesis engine.

Until we have automated provable synthesis of yet unimagined logic EDA is stuck working at multiple levels of abstraction and stuggling to prove their equivalence.

 

GSMD
User Rank
Manager
Re:Chisel
GSMD   9/17/2013 7:27:40 AM
NO RATINGS
The patmos project in Europe is using Chisel Here is the source for the CPU !

https://github.com/t-crest/patmos/tree/master/chisel

This is part of the EU T-CREST effort.

I run a large research program that standardized on Bluespec. We still use it but when we have collaborators working from home, it is tough to give them licemnses and Chisel's open source nature works well in that scenario,

Also Chisel let you use multiple models of computation which is convenient.

Both generate Verilog, so the existing tool flow does not change. Frankly you need to be hard core masochist to use Verilog, VHDL or System Verilog ! The HDL community has been a bit resistant to the idea of higher levels of abstraction.

 By the way most research programs use one of these newer languages. I typically neversee Verilog or SV.

U Penn as part of the Crash Safe DARPA project uses Bluespec. Link to CPU source.

http://ic.ese.upenn.edu/distributions/safe_processor/

The program website is crash-safe.org.

 

Peter Clarke
User Rank
Blogger
Re:Chisel
Peter Clarke   9/17/2013 7:08:51 AM
NO RATINGS
Thanks for drawing attention to Chisel.

I wonder if it has an adherents in Europe.

It is interesting to note that VHDL was backed by the US DoD and ended up being widely adopted in Europe while the US leading-edge preferred Verilog.

Broad generalization I know but that was how I remember it

GSMD
User Rank
Manager
Re: An intermediate level of abstraction?
GSMD   9/17/2013 6:07:12 AM
NO RATINGS
Chisel from UC Berkeley would be a major open source competitor. Tools especially graphical are limited but its syntax is Scala so Scala editors and debuggers can be used.

US DoE is supporting it and most universities I know are switching to it so it should thrive.

<<   <   Page 2 / 3   >   >>


Flash Poll
EE Life
Frankenstein's Fix, Teardowns, Sideshows, Design Contests, Reader Content & More
Rishabh N. Mahajani, High School Senior and Future Engineer

Future Engineers: Don’t 'Trip Up' on Your College Road Trip
Rishabh N. Mahajani, High School Senior and Future Engineer
3 comments
A future engineer shares his impressions of a recent tour of top schools and offers advice on making the most of the time-honored tradition of the college road trip.

Max Maxfield

Juggling a Cornucopia of Projects
Max Maxfield
7 comments
I feel like I'm juggling a lot of hobby projects at the moment. The problem is that I can't juggle. Actually, that's not strictly true -- I can juggle ten fine china dinner plates, but ...

Larry Desjardin

Engineers Should Study Finance: 5 Reasons Why
Larry Desjardin
37 comments
I'm a big proponent of engineers learning financial basics. Why? Because engineers are making decisions all the time, in multiple ways. Having a good financial understanding guides these ...

Karen Field

July Cartoon Caption Contest: Let's Talk Some Trash
Karen Field
140 comments
Steve Jobs allegedly got his start by dumpster diving with the Computer Club at Homestead High in the early 1970s.

Top Comments of the Week
Like Us on Facebook
EE Times on Twitter
EE Times Twitter Feed

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)