logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[VHDL] Jak zasymulować kod w ISE 11.1 bez Waveform test bench?

marenc 06 Lip 2009 15:39 2758 4
REKLAMA
  • #1 6745165
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    Witam, błędem było przejście na najnowszy program ISE 11.1. Nie potrafię w żaden sposób zasymulować napisanego kodu. W sensie tworząc VHDL test bench symulacja się odpala, ale nie mogę zdefiniować sygnału zegarowego, a Waveform test bench w tym ISE już podobno niema.

    W jaki sposób mogę zasymulować kod w tej wersji? Było by miło, gdyby ktoś przeprowadził mnie za rękę... przez ten problem.
  • REKLAMA
  • #2 6748485
    flapo213
    Poziom 21  
    Posty: 566
    Pomógł: 35
    Ocena: 10
    Witaj.

    To co piszesz wydaje się normalne że nie możesz przesymulować. Pewnie clocka nie masz i innych sygnałów. W tym miejscu proponowałbym Ci abyś doinstalował sobie modelsima xe (tylko dla układów firmy xilinx). W poprzednich wersjach było tak, że tworzyłeś sobie plik *.tbw i ustawiałeś clocka itd. w nowej wersji jest inaczej tworzysz sobie plik test bencha, to jest taki drugi plik *.vhd w który określasz w jakich odstępach czasowych możesz generować jakiś dany przebieg ( tu przydatne sa instrukcje np _enb <= not in_syg after 2 ns - używane wyłącznie w symulacji). Zamiast modelsima xe możesz użyć wbudowanego isima. Jakbyś nie dał rady to mogę Ci podesłać albo pliki np. jakiegoś licznika czy innego mrugacza to sobie zobaczysz co i jak. Pozdrawiam i życzę sukcesów
  • REKLAMA
  • #3 6748769
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    ...
    BEGIN
     	-- Instantiate the Unit Under Test (UUT)
       uut: Main PORT MAP (
              CLKin => CLKin,
              CL1 => CL1,
              CL2 => CL2,
              DB => DB,
              DI => DI,
              M => M
            );
        -- No clocks detected in port list. Replace <clock> below with 
       -- appropriate port name 
        constant CLKin_period := 1ns;
     
       CLKin_process :process
       begin
    		CLKin <= '0';
    		wait for CLKin_period/2;
    		CLKin <= '1';
    		wait for CLKin_period/2;
       end process;
     
       -- Stimulus process
       stim_proc: process
       begin		
          -- hold reset state for 100ms.
          wait for 100ms;	
    
          wait for CLKin_period*10;
    
          -- insert stimulus here 
          wait;
       end process;
    
    END;

    Powyższy fragment kodu to modyfikacja kodu template z ISE. Sygnał wejściowy to CLKin a okresu nie modyfikowałem. Błąd pojawia się w linii z deklaracją stałej wartości okresu i jest następujący:
    Cytat:
    ERROR:HDLCompiler:806 - "E:/MariuszLorenc - dokumenty/Elektronika/CPLD/MatrixLCD/test.vhd" Line 79: Syntax error near constant.
    ERROR:HDLCompiler:841 - "E:/MariuszLorenc - dokumenty/Elektronika/CPLD/MatrixLCD/test.vhd" Line 79: Expecting type void for <ns>.

    Pozostałe błędy wynikają z braku deklaracji CLKin_period. Coś źle wykonuje? Wolał bym pozostać przy wbudowanym ISim

    System wydaje się być dobry choć bardziej skomplikowany. Można dokładniej określić sposób symulowanych sygnałów wejściowych.
  • REKLAMA
  • #5 6753549
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    Niestety nie pomogło... Dodatkowo taki zapis wprowadza błędy odnośnie warunku ustalania stanu sygnału...
REKLAMA