Detectarea și corectarea erorilor MICROCHIP pe memoria RTG4 LSRAM
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
Mai jos este un rezumat al modificărilor aduse în această revizuire.
- S-a actualizat documentul pentru Libero SoC v2021.2.
- Adăugat Anexa 1: Programarea dispozitivului utilizând FlashPro Express, pagina 14.
- Adăugat Anexa 2: Rularea scriptului TCL, pagina 16.
- S-au eliminat referințele la numerele versiunii Libero.
Revizia 3.0
S-a actualizat documentul pentru lansarea software-ului Libero v11.9 SP1.
Revizia 2.0
S-a actualizat documentul pentru lansarea software-ului Libero v11.8 SP2.
Revizia 1.0
Prima publicație a acestui document.
Detectarea și corectarea erorilor pe memoria RTG4 LSRAM
Acest design de referință descrie capabilitățile de detectare și corectare a erorilor (EDAC) ale LSRAM-urilor RTG4™ FPGA. Într-un mediu susceptibil la un singur eveniment deranjat (SEU), RAM este predispusă la erori tranzitorii cauzate de ionii grei. Aceste erori pot fi detectate și corectate prin utilizarea codurilor de corectare a erorilor (ECC). Blocurile RTG4 FPGA RAM au controlere EDAC încorporate pentru a genera coduri de corectare a erorilor pentru corectarea unei erori de 1 biți sau detectarea unei erori de 2 biți.
Dacă este detectată o eroare de 1 bit, controlerul EDAC corectează bitul de eroare și setează indicatorul de corectare a erorilor (SB_CORRECT) la activ ridicat. Dacă este detectată o eroare de 2 biți, controlerul EDAC setează indicatorul de detectare a erorilor (DB_DETECT) la activ ridicat.
Pentru mai multe informații despre funcționalitatea RTG4 LSRAM EDAC, consultați UG0574: RTG4 FPGA Fabric
Ghidul utilizatorului.
În acest design de referință, eroarea de 1 bit sau de 2 biți este introdusă prin intermediul interfeței grafice SmartDebug. EDAC este observat folosind o interfață grafică cu utilizatorul (GUI), utilizând interfața UART pentru a accesa LSRAM pentru citiri/scrieri de date, Libero® System-on-Chip (SoC) SmartDebug (JTAG) este utilizată pentru a injecta erorile în memoria LSRAM.
Cerințe de proiectare
Tabelul 1 listează cerințele de proiectare de referință pentru rularea demonstrației RTG4 LSRAM EDAC.
Tabelul 1 • Cerințe de proiectare
Software
- Libero SoC
- FlashPro Express
- SmartDebug
- Drivere pentru PC gazdă Drivere USB la UART
Nota: Libero SmartDesign și capturile de ecran de configurare prezentate în acest ghid au doar scop ilustrativ.
Deschideți designul Libero pentru a vedea cele mai recente actualizări.
Cerințe preliminare
Înainte de a începe:
Descărcați și instalați Libero SoC (după cum este indicat în website-ul pentru acest design) pe computerul gazdă din următoarea locație: https://www.microsemi.com/product-directory/design-resources/1750-libero-soc
Proiectare Demo
Descărcați designul demonstrativ files din Microsemi website la: http://soc.microsemi.com/download/rsc/?f=rtg4_dg0703_df
Designul demonstrativ fileinclud:
- Proiect Libero SoC
- GUI de instalare
- Programare files
- Citiți-mă.txt file
- TCL_Scripts
Aplicația GUI de pe computerul gazdă emite comenzi către dispozitivul RTG4 prin interfața USB-UART. Această interfață UART este proiectată cu CoreUART, care este un IP logic din catalogul Libero SoC IP. CoreUART IP din structura RTG4 primește comenzi și le transmite către logica decodorului de comenzi. Logica decodorului de comenzi decodifică comanda de citire sau scriere, care este executată folosind logica interfeței de memorie.
Blocul de interfață de memorie este utilizat pentru a citi/scrie și monitoriza semnalizatoarele de eroare LSRAM. EDAC-ul încorporat corectează eroarea de 1 bit în timpul citirii din LSRAM și oferă date corectate interfeței cu utilizatorul, dar nu scrie datele corectate înapoi în LSRAM. LSRAM EDAC încorporat nu implementează o funcție de spălare. Designul demonstrativ implementează logica de scrub, care monitorizează indicatorul de corecție pe 1 bit și actualizează LSRAM cu datele corectate dacă apare o eroare pe un singur bit.
SmartDebug GUI este folosit pentru a injecta erori de 1 sau 2 biți în datele LSRAM.
Figura 1 prezintă diagrama bloc de nivel superior a designului demonstrativ RTG4 LSRAM EDAC.
Figura 1 • Diagrama bloc de nivel superior
Următoarele sunt configurațiile de proiectare demonstrative:
- LSRAM este configurat pentru modul ×18 și EDAC este activat prin conectarea semnalului LSRAM ECC_EN la mare.
Nota: LSRAM EDAC este acceptat doar pentru modurile ×18 și ×36. - CoreUART IP este configurat pentru a comunica cu aplicația PC gazdă la o viteză de 115200 baud.
- RTG4FCCCECALIB_C0 este configurat pentru a tacta CoreUART și altă logică fabrică la 80 MHz.
Caracteristici
Următoarele sunt caracteristicile de proiectare demonstrative:
- Citiți și scrieți la LSRAM
- Injectați erori de 1 și 2 biți folosind SmartDebug
- Afișează valorile numărului de erori de 1 și 2 biți
- Prevedere pentru a șterge valorile numărului de erori
- Activați sau dezactivați logica de curățare a memoriei
Descriere
Acest design demonstrativ implică implementarea următoarelor sarcini:
- Inițializarea și accesarea LSRAM
Logica interfeței de memorie implementată în logica fabricii primește comanda de inițializare de la GUI și inițializează primele 256 de locații de memorie ale LSRAM cu datele incrementale. De asemenea, efectuează operațiunile de citire și scriere în cele 256 de locații de memorie ale LSRAM prin primirea adresei și a datelor de la GUI. Pentru o operațiune de citire, designul preia datele de la LSRAM și le furnizează GUI pentru afișare. Se așteaptă ca designul să nu inducă erori înainte de a utiliza SmartDebug.
Nota: Locațiile de memorie neinițializate pot avea valori aleatorii, iar SmartDebug poate afișa erori pe un singur bit sau pe dublu biți în acele locații.
- Injectarea erorilor de 1 sau 2 biți
SmartDebug GUI este folosit pentru a injecta erorile de 1 sau 2 biți în locația de memorie specificată a LSRAM. Următoarele operațiuni sunt efectuate folosind SmartDebug pentru a injecta erori de 1 și 2 biți în LSRAM:- Deschideți SmartDebug GUI, faceți clic pe Debug FPGA Array.
- Accesați fila Blocuri de memorie, selectați instanța de memorie și faceți clic dreapta pe Adăugare.
- Pentru a citi blocul de memorie, faceți clic pe Citire bloc.
- Injectați eroare pe un singur bit sau pe dublu bit în orice locație a LSRAM-ului de o anumită adâncime.
- Pentru a scrie în locația modificată, faceți clic pe Write Block.
În timpul operațiunii de citire și scriere LSRAM prin intermediul SmartDebug (JTAG), controlerul EDAC este ocolit și nu calculează biții ECC pentru operațiunea de scriere din pasul e.
- Numărarea erorilor
Contoarele de 8 biți sunt folosite pentru a furniza un număr de erori și sunt proiectate în logica fabricii pentru a număra erorile de 1 sau 2 biți. Logica decodorului de comenzi furnizează valorile de numărare la GUI atunci când primește comenzi de la GUI.
Structura de ceas
În acest design demonstrativ, există un domeniu de ceas. Oscilatorul intern de 50 MHz conduce RTG4FCCC, care conduce în continuare RTG4FCCCECALIB_C0. RTG4FCCCECALIB_C0 generează un ceas de 80 MHz care oferă o sursă de ceas modulelor COREUART, cmd_decoder, TPSRAM_ECC și RAM_RW.
Următoarea figură arată structura de sincronizare a designului demonstrativ.
Figura 2 • Structura de ceas
Resetați Structura
În acest design demonstrativ, semnalul de resetare către modulele COREUART, cmd_decoder și RAM_RW este furnizat prin portul LOCK al RTG4FCCCECALIB_C0. Următoarea figură arată structura de resetare a designului demonstrativ.
Figura 3 • Resetare Structură
Configurarea designului demonstrativ
Următoarele secțiuni descriu cum să configurați kitul de dezvoltare RTG4 și GUI pentru a rula designul demonstrativ.
Setări Jumper
- Conectați jumperii la kitul de dezvoltare RTG4, așa cum se arată în Tabelul 2.
Tabelul 2 • Setări jumperJumper Fixați (de la) Fixați (către) Comentarii J11, J17, J19, J21, J23, J26, J27, J28 1 2 Implicit J16 2 3 Implicit J32 1 2 Implicit J33 1 3 Implicit 2 4 Nota: Opriți comutatorul de alimentare, SW6, în timp ce conectați jumperii.
- Conectați cablul USB (mini USB la cablu USB de tip A) la J47 al setului de dezvoltare RTG4 și celălalt capăt al cablului la portul USB al computerului gazdă.
- Asigurați-vă că driverele de punte USB la UART sunt detectate automat. Acest lucru poate fi verificat în managerul de dispozitive al computerului gazdă.
Figura 4 prezintă proprietățile portului serial USB 2.0 și convertorul serial COM31 și USB C conectat.
Figura 4 • Drivere USB la UART Bridge
Nota: Dacă driverele de punte USB la UART nu sunt instalate, descărcați și instalați driverele de la www.microsemi.com//documents/CDM_2.08.24_WHQL_Certified.zip
Figura 5 arată configurarea plăcii pentru rularea demonstrației EDAC pe kitul de dezvoltare RTG4.
Programarea Proiectului Demo
- Lansați software-ul Libero SOC.
- Pentru a programa kit-ul de dezvoltare RTG4 cu sarcina file furnizate ca parte a proiectării fileDacă utilizați software-ul FlashPro Express, consultați Anexa 1: Programarea dispozitivului utilizând FlashPro Express, pagina 14.
Nota: Odată terminată programarea cu lucrarea file prin intermediul software-ului FlashPro Express, treceți la EDAC Demo GUI, pagina 9. În caz contrar, treceți la pasul următor. - În fluxul de proiectare Libero, faceți clic pe Run Program action.
- Odată ce programarea este finalizată, în fața „Run Program action” apare o bifă verde, indicând programarea cu succes a designului demonstrativ.
EDAC Demo GUI
Demo-ul EDAC este furnizat cu o interfață grafică ușor de utilizat, așa cum se arată în Figura 7, care rulează pe computerul gazdă, care comunică cu kitul de dezvoltare RTG4. UART este utilizat ca protocol de comunicare de bază între computerul gazdă și kitul de dezvoltare RTG4.
GUI conține următoarele secțiuni:
- Selectarea portului COM pentru a stabili conexiunea UART la RTG4 FPGA cu viteza de 115200 baud.
- Scriere memorie LSRAM: Pentru a scrie datele pe 8 biți la adresa de memorie LSRAM specificată.
- Scrubbing memorie: Pentru a activa sau dezactiva logica de curățare.
- Citire memorie LSRAM: Pentru a citi datele pe 8 biți din adresa de memorie LSRAM specificată.
- Număr de erori: Afișează numărul de erori și oferă o opțiune pentru a șterge valoarea contorului la zero.
- Număr de erori de 1 bit: Afișează numărul de erori de 1 bit și oferă o opțiune de a șterge valoarea contorului la zero.
- Număr de erori pe 2 biți: Afișează numărul de erori pe 2 biți și oferă o opțiune de a șterge valoarea contorului la zero.
- Date jurnal: furnizează informații de stare pentru fiecare operațiune efectuată folosind GUI.
Rularea demonstrației
Următorii pași descriu cum să rulați demonstrația:
- Du-te la \v1.2.2\v1.2.2\Exe și faceți dublu clic pe EDAC_GUI.exe așa cum se arată în Figura 8.
- Selectați portul COM31 din listă și faceți clic pe Conectare.
Injectarea și corectarea erorilor pe un singur bit
- În designul Libero furnizat, faceți dublu clic pe Designul SmartDebug din fluxul de proiectare.
- În GUI SmartDebug, faceți clic pe Debug FPGA Array.
- În fereastra Debug FPGA Array, accesați fila Memory Blocks. Acesta va arăta blocul LSRAM în design cu un aspect logic și fizic view. Blocurile logice sunt afișate cu o pictogramă L, iar blocurile fizice sunt afișate cu o pictogramă P.
- Selectați instanța blocului fizic și faceți clic dreapta pe Adăugare.
- Pentru a citi blocul de memorie, faceți clic pe Citire bloc.
- Injectați eroare de 1 bit în datele de 8 biți în orice locație a LSRAM până la adâncimea 256, așa cum se arată în figura următoare, unde eroarea de 1 bit este injectată în locația 0 a LSRAM.
- Faceți clic pe Write Block pentru a scrie datele modificate în locația dorită.
- Accesați interfața grafică EDAC și introduceți câmpul Adresă în secțiunea Citire memorie LSRAM și faceți clic pe Citire, așa cum se arată în figura următoare.
- Observați câmpurile Număr de erori de 1 bit și Citiți date din GUI. Valoarea numărului de erori crește cu 1.
Câmpul Citire date afișează datele corecte pe măsură ce EDAC corectează bitul de eroare.
Nota: Dacă curățarea memoriei nu este activată, atunci numărul de erori este incrementat pentru fiecare citire de la aceeași adresă LSRAM, deoarece provoacă eroarea de 1 bit.
Injectare și detectare eroare dublu bit
- Efectuați pasul 1 până la pasul 5 așa cum este indicat în Injectarea și corectarea erorii pe un singur bit, pagina 10.
- Injectați eroare de 2 biți în datele de 8 biți în orice locație a LSRAM până la adâncimea 256, așa cum se arată în figura următoare, unde eroarea de 2 biți este injectată în locația „A” a LSRAM-ului.
- Faceți clic pe Write Block pentru a scrie datele modificate în locația dorită.
- Accesați interfața grafică EDAC și introduceți câmpul Adresă în secțiunea Citire memorie LSRAM și faceți clic pe Citire, așa cum se arată în figura următoare.
- Observați câmpurile Număr de erori pe 2 biți și Citiți date din GUI. Valoarea numărului de erori crește cu 1.
Câmpul Citire date afișează datele corupte.
Toate acțiunile efectuate în RTG4 sunt înregistrate în secțiunea Serial Console a GUI.
Concluzie
Această demonstrație evidențiază capacitățile EDAC ale memoriilor RTG4 LSRAM. Eroarea de 1 biți sau eroarea de 2 biți sunt introduse prin GUI SmartDebug. Corectarea erorilor pe 1 biți și detectarea erorilor pe 2 biți este observată folosind o interfață grafică EDAC.
Programarea dispozitivului utilizând FlashPro Express
Această secțiune descrie modul de programare a dispozitivului RTG4 cu sarcina de programare file folosind FlashPro Express.
Pentru a programa dispozitivul, efectuați următorii pași:
- Asigurați-vă că setările jumper-ului de pe placă sunt aceleași cu cele enumerate în Tabelul 3 din UG0617:
Ghidul utilizatorului RTG4 Development Kit. - Opțional, jumperul J32 poate fi setat pentru a conecta pinii 2-3 atunci când utilizați un programator extern FlashPro4, FlashPro5 sau FlashPro6 în loc de setarea implicită a jumperului pentru a utiliza FlashPro5 încorporat.
Nota: Întrerupătorul de alimentare, SW6, trebuie să fie oprit în timp ce se realizează conexiunile prin jumper. - Conectați cablul de alimentare la conectorul J9 de pe placă.
- Porniți comutatorul de alimentare SW6.
- Dacă utilizați FlashPro5 încorporat, conectați cablul USB la conectorul J47 și la computerul gazdă.
Alternativ, dacă utilizați un programator extern, conectați cablul panglică la JTAG antetul J22 și conectați programatorul la computerul gazdă. - Pe computerul gazdă, lansați software-ul FlashPro Express.
- Faceți clic pe New sau selectați New Job Project din FlashPro Express Job din meniul Project pentru a crea un nou proiect de job, așa cum se arată în figura următoare.
- Introduceți următoarele în caseta de dialog New Job Project din FlashPro Express Job:
- Munca de programare file: Faceți clic pe Răsfoire și navigați la locația în care se află .job file este localizat și selectați file. Locația implicită este: \rtg4_dg0703_df\Programming_Job
- Locația proiectului FlashPro Express: faceți clic pe Răsfoire și navigați la locația dorită a proiectului FlashPro Express.
- Faceți clic pe OK. Programarea necesară file este selectat și gata pentru a fi programat în dispozitiv.
- Va apărea fereastra FlashPro Express, confirmați că apare un număr de programator în câmpul Programator. Dacă nu, confirmați conexiunile plăcii și faceți clic pe Reîmprospătare/Rescanați programatori.
- Faceți clic pe RUN. Când dispozitivul este programat cu succes, este afișată starea RUN PASSED, așa cum se arată în figura următoare.
- Închideți FlashPro Express sau faceți clic pe Ieșire în fila Proiect.
Rularea scriptului TCL
Scripturile TCL sunt furnizate în design filefolderul s din directorul TCL_Scripts. Dacă este necesar, designul
fluxul poate fi reprodus de la implementarea proiectării până la generarea jobului file.
Pentru a rula TCL, urmați pașii de mai jos:
- Lansați software-ul Libero
- Selectați Proiect > Executați script...
- Faceți clic pe Răsfoire și selectați script.tcl din directorul TCL_Scripts descărcat.
- Faceți clic pe Run.
După executarea cu succes a scriptului TCL, proiectul Libero este creat în directorul TCL_Scripts.
Pentru mai multe informații despre scripturile TCL, consultați rtg4_dg0703_df/TCL_Scripts/readme.txt.
Consultați Ghidul de referință al comenzilor Libero® SoC TCL pentru mai multe detalii despre comenzile TCL. Contactați asistența tehnică pentru orice întrebări întâlnite la rularea scriptului TCL.
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, o subsidiară deținută în totalitate a Microchip Technology Inc. (Nasdaq: MCHP), oferă un portofoliu cuprinzător de soluții de semiconductori și sisteme 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. Aflați mai multe la www.microsemi.com.
Sediul Microsemi
One Enterprise, Aliso Viejo,
CA 92656 SUA
În SUA: +1 800-713-4113
În afara SUA: +1 949-380-6100
Vânzări: +1 949-380-6136
Fax: +1 949-215-4996
E-mail: vânzări.support@microsemi.com
www.microsemi.com
©2021 Microsemi, o subsidiară deținută în totalitate a Microchip Technology Inc. Toate drepturile rezervate. Microsemi și sigla Microsemi sunt mărci comerciale înregistrate ale Microsemi Corporation. Toate celelalte mărci comerciale și mărci de servicii sunt proprietatea deținătorilor respectivi.
Proprietarul Microsemi DG0703 Revizia 4.0
Documente/Resurse
![]() |
Detectarea și corectarea erorilor MICROCHIP pe memoria RTG4 LSRAM [pdfGhid de utilizare DG0703 Demo, detectarea erorilor și corectarea pe memoria RTG4 LSRAM, detectarea și corectarea pe memoria RTG4 LSRAM, memoria RTG4 LSRAM, memoria LSRAM |