Mam emulator kciuka, który powinien skompilować w dowolnym miejscu, Windows, Linux, Mac, cokolwiek. thumbulator.blogspot.com. Dodaj kilka printfs, gdziekolwiek chcesz coś zobaczyć, a ty jesteś złoty. Emulator ARM, armulator, jest dostępny w formie źródłowej w wielu miejscach, na przykład w źródłach GDB. qemu działa świetnie, ale trudno będzie "zobaczyć swój kod". najlepiej byłoby mieć źródło hdl (np. verilog) na rdzeń ramienia i tworzyć pliki vcd lub inne formaty fal. Chyba, że pracujesz dla firmy chipowej z osadzonym ramieniem, chociaż prawdopodobnie jej nie znajdziesz. Mogę się mylić, ale myślę, że wszystkie otwarte rdzenie ramion są szybko usuwane przez ARM.
mame ma rdzeń ramienia lub dwa. Wzrok chłopca wzrokowego ma rdzeń ramienia. emulatory nds mają rdzenie ramion.
Albo możesz zrobić to, co zrobiłem z thumbulatorem i napisać własne, Znalazłem to łatwiej niż próbowanie nakłonić jednego z pozostałych, by pokazał mi to, co chciałem zobaczyć. Oczywiście byłem leniwy i zamiast emulatora pełnego ramienia wykonałem tylko emulator zestawu instrukcji kciuka. Nie jest to wcale trudne, tylko czasochłonne.
EDYTOWANIE
OK, poprawiam się. google słowa verilog ramię. isc.tgz zawiera model modelu behawioralnego ramienia, który kompiluje i działa dobrze z icarus verilog (darmowy).
Skomentuj wszystkie $ save_store(); linie (tak jak C używają //).
Dodaj kilka linii kodu do testarm.v (po ramieniu 10 i przed początkowym rozpoczęciem na przykład).
początkowa Rozpocznij $ dumpfile ("test.vcd"); $ dumpvars (0, arm10); koniec
zawsze # 50000 $ Zakończ;
następnie
iverilog -o cześć testarm.v arm10.v
VVP cześć
i to będzie działać 50000 jednostek czasie zakończyć sim i zamknąć plik VCD. Aby uczynić tę sim dłuższą lub krótszą, należy zawsze zmienić linię # 50000.
Uzyskaj kopię gtkwave (za darmo), aby wyświetlić plik vcd. Korzystanie z gtkwave to zupełnie inny post, będziesz chciał zrobić coś takiego jak kliknięcie na znak + obok test_arm, następnie kliknij na arm10, które tam jest, pod sygnałami kliknij na addr_bus, aby podświetlić linię, a następnie kliknij pole dołączenia, kliknij na data_bus i kliknij przycisk dołączania, być może dodaj kilka rejestrów, r1, r2, itp. Jest pasek narzędzi, ale możesz również użyć czasu menu-> przybliżenie-> powiększenie, które jest ALT-F na mojej instalacji. wtedy nauczysz się powiększać i pomniejszać rzeczy.
Mówiąc z własnego doświadczenia, nie "widzisz swojego kodu" działa lepiej niż przy użyciu symulatora hdl. Właściwie, kiedy już się przyzwyczaisz, możesz mieć problemy z działaniem na krzemie, gdzie prawie nic nie widzisz.
Nie zrobiłem nic więcej niż uruchomić program testowy dołączony do tego modelu behawioralnego. nie wiem, co możesz lub nie możesz z tym zrobić.
Verilog $ readmemh jest całkiem prosty, po prostu chce odczytywać linie heksadecymalne do dowolnej pamięci. Możesz więc łatwo stworzyć narzędzie, które pobiera skompilowany kod ręki i tworzy plik ASCII, którego potrzebuje symulacja verilog.
Uwaga: model behawioralny (HDL) nie jest modelem syntezowalnym, co oznacza, że nie można z niego utworzyć mikroprocesora. Nic nie musi martwić się, że ARM będzie się znajdować na otwartej przestrzeni. –