Moment, znacznei latwiej zrozumiec przeplywy sygnalow na schemacie blokowym niz w postaci tekstu programu. Jak dla mnie nie ma tu zadnej dyskusji. Tekst latwiej edytowac, komentowac, szybciej sie go pisze. W mojej firmie 99% modulow to AHDL. Powstalo raptem kilka schematow i to tylko ze wzgledu na uwarunkowania zewnetrzne.
Marcin E Hamerla wrote on Tue, 04 Jan 2005 09:19:36 +0100:
Nic z tych rzeczy. Dotykamy tutaj problemu projektowanie/synteza behawioralna czy RT/gate level. Stosując graficzny opis projektu jesteś skazany na RTL/gate level: składasz projekt z funktorów, przerzutników i/lub bardziej złożonych elementów (multipleksery, sumatory itp). Stosując opis tekstowy masz wybór: możesz stosować podejście behawioralne (zwięzły i przejrzysty opis tekstowy, oddający funkcjonalność projektu bez wniakania w szczegóły) lub RT/gate level (opis rozwlekły, w zasadzie taki schemat zapisany w formie tekstowej). Jak dotąd wystarcza mi podejście behawioralne. Oczywiście nic nie jest za darmo, i na podstawie opisu behawioralnego syntezer wygeneruje gorszy "kod", tzn. taki który wymaga więcej zasobów w PLD. Jest to sytuacja analogiczna do problemu assembler czy jezyk wysokiego poziomu w przypadku programowania uC.
Ja nie jestem mocny z teorii i nie rozumiem roznicy. I w jednym i w drugim podejsciu tworzysz rownania korzystajac z negatorow / ANDow / ORow / XORow / itd. Czy wezmiesz ANDa z biblioteki czy wstawisz & wyjdzie na to samo. Rysujac schemat robisz strukture hierarchiczna taka jak w HDL. Spotkalem sie z opiniami, ze najlepsza metoda projektowania PLD jest robienie blokow niskiego poziomu w HDL, a top_level jako schemat. Wtedy masz samodokumnetujacy sie projekt. Ale u mnie robimy wszystko w HDL - wieksza wygoda.
Chodzi o to że stosując opis tekstowy w HDL możesz używać podejścia behawioralnego, czego nie możesz zrobić przy rysując schemat. Poniżej masz przykład 11 bitowego rejestru przesuwającego w VHDL-u. Nie musisz męczyć się malowaniem 11 przerzutników w schematorze albo opisem tekstowym przy podejściu "gate level synthesis" ponieważ syntezer wygeneruje za Ciebie 11 odpowiednio połączonych przerzutników. W sam raz shiftery są w bibliotekach schematorów chyba wszystkich narzędzi do projektowania PLD, ale można sobie przecież wyobrazić jakiś mniej standartowy element. Ponadto poniższy opis jest niezależny od narzędzia/docelowego układu.
entity shift_reg is port( I: in std_logic; clock: in std_logic; shift: in std_logic; Q: out std_logic ); end shift_reg;
architecture shift_reg_arch of shift_reg is
-- initialize the declared signal signal S: std_logic_vector(10 downto 0):="11111111111";
begin process(I, clock, shift, S) begin
-- everything happens upon the clock changing if clock'event and clock='1' then if shift = '1' then S <= I & S(10 downto 1); end if; end if;
end process; -- concurrent assignment Q <= S(0);
end shift_reg_arch;
To ma swoje zalety, ale szczerze mówiąc nie jestem w pełni przekonany czy jako top level lepszy jest schemat czy plik tekstowy. Mam jeszcze za mało doświadczenia.
No i macie przynajmniej spójne źródła. Tzn. wszystko zapisane w ten sam sposób w plikach tego samego typu. I to jest IMO duży plus. Problem w tym że stworzenie pliku "top level" jest IMO bardzie upierdliwe niż namalowanie kilku(nastu/dziesięciu) odpowiednio połączonych prostokątów. Prznajmniej w VHDL-u.
No można, ale czy taka wielopoziomowa dekompozycja pozwoli szybciej osiągnąć założony cel? IMO, póki co, nie. A stosowanie opisu behawioralnego pozwala ograniczyć do minimum grzebanie się w szczegółach implementacji, a więc szybsze efektu końcowego.
No właśnie, gdy takowe powstaną. :-) Ja przynajmniej o takich narzędziach jeszcze nie słyszałem. Chociaż początki już są - diagramy stanów można już sobie malować - vide StateCAD w Webpacku.
Wydaje mi sie, ze to moze miec znaczenie w duzych firmach, gdzie wiecej niz jedna osoba musi sie zajmowac danym projektem. W malej firmie to nie musi byc az tak istotne. Ja sie staram wszystko w mojej firmie, malej przeciez, dobrze dokumentowac (elektronicznie), ale ten top level w postac sch nie uznaje za wazna sprawe. Wazniejsza dla mnie jest latwosc modyfikowania plikow tekstowych.
Prawdziwe, prawdziwe :-) do EP1C6 pakuje 2 sztuki 16bit Niosa i jest jeszcze troche luzu, albo
1szt 32bit Niosa (za to z duzymi peryferiami) i tez jest jeszcze troche luzu. Obudowa TQFP144, wiec nie problem polutowac. IMO zapomnij o CPLD i o FPGA na 5V - to juz sa zabytki...
jerry1111 wrote on Wed, 12 Jan 2005 18:46:48 +0100: [.....]
A jakiego toolchain-a używa się do tworzenia softu pod NIOS(II)? Chodzi mi o kompilator, linker, itp. Czy jakieś narzędzia są dostarczane razem z NIOSem czy trzeba za nie zapłacić dodatkowo? A jakiego evalboard-a byś polecił? Chodzi mi o coś do $200 (wliczając koszty przesyłki, VAT i inne opłaty). Chciałem sobie kupić
formatting link
w PL oficjalnymi kanałami jest to nieosiągalne. Przez internet też nie ponieważ tandeciarze z Future nawet sklepu internetowego zrobić nie potrafią (kliknij na "Buy Now"). :-(
Tawez wrote on Thu, 13 Jan 2005 11:48:40 +0100: [.....]
na swoim WWW. ;-)
[.....]
Ponieważ w Polsce (i chyba w całej Europie) Alterę sprzedaje EBV i trochę Arrow. Ameryka Pólnocna jest z kolei podzielona pomiędzy Future i Arrow. Logika marketingowców i handlarzy jest jednak zdecydowanie inna niż logika ludzi technicznych. ;-)
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.