Forum: FPGA, VHDL & Co. Weiterentwicklung der Hardwarebrschreibungssprachen


von Klaus (Gast)


Lesenswert?

Hi!

Ich wollte mal fragen, ob es eigentlich schon irgendwelche Aktivitäten 
gibt, mit den Erfahrungen der letzten Jahre mit VHDL, Verilog etc. eine 
neue Hardwarebeschreibungssprache zu entwickeln.

So weit ich weiß wurde VHDL ja nicht unter dem Gesichtspunkt entwickelt, 
eine systhesefähige Beschreibungssprache zu sein. Vieles ließe sich 
vermutlich  im Nachhinein besser gestalten.

Es tauchen ja zum Beispiel in der Softwarewelt regelmäßig neue 
Programmiersprachen auf, mit neuen oder überarbeiteten Konzepten. Was 
tut sich denn neues in der Hardware-Sprachenwelt?

von user (Gast)


Lesenswert?

verilog wurde zur verification von logik entwickelt
vhdl wurde extra zur hardwarebeschreibung entwickelt und wird auch 
weiterentwickelt z.B. VHDL-2008

von T. M. (xgcfx)


Lesenswert?

wie wäre es mit SystemVerilog?

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Klaus schrieb:
> Es tauchen ja zum Beispiel in der Softwarewelt regelmäßig neue
> Programmiersprachen auf, mit neuen oder überarbeiteten Konzepten. Was
> tut sich denn neues in der Hardware-Sprachenwelt?

Die Hardwarebeschreibung selbst ist so ziemlich ausgereizt. Viel 
interessanter ist die Verifikation und in dem Bereich hat sich viel 
getan. Mit SystemVerilog wurde eine auf Verilog aufbauende Sprache 
geschaffen, die entsprechende Konstrukte beinhaltet:

- Assertions als echte Sprachkomponente
- Functional Coverage
- Objektorientierung
- Erzeugung von Zufallswerten (f. Objekte und Variablen) mithilfe eines
  Constraint Solvers
- Methodiken, um die Wiederverwendung zu verbessern

VHDL hat leider nicht den selben Rückhalt durch die Anwender und 
entwickelt sich daher langsamer.

Gruß
Marcus

von MaWin (Gast)


Lesenswert?

> VHDL hat leider nicht den selben Rückhalt durch die Anwender

VHDL ist akademischer Quatsch.

Das überwiegend in Europa gelehrte VHDL ist der Grund, warum Europa bei 
der Chipentwicklung im Hintertreffen ist.

Denn mit dem in den USA mehr genutzten VERILOG lässt sich besser sagen, 
was der Chip tun soll.

Ist wie ALGOL68 vs. C,
das eine ist eine akademische Sprache,
die andere praktisch verwendbar.

Alleine die typischen Missverständnisse beim Lehren von VHDL sind 
legendär.

Ja, es ist Zeit für eine neue Hardwarebeschreibungssprache die für den 
Zweck geschaffen wurde und einfach und simpel ist, und damit 
übersichtlichlich und leicht beherrschbar.

Nur kann die, im Gegensatz zu einer Programmiersprache, nicht einfach so 
ein Studi im Hinterzimmer bis zu der Serienreife bringen, mit der ein 
Chip entsteht.

Je länger es sich hinauszögert, um so mehr IP entsteht in "falschen" 
Sprachen.

von Kest (Gast)


Lesenswert?

MaWin schrieb:
> VHDL ist akademischer Quatsch.
>
> Das überwiegend in Europa gelehrte VHDL ist der Grund, warum Europa bei
> der Chipentwicklung im Hintertreffen ist.

selten so einen Quatsch gelesen

Kest

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

MaWin schrieb:
> VHDL ist akademischer Quatsch.
Naja, da würde ich aber handfestere Argumente hören wollen...

Es ist einfach so, dass Verilog mehr kann als die Synthesetools können, 
und VHDL sehr viel mehr kann, als je auf Hardware abgebildet werden 
könnte.

> Denn mit dem in den USA mehr genutzten VERILOG lässt sich besser sagen,
> was der Chip tun soll.
Da würde ich aber bestenfalls einen Gleichstand erwarten.
Nur ist VHDL ein wenig geschwätziger, dafür aber zum Glück sehr viel 
strenger bei der Typverwaltung.

> Denn mit dem in den USA mehr genutzten VERILOG lässt sich besser sagen,
> was der Chip tun soll.
Könnte das nicht eher so sein, dass Verilog einfach nur einen leichteren 
Einstieg bietet, und daher die Hemmschwelle für die Amerikaner niedriger 
liegt?

> Das überwiegend in Europa gelehrte VHDL ist der Grund, warum Europa bei
> der Chipentwicklung im Hintertreffen ist.
Ich möchte mal behaupten, dass auch aus den USA die letzte Zeit keine 
bahnbrechenden neuen Entwicklungen mehr gekommen sind...

von Malte (Gast)


Lesenswert?

MaWin schrieb:
> Ist wie ALGOL68 vs. C,
> das eine ist eine akademische Sprache,
> die andere praktisch verwendbar.

Wenn überhaupt ist das wie Ada und C.

von MaWin (Gast)


Lesenswert?

> Wenn überhaupt ist das wie Ada und C.

Wollte ich auch zuerst als Beispiel hernehmen,
weil es syntaxmässig erst so erscheint
aber ADA ist militärisch und damit gar nicht
vergleichbar mit VHDL, ALGO68 passt besser
zur akademischen Entstehungsgeschichte.

> und VHDL sehr viel mehr kann, als je auf Hardware abgebildet werden
> könnte.

Ähnlich Algol68: Die Sprache hat man formuliert,
einen Compiler für die ganze Sprache konnte man
nicht bauen.

> Nur ist VHDL ein wenig geschwätziger, dafür aber
> zum Glück sehr viel strenger bei der Typverwaltung.

VHDL erzwingt haufenweise inhaltlich eigentlich überflüssiger
Statements, und verschleiert damit was eigentlich geleistet
werden soll und macht es schwierig es zu erlernen. Künstlich
aufgeblasen ohne Sinn und Verstand nur in Selbstverliebtheit.

Akademisch heisst praktisch nicht verwendbar.

> Könnte das nicht eher so sein, dass Verilog einfach nur
> einen leichteren Einstieg bietet, und daher die Hemmschwelle
> für die Amerikaner niedriger liegt?

Sicher. Und ?

> Ich möchte mal behaupten, dass auch aus den USA die letzte
> Zeit keine bahnbrechenden neuen Entwicklungen mehr gekommen
> sind

Das meiste kommt inzwischen wohl aus Asien, auch mit VERILOG,
nicht unbedingt bahnbrechend, aber die Leute kloppen
ruck-zuck die Chips zusammen die man so braucht um günstig
Massenartikel produzieren zu können, z.B. DSL-Router wo der
Chip eine ganzes Linux-System integriert. Ich glaube aber,
daß viele Grundlagen dazu aus den USA kommen, beispielsweise
so was wie STBx25xx Digital Set-Top Box Integrated Controller.
Und womit entstehen die wöchentlich neuen AVRs/PICs ?

von hanna (Gast)


Lesenswert?

Es wird wirklich langsam Zeit, das endlich natürlichsprachiges
Deutsch als Hardwarebeschreibungssprache eingeführt wird! ;-)

Warum?

1.) chip in Nullkraftfassung stecken
2.) Eingeben:
1
"ich brauche ne anständige Abhöranlage
2
für Herrn Rieger, die selbstjustierend ist und den CCC 
3
in allen Datenkanälen transparent macht"

3.) Das Kompillat in den Chip brennen
4.) Freuen.

Das ist Innovation!
So macht FPGA Spass!


die Troll-hanna.

von Harald F. (hfl)


Lesenswert?

Hallo *,

vielleicht kommen wir nochmal zur Ausgangsfrage zurück. Ich zitiere:

...  ob es eigentlich schon irgendwelche Aktivitäten gibt, mit den 
Erfahrungen der letzten Jahre mit VHDL, Verilog etc. eine neue 
Hardwarebeschreibungssprache zu entwickeln ... ... regelmäßig neue 
Programmiersprachen auf, mit neuen oder überarbeiteten Konzepten. Was 
tut sich denn neues in der Hardware-Sprachenwelt?

Fakt ist, dass die beiden verbliebenen Sprachen zur Modellierung von 
Hardware nebeneinander her bestehen und auch weiter entwickelt werden. 
Ich persönlich finde das gut so. So hat meines Erachtens Verilog-2001 
sehr von VHDL profitiert. Allein die Existenz der beiden Sprachen 
verhindert Stillstand. Stellt euch vor, es gäbe nur Xilinx. Oder nur 
Pepsi.

Im übrigen schlage ich mich auf die Seite von Marcus: Die 
Hardwarebeschreibung selbst ist so ziemlich ausgereizt. Der Zauber liegt 
in der Erstellung/Benutzung fertiger Komponenten und in der 
Verifikation. Das hat mit der Sprache nichts zu tun, eher mit 
Entwurfsmethodik. Um die scheint es mit allerdings recht schlecht 
bestellt zu sein in der breiten Masse der FPGA-Desgner. Ich schätze den 
Anteil der FPGA-Designs, für die eine einigermaßen vollständige und 
selbstestende Testbench vorliegt, auf unter 25%. Ein Jammer!

So wäre denn meine Antwort auf die Ausgangsfrage: Die existierenden 
Sprachen werden in gewissem Maß weiter entwickelt, ein komplett neuer 
Ansatz ist mir nicht bekannt, und ich persönlich halte ich auch nicht 
für nötig.

Grüße,
Harald

von Mathi (Gast)


Lesenswert?

MaWin schrieb:
> ADA ist militärisch und damit gar nicht
> vergleichbar mit VHDL

VHDL ist ein "militärisches" Produkt. Es wurde im Rahmen des 
VHSIC-Programms, gefördert durch das DoD entwickelt und basiert in der 
Tat auf Ada.

MaWin schrieb:
>> Könnte das nicht eher so sein, dass Verilog einfach nur
>> einen leichteren Einstieg bietet, und daher die Hemmschwelle
>> für die Amerikaner niedriger liegt?
>
> Sicher. Und ?

