Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[verilog] Reset w swiatłach drogowych

05 Lip 2019 18:34 651 12
  • Poziom 10  
    Czesc mam pytanie bo ucze sie verilog i mam taki problem jak zrobic reset w tych swiatlach aby swiatla ns i ew swiecily sie na czerwono w sytuacji gdy mamy stan resetu??

    Kod: verilog
    Zaloguj się, aby zobaczyć kod


    Kod: verilog
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    Poziom 28  
    Cytat:

    ... zrobic reset w tych swiatlach aby swiatla ns i ew swiecily sie na
    czerwono w sytuacji gdy mamy stan resetu??


    1. modul traffic chyba powinien miec clk i reset jako input?

    2. nie mozesz sterowac ten sam sygnal w kilku blokach always
    Cytat:

    if (nsCounter == 31 & EW_VEHICLE_DETECT & NS_GREEN) begin
    NS_RED <= 0;
    //......
    always @ (ewCounter) begin
    if (ewCounter == 15 & EW_GREEN) begin
    NS_RED <= 1;


    3. jaki ma byc stan NS_RED jesli nie bedzie spelniony zaden z 4 warunkow
    w twoich 4 blokach always?
    [innymi slowy po if brakuje else]

    4. licznik zwykle pisze sie tak:
    Kod: verilog
    Zaloguj się, aby zobaczyć kod

    ----------


    calosc poprawnie powinno sie to zrobic jakos tak:

    Kod: verilog
    Zaloguj się, aby zobaczyć kod


    J.
  • Poziom 10  
    Dziękueje za opowiedz ale dalej mam problem z wrzuceniem tego w jeden moduł Top wiem ze pewnie to jest łatwie ale jestem zielony z veriloga
    Prosze o pomoc
    Pozdrawiam
  • Poziom 28  
    a w czym konkretnie problem?
    J.
  • Poziom 10  
    A testbanch ma byc bez zmian ? bo kiedy wiadmo ze ma sie wykonac reset
    bo zrobilem to tak
    Kod: verilog
    Zaloguj się, aby zobaczyć kod
  • Poziom 28  
    uszek54 napisał:

    A testbanch ma byc bez zmian?
    bo kiedy wiadmo ze ma sie wykonac reset
    bo zrobilem to tak



    to jakies zadanie domowe? jutro klasowka?


    nie wnikajac w to, czy kod robi to co ma robic, z punktu
    widzenia poprawnosci jezykowej mozna to napisac tak:
    Kod: verilog
    Zaloguj się, aby zobaczyć kod


    J.
  • Poziom 6  
    J. A a można by było do tych świateł dodać że po czerwonym dodać stan aby jeszcze zapaliły się swiatła żółty i czerwony razem jak można byłoby to zrobić ?
  • Poziom 28  
    TrusT123 napisał:
    J. A a można by było do tych świateł dodać że po czerwonym dodać stan aby jeszcze zapaliły się swiatła żółty i czerwony razem jak można byłoby to zrobić ?


    zapewne można, ale trzeba sformułować wymaganie w miarę poprawnie językowo,
    i tak, bym zrozumiał co ma być osiągnięte.
    I ew. wieczorem, teraz jestem w robocie.
    Jeśli chwile się zastanowicie nad obecna forma kodu, to dodanie kolejnego stanu
    (kolejne else if) nie wydaje się być zadaniem nad siły początkującego.

    Rozumiem, że macie wielką wiarę w to, że wasz nauczyciel tu nie zagląda.

    J.
  • Poziom 10  
    A jak mogłby wyglądać else if z czerwonym światłem gdzie pod koniec zapalać się żółte?
    Ogólnie dziękuje bardzo za pomoc,
  • Pomocny post
    Poziom 28  
    uszek54 napisał:
    A jak mogłby wyglądać else if z czerwonym światłem gdzie pod koniec zapalać się żółte?
    Ogólnie dziękuje bardzo za pomoc,


    ciekawe, czy podzielicie sie ze mna ocena z klasowki;

    macie tu nieco inne podejscie do tematu, z komentarzami 'co i dlaczego',
    niestety tylko idea, nie gotowiec, nieco wlasnego wysilku a zrobicie z tego
    kod spelniajacy wymagania;

    Kod: verilog
    Zaloguj się, aby zobaczyć kod


    J.
  • Poziom 6  
    Jasne że tak :) . A można to zrobić właśnie tylko dodając if-elese ?
  • Poziom 32  
    Generalnie masa ifów to złe podejście w każdym możliwym wypadku. Jeśli chcesz tylko symulować układ będziesz miał masę jumpów i warunków do nich, a w wypadku układu fizycznego masę komparatorów. O ile dla symulacji case'a da się to uprościć (zakładając że dany soft to zoptymalizuje) to zagnieżdzone ify nigdy nie będą się optymalnie kompilować, ify w case tak samo.

    Jeśli chciałbyś to zrobić po bożemu (tzn tak jak powinno się to zrobić optymalnie) powinieneś wykorzystać do tego maszynę stanów i zapomnieć, że istnieje coś takiego jak if. Ba, nawet bez wspomnianej metody prostszy kod dostaniesz korzystając z operacji bitowych a nie porównań.
  • Poziom 6  
    Kurcze a jak dodać silnik stanów do tego projektu jak pisałeś ?

    Dodano po 5 [godziny] 2 [minuty]:

    J.A napisał:
    uszek54 napisał:
    A jak mogłby wyglądać else if z czerwonym światłem gdzie pod koniec zapalać się żółte?
    Ogólnie dziękuje bardzo za pomoc,


    ciekawe, czy podzielicie sie ze mna ocena z klasowki;

    macie tu nieco inne podejscie do tematu, z komentarzami 'co i dlaczego',
    niestety tylko idea, nie gotowiec, nieco wlasnego wysilku a zrobicie z tego
    kod spelniajacy wymagania;

    Kod: verilog
    Zaloguj się, aby zobaczyć kod


    J.


    A tutaj nsCOunter i ewCounter ma zostać ?