Detectarea și corectarea erorilor Microsemi DG0618 pe dispozitivele SmartFusion2 care utilizează memoria DDR
Sediul Microsemi Corporate
One Enterprise, Aliso Viejo,
CA 92656 SUA
În SUA: +1 800-713-4113
În afara SUA: +1 949-380-6100
Fax: +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Toate drepturile rezervate. Microsemi și sigla Microsemi sunt mărci comerciale ale Microsemi Corporation. Toate celelalte mărci comerciale și mărci de servicii sunt proprietatea deținătorilor respectivi
Microsemi nu oferă nicio garanție, reprezentare sau garanție cu privire la informațiile conținute aici sau adecvarea produselor și serviciilor sale pentru un anumit scop și nici Microsemi nu își asumă nicio răspundere care decurge din aplicarea sau utilizarea oricărui produs sau circuit. Produsele vândute mai jos și orice alte produse vândute de Microsemi au fost supuse unor teste limitate și nu trebuie utilizate împreună cu echipamente sau aplicații esențiale. Se consideră că orice specificații de performanță sunt de încredere, dar nu sunt verificate, iar Cumpărătorul trebuie să efectueze și să finalizeze toate testele de performanță și alte teste ale produselor, singure și împreună cu sau instalate în orice produs final. Cumpărătorul nu se va baza pe date și specificații de performanță sau parametri furnizați de Microsemi. Este responsabilitatea Cumpărătorului să determine în mod independent caracterul adecvat al oricărui produs și să le testeze și să le verifice. Informațiile furnizate de Microsemi mai jos sunt furnizate „ca atare, unde se află” și cu toate defecțiunile, iar întregul risc asociat cu astfel de informații revine în totalitate Cumpărătorului. Microsemi nu acordă, în mod explicit sau implicit, niciunei părți niciun drept de brevet, licență sau orice alte drepturi de proprietate intelectuală, indiferent dacă se referă la astfel de informații în sine sau la orice lucru descris de astfel de informații. Informațiile furnizate în acest document sunt proprietatea Microsemi, iar Microsemi își rezervă dreptul de a face orice modificări ale informațiilor din acest document sau ale oricăror produse și servicii în orice moment, fără notificare.
Despre Microsemi
Microsemi Corporation (Nasdaq: MSCC) oferă un portofoliu cuprinzător de soluții de sisteme și semiconductori pentru industria aerospațială și apărare, comunicații, centre de date și piețe industriale. Produsele includ circuite integrate analogice cu semnal mixt de înaltă performanță și întărite la radiații, FPGA, SoC și ASIC; produse de management al energiei; dispozitive de cronometrare și sincronizare și soluții de timp precise, stabilind standardul mondial pentru timp; Dispozitive de procesare a vocii; soluții RF; componente discrete; soluții de stocare și comunicații pentru întreprinderi, tehnologii de securitate și anti-t scalabileamper produse; soluții Ethernet; Circuite integrate și midspan-uri Power-over-Ethernet; precum și capabilități și servicii de design personalizat. Microsemi are sediul în Aliso Viejo, California, și are aproximativ 4,800 de angajați la nivel global. Aflați mai multe la www.microsemi.com.
Istoricul revizuirilor
Istoricul revizuirilor descrie modificările care au fost implementate în document. Modificările sunt listate după revizuire, începând cu cea mai recentă publicație.
- Revizia 4.0
S-a actualizat documentul pentru lansarea software-ului Libero v11.8. - Revizia 3.0
S-a actualizat documentul pentru lansarea software-ului Libero v11.7. - Revizia 2.0
S-a actualizat documentul pentru lansarea software-ului Libero v11.6. - Revizia 1.0
Lansarea inițială pentru versiunea software Libero SoC v11.5.
Detectarea și corectarea erorilor pe dispozitivele SmartFusion2 care utilizează memoria DDR
Introducere
Într-un mediu susceptibil la un singur eveniment perturbat (SEU), memoria cu acces aleatoriu (RAM) este predispusă la erori tranzitorii cauzate de ionii grei.
Acest document descrie capacitățile EDAC ale SoC FPGA, care sunt utilizate în aplicații cu memorii conectate prin subsistemul microcontrolerului (MSS) DDR (MDDR).
Controlerele EDAC implementate în dispozitivele SmartFusion2 acceptă corectarea erorii unice și detectarea erorii duble (SECDED). Toate memoriile—memoria statică îmbunătățită cu acces aleatoriu (eSRAM), DDR, DDR de putere redusă (LPDDR) — din dispozitivele SmartFusion2 MSS sunt protejate de SECDED. Memoria DDR sincronă dinamică cu acces aleatoriu (SDRAM) poate fi DDR2, DDR3 sau LPDDR1, în funcție de configurația MDDR și de capabilitățile ECC hardware.
Subsistemul SmartFusion2 MDDR acceptă densități de memorie de până la 4 GB. În această demonstrație, puteți selecta orice locație de memorie de 1 GB în spațiul de adrese DDR (de la 0xA0000000 la 0xDFFFFFFF).
Când SECDED este activat:
- O operație de scriere calculează și adaugă 8 biți de cod SECDED (la fiecare 64 de biți de date)
- O operațiune de citire citește și verifică datele cu codul SECDED stocat pentru a sprijini corectarea erorilor pe 1 biți și detectarea erorilor pe 2 biți
Următoarea ilustrație descrie schema bloc a SmartFusion2 EDAC pe DDR SDRAM.
Figura 1 • Diagrama bloc de nivel superior
Caracteristica EDAC a DDR acceptă următoarele:
- mecanism SECDED
- Oferă întreruperi procesorului ARM Cortex-M3 și fabricii FPGA la detectarea unei erori de 1 biți sau a unei erori de 2 biți
- Stochează numărul de erori de 1 și 2 biți în registrele contorului de erori
- Stochează adresa ultimei locații de memorie afectate de eroare de 1 sau 2 biți
- Stochează datele de eroare pe 1 sau 2 biți în registrele SECDED
- furnizează semnale de eroare magistralei fabricii FPGA
Pentru mai multe informații despre EDAC, consultați UG0443: Ghidul utilizatorului de securitate și fiabilitate SmartFusion2 și IGLOO2 FPGA și UG0446: Ghidul utilizatorului de interfețe DDR de mare viteză SmartFusion2 și IGLOO2 FPGA.
Cerințe de proiectare
Următorul tabel prezintă cerințele de proiectare.
Tabelul 1 • Cerințe de proiectare
- Descrierea cerințelor de proiectare
- Cerințe hardware
- Placă SmartFusion2 Advanced Development Kit Rev B sau o versiune ulterioară
- Programator FlashPro5 sau mai recent
- Cablu USB A la mini-B
- Adaptor de alimentare 12 V
- Placă fiică DDR3
- Sistem de operare Orice Windows XP SP64 pe 32 de biți sau 2 de biți
- Orice Windows 64 pe 32 de biți sau 7 de biți
- Cerințe software
- Libero® System-on-Chip (SoC) v11.8
- SoftConsole v4.0
- Software de programare FlashPro v11.8
- Drivere PC gazdă Drivere USB la UART
- Framework pentru a rula clientul demonstrativ Microsoft .NET Framework 4
Proiectare Demo
Designul demonstrativ filesunt disponibile pentru descărcare din următoarea cale în Microsemi website: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
Designul demonstrativ fileinclud:
- Configurare DDR File
- DDR_EDAC
- Programare files
- GUI executabil
- Citește-mă file
Următoarea ilustrație descrie structura de nivel superior a designului files. Pentru mai multe detalii, consultați readme.txt file.
Figura 2 • Structura de nivel superior de proiectare demo
Implementare Demo Design
Subsistemul MDDR are un controler EDAC dedicat. EDAC detectează o eroare de 1 biți sau o eroare de 2 biți atunci când datele sunt citite din memorie. Dacă EDAC detectează eroarea de 1 bit, controlerul EDAC corectează bitul de eroare. Dacă EDAC este activat pentru toate erorile de 1 și 2 biți, contoarele de eroare corespunzătoare din registrele de sistem sunt incrementate și sunt generate întreruperile și semnalele magistralei de eroare corespunzătoare către structura FPGA.
Acest lucru se întâmplă în timp real. Pentru a demonstra această caracteristică SECDED, se introduce manual o eroare și se observă detectarea și corectarea.
Acest design demonstrativ implică implementarea următorilor pași:
- Activați EDAC
- Scrieți date în DDR
- Citiți date din DDR
- Dezactivați EDAC
- Corupți 1 sau 2 biți
- Scrieți date în DDR
- Activați EDAC
- Citiți datele
- În cazul unei erori de 1 bit, controlerul EDAC corectează eroarea, actualizează registrele de stare corespunzătoare și oferă datele scrise în Pasul 2 la operația de citire efectuată la Pasul 8.
- În cazul unei erori de 2 biți, se generează o întrerupere corespunzătoare și aplicația trebuie să corecteze datele sau să ia acțiunile corespunzătoare în gestionarea întreruperilor. Aceste două metode sunt demonstrate în această demonstrație.
Două teste sunt implementate în această demonstrație: testul buclei și testul manual și sunt aplicabile atât erorilor de 1 biți, cât și de 2 biți.
Test de buclă
Testul de buclă este executat atunci când dispozitivele SmartFusion2 primesc o comandă de testare a buclei de la GUI. Inițial, toate contoarele de erori și registrele legate de EDAC sunt plasate în starea RESET.
Următorii pași sunt executați pentru fiecare iterație.
- Activați controlerul EDAC
- Scrieți datele în locația de memorie DDR specifică
- Dezactivați controlerul EDAC
- Scrieți datele induse de eroare de 1 sau 2 biți în aceeași locație de memorie DDR
- Activați controlerul EDAC
- Citiți datele din aceeași locație de memorie DDR
- Trimiteți datele de detectare a erorilor de 1 sau 2 biți și date de corectare a erorilor de 1 bit în cazul unei erori de 1 bit către GUI
Test manual
Această metodă permite testarea manuală a detectării și corectării erorilor pe 1 biți și a detectării erorilor pe 2 biți pentru adresa de memorie DDR (0xA0000000 până la 0xDFFFFFFF) cu inițializare. O eroare de 1 biți/2 biți este introdusă manual la o adresă de memorie DDR selectată. Datele date sunt scrise în locația de memorie DDR selectată cu EDAC activat. Datele de eroare corupte de 1 sau 2 biți sunt apoi scrise în aceeași locație de memorie cu EDAC dezactivat. Informațiile despre eroarea de 1 sau 2 biți detectată sunt înregistrate atunci când datele sunt citite din aceeași locație de memorie cu EDAC activat. Controlerul DMA de înaltă performanță
(HPDMA) este folosit pentru a citi datele din memoria DDR. Handler-ul de întrerupere de detectare a erorilor pe doi biți este implementat pentru a lua măsurile corespunzătoare atunci când este detectată o eroare pe 2 biți.
Următoarea ilustrație descrie operațiunile demonstrative EDAC.
Figura 3 • Fluxul de proiectare
Nota: Pentru o eroare de 2 biți, atunci când procesorul Cortex-M3 citește datele, execuția codului trece la gestionarea erorilor, deoarece întreruperea primită întârzie să răspundă procesorul. În momentul în care răspunde la întrerupere, este posibil să fi trecut deja datele și să fi lansat accidental o comandă. Ca urmare, HRSP oprește procesarea datelor incorecte. Detectarea erorilor pe 2 biți folosește HPDMA pentru a citi datele din locația adresei DDR, care indică procesorului că citirea datelor are o eroare pe 2 biți și că sistemul ar trebui să ia măsurile corespunzătoare pentru a recupera (Managerul de întrerupere ECC).
Configurarea designului demonstrativ
Această secțiune descrie configurarea plăcii SmartFusion2 Advanced Development Kit, opțiunile GUI și modul de executare a designului demonstrativ.
Următorii pași descriu modul de configurare a demonstrației:
- Conectați un capăt al cablului USB mini-B la conectorul J33 furnizat pe placa SmartFusion2 Advanced Development Kit. Conectați celălalt capăt al cablului USB la computerul gazdă. Dioda emițătoare de lumină (LED) DS27 trebuie să se aprindă, indicând că legătura UART a fost stabilită. Asigurați-vă că driverele de punte USB la UART sunt detectate automat (pot fi verificate în Managerul de dispozitive), așa cum se arată în figura următoare.
Figura 4 • Drivere USB la UART Bridge
Dacă driverele de punte USB la UART nu sunt instalate, descărcați și instalați driverele de la: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip. - Conectați jumperii pe placa SmartFusion2 Advanced Development Kit, așa cum se arată în Tabelul 4, pagina 11. Comutatorul de alimentare SW7 trebuie să fie oprit în timp ce se realizează conexiunile prin jumper.
Figura 5 • SmartFusion2 Advanced Development Kit Board Setup
Interfață grafică cu utilizatorul
Această secțiune descrie DDR – EDAC Demo GUI.
Figura 6 • DDR – EDAC Demo GUI
GUI acceptă următoarele caracteristici:
- Selectarea portului COM și a vitezei de transmisie
- Selectarea filei de corectare a erorilor pe 1 biți sau a detectării erorilor pe 2 biți
- Câmp de adresă pentru a scrie sau a citi date la sau de la adresa DDR specificată
- Câmp de date pentru a scrie sau a citi date la sau de la adresa DDR specificată
- Secțiunea Consolă serială pentru a tipări informațiile de stare primite de la aplicație
- Activare EDAC/Dezactivare EDAC: Activează sau dezactivează EDAC
- Scriere: Permite scrierea datelor la adresa specificată
- Citire: Permite citirea datelor de la adresa specificată
- Test de buclă ON/OFF: Permite testarea mecanismului EDAC într-o metodă de buclă
- Inițializare: Permite inițializarea locației de memorie predefinită (în această demonstrație A0000000-A000CFFF)
Rularea Proiectului Demo
Următorii pași descriu cum să rulați proiectul: Următorii pași descriu cum să rulați proiectul:
- Porniți întrerupătorul de alimentare, SW7.
- Programați dispozitivul SmarFusion2 cu programarea file prevăzute în proiect files.(\ProgramareFile\EDAC_DDR3.stp) folosind software-ul de proiectare FlashPro, așa cum se arată în figura următoare.
Figura 7 • Fereastra de programare FlashPro
- Apăsați comutatorul SW6 pentru a reseta placa după programarea cu succes.
- Lansați executabilul EDAC_DDR Demo GUI file disponibile în design files (\GUI Executable\EDAC_DDR.exe). Fereastra GUI este afișată, așa cum se arată în Figura 8, pagina 9.
- Faceți clic pe Conectare, selectează portul COM și stabilește conexiunea. Opțiunea de conectare se modifică în Deconectare.
- Selectați fila Corectare erori pe 1 biți sau Detectare erori pe 2 biți.
- Pot fi efectuate teste manuale și bucle.
- Faceți clic pe Inițializare pentru a inițializa memoria DDR pentru a efectua testele manuale și bucle, un mesaj de finalizare a inițializării este afișat pe Consola serială, așa cum se arată în Figura 8, pagina 9.
Figura 8 • Fereastra de inițializare finalizată
Efectuarea testului buclei
Faceți clic pe Loop Test ON. Funcționează în modul buclă, unde se realizează corectarea continuă și detectarea erorilor. Toate acțiunile efectuate în dispozitivul SmartFusion2 sunt înregistrate în secțiunea Consolă serială a GUI.
Tabelul 2 • Adresele de memorie DDR3 utilizate în Loop Test
- Memorie DDR3
- Corectarea erorii pe 1 bit 0xA0008000
- Detectarea erorii pe 2 biți 0xA000C000
Efectuarea testului manual
În această metodă, erorile sunt introduse manual folosind GUI. Utilizați următorii pași pentru a executa corectarea erorilor pe 1 biți sau detectarea erorilor pe 2 biți.
Tabelul 3 • Adresele de memorie DDR3 utilizate în Testarea manuală
Câmpurile Adresă de intrare și Date (utilizați valori hexazecimale pe 32 de biți).
- Memorie DDR3
- Corectarea erorii pe 1 bit 0xA0000000-0xA0004000
- Detectare eroare pe 2 biți 0xA0004000-0xA0008000
- Faceți clic pe Activare EDAC.
- Faceți clic pe Scrieți.
- Faceți clic pe Dezactivați EDAC.
- Schimbați un bit (în cazul corectării erorii pe 1 bit) sau doi biți (în cazul detectării erorii pe 2 biți) în câmpul Date (introducerea erorii).
- Faceți clic pe Scrieți.
- Faceți clic pe Activare EDAC.
- Faceți clic pe Citiți.
- Observați afișarea numărului de erori și câmpul de date din GUI. Valoarea numărului de erori crește cu 1.
Fereastra de corectare a buclei de eroare de 1 bit este prezentată în figura următoare.
Figura 9 • Fereastra de detectare a buclei de eroare pe 1 bit
Fereastra manuală de detectare a erorilor pe 2 biți este prezentată în figura următoare.
Figura 10 • Fereastra manuală de detectare a erorilor pe 2 biți
Concluzie
Această demonstrație arată capabilitățile SmartFusion2 SECDED pentru subsistemul MDDR.
Anexă: Setări jumper
Următorul tabel prezintă toți jumperii necesari pentru setarea setului de dezvoltare avansată SmartFusion2.
Tabelul 4 • Setări Jumper Kit de dezvoltare avansată SmartFusion2
Jumper : Pin (De la) : Pin (Către) : Comentarii
- J116, J353, J354, J54 1 2 Acestea sunt setările implicite ale jumper-urilor ale Advanced
- J123 2 3 Placă kit de dezvoltare. Asigurați-vă că aceste jumperi sunt setate corespunzător.
- J124, J121, J32 1 2 JTAG programare prin FTDI
Ghid demonstrativ DG0618 Revizia 4.0
Documente/Resurse
![]() |
Detectarea și corectarea erorilor Microsemi DG0618 pe dispozitivele SmartFusion2 care utilizează memoria DDR [pdfGhid de utilizare DG0618 Detectarea și corectarea erorilor pe dispozitive SmartFusion2 care utilizează memorie DDR, DG0618, Detectare și corectare a erorilor pe dispozitive SmartFusion2 care utilizează memorie DDR, Dispozitive SmartFusion2 care utilizează memorie DDR, memorie DDR |