• No results found

Mätutrustning för kosmisk strålning

N/A
N/A
Protected

Academic year: 2021

Share "Mätutrustning för kosmisk strålning"

Copied!
51
0
0

Loading.... (view fulltext now)

Full text

(1)

Mätutrustning för kosmisk strålning

Examensarbete utfört i Elektroniksystem vid Linköpings tekniska högskola

av Stefan Melin

LITH-ISY-EX-ET-0281-2005

Handledare högskolan: Thomas Johansson Handledare AerotechTelub AB: Thomas Granlund

(2)
(3)

Avdelning, Institution Division, Department Institutionen för systemteknik 581 83 LINKÖPING Datum Date 2005-03-31 Språk Language Rapporttyp Report category ISBN X Svenska/Swedish Engelska/English Licentiatavhandling

X Examensarbete ISRN LITH-ISY-EX-ET-0281-2005

C-uppsats

D-uppsats Serietitel och serienummer Title of series, numbering ISSN

Övrig rapport

____

URL för elektronisk version

http://www.ep.liu.se/exjobb/isy/2005/281/ Titel

Title

Mätutrustning för kosmisk strålning Measureequipment for cosmic radiation Författare

Author

Stefan Melin

Sammanfattning Abstract

The purpose with this examination is to build a measureequipment to AerotechTelub AB (AT), that will registrate fault in SRAM-memory in contact with cosmic radiation. The equipment will be created around developcard from Memec Design with FPGA from Xilinx. The logic in the FPGA will be implemented with the hardwaredescribed language VHDL. The SRAM-memory who will be tested is build in CMOS-teknologi. The memorycells will be loaded with a predecided bitpattern. Changes in the memorycells will be registrated together with the adress where the fault came up.

The equipment will be used of AT at the measuring they use to do in special laboratories that can give cosmic radiation.

Nyckelord Keyword

(4)
(5)

The purpose with this examination is to build a measureequipment to

AerotechTelub AB (AT), who will registrate fault in SRAM-memory in contact with cosmic radiation. The equipment will be created around developcard from Memec Design with FPGA from Xilinx. The logic in the FPGA will be

implemented with the hardwaredescribed language VHDL. The SRAM-memory that will be tested is build in CMOS-teknologi. The memorycells will be loaded with a predecided bitpattern. Changes in the memorycells will be registrated together with the adress where the fault came up.

The equipment will be used of AT at the measuring they use to do in special laboratories that can give cosmic radiation.

Sammanfattning

Syftet med examensarbetet är att konstruera en mätutrustning åt AerotechTelub AB (AT), som registrerar fel som uppkommer i SRAM-minnen vid påverkan av kosmisk strålning. Mätutrustningen kommer att byggas kring ett utvecklingskort från Memec Design som innehåller en FPGA-krets från Xilinx. Logiken i FPGA:n kommer att konfigureras med hjälp av det hårdvarubeskrivande språket VHDL. De SRAM-minnen som ska testas är konstruerade med hjälp av CMOS-teknologi. Minnescellerna kommer att förladdas med ett bestämt bitmönster. De förändringar av bitmönstret som uppkommer i minnescellerna kommer att registreras tillsammans med den aktuella minnesadressen där felet uppdagats. Mätutrustningen kommer att användas av AT vid de mätningar som de brukar utföra i speciella laboratorier som klarar av att avge kosmisk strålning.

(6)
(7)

1 INLEDNING ... 3 1.1 BAKGRUND... 3 1.2 SYFTE... 3 1.3 METOD... 3 1.4 AVGRÄNSNINGAR... 3 1.5 RAPPORTENS STRUKTUR... 4 2 KOSMISK STRÅLNING ... 5 3 SRAM-MINNEN ... 7 3.1 MINNENAS UPPBYGGNAD... 7 3.2 MÄTNING PÅ MINNEN... 7

3.3 KÄNSLIGA NODER I MINNESCELLER... 8

3.4 FEL SOM KAN UPPSTÅ... 8

3.4.1 Latch up... 9

3.4.2 Single Event Upset (SEU)... 9

3.4.3 Multiple Bit Upset (MBU) ...10

4 FPGA ...11

4.1 VAD ÄR FPGA? ...11

4.2 BLOCKDIAGRAM FPGA ...11

4.2.1 Input/Output Block (IOB) ...12

4.2.2 Configurable Logic Block (CLB) ...12

4.2.3 Delayed-Locked Loop (DLL)...13 5 VHDL ...15 5.1 BAKGRUND...15 5.2 ABSTRAKTIONSNIVÅER...15 5.3 KOMPONENT...16 5.4 TILLSTÅNDSMASKINER...16 5.4.1 Moore ...16 5.4.2 Mealy...17 5.5 THREE STATE...17 5.6 KONSTRUKTIONSFLÖDE...19 6 KRAVSPECIFIKATION ...21 6.1 FUNKTIONSBESKRIVNING...21 6.2 FPGA ...21 6.3 TIDSKRITERIER...22 6.4 LADDNING AV MINNET...22 6.5 UPPDATERING MINNESCELL...23 6.6 MINNESSTORLEK...23 6.7 LAGRING AV INFORMATION...23 6.8 ANTAL I/O ...24 6.9 SPÄNNINGSMATNING...24 6.10 KOMMUNIKATION...24

6.11 STYRSIGNALER TILL MINNEN...25

6.11.1 Testminne CY621157CV18...25 7 UTFÖRANDE...27 7.1 VAL AV FPGA ...28 7.2 BLOCKINDELNING...29 7.3 TILLSTÅND...30 7.3.1 Load ...30 7.3.2 Read ...31 7.3.3 Supervise ...33 7.4 FUNKTIONSVERIFIERING...34 7.5 TESTNING...35

(8)

7.5.1 Styrsignaler ...35

7.5.2 Laddning av testminnet ...36

7.5.3 Lagring av fel i SRAM ...38

7.5.4 Uppdatering minnescell ...39

8 SLUTSATS...41

8.1 AVSLUTANDE DISKUSSION...41

8.2 VIDAREUTVECKLING AV PROJEKTET...42

(9)

1 Inledning

1.1 Bakgrund

Vid AerotechTelub AB i Linköping forskas det om kosmisk strålning. Den kosmiska strålningen är partiklar med hög energi som utsänds från solen och andra stjärnor. I rymden är dessa partiklar protoner och i jordatmosfären är de främst neutroner. Dessa partiklar är skadliga för elektronik, bl.a. SRAM-minnen (Statiska RAM). AerotechTelub AB utför mätningar två gånger per år på SRAM-minnen. Mätningarna utförs i speciella laboratorier som klarar att avge kosmisk strålning.

1.2 Syfte

Syftet med examensarbetet är att bygga en mätutrustning som klarar av att registrera fel som uppkommer i SRAM-minnen när de utsätts för kosmisk strålning. Mätutrustningen ska byggas med en FPGA.

1.3 Metod

Mätutrustningen kommer att konstrueras via Top-down-metodik. Först

specificeras designen, sedan konstrueras kretsen funktionellt. Programmeringen börjar på RTL-nivå. Därefter syntetiseras RTL-nivån till en logisk grindnivå, d.v.s. koden översätts till logiska grindar.

För att få kännedom om hur utrustningen ska konstrueras kommer författaren att vara delaktig i mätningen som utförs i ”The Svedberg Laboratory” (TSL) i Uppsala.

1.4 Avgränsningar

Arbetet som AerotechTelub vill ha utfört innefattar förutom VHDL-programmering av FPGA-krets även en kretskortslayout och hantering av Labview. För att examensarbetet skall motsvara 10 poäng kommer därför examensarbetet enbart att innehålla programmering av FPGA för hantering av ett minne. Vidareutveckling av kortet kommer efter examensarbetet slutförts att ske som ett projektarbete hos AerotechTelub. Dessa funktioner benämns som option i rapporten.

(10)

1.5 Rapportens struktur

Rapporten riktar sig till läsare med grundläggande kunskaper i elektronikdesign och med viss kunskap om hur ett SRAM-minne fungerar. Läsaren bör även ha grundläggande kunskaper i VHDL-programmering.

För att förstå hur mätutrustningen skall fungera, förklaras på ett enkelt sätt vad kosmisk strålning egentligen är. Därefter beskrivs på ett överskådligt sätt minnenas uppbyggnad från transistorer till färdiga minnesceller samt vilka fel som kan uppstå i ett minne vid påverkan av kosmisk strålning.

För att visa hur konstruktionen av mätutrustningen har utförts beskrivs de olika design-stegen från tillståndskodning i VHDL till testning med hjälp av testbänk.

(11)

2 Kosmisk strålning

Den kosmiska strålningen bildas när partiklar med hög energi utsänds från solen och andra stjärnor. När dessa partiklar, främst protoner, tränger in i

jordatmosfären framkallas kärnreaktioner där neutroner bildas. De partiklar som solen avger är:

 92 % protoner  6 % alfapartiklar  2 % tyngre joner

Vissa partiklar absorberas vid inträdet i jordatmosfären, medan en del når jordytan där de utgör den naturliga radioaktiva bakgrundsstrålning som ständigt omger oss. Den radioaktiva strålningens intensitet beror på följande:

 Solens aktivitet  Höjd över jordytan  Longitud och latitud

I figur 1 framgår det att den radioaktiva strålningen är starkast omkring ekvatorn och att den avtar efter ca 17 kilometers höjd. Den radioaktiva strålningen stiger i takt med att hastigheten på neutronerna och protonerna ökar. Energin hos neutroner och protoner mäts i elektronvolt (eV), där en elektronvolt är 1.602 * 10-19 Joule. [1] Figur 1. Höjdberoende [2] 0 0.2 0.4 0.6 0.8 1 1.2 1.4 0 5 10 15 20 25 1 -1 0 M e V n e u tr o n F lu x [ n /c m 2*s ] Altitude (km)

(12)

Figur 2. Longitud och latitud [2]

17 GeV

12 GeV

1GeV

8 GeV

15 GeV

(13)

3 SRAM-minnen

3.1 Minnenas uppbyggnad

De SRAM-minnen som ska testas är konstruerade med CMOS-teknologi i materialet kisel. Varje minnecell i ett SRAM-minne är uppbyggt av 6 transistorer. 4 transistorer används för de två inverterare som kontrollerar lagringen i minnescellen. De två övriga transistorerna används för att ”skriva till” eller ”läsa från” minnet. Varje minnescell lagrar en bit, 1 (ett) eller 0 (noll).

Figur 3. Minnescell uppbyggd av 6 st transistorer [2]

3.2 Mätning på minnen

Mätningen på minnen, av Dr. Thomas Granlund på AerotechTelub AB, utförs i speciella laboratorier två gånger per år. En gång i Los Alamos, New Mexiko USA och en gång i ”The Svedberg Laboratory” (TSL) i Uppsala. Denna mätning görs på TSL. Mätningen utförs i form av neutron- och protonmätning för att klargöra hur minnena påverkas, dels i atmosfären av neutroner, dels i rymden av protoner.

SRAM

Read Write Vcc Vcc

(14)

3.3 Känsliga noder i minnesceller

Figur 4. SRAM-minne [2]

3.4 Fel som kan uppstå

När en neutron/proton träffar en kiselkärna kan det bli en klyvning av

kiselkärnan.

Figur 5. Neutronträffar på kiselatomer [2]

SRAM

Read Write 0V Vcc Vcc 0V Vcc Vcc Känsliga noder

(15)

Klyvningsprodukterna innehåller hög energi (radioaktivitet). Klyvningsprodukterna kan orsaka följande fel:

 Latch up  SEU  MBU

Bilderna nedan beskriver de fel som kan uppstå i minnet när det utsätts för

kosmisk strålning.

3.4.1 Latch up

Figur 6. SRAM-cell vid latchup [2]

En latch up är en kortslutning i minnescellen som uppstår när en partikel träffar en känslig nod.

3.4.2 Single Event Upset (SEU)

Figur 7. SRAM-cell vid SEU [2]

När en partikel träffar känsliga noder och endast en minnescell ändrar innehåll uppstår en SEU. Minnescellen ändrar sitt innehåll från en nolla till en etta eller från en etta till en nolla.

(16)

3.4.3 Multiple Bit Upset (MBU)

Figur 8. SRAM-cell vid MBU [2]

Om partikelträffarna istället förändrar innehållet i två eller flera minnesceller benämns detta ”Multiple Bit Upset” (MBU).

Bilderna är hämtade från en presentation av Dr. Thomas Granlund om kosmisk strålning.

(17)

4 FPGA

4.1 Vad är FPGA?

FPGA är en programmerbar digital logisk krets som kan programmeras till nästan vilken digital funktion som helst. FPGA står för Field Programmable Gate Array (grindmatris). Kretsen är raderbar och kan i princip programmeras hur många gånger som helst, till skillnad från ASIC (Application Specific Integrated Circuit). Nackdelen är att den är långsammare gentemot ASIC.

4.2 Blockdiagram FPGA

En Spartan FPGA från Xilinx är uppbyggd av block enligt figuren nedan. Konstruktionen varierar från olika kretsfamiljer, men principen med en programmerbar matris är dock densamma. De huvudsakliga byggstenarna i en FPGA är:

 Input/Output Block (IOB) som är ett gränssnitt mellan pinnarna mot yttervärlden och den interna logiken.

 Configurable Logic Block (CLB) där den mesta logiken konstrueras.  BLOCKRAM som är de interna minnena.

 Delayed-Locked Loop (DLL) där distribueringen av klockan hanteras.

(18)

Figur 9. Blockdiagram över en FPGA från Xilinx [3]

4.2.1 Input/Output Block (IOB)

Som tidigare nämndes kopplar IOB ihop pinnarna mot yttervärlden med den interna logiken. Yttervärlden är i detta arbete bl.a. styrsignalerna till minnet.

4.2.2 Configurable Logic Block (CLB)

Varje CLB är uppbyggd av två identiska delar som i sin tur innehåller LUT, Look Up Table. I CLB:n utförs sekvensiella operationer. Det är den genererade bitströmmen, från syntesverktyget, som kopplar ihop de olika blocken till olika logiska uttryck. Utgången på CLB kopplas samman med IOB.

(19)

Figur 10. CLB [3]

4.2.3 Delayed-Locked Loop (DLL)

Ingången på DLL kommer från en extern klocka, t.ex. ett utvecklingskort som brukar ha en egen kristall som genererar frekvensen. Frekvensen kan skalas, om så behövs, genom att divideras med ett antal faktorer. Faktorerna varierar från olika kretsar och olika fabrikat. Spartan IIE från Xilinx har faktorerna 1.5, 2, 2.5, 3, 4, 5, 8 eller 16. [3]

Klockan distribuerar sedan ut bestämd frekvens till aktuellt nät. I DLL finns också ett kontrollsystem som gör att klockan inte ”driver”.

(20)
(21)

5 VHDL

5.1 Bakgrund

I början av 1980-talet startade utvecklingen av VHDL av det amerikanska försvarsdepartementet. Tanken med VHDL var att få ett standardiserat sätt att beskriva elektroniksystem på. VHDL står för VHSIC Hardware Description Language, där VHSIC står för Very High Speed Integrated Circuit.

5.2 Abstraktionsnivåer

Abstraktionsnivåer är ett viktigt begrepp inom VHDL. De beskriver beteendenivå ner till grindnivå. Nedan definieras namn på olika abstraktionsnivåer i VHDL-språket.

 Beteendenivå är en nivå där beteende och tid beskrivs. Beteendet beskrivs på den mest abstrakta nivån. Det går snabbt att bygga modeller på denna nivå, utan att lägga ner allt för mycket tid, för att sedan verifiera funktionen.

 RTL-nivå. Denna nivå används till 90% av alla VHDL-konstruktörer. [4] Här bestäms antalet vippor och hur de ska placeras i förhållande till de kombinatoriska grindarna. Här beskrivs också tillståndsmaskiner, datavägar, register m.m.

 Logiknivå är en nivå som med hjälp av grindar och boolesk algebra beskriver funktionen.

Mellan de olika abstraktionsnivåerna görs en syntes. Mellan RTL-nivå och logiknivå (se bild under punkt 6.4 Konstruktionsflöde) översätter

syntesverktyget VHDL-koden till grindar och vippor. Informationsmängden och komplexiteten ökar ju längre ner i abstraktionsnivåerna man kommer.

(22)

5.3 Komponent

En komponent består två delar, en entity och en architecture. Den har en viktig funktion i VHDL. Det är med komponenter man bygger upp konstruktionen. Entity är en portdeklaration för in- och utgångar, d.v.s. kopplingar mot yttervärlden. Architecture beskriver beteendet hos komponenten.

Entity vhdl_component is Port( A : in std_logic; B : out std_logic);

End vhdl_component;

Architecture vhdl_code of vhdl_component is begin

B <= not A; end vhdl_code;

Figur 12. Exempel på kod för komponent [4]

5.4 Tillståndsmaskiner

Det är lämpligt att använda sig av tillståndmaskiner när styrfunktioner implementeras. Det finns två typer av tillståndsmaskiner, Moore och Mealy. Skillnaden mellan dessa är att en Mealymaskins utgångar är beroende av nuvarande tillstånd och samtliga ingångar, medan en Mooremaskin endast är beroende av nuvarande tillstånd. Det innebär att Mealymaskinen arbetar en klockcykel före Mooremaskinen. Detta måste beaktas innan programmering av tillståndsmaskin påbörjas. Figurerna 13 och 14 visar skillnaden mellan en Mooremaskin och en Mealymaskin.

5.4.1 Moore

Här förtydligas att Mooremaskinen ska uppdatera ett register innan utsignal kan fås, d.v.s. en Mooremaskin innehåller kombinatorisk logik mellan

tillståndsvektorn och utgången. Det gör att Mooremaskinen arbetar en klockcykel efter Mealymaskinen.

Entity declaration Architecture deklaration

Code od

(23)

Figur 13. Blockschema av en Mooremaskin [4]

5.4.2 Mealy

I en Mealymaskin uppdateras utsignalen direkt. Den ligger alltid en klockcykel före motsvarande Mooremaskin.

Figur 14. Blockschema av en Mealymaskin [4]

5.5 Three state

Om utgångar som är sammankopplade från olika block ”driver” samtidigt uppstår ett oidentifierat läge. För att undvika detta inför vi en three state grind. En three state grind fungerar i princip som en 1-polig brytare. När ENABLE- signalen är aktiv tilldelas DBUS den information som DATA-ingången innehåller. I frånslaget läge d.v.s. när ENABLE-signalen är inaktiv intar grindutgången ett högimpedivt läge. [5]

(24)

Dbus <= data when enable = ’1’ else( others => ’Z’);

ENABLE

DATA DBUS

(25)

5.6

Konstruktionsflöde

Figuren nedan beskriver på ett övergripligt sätt konstruktionsflödet från VHDL- kod till implementering av den genererade bitströmmen i FPGA.

(26)
(27)

6 Kravspecifikation

6.1 Funktionsbeskrivning

Testminnet ska laddas med ett bestämt bitmönster. Mätningen på minnet påbörjas inte förrän laddning av minnet är färdigt. Laddningsfasen är därför inte tidskritiskt. När laddningen är klar bestrålas minnet med kosmisk strålning av varierande energi. Under bestrålningen av minnet går mätutrustningen igenom varje minnescell och jämför om innehållet i minnescellen har förändrats

gentemot det förladdade bitmönstret. Varje förändring ska registreras och lagras i det lokala minnet som sitter bredvid FPGA:n på utvecklingskortet. Felet ska lagras med avseende på aktuell tidpunkt, strömförbrukning för testminnet, strålningsintensitet som testminnet bestrålas med, adress samt det felaktiga bitmönstret. När informationen har lagrats ska den felaktiga minnescellen uppdateras. För att processen skall bli så snabb som möjligt minimeras antalet beräkningar i denna realtidsprocess. Dessa beräkningar utförs och presenteras istället i Labview (option).

6.2 FPGA

Här är en sammanställning av de hårdvarumässiga krav som FPGA ska uppfylla. Minnekapacitet lokalt minne: min 80 kByte (se punkt 6.7)

Klockfrekvens: 75 MHz

Antal I/O: 200 stycken

Spänningsmatning: 1.8 V, 2.5 V, 3.3 V

Kommunikation: RS-232

Display: 2 stycken sjusegments display

Mätutrustningen ska även ha möjlighet att finjustera spännings matningen till minnena (option).

(28)

6.3 Tidskriterier

Mätutrustningen ska fungera vid en klockfrekvens på 60 MHz (16.67ns). Testminnet CY621157CV18 har en läs- och skrivhastighet på mellan 55-70 ns.

Figur 17. Laddningsfasen för testminne [7]

Figur 18. Tider för laddningsfasen [7]

6.4 Laddning av minnet

Laddningsdelen är inte tidskritisk. Strålningen påbörjas inte förrän minnet är laddat.

(29)

6.5 Uppdatering minnescell

När felet i minnescellen har lagrats undan, ska den felaktiga minnescellen uppdateras med korrekt bitmönster.

6.6 Minnesstorlek

Minnena som ska testas är SRAM-minnen. Yttermåtten på minnena kan variera något. Benkonfigurationen på minnena tillverkade i ett speciellt mönster kallas BGA (Ball Grid Array). Minnenas storlek kan variera mellan 1-64 MByte. Adressbussen kan vara upp till 22-bitar, medan databussen är 16-bitar. Minneskapseln består av 48 stycken I/O.

6.7 Lagring av information

Följande information, med anknytning till fel som uppstått i testminnet, skall lagras i det lokala SRAM-minnet på utvecklingskortet innan överföring till Labview sker. Initialt lagras 6 Byte/fel.

 Felaktigt bitmönster

Hela det 16-bitars felaktiga bitmönstret ska lagras.  Minnesadress

Minnesadressen, där det felaktiga bitmönstret finns, ska lagras. Minnet kan ha upp till 22-bitars adressbuss. Resterande bitar, upp till 32, fylls ut med nollor.

 Aktuell ström (option)

Strömmen som testminnet drar vid den tidpunkt som felet uppstår ska lagras. Strömmen kommer att kvantiseras och lagras till 8-bitar.  Strålningsintensitet (option)

Information om vilken strålningsintensitet som minnet bestrålas med ska lagras med 8-bitar.

 Aktuell tidpunkt (option)

Även den tidpunkt felet uppstår ska lagras. Tidpunkten för felet lagras med 16-bitar.

Totalt 10 Byte/fel.

Mätutrustningen ska ha möjlighet att hantera 8 stycken minnen samtidigt. Avläsningen av minnet sker var 60:e sekund, därefter nollställs minnet. I varje minne kan det uppstå ca 1000 fel i minuten. Det innebär 8 minnen * 1000 fel * 10 Byte = 80 kByte.

(30)

6.8 Antal I/O

För att minska antalet I/O kommer adressledningarna till minnena att vara gemensamma.

Det totala antalet I/O som FPGA ska innehålla är 200 I/O, se beräkningen nedan.

8 minnen * (16 data + 6 styrsignaler) + 22 adress + 2 spänningsmatning = 200 I/O.

6.9 Spänningsmatning

FPGA-kretsen ska klara av att ge 1.8, 2.5, 3.3 Volts spänning till minnena.

6.10 Kommunikation

Den lagrade informationen på det lokala minnet ska överföras via en RS-232- port till Labview. I Labview-programmet bestäms vilket intervall informationen från FPGA:n ska hämtas. I Labview bearbetas informationen och presenteras på lämpligt sätt. Varje utläsning innehåller 6 Byte/fel.

Följande kommandon skall från Labview kunna utföras på FPGA:n (option).  Power on och Power off

Spänningsmatningen till testminnena skall manuellt kunna manövreras med dessa kommandon.

.

 Read out

Med detta kommando läser Labview av den lagrade informationen från det lokala minnet. Därefter nollställs minnet.

 Reset

(31)

6.11 Styrsignaler till minnen

Styrsignalernas funktion är hämtad från databladet. [7]

6.11.1 Testminne CY621157CV18

CE1_inv CE2 WE_inv OE_inv BHE_inv BLE_inv Inputs/Outputs Mode Power H X X X X X HIGH Z Deselect/Power-Down Standby(ISB)

X L X X X X HIGH Z Deselect/Power-Down Standby(ISB)

X X X X H H HIGH Z Deselect/Power-Down Standby(ISB)

L H H L L L Data Out(I/O0-I/O15) Read Active(ICC)

L H H L H L

Data Out(I/O0-I/O7)

HIGH Z(I/O8-I/O15) Read Active(ICC)

L H H L L H

HIGH Z(I/O0-I/O7)

Data Out(I/O8-I/O15) Read Active(ICC)

L H H H L H HIGH Z Output Disabled Active(ICC)

L H H H H L HIGH Z Output Disabled Active(ICC)

L H H H L L HIGH Z Output Disabled Active(ICC)

L H L X L L Data In (I/O0-I/O15) Write Active(ICC)

L H L X H L

Data In(I/O0-I/O7)

HIGH Z(I/O8-I/O15) Write Active(ICC)

L H L X L H

HIGH Z(I/O0-I/O7)

Data In(I/O8-I/O15) Write Active(ICC)

Figur 19. Testminne CY621157CV18 [7]

(32)
(33)

7 Utförande

Det är viktigt att ha en strategi för hur projektet ska genomföras. Det genomförs i olika steg som beskrivs nedan.

Funktionen i den här konstruktionen går ut på att styra minnenas styrsignaler enligt figuren ovan och dessutom vid rätt tidpunkt. Då är det lämpligt, som tidigare nämndes, att använda sig av tillståndsmaskiner.

Innan programmeringen påbörjas ska det bestämmas vilken typ av

tillståndsmaskin (se punkt 5.4) som ska användas. Det som skiljer de båda tillståndsmaskinerna åt är i stort sett när uppdatering av registren sker. Det är viktigt att känna till innan felsökning och simulering påbörjas. I projektet används Mooremaskinen, vilket innebär att uppdateringen av registren sker en klockcykel efter.

För att få bättre översikt och enklare hantering av programmeringen delas designen in i olika block. Funktionsmässigt delas designen in i tre olika faser: laddnings-, jämförelse- och lagringsfas.

Varje block eller fas delas sedan in i lämpligt antal tillstånd. Där beskrivs vad som ska utföras i respektive tillstånd. Ju färre tillstånd ju snabbare blir processen.

Det är även ett krav att sätta sig in i vilka styrsignaler som används och därmed förstå hur minnet fungerar (se figur 19).

Därefter kan programmeringen påbörjas. Programmeringen utförs i olika steg. Innan konstruktionen går vidare till nästa delmoment i programmeringen verifieras funktionen i en s.k. testbänk. Därefter implementeras den genererade bitfilen i FPGA (se figur 16 konstruktionsflöde).

(34)

7.1 Val av FPGA

Det finns åtminstone fem olika tillverkare av FPGA i världen. Xilinx är den största tillverkaren följd av Altera. Lattice, Actel och Quicklogic är mycket mindre och tillverkar special-FPGA:er.

De FPGA:er som undersökts är Xilinx och Actel. Båda tillverkarna har kretsar som uppfyller våra krav. Xilinx väljs som tillverkare p.g.a. tidigare erfarenhet från Xilinx-familjen. Xilinx är också generellt sett billigare på sina produkter. För att se vilken krets inom Xilinx-familjen som matchade våra krav måste programmering och syntetisering göras. Syntesen gjordes för ett minne på en 50 000 grindars Spartan 3, vilket gav följande allokering av grindarna.

Antal “Slices”: 494 out of 768 64%

Antal “Slice Flip Flops”: 591 out of 1536 38% Antal 4 ingångars LUTs: 474 out of 1536 30%

Antal IOBs: 1 out of 124 0%

(35)

7.2 Blockindelning

Innan programmeringen påbörjas är det lämpligt att dela in hela funktionen i olika block. De olika blocken är load (laddningsfas), read (jämförelsefas) och supervise (lagringsfas). Enligt figur 20 nedan framgår att utgångarna från load- och readblocket är sammankopplade. Här införs en three state grind enligt punkt 5.5.

(36)

7.3 Tillstånd

Här beskrivs vilka operationer som utförs i de olika tillstånden i respektive block. Tillståndsmaskinen är en Mooremaskin, uppdateringen sker därmed en klockpuls senare.

7.3.1 Load

I detta block laddas varje minnescell med ett förutbestämt bitmönster, t.ex.

10101010101010102, i de minnen som ska testas för kosmisk strålning.

Laddningen av minnet är inte tidskritiskt.  Clear

Detta tillstånd är ett resettillstånd där de aktuella registren nollställs genom asynkron reset. Testminnet ställs in för ”skrivning till”.  Adress_mem

Här finns det ett villkor att varje minnescell har blivit laddad. Om villkoret uppfylls hoppar tillståndsmaskinen till tillståndet Load_finish. Uppfylls däremot inte villkoret blir nästa tillstånd Load_mem.  Load_mem

Laddningen av minnescellerna sker i detta tillstånd. Här finns det möjlighet att ladda vissa minnesceller med felaktiga bitmönster. Dessa felaktiga bitmönster sparas sedan i det lokala minnet på utvecklingskortet. Adresseringen till minnet ökas på här.

 Load_finish

I detta tillstånd är minnet färdigladdat. Signalen Load_signal aktiveras och tillståndsmaskinen går in i nästa block (se figur blockschema).

(37)

RESET

Till Read blocket

Load_finish Clear

Adress_mem

Load_mem

Figur 21. Tillståndsdiagram Load

7.3.2 Read

Detta block har till uppgift att läsa från testminnet och jämföra innehållet i

minnescellerna med det förutbestämda bitmönstret, 10101010101010102 i detta

fall, för att se om innehållet har förändrats.

 Clear

Vid reset av utrustningen hamnar tillståndsmaskinen i detta tillstånd. Registren nollställs och testminnet ställs in för att ”läsa ifrån”.

Tillståndsmaskinen ligger kvar i detta tillstånd under laddningssekvensen av minnet. När Read_signal (samma signal som Load_signal) aktiveras går maskinen över till Mem_for_read.

 Mem_for_read

Minnet inställt för att ”läsa ifrån”.  Read_mem

Här sker en tilldelning från den utpekade minnescellen till internregistret word.

 Compare

På denna plats jämförs det om en förändring har skett i minnescellen. Om en förändring har uppdagats går tillståndmaskinen över till save. Är däremot minnescellen oförändrad pekas nästa adress ut i minnet och tillståndsmaskinen hamnar i läge Read_mem. Här uppstår en loop tills ett felaktigt bitmönster påträffas.

(38)

 Save

Signalen Fault_signal aktiveras och talar därmed om för supervise-blocket att ett fel uppdagats.

 Help

Help, help_1 och help_2 tillstånden används för att uppdatera felaktiga minnesceller. Testminnet ställs om för ”skrivning till”.

 Help_1

Den felaktiga minnescellen uppdateras med det korrekta bitmönstret.  Help_2

Signalen Fault_signal avaktiveras.

RESET Help_1 Help Compare Read_mem Mem_for_read Clear Help_2 Sav e

(39)

7.3.3 Supervise

Superviseblocket hanterar övervakningen och lagringen av det felaktiga bitmönstret och adressen där felet uppstått. Optionerna ovan gällande tidsinformation, strålningsintensitet och ström tas in i detta block. Då måste även antalet tillstånd utökas.

 Clear

Resetillstånd där registern nollställs.  Save_adress_1

Här lagras de första 16-bitarna i adressen.  Save_adress_2

Här lagras bara adressbit 17, 18 och 19. De resterande bitarna upp till 32 fylls ut med nollor.

 Save_word

I detta tillstånd lagras det felaktiga bitmönstret.  Saved

Storage_signal_out aktiveras vilket innebär att aktuell information har lagrats. Då aktiveras read-blocket och fortsätter att ”läsa ifrån” testminnet på nästa adress.

RESET

Sav e_w ord Sav e_adress_2 Sav e_adress_1 Clear

Sav ed

(40)

7.4 Funktionsverifiering

När designen är klar måste funktionen verifieras på något sätt. Det kan göras med simulering i en testbänk. En vanlig typ av testbänk är att under simulering lägga på insignalsstimuli och därefter avläsa signalerna på utgången. På

utgångarna från designen konstrueras SRAM-minnen med hjälp av VHDL-kod. Dessa minnen tar hand om utsignalerna från designen. Minnena byggs upp som en matris med minnesceller som i princip fungerar som i verklighetens minne. Blocket top_schematic i figuren nedan innehåller designen i figur Blockschema. Testminnet kallas i figuren för memory, medan andra minnet som benämns sram motsvarar det lokala minnet på utvecklingskortet, där felinformationen lagras.

(41)

7.5 Testning

Vid testförfarandet verifieras att, förutom funktionen, även de tidskrav som nämndes i kravspecifikationen uppfylls. Varje minnescell i testminnet laddas med ett förutbestämt 16-bitars ord. Vid laddningen kan man även välja vilka och hur många minnesceller som ska laddas med ett felaktigt 16-bitars ord. Om inte

minnescellen laddas under tiden tSD (se figur Laddningsfas) med ett felaktigt

eller korrekt 16-bitars ord ska programmet stanna upp och ge information om detta. Tidskraven när läsning från minnet sker verifieras på motsvarande sätt. När ett felaktigt 16-bitars ord påträffas ska det lagras tillsammans med den 32-bitar långa adressen. Varje påträffat fel ska alltså lagras med 6 Byte. Lagringen sker på det lokala minnet på utvecklingskortet.

Därefter uppdateras den felaktiga minnescellen med ett korrekt 16-bitars ord. Verktyget som används vid simulering är modelsim.

7.5.1 Styrsignaler

I vågdiagrammet nedan fås en översikt av de viktigaste styrsignalerna. Vid simulering av designen kan de olika styrsignalerna övervakas så att de uppdateras vid rätt tidpunkt. Det får även beaktas att tillståndsmaskinen är en Moore-maskin, vilket innebär att uppdateringen av styrsignalerna sker vid nästa positiva flank. Vågfönstret ger även information om vilket tillstånd designen befinner sig i.

(42)

Figur 25. Vågdiagram över styrsignaler

7.5.2 Laddning av testminnet

När minnet laddas med det förutbestämda bitmönstret finns det även möjlighet att lägga in felaktiga bitmönster på bestämda adresser i minnet. Tillståndet load_mem i blocket load innehåller följande kod.

when load_mem =>

if load_adress = "00001" then DATA <= "0000000000000111";

elsif load_adress = "00101" then DATA <= "1111111100000000"; elsif load_adress = "01000" then DATA <= "1111100010101111"; elsif load_adress = "11001" then DATA <= "1111100000101111"; Else DATA <= ”1010101010101010; end if;

(43)

I figur 27 nedan visas att minnescellerna laddas. De två bitmönster som är inringade är de felaktiga bitmönster som med fet stil finns i figuren ovan.

(44)

7.5.3 Lagring av fel i SRAM

Varje fel lagras med en 32-bitars adress uppdelad i två 16-bitars minnesadresser.

(45)

7.5.4 Uppdatering minnescell

När varje felaktigt bitmönster har lagrats i SRAM-minnet, uppdateras minnescellen med ett korrekt bitmönster.

(46)
(47)

8 Slutsats

Jag har konstruerat en modell för mätutrustningen som klarar av att registrera fel (SEU, MBU samt latchup) som uppkommer i SRAM-minnen i samband med att minnena bestrålas med kosmisk strålning. Utrustningen är konstruerad med hjälp av ett utvecklingskort från Memec Design innehållande en Spartan 3 FPGA-krets från Xilinx.

Vid programmering av FPGA har jag använt mig av det hårdvarubeskrivande språket VHDL. Grunden i funktionen är uppbyggd med tillståndsmaskiner. Jag har delat in hela funktionen i olika delblock, där varje block hanterar en speciell funktion. Det underlättar både vid konstruktionsfasen och vid felsökandet. För att möta de tidskrav som angetts i kravspecifikationen för de specifika minnena kommer utrustningen att köras på klockfrekvenser mellan ca 14-18 MHz (55-70 ns). För att hantera snabbare minnen modifieras programmeringen i DLL:en.

8.1 Avslutande diskussion

Utrustningen har inte hunnit testats i drift p.g.a. att utvecklingskortet levererades med ett DDR-SDRAM-minne istället för det SRAM-minne som beställdes (se under ”Vidareutveckling av projektet”).

Jag har försökt dela in de olika funktionerna i lämpliga delblock. Indelningen kan göras på andra sätt, men för mig var det naturligt att dela in blocken i en laddnings-, en läs- samt en övervakningsfas. Detta har jag att försökt på ett enkelt sätt förklara med hjälp av blockscheman och tillståndsdiagram.

Jag har även under detta examensarbete insett flexibiliteten med en FPGA och insett att begränsningarna med en FPGA är väldigt få vid den här typen av konstruktioner inom den digitala världen.

Svårigheterna i detta examensarbete som jag ser det var att hitta bra modeller för att verifiera funktionen. Av erfarenhet har jag även märkt att simuleringarna inte alltid stämmer överens med verkligheten.

(48)

8.2 Vidareutveckling av projektet

Mitt examensarbete övergår till en projektanställning där bl.a. vidareutveckling av funktionen i mätutrustningen kommer att vara en del av mitt dagliga arbete. Först kommer antalet SRAM-minnen, som samtidigt ska testas, att utökas till åtta. Därefter kommer informationen om strålningsintensitet, strömförbrukning samt aktuell tidpunkt att implementeras i konstruktionen. Dessa är benämnda som option i kravspecifikationen. Som nämndes ovan ska även SRAM-minnet på utvecklingskortet, där felinformationen lagras, ersättas med ett DDR-SDRAM-minne som kräver modifiering av modellen.

För att beräkna och presentera de fel som uppkommit i minnena, i samband med bestrålningen, kommer även ett program i Labview att konstrueras.

Mätutrustningen kommer i framtiden att modifieras för att även kunna testa de snabbare SDRAM-minnena som blir allt vanligare på marknaden.

(49)

9 Referenser

[1] Fysik för gymnasieskolan B.

[2] PowerPoint presentation av Dr. Thomas Granlund, AerotechTelub om kosmisk strålning.

[3] Datablad Xilinx (Architecture)

http://direct.xilinx.com/bvdocs/publications/ds077_2.pdf

[4] Sjöholm, Stefan och Lindh, Lennart, ”VHDL för konstruktion”, Studentlitteratur 2003

Fjärde upplagan.

[5] Roos, Olof, ”Grundläggande datorteknik”, Studentlitteratur 1995. [6] Manual ”Introduktion till webpack 6.1”

http://www.xess.com

[7] Datablad testminne

http://www.cypress.com

[8] Datablad Xilinx http://www.xilinx.com/

(50)
(51)

På svenska

Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extra-ordinära omständigheter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se

förlagets hemsida http://www.ep.liu.se/

In English

The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances.

The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility.

According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement.

For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity,

please refer to its WWW home page: http://www.ep.liu.se/

References

Related documents

Majgull Axelsson har i intervjuer vid tiden för utgivningen av Slumpvandring fått frågor om sitt förhållande till Ivar Lo-Johanssons Geniet, eftersom Geniet finns med så påtagligt i

Litteraturöversiktens resultat tyder också på att informationen brister utifrån patienternas egna informationsbehov kring egenvård för att kunna reducera och hantera symptomen

In this paper, the carnivoran elbow joint is explored with the aim of producing a single general body mass predictor that can be used over a broad range of terrestrial and

The standard static textbook analysis of congestion charges implies that drivers as a group will be worse off with congestion charges if they are not compensated

Då spridningen av mätvärden inom varje pressning inte skiljer sig nämnvärt från spridningen inom och mellan grupperna, är det troligare att skillnaden beror på defekter i

(2015) menar att det krävs flexibilitet för en föränderlig bransch skulle det kunna tyda på det. Den mekaniska strukturen anses vara mer rigid det vill säga stelbent, och

Det stora flertalet SP använder sig av grundlig kartläggning med fokus på individ, grupp och organisation. Här ingår dokumentation, observationer samt kontinuerliga samtal och

En anhörig till en brukare som inte kunde svara på frå- gan sade att de (demensteamet) lyssnade på vad den anhöriga hade att säga om vilket stöd hon tyckte att brukaren behövde..