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:44:40 +0200
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 39
    Message-ID: <ipppf5$jfq$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 1304455461 19962 79.188.62.227 (3 May 2011 20:44:21 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Tue, 3 May 2011 20:44:21 +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:609567
    [ 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 specyfika języka... Podobnie jest w VHDL :).

    To trochę tak, jakbyś projektował układ... 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óre będzie
    "silniejsze"?? 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... Tak więc 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

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: