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.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.PO
    STED!not-for-mail
    From: Michoo <m...@v...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: verilog początki co żle?
    Date: Tue, 03 May 2011 19:26:41 +0200
    Organization: http://onet.pl
    Lines: 37
    Message-ID: <ippdt6$bi0$1@news.onet.pl>
    References: <ippc9h$5bj$1@news.onet.pl>
    NNTP-Posting-Host: 83.238.197.12
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1304443622 11840 83.238.197.12 (3 May 2011 17:27:02 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Tue, 3 May 2011 17:27:02 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20110303
    Icedove/3.0.11
    In-Reply-To: <ippc9h$5bj$1@news.onet.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:609548
    [ ukryj nagłówki ]

    W dniu 03.05.2011 18:59, ToTylkoJa pisze:
    > Witam
    > Przy pomocy xilinx'a i jego web ISE (czy jak to tam się nazywa) Chciałem
    > w verilogu zrobić prosty licznik dziesiętny.
    No więc veriloga jeszcze nie znam, ale spróbuję odpowiedzieć na
    podstawie znajomości vhdl.

    > Niestety ciągle dostaję
    > komunikat błędu. W końcu przepisałem żywcem przykład z książki (W Wrona
    > - Verilog) i też dostałem :' Xst:528 - Multi-source in Unit
    > <licz_ksiazka> on signal <out<0>>; this signal is connected to multiple
    > drivers.'. Co prawda tylko dla wyjścia <0> a nie jak u mnie dla
    > wszystkich. O co chodzi bo chyba przykład jest poprawny?


    > input in,
    > output [3:0] out,
    Jesteś pewien, że in i out nie powinny mieć takiej samej szerokości?

    [...]
    > always @(posedge cp)
    > if (enable && u_nd) out_data <= out_data+1;
    > else if (enable && !u_nd) out_data <= out_data-1;
    > always @(r or load)
    > if (r && load) out_data <= in;
    > else if (r) out_data <= 'b0;
    > endmodule
    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ć
    jak zajdą oba warunki jednocześnie. Musisz albo wprowadzić sygnały
    pośrednie i sterujące, albo upchnąć wszystko w jeden proces i
    odpowiednio rozstrzygnąć za pomocą if-else.

    --
    Pozdrawiam
    Michoo

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: