PDF-Verilog-XL
Transkrypt
PDF-Verilog-XL
Cadence LDV 5.0 Logic Design and Verification 5.0 Składa się z: § Logic simulators: Verilog-XL, NC Verilog/VHDL/SystemC, § Analog Mixed Signal Designer: VHDL AMS/Verilog AMS § Fault simulation: Verifault-XL § Analysis tools: HDL style, Code Coverage, Assertion-Based Verification Symulator Verilog®-XL Jest to narzędzie programowe umożliwiające prowadzenie następujących zadań w procesie projektowania bez konieczności budowania prototypu: §Określanie możliwości nowych rozwiązań projektowych, §Próbowanie więcej niż jednego podejścia do problemu, §Weryfikowanie działania, §Identyfikowanie błedów. Aby zastosować Verilog-XL należy zbudować modele opisujące projekt i jego środowisko w języku Verilog® HDL. Modele te muszą być umieszczone w plikach podawanych jako wejście symulatora. Podstawowe cechy Verilog-XL Verilog-XL dostarcza następujących możliwości: §Ustawianie punktów-przerw w cazsie symulacji, które zatrzymują symulację i pozwalają przejść do pracy interaktywnej dla debugowania i śledzenia projektu, §Wyświetlanie informacji o bieżącym stanie projektu i określanie formatu tej informacji, §Dostarczanie wymuszenia w czasie symulacji, §Rozbudowywanie obwodu w czasie symulacji, §Śledzenie wykonania poleceń w modelu w czasie ich wykonywania, §Wędrowanie po hierarchii modelu do różnych jego miejsc w celu badania stanu symulacji w różnych regionach projektu, §Kroczenie przez kolejne polecenia projektu i wykonywanie ich, §Wyświetlanie aktywnych poleceń w projekcie, §Wyświetlanie i dezaktywowanie operacji wprowadzonych w pracy ineraktywnej, §Czytanie danych z pliku i zapisywanie danych do pliku, §Zachowywanie bieżącego stanu symulacji w pliku i przywracanie go w innej sesji, §Badanie trafności decyzji odnośnie architektury projektu, §Modelowanie stochastyczne, §Prowadzenie symulacji w środowisku graficznym analizy SimVision. Wywołanie Verilog-XL Dla przeprowadzenia kompilacji i symulacji projektu należy napisać obok promptu: verilog <lista_plików> <opcje> <lista_plików> - pliki, zawierające opis projektu w Verilogu; ich kolejność może być dla kompilatora ważna; <opcje> - opcje mogą być wbudowane (z pauzą – lub z plusem +) lub definiowane przez użytkownika (zawsze z plusem +); Komiplacja Po wywołani Verilog-XL analizuje tekst źródłowy i sprawdza jego syntaktyczną i semantyczną poprawność. Kompilator przechodzi przez trzy fazy w celu wygenerowania struktur danych potrzebnych do symulacji. Faza 1 Wczytywanie opisu. Błędy syntaktyczne są wyświetlane z podaniem numeru linii i numeru błędu. Faza 2 Moduły są łączone wzajemnie z uwzględnieniem ich hierarchii. Dla modułów urealnianych wielokrotnie konieczne jest wykreowania oddzielnych struktur danych dla każdego urealnienia. Błędy połączeń końcówek modułów są raportowane. Faza 3 Wygenerowana uprzednio struktura danych jest skanowana i sprawdzana pod względem spójności. Rozwiązywane są odwołania do nazw hierarchicznych. Raportowane są błędy gdy składnik nazwy hierarchicznej nie pasuje do ścieżki w całej strukturze projektu. Opcje linii komend Opcje linii komend Jest ich 17. Niektóre: -c (Compile Only) - text źródłowy jest tylko kompilowany bez symualcji. Używane do sprawdzanie syntaktycznej poprawności modelu. -d (Decompile Option) – przeprowadzana jest dekompilacja struktury danych wygenerowanej w kompilacji i łączeniu i zachowanej w pliku. Używane gdy utracono pliki źródłowe a zachowała się postać skompilowana. -f <nazwa_pliku> (File Option) – Plik tekstowy, którego nazwa jest podawana po tej opcji zawiera nazwy plików źródłowych z opisem projektu i opcje linii komend Verilog-XL. Opcja ta może być zagnieżdżana 1024 razy. Musi być jedyną opcją w wywołaniu. -i <nazwa_pliku> (Interactive File Option) – wczytuje komendy z pliku i otwiera prompt do pracy interaktywnej. Opcja ta wczytuje tylko jeden plik tzn. może być użyta w linii komend tylko jeden raz. -s (Stop Option) - inicjuje wejście do pracy interaktywnej natychmiast po skończonej kompilacji. Aby wczytać plik pracy interaktywnej za pomocą opcji –i, opcja -s musi być użyta w tej samej linii. Jeśli jej nie ma to musi byś zastosowane zadanie systemowe $stop w pliku źródłowym. Opcja ta nie daje efektu gdy opis źródłowy nie generuje zdarzeń proceduralnych. Opcja -f Przykład jak uruchomić Verilog-XL dla konkretnego projektu i ze standardowym zestawem opcji linii komend i konkretną bibloteką: verilog -f project1.vc -f user.vc Plik project1.vc jest centralnym plikiem bibliotecznym projektu: /*konwencje projektu sprzętu project1*/ +sxl_keep_all //keeps channel-connected nets +incdir+/net/switches //symulator przeszukuje ten katalog +delay_mode_unit //use unit delay mode Plik user.vc jest lokalnym plikiem opcji użytkownika: /* moje zwykle używane opcje */ -l design.log //nazwa pliku loga -k design.key //nazwa pliku -i run1000.vi //plik początkowy //$stop lub opcja -s -f cpu.vc //symuluj projekt cpu Plik cpu.vc zawiera: cpu_netlist.v -f lib.vc Plik lib.vc zawiera: array_lib_version2.v //biblioteka komórek standardowych joe_alu.v //model ALU napisany przez Joe Verilog-XL przy pierwszym wejściu w pracę interakcyjną tworzy plik key file. Plik ten notuje cały tekst, który jest wprowadzany przez standardowe wejście. Plik ten użyty następnie wraz opcją -i umożliwia dokładne powturzenie całej symulacji. The syntax is as follows: $key("<filename>"); $key; $nokey; The $nokey and $key system tasks are used to disable and re-enable output to the key file. The $nokey task disables output to the key file, while the $key task re-enables the output. If you supply an optional filename to $key, then the old key file is closed, a new key file is created, and output is directed to the new file. The default key filename is verilog.key, which can be changed by the -k command option, as in the following example: verilog src1.v -k src1.key The above invocation changes the name of the key file to src1.key. Use this method to provide a unique name for each key file you intend to keep. Otherwise, with each new run, Verilog-XL overwrites any previously created key file that uses the default name verilog.key. Interaktywne odtworzenie The key file, the -i input file option, the $save task, and the -r restart file option together provide a very powerful interactive recovery mechanism. Whenever Verilog-XL runs, two files are generated—a log file and a key file. The log file contains all of the text that has been printed to the standard output. Similarly, the key file contains all the text that has been entered interactively. (By default, the key file is named verilog.key, but this name can be changed at invocation using the -k option.) The key file can be used in a subsequent run of Verilog-XL to perform an exact ‘replay’ of the simulation run and interactive dialogue, including any asynchronous interrupts. For example, suppose that you start Verilog-XL with the following invocation command: verilog example.v -s The -s option directs Verilog-XL to pause for interactive input before performing any simulation. Suppose that you enter some interactive commands and then resume the simulation using the continue command. When the simulation is completed, you could replay this run using Verilog-XL’s interactive recovery mechanism. To do so, you must first save the key file under another name (say to example.key) as under the UNIX operating system, Verilog-XL overwrites the key file in every run. Then you can use the following invocation command to replay the previous run: verilog example.v -si example.key Here, the -s option tells Verilog-XL to enter interactive mode immediately following il i d h i i ll il h i i d Opcje linii komend - c.d. -k (Key File Option) - changes the default key filename (verilog.key) to the name you specify following the -k option. A key file contains standard input Opcje linii komend z plusem Definiowane opcje linii komend This feature allows you to test for command-line arguments within your Verilog HDL source description or within user tasks linked through the PLI. This provides you with a way to change the behavior of the simulation at invocation time. You can only check for the plus (+) options; you cannot check for the standard command line (-) options. Each of these arguments is preceded by a plus (+) character. You can specify any string preceded by a plus on the command line and test for it in the source description or user tasks, thus creating a new option. verilog source1.v +reset The Verilog HDL source description contained in file source1.v can test for the plus argument as shown in the following example: initial if ($test$plusargs("reset")) begin reset = 1; #100 reset = 0; end else reset = 0;