Verilog zu VHDL umwandeln

Gast #7005322
Lesenswert?
• ▲
▼
Moin Leude,

ich hab aktuell keine Möglichkeit hier zu Simulieren und hab nur ne 
kurze schnelle Frage wie folgender Code in VHDL aussehen würde:
1
test[1] <= &(varOne ~^ patt);
Ich hab das nun zu das geändert
1
if ((varOne xnor patt) = X"FF") then
2
     test(1) <= '1';
3
else
4
     test(1) <= '0';
5
end if;
Es ist in einem sequentiellen Block, varOne und patt sind beides 
std_ulogic_vector(7 downto 0);

Hab hier ein relativ großen Code vor mir liegen den ich übersetzen muss 
und bin grad auf Fehlersuche und das ist so der einzige Teil wo ich mir 
grad unsicher bin.

Gruß
Miauz
Moderator (Firma: Titel) Persönliche Seite #7005522
Lesenswert?
• ▲
▼
Miauz schrieb:
> bin grad auf Fehlersuche
Nach welchem Fehler denn?

> if ((varOne xnor patt) = X"FF") then
So viele Klammern. Ganz offensichtlich ein Programmierer, der FPGA 
machen muss  ;-)

> Es ist in einem sequentiellen Block
Dir ist das für Programmierer etwas "eigenartige" Verhalten von Signalen 
in einem Prozess bekannt und bewusst?

> &
VHDL 2008 hat unäre Versionen von AND, OR, NOR, NAND, XOR und XNOR. 
Damit kannst du einen Vektor ganz einfach reduzieren:
1
slbit <= AND slvect;

> if ((varOne xnor patt) = X"FF") then
Ich würde das nebenläufig machen, da ist doch keine Not für einen 
Prozess:
1
test(1) <= AND(varOne xnor patt);

Miauz schrieb:
> ne kurze schnelle Frage wie folgender Code in VHDL aussehen würde
Und jetzt kommt der eigentliche Witz: was macht denn der Code? Wann gibt 
er '1' zurück und wann '0'?
Ich habe so den Verdacht, dass das ein simpler Vergleich auf Gleichheit 
ist. Denn nach dem verXNORen der beiden Vektoren ist im resultierenden 
Vektor überall dort eine '1' , wo die beiden Vektoren gleich sind. Und 
wenn man das dann diesen Vektor bitweise verUNDet, dann kommt nur dann 
eine '1' raus, wenn alles gleich ist. Und damit reicht und ein simples 
und für jeden verständlicher Vergleich:
1
test(1) <= '1' when varOne = patt else '0';

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.