Mikrosemi -LOGO

Wykrywanie i korekcja błędów Microsemi DG0618 w urządzeniach SmartFusion2 korzystających z pamięci DDR

Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć-DDR-OBRAZ-PRODUKTU

Siedziba firmy Microsemi
Jedno Przedsiębiorstwo, Aliso Viejo,
CA 92656 Stany Zjednoczone
W USA: +1 800-713-4113
Poza USA: +1 949-380-6100
Faks: +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Wszelkie prawa zastrzeżone. Microsemi i logo Microsemi są znakami towarowymi firmy Microsemi Corporation. Wszystkie inne znaki towarowe i znaki usługowe są własnością ich odpowiednich właścicieli

Microsemi nie udziela żadnych gwarancji, oświadczeń ani gwarancji dotyczących informacji zawartych w niniejszym dokumencie lub przydatności swoich produktów i usług do jakiegokolwiek konkretnego celu, a także nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub użytkowania jakiegokolwiek produktu lub obwodu. Produkty sprzedawane w ramach niniejszej Umowy oraz wszelkie inne produkty sprzedawane przez Microsemi zostały poddane ograniczonym testom i nie powinny być używane w połączeniu ze sprzętem lub aplikacjami o znaczeniu krytycznym. Wszelkie specyfikacje wydajności są uważane za wiarygodne, ale nie są weryfikowane, a Kupujący musi przeprowadzić i zakończyć wszystkie testy wydajności i inne testy produktów, samodzielnie i razem z dowolnymi produktami końcowymi lub zainstalowanymi w nich. Kupujący nie będzie polegał na żadnych danych i specyfikacjach wydajności lub parametrach dostarczonych przez Microsemi. Obowiązkiem Kupującego jest samodzielne określenie przydatności dowolnych produktów oraz ich przetestowanie i weryfikacja. Informacje dostarczone przez Microsemi są dostarczane „tak jak są, gdzie są” i ze wszystkimi wadami, a całe ryzyko związane z takimi informacjami jest w całości po stronie Kupującego. Microsemi nie przyznaje, w sposób wyraźny ani dorozumiany, żadnej stronie żadnych praw patentowych, licencji ani żadnych innych praw własności intelektualnej, czy to w odniesieniu do samych takich informacji, czy czegokolwiek opisanego w takich informacjach. Informacje zawarte w tym dokumencie są własnością firmy Microsemi i firma Microsemi zastrzega sobie prawo do wprowadzania zmian w informacjach zawartych w tym dokumencie lub w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia.

O Microsemi
Microsemi Corporation (Nasdaq: MSCC) oferuje kompleksowe portfolio półprzewodników i rozwiązań systemowych dla przemysłu lotniczego i obronnego, komunikacji, centrów danych i rynków przemysłowych. Produkty obejmują wysokowydajne i odporne na promieniowanie analogowe układy scalone z sygnałem mieszanym, FPGA, SoC i ASIC; produkty do zarządzania energią; urządzenia do pomiaru czasu i synchronizacji oraz rozwiązania precyzyjnego pomiaru czasu, wyznaczające światowy standard czasu; urządzenia do przetwarzania głosu; rozwiązania radiowe; elementy dyskretne; rozwiązań pamięci masowej i komunikacji dla przedsiębiorstw, technologii bezpieczeństwa i skalowalnych zabezpieczeń anty-tampprodukty; Rozwiązania Ethernetowe; Układy scalone Power-over-Ethernet i urządzenia typu midspan; a także niestandardowe możliwości projektowania i usługi. Microsemi ma siedzibę główną w Aliso Viejo w Kalifornii i zatrudnia około 4,800 pracowników na całym świecie. Dowiedz się więcej na www.microsemi.com.

Historia rewizji

Historia rewizji opisuje zmiany, które zostały wprowadzone w dokumencie. Zmiany są wymienione według rewizji, zaczynając od najnowszej publikacji.

  • Wersja 4.0
    Zaktualizowano dokument dotyczący wersji oprogramowania Libero v11.8.
  • Wersja 3.0
    Zaktualizowano dokument dotyczący wersji oprogramowania Libero v11.7.
  • Wersja 2.0
    Zaktualizowano dokument dotyczący wersji oprogramowania Libero v11.6.
  • Wersja 1.0
    Pierwsza wersja oprogramowania Libero SoC v11.5.

Wykrywanie i korygowanie błędów w urządzeniach SmartFusion2 korzystających z pamięci DDR

Wstęp
W środowisku podatnym na pojedyncze zdarzenie (SEU) pamięć o dostępie swobodnym (RAM) jest podatna na przejściowe błędy spowodowane przez ciężkie jony.
Niniejszy dokument opisuje możliwości EDAC układów SoC FPGA, które są wykorzystywane w aplikacjach z pamięciami połączonymi poprzez podsystem mikrokontrolera (MSS) DDR (MDDR).
Kontrolery EDAC zaimplementowane w urządzeniach SmartFusion2 obsługują pojedynczą korekcję błędów oraz podwójną detekcję błędów (SECDED). Wszystkie pamięci — rozszerzona statyczna pamięć o dostępie swobodnym (eSRAM), DDR, DDR o niskim zużyciu energii (LPDDR) — w urządzeniach SmartFusion2 MSS są chronione przez SECDED. Synchroniczna pamięć dynamiczna o dostępie swobodnym (SDRAM) DDR może być DDR2, DDR3 lub LPDDR1, w zależności od konfiguracji MDDR i sprzętowych możliwości ECC.
Podsystem SmartFusion2 MDDR obsługuje gęstość pamięci do 4 GB. W tym demo możesz wybrać dowolną lokalizację pamięci o wielkości 1 GB w przestrzeni adresowej DDR (od 0xA0000000 do 0xDFFFFFFF).
Gdy opcja SECDED jest włączona:

  • Operacja zapisu oblicza i dodaje 8 bitów kodu SECDED (do każdych 64 bitów danych)
  • Operacja odczytu odczytuje i porównuje dane z zapisanym kodem SECDED w celu obsługi 1-bitowej korekcji błędów i 2-bitowego wykrywania błędów

Poniższa ilustracja przedstawia schemat blokowy SmartFusion2 EDAC na DDR SDRAM.

Rysunek 1 • Diagram blokowy najwyższego poziomu

Funkcja EDAC DDR obsługuje następujące elementy:

  1.  Mechanizm SECDED
  2. Zapewnia przerwania dla procesora ARM Cortex-M3 i szkieletu FPGA po wykryciu błędu 1-bitowego lub 2-bitowego
  3. Przechowuje liczbę błędów 1-bitowych i 2-bitowych w rejestrach liczników błędów
  4. Przechowuje adres ostatniej 1-bitowej lub 2-bitowej lokalizacji pamięci, na którą wpływ miał błąd
  5. Przechowuje 1-bitowe lub 2-bitowe dane błędów w rejestrach SECDED
  6. dostarcza sygnały magistrali błędów do struktury FPGA

Aby uzyskać więcej informacji na temat EDAC, patrz UG0443: SmartFusion2 i IGLOO2 FPGA Security and Reliability User Guide oraz UG0446: SmartFusion2 and IGLOO2 FPGA High-Speed ​​DDR Interfaces User Guide.

Wymagania projektowe
W poniższej tabeli przedstawiono wymagania projektowe.

Tabela 1 • Wymagania projektowe

  • Opis wymagań projektowych
  • Wymagania sprzętowe
  • Płyta SmartFusion2 Advanced Development Kit wersja B lub nowsza
  • Programator FlashPro5 lub nowszy
  • Kabel USB A do mini-B USB
  • Zasilacz 12 V
  • Płyta rozszerzenia DDR3
  • System operacyjny Dowolny 64-bitowy lub 32-bitowy Windows XP SP2
  • Dowolny 64-bitowy lub 32-bitowy system Windows 7
  • Wymagania programowe
  • Libero® System-on-Chip (SoC) v11.8
  • SoftConsole v4.0
  • Oprogramowanie do programowania FlashPro v11.8
  • Host PC Drivers Sterowniki USB do UART
  • Framework do uruchomienia demonstracyjnego klienta Microsoft .NET Framework 4

Projekt demonstracyjny
Projekt demonstracyjny files są dostępne do pobrania z następującej ścieżki w Microsemi webstrona: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
Projekt demonstracyjny fileobejmują:

  • Konfiguracja DDR File
  • DDR_EDAC
  • Programowanie files
  • Plik wykonywalny GUI
  • Przeczytaj mnie file

Na poniższej ilustracji opisano strukturę najwyższego poziomu projektu fileS. Więcej informacji można znaleźć w pliku readme.txt file.

Rysunek 2 • Struktura najwyższego poziomu projektu demonstracyjnego

Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć DDR-2

Implementacja projektu demonstracyjnego
Podsystem MDDR posiada dedykowany kontroler EDAC. EDAC wykrywa błąd 1-bitowy lub błąd 2-bitowy podczas odczytu danych z pamięci. Jeśli EDAC wykryje błąd 1-bitowy, kontroler EDAC koryguje bit błędu. Jeśli EDAC jest włączony dla wszystkich błędów 1-bitowych i 2-bitowych, odpowiednie liczniki błędów w rejestrach systemowych są zwiększane i generowane są odpowiednie przerwania i sygnały magistrali błędów do struktury FPGA.
Dzieje się to w czasie rzeczywistym. Aby zademonstrować tę funkcję SECDED, błąd jest wprowadzany ręcznie, a następnie wykrywany i korygowany.
Ten projekt demonstracyjny obejmuje wykonanie następujących kroków:

  1. Włącz EDAC
  2. Zapisz dane do DDR
  3. Odczyt danych z DDR
  4. Wyłącz EDACa
  5. Uszkodzony 1 lub 2 bity
  6. Zapisz dane do DDR
  7. Włącz EDAC
  8. Przeczytaj dane
  9. W przypadku błędu 1-bitowego sterownik EDAC koryguje błąd, aktualizuje odpowiednie rejestry stanu i podaje dane zapisane w kroku 2 w operacji odczytu wykonanej w kroku 8.
  10. W przypadku błędu 2-bitowego generowane jest odpowiednie przerwanie i aplikacja musi poprawić dane lub podjąć odpowiednią akcję w procedurze obsługi przerwania. Te dwie metody są zademonstrowane w tym demo.

W tym demo zaimplementowano dwa testy: test pętli i test ręczny, które mają zastosowanie zarówno do błędów 1-bitowych, jak i 2-bitowych.

Test pętli
Test pętli jest wykonywany, gdy urządzenia SmartFusion2 odbierają polecenie testu pętli z GUI. Początkowo wszystkie liczniki błędów i rejestry związane z EDAC są wprowadzane w stan RESET.
Następujące kroki są wykonywane dla każdej iteracji.

  1. Włącz kontroler EDAC
  2. Zapisz dane w określonej lokalizacji pamięci DDR
  3. Wyłącz kontroler EDAC
  4. Zapisz 1-bitowe lub 2-bitowe dane wywołane błędami w tej samej lokalizacji pamięci DDR
  5. Włącz kontroler EDAC
  6. Odczytaj dane z tej samej lokalizacji pamięci DDR
  7. Wyślij 1-bitowe lub 2-bitowe dane wykrywania błędów i 1-bitowej korekcji błędów w przypadku błędu 1-bitowego do GUI

Test ręczny
Ta metoda umożliwia ręczne testowanie 1-bitowego wykrywania i korekcji błędów oraz 2-bitowego wykrywania błędów dla adresu pamięci DDR (0xA0000000 do 0xDFFFFFFF) z inicjalizacją. Błąd 1-bitowy/2-bitowy jest wprowadzany ręcznie do wybranego adresu pamięci DDR. Podane dane są zapisywane do wybranej lokalizacji pamięci DDR z włączonym EDAC. Uszkodzone 1-bitowe lub 2-bitowe dane błędów są następnie zapisywane w tej samej lokalizacji pamięci z wyłączonym EDAC. Informacja o wykrytym błędzie 1-bitowym lub 2-bitowym jest rejestrowana, gdy dane są odczytywane z tej samej lokalizacji pamięci z włączonym EDAC. Wydajny kontroler DMA
(HPDMA) służy do odczytu danych z pamięci DDR. Dwubitowa procedura obsługi przerwania wykrywania błędów jest zaimplementowana w celu podjęcia odpowiedniej akcji po wykryciu błędu 2-bitowego.
Na poniższej ilustracji opisano operacje demonstracyjne EDAC.

Rysunek 3 • Przebieg projektowania

Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć DDR-3

Notatka: W przypadku błędu 2-bitowego, gdy procesor Cortex-M3 odczytuje dane, wykonanie kodu przechodzi do procedury obsługi błędów twardych, ponieważ odebrane przerwanie jest spóźnione, aby procesor mógł odpowiedzieć. Zanim odpowie na przerwanie, może już przekazać dane i przypadkowo uruchomić polecenie. W rezultacie HRESP przestaje przetwarzać nieprawidłowe dane. Wykrywanie błędów 2-bitowych wykorzystuje HPDMA do odczytu danych z lokalizacji adresu DDR, co instruuje procesor, który odczytuje dane, ma błąd 2-bitowy i system powinien podjąć odpowiednie działania w celu odzyskania (obsługa przerwań ECC).

Konfigurowanie projektu demonstracyjnego
W tej sekcji opisano konfigurację płytki SmartFusion2 Advanced Development Kit, opcje GUI oraz sposób wykonania projektu demonstracyjnego.
Poniższe kroki opisują sposób konfigurowania wersji demonstracyjnej:

  1. Podłącz jeden koniec kabla USB mini-B do złącza J33 znajdującego się na płycie SmartFusion2 Advanced Development Kit. Podłącz drugi koniec kabla USB do komputera hosta. Dioda elektroluminescencyjna (LED) DS27 musi się zaświecić, wskazując, że połączenie UART zostało nawiązane. Upewnij się, że sterowniki mostka USB do UART są wykrywane automatycznie (można je zweryfikować w Menedżerze urządzeń), jak pokazano na poniższym rysunku.
    Rysunek 4 • Sterowniki mostka USB do UART
    Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć DDR-4
    Jeśli sterowniki mostka USB do UART nie są zainstalowane, pobierz i zainstaluj sterowniki z: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.
  2. Podłącz zworki na płycie SmartFusion2 Advanced Development Kit, jak pokazano w Tabeli 4, strona 11. Przełącznik zasilania SW7 musi być wyłączony podczas wykonywania połączeń zworek.

Rysunek 5 • Konfiguracja płytki SmartFusion2 Advanced Development Kit

Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć DDR-5

 Graficzny interfejs użytkownika
W tej sekcji opisano graficzny interfejs użytkownika DDR — EDAC Demo.

Rysunek 6 • DDR — demonstracyjny graficzny interfejs użytkownika EDAC

Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć DDR-6

GUI obsługuje następujące funkcje:

  1. Wybór portu COM i szybkości transmisji
  2. Wybór zakładki 1-bitowej korekcji błędów lub 2-bitowej detekcji błędów
  3. Pole adresowe do zapisu lub odczytu danych do lub z określonego adresu DDR
  4. Pole danych do zapisu lub odczytu danych do lub z określonego adresu DDR
  5. Sekcja konsoli szeregowej, aby wydrukować informacje o stanie otrzymane z aplikacji
  6. Włącz EDAC/Wyłącz EDAC: Włącza lub wyłącza EDAC
  7. Zapis: Umożliwia zapis danych pod podany adres
  8.  Odczyt: Umożliwia odczyt danych z określonego adresu
  9. Test pętli WŁ./WYŁ.: Umożliwia testowanie mechanizmu EDAC metodą pętli
  10.  Inicjalizacja: Umożliwia zainicjowanie predefiniowanej lokalizacji pamięci (w tym demo A0000000-A000CFFF)

Uruchamianie projektu demonstracyjnego
Poniższe kroki opisują sposób uruchamiania projektu:Poniższe kroki opisują sposób uruchamiania projektu:

  1. Włącz przełącznik zasilania, SW7.
  2. Zaprogramuj urządzenie SmarFusion2 za pomocą programowania file podane w projekcie files.(\ProgramowanieFile\EDAC_DDR3.stp) za pomocą oprogramowania do projektowania FlashPro, jak pokazano na poniższym rysunku.
    Rysunek 7 • Okno programowania FlashPro
    Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć DDR-7
  3. Naciśnij przełącznik SW6, aby zresetować płytkę po pomyślnym zaprogramowaniu.
  4. Uruchom plik wykonywalny EDAC_DDR Demo GUI file dostępne w projekcie files (\Plik wykonywalny GUI\ EDAC_DDR.exe). Zostanie wyświetlone okno GUI, jak pokazano na rysunku 8 na stronie 9.
  5. Kliknij Połącz, wybierze port COM i nawiąże połączenie. Opcja Połącz zmienia się na Rozłącz.
  6. Wybierz zakładkę 1-bitowa korekcja błędów lub 2-bitowe wykrywanie błędów.
  7. Można przeprowadzić testy ręczne i pętli.
  8. Kliknij przycisk Inicjuj, aby zainicjować pamięć DDR w celu wykonania testów ręcznych i pętli. Na konsoli szeregowej zostanie wyświetlony komunikat o zakończeniu inicjalizacji, jak pokazano na Rysunku 8, strona 9.

