Microsemi DG0618 Foutdetectie en -correctie op SmartFusion2-apparaten met DDR-geheugen
Microsemi-hoofdkantoor
Een onderneming, Aliso Viejo,
CA 92656 VS.
Binnen de VS: +1 800-713-4113
Buiten de VS: +1 949-380-6100
Faxen: +1 949-215-4996
E-mailadres: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Alle rechten voorbehouden. Microsemi en het Microsemi-logo zijn handelsmerken van Microsemi Corporation. Alle andere handelsmerken en servicemerken zijn eigendom van hun respectievelijke eigenaren.
Microsemi geeft geen garantie, verklaring of waarborg met betrekking tot de hierin opgenomen informatie of de geschiktheid van haar producten en diensten voor een bepaald doel, noch aanvaardt Microsemi enige aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van een product of circuit. De producten die hieronder worden verkocht en alle andere producten die door Microsemi worden verkocht, zijn onderworpen aan beperkte tests en mogen niet worden gebruikt in combinatie met bedrijfskritieke apparatuur of toepassingen. Alle prestatiespecificaties worden geacht betrouwbaar te zijn, maar zijn niet geverifieerd, en de Koper moet alle prestatie- en andere tests van de producten uitvoeren en voltooien, alleen en samen met, of geïnstalleerd in, eventuele eindproducten. Koper zal zich niet verlaten op door Microsemi verstrekte gegevens en prestatiespecificaties of parameters. Het is de verantwoordelijkheid van de koper om onafhankelijk de geschiktheid van producten te bepalen en deze te testen en te verifiëren. De informatie die hieronder door Microsemi wordt verstrekt, wordt geleverd "zoals het is, waar het is" en met alle fouten, en het volledige risico dat aan dergelijke informatie is verbonden, ligt volledig bij de Koper. Microsemi verleent aan geen enkele partij, expliciet of impliciet, octrooirechten, licenties of andere IE-rechten, met betrekking tot dergelijke informatie zelf of iets dat door dergelijke informatie wordt beschreven. De informatie in dit document is eigendom van Microsemi en Microsemi behoudt zich het recht voor om op elk moment en zonder voorafgaande kennisgeving wijzigingen aan te brengen in de informatie in dit document of in producten en diensten.
Over Microsemi
Microsemi Corporation (Nasdaq: MSCC) biedt een uitgebreid portfolio van halfgeleider- en systeemoplossingen voor ruimtevaart en defensie, communicatie, datacenters en industriële markten. Producten omvatten hoogwaardige en stralingsbestendige geïntegreerde circuits met gemengd signaal, FPGA's, SoC's en ASIC's; producten voor energiebeheer; timing- en synchronisatieapparatuur en nauwkeurige tijdoplossingen, die de wereldstandaard voor tijd bepalen; apparaten voor spraakverwerking; RF-oplossingen; discrete componenten; opslag- en communicatieoplossingen voor ondernemingen, beveiligingstechnologieën en schaalbare anti-tamper producten; Ethernet-oplossingen; Power-over-Ethernet IC's en midspans; evenals aangepaste ontwerpmogelijkheden en services. Microsemi heeft zijn hoofdkantoor in Aliso Viejo, Californië, en heeft wereldwijd ongeveer 4,800 werknemers. Meer informatie op www.microsemi.com.
Revisiegeschiedenis
De revisiegeschiedenis beschrijft de wijzigingen die in het document zijn doorgevoerd. De wijzigingen worden per revisie weergegeven, beginnend met de meest recente publicatie.
- Revisie 4.0
Het document voor de softwareversie van Libero v11.8 bijgewerkt. - Revisie 3.0
Het document voor de softwareversie van Libero v11.7 bijgewerkt. - Revisie 2.0
Het document voor de softwareversie van Libero v11.6 bijgewerkt. - Revisie 1.0
Eerste release voor Libero SoC v11.5 software release.
Foutdetectie en -correctie op SmartFusion2-apparaten die DDR-geheugen gebruiken
Invoering
In een omgeving die gevoelig is voor single event upset (SEU), is het random access memory (RAM) gevoelig voor transiënte fouten die worden veroorzaakt door zware ionen.
In dit document worden de EDAC-mogelijkheden van de SoC FPGA beschreven, die worden gebruikt in toepassingen met geheugens die zijn aangesloten via het microcontrollersubsysteem (MSS) DDR (MDDR).
De EDAC-controllers die in de SmartFusion2-apparaten zijn geïmplementeerd, ondersteunen single error correction en double error detection (SECDED). Alle geheugens (enhanced static random access memory (eSRAM), DDR, low-power DDR (LPDDR)) in de SmartFusion2 MSS-apparaten worden beschermd door SECDED. Het DDR synchronous dynamic random access memory (SDRAM) kan DDR2, DDR3 of LPDDR1 zijn, afhankelijk van de MDDR-configuratie en hardware-ECC-mogelijkheden.
Het SmartFusion2 MDDR-subsysteem ondersteunt geheugendichtheden tot 4 GB. In deze demo kunt u elke geheugenlocatie van 1 GB in de DDR-adresruimte selecteren (0xA0000000 tot 0xDFFFFFFF).
Wanneer SECDED is ingeschakeld:
- Een schrijfbewerking berekent en voegt 8 bits SECDED-code toe (aan elke 64 bits aan gegevens)
- Een leesbewerking leest en controleert de gegevens tegen de opgeslagen SECDED-code ter ondersteuning van 1-bits foutcorrectie en 2-bits foutdetectie
De volgende illustratie beschrijft het blokdiagram van SmartFusion2 EDAC op DDR SDRAM.
Afbeelding 1 • Blokschema op het hoogste niveau
De EDAC-functie van DDR ondersteunt het volgende:
- SECDED-mechanisme
- Biedt interrupts aan de ARM Cortex-M3-processor en FPGA-fabric bij de detectie van een 1-bitsfout of 2-bitsfout
- Slaat het aantal 1-bits en 2-bits fouten op in fouttellerregisters
- Slaat het adres op van de laatste 1-bits of 2-bits fout die de geheugenlocatie heeft beïnvloed
- Slaat de 1-bits of 2-bits foutgegevens op in SECDED-registers
- levert foutbussignalen aan de FPGA-fabric
Voor meer informatie over EDAC, zie UG0443: SmartFusion2 en IGLOO2 FPGA Security and Reliability User Guide en UG0446: SmartFusion2 en IGLOO2 FPGA High-Speed DDR Interfaces User Guide.
Ontwerpvereisten
In de onderstaande tabel staan de ontwerpvereisten vermeld.
Tabel 1 • Ontwerpvereisten
- Beschrijving van de ontwerpvereisten
- Hardwarevereisten
- SmartFusion2 Advanced Development Kit-bord Rev B of later
- FlashPro5-programmeur of hoger
- USB A naar mini-B USB-kabel
- Stroomadapter 12 V
- DDR3-dochterbord
- Besturingssysteem Elke 64-bits of 32-bits Windows XP SP2
- Elke 64-bits of 32-bits Windows 7
- Softwarevereisten
- Libero® Systeem-op-Chip (SoC) v11.8
- SoftConsole v4.0
- FlashPro-programmeersoftware v11.8
- Host-pc-stuurprogramma's USB naar UART-stuurprogramma's
- Framework om demonstratie Microsoft .NET Framework 4-client uit te voeren
Demo-ontwerp
Het demo-ontwerp files zijn beschikbaar om te downloaden via het volgende pad in de Microsemi webwebsite: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
Het demo-ontwerp files omvatten:
- DDR-configuratie File
- DDR_EDAC
- Programmeren files
- GUI uitvoerbaar
- Leesmij file
De volgende illustratie beschrijft de topstructuur van het ontwerp files. Voor meer details, zie readme.txt file.
Figuur 2 • Demo-ontwerpstructuur op het hoogste niveau
Demo-ontwerpimplementatie
Het MDDR-subsysteem heeft een speciale EDAC-controller. EDAC detecteert een 1-bitsfout of 2-bitsfout wanneer gegevens uit het geheugen worden gelezen. Als EDAC de 1-bitsfout detecteert, corrigeert de EDAC-controller de foutbit. Als EDAC is ingeschakeld voor alle 1-bits- en 2-bitsfouten, worden de bijbehorende fouttellers in de systeemregisters verhoogd en worden bijbehorende interrupts en foutbussignalen naar de FPGA-fabric gegenereerd.
Dit gebeurt in real-time. Om deze SECDED-functie te demonstreren, wordt handmatig een fout geïntroduceerd en worden detectie en correctie waargenomen.
Dit demo-ontwerp omvat de implementatie van de volgende stappen:
- Schakel EDAC in
- Gegevens naar DDR schrijven
- Gegevens uit DDR lezen
- EDAC uitschakelen
- Corrupt 1 of 2 bits
- Gegevens naar DDR schrijven
- Schakel EDAC in
- Lees de gegevens
- In het geval van een fout van 1 bit corrigeert de EDAC-controller de fout, werkt de bijbehorende statusregisters bij en geeft de in stap 2 geschreven gegevens weer bij de leesbewerking die in stap 8 is uitgevoerd.
- In het geval van een 2-bits fout wordt een overeenkomstige interrupt gegenereerd en moet de applicatie de data corrigeren of de juiste actie ondernemen in de interrupt handler. Deze twee methoden worden in deze demo gedemonstreerd.
In deze demo zijn twee tests geïmplementeerd: een lustest en een handmatige test. Deze zijn toepasbaar op zowel 1-bits als 2-bits fouten.
Lustest
Lustest wordt uitgevoerd wanneer de SmartFusion2-apparaten een looptestopdracht van de GUI ontvangen. In eerste instantie worden alle fouttellers en EDAC-gerelateerde registers in de RESET-status geplaatst.
De volgende stappen worden voor elke iteratie uitgevoerd.
- Schakel de EDAC-controller in
- Schrijf de gegevens naar de specifieke DDR-geheugenlocatie
- Schakel de EDAC-controller uit
- Schrijf de 1-bits of 2-bits foutgeïnduceerde gegevens naar dezelfde DDR-geheugenlocatie
- Schakel de EDAC-controller in
- Lees de gegevens uit dezelfde DDR-geheugenlocatie
- Stuur de 1-bits of 2-bits foutdetectie- en 1-bits foutcorrectiegegevens in geval van een 1-bits fout naar de GUI
Handmatige test
Deze methode maakt het mogelijk om handmatig 1-bits foutdetectie en -correctie en 2-bits foutdetectie voor DDR-geheugenadres (0xA0000000 tot 0xDFFFFFFF) te testen met initialisatie. Een 1-bits/2-bits fout wordt handmatig geïntroduceerd in een geselecteerd DDR-geheugenadres. De opgegeven gegevens worden geschreven naar de geselecteerde DDR-geheugenlocatie met EDAC ingeschakeld. De beschadigde 1-bits of 2-bits foutgegevens worden vervolgens geschreven naar dezelfde geheugenlocatie met EDAC uitgeschakeld. De informatie over de gedetecteerde 1-bits of 2-bits fout wordt vastgelegd wanneer de gegevens worden gelezen van dezelfde geheugenlocatie met EDAC ingeschakeld. De high-performance DMA-controller
(HPDMA) wordt gebruikt om de gegevens uit het DDR-geheugen te lezen. De dual-bit error detection interrupt handler is geïmplementeerd om de juiste actie te ondernemen wanneer een 2-bit error wordt gedetecteerd.
De onderstaande afbeelding beschrijft de EDAC-demobewerkingen.
Afbeelding 3 • Ontwerpstroom
Opmerking: Voor een 2-bits fout, wanneer de Cortex-M3-processor de gegevens leest, gaat de code-uitvoering naar de harde fouthandler, omdat de ontvangen interrupt te laat is voor de processor om te reageren. Tegen de tijd dat het reageert op de interrupt, kan het zijn dat het de gegevens al heeft doorgegeven en per ongeluk een opdracht heeft gestart. Als gevolg hiervan stopt de HRESP met het verwerken van de onjuiste gegevens. 2-bits foutdetectie gebruikt HPDMA om de gegevens van de DDR-adreslocatie te lezen, wat de processor instrueert dat de gelezen gegevens een 2-bits fout hebben en dat het systeem passende maatregelen moet nemen om te herstellen (ECC-interrupthandler).
Het demo-ontwerp instellen
In dit gedeelte worden de instellingen van het SmartFusion2 Advanced Development Kit-bord, de GUI-opties en de uitvoering van het demo-ontwerp beschreven.
De volgende stappen beschrijven hoe u de demo instelt:
- Sluit het ene uiteinde van de USB mini-B-kabel aan op de J33-connector in het SmartFusion2 Advanced Development Kit-bord. Sluit het andere uiteinde van de USB-kabel aan op de host-pc. De lichtgevende diode (LED) DS27 moet oplichten, wat aangeeft dat de UART-link tot stand is gebracht. Zorg ervoor dat de USB naar UART-brugdrivers automatisch worden gedetecteerd (kan worden geverifieerd in Apparaatbeheer), zoals weergegeven in de volgende afbeelding.
Figuur 4 • USB naar UART Bridge-stuurprogramma's
Als USB naar UART bridge-stuurprogramma's niet zijn geïnstalleerd, downloadt en installeert u de stuurprogramma's van: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip. - Sluit de jumpers aan op het SmartFusion2 Advanced Development Kit-bord, zoals weergegeven in Tabel 4, pagina 11. De voedingsschakelaar SW7 moet UIT staan terwijl u de jumperverbindingen maakt.
Figuur 5 • SmartFusion2 Advanced Development Kit Board-installatie
Grafische gebruikersinterface
In dit gedeelte wordt de DDR – EDAC Demo GUI beschreven.
Figuur 6 • DDR – EDAC Demo GUI
De GUI ondersteunt de volgende functies:
- Selectie van COM-poort en Baud Rate
- Selectie van 1-bit foutcorrectietabblad of 2-bit foutdetectie
- Adresveld om gegevens naar of van het opgegeven DDR-adres te schrijven of te lezen
- Gegevensveld om gegevens naar of van het opgegeven DDR-adres te schrijven of te lezen
- Sectie Seriële console om de statusinformatie af te drukken die van de applicatie is ontvangen
- EDAC inschakelen/EDAC uitschakelen: EDAC in- of uitschakelen
- Schrijven: Hiermee kunt u gegevens naar het opgegeven adres schrijven
- Lezen: Hiermee kunnen gegevens van het opgegeven adres worden gelezen
- Lustest AAN/UIT: Hiermee kan het EDAC-mechanisme worden getest in een lusmethode
- Initialiseren: Hiermee kunt u de vooraf gedefinieerde geheugenlocatie initialiseren (in deze demo A0000000-A000CFFF)
Het demo-ontwerp uitvoeren
De volgende stappen beschrijven hoe u het ontwerp uitvoert:De volgende stappen beschrijven hoe u het ontwerp uitvoert:
- Schakel de voedingsschakelaar, SW7, in.
- Programmeer het SmarFusion2-apparaat met de programmering file voorzien in het ontwerp files.(\ProgrammerenFile\EDAC_DDR3.stp) met behulp van FlashPro-ontwerpsoftware, zoals weergegeven in de volgende afbeelding.
Figuur 7 • FlashPro-programmeervenster
- Druk op de SW6-schakelaar om de kaart te resetten na een succesvolle programmering.
- Start het EDAC_DDR Demo GUI-uitvoerbare bestand file beschikbaar in het ontwerp files (\GUI Executable\ EDAC_DDR.exe). Het GUI-venster wordt weergegeven, zoals weergegeven in Afbeelding 8, pagina 9.
- Klik op Connect, het selecteert de COM-poort en maakt de verbinding. De Connect-optie verandert in Disconnect.
- Selecteer het tabblad 1-bit foutcorrectie of 2-bit foutdetectie.
- Er kunnen handmatige en lustesten worden uitgevoerd.
- Klik op Initialiseren om het DDR-geheugen te initialiseren en de handmatige en lus-tests uit te voeren. Op de seriële console wordt een bericht weergegeven dat de initialisatie is voltooid, zoals weergegeven in Afbeelding 8 op pagina 9.
Figuur 8 • Venster Initialisatie voltooid
Lus-test uitvoeren
Klik op Loop Test AAN. Het draait in de loopmodus, waarbij continue correctie en detectie van fouten wordt uitgevoerd. Alle acties die worden uitgevoerd in het SmartFusion2-apparaat worden vastgelegd in de Serial Console-sectie van de GUI.
Tabel 2 • DDR3-geheugenadressen gebruikt in lus-test
- Geheugen DDR3
- 1-bit foutcorrectie 0xA0008000
- 2-bits foutdetectie 0xA000C000
Handmatige test uitvoeren
Bij deze methode worden fouten handmatig geïntroduceerd met behulp van GUI. Gebruik de volgende stappen om 1-bit foutcorrectie of 2-bit foutdetectie uit te voeren.
Tabel 3 • DDR3-geheugenadressen gebruikt in handmatige test
Voer adres- en gegevensvelden in (gebruik 32-bits hexadecimale waarden).
- Geheugen DDR3
- 1-bit foutcorrectie 0xA0000000-0xA0004000
- 2-bits foutdetectie 0xA0004000-0xA0008000
- Klik op EDAC inschakelen.
- Klik op Schrijven.
- Klik op EDAC uitschakelen.
- Wijzig één bit (bij 1-bit foutcorrectie) of twee bits (bij 2-bit foutdetectie) in het veld Gegevens (waardoor een fout wordt geïntroduceerd).
- Klik op Schrijven.
- Klik op EDAC inschakelen.
- Klik op Lezen.
- Bekijk de weergave van het aantal fouten en het gegevensveld in de GUI. De waarde van het aantal fouten neemt toe met 1.
Het correctievenster voor de 1-bits foutlus wordt in de volgende afbeelding weergegeven.
Figuur 9 • 1-bits foutlusdetectievenster
Het handmatige venster voor 2-bits foutdetectie wordt in de volgende afbeelding weergegeven.
Figuur 10 • 2-bits foutdetectie handmatig venster
Conclusie
Deze demo toont de SmartFusion2 SECDED-mogelijkheden voor het MDDR-subsysteem.
Bijlage: Jumperinstellingen
In de onderstaande tabel staan alle vereiste jumpers voor de SmartFusion2 Advanced Development Kit.
Tabel 4 • Jumperinstellingen voor SmartFusion2 Advanced Development Kit
Jumper : Pin (Van) : Pin (Aan) : Opmerkingen
- J116, J353, J354, J54 1 2 Dit zijn de standaard jumperinstellingen van de geavanceerde
- J123 2 3 Development Kit-bord. Zorg ervoor dat deze jumpers correct zijn ingesteld.
- J124, J121, J32 1 2 JTAG programmeren via FTDI
DG0618 Demogids Revisie 4.0
Documenten / Bronnen
![]() |
Microsemi DG0618 Foutdetectie en -correctie op SmartFusion2-apparaten met DDR-geheugen [pdf] Gebruikershandleiding DG0618 Foutdetectie en -correctie op SmartFusion2-apparaten met DDR-geheugen, DG0618, Foutdetectie en -correctie op SmartFusion2-apparaten met DDR-geheugen, SmartFusion2-apparaten met DDR-geheugen, DDR-geheugen |