Operacje na duuu?ych szynach - VHDL

Jun 30, 2014 6 Replies

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.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required