eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaverilog początki co żle?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: ToTylkoJa <m...@n...chce.tego.poczta.fm>
    Newsgroups: pl.misc.elektronika
    Subject: verilog początki co żle?
    Date: Tue, 03 May 2011 18:59:26 +0200
    Organization: http://onet.pl
    Lines: 69
    Message-ID: <ippc9h$5bj$1@news.onet.pl>
    NNTP-Posting-Host: 46.112.108.237
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1304441969 5491 46.112.108.237 (3 May 2011 16:59:29 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Tue, 3 May 2011 16:59:29 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.18) Gecko/20110320
    SeaMonkey/2.0.13
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:609544
    [ ukryj nagłówki ]

    Witam
    Przy pomocy xilinx'a i jego web ISE (czy jak to tam się nazywa) Chciałem
    w verilogu zrobić prosty licznik dziesiętny. 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? Na wszelki
    przypadek załączam przykład:
    module licz_ksiazka(
    input cp,
    input enable,
    input r,
    input in,
    output [3:0] out,
    input load,
    input u_nd,
    output z
    );
    reg [3:0] out_data;

    assign out=out_data;
    assign z =(out_data == 'b0) ? 0: 1;

    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

    To może jeszcze to co ja wymyśliłem i tez nie chce wygenerować pliku
    programującego:
    module dzies_2(
    input clk,
    input zezwol,
    output przen,
    output [3:0] q,
    input reset
    );
    reg zerowanie;
    reg [3:0] licznik;

    assign przen = zezwol & zerowanie ;
    assign q = licznik ;

    always @(reset) begin
    licznik <= 4'd0;
    end

    always@(posedge clk) begin
    if (zezwol == 1)
    begin
    if (zerowanie == 1)
    licznik <= 4'd0;
    else
    licznik <= licznik + 1;
    if (licznik == 4'd8)
    zerowanie <= 1;
    else
    zerowanie <= 0;
    end
    end

    endmodule


    pozdrawiam MArek

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: