Microsemi DG0618 Felsökning och korrigering på SmartFusion2-enheter som använder DDR-minne
Microsemis huvudkontor
One Enterprise, Aliso Viejo,
CA 92656 USA
Inom USA: +1 800-713-4113
Utanför USA: +1 949-380-6100
Fax: +1 949-215-4996
E-post: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Alla rättigheter förbehållna. Microsemi och Microsemi-logotypen är varumärken som tillhör Microsemi Corporation. Alla andra varumärken och servicemärken tillhör sina respektive ägare
Microsemi lämnar inga garantier, representationer eller garantier avseende informationen häri eller lämpligheten av dess produkter och tjänster för något särskilt ändamål, och Microsemi tar inte heller något ansvar som uppstår till följd av tillämpningen eller användningen av någon produkt eller krets. Produkterna som säljs nedan och alla andra produkter som säljs av Microsemi har varit föremål för begränsade tester och bör inte användas tillsammans med verksamhetskritisk utrustning eller applikationer. Eventuella prestandaspecifikationer anses vara tillförlitliga men är inte verifierade, och köparen måste utföra och slutföra alla prestanda- och andra tester av produkterna, ensam och tillsammans med, eller installerade i, eventuella slutprodukter. Köparen ska inte förlita sig på några data och prestandaspecifikationer eller parametrar som tillhandahålls av Microsemi. Det är köparens ansvar att självständigt avgöra lämpligheten för alla produkter och att testa och verifiera densamma. Informationen som tillhandahålls av Microsemi nedan tillhandahålls "i befintligt skick, var är" och med alla fel, och hela risken förknippad med sådan information ligger helt och hållet hos köparen. Microsemi ger inte, uttryckligen eller underförstått, till någon part några patenträttigheter, licenser eller andra IP-rättigheter, vare sig det gäller sådan information i sig eller något som beskrivs i sådan information. Informationen som tillhandahålls i detta dokument ägs av Microsemi, och Microsemi förbehåller sig rätten att göra ändringar av informationen i detta dokument eller till produkter och tjänster när som helst utan föregående meddelande.
Om Microsemi
Microsemi Corporation (Nasdaq: MSCC) erbjuder en omfattande portfölj av halvledar- och systemlösningar för flyg- och försvars-, kommunikations-, datacenter- och industrimarknader. Produkterna inkluderar högpresterande och strålningshärdade analoga integrerade kretsar med blandade signaler, FPGA, SoC och ASIC; Power Management produkter; timing- och synkroniseringsenheter och exakta tidslösningar, sätter världens standard för tid; röstbehandlingsanordningar; RF-lösningar; diskreta komponenter; företagslagrings- och kommunikationslösningar, säkerhetsteknologier och skalbar anti-tamper produkter; Ethernet-lösningar; Power-over-Ethernet IC och midspans; samt anpassade designmöjligheter och tjänster. Microsemi har sitt huvudkontor i Aliso Viejo, Kalifornien, och har cirka 4,800 XNUMX anställda globalt. Läs mer på www.microsemi.com.
Revisionshistorik
Revisionshistoriken beskriver de ändringar som implementerades i dokumentet. Ändringarna listas efter revidering, med början i den senaste publikationen.
- Revision 4.0
Uppdaterade dokumentet för Libero v11.8 mjukvaruversionen. - Revision 3.0
Uppdaterade dokumentet för Libero v11.7 mjukvaruversionen. - Revision 2.0
Uppdaterade dokumentet för Libero v11.6 mjukvaruversionen. - Revision 1.0
Initial release för Libero SoC v11.5 mjukvaruversion.
Felsökning och korrigering på SmartFusion2-enheter som använder DDR-minne
Introduktion
I en SEU-känslig miljö är RAM (Random Access Memory) utsatt för övergående fel orsakade av tunga joner.
Det här dokumentet beskriver EDAC-kapaciteten hos SoC FPGA, som används i applikationer med minnen anslutna via mikrokontrollersubsystemet (MSS) DDR (MDDR).
EDAC-styrenheterna implementerade i SmartFusion2-enheterna stöder enkelfelskorrigering och dubbelfelsdetektering (SECDED). Alla minnen – förbättrat statiskt direktminne (eSRAM), DDR, lågeffekts DDR (LPDDR) – inom SmartFusion2 MSS-enheter skyddas av SECDED. DDR Synchronous Dynamic Random Access Memory (SDRAM) kan vara DDR2, DDR3 eller LPDDR1, beroende på MDDR-konfiguration och hårdvaru-ECC-kapacitet.
Undersystemet SmartFusion2 MDDR stöder minnestätheter upp till 4 GB. I denna demo kan du välja valfri minnesplats på 1 GB i DDR-adressutrymmet (0xA0000000 till 0xDFFFFFFF).
När SECDED är aktiverat:
- En skrivoperation beräknar och lägger till 8 bitar av SECDED-kod (till var 64:e bit data)
- En läsoperation läser och kontrollerar data mot den lagrade SECDED-koden för att stödja 1-bitars felkorrigering och 2-bitars feldetektering
Följande illustration beskriver blockschemat för SmartFusion2 EDAC på DDR SDRAM.
Figur 1 • Blockdiagram på toppnivå
EDAC-funktionen i DDR stöder följande:
- SECDED-mekanism
- Ger avbrott till ARM Cortex-M3-processorn och FPGA-tyget vid upptäckt av ett 1-bitars fel eller 2-bitars fel
- Lagrar antalet 1-bitars och 2-bitars fel i felräknarregister
- Lagrar adressen för den senaste 1-bitars eller 2-bitars felpåverkade minnesplatsen
- Lagrar 1-bitars eller 2-bitars feldata i SECDED-register
- ger felbusssignaler till FPGA-strukturen
För mer information om EDAC, se UG0443: SmartFusion2 och IGLOO2 FPGA Security and Reliability User Guide och UG0446: SmartFusion2 och IGLOO2 FPGA High-Speed DDR Interfaces User Guide.
Designkrav
Följande tabell listar designkraven.
Tabell 1 • Designkrav
- Designkrav Beskrivning
- Hårdvarukrav
- SmartFusion2 Advanced Development Kit-kort Rev B eller senare
- FlashPro5-programmerare eller senare
- USB A till mini-B USB-kabel
- Strömadapter 12 V.
- DDR3 dotterkort
- Operativsystem Alla 64-bitars eller 32-bitars Windows XP SP2
- Alla 64-bitars eller 32-bitars Windows 7
- Programvarukrav
- Libero® System-on-Chip (SoC) v11.8
- SoftConsole v4.0
- FlashPro programmeringsprogram v11.8
- Värd PC-drivrutiner USB till UART-drivrutiner
- Framework för att köra demonstration Microsoft .NET Framework 4-klient
Demodesign
Demodesignen files är tillgängliga för nedladdning från följande sökväg i Microsemi webplats: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
Demodesignen files inkluderar:
- DDR-konfiguration File
- DDR_EDAC
- Programmering files
- GUI körbar
- Läs mig file
Följande illustration beskriver designens översta struktur files. För ytterligare information, se readme.txt file.
Figur 2 • Demodesign struktur på toppnivå
Implementering av demodesign
MDDR-undersystemet har en dedikerad EDAC-styrenhet. EDAC upptäcker ett 1-bitars fel eller 2-bitars fel när data läses från minnet. Om EDAC upptäcker 1-bitars felet korrigerar EDAC-styrenheten felbiten. Om EDAC är aktiverat för alla 1-bitars och 2-bitars fel, inkrementeras motsvarande felräknare i systemregistren och motsvarande avbrott och felbusssignaler till FPGA-strukturen genereras.
Detta sker i realtid. För att demonstrera denna SECDED-funktion introduceras ett fel manuellt och observeras upptäckt och korrigering.
Denna demodesign involverar implementering av följande steg:
- Aktivera EDAC
- Skriv data till DDR
- Läs data från DDR
- Inaktivera EDAC
- Korrupt 1 eller 2 bitar
- Skriv data till DDR
- Aktivera EDAC
- Läs informationen
- I fallet med ett 1-bitars fel korrigerar EDAC-styrenheten felet, uppdaterar motsvarande statusregister och ger data som skrivits i steg 2 vid läsoperationen som gjordes i steg 8.
- Vid ett 2-bitars fel genereras ett motsvarande avbrott och applikationen måste korrigera data eller vidta lämplig åtgärd i avbrottshanteraren. Dessa två metoder visas i denna demo.
Två tester implementeras i denna demo: looptest och manuellt test och de är tillämpliga på både 1-bitars och 2-bitars fel.
Slingtest
Looptest exekveras när SmartFusion2-enheterna tar emot ett looptestkommando från GUI. Initialt placeras alla felräknare och EDAC-relaterade register i RESET-tillståndet.
Följande steg utförs för varje iteration.
- Aktivera EDAC-styrenheten
- Skriv data till den specifika DDR-minnesplatsen
- Inaktivera EDAC-styrenheten
- Skriv 1-bitars eller 2-bitars felinducerade data till samma DDR-minnesplats
- Aktivera EDAC-styrenheten
- Läs data från samma DDR-minnesplats
- Skicka 1-bitars eller 2-bitars feldetektering och 1-bitars felkorrigeringsdata i händelse av 1-bitars fel till GUI
Manuellt test
Denna metod tillåter manuell testning av 1-bitars feldetektering och korrigering och 2-bitars feldetektering för DDR-minnesadress (0xA0000000 till 0xDFFFFFFF) med initiering. Ett 1-bit/2-bitars fel introduceras manuellt till en vald DDR-minnesadress. Den givna informationen skrivs till den valda DDR-minnesplatsen med EDAC aktiverat. Den skadade 1-bitars eller 2-bitars feldata skrivs sedan till samma minnesplats med EDAC inaktiverad. Informationen om det upptäckta 1-bitars eller 2-bitarsfelet loggas när data läses från samma minnesplats med EDAC aktiverat. Den högpresterande DMA-kontrollern
(HPDMA) används för att läsa data från DDR-minnet. Dubbelbitars feldetekteringsavbrottshanteraren implementeras för att vidta lämplig åtgärd när ett 2-bitars fel detekteras.
Följande illustration beskriver EDAC-demofunktionerna.
Figur 3 • Design Flow
Notera: För ett 2-bitars fel, när Cortex-M3-processorn läser data, går kodexekveringen till den hårda felhanteraren, eftersom det mottagna avbrottet är sent för processorn att svara. När den svarar på avbrottet kan den redan ha skickat data och av misstag startat ett kommando. Som ett resultat slutar HRESP att bearbeta felaktiga data. 2-bitars feldetektering använder HPDMA för att läsa data från DDR-adressplatsen, vilket instruerar processorn att läsa data har ett 2-bitars fel och att systemet bör vidta lämpliga åtgärder för att återställa (ECC-avbrottshanteraren).
Konfigurera demodesignen
Det här avsnittet beskriver SmartFusion2 Advanced Development Kit-kortkonfigurationen, GUI-alternativen och hur man utför demodesignen.
Följande steg beskriver hur du ställer in demon:
- Anslut ena änden av USB mini-B-kabeln till J33-kontakten som finns i SmartFusion2 Advanced Development Kit-kortet. Anslut den andra änden av USB-kabeln till värddatorn. Ljusemitterande diod (LED) DS27 måste lysa, vilket indikerar att UART-länken har upprättats. Se till att drivrutinerna för USB till UART-bryggan detekteras automatiskt (kan verifieras i Enhetshanteraren), som visas i följande figur.
Figur 4 • USB till UART Bridge-drivrutiner
Om USB till UART-bryggdrivrutiner inte är installerade, ladda ner och installera drivrutinerna från: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip. - Anslut byglarna på SmartFusion2 Advanced Development Kit-kortet, som visas i Tabell 4, sidan 11. Strömbrytaren SW7 måste vara avstängd när bygelanslutningarna görs.
Figur 5 • SmartFusion2 Advanced Development Kit Board Setup
Grafiskt användargränssnitt
Det här avsnittet beskriver DDR – EDAC Demo GUI.
Figur 6 • DDR – EDAC Demo GUI
GUI stöder följande funktioner:
- Val av COM-port och Baud-hastighet
- Val av 1-bitars felkorrigeringsflik eller 2-bitars feldetektering
- Adressfält för att skriva eller läsa data till eller från angiven DDR-adress
- Datafält för att skriva eller läsa data till eller från angiven DDR-adress
- Serial Console-sektion för att skriva ut statusinformationen som mottagits från applikationen
- Aktivera EDAC/Avaktivera EDAC: Aktiverar eller inaktiverar EDAC
- Skriv: Gör det möjligt att skriva data till den angivna adressen
- Läs: Tillåter att läsa data från den angivna adressen
- Slingtest PÅ/AV: Tillåter testning av EDAC-mekanismen i en loopmetod
- Initiera: Gör det möjligt att initiera den fördefinierade minnesplatsen (i den här demon A0000000-A000CFFF)
Kör demodesignen
Följande steg beskriver hur du kör designen: Följande steg beskriver hur du kör designen:
- Slå PÅ matningsströmbrytaren, SW7.
- Programmera SmarFusion2-enheten med programmeringen file tillhandahålls i designen files.(\ProgrammeringFile\EDAC_DDR3.stp) med FlashPro designprogramvara, som visas i följande figur.
Figur 7 • FlashPro programmeringsfönster
- Tryck på SW6-omkopplaren för att återställa kortet efter lyckad programmering.
- Starta EDAC_DDR Demo GUI körbar file finns i designen files (\GUI Executable\ EDAC_DDR.exe). GUI-fönstret visas, som visas i figur 8, sidan 9.
- Klicka på Anslut, den väljer COM-porten och upprättar anslutningen. Anslut alternativ ändras till Koppla från.
- Välj fliken 1-bitars felkorrigering eller 2-bitars felsökning.
- Manuella tester och looptester kan utföras.
- Klicka på Initiera för att initiera DDR-minnet för att utföra de manuella och looptesterna, ett meddelande om att initieringen är klar visas på seriekonsolen, som visas i figur 8, sidan 9.
Figur 8 • Fönstret Initiering slutförd
Utför looptest
Klicka på Loop Test ON. Den körs i loop-läge där kontinuerlig korrigering och upptäckt av fel görs. Alla åtgärder som utförs i SmartFusion2-enheten loggas i avsnittet Serial Console i GUI.
Tabell 2 • DDR3-minnesadresser som används i looptest
- Minne DDR3
- 1-bitars felkorrigering 0xA0008000
- 2-bitars feldetektering 0xA000C000
Utför manuellt test
I den här metoden introduceras fel manuellt med GUI. Använd följande steg för att utföra 1-bitars felkorrigering eller 2-bitars feldetektering.
Tabell 3 • DDR3-minnesadresser som används i manuellt test
Inmatningsadress och datafält (använd 32-bitars hexadecimala värden).
- Minne DDR3
- 1-bitars felkorrigering 0xA0000000-0xA0004000
- 2-bitars feldetektering 0xA0004000-0xA0008000
- Klicka på Aktivera EDAC.
- Klicka på Skriv.
- Klicka på Inaktivera EDAC.
- Ändra en bit (vid 1-bitars felkorrigering) eller två bitar (vid 2-bitars feldetektering) i datafältet (introducerar fel).
- Klicka på Skriv.
- Klicka på Aktivera EDAC.
- Klicka på Läs.
- Observera fältet Error Count Display och Data i GUI. Felräkningsvärdet ökar med 1.
Fönstret för korrigering av 1-bitars felslinga visas i följande figur.
Figur 9 • 1-bitars fönster för upptäckt av felslingor
Det manuella fönstret för 2-bitars feldetektering visas i följande figur.
Figur 10 • 2-bitars fönster för manuell felsökning
Slutsats
Den här demon visar SmartFusion2 SECDED-funktioner för MDDR-undersystemet.
Bilaga: Bygelinställningar
Följande tabell visar alla nödvändiga byglar att ställa in på SmartFusion2 Advanced Development Kit.
Tabell 4 • SmartFusion2 Advanced Development Kit Jumper Settings
Bygel : Pin (Från) : Pin (Till) : Kommentarer
- J116, J353, J354, J54 1 2 Dessa är standardinställningarna för bygeln för Advanced
- J123 2 3 Development Kit-kort. Se till att dessa byglar är inställda därefter.
- J124, J121, J32 1 2 JTAG programmering via FTDI
DG0618 Demo Guide Revision 4.0
Dokument/resurser
![]() |
Microsemi DG0618 Felsökning och korrigering på SmartFusion2-enheter som använder DDR-minne [pdf] Användarhandbok DG0618 Felidentifiering och korrigering på SmartFusion2-enheter som använder DDR-minne, DG0618, Felidentifiering och korrigering på SmartFusion2-enheter som använder DDR-minne, SmartFusion2-enheter som använder DDR-minne, DDR-minne |