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