Falsch. Zumindest historisch. Hinter Verilog standed schon immer Firmen. 
Der Entwickler von Verilog wurde dann von Cadence gekauft. Und die haben 
es dann mit Ihrer Marktmacht durchgedrückt. Das sieht man auch heute 
noch: die Cadence Tools unterstützen VHDL eher stiefmütterlich :-(

von Mathi (Gast)


Lesenswert?

MaWin schrieb:
>> Nur ist VHDL ein wenig geschwätziger, dafür aber
>> zum Glück sehr viel strenger bei der Typverwaltung.
>
> VHDL erzwingt haufenweise inhaltlich eigentlich überflüssiger
> Statements, und verschleiert damit was eigentlich geleistet
> werden soll und macht es schwierig es zu erlernen. Künstlich
> aufgeblasen ohne Sinn und Verstand nur in Selbstverliebtheit.

Ach ja. Der Grund dafür liegt in der Anforderung für die Entwicklung von 
VHDL. Der Benutzer sollte gezwungen werden vernünftig lesbaren Code zu 
schreiben.

von MaWin (Gast)


Lesenswert?

> Der Benutzer sollte gezwungen werden vernünftig lesbaren Code zu
> schreiben.

Tja ja, die Arroganz der überheblichen Akademiker eben.

Die müssen ja nicht selbst damit produktiv sein,
dafür hat man "Fussvolk".

Die Akademiker glauben aber, dem dem Rest der Welt vorschreiben
zu können,
daß Baubeschreibungen in bester deutscher Lyrik in Versform,
abzuliefern sind.

So viel Arroganz geht halt in die Hose,
hat man bei Algol68 (und Ada, falls jemand will) schon gesehen.

von Klaus F. (kfalser)


Lesenswert?

MaWin schrieb:
>> Der Benutzer sollte gezwungen werden vernünftig lesbaren Code zu
>> schreiben.
>
> Tja ja, die Arroganz der überheblichen Akademiker eben.
>
> Die müssen ja nicht selbst damit produktiv sein,
> dafür hat man "Fussvolk".
>
> Die Akademiker glauben aber, dem dem Rest der Welt vorschreiben
> zu können,
> daß Baubeschreibungen in bester deutscher Lyrik in Versform,
> abzuliefern sind.
>
> So viel Arroganz geht halt in die Hose,
> hat man bei Algol68 (und Ada, falls jemand will) schon gesehen.

Naja, an Arroganz kann man sich bei Dir auch ein Beispiel nehmen.
Wieviel hast Du schon von der FPGA Welt gesehen, dass Du Dir so 
pauschale und unsinnige Urteile erlauben kannst?

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Mathi schrieb:
> Das sieht man auch heute noch: die Cadence Tools unterstützen VHDL eher
> stiefmütterlich :-(

Ich behaupte, dass die meisten Toolhersteller VHDL (im Vergleich zu 
Verilog) eher stiefmütterlich unterstützen. Ein ganz verständlicher, 
opportunistischer Ansatz, der sich in der Nachfrage begründet. Viele IP 
Blöcke werden heutzutage nur noch in Verilog angeboten.

Ich sehe die Teilung in beide Welten übrigens heute nicht mehr 
vorranging in der Geografie. Vielmehr scheint sich die Trennlinie 
zwischen FPGA und ASIC zu befinden, wobei in letzterem Bereich 
hauptsächlich (System)Verilog eingesetzt wird.

--
Marcus

von berndl (Gast)


Lesenswert?

Marcus Harnisch schrieb:
> Ich behaupte, dass die meisten Toolhersteller VHDL (im Vergleich zu
> Verilog) eher stiefmütterlich unterstützen. Ein ganz verständlicher,
> opportunistischer Ansatz, der sich in der Nachfrage begründet. Viele IP
> Blöcke werden heutzutage nur noch in Verilog angeboten.
>
> Ich sehe die Teilung in beide Welten übrigens heute nicht mehr
> vorranging in der Geografie. Vielmehr scheint sich die Trennlinie
> zwischen FPGA und ASIC zu befinden, wobei in letzterem Bereich
> hauptsächlich (System)Verilog eingesetzt wird.

hmmm, jetzt mal Stand von vor ca. 7 Jahren: Witzig, dass sowohl IBM als 
auch Intel einen auf VHDL machen... (IBM im Grossrechnerbereich, Intel 
im I/O-Chip Bereich, eigene Erfahrung...)

von Alfredo (Gast)


Lesenswert?

> Ich möchte mal behaupten, dass auch aus den USA die letzte Zeit keine
> bahnbrechenden neuen Entwicklungen mehr gekommen sind...

Da drängt sich doch die Frage auf, was verwenden den die Chinesen?

Haben die bereits ihre "eigene VHDL" oder was?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alfredo schrieb:
> ihre "eigene VHDL"
Das hieße dann nur HDL = Hardware Description Language.
Verilog ist eine HDL, und VHDL ist ebenfalls eine HDL.

von Martin S. (strubi)


Lesenswert?

Moin,

mir scheint, dass gerade in China noch ziemlich "low level" gearbeitet 
wird, meine Vermutung geht in Richtung VHDL. Ist halt ein Unterschied, 
wenn 10 gutdotierte VHDL-Programmierer fuer den Lohn eines Deutschen 
arbeiten.
Zudem wird wohl viel an IP-Cores eingekauft oder einfach bei OpenCores 
gemopst und aufgebohrt, in punkto GPL nehmen es viele grosse Firmen ja 
nicht so genau.

Die Diskussion Verilog vs VHDL ist IMHO relativ aehnlich sinnlos wie 
"Ist die Assemblersprache des PowerPC besser als i86?"
Wer sich komplexere Sachen backen will und sich an der Geschwaetzigkeit 
von VHDL aufreibt, muss halt hingehen, und sich seine Synthese-Scripte 
selber entwickeln, oder sie einkaufen. Gibt schliesslich genug 
Nischenloesungen am Markt.
Gerade bei Hardwaresprachen begruesse ich es eigentlich, dass sich die 
Low-Level-Sprache ueber die Jahre nicht allzu sehr aendert - auch wenn 
sie sich so 'besch....' liest wie Pascal (dafür gibt's bestimmt wieder 
Schelte).

Gruesse,

- Strubi

von bko (Gast)


Lesenswert?

Der Streit erinnert mich an etwas da mach ich mal einen
>Guttenberg< aus der Wikipedia zu:
Big-Endian und Little-Endian - Etymologie:

>Die Bezeichnungen gehen auf den satirischen Roman Gullivers Reisen von >Jonathan 
Swift zurück, in dem die Bewohner des Landes Liliput in zwei >verfeindeten Gruppen 
leben: Die einen schlagen ihre Eier am dicken, >„großen“, englisch „big“, Ende auf 
und werden deshalb als Big Ender >bezeichnet, während die Little Ender die Eier am 
spitzen, „kleinen“, >englisch „little“ Ende öffnen

von gnihihihi (Gast)


Lesenswert?

für testbenches wird systemc gerne genutzt, zur beschreibung eines DUT 
während der mixed signal verifikation vermehrt vhdl-ams.. macht spaß 
beides :)

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?


von IdeeIdee (Gast)


Lesenswert?

http://myhdl.org
Kurzfassung: Setzt Python-Code in vhdl oder verilog um, ob es taugt, 
k.A. Bin nur gerade drauf gestoßen und habe dann diesen Thread hier 
gelesen.

von Georg A. (Gast)


Lesenswert?

Ich versteh den Hype um myhdl nicht. Mal davon abgesehen, dass die API 
alles andere als stabil ist, ist das ganze eine ziemliche 
Python-Vergewaltigung.

Die eine Hälfte des Codes wird wild "rumgecastet", damit Signale und die 
neuen Typen irgendwie in Python funktionieren. Dagegen sind die 
VHDL-Issues mit signed/integer/etc harmlos.

Die andere Hälfte ist die Emulation der üblichen Simulationsmethoden 
(Erzeugung von "unterbrechbaren" Objekten und Aufruf der Objekte).

No Sir, I don't like it...

von Jan Decaluwe (Gast)


Lesenswert?

It is true that MyHDL is an evolving language. What is wrong with that? 
Do you prefer the VHDL status quo? Anyway, calling it "anything but 
stable" is just not true. Backwards compatiblity is treated quite 
seriously.

What is wrong with creating objects that work "somewhere in Python"? 
That's how Python is used, right? The question is whether such objects 
make sense. And I strongly believe MyHDL's intbv makes much more sense 
than VHDL's unsigned/signed.

Finally, it is true that Python features are used to emulate typical 
hardware simulation semantics. Again, what is wrong with that? It means 
that MyHDL is pure Python package that works together with any other 
Python library. What HDL gives you such power?

It's up to you what you like or don't like, but I don't find your 
arguments very impressive.

Jan Decaluwe

von Georg A. (Gast)


Lesenswert?

My arguments are not supposed to impress anybody, they simply reflect my 
impressions about MyHDL. I don't think that it tackles the HW/model 
abstraction at the right point, but YMMV.

von Jan Decaluwe (Gast)


Lesenswert?

Ok. So after an alledged unstable API (wrong), critique on the use of 
Python objects (meaningless) and on the use of Python features to 
emulate hardware simulation (doubtful), now you come with one more 
"argument". It really seems you are shooting in the wild.

MyHDL doesn't handle the gate level, but it handles the RTL and beyond 
very well. This is similar to VHDL and SystemVerilog, with the obvious 
difference that you have access to the power of a super high level 
general purpose language, and all of that for free.

von Georg A. (Gast)


Lesenswert?

Yep, I'm talking bullshit on purpose and MyHDL is the best thing that 
happened to mankind since sliced bread.

OMG.

von Jan Decaluwe (Gast)


Lesenswert?

Georg A. schrieb:
> Yep, I'm talking bullshit

Correct.

> on purpose

I hope not. My guess is that it was just some cheap talk behind a 
perceived language barrier.

> MyHDL is the best thing that
> happened to mankind since sliced bread.

Certainly not: it has several deficiencies (like anything man-made). But 
apparently you don't have a clue about where they really are. Until you 
do, please stop spreading FUD.

von Klaus (Gast)


Lesenswert?

Jan Decaluwe schrieb:
> Until you
> do, please stop spreading FUD.

Are you the invetor of myHDL?

von Duke Scarring (Gast)


Lesenswert?

I'm a user of vhdl and python. The concept behind python is clear to me 
and the concept of vhdl is clear to me (after a steep learning curve).
I like both languages.

I take a look at myhdl a while ago, but I didn't see the concept. I got 
no approach to it...

Duke

von Jan Decaluwe (Gast)


Lesenswert?

Klaus schrieb:
> Jan Decaluwe schrieb:
>> Until you
>> do, please stop spreading FUD.
>
> Are you the invetor of myHDL?

Yes.

von Jan Decaluwe (Gast)


Lesenswert?

Duke Scarring schrieb:
> I'm a user of vhdl and python. The concept behind python is clear to me
> and the concept of vhdl is clear to me (after a steep learning curve).
> I like both languages.
>
> I take a look at myhdl a while ago, but I didn't see the concept. I got
> no approach to it...

That is fine. If you are happy with your design environment as it is, no 
need to worry about changing it.

For the record: I am a big fan of VHDL. I have co-founded a VHDL design 
services company in 1991, and I am currently involved in a VHDL IDE 
startup (Sigasi). I owe a lot to VHDL professionally.

My main problem with HDLs is not the languages, but the (low-level) way 
they are used. I see Verilog and its confusing foundations as the main 
culprit here. In that sense, MyHDL is an attempt to design an HDL which 
is "easy" to use like Verilog, but with strong foundations like VHDL. 
For example, MyHDL has delta-cycles, and a separate Signal concept.

von Duke Scarring (Gast)


Lesenswert?

Jan Decaluwe schrieb:
> My main problem with HDLs is not the languages, but the (low-level) way
> they are used.
Ok. I use VHDL with records, functions and arrays for a high abstraction 
level.

In my opinion, a higher abstraction level is possible with a kind of IP 
blocks with handshakes (for timing) and variable ports (for flexible 
data structures [that's what I use records for]).

In a normal language there is no real timing behaviour on variables. But 
in hardware this is essential. Data signals can be used in parallel or 
sequential. And also some hardware units can be used in a mix of them 
(think on digital filters which work with much lower frequency than the 
system clock).

> For example, MyHDL has delta-cycles, and a separate Signal concept.
I honour your efforts, but it's necessary to put all these 
considerations above in a language/concept/whatever that is easy enough 
to understand so that it is employable.

Duke

von Jan Decaluwe (Gast)


Lesenswert?

Duke Scarring schrieb:
> Jan Decaluwe schrieb:
>> My main problem with HDLs is not the languages, but the (low-level) way
>> they are used.
> Ok. I use VHDL with records, functions and arrays for a high abstraction
> level.

Excellent.

However, in my experience designers like you are a small minority, which 
means that HDL design is not living up to its potential.

Let me give you an example. The most important IP company is probably 
ARM. They use Verilog exclusively and they have a set of 
recommendations. One of these (take a seat) is that you shouldn't use 
'if' statements in RTL code.

http://infocenter.arm.com/help/topic/com.arm.doc.arp0009a/Verilog_X_Bugs.pdf

Those are the kind of stupid ideas which are common in the HDL design 
world and that I'm fighting against in the first place.

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Jan Decaluwe schrieb:
> The most important IP company is probably ARM. They use Verilog
> exclusively and they have a set of recommendations. One of these
> (take a seat) is that you shouldn't use 'if' statements in RTL code.

I don't know where you got this from. X-propagation (or rather the
lack thereof) is a real issue. The guidelines merely suggest
appropriate workarounds in different cases. There is no statement
saying you shouldn't use if-statements at all.

Since you are participating already, would you care sharing how MyHDL
addresses this issue?

In any case, the main obstacle preventing large scale deployment is
that MyHDL has no backing by EDA vendors. As discussed earlier, even
VHDL has a difficult stand.

I am afraid that the entire argument in this thread about the quality
of MyHDL (which I haven't looked into) is moot, since MyHDL will very
likely be limited to a rather small niche for the forseeable
future. It doesn't help, of course, that MyHDL is a one-man-show.

Cheers
Marcus

von Jan Decaluwe (Gast)


Lesenswert?

Marcus Harnisch schrieb:
> Jan Decaluwe schrieb:
>> The most important IP company is probably ARM. They use Verilog
>> exclusively and they have a set of recommendations. One of these
>> (take a seat) is that you shouldn't use 'if' statements in RTL code.
>
> I don't know where you got this from. X-propagation (or rather the
> lack thereof) is a real issue. The guidelines merely suggest
> appropriate workarounds in different cases. There is no statement
> saying you shouldn't use if-statements at all.

There sure is. It's recommendation 9. From the paper:

"""
Recommendation 9: Avoid using if statements, as they optimistically 
interpret X’s. Instead use ternary (i.e. conditional ?) operators or 
priority-encoded case statements
"""

I hope I don't need to convince you that the workarounds with ternary 
operators or case statements are completely inappropriate for 
well-written RTL at a decent level of abstraction.

> Since you are participating already, would you care sharing how MyHDL
> addresses this issue?

My pleasure. X is essentially a gate-level abstraction. Even at that 
level, its value is rather doubtful. No one has ever observed it in real 
hardware. As minimum, there should have been a notX value that is the 
logical opposite of X.

At the RTL level and higher (MyHDL's playground), X simply has no value 
and no place. That is what the authors of the ARM paper should have 
concluded instead of their absurd recommendation. It is also what VHDL 
desigers that are using boolean, integer and enumeration types in their 
RTL code understand very well.

MyHDL is doing just fine without X.

von Jan Decaluwe (Gast)


Lesenswert?

Marcus Harnisch schrieb:

>
> In any case, the main obstacle preventing large scale deployment is
> that MyHDL has no backing by EDA vendors.

MyHDL is an open-source project. Most of its code is devoted to play 
well with existing standard flows (by conversion). Why would big EDA 
ever be interested? (i.e. what would they charge for?)

More importantly, why would we need them? Big EDA is mainly talking to 
an ever decreasing number of ASIC designers (with lots of money to 
spend, that is true). That doesn't sound like "large scale deployment" 
to me.

My vision for digital hardware design is agile design techniques on 
programmable platforms. Large scale deployment to me means FPGA 
designers today and more general embedded software designers in the 
future. If that doesn't happen, I'm not really interested. But if it 
does happen, I believe solutions like MyHDL are in a sense unavoidable. 
Large scale deployment will come from users that like the features and 
the price.

Of course, if it happens, it will not be overnight. But I believe time 
and Gordon Moore are on our side.

> I am afraid that the entire argument in this thread about the quality
> of MyHDL (which I haven't looked into) is moot,

For the record: regarding MyHDL I am very proud on the concept, 
reasonably satisfied with the interface, but not necessarily that proud 
on the current implementation.

> since MyHDL will very
> likely be limited to a rather small niche for the forseeable
> future. It doesn't help, of course, that MyHDL is a one-man-show.

That perception has come up a few times already and I used to be 
concerned about it. But thinking about it, is it really a problem? It 
seems to me that successful projects are often linked to one person, 
even when there are obviously a lot of others making significant 
contributions (like in the MyHDL project, thank you all!) Somehow it 
seems to give projects an identity.

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Jan Decaluwe schrieb:
> Marcus Harnisch schrieb:
>> There is no statement saying you shouldn't use if-statements at
>> all.
>
> There sure is. It's recommendation 9. From the paper:
>
> """
> Recommendation 9: Avoid using if statements, as they optimistically
> interpret X’s. Instead use ternary (i.e. conditional ?) operators or
> priority-encoded case statements
> """

Which is just a condensed form of this more elaborate rationale
1
1.  For if statements: 
2
a)  Never use if statements in combinatorial logic (use case or ternary ? instead) 
3
b)  Only use if statements for sequential elements (e.g. flip-flop with asynchronous reset) 
4
c)  Add X-checking assertions to a clock-gating enables in sequential
5
    logic, e.g. if (enable)
And other statements scattered across the document.

> MyHDL is doing just fine without X.

So you will end up with essentially a 2-state simulation? Sorry for my
ignorance, but I have no time ATM to check out MyHDL.

That is easy enough to get with VHDL, and more recently (only six
years) with SystemVerilog. Some commercial simulators, such as VCS,
provide switches to perform 2-state simulation. Not sure if this is
always better, though. Easier, yes.

Jan Decaluwe schrieb:
> Why would big EDA ever be interested [in MyHDL]?

That's my point. They wouldn't.

> For the record: regarding MyHDL I am very proud on the concept,
> reasonably satisfied with the interface, but not necessarily that
> proud on the current implementation.

I am sure there is a lot in it to to be proud of. And I had no
intention to rain into your parade.

Kindly
Marcus

von Jan Decaluwe (Gast)


Lesenswert?

Marcus Harnisch schrieb:
> Jan Decaluwe schrieb:
>> Marcus Harnisch schrieb:
>>> There is no statement saying you shouldn't use if-statements at
>>> all.
>>
>> There sure is. It's recommendation 9. From the paper:
>>
>> """
>> Recommendation 9: Avoid using if statements, as they optimistically
>> interpret X’s. Instead use ternary (i.e. conditional ?) operators or
>> priority-encoded case statements
>> """
>
> Which is just a condensed form of this more elaborate rationale1.  For if 
statements:
> a)  Never use if statements in combinatorial logic (use case or ternary ? 
instead)
> b)  Only use if statements for sequential elements (e.g. flip-flop with 
asynchronous reset)
> c)  Add X-checking assertions to a clock-gating enables in sequential
>     logic, e.g. if (enable)

And that really means: don't use if statements to describe logic (either 
within a
combinatorial or a sequential process.)

I invite all VHDL designers, expecially those concerned with higher 
abstraction
levels, to consider what such a rule would mean for their code.

Morever, I repeat that if one takes this seriously, the logical 
consequence
would be to ban types that don't model an initialized state, such as
booleans, state enums and integers.  Obviously such types interprete
an initialized state (at the gate level after synthesis) optimistically!

>> MyHDL is doing just fine without X.
>
> So you will end up with essentially a 2-state simulation? Sorry for my
> ignorance, but I have no time ATM to check out MyHDL.

As MyHDL is really not targetting the gate level, I never think about it
like that. Objects have a number of states (finite for synthesizable 
logic)
but not one that models the 'uninitialized' state. However, there is
an object that reuses Python's 'None' value to model tristates.

von Jan Decaluwe (Gast)


Lesenswert?

Jan Decaluwe schrieb:

> Morever, I repeat that if one takes this seriously, the logical
> consequence
> would be to ban types that don't model an initialized state, such as
> booleans, state enums and integers.  Obviously such types interprete
> an initialized state (at the gate level after synthesis) optimistically!

I meant "uninitialized state" here (2x), sorry for posting too fast.

von Jan Decaluwe (Gast)


Lesenswert?

Marcus Harnisch schrieb:
> Jan Decaluwe schrieb:
>> Why would big EDA ever be interested [in MyHDL]?
>
> That's my point. They wouldn't.

Sorry, but your point was that the lack of backing by big EDA would be 
the main obstacle to large scale deployment. My point is that that will 
not matter.

A good role model is matlab. It may be one of most popular "EDA" tools, 
yet that happened completely outside the scope of "big EDA". They 
started from a true general purpose tool (with an appropriate business 
model and price), and gradually add more domain-specific tools, e.g. for 
hardware design.

Likewise, Python is a general purpose language that many companies may 
be using anyway. At some point, some (probably young and naive) hardware 
designer that likes Python may wonder why she can't stay in the Python 
environment for her design work. That is my target public.

(I know that there are "big EDA" tools now that claim matlab support. 
But my point stays valid: that has certainly not been a factor for 
matlab's large scale adoption.)

von Georg A. (Gast)


Lesenswert?

I gave me a few days to think about a correct response to Jan's 
postings...

> But apparently you don't have a clue about where they really are.

Maybe. After 18 years FPGA-fiddling, 16 years of VHDL and some 10k units 
of my FPGA designs in the consumer market it really looks like I'm 
unable to grasp what the intentions and (dis)advantages of MyHDL are.

> Until you do, please stop spreading FUD.

Before your arrogant posting, I simply ignored MyHDL based on my 
experiences (and they were in my first posting, I struggled with a 
changed API while working on some 3rd-party MyHDL-code, and wondered 
about the integer and simulation handling).

But I guess it's now time to start some real FUD. I will begin in the 
next weeks, ~200 students are waiting to hear something about HDLs.

EOD for me.

von Jan Decaluwe (Gast)


Lesenswert?

Georg A. schrieb:
> I gave me a few days to think about a correct response to Jan's
> postings...
>
>> But apparently you don't have a clue about where they really are.
>
> Maybe. After 18 years FPGA-fiddling, 16 years of VHDL and some 10k units
> of my FPGA designs in the consumer market it really looks like I'm
> unable to grasp what the intentions and (dis)advantages of MyHDL are.

That is possible, but I certainly have not said that or meant to say it. 
I have merely complained about the lack of arguments and facts (I still 
do), and suggested to try a little harder before making judgements.

>> Until you do, please stop spreading FUD.
>
> Before your arrogant posting, I simply ignored MyHDL based on my
> experiences (and they were in my first posting, I struggled with a
> changed API while working on some 3rd-party MyHDL-code, and wondered
> about the integer and simulation handling).

Next time, consider asking help on the MyHDL newsgroup. Some initial 
struggling is natural with anything worth learning. You didn't learn 
VHDL overnight either.

> But I guess it's now time to start some real FUD. I will begin in the
> next weeks, ~200 students are waiting to hear something about HDLs.

So you are going to use your position as an educator to spread FUD among 
your students. That's definitely an interesting interpretation of a 
"correct response".

Thanks, but I'll stick to my own standards: back up strong claims with 
arguments or facts, don't use argumentation from authority, and reveal 
my full identity.

> EOD for me.

According to my standards, there never was a discussion in the first 
place.

von Jan Decaluwe (Gast)


Lesenswert?

Georg A. schrieb:

> Before your arrogant posting, I simply ignored MyHDL based on my
> experiences (and they were in my first posting, I struggled with a
> changed API while working on some 3rd-party MyHDL-code, and wondered
> about the integer and simulation handling).

Coming back to the subject of changed APIs, I would like to dispute the 
fact that they are inherently bad, as is being suggested here.

Within reason, an API change may be a good sign, indicating that the 
language designers are willing to improve things or fix problems. The 
problem then is with the people are not willing to stay current.

Let me give an extreme example from the VHDL world. Some 20 years ago, a 
vendor committed a crime against VHDL by compiling its proprietary 
std_logic_arith package into the IEEE library, creating the illusion of 
a standard package. Of course, due to vendor games, incompatible 
versions of that package popped up, creating an enormous confusion. 
Finally, in 1995, the problem was fixed when the IEEE standardized 
numeric_std, a package with the different interface.

Obviously, the change was for the better, even absolutely necessary, and 
everyone should have adopted it immediately.

However, to this day, 16 (sixteen!) years later, many VHDL teachers 
still use the old package in their courses and course material. They are 
either too lazy to make the change, or too incompetent to understand why 
it is necessary. And we, practicing VHDL engineers, continually have to 
clean up the mess behind them.

http://stackoverflow.com/questions/6155675/when-should-i-use-std-logic-vector-and-when-should-i-use-other-data-types

Jan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.