eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaverilog początki co żle?Re: verilog początki co żle?
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: Konop <k...@g...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: verilog początki co żle?
    Date: Tue, 03 May 2011 22:49:51 +0200
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 49
    Message-ID: <ipppos$kct$1@inews.gazeta.pl>
    References: <ippc9h$5bj$1@news.onet.pl> <ippdt6$bi0$1@news.onet.pl>
    <ippgno$ni7$1@news.onet.pl>
    NNTP-Posting-Host: hmk227.internetdsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1304455772 20893 79.188.62.227 (3 May 2011 20:49:32 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Tue, 3 May 2011 20:49:32 +0000 (UTC)
    X-User: konoppo
    X-Antivirus: avast! (VPS 110503-1, 2011.05.03), Outbound message
    In-Reply-To: <ippgno$ni7$1@news.onet.pl>
    X-Antivirus-Status: Clean
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.17) Gecko/20110414
    Thunderbird/3.1.10
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:609568
    [ ukryj nagłówki ]

    >> Powyżej masz dwa "procesy" w których przypisujesz out_data (a więc
    >> pośrednio out) - w pierwszym całe out(3 downto 0) a w drugim samo
    >> out(3). Coś takiego się nie syntetyzuje bo kompilator nie wie co zrobić
    > Już to poprawiłem. Wychodzi mi że kompilator nie chce przyjąć dwóch
    > procesów (always @). Zaremowanie linijek od resetu asynchronicznego lub
    > właściwego zlicznia pomaga. Tyle że nigdzie nie przeczytałem że nie może
    > być kilku bloków od innych warunków. Poza tym ktoś w książce podał zły
    > (niekompilowalny) przykład? Zastanawiam się czy ten web ISE nie ma jakiś
    > ograniczeń, lub ja go źle skonfigurowałem.

    To nie błąd konfiguracji, to specyfika języka (VHDL ma też podobnie)

    Musisz pamiętać o tym, że to jest język OPISU SPRZĘTU... a nie język
    programowania... To znaczy, każdy blok always opisuje jakiś sprzęt... i
    teraz okazuje się, że sygnał out jest generowany przez dwa różne bloki...
    To trochę tak, jakbyś rysował schemat układu... Jeden "blok" (always) to
    jakby jedna kartka schematu... co Ci wyjdzie, jak na dwóch różnych
    kartkach będziesz miał wyjścia o tej samej nazwie?? Który schemat ma
    sterować tym wyjściem?? Raz ten, raz ten, ale skąd układ ma wiedzieć
    kiedy który?? Musisz to tak rozrysować/rozpisać, aby miało to sens...
    Więc sygnał wyjściowy może być przypisywany TYLKO W JEDNYM BLOKU ALWAYS.
    W przeciwnym wypadku dostaniesz błąd...
    Natomiast nic nie stoi na przeszkodzie, żeby w jednym bloku przypisywać
    wiele sygnałów...

    Twój licznik powinien wyglądać mniej więcej tak:

    always @(load or reset or posedge cp)
    if(reset)
    out <= 0;
    else if(load)
    out <= in;
    else if(posedge cp)
    out <= out + 1;

    To tak z pamięci piszę, więc nie kopiuj tego w prost, ale wyczuj ogólną
    ideę.... Aha, oczywiście jest to licznik z asynchronicznym resetem,
    asynchronicznym load'em, i reset ma wyższy priorytet niż load, cp ma
    najniższy...


    --
    Pozdrawiam
    Konop


    --
    Pozdrawiam
    Konop

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: