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.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.