Rysunek 8 • Okno Inicjalizacja zakończona

Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć DDR-8

Wykonywanie testu pętli
Kliknij Test pętli włączony. Działa w trybie pętli, w którym odbywa się ciągła korekta i wykrywanie błędów. Wszystkie czynności wykonywane w urządzeniu SmartFusion2 są rejestrowane w sekcji Konsola szeregowa interfejsu GUI.

Tabela 2 • Adresy pamięci DDR3 używane w teście pętli

  • Pamięć DDR3
  • 1-bitowa korekcja błędów 0xA0008000
  • 2-bitowe wykrywanie błędów 0xA000C000

Wykonywanie testu ręcznego
W tej metodzie błędy są wprowadzane ręcznie za pomocą GUI. Wykonaj poniższe czynności, aby przeprowadzić 1-bitową korekcję błędów lub 2-bitowe wykrywanie błędów.

Tabela 3 • Adresy pamięci DDR3 używane w teście ręcznym

Wprowadź adres i pola danych (użyj 32-bitowych wartości szesnastkowych).

  • Pamięć DDR3
  • 1-bitowa korekcja błędów 0xA0000000-0xA0004000
  • 2-bitowe wykrywanie błędów 0xA0004000-0xA0008000
  1. Kliknij opcję Włącz EDAC.
  2. Kliknij Napisz.
  3. Kliknij Wyłącz EDAC.
  4. Zmień jeden bit (w przypadku korekcji błędów 1-bitowych) lub dwa bity (w przypadku wykrywania błędów 2-bitowych) w polu Dane (wprowadzenie błędu).
  5. Kliknij Napisz.
  6. Kliknij opcję Włącz EDAC.
  7. Kliknij Czytaj.
  8. Obserwuj wyświetlanie liczby błędów i pole danych w interfejsie GUI. Wartość licznika błędów wzrasta o 1.

Okno 1-bitowej korekcji pętli błędów pokazano na poniższym rysunku.

Rysunek 9 • 1-bitowe okno wykrywania pętli błędów

Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć DDR-9

Okno instrukcji wykrywania błędów 2-bitowych pokazano na poniższym rysunku.

Rysunek 10 • 2-bitowe okno Ręczne wykrywanie błędów

Microsemi -DG0618-Wykrywanie-i-korekta-błędów-na-SmartFusion2-Urządzenia-wykorzystujące-pamięć DDR-10

Wniosek
To demo pokazuje możliwości SmartFusion2 SECDED dla podsystemu MDDR.

Dodatek: Ustawienia zworek

W poniższej tabeli przedstawiono wszystkie wymagane zworki, które należy ustawić w zestawie SmartFusion2 Advanced Development Kit.

Tabela 4 • Ustawienia zworek SmartFusion2 Advanced Development Kit

Zworka : Pin (Od) : Pin (Do): Komentarze

  • J116, J353, J354, J54 1 2 To są domyślne ustawienia zworek w Zaawansowanym
  • J123 2 3 Płytka zestawu rozwojowego. Upewnij się, że te zworki są odpowiednio ustawione.
  • J124, J121, J32 1 2 JTAG programowanie przez FTDI

Przewodnik demonstracyjny DG0618 Wersja 4.0

Dokumenty / Zasoby

Wykrywanie i korekcja błędów Microsemi DG0618 w urządzeniach SmartFusion2 korzystających z pamięci DDR [plik PDF] Instrukcja użytkownika
DG0618 Wykrywanie i korekcja błędów w urządzeniach SmartFusion2 korzystających z pamięci DDR, DG0618, Wykrywanie i korygowanie błędów w urządzeniach SmartFusion2 korzystających z pamięci DDR, Urządzenia SmartFusion2 korzystające z pamięci DDR, Pamięć DDR

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *