Skriv ut
ImageDet går snabbare att avlusa en FPGA när man har tillgång till både analoga- och digitala signaler.
Digitalkonstruktörer har länge betraktat oscilloskopet som det främsta verktyget vid avlusning. När FPGA:er nu har blivit hörnstenen vid digital konstruktion är behovet av att snabbt kunna avlusa system som innehåller programmerbar logik större än någonsin. Men traditionell oscilloskopteknologi har inte räckt till för funktionell avlusning av FPGA:er. En ny typ av oscilloskop kallade blandsignalsoscilloskop, eller förkortat MSO (mixed signal oscilloscope), ger de möjligheter som krävs för dem som utvecklar system med FPGA:er.

ImageJoel Woodward har en BSEE-examen från Brigham Young University och en MBA-examen från Regis University.

Under de senaste 16 åren har han arbetat på Agilent Technologies (Hewlett-Packard) som ingenjör och chef för utvecklingsverktyg inom områdena EDA och test&mät.

Bland hans fritidsintressen finns fotografi och friluftsliv.
Liksom traditionella oscilloskop ger ett MSO tillgång till samma rika uppsättning av funktioner som behövs för att utföra parametriska mätningar av signalintegritet och jitter liksom vid karaktärisering av signaler. Konstruktören kan välja mellan versioner med två eller fyra analoga ingångskanaler. Blandsignalsoscilloskop finns med bandbredder från 300 MHz upp till 1 GHz. Dessa egenskaper är viktiga när det gäller att kontrollera signalparametrar. En konstruktör kan till exempel enkelt ändra I/O-standard och drivstyrka med hjälp av Xilinx FPGA Editor, och mäta upp de verkliga I/O-egenskaperna med hjälp av kanalerna i ett MSO.

Den viktigaste skillnaden mellan ett MSO och ett traditionellt digitalt minnesoscilloskop (DSO) är att man i ett MSO har lagt till 16 digitala, asynkrona samplingskanaler. Konstruktören kan välja hur snabbt dessa kanaler skall sampla. De digitala kanalerna har djupa minnen för lagring, som är oberoende av de analoga kanalernas minnen. De digitala kanalerna kan utnyttjas på många olika sätt, vilket är speciellt värdefullt för team som utvecklar system som innehåller FPGA:er.

Traditionella oscilloskop har digitala triggfunktioner som ger dem möjlighet att trigga på mönster på de analoga kanalerna. Så med ett fyrkanaligt oscilloskop kan man trigga på enskilda mönster som är upp till fyra signaler breda. Avlusning kräver ofta att man tittar på bussar och då använder en specifik händelse som triggvillkor. Genom att utnyttja de digitala kanalerna hos ett MSO kan man trigga på digitala mönster som är upp till 16 signaler breda. Detta kan vara en kraftfull möjlighet när man behöver titta på en tillståndsmaskin, en styrkrets eller en databuss. Dessutom kan man även trigga och samla in mätsignaler över alla de fyra analoga kanalerna, varvid man utökar triggningsbredden upp till 20 signaler, som visas i figur 1.

Även om de digitala kanalerna kan användas för att utföra strikt digitala mätningar, utnyttjar man dem mest effektivt om man använder dem för att se på problem som är både funktionella och parametriska till sin natur. Ett exempel är att trigga på en digital buss, och använda detta triggvillkor för att starta oscilloskopmätningen.

Ett designteam på Agilent upptäckte en intermittent mjukvaruglitch i en embedded-produkt under utveckling. Denna anomali uppträdde mycket sällan, omkring en gång i veckan. Mjukvaruteamet utvecklade diagnostikmjukvara som gjorde att problemet visade sig mer regelbundet. Man upptäckte att problemet uppstod under läscykler på en PCI-buss som var implementerad i en FPGA. Teamet routade då ut PCI-statussignalerna och anslöt dem till de digitala kanalerna på ett MSO. Ingenjörerna ställde in oscilloskopet så att det triggade på en PCI-läscykel. De ställde sedan in oscilloskopets vanliga kanaler så att de började samla in data när de digitala kanalerna registrerade en läscykel på PCI-bussen.

När teamet nu kunde trigga på en specifik busscykel kunde de snabbt lösa problemet. De upptäckte en klocka som hade alltför långsam stigtid, vilket framför allt hade inverkan på läscykler. Man modifierade konstruktionen och laddade ned den nya konfigurationsfilen till FPGA:n. Kombinationen av omprogrammerbara FPGA:er och MSO-mätningar gjorde att teamet kunde lösa problemet och leverera produkten enligt tidplanen.

För att få access till interna signaler måste konstruktörerna normalt använda routning och leda signalerna till pinnar som kan anslutas till ett oscilloskop. Med traditionella oscilloskop får man tillgång till två eller fyra signaler samtidigt. Detta smala fönster kan komplicera avlusningen, eftersom många problem kräver att man kan se på ett stort antal signaler samtidigt. För att få access till nya signaler måste designteamet ändra på konstruktionen, omsyntetisera och köra en ny place-and-route-omgång för att göra signalerna tillgängliga för oscilloskopet. Denna process kan ta många timmar.

Med de digitala kanalerna hos ett MSO kan man se upp till 16 interna FPGA-signaler samtidigt. Styrkan hos ett MSO:s digitala kanaler kan utökas ytterligare genom att man kombinerar dem med on-chip-teknologier som Xilinx Chipscope Pro och Agilents dynamiska FPGA-prob. Chipscope Pro ger konstruktören möjlighet att lägga in en Agilent-avbuggningskärna i sina FPGA-konstruktioner. Denna kärna, som heter ATC2, gör det enkelt att routa signaler till pinnar och snabbare att sätta upp oscilloskopet. Dessutom ger den användaren möjlighet att snabbt mäta på nya grupper av interna signaler. Härigenom utsträcks räckvidden hos de sexton digitala kanalerna ända in i FPGA-konstruktionen.

Låt oss se på ett enkelt kommunikationssystem för att illustrera vilket värde de digitala kanalerna hos ett MSO har vid FPGA-avbuggning. En tillståndsmaskin driver processen att sända ut paketerade 16-bits data tillsammans med ett transaktions-ID. Parallella data serialiseras, sänds ut på en seriell kanal, de-serialiseras och överförs till en monitor. En annan tillståndsmaskin vid monitorn driver processen att ta emot paketen och separera data och transaktions-ID så att paketen kan dras ut till ett externt minne. Denna tillståndsmaskin genererar också kvittens-ID som matas tillbaka till sändarsidan för att meddela att data har tagits emot. Konstruktören reserverade ursprungligen 16 pinnar för en avlusningsport.

Med hjälp av Xilinx Chipscope Pro Core Inserter kan konstruktören parametrisera en ATC2-kärna. En fördel med Core Inserter är att man inte behöver göra några modifieringar av den ursprungliga HDL-konstruktionen, eftersom inläggandet av kärnan sker efter syntesen men före place-and-route. Designteamet specificerar, med hjälp av Core Inserter, vilka interna signaler som skall grupperas tillsammans som en aktiv signalbank. Place-and-route-processen använder den ursprungliga restriktionsfilen (constraint file), så inget extraarbete krävs av konstruktören. Core Inserter producerar också en liten fil som innehåller de specificerade signalnamnen och grupperna. Denna fil, som brukar kallas .cdc, läses av den dynamiska FPGA-probapplikation som körs på MSO:n. När användaren ändrar på vilken signalgrupp som skall presenteras på skärmen, använder instrumentet automatiskt denna signalnamnsfil för att korrekt uppdatera signalnamnen på skärmen. Jämfört med att använda route-out, som kan kräva timmar för att få ut de nya signalerna till pinnarna, ger en dynamisk FPGA-prob konstruktören möjlighet att komma åt en ny grupp av interna signaler på ungefär en sekund.

För att snabbt kunna avlusa behövde teamet visibilitet in i fyra sektioner hos konstruktionen. Därför skapade de en kärna med fyra signalbanker för att få tillgång till 64 signaler, 16 åt gången, över den 16-pins avlusningsport som visas i figur 2. ATC2-kärnor kan parametriseras så att de får upp till 64 signalbanker, som ger access till 1024 interna signaler över oscilloskopets 16 digitala kanaler.

ATC2-kärnor kan konfigureras antingen som timingkärnor (asynkrona) eller tillståndskärnor (synkrona). Båda typerna stöds av ett MSO. Xilinx Core Inserter lägger in en kärna i en konstruktion efter syntesen men före place-and-route. Om konstruktören har specificerat en timingkärna lägger place-and-route-verktygen inte in några vippor mellan den signal som övervakas och utgångspinnen. Routningen av signalen till mätpinnen behandlas som en falsk väg. Det gör att verktygen kan ignorera eventuella hastighetsrestriktioner som hänför sig till att routa en specifik signal till en pinne. Timingkärnan innehåller visserligen en JTAG-controller, men denna är vanligen mycket långsam (<5 MHz) och används bara för att utväxla små informationsmängder, som att välja en ny signalbank. Timingkärnor kan vara effektiva eftersom de ger användaren möjlighet att se på signaler över flera klockdomäner, eller på anomalier som är kortare än en klockcykel. Den viktigaste nackdelen med timingkärnor är de tidsskillnader (skew) som finns mellan signalvägarna.

Traditionella oscilloskop samlar i likhet med MSO:er in data asynkront. Sampel lagras med hjälp av en justerbar klockreferens i minnet. Detta kan medföra att det blir svårt att noggrant samla in och tolka synkrona händelser, eftersom instrumentet samlar in ogiltiga övergångar mellan klockcyklerna.

Ett mer effektivt sätt att samla in synkron information i en och samma klockdomän är att parametrisera ATC2-kärnan som en tillståndskärna. En sådan kärna har minimal påverkan på konstruktionens timing tack vare dess pipeline-uppbyggda arkitektur. Totalt fyra vippor läggs in mellan den signal som skall övervakas och en utgångspadd, som visas i figur 3. Designverktyget placerar den första vippan så nära den signal som övervakas som möjligt. De övriga tre stegen i pipelinen ger signalen tre klockcykler innan den kommer fram till utgångspadden. Pipeline-arkitekturen i ATC2-kärnan gör att place-and-route-verktygen får mycket större sannolikhet att uppfylla de ursprungliga timingmålen för konstruktionen.

Eftersom kärnan är synkron eliminerar place-and-route-verktygen tidsskillnader mellan signalvägar. Den viktigaste nackdelen med en tillståndskärna är att den arbetar inom en enda tidsdomän. Om man skulle behöva mäta över flera klockdomäner kan man dock lägga in flera tillståndskärnor. MSO-skopet kan anropa flera ATC2-kärnor, en i taget, inlagda i en och samma FPGA eller distribuerade över flera FPGA:er på en och samma scankedja.

MSO:ns digitala kanaler klarar bara av asynkron datainsamling. Vid avlusning av FPGA:er finns det dock en metod som gör att ett MSO kan presentera synkrona mätningar, trots att den första insamlingen sker asynkront. Tillståndskärnan ATC2 matar ut en klocksignal och signaltillstånden synkront med klockan. MSO:ns digitala kanaler samlar in denna förformaterade tillståndsinformation. Därefter efterbearbetas mätningen med hjälp av en tillståndsdisplayfunktion, som ger användaren möjlighet att specificera en av signalerna som klocka. Skopet filtrerar bort alla övergångar mellan giltiga tillstånd. Härigenom får man möjlighet att utföra synkrona mätningar internt i FPGA:n.

FPGA:ns reprogrammerbara natur gör att snabb, interaktiv avlusning i realtid blir en viktig kompanjon till simulering. I takt med att FPGA-kretsarna blir alltmer sofistikerade, ökar behovet av effektiv intern visibilitet. Blandsignalsoscilloskop ger unika mätmöjligheter som passar väl in på behoven hos de team som använder FPGA:er. Applikationer som hjälper ingenjörerna att utnyttja de digitala mätmöjligheterna hos MSO:n är katalysatorer för konstruktioner med kortare utvecklingscykler och högre kvalitet.