Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

jak przekazywac wartości sygnałów w VHDL

marek310 04 Dec 2006 14:55 2680 16
  • #1
    marek310
    Level 13  
    mam do zrobienia cos ala zegar do gotowania jajek, z niezaleznym ustawianiem min i sek, po przycisku start ma odliczac do zera. czas ma byc wyswietlany na 4x7segmentowych wyswietlaczach. problem polega na przekazywaniu wartosci sygnałow miedzy procesami, zarówno w procesie w ktorym wprowadzam dane, jak tez w tym w ktorym jest odliczanie mam syganly min i sec, jak zrobic, zeby to wszystko sie kompilowalo i poprawnie dzialalo? co ciekawe procesy oddzielnie dzialaja dokladnei tak jakbym chcial, a razem jest cos nie tak:) wykombinowaem cos takiego, przypisanie
    sec<=secu;
    min<=minu; tylko w tym miejscu mie wywala bledy, ale podczas symulacji widac, ze cos jest nie tak. bylbym wdzyeczny za pomoc


    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;


    entity proby is
    port( minuty, sekundy: out std_logic_vector (6 downto 0);
    stop: out std_logic;
    s_min, s_sec, start, clk: in std_logic);
    end proby;

    architecture a1 of proby is
    signal min, minu: std_logic_vector (6 downto 0):="0000000";
    signal sec, secu: std_logic_vector (6 downto 0):="0000000";
    signal secc, minn: std_logic_vector (6 downto 0):="0000000";

    signal sec_d: integer range 0 to 59;
    signal min_d: integer range 0 to 59;
    signal stp: std_logic;

    begin

    p1: process(s_sec, s_min)

    begin
    if start/='1' then
    if s_min = '1' and s_min'event then min_d <= min_d + 1;
    if min_d = 59 then minu <= "0000000"; min_d<=0; else
    minu <= minu + 1; end if; end if;

    if s_sec = '1' and s_sec'event then sec_d <= sec_d + 1;
    if sec_d = 59 then secu <= "0000000"; sec_d<=0; else
    secu <= secu + 1; end if; end if;


    end if;

    end process p1;

    process(start)
    begin

    if clk='1' and clk'event then
    sec<=secu;
    min<=minu;

    if start='1' then

    for i in 0 to 500 loop
    if sec/="0000000" then sec<=sec-1; end if;
    if sec="0000000" and min/="0000000" then min<=min-1; end if;
    if sec="0000000" and min="0000000" then stp <= '1'; exit; end if;


    --if sec="0000000" then --sec<=sec-1;
    --if min/="0000000" then min<= min-1; sec<="0111011"; elsif
    -- min="0000000" then stp <= '1'; exit; end if;
    --elsif sec/="0000000" then sec<=sec-1; end if;

    end loop;

    end if;
    end if;
    end process;

    minuty<=min;
    sekundy<=sec;
    stop<=stp;
    end a1;
  • #2
    strdaniel
    Level 20  
    no i nie ma prawa działać

    są dwa rodzaje procesów które odpowiadają budowie rzeczywistych układów i jako takie są kompilowane

    pierwszy rodzaj to procesy tzw. synchroniczne w którch zmiany sygnałów następują na zoboczu zegara - to u ciebie ma być ten drugi proces bo masz clk'event tyle że nie dałes tego clk na liste czułości,
    wszystkie takie procesy mają tylko na liście czułości clk - no ewentualnie reset i po syntezie i implementacji w sprzęcie utworzą układy z przerzutnikami na wyjściach

    drugi rodzaj to procesy kombinacyjne - asynchromiczne - czyli takie zbudowane z bramek bez rejestrów tutaj na liście czułości umieszamy wszystkie sygnały które w procesie wystepują,
    zasada jest prosta proces wywoływany jest przy zmianie każdego sygnału który w nim występuje i to ma sens, natomiast jeżeli na liście czułości nie bedziedz miał któregokolwiek z sygnałów występujących w procesie to problemy zaczną się już przy testowaniu, a przez syntezę układ może już ine przejść a na pewno syntezer takie rzeczy wychwyci

    następny błąd to ta pętla for - nie będzie działac tak jak myślisz
    musisz zrboić to inaczej - bez pętli i żebyś nie miał wątpliwości to oczywiście da się to zrobić

    :D powodzenia
  • #3
    Zaquadnik
    Level 27  
    No tak. Pętla for nie służy do tego, co myślisz. VHDL nie jest językiem programowania. Tak naprawdę dokonujesz w nim opisu działania sprzętu. Pamiętaj, że kiedy tworzysz proces, będzie się on wykonywał w nieskończoność. Poza tym w głównym "ciele" kodu jest tak zwana jego część współbieżna, czyli wszystkie procesy tam zawartye będą wykonywały się jednocześnie.
  • #4
    bis
    Level 21  
    VHDL jest językiem programowania równoległego i rządzi się własnymi prawami. Na początek trzeba jednak trochę poczytać i pomyśleć do czego służą i co opisują poszczególne instrukcje i bloki programu. Szczególną uwagę trzeba zwrócić na znaczenie "sekwencyjne" i "równoległe" atrybuty poszczególnych instrukcji. I oczywiście poszczególne instrukcje, pomimo identycznej formy zapisu jak w innych językach, mają jednak swoje własne znaczenie w VHDL i to trzeba najpierw zrozumieć.

    Zaquadnik:
    Quote:
    VHDL nie jest językiem programowania. Tak naprawdę dokonujesz w nim opisu działania sprzętu.


    Głupota, nieprawda i całkowity brak logiki zawarty w tych dwóch zdaniach aż dech zapiera. Czasami takie "perełki intelektu" błyskają na tym forum ale chyba już czas aby to wreszcie skończyć. Czy program napisany w jakimś assemblerze jest napisany w "języku programowania" czy jest tylko "opisem działania sprzętu"? A jak to wygląda gdy napiszesz program w języku C (albo w Javie, Pascalu czy Basicu)?. Jak rozumiem nigdy nie robiłeś żadnego projektu w VHDL i takie drobiazgi jak symulacja nigdy nie zaprzątała twojej uwagi. A znajdź kogoś kto powie że symulację (np. wczytywanie wektorów testowych z pliku, symulowanie układu i zapis wyników na plik) tylko "opisał" a nie "zaprogramował". Jak rozumiem pojęcie "funkcji" w VHDL jest też tobie obce. Przekonanie że VHDL jest jedynie "opisem sprzętu" jest jedynie niezwykle powierzchownym trywializowaniem tematu (zapewne na potrzeby klasówki w gimnazjum) ale propagowanie takich mądrości na forum jest raczej nie na miejscu. Uważam że nawet amatorskie i hobbystyczne zajmowanie jakąkolwiek dziedziną nie zwalnia od dogłębnego studiowania rozgryzanego tematu. I takie trywialne "pomocne spostrzeżenia" wyłącznie robią wodę z mózgu mniej zaawansowanym uczestnikom szukającym tutaj pomocy.

    bis
  • #5
    TWl
    Level 21  
    bis wrote:
    Głupota, nieprawda i całkowity brak logiki zawarty w tych dwóch zdaniach aż dech zapiera.


    Masz czesciowo racje, pisanie testbenchow mozna zaliczyc do programowania, a nie opisu sprzetu. Ale glownym przeznaczeniem jezyka VHDL jest tworzenie sprzetu i pewnie to mial na mysli Kolega Zaquadnik. Podzial na jezyki opisu sprzetu i jezyki programowania jest bardzo jasny i oczywisty - kodu w C nie zsyntezujesz.
    Zreszta, biorac pod uwage "przyjemnosc" pisania testbenchy w tym jezyku, sporo uzytkownikow woli poustawiac sygnaly wejsciowe dla ukladu graficznie (lub zrobic projekt w Verilogu :P)
  • #6
    strdaniel
    Level 20  
    TWl wrote:
    bis wrote:
    Głupota, nieprawda i całkowity brak logiki zawarty w tych dwóch zdaniach aż dech zapiera.


    Masz czesciowo racje, pisanie testbenchow mozna zaliczyc do programowania, a nie opisu sprzetu. Ale glownym przeznaczeniem jezyka VHDL jest tworzenie sprzetu i pewnie to mial na mysli Kolega Zaquadnik. Podzial na jezyki opisu sprzetu i jezyki programowania jest bardzo jasny i oczywisty - kodu w C nie zsyntezujesz.
    Zreszta, biorac pod uwage "przyjemnosc" pisania testbenchy w tym jezyku, sporo uzytkownikow woli poustawiac sygnaly wejsciowe dla ukladu graficznie (lub zrobic projekt w Verilogu :P)


    no tutaj ja musze stanowczo zaprotestować
    to jest całkowicie nie prawda, siłą języka vhdl jest włąśnie to że można w nim pisać zaawansowane środowiska testujące i nie tylko
    to dzięki temu z niego korzystamy bo w sumie możemy sobie sprzęt opisywać netlistą i tez będzie, zaawansowane układy zawsze są testowane w oparciu o budowane środowiska testujące, prosze sobie zobaczyć np. na opencores.com jesli mi nie wierzysz
    nie wierze że użytkownicy wolą zadawac wejściowe wektory,
    test benche są nieocenione, bo np. spróbuj sobie wygenerowac 5 tys. wektorów, a przy odpowienio napsianym test benchu ładujesz miliony testów które są zapisane w oddzielnlych plikach i tens sam test bench generuje ci miliony raportów o ewentulanych błedach itd...
    oszczędzasz mase czasu

    a co do kodu C który się nie syntezuje to również nie prawda, napisany według pewnych reguł (tak jak i pewne reguły dotycza syntezowania vdhla) kod można oczywiście zsyntezować - i tu polecam poczytac o systemC
  • #7
    TWl
    Level 21  
    strdaniel wrote:
    no tutaj ja musze stanowczo zaprotestować
    to jest całkowicie nie prawda, siłą języka vhdl jest włąśnie to że można w nim pisać zaawansowane środowiska testujące i nie tylko .


    Mozna. Tyle ze jezyk jest na tyle rozlazly ze jest to niezbyt przyjemne.
    Mam do Ciebie pytanie troche offtopic - czy VHDL posiada mechanizmy takie jak PLI z Veriloga? Bo bez tego nie wyobrazam sobie porzadnego przetestowania wiekszego projektu, np. procesora.
    strdaniel wrote:

    to dzięki temu z niego korzystamy bo w sumie możemy sobie sprzęt opisywać netlistą i tez będzie

    Nikt tu nie pisal o netlistach.

    strdaniel wrote:

    a co do kodu C który się nie syntezuje to również nie prawda, napisany według pewnych reguł (tak jak i pewne reguły dotycza syntezowania vdhla) kod można oczywiście zsyntezować - i tu polecam poczytac o systemC

    Pisalem tu (celowo!) o jezyku C, a nie C++ - SystemC jest nakladka na C++, a nie C ;)

    PS. Mysle ze nie ma sensu sie dalej klocic. Definicja jezyka VHDL jest raczej malo istotna w tym miejscu, wazniejsze sa jego zastosowania
  • #8
    strdaniel
    Level 20  
    a czemu nie mamy się pokłocić fajna zabawa i może się czegoś dowiem

    zresztą to nie musi być zaraz kłótnia

    nie wiem niestety co to są mechanizmy PLI a może nie znam tej nazwy,
    a projektuje i w verilogu i w vhdl-u i to projekty na kilka osób i to całkiem spore, więc nie mogę odpowiedzieć na to pytanie
    no mogę jednak powiedzieć tak i vhdl i verilog są praktycznie zastepowalne a nawet muszę powiedzieć że wielu dobrych projektantów chwali się że pracuje im się dużo lepiej, zawsze broniłem veriloga gdy ktoś spiewał o wyższości vhdla z racji jego powszechności u nas w europie, ale prawda jest taka że to tak jak z c++, delfhi, czy javą - wszystko można zrobić i na jednym i na drugim
    co komu wygodniej

    co do tej netlisty to powiem tak : na studiach jeden z profesorów nie dawał się przekonywać do sensowności stosowania vhdla czy veriloga, uważał że zawsze lepiej i pewniej zrobic to na netliście
    poruszyłem temat netlisty bo w sumie jaki jest powód stosowania vhdla skoro uważasz że testowanie jest do bani i nikt tego nie używa
  • #9
    TWl
    Level 21  
    Nie uwazam ze testowanie jest do bani ;) Tylko ze w VHDLu jest to troszke niewygodne ze wzgledu na rozwleklosc jezyka. PLI = programming language interface, czyli polaczenie Verilog<>C/C++. Bardzo wygodne do testowania. Ostatnio np. robilem prosty "akcelerator" graficzny. Fajnie jest zobaczyc natychmiast czy rysuje to, co chcemy na symulacji ;) Zamiast analizowac jakies pliki.

    Apropos profesora od wyzszosci netlist nad VHDLem/Verilogiem? Nie nazywal sie przypadkiem Ogrodzki?? :D
  • #10
    strdaniel
    Level 20  
    no niestety to nie ten profesor - ale widać to powszechna opinia hehe

    hmm.. przyznam się że nie miałem styczności w verilogu z PLI ale brzmi nieźle musze się dokształcić
    tak to jest zawsze tej wiedzy za mało

    pozdrawiam :D
  • #11
    Zaquadnik
    Level 27  
    No to czas, bym wypowiedział się ja, czyli głowny "objechany". Drogi kolego bis, pisałem już sporo projektów zarówno w VHDL jak i w Verilogu :] Testbenche także. Pogadaj choćby z wykładowcami, każdy powie Ci to, że VHDL nie jest językiem programowania. Program bowiem pisze się na procesor, czyli sprzęt, który fizycznie istnieje, natomiast z opisu w VHDL układ zostanie zsyntetyzowany. Wielu ludziom, którzy właśnie podchodzili do VHDL jak do języka programowania układy najzwyczajniej w świecie nie chciały działać. Ja także oduczyłem się myśleć o VHDL w ten sposób. Obecnie piszę układ obliczający transformatę IFFT z wykorzystaniem architektury potokowej. Robię to w Verilogu akurat, bo jakoś bardziej mi się podoba.Poza tym, nie rozumiem aż tak ostrej reakcji. I nie pisz głupot, że nigdy nie pisałem żadnego projektu, bo tego nie wiesz. Mimo wszystko pozdrawiam.
  • #12
    bis
    Level 21  
    Zaquadnik:
    W poprzedniej wypowiedzi postawiłem proste pytanie które jednak nie wywołało w Tobie żadnej refleksji. Wolisz zasłonić się autorytetem "wykładowców" zamiast użyć własnego myslenia. Może ujme to co chciałem przekazać bardziej obrazowo. Stwierdzenie 1:
    Quote:
    VHDL nie jest językiem programowania, służy do opisu sprzętu

    i Stwierdzenie 2:
    Quote:
    Samochód cieżarowy nie jest pojazdem, służy do wożenia kierowcy

    Teraz może powierzchowność i nieadekwatność będzie bardziej zrozumiała.
    Nigdy nie widziałeś kodu VHDL który coś modeluje ale nie jest wcale "syntetyzowalny"? Przecież jezyk VHDL jest narzedziem daleko bardziej złożonym i przeznaczonym do wielu róznych zastosowań. Ty znając jedynie wycinek jego zastosowań (czyli zapewne opisywanie funkcjonalności układów programowanych) wyrażasz opinie ogólne ktore nie są trafne.

    Quote:
    Program bowiem pisze się na procesor, czyli sprzęt, który fizycznie istnieje

    Znowu to samo, zbyt zawężone widzenie, a Java i Basic?

    Quote:
    natomiast z opisu w VHDL układ zostanie zsyntetyzowany.

    A znasz taki procesor który bierze opis w C, Javie czy assemblerze?. Zawsze taki opis działania, w określonym języku programowania, trzeba "zsyntetyzować" do postaci strawnej dla systemu w którym bedzie wykonywany (a że nazwiesz to syntezą, kompilacją, asemblacją czy linkowaniem to nie zmienia postaci rzeczy) Ostatecznie procesor jest tylko rozbudowaną maszyną stanów.

    Quote:
    Wielu ludziom, którzy właśnie podchodzili do VHDL jak do języka programowania układy najzwyczajniej w świecie nie chciały działać. Ja także oduczyłem się myśleć o VHDL w ten sposób.

    Tu właśnie jest sedno sprawy. Jeżeli ktoś jest święcie przekonany że VHDL służy wyłacznie do opisu sprzętu (bo trafił na taką "pomocną" definicję) to nic dziwnego że nie jest w stanie go poprawnie użyć do przygotownia fizycznej kości. No bo skąd miał się dowiedzieć i zrozumieć, że że do takiej pracy to VHDL trzeba używać inaczej niż do np. czystej symulacji, że pewne konstrukcje języka są niesyntetyzowalne, że inne znowu (dobrze działające w symulatorze funkcjonalnym) w rzeczywistym układzie całkowicie sie rozsypią(chociaż to można też zobaczyć w symulacji ale modelu po syntezie)? I tak dalej można by wymieniać kolejne ograniczenia jakie układ "syntetyzowany" nakłada na pełny język programowania tak że ostatecznie używa sie jedynie podzbioru funkcjonalności języka. Ale właśnie uświadomienie sobie tego faktu ułatwia stosownie VHDL w praktyce (i wcale nie jest porzebne do tego "oduczywanie się" :)))

    bis
  • #13
    tony_tg
    Level 16  
    Czesc,

    Bis:
    W sumie jesli asembler jest "jezykiem opisu sprzetu" to ja mam taka malutka prosbe w sumie. Mam Athlona w moim kompie i on jest taki troszke wolny i pomyslalem sobie, ze moze moglbys mi podeslac jakis prosty kodzik w asemblerze, ktory skrocilby mi potok w procku do czegos normalnego i najlepiej jakby spowodowal ze instrukcje skokow wykonywaly sie w jednym cyklu zegara. Strasznie bys mi pomogl i oszczedzil wydatku na nowy komp. Jakby co to daj ten kod tylko mi a inni niech wydaja forke na kompy aby biznes Intelowi i AMD jakos szedl.
    To tak apropo tlumaczenia "HDL" z angielska na polski a akurat te 3 literki pojawiaja sie zarowno w "VHDL" jak i w "Verilog HDL", ktory czasami jest skracany do "Verilog". ;)

    Natomiast zgadzam sie z Toba jesli chodzi o inny aspekt "programowalnosci" w tym jezyku. To ze mozesz pisac do pliku i czytac z niego nie jest w sumie czescia jezyka samo w sobie. To tylko rozszerzenie tego jezyka ktore pojawilo sie pozniej niz sam jezyk. (I jest to tylko pakiet ktory zostal zaakceptowany przez IEEE i jest teraz standardowym wyposazeniem kazdego symulatora i czescia jezyka. Ale byl pozniej niz sama koncepcja jezyka.) Zreszta tak samo jak jego uzycie do "projektowania" ukladow w nim czyli synteza tego jezyka na cos tam. W sumie to tak samo jak pojawialy sie rozne biblioteki ktore potem sie stawaly standardem jezyka np. biblioteka Synopsysa do syntezy. Na samym poczatku ten jezyk byl wymyslony do tego co oznacza literka "D" czyli "Description" i nie mialo to nic wspolnego z tym, ze cos tam trzeba projektowac, a juz napewno nic wspolnego z symulacja czy synteza. Tak tylko zdaje sie Departament Obrony w USA stwierdzil, ze maja tyle "sprzetu" a nikt nie wie jak on w sumie dziala i burdel jest okropny, wiec trzeba go jakos opisac :) Zreszta w wiekszosci wielkich agencji jest taki burdel, ze nikt nie wie o co chodzi a z naszego podworka chyba przykladow nie musze podawac ;) A potem poszlo juz gladko, dorobilo sie ideologie, pojawily sie prywatne (to ciekawy watek, bo nie wiadomo, czy ktos nie chcial forki z DO z US na badania i rozwoj ;)) firmy ktore zweszyly biznes i pojawil sie symulator bo jak wiemy fajnie zobaczyc waveform niz wglebiac sie w text i starac sie go zrozumiec. No a potem byla synteza, API do symulatora w C (odpowiednik PLI/VPI z Veriloga), no i nie wiadomo gdzie skonczymy. I tutaj masz racje, bo VHDL przestal byc tylko jezykiem opisu sprzetu a zaczal byc jezykiem uniwersalnym, nie tylko opisujacym sprzet, ale i pozwalajacym na sprawdzenie czy opis odpowiada specyfikacji. (nie wiem dlaczego wiekszosc ludzi twierdzi, ze pisanie testbenchy pozwoli stwierdzic czy uklad dziala czy nie, tak jakby zapominali, ze testbench testuje specyfikacje ukladu a nie sam uklad. Zreszta w wiekszych projektach jest 2 albo wiecej verification engineer piszacych testbenche na jednego design engineer a potem debugowanie i dochodzenie czy specyfikacja jest OK to zabawa razem, no i symulacja jest tylko jednym z wielu narzedzi weryfikacji ktorych sie uzywa i wcale nie wystarczajacym).

    Ale wracajac do VHDL, mozesz rozwinac:
    Quote:
    Szczególną uwagę trzeba zwrócić na znaczenie "sekwencyjne" i "równoległe" atrybuty poszczególnych instrukcji. I oczywiście poszczególne instrukcje, pomimo identycznej formy zapisu jak w innych językach, mają jednak swoje własne znaczenie w VHDL i to trzeba najpierw zrozumieć.


    Chodzi Ci o atrybuty w VHDL'u takie jak " 'event " czy cos innego? Dla mnie innosc w postaci "sekwencyjne" czy "rownolegle" nie ma takiego znaczenia bo wszystkie procesy dzieja sie rownolegle a czy sa sekwencyjne czy kombinacyjne to zalezy od syntezatora jak on zrozumie moj kod i co z tego wygeneruje. Oczywiscie kazdy syntezator jest inny ale w sumie symuluje sie "description" a nie wlasciwy uklad.
    No i w sumie to wczytywanie plikow do symulatora VHDL czy Verilog dalej nazywam opisaniem operacji a nie jej zaprogramowaniem, bo niby co moj biedny procesor ktory wlasnie projektuje wie o systemie plikow?
    Inna sprawa czy znajac moj syntezator potrafie napisac kod tak ze symulacja odpowiada temu co bedzie po syntezie.

    Ale suma sumarow masz racje, VHDL czy Verilog jest jezykiem uniwersalnym natomiast bylbym daleki od szufladkowania go jako jezyk programowania czy opisu, patrzac na to czym on jest teraz i biorac pod uwage wszystkie rozszerzenia dla roznych narzedzi.

    Strdaniel:
    Jesli ktokolwiek liczy na to, ze sprawdzi specyfikacje bez pisania testbencha tylko klikajac w GUI znaczy, ze ma wiele wolnego czasu i jest cierpliwy robiac te same rzeczy dzien w dzien ;) No i nikt na niego nie naciska, ze mial pare miesiecy na cos co ciagle nie dziala ;) A tak apropo to ja wyroslem z Veriloga;) Tzn. bawilem sie nim dlugo zanim zaczalem uzywac VHDL'a i na chwile obecna mam podobne zapatrywania. Kazdy jezyk jest dobry, a jak przychodzi do wielkiej symulacji, to uzywac w czym sie czujesz lepiej. Nie wazne co i jak. Wazne aby jak najszybciej rozumiejac co sie na waveformie pojawia albo w plikach :)
    A tak apropo tego profesora to proponuje mu zadac taki problem: Zbuduj 32 bitowy procesor na netliscie. Najlepiej.... hmm EDIF jest w sumie textowym plikiem, i niech bez symulacji i zadnej mozliwosci weryfikacji zbuduje to w czasie krotszym niz kadencja sejmu trwa :) Polecam duzy uklad FPGA aby nie marudzil, ze za wolny jest ;)

    TWI:
    VHDL a w zasadzie symulatory posiadaja cos takiego jak odpowiednik PLI/VPI w Verilogu. Popatrz na ModelSim i Active-HDL (nie wiem gdzie jest ten drugi w sensie support'u dla tego rozszerzenia). I masz racje bo nie ma sie co dalej klocic bo w nazwie VHDL jest zawarta definicja tego jezyka :)

    Marek310:
    Straszna polemika sie rozpetala na Twoj temat :) Ale to chyba dobrze tak sobie mysle. Jak bedziesz mial wiecej pytan co jest nie tak to pisz je na podgrupe "uklady programowalne" tam dostaniesz wiecej odpowiedzi na tematy z VHDL/Verilog PAL/GAL/CPLD/FPGA :)


    Moderatorzy:
    Dobrze by bylo przeniesc te dyskusje do podgrupy uklady programowalne bo w sumie nie ma nic wspolnego mikrokontrolerami a jest ciekawa.

    Pozdrawiam,
    tony_tg
  • #14
    strdaniel
    Level 20  
    kolego tony_tg ale napisałeś pościsko - kurcze jeszcze pare linii i może z tego być rozdział ksiązki

    chciałem się odnieść do netlisty - nie miałem na myśli pisania w tekstowo netlisty a raczej chodziło o budowanie uładów z gotowych komponentów które z składasz z bramek , rejetrów, itd... , idea jest taka że w vhdlu robisz właściwie to samo - żeby dobrze napisac kod musisz wiedziec jak ma wyglądać mniej więcej jego struktura w sprzęcie, to jest podstawa
    budujesz układ w oparciu o komponenty - dzielisz sobie działanie na procesy, razem na bloki itd.. to samo można zrobić budując układ bez wykorzysania vhdl-a

    moje zdanie jest takie - w sumie nie moje ale się z nim zgadzam
    czasu na projektowanie nie zaoszczędzamy wiele wykorzystując jezyki projektowania sprzędu ala verilog czy vhdl w porównaniu z budową o której pisałem powyzej - ale czas poświęcony na testowanie to jest pierwszy plus bo tutaj oszczedzamy czasu sporo , a drugim jeśli nie ważnijszym powodem wykorzystywania takich języków jest prostota dokonywania wszelkich zmian, nawet drobnych
  • #15
    Zaquadnik
    Level 27  
    OK, zdaję sobię sprawę, że VHDL służy także do symulacji i pisania rzeczy, które nie są syntezowalne. Jak wspominałem, pisałem w nim testbenche. Zapis do pliku w VHDL, czy stosowanie funkcji także nie jest mi obcy. Niemniej jednak nadal wolę nie myśleć o nim jak o języku programowania, bowiem takie myślenie, moim zdaniem, utrudnia tworzenie opisu układu. W każdym razie, tworząc opis układu, zawsze staram się myśleć o tym w jaki sposób zostanie to zsyntetyzowane. Dla mnie jest to diametralna różnica od pisania programów w asemblerze. Java pracuje pod kontrolą maszyny wirtualnej, dla mnie to duża różnica od VHDL :] Nie chcę się za bardzo kłócić, bo każdy z nas ma swój punkt widzenia. Nadal nie rozumiem tylko Twojej ostrej reakcji i zarzucania mi kompletnej niewiedzy, kolego bis. Pozdrawiam.
  • #16
    yego666
    Level 33  
    Mam nadzieje, ze Koledzy sie nie obraza, jesli przeniose te wartosciowa dyskusje do bardziej wlasciwego dzialu jakim sa Uklady Programowalne.

    Pozdrawiam, yego
  • #17
    griva
    Level 17  
    TWl wrote:
    Mam do Ciebie pytanie troche offtopic - czy VHDL posiada mechanizmy takie jak PLI z Veriloga? Bo bez tego nie wyobrazam sobie porzadnego przetestowania wiekszego projektu, np. procesora.


    jest, generlanie interjes do VHDL-a to jest VHPI natomiast Modelsim ma swoj wlasny lepszejszy ;-) called FLI.
    z mojego dosw. lepiej jest napisac cos w PLI i zrobic wrapper w verilogu i zainstancjowac to w VHDLu, napewno troche sie traci na tym ze podczas symulacji mix chodza 2 kernele i nie jest to optymalne ale z moich dawnych testow wynikalo ze interfejs PLI jest szybszejszy :)