Lieber Meister des VHDL!
Nicht jeder ist so toll wie du! Ich habe leider nur diese Lösung
gefunden und würde sie gerne in VHDL umsetzen. Die Frage dazu war ob das
geht nicht ob ich mich gut auskenne oder ob Du besser bist als ich.
Würde ich in VHDL sehr erfahren sein würde ich nicht um Hilfe bitten.
Das ist absoluter Murksstil und nein es gibt keinen solchen Operator in
VHDL, aber man kann das ohne weiteres mit einem (einfach zu lesenderen)
if-Konstrukt bauen
BTW:
wenn du den triffst, der diesen Originalcode geschrieben hat, gratuliere
ihm zum trickreichsten, undurchsachulichsten Programmierstil, oder
(alternativ) gib ihm eine auf die Nase ;-)
EDIT:
Pech, Zweiter ... :-(
Naja, in a bzw b soll auch 1 bzw. -1 stehen. Das Ganze wird mit einem
Array durchgeführt. Ich werde also mit for... ein paar mal drübergehen.
Deshalb wollte ich das so machen. Ich fürchte mir wird nichts
übrigbleiben als vorher die Werte zuzuweisen und dann abzufragen.
Danke für die Hilfe
Ich glaube wenn ich meinen Chef schlage hat er mich nicht mehr lieb gg
Der Code geht über 4 A4 Seiten und ich versuche das in VHDL zu lösen.
Schwierig aber ich kann eine Menge lernen!!
> Naja, in a bzw b soll auch 1 bzw. -1 stehen.
Wird es aber nicht. Das Zwischenergebnis der Berechnung wird schon im
C-Code einfach verworfen. Sonst müsstest du schreiben:
1
if((a=(a>0?1:(-1)))!=(b=(b>0?1:(-1))))
> Ich werde also mit for... ein paar mal drübergehen.
In VHDL?
Du weißt schon, was eine for-Schleife in VHDL macht?
EDIT:
@ Entwickler:
Leider nur Dritter... :-o
Der schlimmste Fehler, den man mit VHDL machen kann, ist zu versuchen,
C-Code (oder Code einer beliebeigen anderen normalen Programmiersprache)
eins zu eins in VHDL umzusetzen!
Ganz besonders schlimm ist dieser Fehler als Anfänger, da man dann
gleich mit ner ganz falschen Sichtweise an das Thema VHDL ran geht.
Und urigerweise dauert es ziemlich lange, bis es demjenigen Anfänger
dann auffällt, dass er (bildlich gesprochen) mit 180 auf eine massive
Betonwand zudonnert :-o
Oha, eine For-Schleife aus C in in VHDL umsetzen. Lerne erst mal
Kombinatorik und denke in FlipFlops, dann lerne VHDL, dann versuch zu
verstehen, was der C Code macht und erst dann kannst du eine Hardware
mit VHDL beschrieben, die etwas ähnliches macht.
Das da
(a>0?1:(-1))!=((b>0?1:(-1)
ist =8-o
Das da
a>0?1:(-1)
geht zwar nicht in VHDL, dafür aber in Verilog, das die Syntax von
Ausdrücken im Wesentlichen von C geerbt (und erweitert) hat.
Du brauchst also dein Design nur nach Verilog zu portieren, dann kommst
du auch in den Genuss seiner im Vergleich zu VHDL deutlich knackigeren
Syntax ;-)
Schön wie man in diesem Forum gleich angegriffen wird. Wie schon einmal
gesagt, ich bin ein Anfänger. Wenn ich etwas dazulernen kann mache ich
das auch wenn ich dadurch viel Arbeit habe. Einige der anwesenden
Personen dürften mit perfektem VHDL Wissen auf die Welt gekommen sein
und verstehen das nicht.
Es tut mir leid, dass ich die Idee hatte mich an ein Forum zu wenden.
Keine Angst, ich werde das sicher nie wieder tun.
@Chris: Was soll ich Deiner Meinung nach machen? Meinem Chef sagen er
soll jemanden einstellen der das super kann wenn er mir die Chance gibt
es zu lernen?
Wie wäre es mal mit einem kleinen Wettewerb um die unleserlichste
Beschreibung in VHDL?
Am besten es gibt ein kleines Vorgabedesign, das bei gleicher
Funktionalität, möglichste undurchschaubar beschrieben werden soll. :)
Der Besucher
> Was soll ich Deiner Meinung nach machen?
Wurde dir schon gesagt:
Ein VHDL Grundlagenbuch holen und lesen und verstehen.
Erst begreifen, was VHDL ist, dann versuchen, etwas in VHDL zu
formulieren (und dann kontrollieren, welcher Murks dabei rauskommt).
Eines der ganz wichtigen Designziele bei VHDL war die eindeutige und
übersichtliche Beschreibung des Quelltextes allein schon "durch sich
selbst" - also die Syntax. Derartige Konstrukte aus dem Gruselkabinett
schlechter C-Programmierer sollen damit vermieden werden.
Im Übrigen schließe ich mich den Vorrednern an: Bitte mache Dir erstmal
klar, was der Unterschied zwischen Softwareprogrammierung und
Hardwarebeschreibung ist. Dann lösen sich auch solche Fragen ganz
schnell in Wohlgefallen auf. ;)
@ Gabriel
> Es tut mir leid, dass ich die Idee hatte mich an ein Forum zu wenden.> Keine Angst, ich werde das sicher nie wieder tun.
Es wird dir nicht helfen, wenn du wegen eines (deiner Meinung nach)
ruppigen Tons jetzt sagst: die sind doch doof, ich werde das schon
können.
Sieh dir mal deinen Original-Post an:
>>>> Ich kenne diesen Befehl nur aus C und würde ihn in VHDL benötigen.>>>> (a>0 ? 1:(-1))>>>> Gibt es so etwas??
Hätte damals einer vermuten können, worauf das Ganze rausläuft?
> Was soll ich Deiner Meinung nach machen? Meinem Chef sagen er> soll jemanden einstellen der das super kann wenn er mir die Chance> gibt es zu lernen?
Dann soll dich dein Chef auf ein entsprechendes VHDL-Seminar schicken.
Und auch nach diesem Seminar wirst du noch weit weg von der direkten
Umsetzung eines C-Codes auf eine VHDL-Beschreibung sein. Aber durch den
Kurs wirst du nicht an jedem kleinen Kiesel stolpern...
> Was soll ich Deiner Meinung nach machen?
Das kommt darauf an, welchen Zeitrahmen du hast...
> Was soll ich Deiner Meinung nach machen?
Das kommt darauf an, was du bisher gemacht hast...
Als grobe Zeitplanung:
wenn du bisher noch kein VHDL und kein FPGA verwendet hast, dann wirst
du frühestens zum ersten Schnee was Sinnvolles herausbekommen. Und wenn
die Blumen wieder blühen wirst du verstehen, was in der Hardware noch
klemmt...
Das solltest du deinem Chef auf jeden Fall klarmachen.
@ max (Gast)
> in c würde es wohl eher so ausschaun:
Leider nur Vierter ;-)
Habe mit meinem Chef gesprochen und er hat eingesehen, dass er einen
Fehler gemacht hat. Er wird einen Spezialisten holen und überlegt sich
wohin er mich gibt. Spätestens Montag erfahre ich ob ich noch einen Job
habe oder nicht.
Damit gehe ich Euch nicht mehr auf die Nerven.
Gabriel schrieb:
> Habe mit meinem Chef gesprochen und er hat eingesehen, dass er einen> Fehler gemacht hat. Er wird einen Spezialisten holen und überlegt sich> wohin er mich gibt.
Wenn du ungeschickt verhandelt hast, zur ARGE. Wenn du geschickt
verhandelt hast, zu PLC2 o.ä. zu einem VHDL Kurs, das nutzt allen.
Gabriel schrieb:
> Habe mit meinem Chef gesprochen und er hat eingesehen, dass er einen> Fehler gemacht hat.
Das ist mal nicht der schlechteste Chef. Manche sehen sowas nicht ein.
> Nein, er holt einen Spezialisten der meine Arbeit macht.
Hast du deinem Chef evtl. zuviel versprochen?
> Nein, er holt einen Spezialisten der meine Arbeit macht.
Sei doch ehrlich zu dir selbst:
du hättest (derzeit) die Arbeit doch gar nicht machen können.
> Nein, er holt einen Spezialisten der meine Arbeit macht.
Und das nur wegen ein paar Posts in einem Forum?
> Nein, er holt einen Spezialisten der meine Arbeit macht.
Falls der gut ist, und du noch lange genug in der Firma bist, kannst du
einiges lernen.
> Spätestens Montag erfahre ich ob ich noch einen Job habe oder nicht.
So, dann wäre ich, der ich meine Zeit darauf verwendet habe, dir helfen
zu wollen, mit Schuld daran, dass du auf der Strasse sitzt? Ist das
deine tiefe innere Überzeugung? Sind immer die Anderen schuld? Oh,
Mann...
> Ein XOR hätte es da auch getan.
Ja, das steht im C-Code schon da (ein != ist ein Exor)
Aber ich dachte, Christian wäre mehr geholfen, wenn er verstanden hätte,
was da eigentlich im C-Sourcecode dasteht.
Aber wie man sieht: Denken kann Fehlen... ;-)
@Gabriel:
10:32 - erstes Post
13:38 - Chef sucht jemand anders
Das alles in 3 Stunden!
In welchem Bundesland wird denn der "Spezialist" gesucht?
Die wachsen nämlich nicht auf Bäumen...
Kleiner Tipp:
Versuche doch erstmal alles etwas besonnener anzugehen. Dann bleibt dir
in Zukunft sowas erspart. Und bloß nicht alles gleich persönlich nehmen!
Der Besucher
Nachtrag:
Vielleicht liegt ja deine Stärke dadrin den eigentlichen Algorythmus aus
dem Programmcode zu extrahieren und in eine allgemeinere
Darstellungsform zu bringen. Das würde dem "VHDL-Spezialisten"
sicherlich ungemein helfen, da er eben auf VHDL und nicht auf C
spezialisiert ist.
Und deinem Chef hilft es auch, da dann die Umsetzung schneller von
statten geht. Nur mal so als kleiner Tipp.
Der Besucher
>Habe mit meinem Chef gesprochen und er hat eingesehen, dass er einen>Fehler gemacht hat. Er wird einen Spezialisten holen und überlegt sich>wohin er mich gibt. Spätestens Montag erfahre ich ob ich noch einen Job>habe oder nicht.>>Damit gehe ich Euch nicht mehr auf die Nerven.
Na super! Du sollst etwas aus C in eine HW umsetzen, hast keine Ahnung
wie das geht (ich rede hier nicht von VHDL oder Verilog, vorher musst du
erstmal begreifen 'wie' HW im Vergleich zu SW tickt!) und machst dann
den Leuten hier noch ein schlechtes Gewissen!
Und als Eingangspost schmeisst du ein einzelnes C-Statement in den Raum
und beschwerst dich ueber Loesungen/Tipps/Tricks die dir Leute geben,
die mit sowas tagtaeglich zu tun haben...
Kopfschuettel...