Jak krótko i zwięźle zapisać w VHDL'a np. coś takiego?:
Q<=a(0) or a(1) .......... or a(n);
Jak krótko i zwięźle zapisać w VHDL'a np. coś takiego?:
Q<=a(0) or a(1) .......... or a(n);
Jak chcesz "opisać" zwięźlej to może pętla for. Ale czy ma to jakieś znaczenie skoro syntetyzator i tak zrobi z tego kilka wielowejściowych ORów podłączonych do jednego ORa?
A konkretnie jak miałoby to wyglądać?
A jak się będę pier..lił w pisaninę a(0) or a(1) or a(2).... or a(n), to synteza będzie lepsza? Nie żartuj..
tmp:=0; for I in 0 to n loop tmp:=tmp or a(I); end loop;
Spróbuj chociażby dla 10-bitowego wektora i zobacz sam jakie będą efekty. IMHO to nie ma znaczenia, ale wszystko może zależeć od syntezatora - ostatnio się natknąłem na zupełne odmienne rozumienie tego samego kodu przed Synplify Pro i Lattice Synthesis Engine - ten drugi bez zająknięcia tworzy działającą logikę z warunkami if rising_edge zagnieżdżonymi jeden w drugim.
W dniu 30.06.2014 18:47, snipped-for-privacy@gmail.com pisze:
Dawno nie skrobałem w VHDL-u ale w Verilogu można to zapisać tak
reg [n:0] a;
Q = (a != n'b0); // nawias nie jest potrzebny ale jest czytelniej
Pozdrawiam Grzegorz
Ja robię na XST. Z czystej ciekawości sprawdzę/porównam co syntezator "wypluje". A tak w ogóle, to serdeczne dzięki za podpowiedź. Ja trochę stary pesel mam, przyzwyczajony do malowania drutów, ale widzę jednak w HDL'u DUUŻE plusy.
O ile nie jest to potrzaskany wzorem C/C++ , Verilog :))
P.S. Lubię porządek. Zapewnia to Pascal i VHDL.
Nie ma za co, ja dopiero niedawno zacząłem zabawę z VHDL i sam jeszcze nie do końca ogarniam niektóre jego zawiłości.
Jak przymierzałem się do układów FPGA to chciałem zacząć od Veriloga, ale promotor skutecznie zmusił mnie do VHDL ;)
Dlatego aplikacje na kompa piszę tylko w Pascalu :) C jest fajne na mikrokontrolery.
Have something to add? Share your thoughts — no account required.
Ask the community — no account required