Bardzo bym was prosił o pomoc i wyrozumiałość na pewno zrobiłem coś złe, ale mam tragicznego wykładowce. Sam też nie jestem orłem a chciałbym chociaż spróbować zrobić coś samemu a nie oddawać gotowca. To tak poniższy kod ma sterować światłami dołączę rysunek jak ja widzę te światłą prosiłbym o sprawdzenie czy mój kod by działał oraz ewentualnie o wyjaśnienie błędów z góry dziękuję.

Przepraszam ze wklejam kod normalnie ale nie znalazłem rozszerzenia dla veriloga

timescale 1ns / 1ps


module LicznikSwiatla(
input clk,
output wire [31:0] licznik
    );
    reg [31:0] count;   
    always @(posedge clk)
    if(clk) 
    count <=count +1;
    assign licznik=count;   //Chce zeby na wyjsciu dawal czas licznika
    
endmodule

module Swiatla(
input wlacz,                  //impuls który bedzie właczał ledy
input przycisk,                      //Przycisk do przejscia dla pieszych
output reg [2:0] prawy,              //3 ledy przedstawiajace swiatla po prawej 
output reg [2:0]lewy,
output reg [2:0]dol,
output reg [1:0]przejscie1,            //swiatla po jedenj stronie przejsca
output reg [1:0]przejscie2);
reg [31:0] pamiec;  

LicznikSwiatla(.licznik(pamiec));                //Chcialbym zeby czas z modulu licznikswiatel zapisywal sie w "pamieci"
initial @(posedge przycisk)                 //dzieki initial kod wykona sie raz?
begin                                                    //Mam na mysli to ze ledy nie beda sie palic caly czas
if(przycisk)                 
prawy[2:2]<=wlacz;                  //wlacz czerwone
lewy[2:2]<=wlacz;                          //czerwone
dol[2:2]<=wlacz;                       //czerwone
przejscie1[1:1]<=wlacz;                       //zielone na przejsciu
przejscie2[1:1]<=wlacz;                       //z drugiej strony przejscia zielone

if((pamiec==50000))                       //Ile sygnałów liczy seknda? //pierwszy stan
prawy[0:0]<=wlacz;                       //zielone
lewy[2:2]<=wlacz;                       //czerwone
dol[2:2]<=wlacz;                       ;//czerwone

if(pamiec==100000)                       //Drugi stan
prawy[2:2]<=wlacz;                       //czerwony
lewy[1:1]<=wlacz;                       //pomaranczowy
dol[2:2]<=wlacz;                       //czerwone

if(pamiec==150000)                       //trzeci stan
prawy[2:2]<=wlacz;                       //czerwony
lewy[0:0]<=wlacz;                       //zielony
dol[2:2]<=wlacz;                       //czerwone

if(pamiec==200000)                       //4stan
prawy[2:2]<=wlacz;                       //czer
lewy[2:2]<=wlacz;                       //czer
dol[1:1]<=wlacz;                       //P

if(pamiec==250000)                       //4stan
prawy[2:2]<=wlacz;                       //czer
lewy[2:2]<=wlacz;                       //czer
dol[0:0]<=wlacz                       ;//Z

if(pamiec==300000)                       //5stan
prawy[1:1]<=wlacz;                       //P
lewy[2:2]<=wlacz;                       //czer
dol[2:2]<=wlacz;                        //czer

if(pamiec==350000)                       //6stan
prawy[0:0]<=wlacz;                       //P
lewy[2:2]<=wlacz;                       //czer
dol[2:2]<=wlacz;
pamiec=0;
end


endmodule