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.

WebPack - problem z symulacją

08 Mar 2008 20:19 2463 20
  • Poziom 20  
    Program nie generuje automatycznie ( w ogóle nie wiem czy musi )
    sygnału zegarowego
  • Poziom 20  
    Jeslie chodzi o symulacje w webpack to ciezka sprawa. Do dzisiaj nie wiem jak to sie robi chociaz dzialam z webpackiem od dluzszego czasu(+modelsim). Jezeli pisze cos w webpack(vhdl) to symulacje przeprowadzam w ahdl. I wedlug mnie to chyba najlepsze rozwiazanie.
  • Poziom 2  
    Dopisz te pare linijek i bedzie chodzic :

    // Note: CLK must be defined as a reg when using this method

    parameter PERIOD = <value>;

    always begin
    CLK = 1'b0;
    #(PERIOD/2) CLK = 1'b1;
    #(PERIOD/2);
    end
  • Poziom 19  
    Jeśli generujesz testbench za pomocą edytora, to w okienku, które to poprzedza i w którym wybierasz parametry musisz zaznaczyć, że układ jest synchroniczny, a nie kombinacyjny.
  • Poziom 10  
    Jakiej wersji webpack używasz?
    Chodzi ci o wbudowany symulator czy może zewnętrzny (modelsim)?
  • Poziom 21  
    Witam nie chcę zakładać nowego tematu więc podczepie się pod ten, mam problem z prostym projektem licznika i jego symulacją w Modelsim > mianowicie wyskakuje mi taki błąd (o_O) ?


    Wie ktoś co jest grane "modelsim nie może być odnaleziony ... ?"

    Próbowałem w tych opcjach ręcznie załączyć plik xxxxxtestbench.vhd

    ale nie działa nie ma czym tego otworzyć.

    WebPack - problem z symulacją
  • Poziom 30  
    Witam,

    Czy na pewno masz zainstalowanego ModelSim-a?
    Zgłaszany błąd to właśnie brak zainstalowanego ModelSim-a lub źle ustawione
    ścieżki dostępu do niego.
    ModelSim nie jest on składnikiem WebPack-a i musi być instalowany osobno.
    Aktualnie z WebPackiem instalowany jest własny symulator Xilinxa.

    Pozdrawiam
    JarekC
  • Poziom 21  
    Ok dzięki za info możesz mi podać ścieżki dostępu do ModelSima lub czy znajduje się w pakiecie Web Pack, który się zasysa od producenta czy też muszę osobno poszukać modelsima ?
  • Poziom 30  
    Nie wiem jak teraz ale dawniej trzeba było ModelSima sciągać osobno.
    Powinien być dostępny ze stron Xilinxa, darmowa jest wersja Xilinx ModelSim III Starter.

    Po zainstalowaniu trzeba podać w ISE scieżkę do niego. Robisz to w zakładce:
    Edit-Preferences-ISE General-Integrated Tools.

    Możesz też w projekcie zmienić symulator na wbudowany w ISE. Robisz to w następujący sposób:
    w oknie sources zaznaczasz wybrany typ układu , prawy klawisz myszy, opcja properties,
    w rozwijanym menu Silmulator wybierasz "ISE Simulator VHDL/Verilog"

    Pozdrawiam
    JarekC
  • Poziom 21  
    Dzięki wielkie już znalazłem na stronie Xilinksa MoledSima i pobrałem na indywidualnej licencji przyznawanej mi do WebPacka.

    Ale jest już kolejny problem siedze już nad tym cały dzień i co chwile te srodowisko przysparza nowych kłopotów.

    Prosty licznik przechodził kompilacje z 1 waringiem o nie użytym sygnale "cclk"

    , gdzie w PRG napisanym jasno i wyraźnie widać że go używam.

    Podejrzewam że przez to teraz mi modelsim nic nie daje na przebiegach.

    Po pogrzebaniu już mi nie przechodzi kompilacji i są kolejne waringi ... ah


    Czy zna ktoś jakieś namiary (strony,tourtiuale) na ciekawą literaturę opisującą dość dobrze procesy projektowania układów w WebPacku. Niektóre sprawy pewnie są proste ale jak się nie wie to potem cały dzień zlatuje na pierdoły....


    WebPack - problem z symulacją
  • Poziom 30  
    Pierwszy Warrnig jest właściwy na liście czułości brakuje ci qout.
    Drugi nie wiem dlaczego ci się pojawia.
    Najlepiej wklej kod i podaj na jaki układ kompilujesz.

    Z innej strony twój projekt licznika jest bardzo dziwny, definiujesz rrst i qout jako
    inout dlaczego, operujesz na portach zamiast na sygnałach, na wyjściu licznika
    będą pojawiać się "szpilki".

    Ten projekt mógłby posłużyć w książce jako przykład jak nie należy projektować albo
    wskaż wszystkie błędy.

    Z góry przepraszam za uszczypliwość.

    Czy interesują cię materiały w języku angielskim?

    Pozdrawiam
    JarekC
  • Poziom 21  
    Witam ponownie dopiero się uczę z o FPGA, przydałby się jakiś kurs (nawet odpłatny) bo przymierzam się do pracy dyplomowej.

    Licznik to pierwszy przykład z diodami z książki wydawnictwa BTC "Układy Fpga w przykładach" , przerobiłem go troszku po "swojemu".

    Dlaczego inout na rrst i qout

    Ponieważ rrst posłuży mi do zerowania układu, jak i również qout <= bo wpisuje do niego zera.

    Z tego co zdążyłem się już naczytać to na wejścia jako inout można ustawiać wartości.


    Co do listy wrażliwosci wpisanie qout do nawiasu nic nie daje juz próbowałęm na wiele sposobów, dając pierw funkcie w których występuje cclk , a później rst (kolejność)

    Program cały jaki robie to mrygające 8 diod led.

    Już mam przyszykowany prescalel który z 100\50\25-MHz robi mi odpowiednio 1s \0,5s idt.

    No i wyjście z tego prescalera clk ma wchodzić na 2-gi moduł czyli licznik, przy którym mam tutaj błędy.


    chciałem 2 te moduły napisać osobno, zasymulować itd, potem utworzyć symbole elementów , połączyć , pododawać piny, zasymulowac i wgrać do płyty testowej BASYS.

    Już raz tak zrobiłem ale coś nie zabardzo mi diody wg kolejności mrygały, wgrałem to bez testów, teraz chciałem poprawić żeby było ok.

    Ale są problemy, a im więcej literatury i przykładów tym lepiej.
  • Poziom 30  
    Witam,


    Osobiście polecam w języku angielskim VHDL Tutorial Evita firmy ALDEC:

    Link

    Co do samego licznika to powinien wyglądać raczej tak:

    Code:


    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_ARITH.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;

    entity licznik8xxx is

    generic (Bbit: natural :=8);

      Port (
              clk: in std_logic;
              rst: in std_logic;
            qout: out std_logic_vector (Bbit-1 downto 0)
             );

    end licznik8xxx;

    architecture Behavioral of licznik8xxx is

    signal  licznik : std_logic_vector (Bbit-1 downto 0) := (others=>'0');    --sygnał licznika

    begin

     LICZNIK_A: process (clk, rst)
      begin
        if (rst='1') then
          licznik<=(others=>'0');
        elsif (clk'event and clk='1') then
         licznik<=licznik+1;
        end if;
      end process;

      qout <= licznik;

    end Behavioral;


    Pozdrawiam
    JarekC
  • Poziom 21  
    Dzięki za odpowiedź co do liczników i ogólnie początków właśnie sobie czytam "Język VHDL w praktyce" praca zbiorowa J. Kalisz WKŁ.

    Już się troszku naczytałem o przerzutnikach i licznikach wraz z przykładami żeby w obrębie procesu stosować zmienne lub przed procesem sygnały.
    :)

    Tylko dalej nie kumam tego błędu dotyczącego sygnału CCLK; że niby nie jest używany.

    Co do napisania kodu myślę, że z przykładami i napisaniem czegoś dam sobie rade gorzej z symulacjami zarówno w webpacku jak i modelsimie, próbowałem wygenerować proste wykresy dla włącznika który załącza lub wyłącza diodę (w symulatorze webpacka) ale coś żeden sygnał mi się nie chce pokazać na przebiegu :/

    Pewnie nie jestem jeszcze kumaty w ustawieniach symulacji.. :/

    Dzikęki za ciekawy link - mam do niego pytanko czy tam się muszę zarejestrować żeby na dysk ściągnąć torturail ?
  • Poziom 30  
    To podaj twój kod, z jpga nie chce mi się przepisywać po za tym może masz
    gdzieś jakąś literówkę.

    Mogę napisać ci jakiegoś prostego Testbencha do twojego licznika.

    Pozdrawiam
    JarekC
  • Poziom 21  
    W załączniku pliki Txt programów, oraz reszta moich cudów.

    Dążę do tego żeby zrobić poprawnie działającą "migaczkę" ta w folderze nie działa prawidłowo :), pewnie coś źle robiłem zabierając się za robienie symboli i łącząc je w schematiku :)
  • Poziom 30  
    Co to twojego projektu licznika to po dokładniejszym przyglądnięciu sprawa się wyjaśniła.
    Kliknij sobie na "View RTL schematic" jak pojawi się rysunek blokowy to kliknij na nim
    lewym klawiszem myszki i zobaczych wew. schemat. ->

    rrst=VCC="1"
    qout=GND='0'

    Zobacz ,że w twoim projekcie rrst nigdy nie przyjmuje stanu '0' więc licznik zawsze będzie w stanie '0' a tym samym cclk nigdy nie będzie wykorzystany i stąd ostrzeżenie ISE.

    Cały układ dla ISE sprowadza się do wymuszenia '1' dla rrst i '0' dla qout.


    Pozdrawiam
    JarekC
  • Poziom 21  
    Witam ponownie

    Zaznajomiłem się już nieco z projektowaniem i opisem modułów teraz przychodzi czas na symulację.

    Ta pierwsza wbudowana w WebPacku w sumie jest do ogarnięcia.

    Gorzej z tą drugą ModelSim, czy ktoś ma jakieś sposoby na łatwą symulację albo jakiś dobry tortuial.

    Chodzi o to to, że wiem jak załączyć program, próbowałem wiele razy opisywać sygnały ale za każdym razem jak wywołuje symulacje to albo są błędy, lub nawet jak ich nie ma to i tak przebiegi nic nie ukazują.

    Może można z jakiegoś kreatora wyprowadzić wektory pobudzeń tak jak w przypadku
    wbudowanego symulatora.



    pozdrawiam
  • Poziom 30  
    Witam,

    W większości przypadków wbudowany symulator wystarcza do celów hobbistycznych.
    ModelSim jest bardzo rozbudowanym narzędziem i rzeczywiście brak jest jakiegoś fajnego tutoriala.
    Te które są dostępne opisują samodzielna pracę a nie współpracę z ISE. Poza tym darmowa wersja ma sporo ograniczeń.

    Do wewnętrznego symulatora polecam "ISE Simulator In-Depth Tutrial"
    ze stron Xilinxa.

    Pozdrawiam
    JarekC
  • Poziom 21  
    Witam udało mi się dzisiaj uruchomić bezbłędnie ModelSima, wystarczy robić wszystko krok po kroku jak we wbudowanym ISE Symulator ( dla pliku źródłowego - Wave- Test Bench) jedynie w projekcie tzreba zmienić symulator z Wbudowanego na ModelSima i mi tak ruszyło bezbłędnie.

    Uwaga dla niewtajemniczonych - ja się dałem bardzo łatwo nabrać >> trzeba zmienić czas symulacji lub lupą pomniejszyć przebiegi (domyślnie ModelSim może rozwalić przebiegi na skale "ps") dlatego nie widać żadnych przebiegów :).

    Co do ręcznego opisu wektorów pobudzeń (VHDL Test Benh) nadal są problemy :)

    Jedno mi dziwi "10s" testu w wbudowanym symulatorze jest niemożliwe do osiągnięcia.
    A minusem jest to, że wraz ze skalą ustawioną na "s" zmienia się na "s" okres zegara co strasznie też ogranicza symulacje.

    Np 50MHz >> (20ns okres) idzie na >>prescaler 50MHz na 1Hz >> idzie na licznik który przez 8s ma przestawiać "1" (mrugają diody) no i du*** blada z zasymulowaniem tego ;) w "s"
  • Poziom 21  
    Witaj Kolego.

    Nie musisz takich ekstremalnych czasów stosować. Jeśli chcesz np 200 [ms] uzyskać to zrób sobie 2 [ms] a docelowo wrzuć 200 [ms] poprostu przeskaluj sobie i po sprawie. Jak robiłem obsługę LCD 2x16 to tam są dosyć duże czasy przy czekaniu na stablizacje zasialania przeskalowałem to a docelowo włączyłem przeliczone wartości. Pozdrawiam