Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn...

81
Eindhoven University of Technology MASTER Ontwerp van het Multi-Purpose Memory (MPM) voor het PhyDAS meetsysteem Angenent, M. Award date: 1996 Link to publication Disclaimer This document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Student theses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the document as presented in the repository. The required complexity or quality of research of student theses may vary by program, and the required minimum study period may vary in duration. General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

Transcript of Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn...

Page 1: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

Eindhoven University of Technology

MASTER

Ontwerp van het Multi-Purpose Memory (MPM) voor het PhyDAS meetsysteem

Angenent, M.

Award date:1996

Link to publication

DisclaimerThis document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Studenttheses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the documentas presented in the repository. The required complexity or quality of research of student theses may vary by program, and the requiredminimum study period may vary in duration.

General rightsCopyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright ownersand it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.

• Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

Page 2: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

t ~ Faculteit der Elektrotechniek Vakgroep Meet- en Besturingssystemen .U_./ Groep Elektromechanica en Vennogenselektronica

AfstudeeNerslag

Ontwerp van het Multi-Purpose Memory (MPM) voor het PhyDAS meetsysteem

Maarten Angenent Augustus 1996

EMV 96-16

Afstudeerhoogleraar: Prof. dr. ir. A.J.A. Vandenput

Begeleiders: Prof. dr. ir. K. Kopinga (Faculteit TN, vakgroep NF) dhr. F.C. van Nijmweegen (Faculteit TN, vakgroep NF) ing. H. Verhagen (Prodrive B.V.)

De faculteit Elektrotechniek van de Technische Universiteit Eindhoven aanvaardt geen aansprakelijkheid voor de inhoud van stage- en afstudeerverslagen.

Page 3: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

Samenvatting

Het PhyDAS meetsysteem, dat ontwikkeld is en op ruime schaal toegepast wordt bij de faculteit Technische Natuurkunde van de Technische Universiteit Eindhoven, evolueert door de vooruitgang in de techniek. Bij een groot aantal experimenten wordt, door de voortschrijdende technische mogelijkheden bij reai-time data-acquisitie, de dataflow zodanig groot dat gebruik moet worden gemaakt van de nieuwste technieken om deze toenemende dataflow aan te kunnen: sneller en compacter geheugen, front-end processing faciliteiten en zeer snelle transferpaden. Het is dan ook noodzaak om na verloop van tijd (afhankelijk van de wensen van de experimentatoren en de stand van de techniek) nieuwe modules voor het PhyDAS meetsysteem te ontwikkelen. Het PhyBUS 8 Mbyte Dual Ported Static Memory is een PhyDAS­geheugenmodule die voor diverse toepassingen nog zeer geschikt is, maar die niet berekend is op de nieuwste toepassingen c.q. ontwikkelingen van het PhyDAS meetsysteem. In dit verslag wordt de ontwikkeling van een nieuwe geheugenmodule, het Multi Purpose Memory (MPM), besproken. Deze module is berekend op de nieuwste toepassingen en maakt gebruik van de laatse technische ontwikkelingen. De MPM vervangt tevens het 8 Mbyte Dual Ported Static Memory.

Na een algemene inleiding volgt een beschrijving van enkele toepassingen van het PhyDAS meetsysteem onder andere een toepassing bij de groep EMV van de faculteit Elektrotechniek (de stroomgeregelde invertorgevoede asynchrone machine), waarbij duidelijk wordt waarom er behoefte is aan een nieuwe geheugenmodule en waar deze aan moet voldoen (datareductie mogelijkheden en een flexibele opzet). De MPM is te bedrijven in verschillende modes, afhankelijk van de toepassing. Deze MPM modes kunnen globaal worden onderverdeeld in drie categorieën:

• De MPM toegepast als interleaved-geheugen. • De MPM toegepast als front-end processor. • De MPM toegepast als reai-time regelsysteem.

Deze drie categorieën kunnen weer onderverdeeld worden, afhankelijk van de toegepaste transferpaden voor data-import en data-export. Uiteindelijk zijn er 10 MPM modes. Deze modes vormen de basis van het ontwerp. Startend vanuit deze modes wordt de globale opzet van de MPM behandeld. Hierbij komt onder andere naar voren dat de MPM alle transferpaden van het PhyDAS meetsysteem ondersteunt (PhyBUS, Dual Sub BUS en het PhyPAD). Tevens is deMPMuitgerust met front-end processing faciliteiten in de vorm van TIM­DSP modules (gestandaardiseerde modules van Texas lnstruments, voorzien van een Digitale Signaal Processor en een stuk geheugen) en met een interface voor 'dedicated logica' in de vorm van een Piggy-back om ook toekomstige toepassingen te kunnen ondersteunen. Als laatste deel van het ontwerp komt de controle van de MPM aan bod, een stuk dynamische logica dat geïmplementeerd is in EPLD's. Tenslotte volgen de conclusies en de aanbevelingen.

De belangrijkste conclusies zijn: • Door de komst van de MPM is het PhyDAS meetsysteem uitgerust met een zeer krachtige

module voor front-end processing, zodat de steeds grotere datastromen in een vroeg stadium bewerkt kunnen worden. Door deze datareductie blijven uiteindelijk kleine (hanteerbare) datastromen over die door de host-computer verwerkt moeten worden.

• Door de flexibele/modulaire opbouw van de MPM (front-end rekencapaciteit in de vorm van TIM-DSP modules, geheugen in de vorm van TIM-geheugen modules en een Piggy­back interface voor dedicated hardware) kan de MPM eenvoudig aangepast worden voor specifieke (toekomstige) toepassingen.

Page 4: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

i i

Page 5: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

iii

Voorwoord

Dit verslag is het resultaat van mijn afstudeerwerk ter afronding van mijn opleiding tot elektrotechnisch ingenieur aan de Technische Universiteit Eindhoven. Mijn afstudeerwerk heb ik gedurende het afgelopen jaar gedeeltelijk verricht bij de firma Prodrive B.V. te Eindhoven en bij de vakgroep Fysische Informatica van de faculteit Technische Natuurkunde van de Technische Universiteit Eindhoven. Door deze afstudeerplaats heb ik kennis mogen maken met het PhyDAS-meetysteem en het hele traject van een hardwarematig elektronisch hightech ontwerp meegemaakt. Deze opdracht heeft mij zeer geboeid door de gevarieerdheid ervan en de communicatie met de diverse partijen die erbij betrokken waren.

De vakgroep Fysische Informatica wil ik bedanken voor de werkplek gedurende het laatse half jaar van de afstudeeropdracht. André Duif en Klaas Kopinga wil ik speciaal bedanken voor de filosofie waar de MPM op gebouwd is en de correcties van mijn afstudeerverslag. Peter Mutsaers wil ik bedanken voor de ondersteuning bij het schrijven van de paragraaf Positron Emission Profiling experiment, Gerard Harkema wil ik bedanken voor de prachtige Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige PCB-design en Roei Smeets voor de gebruikershandleiding. Prodrive B.V. wil ik bedanken voor de mogelijkheid van deze afstudeeropdracht en de werkplek gedurende de eerste 4 maanden. Speciale dank gaat uit naar Hans Verhogen, die alles aan het rollen bracht en waar ik altijd mijn ei kwijt kon. Sjoerd Bosga wil ik bedanken voor zijn geduldige oor en de correcties van mijn afstudeerverslag en Prof. dr. ir. A.J.A. Vandenput voor de mogelijkheid om bij hem te kunnen afstuderen.

Tenslotte blijft er nog één persoon over, zonder wie de MPM ("de Maarten Pret Module") er zeer zeker niet was gekomen. Hij verzorgde niet alleen de technische ondersteuning, de filosofie achter de MPM, maar wat veel belangrijker was: hij verzorgde ook de therapeutische ondersteuning. Fred hartelijk bedankt voor alles, vooral voor de gezellige(?) discussies.

"There are things known and there are things unknown, in between there is PhyDAS"

Page 6: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

iv

Inhoudsopgave

1. lnleidin

1 .1 Het waarom van het Multi-Purpose Memory 1.2 Conventies

2. Ph DAS

2.1 Het PhyDAS meetsysteem 2.2 Toepassingen van het PhyDAS meetsysteem

2.2.1 Het scannen van vocht in poreus materiaal door middel van NMR 2.2.2 Positron Emission Profiling experiment 2.2.3 De stroomgeregelde invertorgevoede asynchrone machine

3. MPM toepassingen

3.1 Inleiding 3.2 MPM modes

4. Globale opzet MPM

4.1 Primaire eisen 4.2 Front-end rekencapaciteit interface 4.3 Piggy-back interface 4.4 Transferpaden 4.5 Geheugen

4.5.1 Inleiding 4.5.2 Geheugensegmentatie 4.5.3 De TIM-geheugenmodule 4.5.4 De adresgeneratoren

4.5.4.1 De input adresgenerator (AGI) 4.5.4.2 De output adresgenerator (AGO)

4.5.5 Toegang tot het geheugen 4.6 Datapadstructuur 4.7 Resumerend

5. De configuratie-controller

5.1 Inleiding 5.2 Communicatie tussen de host-computer en de MPM

5.2.1 PhyBUS Status Word Register 5.2.2 Error ldentification Register 5.2.3 PhyBUS Data Register 5.2.4 Control and Status Register 5.2.5 Block Length Input Register 5.2.6 Block Length Output Register 5.2.7 DSP-X Download Register 5.2.8 DSP-Y Download Register 5.2.9 DSB Status Register 5.2.1 0 Interface ldentification Register 5.2.11 Address Generator Input Register 5.2.12 Address Generator Output Register 5.2.13 Maintenance Register

5.3 Communicatie tussen de front-end rekencapaciteit en de MPM

3

3 4 4 7 9

13

13 15

21

21 21 22 22 23 23 23 23 24 25 26 26 27 30

31

31 31 32 35 36 36 37 37 37 38 38 38 38 38 38 38

Page 7: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

5.3.1 Import geheugenbank adresblok 5.3.2 Export geheugenbank adresblok 5.3.3 Bloklengte-In-Register 5.3.4 Bloklengte-Uit-Register 5.3.5 DSP Control and Status Register

5.4 Datatransport via de PhyBUS 5.5 Datatransport via de Dual Sub Bus (DSB 1 en DSB2) 5.6 Datatransport via het PhyPAD 5.7 Globale controle van de MPM

5. 7.1 De MPM toegepast als interleaved-geheugen (mode 0 tot en met 2) 5.7.2 De MPM toegepast als front-end processor (mode 3 tot en met 9) 5.7.3 De MPM toegepast als reai-time regelsysteem (mode 10)

5.8 Implementatie van de configuratie-controller

6. Conclusies en aanbevelingen

7. Literatuurlijst

BIJLAGE A: EPLD design AGI

BIJLAGE B: EPLD design AGO

BIJLAGE C: EPLD design Configuratie-controller (deel 1, CCO)

BIJLAGE D: EPLD design Configuratie-controller (deel 2, CC1)

BIJLAGE E: EPLD design Configuratie-controller (deel 3, CC2)

Verklarende woordenlijst:

AGI AGO ASR DSB DSP MPM NMR PARSAM PDT PDT-40 PEP PhyBUS PhyDAS PhyPAD TIM TIM-gm TIM-DSP

Input Adresgenerator Output Adresgenerator Analoge Signaal Recorder Dual Sub Bus Digitale Signaal Processor Multi-Purpose Memory Nuclear Magnetic Resonance PARallel SAMpling (ADC) ProDrive TIM ProDrive TIM met DSP Positron Emission Profiling PhyDAS BUS Physics Data Acquisition System PhyDAS Parallel Asynchroon Datapad Texas lnstruments Module Texas lnstruments Module met geheugen T ex as lnstruments Module met DSP

V

40 41 41 42 42 43 44 45 46 47 48 48 49

51

53

Page 8: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

vi

Page 9: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

1. Inleiding

Gezien de ervaringen bij de groep EMV van de faculteit Elektrotechniek van de TUE met het ontwerpen en toepassen van multi-DSP systemen bestond vanuit EMV interesse voor het PhyDAS meetsysteem. Een voorwaarde hierbij was het aanwezig zijn van front-end processing faciliteiten, zodat het PhyDAS meetsysteem toegepast zou kunnen worden bij het onderzoek van EMV. Eén van de ontwikkelingen van het PhyDAS meetsysteem, de Dual Sub Bus, was een samenwerkingsverband tussen EMV en de vakgroep NF (Fysische Informatica) van de faculteit Technische Natuurkunde van de TUE. Het vervolg op dit samenwerkingsverband is deze afstudeeropdracht, de ontwikkeling van het Multi-Purpose Memory (MPM) voor het PhyDAS meetsysteem. De MPM is een multi-functionele geheugenmodule met front-end processing faciliteiten (in de vorm van DSP' s). De afstudeeropdracht vond plaats in nauwe samenwerking met de werkeenheid FTI (Fysisch Technische Informatieverwerking) van de vakgroep NF en de firma Prodrive B.V. te Eindhoven.

l . l Het waarom van het Multi-Purpose Memory

Het PhyDAS meetsysteem, dat ontwikkeld is en op ruime schaal toegepast wordt bij de faculteit Technische Natuurkunde van de Technische Universiteit Eindhoven, evolueert door de vooruitgang in de techniek. Bij een groot aantal experimenten wordt, door de voortschrijdende technische mogelijkheden bij reai-time data-acquisitie, de dataflow zodanig groot, dat gebruik moet worden gemaakt van de nieuwste technieken om deze toenemende dataflow aan te kunnen:

• Sneller en compacter geheugen. • Front-end processing door middel van nieuwe krachtige processoren, bijvoorbeeld de

digitale signaal processor (DSP). • Zeer snelle transferpaden, bijvoorbeeld de Dual Sub Bus (DSB); 2 x 32 bits of l x 64 bits l 00

Mbyte/s.

Het is dan ook noodzaak om na verloop van tijd (afhankelijk van de wensen van de experimentatoren en de stand van de techniek) nieuwe modules voor het PhyDAS meetsysteem te ontwikkelen. Het PhyBUS 8 Mbyte Dual Ported Static Memory (zie (l)) is een PhyDAS-geheugenmodule die voor diverse toepassingen nog zeer geschikt is, maar die niet berekend is op de nieuwste toepassingen c.q. ontwikkelingen van het PhyDAS meetsysteem (krachtiger transferpaden in de vorm van de DSB, preprocessing in het front-end (in de vorm van DSP's) en compacter en sneller geheugen). In dit verslag wordt de ontwikkeling van een nieuwe geheugenmodule, het Multi-Purpose Memory (MPM), besproken. Deze module zal berekend zijn op de nieuwste toepassingen van het PhyDAS meetsysteem en gebruik maken van de laatste technische ontwikkelingen. De MPM zal tevens het 8 Mbyte Dual Ported Static Memory vervangen.

l .2 Conventies

Voor dit document gelden de volgende conventies:

• Hexadecimale getallen worden weergegeven door H" gevolgd door de hexadecimale getalrepresentatie en afgesloten met", bijvoorbeeld H"8F".

• Binaire getallen worden weergegeven door B" gevolgd door de binaire getalrepresentatie en afgesloten met", bijvoorbeeld B"lOOOllll".

• Laag actieve signalen worden weergegeven door de signaalnaam gevolgd door een asterix (*), bijvoorbeeld STRBO*.

• De eenheid "woord" in dit document staat voor 32 bits.

Page 10: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

2

Page 11: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

3

2. PhyDAS

2.1 Het PhyDAS meetsysteem

Het PhyDAS meetsysteem (Physics Data Acquisition System) is een operationeel besturings- en data-acquisitiesysteem onder andere voor gebruik bij fysische experimenten, ontwikkeld door de vakgroep NF (Fysische Informatica) van de faculteit Technische Natuurkunde van de Technische Universiteit Eindhoven. Toepassingen van het PhyDAS meetsysteem zijn te vinden in meet- en regelsystemen op het gebied van bijvoorbeeld atomaire botsingsexperimenten, spectroscopie, plasmadiagnostiek en hydrodynamica.

Het PhyDAS meetsysteem omvat het totaal aan automatiseringsmiddelen dat nodig is om het verloop van een experiment zo preeles mogelijk af te stemmen op de wensen van de experimentator. Basis is een strikte scheiding tussen computerbus en meetbus en daarbij de mogelijkheid om meetmodules (experiment-interfaces) onderling te laten communiceren via afzonderlijke verbindingen. De opbouw is geoptimaliseerd voor reai-time toepassingen en ondersteunt het gebruik van multi-processor configuraties, zonder afhankelijk te zijn van een bepaald type processor. Afbeelding 1 geeft de architectuur van het PhyDAS meetsysteem weer.

CPU

of

.--~··· vl' M

Geheugen , E 1

\ I , I

\j

t l

IM Ie ,e i t ·b

u s

= p h y B u

Is J \ I \ '

\ I J

Afbeelding I: Architectuur van het PhyDAS meetsysteem

DSB1 DSB2

Page 12: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

4

Het PhyDAS meetsysteem bestaat uit twee delen:

• Host-computer gedeelte. • Acquisitie-, controle- en preprocessinggedeelte.

Het host-computer gedeelte bestaat uit computermodules en een computerbus (PCI of VME). Enkele voorbeelden van computermodules zijn: host-computer, terminal, diskette­station en geheugen. De computerbus verzorgt de communicatie tussen de computermodules. Het host-computer gedeelte is PhyDAS-onafhankelijk op een computermodule na, de computerbus/meetbus-convertor, die de koppeling tussen de computerbus en de meetbus verzorgt. Het PhyDAS meetsysteem ondersteunt zowel PCI als VME als computerbus. Het acquisitie-, controle- en preprocessinggedeelte wordt gevormd door meetmodules, de meetbus (PhyBUS), het PhyPAD en de DSB. Enkele voorbeelden van meetmodules zijn: acquisitie-modules (ADC's, signaal-recorders, geheugen), controle-modules (1/0 modules, signaal-generatoren. DAC's) en preprocessing-modules (meetmodules met front-end rekencapaciteit). De PhyBUS verzorgt de verbinding tussen de host-computer (de supervisor) en de diverse meetmodules. Via de PhyBUS kan de host-computer communiceren met de meetmodules. De PhyBUS heeft een maximale transfer-rate van 10 Mbyte/s (zie (2)). In het PhyDAS meetsysteem kan een enkele (complexe) interface opgebouwd zijn uit verschillende meetmodules. Deze modules zijn onafhankelijk van elkaar verbonden met de PhyBUS. Om de reai-time eigenschappen van een dergelijke interface te garanderen, vindt de onderlinge communicatie tussen de genoemde modules plaats via een Parallel Asynchroon Datapad (PhyPAD). Het PhyPAD (Parallel Asynchroon Datapad) is een statische point-to-point verbinding tussen twee meetmodules. Het PhyPAD heeft een maximale transfer-rate van 40 Mbyte/s (zie (3)). Als alternatief voor het PhyPAD kan de DSB worden gebruikt. De Dual Sub Bus (DSB) is een dynamisch te configureren verbinding tussen diverse meetmodules. De DSB is opgesplitst in DSBl en DSB2. De DSB heeft een maximale transfer-rate van 100 Mbyte/s. De DSB wordt bestuurd door een DSB-controller (zie (4)).

2.2 Toepassingen van het PhyDAS meetsysteem

Aan de hand van een drietal onderzoekprojecten waarbij gebruik gemaakt wordt (of zou kunnen gemaakt worden) van het PhyDAS meetsysteem zal duidelijk worden waarom een nieuwe geheugenmodule gewenst is, en waar deze aan moet voldoen.

2.2.1 Het scannen van vocht in poreus materiaal door middel van NMR

Bij het onderzoek naar dynamisch vochttransport in poreuze materialen bij de faculteit Technische Natuurkunde van de TUE wordt met behulp van een NMR (nuclear magnetic resonance) opstelling het vochtprofiel van een preparaat bepaald (zie (5)).

Bij een NMR experiment wordt het magnetisch moment van de kernen van waterstofatomen gemanipuleerd met behulp van een rf-veld. Dit resulteert in een zogenaamd spin-echo signaaL dat informatie bevat over het magnetische veld dat actief is op deze atomen en hun directe omgeving. Het te meten preparaat bijvoorbeeld rode baksteen. wordt in gedeeltes gemeten (zogenaamde slices) met behulp van een rf-drager waarvan de frequentie instelbaar is. Elke meting levert een spin-echo signaal op bestaande uit een fase­en een quadratuurcomponent waaruit het vochtprofiel van een slice berekend wordt door middel van een Fourier transformatie. Het vochtprofiel van het complete preparaat wordt verkregen door deze vochtprofielen te combineren.

Page 13: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

5

Het aansturen van de NMR opstelling (bijvoorbeeld de frequentie van de rf-drager) en het verzamelen van data (de twee componenten van het spin-echo signaal) wordt verzorgd door het PhyDAS meetsysteem. Afbeelding 2 geeft het blokschema van het PhyDAS meetsysteem zoals toegepast bij het NMR experiment.

V host-computer M

E

p h y B u s

NMR EXPERIMENT

Afbeelding 2: Blokschema van het PhyDAS meetsysteem zoals toegepast bij een NMR experiment.

Het NMR experiment wordt door de experimentator vanuit de host-computer via 3 meetmodules bestuurd. Een 8 kanaais 12 bit DAC verzorgt de analoge sturing, een digitale 1/0-module verzorgt de digitale sturing en de tijdkritische sturing wordt verzorgd door een programmeerbare timer.

De fase- en de quadratuurcomponent van het spin-echo signaal worden met behulp van een ASR (Analog Signal Recorder, zie (6)) gedigitaliseerd. Een ASR bestaat uit twee 12 bit ADC's en een 16k* 32 bit geheugen. De ASR genereert één 32 bits woord per bemonstering, bit 0 tot en met bit 15 bevatten de informatie van ADCO (fasecomponent in two's complement) en bit 16 tot en met bit 31 de informatie van ADCl (quadratuurcomponent in two's complement).

De huidige eisen van de experimentatoren zijn:

• Een bemonsteringsfrequentie van 1 MHz. • Spin-echo meting van 512 IJS (512 samples per spin echo ). • 32 slices per preparaat. • 8 herhalingen per preparaat.

Page 14: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

6

Een meting aan een preparaat levert dus 512 • 32 * 8 = 128 kw oorden op (512 kbyte ). De tijdsduur van het spin-echo signaal is 512 IJS, de insteltijd van het rf-signaal is 200 ms. De complete meting zal (512 IJS+ 200 ms) * 32 * 8 = 50 seconden duren. Na één meting (512 kbyte data en een meettijd van 50 seconden) wordt de data van het bulk geheugen (8 Mbyte Dual Ported Static Memory) getransporteerd naar de host-computer via de PhyBUS. De host-computer bewerkt de data (spin-echo signaal) tot een vochtprofieL

Afbeelding 3 geeft de dataflow weer van het huidige NMR-experiment.

g 8 Mbyte Dual Analog Signal .... PhyBUS ... PhyPAD VME I VME/PhyBUS

Ported Static Recorder • ~ .. (512 kbyte) 1 convertor .... (512 kbyte) ..... (512 Kbyte)

Memory (ASR)

host-computer

Afbeelding 3: Dataflow van het huidige NMR-experiment.

Het PhyDAS meetsysteem met de huidige geheugenmodule biedt voldoende performance om dit experiment te managen.

De experimentatoren willen het experiment echter uitbreiden door per slice steeds een serie van 32 spin-echo's te meten door middel van een zogenaamde CPMG-pulsreeks, zodat het NMR-experiment een nauwkeuriger vochtprofiel oplevert. Verder is de insteltijd van de rf­drager door gebruik te maken van nieuwe technieken teruggebracht van 200 ms naar 10 ms.

De nieuwe eisen van de experimentatoren zijn:

• Een bemonsteringsfrequentie van 1 MHz. • Spin-echo meting van 5121-JS (512 samples per spin-echo). • 32 spin-echo's per slice. • 32 slices per preparaat. • 8 herhalingen per preparaat.

Ten opzichte van de oude eisen neemt de data met een factor 32 toe tot 4 Mwoorden (16 Mbyte). De tijdsduur van het nieuwe experiment kan afnemen tot ((32*5l21JS) + 10 ms) *32 * 8 = 6,75 seconden (factor 7,5). De benodigde rekenkracht om de verkregen data te bewerken neemt met een factor 32 * 7,5 = 230 toe. Het PhyDAS meetsysteem met de huidige modules biedt niet voldoende performance om aan deze eisen te voldoen. Het bulkgeheugen van het PhyDAS meetsysteem (8 Mbyte) en de rekencapaciteit van de host-computer zijn te klein.

Een oplossing voor dit probleem zou zijn het ontwerpen van een grotere geheugenmodule en het aanschaffen van een krachtiger host-computer. Een goedkopere en duurzamere oplossing is echter het ontwerpen van een nieuwe geheugenmodule gebaseerd op het principe van interleaved-geheugen (de data kan in blokken bewerkt worden) en uitgerust met frond-end rekencapaciteit. Door het interleaved-geheugen te combineren met front­end processing neemt de hoeveelheid benodigd geheugen at de host-computer wordt ontlast en het datatransport over de PhyBUS en de PhyBUS-convertor neemt met een factor 32768 af (16 Mbyte data wordt via middeling, normering, Fourier transformatie en het combineren van de verkregen spectra gereduceerd tot 512 byte).

Page 15: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

7

2.2.2 Positron Emission Profiling experiment

Bij het onderzoek naar katalysereacties bij de faculteit Technische Natuurkunde van de TUE wordt gebruikt gemaakt van de PEP (Positron Emission Profiling) techniek. PEP is een in-situ techniek om chemische reacties te bestuderen op katalysereactors (katalysators) die bestaan uit een gepakt bed van zeoliet deeltjes. Een smalle puls van gelabelde moleculen (bijvoorbeeld hexaan waarbij één van de C's is vervangen door 11C) wordt hierbij geïnjecteerd in de katalysator en de voortgang van deze puls wordt gemeten met een zogenaamde PEP detector, als functie van tijd en plaats.

De voor het PEP onderzoek benodigde gelabelde moleculen (bijvoorbeeld 11 C) worden geproduceerd bij het cyclotron van de TUE door gebruik te maken van een protonenbundel die geschoten wordt op een stikstof gas, waardoor de volgende kernreactie optreedt:

14N + p ~ nc +a

Via een chemische reactie vindt de inbouw van 11 C in hexaan plaats. Het hexaan wordt in de katalysator geïnjecteerd en positron (e+) emissie vindt plaats:

nc ~ ns + e+ + v (neutrino)

Positronen zijn dè antimaterie van elektronen (e-) en een positron zal annihileren met een elektron in de katalysator. Het resultaat van een dergelijke annihilatie is een tweetal 511 keV fotonen (y) uitgezonden onder een onderlinge hoek van 180 graden:

e+ + e- ~ 2y

Door deze fotonen met behulp van 2 detectorbanken te detecteren kan de positie van de annihilatie gereconstrueerd worden mits in beide banken een foton gedetecteerd is (is dit niet het gevaL dan vindt geen reconstructie plaats). Afbeelding 4 geeft deze reconstructie weer.

Afbeelding 4:

bank 1

bank 2

Reconstructie van de positie van annihilatie met behulp van de gedetecteerde fotonen.

In de huidige PEP-opstelling worden de fotonen gedetecteerd met behulp van 2 detectorbanken die opgebouwd zijn uit elk 10 detectoren. Indien tegelijkertijd in de bovenste en onderste bank één of meer fotonen gedetecteerd worden, wordt de informatie van de 20 detectoren (511 keV foton gedetecteerd ja of nee) via een register (de zogenaamde bitbox) opgeslagen in een geheugen (8 Mbyte Dual Ported Memory). Twee geheugens worden als interleaved-geheugen toegepast zodat continu gemeten kan worden. Het detecteren van fotonen, het bepalen van geldige combinaties (dat wil zeggen in beide detectorbanken minimaal één foton gedetecteerd) en het opslaan van de inhoud van de detectorbanken in de bitbox wordt verzorgd door een stuk hardware dat specifiek voor deze toepassing

Page 16: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

8

ontworpen is. Via een preset scaler (PSC) wordt de meettijd ingesteld, die het moment van omschakelen van het interleaved-geheugen (één 8 Mbyte Dual Ported Memory is via het PhyPAD aan de bitbox gekoppeld en één 8 Mbyte Dual Ported Memory is via de PhyBUS met de host-computer verbonden) bepaalt. Na het omschakelen van het interleaved-geheugen wordt de inhoud van het geheugen dat gekoppeld is aan de PhyBUS, naar de host­computer getransporteerd. De databewerking c.q. -verwerking wordt verzorgd door de host­computer.

De eisen met betrekking tot het huidige systeem zijn:

• Detectoren met één uitgang (511 keV foton detectie). • Twee detectorbanken met ieder 10 detectoren. • Count rate 20CXXl reconstructies in 0,5 seconde.

Afbeelding 5 geeft het blokschema weer van het PhyDAS meetsysteem zoals het wordt toegepast bij de huidige PEP-opstelling.

host-computer

Afbeelding 5:

TRIGGER

V I M !P PhyPAD

B I,. E h I

y T :+----B B .... u PhyPAD

~.~ s

Blokschema van het PhyDAS meetsysteem zoals toegepast bij de huidige PEP­opstelling.

D E T E c T 0 R 0 N

Om de katalysereacties nauwkeuriger te kunnen onderzoeken willen de experimentatoren het PEP-project uitbreiden.

De nieuwe eisen zijn:

• Nieuwe detectoren mettwee uitgangen (511 keVen 300 keV detectie). • Twee detectorbanken met ieder 16 detectoren (in plaats van 2 x 10 detectoren). • Count rate verhoging/tijdsinterval verkleining:

1 00000 reconstructies in 0, 1 seconde. 20000 reconstructies in 0,02 seconde.

In de oude situatie moest 1 reconstructie (20 bits data; inhoud van de bitbox op het moment van het event) uitgevoerd worden binnen 25 IJS (0,5 s delen door 20000 reconstructies). In de nieuwe situatie moet 1 reconstructie (64 bits data; 2 x de inhoud van de bitbox. 511 keV en 300 keV pulsdetectie) binnen 1 IJS (0, 1 s delen door 100000 reconstructies) uitgevoerd worden. In de oude situatie werden de reconstructies verzorgd door de host-computer. In de nieuwe situatie is dit niet mogelijk, omdat de host-computer te weinig rekencapaciteit heeft om de

Page 17: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

9

reconstructies binnen 1 IJS uit te voeren en het data transport naar de host-computer maximaal 2,5 Mbyte/s kan bedragen. De maximale data-flow wordt bepaald door de zwakste schakel in de ketting, dit is de VME/PhyBUS convertor met een bandbreedte van 2,5 Mbyte/s. In de nieuwe situatie is de data-flow 8 Mbyte/s (64 bit per IJS).

Een oplossing voor dit probleem zou zijn een krachtiger host -computer toe te passen en een snellere VME/PhyBUS-convertor te ontwikkelen. Een goedkopere en duurzamere oplossing is echter het ontwerpen van een nieuwe geheugenmodule gebaseerd op het principe van interleaved-geheugen (de data kan in blokken bewerkt worden) en uitgerust met frond-end rekencapaciteit (lees DSP). De DSP aanwezig op deze module moet de data binnen 1 IJS kunnen analyseren. Bij de vakgroep NF is software ontwikkeld om de data te analyseren en de conclusie is dat een TMS320C40 DSP de data in 20 klokslagen kan analyseren. Dit komt neer op een tijd van 20 x 40 ns = 800 ns (uitgaande van een TMS320C40 DSP met eenklok van 50 MHz); er is dus nog een marge van 20% voor toekomstige ontwikkelingen. Verder reduceert deze software de dataflow van maximaal 8 Mbyte/s naar 200 kbyte/s. Dit is een factor 12,5 binnen de gestelde eis.

2.2.3 De stroomgeregelde invertorgevoede asynchrone machine

Bij de groep Elektromechanica en Vermogenselektronica van de faculteit Elektrotechniek van de TUE wordt voor de regeling van draaistroomaandrijvingen gebruik gemaakt van DSP's. Met deze DSP's worden tevens modellen van elektrische machines gerealiseerd om in reai-time verschillende regelstructuren te onderzoeken. Ook voor het onderzoek naar een stroomregeling voor een invertorgevoede asynchrone machine worden DSP's gebruikt (zie (7)). Een invertorgevoede asynchrone machine is een niet synchrone machine die gevoed wordt door een spanningsinvertor. Een spanningsinvertor is een vermogenselektronische omzetter die een gelijkspanning converteert naar een wisselspanning. Met behulp van 6 schakelaars wordt de spanningsinvertor aangestuurd door een stroomregeling. Afbeelding 6 geeft het blokschema van een stroomgeregelde invertorgevoede machine weer.

STROOM- t---t--1--__.J REGELINGf---t--+-;-,

Afbeelding 6: Blokschema van een stroomgeregelde invertorgevoede machine.

Page 18: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

10

In de huidige situatie wordt gebruik gemaakt van een testopstelling bestaande uit een DSP systeem, een host-computer, een bedieningspaneel, twee oscilloscopen en twee voltmeters. Het DSP systeem bestaat uit een multi-DSP kaart (zie (8)), een digitale- en een analoge IlO­kaart. De simulatie van de stroomgeregelde invertorgevoede asynchrone machine en het bewerken (bijvoorbeeld digitaal filteren en Fourier-transformaties) van de verkregen data wordt door de multi-DSP kaart uitgevoerd. Met behulp van een bedieningspaneel en de IlO­kaarten kunnen regel- c.q. simulatieparameters ingesteld worden. Twee oscilloscopen en twee voltmeters geven de bewerkte simulatiegegevens weer (via de analoge kaart). De host-computer dient als platform voor het downloaden/emuleren van de simulatiesoftware (via een JTAG-verbinding). Afbeelding 7 geeft het blokschema van de huidige testopstelling weer.

!DSP-systeem ~-

~-. digitale ~ j IlO-kaart

multi-DSP ~l ! i." · bedienings-...

kaart ~ paneel

h ast-computer analoge IlO-kaart

.. j

oscilloscopen &

j voltmeters

Afbeelding 7: Blokschema van de huidige testopstelling.

Het simuleren en het bewerken van de resultaten vereist alle rekencapaciteit die in de huidige testopstelling aanwezig is. Om het onderzoek nauwkeuriger uit te kunnen voeren, is echter meer rekencapaciteit gewenst en een nauwkeuriger en gebruikersvriendelijker user­interface (met nauwkeuriger wordt bedoeld dat de regel- c.q. simulatieparameters exacter ingesteld kunnen worden). Door de software voor het DSP-systeem te splitsen en te verdelen over twee DSP-systemen verkrijgt men de benodigde rekencapaciteit (DSP-systeem 1 : simulatie, DSP-systeem 2: bewerking simulatieresultaten). Voor een nauwkeurig en gebruikersvriendelijk user-interface zou bijvoorbeeld LabWindows gebruikt kunnen worden met een PC als platform.

Het PhyDAS meetsysteem ondersteunde tot nu toe geen front-end processing. Voor deze toepassing is front-end processing echter noodzakelijk. Door de komst van een geheugenmodule met front-end processing faciliteiten (MPM) is het PhyDAS meetsysteem uitermate geschikt om toegepast te worden bij de groep EMV. Door de integratie van PCI als computerbus In het PhyDAS meetsysteem kan met één host­computer het complete experiment bestuurd worden (emuleren van de DSP's, het instellen van de regel- c.q. simulatieparameters via LabWindows en het weergeven van de bewerkte simulatieresultaten via LabWindows). Afbeelding 8 geeft het blokschema weer van het PhyDAS-meetsyteem zoals het toegepast zou kunnen worden bij het onderzoek naar de stroomgeregelde invertorgevoede asynchrone machine.

Page 19: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

JTAG

host-computer

Afbeelding 8:

lp IC

I

PCI/PHYBUS M----1111-1 convertor

MPM

communi catiepoorten TMS320 C40DSP

MPM

11

Blokschema van het PhyDAS meetsysteem zoals het toegepast zou kunnen worden bij het onderzoek naar de in vertorgevoede asynchrone machine.

Een volgende stap in het onderzoek is het daadwerkelijk aansturen van een invertorgevoede asynchrone machine (dus niet meer simuleren). De aansturing bestaat uit zes digitale signalen voor de invertor. De terugkoppeling bestaat uit drie spanningen en drie stromen (iedere fase één spanning en één stroom). Door middel van een U/I-model (zie (7)) en de gemeten spanningen en stromen kan de flux in de kortsluitwikkeling berekend worden; deze is een inputvariabele van de regelaar. In de huidige testopstelling wordt de invertor aangestuurd via de digitale l/0-kaart. De te meten analoge signalen (de spanning en de stroom in de drie fasen) worden gedigitaliseerd via de analoge 1/0-kaart. Afbeelding 9 geeft het blokschema van de huidige testopstelling weer.

~ h ost-computer

Afbeelding 9:

DSP-systeem "-~·····

digitale 1/0-kaart

multi-DSP ._..

kaart .-..r re:- 1-! analoge

~ 11/0-kaart -···-·

.. oscilloscopen

& voltmeters

I

• bedienings·

paneel

I I

... inverte r+

g sturin

l ~ '-"')

:

mach i

+ 600Volt

Blokschema van de huidige testopstelling bij aansturing van een invertorgevoede asynchrone machine.

Page 20: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

12

Wil men het PhyDAS meetsysteem gebruiken voor deze meer uitgebreide testopstelling, dan moet de front-end processor (MPM) direct toegang hebben tot digitale en analoge l/0. Om deze toegang zo flexibel mogelijk te maken zal de MPM uitgerust moeten worden met een interface voor hardware die specifiek voor één toepassing ontwikkeld is. Door gebruik te maken van een Piggy-back (een opsteek-module) kan de MPM, afhankelijk van de toepassing, uitgerust worden met specifieke hardware. Voor de aansturing van de invertorgevoede asynchrone machine zal de Piggy-back bijvoorbeeld uitgerust moeten worden met zes digitale uitgangen en zes analoge ingangen. Afbeelding 10 geeft het blokschema van het PhyDAS meetsysteem weer bij een daadwerkelijke aansturing van de invertorgevoede asynchrone machine.

JTAG

host-computer

Afbeelding 10:

p h y B u s

MPM

communi catiepoorten TMS320 C40DSP

MPM

+ 600 Volt

machine

Blokschema van het PhyDAS meetsysteem zoals het toegepast zou kunnen worden bij een daadwerkelijke aansturing van de invertorgevoede asynchrone machine.

Page 21: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

13

3. MPM toepassingen

3.1 Inleiding

In hoofdstuk 2 werd een aantal toepassingen van het PhyDAS meetsysteem behandeld, waarbij aangegeven werd waarom de MPM gewenst is en hoe deze toegepast moet worden. In dit hoofdstuk worden de verschillende toepassingen van de MPM omgezet naar daadwerkelijke configuratie-modes.

De MPM zal op drie manieren toegepast worden in het PhyDAS-systeem:

• Als interleaved-geheugen. • Als front-end processor. • Als reai-time regelsysteem.

De MPM toegepast als interleaved-geheugen maakt gebruik van een geheugensegmentatie bestaande uit een interleaved-geheugen dat uit twee geheugenbanken (geheugenbank A en geheugenbank B) is opgebouwd. leder datapad is verbonden met één geheugenbank. Indien het import-datapad verbonden is met geheugenbank A dan is het export-datapad verbonden met geheugenbank B en vice versa. Door gebruik te maken van een interleaved-geheugen kan continue data-import plaatsvinden. Afbeelding 11 geeft de datapad- en geheugenstructuur weer voor de MPM toegepast als interleaved-geheugen.

import datapad

geheugenbank A

geheugenbank B

............._Stand 0: import datapad • geheugenbank A

.........,..... export datapad geheugenbank B

~Stand 1 : import datapad • geheugenbank 8 export datapad • geheugenbank A

export datapad

Afbeelding 11: Datapad- en geheugenstructuur van de MPM toegepast als interleaved-geheugen.

De MPM toegepast als front-end processor maakt gebruik van een geheugensegmentatie bestaande uit twee interleaved-geheugens. Eén interleaved-geheugen voor het import­datapad (geheugenbank A en geheugenbank B) en één interleaved-geheugen voor het export-datapad (geheugenbank C en geheugenbank D). De front-end rekencapaciteit is zowel aan het import interleaved-geheugen als aan het export interleaved-geheugen gekoppeld (tegelijkertijd). Door gebruik te maken van twee lnterleaved-geheugens kan zowel data-import als data-export continu plaatsvinden. De twee interleaved-geheugens schakelen asynchroon om. De link tussen de twee interleayed-geheugens is de front-end rekencapaciteit; de data uit het import interleaved-geheugen wordt door de front-end rekencapaciteit bewerkt en opgeslagen in het export interleaved-geheugen. Afbeelding 12 geeft de datapad- en geheugenstructuur weer voor de MPM toegepast als front-end processor.

Page 22: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

14

import datapad

geheugenbank A

geheugenbank B

front-end rekencapaciteit

')>export > datapad

....o111....... Stand Oa: import datapad - geheugenbank A ,,,;ri,"',i\b, Stand Ob: front-end-rekencapaciteit- geheugenbank C

...,........... front-end-rekencapaciteit - geheugenbank B ''' '" export datapad - geheugenbank D

.. Stand 1 a: import datapad - geheugenbank B .. Stand 1 b: front-end-rekencapaciteit- geheugenbank D front-end-rekencapaciteit - geheugenbank A export datapad - geheugenbank C

Afbeelding 7 2: Datapad- en geheugenstructuur van de MPM toegepast als front-end processor.

De MPM toegepast als reai-time regelsysteem maakt gebruik van een geheugensegmentatie bestaande uit één interleaved-geheugen (geheugenbank A en geheugenbank B), waar zowel het import-datapad als de front-end rekencapaciteit mee verbonden zijn. De te exporteren data (aansturen regelaar) wordt via de communicatiepoorten van de front-end rekencapaciteit geëxporteerd naar de regelaar (deze regelaar zal op de MPM worden uitgevoerd als een Piggy-back, zie hoofdstuk 4 ). De data-export vindt plaats via een statische verbinding. Deze optie is altijd aanwezig; echter bij deze toepassing is het gebruik van deze optie noodzakelijk (er is geen andere mogelijkheid om data te exporteren). Afbeelding 13 geeft de datapad- en geheugenstructuur weer voor de MPM toegepast als reai-time regelsysteem.

import datapad

geheugenbank A

front-end rekencapaciteit

....o111....... Stand 0: import datapad - geheugenbank A

...,........... front-end-rekencapaciteit - geheugenbank B

.. Stand 1: import datapad - geheugenbank B • front-end-rekencapaciteit - geheugenbank A

Afbeelding 7 3: Datapad- en geheugenstructuur van de MPM toegepast als reai-time regelsysteem.

Bij alle toepassingen wordt het omschakelmoment van de interleaved-geheugens bepaald door de manier van data-import (import interleaved-geheugen) of door de front-end rekencapaciteit (export interleaved-geheugen). Data kan geïmporteerd worden met vaste of variabele bloklengte. Bij vaste bloklengte schakelt het import interleaved-geheugen om indien de geheugenbank verbonden met het import-datapad vol is (met vol wordt bedoeld dat een vooraf gespecificeerd gedeelte van deze geheugenbank vol is). Bij variabele bloklengte schakelt het import interleaved-geheugen om indien een externe trigger geactiveerd wordt (de zogenaamde 'switch memory'). Het omschakelmoment van het export interleaved-geheugen (MPM toegepast als front-end processor) wordt bepaald door de front-end rekencapaciteit via het DSP Control and Status Register. In hoofdstuk 5 wordt de controle van de MPM uitvoerig beschreven.

Page 23: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

15

3.2 MPM modes

De MPM wordt op drie manieren toegepast. De MPM modes zijn gebaseerd op deze drie toepassingen; zij verschillen alleen in de gekozen transferpaden voor data-import en data­export. Het PhyDAS meetsysteem ondersteunt vier transferpaden voor datatransport:

• PhyBUS • PhyPAD • Dual Sub Bus (opgesplitst in DSB 1 en DSB2)

De PhyBUS (meetbus) verzorgt de verbinding tussen de meetmodules (bijvoorbeeld de MPM) en de host-computer. Data-export naar de host-computer toe zal via de PhyBUS verlopen. Data-import vanaf de host-computer zal in de praktijk niet voorkomen; de PhyBUS zal daarom alleen als data-export transferpad gebruikt worden. Het PhyPAD is een point-to-point verbinding tussen meetmodules. Via het PhyPAD zal data naar de MPM toe getransporteerd worden. Het PhyPAD wordt daarom alleen als data-import transferpad toegepast (vanuit de MPM gezien). De Dual Sub Bus is een dynamische verbinding tussen meetmodules, die opgesplitst is in twee delen; DSB1 en DSB2. De DSB wordt zowel voor data-import als data-export gebruikt. Tabel 1 geeft de data-import en data-export transferpaden van de MPM schematisch weer.

nee ja

Tabe/1: Data-import en data-export transferpaden van de MPM.

De combinatie van de drie MPM toepassingen met de data-import en data-export transferpaden levert de volgende toepasbare modes op:

MODE 0: Toe passing: Geheugensegmentatie: Front-end rekencapaciteit: lmport-datapad: Export -data pad:

lnterleaved-geheugen 1 interleaved-geheugen Nee PhyPAD PhyBUS

geheugenbank A

PhyPAD PhyBUS

geheugenbank B

Afbeelding 14: Mode 0 van de MPM.

Page 24: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

16

MODE 1: Toepassing: Geheugensegmentatie: Front-end rekencapaciteit: lmport-datapad: Export-datapad:

geheugenbank A

DSB1

geheugenbank B

lnterleaved-geheugen 1 interleaved-geheugen Nee DSB 1 PhyBUS

PhyBUS

Afbeelding 15: Mode 1 van de MPM.

MODE 2: Toepassing: Geheugensegmentatie: Front-end rekencapaciteit: lmport-datapad: Export-datapad

geheugenbank A

DSB2

geheugenbank B

lnterleaved-geheugen 1 interleaved-geheugen Nee DSB2 PhyBUS

PhyBUS

Afbeelding 16: Mode 2 van de MPM.

MODE 3: Toe passing: Geheugensegmentatie: Front-end rekencapaciteit: lmport-datapad: Export-datapad:

PhyPAD

Front-end processor 2 interleaved-geheugens Ja PhyPAD PhyBUS

front-end rekencapaciteit

Afbeelding 17: Mode 3 van de MPM.

PhyBUS

Page 25: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

MODE 4: Toepassing: Geheugensegmentatie: Front-end rekencapaciteit: lmport-datapad: Export-datapad:

Front-end processor 2 interleaved-geheugens Ja PhyPAD DSB 1

: geheugenbank A !

PhyPAD

geheugenbank B

Afbeelding 18: Mode 4 van de MPM

MODE 5: Toepassing: Geheugensegmentatie: Front-end rekencapaciteit: lmport-datapad: Export-datapad:

PhyPAD

Front-end processor 2 interleaved-geheugens Ja PhyPAD DSB2

Afbeelding 19: Mode 5 van de MPM

MODE6: Toepassing: Geheugensegmentatie: Front-end rekencapaciteit: lmport-datapad: Export-datapad:

DSB1

Front-end processor 2 interleaved-geheugens Ja DSB 1 PhyBUS

-~

l..._...c:::=:l_. front-end ~ ,,,

rekencapaciteit !

Afbeelding 20: Mode 6 van de MPM

17

DSB1

DSB2

PhyBUS

Page 26: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

18

MODE 7: Toepassing: Geheugensegmentatie: Front-end rekencapaciteit: Import -data pad: Export-datapad:

geheugenbank A

DS82

geheugenbank 8

Front-end processor 2 interleaved-geheugens Ja DSB2 PhyBUS

front-end rekencapaciteit

Afbeelding 21: Mode 7 van de MPM.

MODE 8: Toepassing: Geheugensegmentatie: Front-end rekencapaciteit: Import-datapad: Export-datapad:

i 1 geheugenbank A

DS81

geheugenbank 8

Front-end processor 2 interleaved-geheugens Ja DSB l DSB2

front-end rekencapaciteit

geheugenbank C

geheugenbank D

Afbeelding 22: Mode 8 van de MPM.

MODE9: Toepassing: Geheugensegmentatie: Front-end rekencapaciteit: lmport-datapad: Export-datapad:

geheugenbank A

DS82

1 geheugenbank 8

Front-end processor 2 interleaved-geheugens Ja DSB 2 DSB l

front-end rekencapaciteit

geheugenbank C

geheugenbank D

Afbeelding 23: Mode 9 van de MPM.

Phy8US

DS82

DS81

Page 27: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

MODE 10: Toepassing: Geheugensegmentatie: Front-end rekencapaciteit: lmport-datapad: Export-datapad:

Reai-time regelsysteem 1 interleaved-geheugen Ja PhyPAD Statische verbinding ( communicatiepoorten)

geheugenbank A

PhyPAD

Afbeelding 24:

geheugenbank B

front-end rekencapaciteit

Mode 70 van de MPM.

19

Page 28: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

20

Page 29: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

21

4. Globale opzet MPM

4.1 Primaire eisen

Om aan de huidige en toekomstige eisen van de experimentatoren te voldoen gelden de volgende primaire eisen voor de MPM:

• Compatibel zijn met de 8 Mbyte Dual Ported Static Memory geheugenmodule. • Toegankelijk zijn via de PhyBUS, het PhyPAD en de DSB. • Uitgerust zijn met een interface voor front-end rekencapaciteit. • Uitgerust zijn met een interface voor toegang tot het geheugen en de front-end reken­

capaciteit vanuit dedicated hardware (in de vorm van een Piggy-back). • Flexibel zijn in het gebruik onder andere door een modulaire opbouw:

keuze (hoeveelheid) geheugen door middel van TIM-geheugenmodules. keuze (wel of geen) DSP's door middel van TIM-DSP modules.

Vanuit deze eisen en de voorkennis hoe de MPM toegepast zal worden in het PhyDAS meetsysteem volgt nu een beschrijving van de globale opzet van de MPM.

4.2 Front-end rekencapaciteit interface

De MPM wordt uitgerust met een interface voor front-end rekencapaciteit zodat de MPM toegepast kan worden als front-end processor. Met betrekking tot de front-end rekencapaciteit is gekozen voor een DSP van Texas lnstruments uit de TMS320-familie. De front-end rekencapaciteit interface is gebaseerd op de TIM-specificaties (zie (9)). ledere DSP uit de TMS320-familie die geïmplementeerd kan worden op een TIM-module kan via de front­end rekencapaciteit interface geïntegreerd worden op de MPM. Voor het PEP-experiment (zie paragraaf 2.2.2) zal een TIM-40 module worden toegepast. Dit is een TIM-module voorzien van een TMS320C40DSP (zie (10) en (11)) en maximaal 8 Mbyte geheugen (4 Mbyte lokaal en 4 Mbyte globaal). Afbeelding 25 geeft het blokschema van de TIM-40 module weer.

Boot ROM

32k. 8 Upto 4MB Upto 4MB

il ~ il " c " c

" 0 c c u c c 0 0 c " u u 0

~ ~

(ij c "' "' "' E

E a. ·c ·c x 0.. 0.. w

E a. (ij 0 0 Floating point DSP

~ = I- 0 0 a Ol TMS320C40

40/50/60 MHz

Afbeelding 25: Blokschema van de T/M-40 module.

Page 30: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

22

De MPM biedt plaats aan twee TIM-DSP modules (TIM-DSP module X en TIM-DSP module Y). De TIM-DSP modules kunnen onderling communiceren via drie communicatiepoorten van de TMS320 (20 Mbyte/s datatransfer is mogelijk via één communicatiepoort). De TIM-DSP modules hebben toegang tot het geheugen op de MPM via de globale bus van TIM-DSP module X (GB-X), die een onderdeel is van de interface voor de front-end rekencapaciteit. TIM-DSP module Y is een optie indien één TIM-DSP module (TIM-DSP module X) niet de benodigde rekencapaciteit kan leveren.

4.3 Piggy-back interface

Om de MPM voor te bereiden op niet-standaard toepassingen, wordt een interface geïmplementeerd ten behoeve van dedicated hardware. De dedicated hardware zal uitgevoerd worden op een Piggy-back (een Piggy-back is een module die op een moederboard (MPM) geplaatst kan worden). Via de Piggy-back interface heeft de dedicated hardware toegang tot de TIM-DSP modules en het geheugen op de MPM. De Piggy-back heeft toegang tot de TIM-DSP modules via twee communicatiepoorten per TIM­DSP module (TIM-DSP module X communicatiepoort 2 en 4, TIM-DSP module Y communicatiepoort 1 en 2). De Piggy-back heeft toegang tot het geheugen via het Piggy­back-PAD. Het Piggy-back-PAD is een parallel asynchroon datapad, gelijk aan het PhyPAD. Het Piggy-back-PAD maakt gebruik van dezelfde geheugentoegang als het PhyPAD (experimenten waarbij dit een probleem zou kunnen zijn kunnen ook op een alternatieve wijze worden ingericht); het Piggy-back-PAD kan daarom alleen gebruikt worden als het PhyPAD niet gebruikt wordt (en vice versa).

4.4 Transferpaden

De MPM is toegankelijk via vier transferpaden:

• PhyBUS • PhyPAD • DSB 1 (Dual Sub BUS 1) • DSB2 (Dual Sub Bus 2)

Met behulp van deze transferpaden kan data getransporteerd worden van/naar andere meet- of computermodulen in het PhyDAS meetsysteem, de geheugenmodule geïnitialiseerd worden, software voor de DPS's gedownload worden, etcetera. Het gedeelte van de transferpaden dat toegang heeft tot het geheugen op de MPM wordt aangegeven door de transferpad-naam met de index 1 (intern), bijvoorbeeld PhyBUS1• Een interface verzorgt de koppeling en controle van externe transferpaden naar interne en vice versa. De MPM is uitgerust met 3 interfaces; PhyBUS interface, PhyPAD interface en DSB interface (voor zowel DSB1 als DSB2).

Naast deze vier transferpaden zijn er nog twee transferpaden die toegang hebben tot het geheugen: het datapad van de front-end rekencapaciteit (globale bus TIM-DSP X; GB-X) en het Piggy-back-PAD. Omdat het Piggy-back-PAD gebruik maakt van dezelfde geheugentoegang als het PhyPAD (en het Piggy-back-PAD identiek is aan het PhyPAD), worden het Piggy-back-PAD en het PhyPAD als één transferpad gezien (PhyPADI\Piggy­back-PAD).

Page 31: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

23

Het geheugen op de MPM is dus toegankelijk via vijf transferpaden:

• PhyBUS1

• DSB1 1

• DSB21

• PhyPADI\Piggy-back-PAD • GB-X

4.5 Geheugen

4.5.1 Inleiding

Zoals hierboven reeds werd aangegeven is het geheugen op de MPM toegankelijk via vijf interne transferpaden. Bij de toepassingen waar de MPM in het PhyDAS meetsysteem gebruikt zal worden zullen tegelijkertijd meerdere paden toegang moeten hebben tot verschillende delen van het geheugen (zie hoofdstuk 3). Het geheugen is opgedeeld in vier banken met elk een eigen datapad, zodat tegelijkertijd maximaal vier verschillende transferpaden toegang hebben tot de verschillende geheugenbanken. Het geheugen zal geïmplementeerd worden in de vorm van TIM-geheugenmodules; dit zijn modules die voldoen aan de TIM-specificaties (zie (9)) en uitgerust zijn met een hoeveelheid geheugen afhankelijk van de wensen van de gebruiker. De MPM biedt plaats aan vier TIM­geheugenmodules.

4.5.2 Geheugensegmentatie

Het geheugen op deMPMis verdeeld in vier banken: geheugenbank AB, C enD. Geheugenbank A wordt gevormd door TIM-geheugenmodule A (TIM-gm A), geheugenbank B door TIM-gm 8, geheugenbank C door TIM-gm C en geheugenbank D door TIM-gm D. Afhankelijk van de toepassing moeten TIM-gm A en TIM-gm B geplaatst zijn (er wordt gebruikt gemaakt van één interleaved-geheugen; de MPM toegepast als interleaved-geheugen of als reai-time regelsysteem) of TIM-gm A TIM-gm B, TIM-gm C en TIM-gm D (er wordt gebruik gemaakt van twee interleaved-geheugens; de MPM toegepast als front-end processor). Geheugenbank A moet met dezelfde hoeveelheid geheugen zijn uitgerust als geheugenbank B; zij vormen het import interleaved-geheugen. Voor geheugenbank C enD geldt hetzelfde; zij vormen het export interleaved-geheugen. De twee interleaved­geheugens hoeven niet even groot te zijn (samenvattend: TIM-gm A== TIM-GM B & TIM-gm C==TIM-gm D).

4.5.3 De TIM-geheugenmodule

De toegepaste geheugenmodule voldoet aan de TIM-specificaties (zie (9)) en is uitgerust met een hoeveelheid geheugen en soort geheugen (snelheid) afhankelijk van de wensen van de gebruiker. Eén van de TIM-specificaties is de definitie van de connector (interface). De TIM­geheugenmodule interface bestaat logisch uit drie delen:

• Databus • Adresbus • Controlepad

Page 32: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

24

De databus is 32 bits breed. Data kan alleen als een 32-bit woord getransporteerd worden. De adresbus is 24 bits breed (adreslijnen A31 tot en met A24 zijn gereserveerd voor adresdecodering buiten de TIM-geheugenmodule). Het maximale adresbereik van de TIM­geheugenmodule is 224=16 M adressen. Een TIM-geheugenmodule kan maximaal uitgerust worden met 16 Mword geheugen (64 Mbyte). Het controlepad bestaat uit zeven signalen:

• STROBE* • WRITE* • READY* • geheugenbank lengte bit 0 (GB_LNG_O*) • geheugenbank lengte bit l (GB_LNG_1 *) • geheugenbank lengte bit 2 (GB_LNG_2*) • geheugenbank present (GB_PR*)

Het STROBE*-signaal enabled het geheugen bij lezen en klokt het geheugen bij schrijven (een ingangssignaal van de TIM-geheugenmodule, actief laag). Het WRITE*-signaal geeft aan of data gelezen of geschreven wordt (een ingangssignaal van de TIM-geheugenmodule, actief laag). Het READY*-signaal geeft bij lezen aan dat de data geldig is en bij sèhrijven dat de data overgenomen is (een uitgangssignaal van de TIM-geheugenmodule, actief laag). De timing van deze drie controlesignalen wordt behandeld in (1 0). De controlesignalen "geheugenbank lengte bit 0" tot en met "geheugenbank lengte bit 2" geven aan hoeveel geheugen op de TIM-geheugenmodule geplaatst is (uitgangssignalen van de TIM-geheugenmodule, actief laag). In Tabel 2 wordt de codering van de geheugenbank-lengte signalen schematisch weergegeven. Het controlesignaal "geheugenbank present" geeft aan of een geheugenmodule geplaatst is of niet (een uitgangssignaal van de TIM-geheugenmodule, actief laag).

Tabe/2: Codering van de hoeveelheid geheugen op de T/M-geheugenmodu/e.

4.5.4 De adresgeneratoren

De TIM-geheugenmodule heeft een gescheiden adres- en databus. Voor de globale bus van TIM-DSP X geldt hetzelfde en deze wordt door middel van een multiplexer transparant (één op één) aan de geheugenmodule gekoppeld. De overige transferpaden (PhyBUS1

,

PhyPADI\Piggy-back-PAD, DSBl 1 en DSB21) hebben alleen een databus (met enkele controlelijnen). Bij deze transferpaden wordt de databus door middel van een multiplexer direct aan de databus van de TIM-geheugenmodule gekoppeld. Het genereren van een adres wordt in dit geval verzorgd door een adresgenerator. Op de MPM zijn twee adresgeneratoren aanwezig (maximaal twee transferpaden met alleen een databus; import­datapad en export-datapad), de input adresgenerator en de output adresgenerator (AGI en AGO). Het import-datapad heeft alleen toegang tot de geheugenbanken A en B (zie

Page 33: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

25

hoofdstuk 3), de AGI kan daarom alleen adressen genereren voor geheugenbank A of B. Het export-datapad heeft toegang tot alle vier geheugenbanken, de AGO kan voor iedere geheugenbank adressen genereren (één bank tegelijkertijd).

4.5.4.1 De input adresgenerator (AGI)

De input adresgenerator verzorgt de adressering voor het import-datapad. Afbeelding 26 geeft het blokschema van de input adresgenerator weer.

Afbeelding 26:

RD_BLJ<...IN'

INIT_AGI' AGI_OVFLW' AGI_AOO •. AGI_A23

8)--+lî & jl------'-+1

I

CLR_AGI' INC_AGI' STR_AGI'

Blokschema van de input adresgenerat ar.

REAO _AG!_ END'

De AGI bestaat uit 3 delen: één 25 bits counter, "de adresteller", en twee registers; één met een grootte van 20 bits, "bloklengte in register", en één met een grootte van 24 bits, "bloklengte uit of laatse adres adresgenerator register". Afhankelijk van de manier van data­import (vaste bloklengte of variabele bloklengte, zie paragraaf 3. 1 en hoofdstuk 5) kan de AGI op 2 manieren geïnitialiseerd worden. Indien data met een variabele bloklengte geïmporteerd wordt (vooraf is de bloklengte niet bekend), dan wordt de AGI met 0 geladen (activeren van clr_agi*). Wil men data met een vaste bloklengte importeren, dan moet de bloklengte gedeeld door 8 en verminderd met 1 opgeslagen worden in het "bloklengte in register" en vervolgens initialiseert men de AGI door het activeren van init_agi*. De adresgenerator is nu geladen met het beginadres van de geheugenbank waar het datablok naar toe wordt getransporteerd. Als het complete datablok geïmporteerd is genereert de AGI een overflow. Is de AGI geïnitialiseerd, dan kan het adres in adresgenerator met één vermeerderd worden door INC_AGI* te activeren (de adresgenerator hoeft alleen opeenvolgende adressen te genereren omdat alleen aaneengesloten blokken worden geïmporteerd). De inhoud van de adresgenerator kan bewaard worden in het 24 bits register "bloklengte uit of laatste adres adresgenerator register" door str_agi* te activeren. De TIM-DSP module X en de output adresgenerator hebben toegang tot dit register (activeren read_agi _end*). De AGI is een stuk complexe logica dat is geïmplementeerd in een EPLD. In BIJLAGE A is de EPLD ontwerp-file weergegeven.

Page 34: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

26

4.5.4.2 De output adresgenerator (AGO)

De output adresgenerator verzorgt de adressering voor het export-datapad. Afbeelding 27 geeft het blokschema van de output adresgenerator weer.

BLK_OUT_AOO .. BLK_OUTA23 INIT AGO• AGO OVFLW"

STORE_BLK_OUT" CLR_AGO" INC_AGO•

Afbeelding 27: Blokschema van de output adresgenerator.

De AGO bestaat uit 2 delen: één 25 bits counter, "de adresteller", en één 24 bits register, "bloklengte uit register". Ook de AGO kan op 2 manieren geïnitialiseerd worden; afhankelijk van de manier waarop data geïmporteerd wordt (vaste bloklengte of variabele bloklengte) wordt de AGOgeladen met 0 (activeren clr_ago*) of geladen met de waarde opgeslagen in het "bloklengte uit register" (activeren init_ago*). Is de AGO geïnitialiseerd, dan kan het adres in de adresgenerator met één vermeerderd worden door inc_ago* te activeren (de adresgenerator hoeft alleen opeenvolgende adressen te genereren omdat alleen aaneengesloten blokken worden geëxporteerd). Een adres kan opgeslagen worden in het "bloklengte uit register" door het activeren van store_blk_out*. In (12) en hoofdstuk 5 wordt de toegang tot de diverse registers van de AGO beschreven. De AGO is evenals de AGI geïmplementeerd in een EPLD. In BIJLAGE B is de EPLD ontwerp-file van de AGO weergegeven.

4.5.5 Toegang tot het geheugen

Vier transferpaden (PhyBUS, DSBl, DSB2 en PhyPAD/Piggy-back-PAD) en één bus van de front-end rekencapaciteit (GB-X) hebben toegang tot het geheugen en een aantal registers op de MPM. In (12), de user manual van de MPM, wordt een en ander compleet beschreven (toegang tot het geheugen en de toegang tot alle registers). In deze paragraaf volgt een beknopte beschrijving van de toegang van deze 5 bussen/paden tot het geheugen op de MPM. Bij de beschrijving van de toegang van een bus of pad tot het geheugen wordt verondersteld dat door de configuratie-controller reeds een geheugenbank aan deze bus of dit pad is toegewezen (zie hoofdstuk 5).

De toegang tot het geheugen is voor de diverse bussen/paden verschillend: • De globale bus van TIM-DSP X heeft direct toegang tot het geheugen. Een gedeelte van

het adresbereik van de TIM-DSP is gereserveerd voor de geheugenbank(en). • De transferpaden Cdatapaden met alleen een databus en enkele controlesignalen)

hebben via een data-register (met behulp van een adresgenerator) toegang tot het geheugen.

Page 35: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

27

De TIM-DSP X is via GB-X transparant verbonden met een import geheugenbank (MPM toegepast als reai-time regelsysteem) of met een import en een export geheugenbank (MPM toegepast als front-end processor). Voor beide geheugenbanken is ruimte gereserveerd in de memory map van TIM-DSP X. Afbeelding 28 geeft het gedeelte van de memory map van TIM-DSP module X dat van toepassing is op de MPM weer.

Afbeelding 28: Gedeelte van de memory map van TIM-DSP module X.

Het adresbereik vanaf H"COOOOOOO" is gereserveerd voor extern geheugen. Het externe geheugen moet aangestuurd worden met behulp van STRO BE* 1 (zie (1 0) en (9)).

De transferpaden hebben toegang tot de aan hen toegewezen geheugenbanken via een data-register. Door het lezen of schrijven van dit data-register vindt respectievelijk een lees-, schrijfactie op het geheugen plaats (De PhyBUS mag het geheugen alleen lezen, de DSB zowellezen als schrijven en het PhyPAD alleen schrijven, dit zit opgesloten in de MPM modes, zie paragraaf 3.2). Een adresgenerator verzorgt de adressering voor een transferpad. Na een lees- of schrijfactie wordt de adresgenerator automatisch met één verhoogd. De transferpaden kunnen alleen aaneengesloten blokken lezen of schrijven. • De PhyBUS heeft toegang tot zijn data-register door te lezen naar het PhyBUS subadres

behorende bij het PhyBUS data-register( zie hoofdstuk 5). • De DSB heeft toegang tot zijn data-register door te lezen of te schrijven naar het DSB

subadres behorende bij het DSB data-register. De DSB heeft twee data-registers: DSB 1 data-register en DSB2 data-register (zie(12)).

• Het PhyPAD/Piggy-back-PAD heeft alleen maar toegang tot zijn data-register (dit is het enige register waar het toegang tot kan hebben).

Het initialiseren en het incrementen (met één verhogen) van de adresgenerator en het toewijzen van geheugenbanken aan de bussen/paden wordt verzorgd door de configuratie­controller, zie hoofdstuk 5.

4.6 Datapadstructuur

Het datapad van de MPM bestaat uit een dynamisch en een statisch gedeelte. Het dynamische datapad wordt gevormd door de vijf interne transferpaden en de vier geheugenbanken. Elk transferpad kan met behulp van een multiplexer gekoppeld worden aan iedere geheugenbank (de controle van de multiplexers, dus van het dynamische datapad, wordt verzorgd door de configuratie-controller, zie hoofdstuk 5). Afbeelding 29 geeft de dynamische datapadstructuur van de MPM weer.

Page 36: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

28

geheugenbank A geheugenbank 8 geheugenbank C geheugenbank 0

.4~ ~~ .4~ .4~ ~, ~, H .,,

Multiplexer Multiplexer Multiplexer Multiplexer

~~ ·~ A ~ t~~ ~~ ~ '~~ ~ ~ t ~ • .4~ ~~ "f ·~ ~ G8-X ... TIM-08P X ; : \ i ! ..

i I

' i i •

~~~ I Piggy-8ack-PAO

Piggy-8ack I I PhyPA01 ,,08811 1V08821 "['Phy8U8 1

Phy8U8 I interface

I PhyPAO interface

I 0881 I interface

0882 I interface

• t t î Phy8U8 PhyPAO 0881 0882

Afbeelding 29: Dynamische datapadstructuur van de MPM.

Het statische datapad wordt gevormd door de communicatiepoorten van de DSP op de TIM-DSP modules. Per TIM-DSP module is één communicatiepoort uitgevoerd naar de PhyBUS, voor het downloaden van software vanuit de host-computer. Twee communicatiepoorten per TIM-DSP module zijn uitgevoerd naar de Piggy-back, voor directe toegang van/naar dedicated hardware. Drie communicatiepoorten per TIM-DSP module verzorgen de onderlinge communicatie tussen de TIM-DSP modules X en Y, voor multi-processor toepassingen. Afbeelding 30 geeft de statische datapadstructuur van de MPM weer.

Piggy-Back

Afbeelding 30: Statische datapadstructuur van de MPM.

De complete datapadstructuur wordt gevormd door het dynamische en statische datapad te combineren. Afbeelding 31 geeft de complete datapadstructuur van de MPM weer.

Page 37: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

Communicatiepoort 5 PDT-40 X en PDT-40 Y

DSB-bus l DSB-bus 2

Communieatlepoort 1 . 2 en 4 PDT-40 X en PDT-40 Y

r.-•110

BACK

PhyPAD

Page 38: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

30

4. 7 Resumerend

De MPM is een multi-functionele geheugenmodule, die afhankelijk van de toepassing naar believen geconfigureerd en uitgebreid kan worden (uitbreiden: geheugen door middel van TIM-geheugenmodules, front-end rekencapaciteit door middel van TIM-DSP modules en hardware door gebruik te maken van een Piggy-back). De kosten blijven beperkt indien de module voor eenvoudige toepassingen wordt gebruikt. Wil men de MPM gebruiken voor complexe toepassingen, dan kan deze module eenvoudig worden uitgebreid; het prijskaartje zal dan echter overeenkomstig zijn met de mate van uitbreiding. Afbeelding 32 geeft de lay-out van de MPM weer .

.... ... PhyBUS

""" ...

... ... """ ... .... ... DSB-bus ....

~ ...

t'nVt:ll 1menace I U:St:l- us Interrace en:ll

~'2J~ © ~'~cJ>~e ~

~'2J~ ~0~ ~e-s

~\~ 0~0 ~~e 0~e ~0 ~'\ ~0

~ ~ ~ " ~ ~ \ :8

~

'%~~ '%~~ '%~ i 8

~ct ~ (9"' ~ct i ~IQ ~IQ ~IQ ~ ~ ~ ~

!PhyPAD interface! I PhyPAD

Afbeetding 32: Lay-out van de MPM.

Page 39: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

31

5. De configuratie-controller

5.1 Inleiding

In hoofdstuk 2 en hoofdstuk 3 zijn de toepassingen van de MPM behandeld, in hoofdstuk 4 is vanuit de toepassingen de globale opzet van deze module beschreven; zowel de onderdelen waaruit deze is opgebouwd als de datapadst,uctuur (dynamische en statische). De besturing/controle van de MPM is ondergebracht in de configuratie-controller. Deze beheert de volgende taken:

• communicatie tussen de host-computer en de MPM • communicatie tussen de front-end rekencapaciteit en de MPM) • datatransport via de PhyBUS • datatransport via de Dual Sub Bus (DSB 1 en DSB2) • datatransport via het PhyPAD • globale controle MPM

De configuratie-controller vormt het hart van de MPM. De verschillende taken van de configuratie-controller worden nu behandeld.

5.2 Communicatie tussen de host-computer en de MPM

De MPM is uitgerust met een aantal registers tot welke de PhyBUS toegang heeft. Via deze PhyBUS registers verloopt de communicatie tussen de host-computer (experimentator) en de MPM (via de PhyBUS). Via de PhyBUS registers krijgt de configuratie-controller informatie (opdrachten) van de host-computer en verzendt de configuratie-controller informatie (controle en data) naar de host-computer. Met behulp van standaard commando's kan de experimentator via de host-computer de PhyBUS registers lezen c.q. schrijven. Afbeelding 33 geeft het communicatiepad tussen de host-computer (experimentator) en de MPM weer.

MPM h I I~ ~ PCI of VME. I PCI of VME/PhyBUS L PhvBUS • PhyBUS ~ configuratie-""' ... 1 convertor I"" ... registers controller

experimentator host-computer

Afbeelding 33: Communicatiepad tussen de experimentator en de MPM.

Page 40: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

32

De host-computer heeft toegang tot de volgende registers op de MPM:

• PhyBUS Status Word Register • Error ldentification Register • PhyBUS Data Register • Control and Status Register • Block Length Input Register • Block Length Output Register • DSP-X Download Register • DSP-Y Download Register • DSB Status Register • Interface ldentification Register • Address Generator Input Register • Address Generator Output Register • Maintenance Register

In (12) worden deze registers beschreven. De registers of delen van registers die van belang zijn voor de configuratie-controller zullen nu nader worden toegelicht waarbij tevens wordt aangegeven hoe het een en ander in de configuratie-controller geïmplementeerd is.

5.2.1 PhyBUS Status Word Register

Het PhyBUS Status Word Register is een 16-bit read/write register op subadres H"OO", dat de algemene werking van de MPM controleert/weergeeft. De volgende bits zijn voor de configuratie-controller van belang:

• PB_INT* (bit 9) Met behulp van het PB_INT*-bit geeft de configuratie-controller aan of via de PhyBUS data gelezen mag worden. Is dit bit actief (het PB_INT*-bit is laag actief; dit wordt aangegeven door de asterix (*) aan het eind van de signaalnaam) dan mag data gelezen worden, is dit bit niet actief dan mag geen data gelezen worden. De configuratie-controller activeert dit bit indien de PhyBUS verbonden is met een export geheugenbank en er data aanwezig is in die bank. De configuratie-controller deactiveert dit bit indien de PhyBUS de desbetreffende geheugenbank leeggelezen heeft. Afbeelding 34 geeft een en ander weer.

PB_INT*

0

PhyBUS verbonden met een export-geheugenbank gevuld met data

export-geheugenbank leeggelezen

Afbeelding 34: Functie van het PB_INT*-bit.

Page 41: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

33

• BUSY* (bit 8) Met behulp van het BUSY*-bit geeft de configuratie-controller aan of de MPM aan de data-import-kant actief is. Indien de MPM gestart is (activeren ENA-bit in het PhyBUS Status Word Register) en via het import-datapad wordt het eerste woord geschreven dan wordt het BUSY*-bit geactiveerd. Het BUSY*-bit wordt gedeactiveerd indien het ENA-bit niet actief is en de import geheugenbank vol is of als het ENA-bit niet actief is en een memory-switch plaatsvindt. In de configuratie-controller is dit op de volgende manier geïmplementeerd: het BUSY*-bit wordt geactiveerd indien het ENA-bit actief is en de AGI (de input adresgenerator) geïncrement wordt (INC_AGI* actief, zie paragraaf 4.5.4.1 ). Het BUSY*-bit wordt gedeactiveerd indien het ENA-bit niet actief is en de AGI een overflow genereert (AGI_OVFLW* actief zie paragraaf 4.5.4.1) of als het ENA-bit niet actief is en een memory-switch plaatsvindt (SW_MEM* actiet zie SWMEM_EN-bit). Afbeelding 35 geeft een en ander weer.

BUS V"

0

ENA-bit en increment AGI actief

ENA-bit niet actief en (overflow AGI of switch-memory actief)

Afbeelding 35: Funcite van het BUSY*-bit.

• DONE (bit 7) Met behulp van het DONE-bit geeft de configuratie-controller aan dat:

• Data gereed staat om via de PhyBUS geëxporteerd te worden. • De MPM is klaar is met zijn opdracht.

Afhankelijk van de mode bestaat een MPM opdracht uit:

• Data-acquisitie en data-export (mode 0 .. 2). • Data-acquisitie, databewerking en data-export (mode 3 .. 9). • Data-acquisitie en databewerking (mode 1 0).

Het DONE-blt Is default actief (klaar met de opdracht). Het DONE-bit wordt gedeactiveerd indien de MPM gestart wordt (activeren ENA-bit, de MPM is niet klaar met de opdracht). Het DONE-bit wordt geactiveerd indien:

• Er een fout optreedt (ERR-bit in het PhyBUS Status Word Register actiet de opdracht wordt afgebroken).

• Data gereed staat om via de PhyBUS geëxporteerd te worden (PB_INT*-bit in het PhyBUS Status Word Register actief).

• De MPM klaar is met zijn opdracht (het SET_DONE*-bit wordt geactiveerd door de configuratie-controller).

Het SET_DONE*-bit is een hulpvariabele in de configuratie-controller om het DONE-bit te genereren. Het SET_DONE*-bit wordt geactiveerd indien het BUSY*-bit gedeactiveerd (mode 0 t/m 2 en mode 10) of het DSP-DONE*-bit (zie DSP Control and Status Register) geactiveerd (mode 3 t/m 9) wordt. Het SET_DONE*-bit is met behulp van eenD-flipflop in de configuratie-controller geïmplementeerd. Deze flipflop heeft als klok de output adresgenerator overflow (AGO_OVFLW* actiet zie paragraaf 4.5.4.2) of de memory-

Page 42: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

34

switch (SW_MEM* actief, zie SW_MEM-bit in het PhyBUS Status Word Register), afhankelijk van de manier van data-import (vaste bloklengte of variabele bloklengte, zie SWMEM_EN-bit in het PhyBUS Status Word Register). Afbeelding 36 geeft de relatie weer tussen hetDONE-en het SET_DONE*-bit

0

' DONE

ENA-bit actief

ERR-bit of PB_INT" of SET_OONE* actief

SET_DONE" ~ 1 o __ EN---IA-~t actief ~1-----

(BUSY*-bit inactief of DSP _DONE*-bit actief) en (AGO_OVLW* of SW_MEM* actief)

Afbeelding 36: Relatie tussen het DONE- en het SET_DONE*-bit.

• RESET* (bit 5) Indien de experimentator de MPM wil resetten moet dit bit geactiveerd worden. Voor de configuratie-controller houdt dit in dat het PB_INT*-bit het BUSY*-bit het SET_DONE*­bit en alle foutmeldingen (zie Error ldentification Register) worden gedeactiveerd.

• SWMEM_EN (bit 4) De MPM kan op twee manieren data importeren:

• Vaste bloklengte. • Variabele bloklengte.

Indien het SWMEM_EN-bit actief is, vindt data-import plaats met variabele bloklengte. Het moment van omschakelen van het import interleaved-geheugen wordt in dit geval bepaald door het SW_MEM*-signaal afkomstig van de Piggy-back (het SW_MEM*­signaal wordt bijvoorbeeld gegenereerd door een externe klok). Is het SWMEM_EN-bit niet actief dan wordt de data met een vaste bloklengte geïmporteerd. De AGI wordt nu zodanig geïnitialiseerd dat deze een overflow genereert indien de volledige bloklengte door het import-datapad geschreven is. Deze overflow wordt aangeboden aan de configuratie-controller die hieruit het omschakelmoment van het import interleaved-geheugen afleidt. Resumerend: het import interleaved-geheugen wordt omgeschakeld op het moment dat SW-MEM* actief wordt (als SWMEM_EN-bit actief is, dus variabele bloklengte) of indien AGI_OVFLW* actief wordt (als SWMEM_EN-bit niet actief is, dus vaste bloklengte).

• MNT (bit 1) Met behulp van het MNT-bit geeft de experimentator aan of de MPM in de testmode (maintenance mode) gebruikt wordt (MNT-bit actief). Met behulp van de bits MM3, MM2, MMl en MMO in het Control and Status Register kan een specifieke testmode geselecteerd worden (alleen indien het MNT-bit actief is).

Page 43: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

35

• ENA (bit 0) Met behulp van het ENA-bit geeft de experimentator toestemming aan de MPM om data te ontvangen (het experiment wordt gestart). Het ENA-bit kan alleen gedeactiveerd worden door de experimentator. Indien het ENA-bit wordt gedeactiveerd, wordt de acquisitieslag wel afgemaakt, zie het BUSY*- en DONE-bit in het PhyBUS Status Word Register.

5.2.2 Error ldentification Register

Het Error ldentification Register is een 16-bit read/write register op subadres H"Ol" dat indien het ERR-bit in het PhyBUS Status Word Register actief is, de specifieke fout weergeeft. De volgende bits zijn voor de configuratie-controller van belang:

• AO_BFR_SM_ERR* (bit 8) Address Overflow BeFoRe Switch-Memory ERRor; de configuratie-controller genereert deze foutmelding indien de input adresgenerator een overflow genereert terwijl er geen memory-switch heeft plaats gevonden. Indien data met een variabele bloklengte geïmporteerd wordt (SWMEM_EN-bit in het PhyBUS Status Word Register actief), dan moet de SW_MEM* eerder plaatsvinden dan de AGI_OVFLW*. Is dit niet het geval dan is de import geheugenbank vol en kan geen data-acquisitie meer plaatsvinden.

• DF _ERR_EXDP* (bit 7) DataFlow ERRor Export DataPad; de configuratie-controller genereert deze foutmelding indien het export-datapad de geheugenbank waarmee het verbonden is niet op tijd heeft leeggelezen. In mode 0 tot en met 2 houdt dit in dat de input adresgenerator een overflow genereert (SWMEM_EN-bit niet actief) of dat er een memory-switch plaatsvindt (SWMEM_EN-bit actief), terwijl het export-datapad nog bezig is zijn geheugenbank uit te lezen. In mode 3 tot en met 10 houdt dit in dat de DSP aangeeft te willen wisselen van export geheugenbank (activeren DSP _RDY _OUTGB in het DSP Control and Satus Register) terwijl het export-datapad nog bezig is zijn geheugenbank uit te lezen.

• DF _ERR_DSP* (bit 6) DataFlow ERRor DSP; de configuratie-controller genereert deze foutmelding indien de DSP de data niet zo snel kan verwerken als het import-datapad deze importeert. In mode 0 tot en met 2 kan deze fout niet optreden, er is geen DSP aanwezig. In de andere modes wordt deze fout door de configuratie-controller gegenereerd indien het import interleaved-geheugen wil omschakelen (AGI_OVFLW* of SW_MEM* actief) terwijl de DSP het import interleaved-geheugen nog niet heeft vrijgegeven (DSP _RDY _INGB in het DSP Control and Satus Register niet actief).

• DSP _APP _ERR* (bit 5) DSP APPiication ERRor; het programma dat op de DSP draait kan een DSP applicatie­fout genereren; via de configuratie-controller wordt dan het DSP _APP _ERR*-bit geactiveerd. Deze foutmelding kan bijvoorbeeld gebruikt worden (het programma op de DSP is hier volledig vrij in) indien het DSP-programma foutieve data krijgt aangeboden.

• RESET_ERR* (bit 0) Met behulp van dit bit geeft de experimentator aan dat alle configuratie-controller gedeactiveerd moeten worden DF _ERR_EXDP*, DF _ERR_DSP* en DSP _APP _ERR*).

foutmelding in de (AO_BFR_SM_ERR*,

Page 44: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

36

5.2.3 PhyBUS Data Register

Het PhyBUS Data Register is een 32-bit read-only register op subadres H"02", dat gebruikt wordt voor datatransport van de MPM via de PhyBUS naar de host-computer. Indien het PB_INT*-bit in het PhyBUS Status Word Register actief is, mag data via de PhyBUS geëxporteerd worden. Door het PhyBUS Data Register te lezen wordt de export geheugenbank sequentieel (zie paragraaf 4.5.4) uitgelezen.

5.2.4 Control and Status Register

Het Control and Status Register is een 32-bit read/write register op subadres H"04", dat gebruikt wordt voor het selecteren van de manier van READY*-generation (zie paragraaf 4.5.3 en (10)), een test mode (maintenance mode) en een configuratie-mode. De volgende bits zijn voor de configuratie-controller van belang:

• TACC(0 .. 2) (bit 8 tot en met 10) Met behulp van deze bits geeft de experimentator de manier van READY*-generation en de READY*-delay tijd aan. Indien TACC(0 .. 2) allemaal actief zijn, wordt er gebruik gemaakt van een READY* gegenereerd door de TIM-geheugenmodule (dit is alleen mogelijk indien het geheugen waarmee de TIM-geheugenmodule is uitgerust het READY*-signaal ondersteunt). In alle andere gevallen genereert de configuratie­controller een READY* met een delay afhankelijk van TACC(0 .. 2) (de delay tijd is gemeten ten opzichte van de overeenkomstige STROBE*, zie paragraaf 4.5.3.). In Tabel 3 is de manier van READY*-generation schematisch weergegeven.

Tabe/3: READY*-generation voorde verschillende instellingen van TACC(0 .. 2).

De verkregen READY* wordt via de configuratie-controller gekoppeld aan het gewenste datapad (welk datapad dit is, wordt bepaald door de gebruikte mode).

• MMODE*(0 .. 3) (bit 4 tot en met 7) Met behulp van deze 4 bits kan een specifieke maintenance mode geselecteerd worden. Deze vier bits, samen met het Maintenance register en het MNT-bit in het PhyBUS Status Word Register, worden gebruikt om de MPM statisch te testen (Alle datapaden, de adresgeneratoren en het complete geheugen).

Page 45: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

37

• CMODE*(0 .. 3) (bit 0 tot en met 3) Met behulp van deze 4 bits kan een MPM mode geselecteerd worden (de diverse modes zijn behandeld in paragraaf 3.2). Tabel 4 geeft de modes weer voor de verschillende instellingen van CMODEO* tot en met CMODE3*.

Tabe/4: MPM modes voor de verschillende instellingen van CMODE*(0 .. 3).

5.2.5 Block Length Input Register

Het Block Length Input Register is een 32-bit read/write register op subadres H"Oó". Door het Block Length Input Register te schrijven wordt de geschreven data opgeslagen in" bloklengte in register" van de input adresgenerator (zie paragraaf 4.5.4.1 ). Door het Block Length Input Register te lezen wordt het "bloklengte in register" van de input adresgenerator uitgelezen. De waarde n in het Block Length Input Register representeert de maximaal te importeren bloklengte N (bij variabele bloklengte) of de te importeren bloklengte N (bij vaste bloklengte), volgens de vergelijking:

N= ( n + 1) * 8.

5.2.6 Block Length Output Register

Het Block LengthOutput Register is een 32-bit read-only register op subadres H"08". Door het Block Length Output Register te lezen wordt het "bloklengte in register" van de output adresgenerator (zie paragraaf 4.5.4.2). uitgelezen. De waarde in het Block Length Output Register komt overeen met de te exporteren bloklengte. Het "bloklengte in register" wordt door de configuratie-controller (mode 0 tot en met 2) of door de front-end rekencapaciteit (mode 3 tot en met 1 0) geschreven.

5.2. 7 DSP-X Download Register

Het DSP-X Download Register is een 16-bit write-only register op subadres H"OA", dat gebruikt wordt voor het laden van de programma-code voor TIM-DSP module X. Door te schrijven naar het DSP-X Download Register, worden de 8 minst significante bits aangeboden aan communicatiepoort 5 van TIM-DSP module X. De boot loader van de TIM-DSP module verzorgt het plaatsen van de programma-code in het geheugen. In (1 0) is het protocol van boot loading beschreven.

Page 46: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

38

5.2.8 DSP-Y Download Register

Het DSP-Y Download Register is een 16-bit write-only register op subadres H"OB", dat gebruikt wordt voor het laden van de programma-code voor TIM-DSP module Y. Het DSP-Y Download Register is analoog aan het DSP-X Download Register.

5.2.9 DSB Status Register

Het DSB Status Register is een 16-bit read/write register op subadres H"OC", dat de status van de Dual Sub Bus weergeeft.

5.2.1 0 Interface ldentification Register

Het Interface ldentification Register is een 16-bit read-only register op subadres H"OF", dat een unieke code bevat die een interface identificeert. De waarde die gelezen wordt is afhankelijk van de interface, in dit geval een MPM van het revisie nummer van de interface en van de geplaatste Piggy-back. Bit 8 tot en met 15 identificeren de interface als een MPM (alleen bit 8 is een één). Bit 4 tot en met 7 identificeren de Piggy-back (standaard geen Piggy-back aanwezig, alle vier bits zijn dan 0). Bit 0 tot en met 3 identificeren de revisie code (standaard zijn deze bits 0). Een MPM zonder Piggy-back en revisie code 0 zal in het Interface ldentification Register de waarde H" 100" herbergen.

5.2.11 Address Generator Input Register

Het Address Generator Input Register is een 32-bit read-only register op subadres H"lO", dat het lopende adres in de AGI bevat. De experimentator kan op ieder moment via dit register de inhoud van de AGI bekijken.

5.2.12 Address Generator Output Register

Het Address Generator Output Register is een 32-bit read-only register op subadres H" 12", dat het lopende adres in de AGO bevat. De experimentator kan op ieder moment via dit register de inhoud van de AGO bekijken.

5.2.13 Maintenance Register

Het Maintenance Register is een 32-bit read/write register op subadres H"14", dat alleen voor testdoeleinden wordt gebruikt

5.3 Communicatie tussen de front-end rekencapaciteit en de MPM

De front-end rekencapaciteit op de MPM bestaat uit één enkele TIM-DSP module (X) of twee TIM-DSP modules (X en Y). Toegang tot het geheugen op de MPM heeft de front-end rekencapaciteit via de globale bus van TIM-DSP module X (GB-X). Voor zowel de import geheugenbank als de export geheugenbank, gekoppeld aan de front-end rekencapaciteit is ruimte gereserveerd in de memory map van TIM-DSP module X. De communicatie tussen de front-end rekencapaciteit en de MPM verloopt ook via de globale bus van TIM-DSP module X. Drie adressen in de memory map van TIM-DSP module X zijn hiervoor gereserveerd. Afbeelding 37 geeft het communicatiepad tussen de front-end rekencapaciteit en de MPM weer.

Page 47: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

39

communicatie., TIM-DSP poorten .. TIM-DSP .. module X (60 Mbyte/s) ... module Y

.t ~

GB-X

., r

configuratie-controller

Afbeelding 37: Communicatiepad tussen de front-end rekencapaciteit en de MPM.

Afbeelding 38 geeft het gedeelte van de memory map van TIM-DSP module X weer dat van toepassing is op de MPM.

Afbeelding 38: Gedeelte van de memory map van TIM-DSP module X.

De memory map van TIM-DSP module X die van toepassing is op de MPM bestaat uit 5 delen:

• Import geheugenbank adresblok • Exportgeheugenbankadres~ok

• Bloklengte-In-Register • Bloklengte-Uit-Register • DSP Control and Status Register

Page 48: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

40

In (12) wordt de memory map van TIM-DSP module X beschreven. Het gedeelte van de memory map dat van belang is voor de configuratie-controller zal nu nader worden toegelicht.

5.3.1 Import geheugenbank adresblok

Indien de MPM toegepast wordt als front-end processor (mode 3 tot en met 9) of als reai-time regelsysteem (mode 1 0) dan heeft de front-end rekencapaciteit toegang tot een import geheugenbank (geheugenbank A of geheugenbank B; wèlke geheugenbank dit daadwerkelijk is wordt bepaald door de configuratie-controller en is niet bekend bij de front­end rekencapaciteit en daarvoor ook niet van belang) door te lezen of te schrijven naar het import geheugenbank adresblok (in principe zal de front-end rekencapaciteit de import geheugenbank alleen lezen). Wordt data met een variabele bloklengte geïmporteerd (SWMEM_EN-bit in het PhyBUS Status Word Register actief), dan wordt de import geheugenbank vanaf adres H"COOOOOOO" in de memory map van TIM-DSP module X geplaatst. Afbeelding 39 geeft de plaats van de import geheugenbank in dit geval weer.

Afbeelding 39: Plaats van de import geheugenbank in de memory map van TIM-DSP module X bij data import met variabele blok/engte.

Wordt data met een vaste bloklengte geïmporteerd (SWMEM_EN-bit in het PhyBUS Status Word Register niet actief), dan wordt de import geheugenbank vanaf adres H"ClOOOOOO" -"lengte import geheugenbank" in de memory map van TIM-DSP module X geplaatst. Afbeelding 40 geeft de plaats van de import geheugenbank in dit geval weer.

H"COOOOOOO"

H"C1000000"

Afbeelding 40: Plaats van de import geheugenbank in de memory map van TIM-DSP module X bij data import met vaste blok/engte.

Bij data-import met een variabele bloklengte wordt de data altijd van adres H"OOOOOO" in de import geheugenbank geplaatst (de input adresgenerator wordt geladen met adres 0). Bij data-import met vaste bloklengte wordt data altijd H" C 1 000000" - "de data bloklengte" geplaatst (de input adresgenerator wordt geladen met de inverse waarde van het Block Length Input Register) in verband met het genereren van een overflow van de input adresgenerator (zie paragraaf 4.5.4.1 ). Een direct gevolg hiervan is de plaatsing van de import geheugenbank in de memory map van TIM-DSP module X.

Page 49: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

41

5.3.2 Export geheugenbank adresblok

Indien de MPM toegepast wordt als front-end processor (mode 3 tot en met 9) dan heeft de front-end rekencapaciteit toegang tot een export geheugenbank (geheugenbank C of geheugenbank D; wèlke geheugenbank dit daadwerkelijk is wordt bepaald door de configuratie-controller en is niet bekend bij de front-end rekencapaciteit en hiervoor ook niet van belang) door te lezen of te schrijven naar het export geheugenbank adresblok (in principe zal de front-end rekencapaciteit de export geheugenbank alleen schrijven). De export geheugenbank wordt vanaf adres H"C2000000" - "lengte export geheugenbank" in de memory map van TIM-DSP module X geplaatst. Afbeelding 41 geeft de plaats van de export geheugenbank in de memory map van TIM-DSP module X weer.

H"C1000000"

H"C2000000"

Afbeelding 4 7: Plaats van de export geheugenbank in de memory map van T/M-DSP module X.

5.3.3 Bloklengte-In-Register

Het Bloklengte-In-Register is een 24-bits read-only register op subadres H"C2000000". Door het Bloklengte-In-Register te lezen wordt het "bloklengte uit of laatste adres adresgenerator register" van de input adresgenerator uitgelezen (zie paragraaf 4.5.4.1 ). Wordt data geïmporteerd met een variabele bloklengte, dan is de inhoud van dit register de bloklengte van de geïmporteerde data. Afbeelding 42 geeft de functionele inhoud van het Bloklengte­In-Register bij data import met variabele bloklengte weer.

H"C2000000"tiiQ!iifiîij~!ii~1---__j H"C200000 1"

Afbeelding 42: Functionele inhoud van het Bloklengte-In-Register bij data import met variabele blok/engte.

Wordt data geïmporteerd met een vaste bloklengte, dan is de inhoud van dit register het beginadres van de data opgeslagen in de import geheugenbank. Afbeelding 43 geeft de functionele inhoud van het Bloklengte-In-Register bij data import met vaste bloklengte weer.

Page 50: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

42

Afbeelding 43 Functionele inhoud van het Bloklengte-In-Register bij data import met vaste blok/engte.

5.3.4 Bloklengte-Uit-Register

Het Bloklengte-Uit-Register is een 24-bits write-only register op subadres H"C3000000". Door te schrijven naar het Bloklengte-Uit-Register wordt het "bloklengte uit register" van de output adresgenerator geladen (zie paragraaf 4.5.4.2). De inhoud van dit register correspondeert met het beginadres van de data die opgeslagen is in de export geheugenbank. Afbeelding 44 geeft de functionele inhoud van het Bloklengte-Uit-Register weer.

H"C300QOOO"ITTC~iiiïii~Biiiiti~---__j H"C300000 1" El

Afbeelding 44: Functionele inhoud van het Blok/engte-Uit-Register.

5.3.5 DSP Control and Status Register

Het DSP Control and Status Register is een 8-bits read/write register op subadres H"C4000000", dat de fundamentele communicatie tussen de front-end rekencapaciteit en de configuratie­controller verzorgt. De functie van de verschillende bits wordt hieronder toegelicht.

• DSP _RDY _INGB (bit 7) Met behulp van dit bit geeft de front-end rekencapaciteit aan dat de import geheugenbank die tot dat moment verbonden was met de front-end rekencapaciteit vrijgegeven wordt voor data-import. Indien dit bit niet actief is, maar de configuratie­controller het import interleaved-geheugen wil omschakelen, dan wordt het DF _ERR_DSP*-bit geactiveerd.

• DSP _RDY _OUTGB (bit 6) Met behulp van dit bit geeft de front-end rekencapaciteit aan dat de export geheugenbank volgeschreven is en vrijgegeven wordt voor data-export. De configuratie-controller gebruikt dit bit om het moment van omschakelen van het export interleaved-geheugen te bepalen (zie paragraaf 5. 7 .2)

Page 51: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

43

• DSP _APP _ERR* (bit 5) Met behulp van dit bit geeft de front-end rekencapaciteit aan dat er een fout is opgetreden in het applicatie programma. De configuratie-controller geeft deze foutmelding door aan de host-computer via het Error ldentification Register.

• DSP _HEARTBEAT* (bit 4) Met behulp van dit bit geeft de front-end rekencapaciteit aan dat het applicatie­programma draait. Door in het programma een stuk code op te nemen dat bijvoorbeeld iedere seconde het DSP _HEARTBEAT*-bit activeert kan de host-computer zien of het programma loopt. Door het uitlezen van dit bit door de host-computer wordt het bit gedeactiveerd.

• DSP _DONE* (bit 3) Met behulp van dit bit geeft de front-end rekencapaciteit aan dat alle data geïmporteerd is, bewerkt is en opgeslagen is in een export geheugenbank en dat geen nieuwe data verwacht wordt (het BUSY*-bit moet gedeactiveerd zijn).

• BUSY* (bit 2) Door dit bit te lezen heeft de front-end rekencapaciteit toegang tot het BUSY*-bit in het PhyBUS Status Word Register (zie paragraaf 5.2.4). De front-end rekencapaciteit genereert onder andere met behulp van dit bit het DSP _DONE*-bit.

• DSP _INPUT_INT* (bit 1) Met behulp van dit bit, dat tevens uitgevoerd is als een interrupt-lijn naar de front-end rekencapaciteit toe, geeft de configuratie-controller aan dat de front-end rekencapaciteit verbonden is met een import geheugenbank die leeggelezen moet worden. De overeenkomstige interrupt wordt geactiveerd op het moment dat de front­end rekencapaciteit verbonden is met een nieuwe import geheugenbank die vol is.

• DSP _OUTPUT_INT* (bit 0) Met behulp van dit bit, dat tevens uitgevoerd is als een interrupt-lijn naar de front-end rekencapaciteit toe, geeft de configuratie-controller aan dat de front-end rekencapaciteit verbonden is met een export geheugenbank die volgeschreven mag worden. De overeenkomstige interrupt wordt geactiveerd op het moment dat de front­end rekencapaciteit verbonden is met een nieuwe export geheugenbank die leeg is.

5.4 Datatransport via de PhyBUS

Het PhyBUS Data Register op de MPM wordt gebruikt voor datatransport tussen de host­computer en de MPM via de PhyBUS. In hoofdstuk 3 zijn enkele toepassingen van de MPM behandeld, waarbij naar voren kwam dat de PhyBUS alleen gebruikt wordt voor data-export (dus geen data-import). Door het PhyBUS Data Register te lezen kan via de PhyBUS data worden geëxporteerd. De communicatie tussen het PhyBUS Data Register en de configuratie­controller bestaat uit de volgende 3 signalen:

• PB_INT* Met behulp van het PB_INT*-signaal geeft de configuratie-controller aan of via de PhyBUS data gelezen mag worden. Is dit bit actief dan mag data gelezen worden, is dit bit niet actief dan mag geen data gelezen worden. De configuratie-controller activeert dit bit indien de PhyBUS verbonden is met een export geheugenbank en er data in die bank aanwezig is. De configuratie-controller deactiveert dit bit indien de PhyBUS de desbetreffende geheugenbank leeggelezen heeft.

Page 52: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

44

• PBSTRB* Met behulp van het PBSTRB*-signaal geeft de PhyBUS aan dat hij gereed is om data te exporteren. Samen met het PBRDY*-signaal verzorgt dit signaal de handshaking met het geheugen (via de configuratie-controller).

• PBRDY* Met behulp van het PBRDY*-signaal geeft de configuratie-controller aan dat data klaar staat om via de PhyBUS getransporteerd te worden. PBRDY* volgt na PBSTRB* en het klaarzetten van data.

De configuratie-controller verzorgt de interfacing tussen de PhyBUS controle-signalen en het PhyBUS datapad enerzijds en de geheugenbank waar de PhyBUS toegang tot heeft anderzijds. Tevens stuurt hij de output adresgenerator die gebruikt wordt voor het genereren van adressen voor de geselecteerde geheugenbank. Afbeelding 45 geeft de schematische weergave van het datatransport via de PhyBUS.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

32-bit data 32-bit data I I!...,. 1

buffer 1 ~ p

Ü' T h PB INT* GB[A .. D] STRBO* ..

· ... I PhyBUS Data y ... PBSTRB* .. configuratie- geheugenbank :1 Register B .... PBRDY* controller GB[A .. D]_RDYO* [A .. D] u s + ~~

24-bit adres

MPM AGO

Afbeelding 45: Schematische weergave van het datatransport via de PhyBUS.

5.5 Datatransport via de Dual Sub Bus (DSB l en DSB2)

Zoals al opgemerkt in paragraaf 2.1 is de DSB een dynamisch te configureren verbinding tussen meetmodules die opgesplitst is in twee delen. Deze delen, DSB 1 en DSB2, zijn identiek op de adressering van de Data Registers na. DSB1 en DSB2 kunnen onafhankelijk van elkaar toegepast worden. In hoofdstuk 3 zijn enkele toepassingen van de MPM behandeld, waarbij naar voren kwam dat DSB 1 en DSB2 zowel voor data-import als data-export gebruikt worden. Door het overeenkomstige DSB Data Register te schrijven of te lezen, wordt data geïmporteerd danwel geëxporteerd. De communicatie tussen een DSB Data Register (DSB1 Data Register of DSB2 Data Register) en de configuratie-controller bestaat uit 3 signalen:

Page 53: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

45

• DSB 1_1NT* (DSB2_1NT*) Met behulp van het DSB_INT*-signaal geeft de configuratie-controller aan of de overeenkomstige DSB toegang heeft tot een geheugenbank. De configuratie­controller activeert dit bit indien de DSB verbonden is met een import geheugenbank die nog niet volgeschreven is of met een export geheugenbank die nog niet leeggelezen is. De configuratie-controller deactiveert dit bit indien de DSB de desbetreffende geheugenbank volgeschreven heeft (data-import) danwel leeggelezen heeft (data-export).

• DSB 1 STRB* (DSB2STRB*) Met behulp van het DSBSTRB*-signaal geeft de overeenkomstige DSB aan dat hij gereed is om data te schrijven/lezen. Samen met het PBRDY*-signaal verzorgt dit signaal de handshaking met het geheugen (via de configuratie-controller).

• DSB 1 RDY* (DSB2RDY*) Met behulp van het DSBRDY*-signaal geeft de configuratie-controller aan dat data van de overeenkomstige DSB overgenomen is (data-import) of dat data klaar staat om via de overeenkomstige DSB getransporteerd te worden (data-export). DSBRDY* volgt na DSBSTRB* en het overnemen/klaarzetten van data.

De configuratie-controller verzorgt de interfacing tussen de DSB controle-signalen en het DSB datapad enerzijds en de geheugenbank waar de overeenkomstige DSB toegang tot heeft anderzijds. Tevens stuurt hij de adresgeneratoren die gebruikt worden voor het genereren van adressen voor de geselecteerde geheugenbank. Afbeelding 46 geeft de schematische weergave van het datatransport via de DSB.

I - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

32-bit data 32-bit data D .. .~ ..... s ,.. I buffer

1....,

B ~r T ,,

1 DSB[1 of2] INT* GB[A .. D] STRBO*

.... .. DSB1 of DSB2 DSB[1 of2]STRB*.., configuratie- ... geheugenbank of ..... ,.. Data Register DSB[1 of2]RDY* controller GB[A .. D]_RDYO* [A .. D]

D s ~ ~~

B 2 MPM AGI 24-bit adres

of AGO

Afbeelding 46: Schematische weergave van het datatransport via de Duo/ Sub Bus (DSB 7 of DSB2).

5.6 Datatransport via het PhyPAD

Het PhyPAD is een statische point-to-point verbinding tussen twee meetmodules. In hoofdstuk 3 zijn enkele toepassingen van de MPM behandeld, waarbij naar voren kwam dat het PhyPAD alleen gebruikt wordt voor data-import. Door vanuit een andere meetmodule via het PhyPAD data in het PhyPAD data register te schrijven kan via het PhyPAD data worden geïmporteerd. De communicatie tussen het PhyPAD Data Register en de configuratie­controller bestaat weer uit 3 signalen:

Page 54: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

46

• PP_INT* Met behulp van het PP _INT*-signaal geeft de configuratie-controller aan of via het PhyPAD data naar de MPM geschreven mag worden. Is dit bit actief dan mag data geschreven worden, is dit bit niet actief dan mag geen data geschreven worden. De configuratie-controller activeert dit bit indien het PhyPAD verbonden is met een import geheugenbank die niet volgeschreven is. De configuratie-controller deactiveert dit bit indien het PhyPAD de desbetreffende geheugenbank volgeschreven heeft.

• PPSTRB* Met behulp van het PPSTRB*-signaal geeft het PhyPAD aan dat het gereed is om data te schrijven. Samen met het PPRDY*-signaal verzorgt dit signaal de handshaking met het geheugen (via de configuratie-controller).

• PPRDY* Met behulp van het PPRDY*-signaal geeft de configuratie-controller aan dat de data overgenomen is van het PhyPAD. PPRDY* volgt na PPSTRB* en het overnemen van data.

De configuratie-controller verzorgt de interfacing tussen de PhyPAD controle-signalen en het PhyPAD datapad enerzijds en de geheugenbank waar het PhyPAD toegang tot heeft anderzijds. Tevens stuurt hij de input adresgenerator die gebruikt wordt voor het genereren van adressen voor de geselecteerde geheugenbank. Afbeelding 47 geeft de schematische weergave van het datatransport via het PhyPAD.

32-bit data 32-bit data ... ..... I buffer I

T ." pp INT* GB[A .. D] STABO*

PhyPAD . .., PhyPAD Data PPSTRB* .. configuratie- ... geheugenbank ...... Register PPR DY* controller GB[A .. D)_RDYO* [A .. DJ

+ A~

24-bit adres

MPM AGI

Afbeelding 47: Schematische weergave van het datatransport via het PhyPAD.

5.7 Globale controle van de MPM

De MPM kan op drie manieren toegepast worden: als interleaved-geheugen, als front-end processor of als reai-time regelsysteem. Bij elke toepassing moet een import-datapad en een export-datapad geselecteerd worden. Alleen combinaties van toepassingen en datapaden die praktische waarde hebben zijn geïmplementeerd in zogenaamde MPM modes (zie hoofdstuk 3). De experimentator kan via het Control and Status Register een mode selecteren. Vervolgens moet aangegeven worden of data-import plaatsvindt met vaste of variabele bloklengte (via het SWMEM-EN-bit in het PhyBUS Status Word Register). Als laatste stap moet de MPM gestart worden (activeren ENA- bit in het PhyBUS Status Word Register). De communicatie tussen de experimentator c.q. host-computer en de MPM, de communicatie tussen de DSP en de MPM en het datatransport via de diverse bussen/paden

Page 55: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

47

zijn in de vorige paragrafen behandeld. Nu volgt de globale controle van de MPM, die per toepassing wordt behandeld.

5. 7.1 De MPM toegepast als interleaved-geheugen (mode 0 tot en met 2)

De MPM toegepast als interleaved-geheugen maakt gebruik van 2 geheugenbanken die samen één interleaved-geheugen vormen. Zowel het import-datapad als het export­datapad zijn met het interleaved-geheugen verbonden. De belangrijkste taak van de configuratie-controller is het omschakelen van het interleaved-geheugen. Afhankelijk van de manier van data-import (variabele bloklengte of vaste bloklengte) wordt het interleaved­geheugen omgeschakeld indien het SW_MEM*-signaal geactiveerd wordt of indien de AGI een overflow genereert. Op het moment van omschakelen bepaalt de configuratie­controller of eventuele dataflow fouten optreden (AO_BFR_SM_ERR*(Address Overflow BeFoRe Switch-Memory ERRor) of DF _ERR_EXDP* (DataFiow ERRor Export DataPad)). Verder worden alle registers bijgewerkt en de adresgeneratoren geïnitialiseerd. Het omschakelen van het interleaved-geheugen en de bijbehorende controle-overhead introduceren een dode tijd. Deze dode tijd komt aan de orde in paragraaf 5.8. Afbeelding 48 geeft het omschakelmoment van het interleaved-geheugen schematisch weer.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

geheugenbank A

: import . datapad

geheugenbank B

~ ~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~~ ~~ ~~

' SW_MEM* of AGI_OVFLW*,

export datapad:

: SW_MEM* of AGI_OVFLW*:

~ ~ ~ ~ ~ ~ ~ ·~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~i ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

, import ·datapad

Afbeelding 48:

geheugenbank A

geheugenbank B

export , datapad,

Het omschakelmoment van het interleaved-geheugen

Page 56: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

48

5.7.2 De MPM toegepast als front-end processor (mode 3 tot en met 9)

De MPM toegepast als front-end processor maakt gebruik van 4 geheugenbanken die samen twee interleaved-geheugens vormen: één interleaved-geheugen waar het import­datapad en de front-end rekencapaciteit mee verbonden zijn (het import interleaved­geheugen) en één interleaved-geheugen waar de front-end rekencapaciteit en het export­datapad mee verbonden zijn (het export interleaved-geheugen). De belangrijkste taak van de configuratie-controller is het omschakelen van de interleaved-geheugens. De interleaved-geheugens worden asynchroon omgeschakeld. Het omschakelmoment van het import interleaved-geheugen is geheel analoog aan het omschakelmoment van het interleaved-geheugen behandeld in de vorige paragraaf. Op het moment van omschakelen bepaalt de configuratie-controller of eventuele dataflow fouten optreden (AO_BFR_SM_ERR*(Address Overflow BeFeRe Switch-Memory ERRor) of DF _ERR_DSP* (DataFiow ERRor Export DataPad)). Verder worden alle registers bijgewerkt en de input adresgenerator geïnitialiseerd. Het moment van omschakelen van het export interleaved-geheugen wordt bepaald door de front-end rekencapaciteit via het DSP _RDY _OUTGB-bit in het DSP Control and Status Register. Met behulp van dit bit geeft de DSP aan dat hij de export geheugenbank volgeschreven heeft met data die geëxporteerd moet worden. Als dit bit geactiveerd is, weet de configuratie-controller dat het export interleaved-geheugen omgeschakeld moet worden. Op het moment van omschakelen bepaalt de configuratie-controller of eventuele dataflow fouten optreden (DF _ERR_EXDP* (Data Flow ERRor Export DataPad). Verder worden alle registers bijgewerkt en de output adresgenerator geïnitialiseerd. Afbeelding 49 geeft het omschakelmoment van het export interleaved-geheugen schematisch weer .

... - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

,__~ geheugenbank C

front-end · rekencapaciteit

geheugenbank D

export datapad:

. - - - - - - - - - - - - __ '--o.!_lllll!_lllll!_lllll!_"'!'!'_lllll!l_lllll!l_lllll!l_""!i_ - - - - - - - - - - - - -

· DSP _RDY _ OUTGB : · DSP_RDY_OUTGB:

c------------- -_ ~ -_ J -_ -_ -_ -_

front-end · rekencapaciteit

Afbeelding 49:

,...__~ geheugenbank D

export . datapad.

Het omschakelmoment van het export interleaved-geheugen.

5.7.3 De MPM toegepast als reai-time regelsysteem (mode 10)

De MPM toegepast als reai-time regelsysteem maakt gebruik van 2 geheugenbanken die samen één interleaved-geheugen vormen. Zowel het import-datapad als de front-end

Page 57: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

49

rekencapaciteit zijn met het interleaved-geheugen verbonden. De belangrijkste taak van de configuratie-controller is het omschakelen van het interleaved-geheugen. Het omschakelmoment van het interleaved-geheugen is geheel analoog aan het omschakelmoment van het interleaved-geheugen behandeld in paragraaf 5.7. 1 . Op het moment van omschakelen bepaalt de configuratie-controller of eventuele dataflow fouten optreden (AO_BFR_SM_ERR*(Address Overflow BeFoRe Switch-Memory ERRor) of DF _ERR_DSP* (DataFiow ERRor DSP)). Verder worden alle registers bijgewerkt en de input adresgenerator geïnitialiseerd.

5.8 Implementatie van de configuratie-controller

De logica die verzorgd wordt door de configuratie-controller is geïmplementeerd in EPLD's. Door de complexiteit van de configuratie-controller kon het ontwerp niet ondergebracht worden in één EPLD, maar is verdeeld over 3 EPLD' s. In de bijlagen C, D en E zijn de EPLD ontwerp-files van de configuratie-controller weergegeven. De tijd t tussen het aanbieden van een ingangssignaal en de responsie van het overeenkomstige uitgangssignaal hangt af van de toegepaste EPLD's. Hoe sneller de EPLD (in de praktijk: hoe duurder), hoe kleiner deze responsietijd t is. De responsietijd van één cel (een cel is de minimale bouwsteen tussen een ingang en een uitgang) van de toegepaste EPLD (MAX7128) is 7, 10 of 15 ns, afhankelijk van het type (MAX7128-7, MAX7128-10 of MAX7128-15). De responsietijd van een EPLD introduceert een dode tijd in de logica van een ontwerp. De meest kritische dode tijd in het ontwerp van de configuratie-controller is de dode tijd die geïntroduceerd wordt bij het omschakelen van een interleaved-geheugen. Deze loopt vanaf het moment dat de opdracht tot omschakelen plaatsvindt (bijvoorbeeld het SW_MEM*­signaal wordt geactiveerd) tot het moment dat omgeschakeld is en geheugentoegang weer mogelijk is (tijdens de dode tijd is geen geheugentoegang mogelijk). Uit simulaties van de configuratie-controller blijkt dat de dode tijd van het omschakelen van een interleaved­geheugen maximaal 1 00 ns is (bij de MAX7128-l0). Dit houdt in dat tijdens het omschakelen van een interleaved-geheugen maximaal 100 ns geen toegang tot het geheugen mogelijk is (dus geen data-import of data-export). In het ontwerp van de configuratie-controller wordt het datapad dat tijdens deze dode tijd toegang wil hebben tot het geheugen "slapende" gehouden met behulp van de controle-signalen tussen de configuratie-controller en dat datapad (zie paragraaf 5.4, 5.5 en 5.6). Toegang tot het geheugen zal daarmee worden verhinderd. Het enige probleem dat theoretisch kan optreden is dat data verloren gaat (een import-datapad kan zijn data niet kwijt). In de praktijk zal dit echter niet voorkomen omdat het concept van het PhyDAS meetsysteem gebaseerd is op asynchrone data-communicatie, dit houdt onder meer in dat de module die data verzamelt (bijvoorbeeld een ADC-module) uitgerust is met een buffer die de dode tijd overbrugt. Heeft deze module weer toegang tot de MPM, dan wordt deze buffer direct leeggelezen en zal er dus geen data verloren gaan. Resumerend kan opgemerkt worden dat de dode tijd tijdens het omschakelen van het interleaved-geheugen dusdanig klein is (1 00 ns bij de MAX7128-l0) dat dit in de praktijk geen problemen zal opleveren. Mochten die problemen toch dreigen te ontstaan, dan worden die opgelost door het concept van het PhyDAS meetsysteem dat gebaseerd is op asynchrone data-communicatie.

Page 58: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

50

Page 59: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

51

6. Conclusies en aanbevelingen

In het vooronderzoek naar de wensen/eisen van de experimentatoren met betrekking tot het ontwerp van de nieuwe geheugenmodule (de MPM) kwamen de volgende primaire ontwerp-eisen naar voren:

1. De geheugenmodule moet in het PhyDAS-concept passen (en dus eenvoudig te bedienen zijn).

2. De geheugenmodule moet de oude geheugenmodule (het PhyBUS 8 Mbyte Dual Ported Static Memory) vervangen.

3. De geheugenmodule moet uitgerust zijn met front-end processing faciliteiten voor databewerking c.q. -reductie in het front-end.

4. De geheugenmodule moet voorbereid zijn op toekomstige aanpassingen/uitbreidingen. 5. De geheugenmodule moet flexibel in het gebruik zijn, zodat hij op diverse manieren

toegepast kan worden.

Aan deze primaire ontwerp-eisen is als volgt voldaan:

1. Gedurende het gehele ontwerp-traject van de MPM is aandacht besteed aan de eenvoud van deze module, zodat een experimentator relatief weinig problemen zal ondervinden bij het integreren van de MPM in een (toekomstig) experiment. Het PhyBUS­en het DSP-programmeermodel zijn tot een minimum beperkt.

2. Eén van de toepassingen van deMPMis de configuratie als interleaved-geheugen. Deze toepassing is compatibel met het PhyBUS 8 Mbyte Dual Ported Static Memory.

3. Voor datareductie in het front-end is de MPM uitgerust met front-end rekencapaciteit in de vorm van TIM-DSP modules (gestandaardiseerde modules van Texas lnstuments, voorzien van een Digitale Signaal Processor en een stuk geheugen). Er is een keuze­mogelijkheid om één of twee TIM-DSP modules toe te passen.

4. Voor toekomstige aanpassingen c.q. uitbreidingen is deMPMuitgerust met een interface voor dedicated hardware in de vorm van een Piggy-back. Deze Piggy-back interface heeft toegang tot de TIM-DSP modules via de communicatiepoorten van de TIM-DSP modules en heeft toegang tot het geheugen via het Piggy-back-PAD.

5. Het geheugen is opgebouwd uit 4 banken die ieder bestaan uit één TIM­geheugenmodule. Per experiment kan de hoeveelheid en soort geheugen aangepast worden, waardoor de kosten in de pas lopen met de eisen van het experiment. Verder kan de MPM op diverse manieren geconfigureerd worden (in totaal zijn er 1 0 modes) waardoor deze module flexibel inzetbaar is. De configuraties kunnen onderverdeeld worden in drie categorieën: de MPM toegepast als interleaved-geheugen, als front-end processor of als reai-time regelsysteem.

De belangrijkste conclusies zijn: • Door de realisatie van de MPM is het PhyDAS meetsysteem uitgerust met een zeer

krachtige module voor front-end processing, zodat de steeds grotere datastromen in een vroeg stadium bewerkt kunnen worden. Door deze datareductie blijven uiteindelijk kleine (hanteerbare) datastromen over, die door de host-computer verwerkt kunnen worden.

• Door de flexibele/modulaire opbouw van de MPM (front-end rekencapaciteit in de vorm van TIM-DSP modules, geheugen in de vorm van TIM-geheugen modules en een Piggy­back interface voor dedicated hardware) kan deze module eenvoudig aangepast worden ten behoeve van specifieke (toekomstige) toepassingen.

Voor de eenvoud van de MPM zijn de TIM-DSP modules als één blok geïntegreerd (alleen TIM­DSP module X heeft toegang tot het geheugen). Als aanbeveling voor een volgende versie van de MPM zou het autonoom werken van de TIM-DSP modules een mooie uitdaging zijn. Een voorwaarde moet wel zijn dat het bedieningsgemak en de eenvoud van de MPM gehandhaafd blijven.

Page 60: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

52

Page 61: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

7. Literatuurlijst

(1) Smeets. R.A.S.M. User manual PhyBUS 8 Mbyte Dual Ported Static Memory. BL 89-06, TUE. faculteit TN, vakgroep NF-FTI, augustus 1993

(2) Nijmweegen, F.C.van. PhyBUS specificatie rapport rev. B, TUE, faculteit TN. vakgroep NF-FTI, mei 1993

(3) Nijmweegen, F.C.van. Specificatie PhyPAD rev. B, BL 89-04, TUE, faculteit TN, vakgroep NF-FTI, februari 1989

(4) Nijmweegen, F.C.van, DSB Dual Sub Bus rev. A, BL 92-13 TR. TUE, faculteit TN. vakgroep NF-FTI. mei 1995

(5) Kopinga, K. and L. Pel One-dimensional scanning of moisture in porous materials with NMR. Rev. Sci. lnstrum .• Vol. 65. No. 12. p. 3673-3681, December 1994

(6) Smeets, R.A.S.M. and F.C. van Nijmweegen. User manual PhyBUS Analog Signa! Recorder, BL 93-21 UM, TUE, faculteit TN, vakgroep NF-FTL mei 1995

(7) Angenent. M., Reai-time simulatie van een stroomgeregelde invertorgevoede asynchrone machine m.b.v. een multi-DSP systeem, stageverslag, EMV 95-16, TUE. faculteit Elektrotechniek. vakgroep EMV, september 1995

(8) Hoeks, M.H.M., A DSP based system for experiments with systolic arrays, ESP-16-93, TUE. faculteit Elektrotechniek, vakgroep ESP, afstudeerverslag, september 1993

(9) TIM-40, Module Specification, Texas lnstruments, november 1993

(10) TMS320C4X User's Gulde, Texas lnstruments, augustus 1993

(11) Product specification PDT40 TIM-40 module, Prodrive B.V. Eindhoven, september 1995

(12) Smeets. R.A.S.M. User manual PhyBUS Multi Purpose Memory, BL 96-02 UM TUE. faculteit TN, vakgroep NF-FTI, augustus 1996

53

Page 62: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

54

Page 63: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE A: EPLD design AGI

EPLD design AGI

SUBDESIGN 9602AGI (

INIT_AGix INPUT; CLR_AGix INPUT; INC_AGix INPUT; RD_BLK_INx INPUT; STR_BLK_INx INPUT; READ_AGI_ENDx: INPUT; STORE_AGix : INPUT; GB_LNGx(2 .. 0) : INPUT;

PBDx(20 .. 0) BIDIR; % PBDxO = BLK_IN_AO%

AGI_OVFLWx AGI_A(23 .. 0) DSPD(23 .. 0)

OUTPUT; OUTPUT; OUTPUT;

VARIABLE

BEGIN

REGISTER_IN (20 .. 0) REGISTER_IN_BUF(20 .. 0) REGISTER_ OUT (23 .. 0) REGISTER_ OUT_BUF (23 .. 0) COUNTER(24 .. 0)

COUNTERO .elk COUNTERO.d

REGISTER_INO.clk REGISTER_INO.d REGISTER_IN_BUF 0 .in REGISTER_IN_BUF 0 .oe

REGISTER_OUTO.clk REGISTER_OUTO.d REGISTER_ OUT _BUF 0 .in REGISTER_ OUT_BUFO .oe

AGI_OVFLWx

AGI_A(23 .. 0) PBDxO DSPDO

IF

ELSE

!STR_BLK_INx THEN REGISTER_INO.prn REGISTER_IN 0 .clrn

DFF; TRI; DFF; TRI; DFF;

INC_AGix; COUNTERO.q+ 1;

GND; VCC; REGISTER_IN O; !RD_BLK_INx;

GND; VCC; REGISTER_OUTO; !READ_AGI_ENDx;

(!COUNTER24 & !GB_LNGx0==7) # (!COUNTER23 & !GB_LNGx0==6) # (!COUNTER22 & !GB_LNGx0==5) # (!COUNTER21 & !GB_LNGx0==4) # (!COUNTER20 & !GB_LNGx0==3) # (!COUNTER19 & !GB_LNGx0==2) # (!COUNTER 18 & !GB_LNGxO== 1) # (!COUNTER17 & !GB_LNGx0==0); COUNTER(23 .. 0); REGISTER_IN_BUFO; REGISTER_OUT_BUFO;

!PBDxO; PBDxO;

REGISTER_INO.prn VCC;

END IF;

IF

ELSE

END IF;

REGISTER_INO.clrn VCC;

!STORE_AGix THEN REGISTER_ OUTO .prn REGISTER_ OUT 0 .clrn

!COUNTER(23 .. 0); COUNTER(23 .. 0);

REGISTER_OUTO.prn VCC; REGISTER_OUTO.clrn VCC;

55

Page 64: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

56 BIJLAGE A: EPLD design AGI

IF !INIT_AGix THEN CASE !GB_LNGxQ IS

WHEN 7 => COUNTER(2 .. 0) .prn VCC; COUNTER(2 .. 0) .clrn GND; COUNTER(23 .. 3) .prn !REGISTER_! NO; COUNTER(23 .. 3) .clrn REGISTER_! NO; COUNTER24.prn VCC; COUNTER24.clrn GND;

WHEN 6=> COUNTER(2 .. 0) .prn VCC; COUNTER(2 .. 0) .clrn GND; COUNTER(22 .. 3) .prn !REGISTER_IN(l9 .. 0); COUNTER(22 .. 3).clrn REGISTER_IN(l9 .. 0); COUNTER(24 .. 23) .prn GND; COUNTER(24 .. 23) .clrn VCC;

WHEN 5 => COUNTER(2 .. 0).prn VCC; COUNTER (2 .. 0).clrn GND; COUNTER(21 .. 3).prn !REGISTER_IN(l8 .. 0); COUNTER(21 .. 3).clrn REGISTER_IN(18 .. 0); COUNTER(24 .. 22).prn VCC; COUNTER(24 .. 22) .clrn GND;

WHEN 4=> COUNTER(2 .. 0) .prn VCC; COUNTER(2 .. 0) .clrn GND; COUNTER(20 .. 3).prn !REGISTER_IN(l7 .. 0); COUNTER(20 .. 3).clrn REGISTER_IN(17 .. 0); COUNTER (24 .. 2l).prn VCC; COUNTER(24 .. 21).clrn GND;

WHEN3 => COUNTER(2 .. 0).prn VCC; COUNTER(2 .. 0).clrn GND; COUNTER(19 .. 3).prn !REGISTER_IN(l6 .. 0); COUNTER(19 .. 3).clrn REGISTER_IN( 16 .. 0); COUNTER(24 .. 20) .prn VCC; COUNTER(24 .. 20) .clrn GND;

WHEN2=> COUNTER(2 .. 0).prn VCC; COUNTER(2 .. 0) .clrn GND; COUNTER ( 18 .. 3).prn !REGISTER_IN (15 .. 0); COUNTER(18 .. 3).clrn REGISTER_IN(15 .. 0); COUNTER(24 .. 19).prn VCC; COUNTER(24 .. 19) .clrn GND;

WHEN 1 => COUNTER(2 .. 0) .prn VCC; COUNTER(2 .. 0) .clrn GND; COUNTER(17 .. 3).prn !REGISTER_IN(14 .. 0); COUNTER (17 .. 3) .c!rn REGISTER_IN( 14 .. 0); COUNTER(24 .. 18).prn VCC; COUNTER(24 .. 18) .clrn GND;

WHEN 0=> COUNTER(2 .. 0) .prn VCC; COUNTER(2 .. 0) .clrn GND; COUNTER(l6 .. 3) .prn !REGISTER_IN(13 .. 0); COUNTER ( 16 .. 3). clrn REGISTER_IN(13 .. 0); COUNTER(24 .. 17) .prn VCC; COUNTER(24 .. 17) .clrn GND;

END CASE;

ELSIF !CLR_AGix THEN COUNTERQ.prn VCC; COUNTERQ.clrn GND;

ELSE COUNTERQ.prn VCC; COUNTERO .clrn VCC;

END IF; END;

Page 65: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE B: EPLD design AGO

EPLD design AGO

SUBDESIGN 9602AGO (

INIT_AGOx CLR_AGOx INC_AGOx STR_BLK_OUTx DSPD(23 .. 0) GB_LNGx(2 .. 0)

AGO_OVFLWx AGO_A(23 .. 0) BLK_ OUT _A(23 .. 0)

VARIABLE

BEGIN

COUNTER(24 .. 0) REG _BLK_ OUT _A(23 .. 0)

COUNTERQ .elk COUNTERQ.d

REG_BLK_OUT_AQ.clk REG_BLK_OUT_AQ.d

AGO_OVFLWx

AGO_A(23 .. 0) BLK_OUT_AQ

IF !STR_BLK_OUTx THEN REG_BLK_OUT_AQ .prn = REG _BLK_OUT_AQ .clrn=

ELSE

INPUT; INPUT; INPUT; INPUT; INPUT; INPUT;

OUTPUT; OUTPUT; OUTPUT;

DFF; DFF;

INC_AGOx; COUNTERQ.q+ l;

GND; VCC;

(!COUNTER24 & !GB_LNGx0==7) # (!COUNTER23 & !GB_LNGx0==6) # (!COUNTER22 & !GB_LNGx0==5) # (!COUNTER2l & !GB_LNGx0==4) # (!COUNTER20 & !GB_LNGx0==3) # (!COUNTER19 & !GB_LNGx0==2) # (!COUNTER18 & !GB_LNGxQ== l) #(!COUNTER I? & !GB_LNGxQ==O); COUNTER(23 .. 0); REG_BLK_OUT_AQ;

!DSPDQ; DSPDQ;

REG_BLK_OUT_AQ.prn= VCC; REG_BLK_OUT_AQ.clrn= VCC;

END IF;

57

Page 66: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

58

END;

IF !INIT_AGOx THEN CASE !GB_LNGxQ IS

WHEN 7 => COUNTER(23 .. 0) .prn COUNTER(23 .. 0).clrn COUNTER24.prn COUNTER24.clrn

WHEN 6 => COUNTER(22 .. 0) .prn COUNTER(22 .. 0) .clrn COUNTER (24 .. 23) .prn COUNTER (24 .. 23) .clrn

WHEN 5=> COUNTER(21 .. 0).prn COUNTER (21 .. 0) .clrn COUNTER (24 .. 22). prn COUNTER(24 .. 22) .clrn

WHEN4 => COUNTER(20 .. 0) .prn COUNTER(20 .. 0) .clrn COUNTER (24 .. 21) .prn COUNTER(24 .. 21) .clrn

WHEN3 => COUNTER(19 .. 0) .prn COUNTER(19 .. 0) .clrn COUNTER (24 .. 20) .prn COUNTER(24 .. 20) .clrn

WHEN 2 => COUNTER(18 .. 0) .prn COUNTER(18 .. 0).clrn COUNTER (24 .. 19) .prn COUNTER(24 .. 19) .clrn

WHEN 1 => COUNTER(17 .. 0) .prn COUNTER(17 .. 0) .clrn COUNTER(24 .. 18).prn COUNTER(24 .. 18) .clrn

WHEN 0=> COUNTER(16 .. 0).prn COUNTER(16 .. 0) .clrn COUNTER (24 .. 17). prn COUNTER(24 .. 17).clrn

END CASE; ELSIF !CLR_AGOx THEN

COUNTERQ.prn VCC; COUNTERQ .clrn GND;

ELSE COUNTERQ.prn COUNTERQ .clrn

END IF;

VCC; VCC;

BIJLAGE B: EPLD design AGO

!REG_BLK_OUT_A(23 .. 0); REG_BLK_OUT_A(23 .. 0); VCC; GND;

!REG_BLK_OUT_A(22 .. 0); REG _BLK_ OUT _A (22 .. 0); GND; VCC;

!REG_BLK_OUT_A(21 .. 0); REG_BLK_OUT_A(21 .. 0); VCC; GND;

!REG_BLK_OUT_A(20 .. 0); REG _BLK_ OUT _A (20 .. 0); VCC; GND;

!REG_BLK_ OUT_A(19 .. 0); REG_BLK_OUT_A(19 .. 0); VCC; GND;

!REG_BLK_OUT_A(18 .. 0); REG_BLK_OUT_A(18 .. 0); VCC; GND;

!REG_BLK_OUT_A(17 .. 0); REG _BLK_ OUT_A(17 .. 0); VCC; GND;

!REG_BLK_OUT_A(16 .. 0); REG_BLK_OUT_A(16 .. 0); VCC; GND;

Page 67: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE C: EPLD design Configuratie-controller (deel 1, CCD) 59

EPLD design Configuratie-controller (deel l, CCD)

SUBDESIGN 9602CCO ( %1/0 9602CC1%

INC_AGix INPUT; INPUT_STATE OUTPUT; OUTPUT_STATE OUTPUT; DSP _RDY _INGB OUTPUT;

%1/0 9602CC1 EINDE%

RESET x INPUT; ENA INPUT; RESET_ERRx INPUT; START x INPUT;

CMODEx(3 .. 0) INPUT;

MMODEx(3 .. 0) INPUT; MNT INPUT;

SWMEM_EN INPUT; SW_MEMx INPUT; AGI_OVFLWx INPUT; AGO_OVFLWx INPUT;

DSPA(30 .. 24) INPUT; DSPD7 BIDIR; DSPD6 BIDIR; DSPDS BID IR; DSPD4 INPUT; DSPD3 BIDIR; DSPD2 OUTPUT; DSP_WRTx INPUT; DSP_STRBlx INPUT; DSP _INPUT_INTx OUTPUT; DSP _OUTPUT_INTx OUTPUT;

PB_INTx OUTPUT; PP_INTx OUTPUT; DSBl_INTx OUTPUT; DSB2_1NTx OUTPUT;

INIT_AGix OUTPUT; CLR_AGix OUTPUT; STORE_AGix OUTPUT; READ_AGI ENDx OUTPUT;

INIT_AGOx OUTPUT; CLR_AGOx OUTPUT; STORE_BLK_ 0 UT x OUTPUT;

DF _ERR_DSPx OUTPUT; DF _ERR_EXDPx OUTPUT; DSP _APP _ERRx OUTPUT; AO_BFR_SM_ERRx OUTPUT;

DSP _HEARTBEATx OUTPUT; DSP_DONEx OUTPUT;

BUSYx OUTPUT; SET_DONEx OUTPUT;

OEO_IN INPUT; OEO_OUT OUTPUT;

Page 68: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

60 BIJLAGE C: EPLD design Configuratie-controller (deelt CCO)

%RESERVE SIGNALEN% RES(l7 .. 0) INPUT; DSPD1 INPUT; DSPDO INPUT; FLUT OUTPUT;

VARIABLE

BUSY DFF; SET_DONEx DFF;

INPUT_STATE DFF; OUTPULSTATE DFF;

INPUT_INT DFF; OUTPUT_INT DFF;

DF _ERR_EXDPx DFF; DF _ERR_DSPx DFF; DSP _APP _ERRx DFF; AO _BFR_SM_ERRx DFF;

DSP _RDY _INGB DFF; DSP _RDY_OUTGB DFF;

DSP_DONE DFF;

ADRES_BLK_IN NODE; ADRES_BLK_ OUT NODE; ADRES_DSP _CSR NODE;

CMODE(10 .. 0) NODE; CMODE0or1 or2 NODE; CMODE3TM9 NODE;

MMODE(14 .. 10) NODE; MMODE10TM13 NODE;

SWITCH_INPUT NODE; SWITCH_ OUTPUT NODE;

SWMEM_DEL 1 x LCELL; SWMEM_DEL2x LCELL;

AGI_OVFLW_DEL1x LCELL; AGI_OVFLW_DEL2x LCELL;

SWITCH_INPUT_DEL l LCELL; SWITCH_INPUT _DEL2 LCELL; SWITCH INPUT_DEL3 LCELL;

AGO_OVFLW_DELlx LCELL;

STORE_BLK_ OUT LCELL; STORE_BLK_ OUT _DEL 1 : LCELL;

DSP _RDY _ OUTGB_DEL1: LCELL; DSP _RDY _ OUTGB_DEL2: LCELL;

Page 69: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE C: EPLD design Configuratie-controller (deel L CCO) 61

BEGIN

DEFAULTS %*********** * DEFAULTS • ***********%

BUSY.prn vee: BUSY.clrn vee: BUSY.clk GND:

SET_DONEx.prn vee; SET_DONEx.clrn vee; SET _DONEx.clk GND;

INPUT_STATE.prn vee: INPUT_STATE.clrn vee: INPUT_STATE.clk GND;

OUTPUT _STA TE.prn vee; OUTPUT _STATE .clrn vee; OUTPUT_STATE.clk GND;

INPUT_INT.prn vee; INPUT_INT.clrn vee: INPUT _INT. elk GND;

OUTPUT_INT.prn vee; OUTPUT_INT.ctrn vee; OUTPUT_INT.ctk GND:

DF _ERR_EXDPx.prn vee; DF _ERR_EXDPx.ctrn vee; DF _ERR_EXDPx.clk GND;

DF _ERR_DSPx.prn vee: DF _ERR_DSPx.clrn vee: DF _ERR_DSPx.ctk GND;

DSP _APP _ERRx.prn vee: DSP _APP _ERRx.clrn vee; DSP _APP _ERRx.clk GND;

AO_BFR_SM_ERRx.prn = vee: AO _BFR_SM_ERRx.clrn = vee; AO_BFR_SM_ERRx.clk = GND;

DSP _RDY _INGB.prn vee: DSP _RDY _INGB.clrn vee: DSP _RDY _INGB.clk GND;

DSP_RDY_OUTGB.prn = vee; DSP_RDY_OUTGB.ctrn = vee; DSP _RDY _ OUTGB.ctk vee;

DSP_DONE.prn vee: DSP _DONE .ctrn vee: DSP _DONE.ctk GND;

SWITeH_INPUT GND; INtT_AGtx vee: eLR_AGix = vee:

END DEFAULTS;

!BUSYx = BUSY; !DSP_DONEx DSP_DONE;

Page 70: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

62 BIJLAGE C: EPLD design Configuratie-controller (deel L CCO)

IF !RESET x THEN % *********** ***** * * * * * * * * * * * * *** *** **** * *

*INITIALISATIE CONFIGURATIE-CONTROLLER* *** ** *** * * * * * * ** * * * * ******** * * ** * * * * * * * *%

BUSY.clrn GND; SET_DONEx.clrn GND;

DF _ERR_EXDPx.prn GND; DF _ERR_DSPx.prn GND; DSP _APP _ERRx.prn GND; AO_BFR_SM_ERRx.prn = GND;

INPUT_STATE.clrn GND; OUTPUT_STATE.clrn GND;

INPUT_INT.clrn GND; OUTPUT_INT.clrn GND;

END IF;

IF !RESET_ERRx THEN %**** ***********

* RESET ERRORS * ***************%

DF _ERR_EXDPx.prn GND; DF _ERR_DSPx.prn GND; DSP _APP _ERRx.prn GND; AO_BFR_SM_ERRx.prn = GND;

END IF;

IF !MNT & ENA & !SET_DONEx THEN % * * * *** ******** ************

• Initialisatie na enable • * ** * ********** ******* ** * * *%

END IF;

INIT_AGix CLR_AGix !INPUT_INT.prn

SWMEM EN; !SWMEM_EN; VCC;

IF !MNT & SET_DONEx & !SWMEM_EN & CMODEOorlor2 THEN % **** ******* * **** *** ********** ***** * * * ** ********************** * ** ******

* Niet maintenance en niet SWITCH MEMORY ENABLE en CMODE= 0 of l of 2 * **********************************************************************%

INPUT_INT.clk DF _ERR_EXDPx.clk SWITCH_INPUT INPUT_STATE.clk !INPUT_INT.prn !INIT_AGix !STORE_AGix !READ_AGI_ENDx !STORE_BLK_OUTx !INIT_AGOx !OUTPUT_INT.prn OUTPUT_INT.clk

SET_DONEx.d SET_DONEx.clk

END IF;

!AGI_ OVFLWx; !AGI_OVFLWx; !AGI_OVFLW_DEL2x & DF_ERR_EXDPx; SWITCH_INPUT; SWITCH_INPUT; SWITCH_INPUT ; SWITCH_INPUT; SWITCH_INPUT; SWITCH_INPUT; SWITCH_INPUT_DEL2 & ! SWITCH_INPUT_DEL3; SWITCH_INPUT_DEL3; !AGO_OVFLWx;

BUSY; !AGO_OVFLWx;

Page 71: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE C: EPLD design Configuratie-controller (deel l, CCO)

IF !MNT & SET_DONEx & !SWMEM_EN & CMODE3TM9 THEN % ******** * ** ***** * ** ** ** ** * ***************** * *** ** ** * * ** * *** * ** *

*Niet maintenance en niet SWITCH MEMORY ENABLE en CMODE= 0 .. 9 * ************* ************************* ** * * * * * * * ** ** * * * * * **** * * *%

INPUT_INT.clk DF _ERR_DSPx.clk SWITCH_INPUT INPUT_STATE.clk !INPUT_INT.prn !DSP _INPUT_INTx !INIT_AGix !STORE_AGix !DSP _RDY _INGB.clrn

DF _ERR_EXDPx.clk SWITCH_ OUTPUT OUTPUT_STATE.clk !INIT_AGOx !OUTPUT_INT.prn !DSP _OUTPUT_INTx !DSP _RDY _OUTGB.clrn= OUTPUT_INT.clk

SET_DONEx.d SET_DONEx.clk

END IF;

!AGI_OVFLWx; !AGI_ OVFLWx; !AGI_OVFLW_DEL2x & DF _ERR_DSPx; SWITCH_INPUT; SWITCH INPUT; INPUT_INT; SWITCH_INPUT; SWITCH INPUT; SWITCH_INPUT;

DSP _RDY _OUTGB; DSP _RDY _ OUTGB_DEL2 & DF _ERR_EXDPx; SWITCH_ OUTPUT; SWITCH_ OUTPUT; SWITCH_ OUTPUT; OUTPUT_INT; SWITCH_ OUTPUT; !AGO_OVFLWx;

!DSP_DONE; !AGO_OVFLWx;

IF !MNT & SET_DONEx & !SWMEM_EN & CMODElO THEN % ************************** *** * * **** * * * *** * * * ** ******* ********

* Niet maintenance en niet SWITCH MEMORY ENABLE en CMODE= 10 * ** * ** * **** **** *********** ****** ****** *** *** * * * * ** * * * * * * * * * * * *%

INPUT_INT.clk DF _ERR_DSPx.clk SWITCH_INPUT INPUT_STATE.clk !INIT_AGix !STORE_AGix !DSP _RDY _INGB.clrn !INPUT_INT.prn !DSP _INPUT_INTx

SET_DONEx.d SET_DONEx.clk

END IF;

!AGI_ OVFLWx; !AGI_ OVFLWx; !AGI_OVFLW_DEL2x & DF _ERR_DSPx; SWITCH_INPUT; SWITCH_INPUT; SWITCH_INPUT; SWITCH_INPUT; SWITCH_INPUT; INPUT_INT;

BUSY; DSP _RDY _INGB;

IF !MNT & SET_DONEx & SWMEM_EN & CMODEOor1or2 THEN % *** * * * * * * * * * * * * * * * * ** **** * ** * * * ********************* ****** ********

* Niet maintenance en SWITCH MEMORY ENABLE en CMODE= 0 of 1 of 2 * * * * * * * * * * * * * * * * * * ••• * ** * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *%

INPUT_INT.clk OUTPUT_INT.clk AO_BFR_SM_ERRx.clk = SWITCH_INPUT !INPUT_INT.prn INPUT_STATE.clk !STORE_AGix !CLR_AGix !READ_AGI_ENDx !STORE_BLK_OUTx !CLR_AGOx !OUTPUT_INT.prn

SET_DONEx.d SET_DONEx.clk

END IF;

!SW_MEMx; !SW_MEMx; !SW_MEMx; !SW_MEMx; SWITCH_INPUT; SWITCH_INPUT; SWITCH_INPUT & !SWITCH_INPUT_DEL 1; SWITCH_INPUT_DEL 1 & !SWITCH_INPUT_DEL2; SWITCH_INPUT_DEL 1; SWITCH_INPUT_DEL 1 & !SWITCH_INPUT_DEL2; SWITCH_INPUT; SWITCH_INPUT;

BUSY; !SW_MEMx;

63

Page 72: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

64 BIJLAGE C: EPLD design Configuratie-controller (deel 1, CCO)

IF !MNT & SET_DONEx & SWMEM_EN & CMODE3TM9 THEN % ***** ****** *** *********************** * ***** *** * * * * * **** * * * *

* Niet maintenance en SWITCH MEMORY ENABLE en CMODE= 3TM9 * ***********************************************************%

INPUT_INT.clk AO_BFR_SM_ERRx.clk = DF _ERR_DSPx.clk SWITCH_INPUT INPUT_STATE.clk !STORE_AGix !CLR_AGix !INPUT_INT.prn !DSP _RDY _INGB.clrn !DSP _INPUT_INTx

DF _ERR_EXDPx.clk SWITCH_ OUTPUT OUTPUT_STATE.clk !INIT_AGOx !DSP _RDY _OUTGB.clrn= !DSP _OUTPUUNTx !OUTPUT_INT.prn OUTPUT_INT.clk

SET_DONEx.d SET_DONEx.clk

END IF;

!SW_MEMx; !SW_MEMx; !SW_MEMx; !SWMEM_DEL2x & DF _ERR_DSPx; SWITCH_INPUT; SWITCH_INPUT & !SWITCH_INPUT_DEL 1; SWITCH_INPUT_DEL 1 & !SWITCH_INPUT_DEL2; SWITCH INPUT; SWITCH INPUT; INPUT_! NT;

DSP _RDY _OUTGB; DSP _RDY _OUTGB_DEL2 & DF _ERR_EXDPx; SWITCH_ OUTPUT; SWITCH_ OUTPUT; SWITCH_ OUTPUT; OUTPUT_! NT; SWITCH_ OUTPUT; !AGO_OVFLWx;

!DSP_DONE; !AGO_OVFLWx;

IF !MNT & SET_DONEx & SWMEM_EN & CMODE10 THEN % *** * * ************ "'* * ********************* ****** **********

* Niet maintenance en SWITCH MEMORY ENABLE en CMODE= 10 * *********************************************************%

INPUT_INT.clk AO_BFR_SM_ERRx.clk = DF _ERR_DSPx.clk SWITCH_INPUT INPUT_STATE.clk !INPUT_INT.prn !DSP _RDY _INGB.clrn !STORE_AGix !CLR_AGix !DSP _INPUT_INTx

SET_DONEx.d SET_DONEx.clk

END IF;

IF !MNT THEN % *******************

• niet maintenance * **** * *. *. * ***"'"'"' ***%

INPUT_STATE.d OUTPUT_STATE.d

INPUT_INT.d OUTPUT_INT.d

DF _ERR_EXDPx.d DF _ERR_DSPx.d AO_BFR_SM_ERRx.d

!SW_MEMx; !SW_MEMx; !SW_MEMx; !SWMEM_DEL2x & DF _ERR_DSPx; SWITCH_INPUT; SWITCH_INPUT; SWITCH_INPUT; SWITCH_INPUT & !SWITCH_INPUT_DEL 1; SWITCH_INPUT_DEL 1 & !SWITCH_INPUT_DEL2; INPUT_! NT;

BUSY; DSP _RDY _INGB;

!INPUT_STATE; !OUTPUT_STATE;

GND; GND;

!OUTPUT_! NT; !DSP _RDY _INGB; AGI_OVFLWx;

Page 73: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE C: EPLD design Configuratie-controller (deell, CCO) 65

% ***'**************

* INT GENERATION * * * * * * ************%

!PB _INT x

IPP_lNTx

!DSB1_1NTx

!DSB2_1NTx

ENDIF;

IF MNTTHEN % ************ **

* Maintenance * **************%

INPUT_STATE.d END IF;

IF MNT & MMO DE 1 OTM 13 THEN INPUT_STATE.clk !INIT_AGOx

END IF;

IF MNT & MMODE14 THEN INIT_AGix

ENDIF;

STORE_AGix READ _AGI_ENDx STO RE_BLK_ OUT x INIT_AGOx

%**************** * Altijd aktief * **************'**%

%

%

%*******

* BUSY * *******%

BUSY.d BUSY.clk BUSY.clrn % ************

* SET_DONEx *

****•*•*****%

SET_DONEx.prn % ** ****** •• ****** *******

* ADRES DECODERING DSP * *********** ******* ** ***%

OEO_OUT

ADRES _INPUT ADRES_OUTPUT ADRES_BLK_IN ADRES_BLK_ OUT ADRES_DSP _CSR !READ _AGI_ENDx STORE_BLK_ OUT !STORE_BLK_ OUT x

DSP _RDY _INGB .d DSP _RDY _INGB.clk DSPD7

DSP _RDY _OUTGB.d DSP _RDY _OUTGB.clk DSPD6

OUTPUT_INT & (CMODEOorl or2 # CMODE3 # CMODE6 # CMODE7) & SET_DONEx; INPUT_INT & (CMODEO # CMODE3 # CMODE4 # CMODES # CMODE10) & (ENA # BUSY); (OUTPUT_INT & (CMODE4 # CMODE9) & SET_DONEx) # (INPUT_INT & (CMODEl # CMODE6 # CMODE8) & (ENA # BUSY)); (OUTPUT_INT & (CMODES # CMODE8) & SET_DONEx) # (INPUT_INT & (CMODE2 # CMODE7 # CMODE9) & (ENA # BUSY));

!INPUT_STATE;

!AGO_OVFLWx; !AGO_OVFLWx & AGO_OVFLW_DELlx;

GND; GND; GND; GND: GND;

ENA # BUSY; !INC_AGix; !(!ENA & SWITCH_INPUT);

START x;

ADRES_DSP _ CSR & !DSP _STRB 1 x & DSP _ WRTx;

DSPAO===H"40"; DSPAO==H"4l "; DSPAO====H"42"; DSPAO==H"43"; DSPAO==H"44"; ADRES_BLK_IN & !DSP _STRB1x & DSP _WRTx; ADRES_BLK_OUT & !DSP _STRBlx & !DSP _WRTx; STORE_BLK_OUT & ISTORE_BLK_ OUT_DEL 1;

DSPD7; ADRES_DSP _ CSR & !DSP _STRB 1 x TRI( DSP _RDY _INGB.q,OEO_IN);

DSPD6; ADRES_DSP _CSR & !DSP_STRB1x TRI(DSP _RDY _OUTGB,OEO_IN);

& !DSP _WRTx;

& !DSP_WRTx;

Page 74: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

66

DSP _APP _ERRx.d DSP _APP _ERRx.clk !DSPD5

!DSP _HEARTBEATx

DSP_DONE.d DSP _DONE.clk DSPD3

DSPD2

*CONFIGURATIE MODES* *** *** **** ********* **%

CMODEO CMODEl CMODE2 CMODE3 CMODELI CM ODES CMODE6 CM ODE? CMODE8 CMODE9 CMODElO CMODEOorl or2 CMODE3TM9

CMODE9;

END;

% ********'************ * MAINTENANCE MODEs • ************* **• * * * *% MMODElG MMODEll MMODE12 MMODE13 MMODElLI MMODE 1 OTM 13 % *********** ****** **

• GENEREREN DELAYS • * *** * * *************% SWMEM_DEL 1 x SWMEM_DEL2x AGI_OVFLW_DEL lx AGI_OVFLW_DEL2x AGO_OVFLW_DEL 1 x SWITCH_INPUT_DEL 1 SWITCH_INPUT_DEL2 SWITCH_INPUT_DEL3 STORE_BLK_OUT_DEL 1 DSP _RDY _OUTGB_DEL 1 DSP _RDY _ OUTGB_DEL2 % ******************* * RESERVE SIGNALEN * *******. ****** *****% FLUT

BIJLAGE C: EPLD design Configuratie-controller (deel l, CCO)

!DSPDS; ADRES_DSP _ CSR & !DSP _STRB l x TRI(DSP _APP _ERRx,OEO_IN);

& !DSP_WRTx;

DSPDLI & ADRES_DSP _ CSR & !DSP _STRBl x

DSPD3; ADRES_DSP _CSR & !DSP _STRBlx TRI(DSP _DONE,OEO_IN);

TRI(BUSY, OEO_IN);

CMODExO==!H"O"; CMODExO==!H"l"; CMODExO==!H"2"; CMODExQ==!H"3"; CMODExO==!H"LI"; CMODExO==!H"5"; CMODExO==!H"6"; CMODExO==!H"?"; CMODExO==!H"8"; CMODExO==!H"9"; CMODExO==!H"A"; CMODEO # CMODEl # CMODE2;

& !DSP_WRTx;

& !DSP_WRTx;

CMODE3 # CMODELI # CMODE5 # CMODE6 # CMODE7 # CMODE8 #

MMODExO==!H"A"; MMODExO==!H"B"; MMODExO==!H"C"; MMODExO==!H"D"; MMODExO==!H"E"; MMODElG # MMODEll # MMODE12# MMODE13;

SW_MEMx; SWMEM_DEL l x; AGI_OVFLWx; AGI_OVFLW_DELlx; AGO_OVFLWx; SWITCH_INPUT; SWITCH_INPUT_DEL 1; SWITCH_INPUT_DEL2; STORE_BLK_ OUT; DSP _RDY _OUTGB; DSP _RDY _ OUTGB_DEL 1;

DSPDO & DSPD 1 & RESO & RES l & RES2 & RES3 & RESLI & RES5 & RES6 & RES7 & RES8 & RES9 & RESlO & RESll & RES12 & RES13& RES14& RES15& RES16& RES17;

Page 75: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE D: EPLD design Configuratie-controller (deel2, CCl) 67

EPLD design Configuratie-controller (deel 2, CCl)

SUBDESIGN 9602CC1 ( % 1/0 9602CCO %

INPUT_STATE INPUT; OUTPUT_STATE INPUT; DSP _RDY _INGB INPUT;

% 1/0 9602CCO EINDE %

CMODEx(3 .. 0) INPUT;

MMODEx(3 .. 0) INPUT; MNT INPUT;

DSPA(30 .. 24) INPUT; DSP_WRTx INPUT; DSP_STRBlx INPUT;

PBSTRBx INPUT; PPSTRBx INPUT; DSBlSTRBx INPUT; DSB2STRBx INPUT;

PB_GBA_ENx OUTPUT; DSBl_GBA_ENx OUTPUT; DSB2_GBA_ENx OUTPUT; PP_GBA_ENx OUTPUT; DSP_GBA_ENx OUTPUT; GBA_STRBOx OUTPUT; GBA_WRTx OUTPUT;

PB_GBB_ENx OUTPUT; DSBl_GBB_ENx OUTPUT; DSB2_GBB_ENx OUTPUT; PP_GBB_ENx OUTPUT; DSP _GBB_ENx OUTPUT; GBB_STRBOx OUTPUT; GBB_WRTx OUTPUT;

PB_GBC_ENx OUTPUT; DSBl_GBC_ENx OUTPUT; DSB2_ GBC _EN x OUTPUT; PP_GBC_ENx OUTPUT; DSP _GBC_ENx OUTPUT; GBC_STRBOx OUTPUT; GBC_WRTx OUTPUT;

PB_GBD_ENx OUTPUT; DSBl_GBD_ENx OUTPUT; DSB2_ GBD _EN x OUTPUT; PP_GBD_ENx OUTPUT; DSP _GBD_ENx OUTPUT; GBD_STRBOx OUTPUT; GBD_WRTx OUTPUT;

AGI_ GBA_ENx OUTPUT; AGI_GBB_ENx OUTPUT; AGO_GBA_ENx OUTPUT; AGO_GBB_ENx OUTPUT; AGO_GBC_ENx OUTPUT; AGO_GBD_ENx OUTPUT;

INC_AGix OUTPUT; INC_AGOx OUTPUT;

Page 76: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

68

% RESERVE SIGNALEN % RES(9 .. 0} DSPD(7 .. 0) FLUT

VARIABLE

BEGIN

ADRES _INPUT ADRES_OUTPUT

CMODE(lO .. O) CMODEOor l or2 CMODE3TM9 CMODE034510

MMODE(l5 .. 0}

IF !MNT THEN %*•********•*•****** • niet maintenance * * ***** * * * **********%

!PB_GBA_ENx !DSBl_GBA_ENx !DSB2_ GBA_ENx !PP_GBA_ENx !DSP_GBA_ENx !GBA_STRBOx

GBA_WRTx

!PB_GBB_ENx !DSB 1_ GBB_ENx !DSB2_GBB_ENx !PP _GBB_ENx !DSP _GBB_ENx !GBB_STRBOx

GBB_WRTx

!PB_GBC_ENx !DSBl_GBC_ENx !DSB2_GBC_ENx !DSP _GBC_ENx !GBC_STRBOx

GBC_WRTx

!PB_GBD_ENx !DSBl_GBD_ENx !DSB2_ GBD _ENx !DSP_GBD_ENx !GBD_STRBOx

GBD_WRTx

BIJLAGE D: EPLD design Configuratie-controller (deel2, CCl)

INPUT; INPUT; OUTPUT;

NODE; NODE;

NODE; NODE; NODE; NODE;

NODE;

(CMODEOorlor2) & INPUT_STATE; (CMODEl # CMODE6 # CMODE8) & !INPUT_STATE; (CMODE2 # CMODE7 # CMODE9) & !INPUT_STATE; CMODE034510 & !INPUT_STATE; (CMODE3TM9 # CMODElO) & INPUT_STATE; (!PBSTRBx & !PB_GBA_ENx) # (!DSBlSTRBx & !DSBl_GBA_ENx) # (!DSB2STRBx & !DSB2_GBA_ENx) # (!PPSTRBx & IPP _GBA_ENx) # (!DSP_STRBlx & !DSP_GBA_ENx & ADRES_INPUT); (DSP_WRTx # CMODEOorlor2) & INPUT_STATE;

(CMODEOorlor2) & !INPUT_STATE; (CMODEl # CMODE6 # CMODE8) & INPUT_STATE; (CMODE2 # CMODE7 # CMODE9) & INPUT_STATE; CMODE0345l0 & INPUT_STATE; (CMODE3TM9 # CMODElO) & !INPUT_STATE; (!PBSTRBx & !PB_GBB_ENx) # (!DSBlSTRBx & !DSBl_GBB_ENx) # (!DSB2STRBx & !DSB2_GBB_ENx) # (!PPSTRBx & !PP_GBB_ENx) # (!DSP_STRBlx & !DSP_GBB_ENx & ADRES_INPUT); (DSP_WRTx # CMODEOorlor2) & !INPUT_STATE;

(CMODE3 # CMODE6 #CM ODE?) & OUTPUT_STATE; (CMODE4 # CMODE9) & OUTPUT_STATE; (CMODE5 # CMODE8) & OUTPUT_STATE; CMODE3TM9 & !OUTPUT_STATE; (!PBSTRBx & !PB_GBC_ENx) # (!DSBlSTRBx & !DSBl_GBC_ENx) # (!DSB2STRBx & !DSB2_GBC_ENx) # (!DSP_STRBlx & !DSP_GBC_ENx & ADRES_OUTPUT); (!OUTPUT_STATE & DSP_WRTx) # OUTPUT_STATE;

(CMODE3 # CMODE6 # CMODE7) & !OUTPUT_STATE; (CMODE4 # CMODE9) & !OUTPUT_STATE; (CMODE5 # CMODE8) & !OUTPUT_STATE; CMODE3TM9 & OUTPUT_STATE; (!PBSTRBx & !PB_GBD_ENx) # (!DSBlSTRBx & !DSBl_GBD_ENx) # (!DSB2STRBx & !DSB2_GBD_ENx) # (!DSP_STRBlx & !DSP_GBD_ENx & ADRES_OUTPUT); (OUTPUT_STATE & DSP _WRTx) # !OUTPUT_STATE;

Page 77: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE D: EPLD design Configuratie-controller (deel 2, CCl)

!AGI_GBA_ENx !AGI_GBB_ENx

!AGO _ GBA_ENx !AGO_GBB_ENx !AGO_GBC_ENx !AGO _ GBD _EN x % ******'*'*'**'*********************

!INPUT_STATE; INPUT_STATE;

(CMODEOor 1 or2) & OUTPUT _STATE; (CMODEOorlor2) & !INPUT_STATE; !(CMODEOorlor2) & OUTPUT_STATE; !(CMODEOorlor2) & !OUTPUT_STATE;

* INCREMENTEN ADRESGENERATOREN * ***** ***** ** ******* * * * ** *******%

!INC_AGix

!INC_AGOx

END IF;

IF MNT THEN %**************

• Maintenance * **************%

(!DSBlSTRBx & (CMODEl # CMODE6 # CMODE8)) # (!DSB2STRBx & (CMODE2 # CMODEl # CMODE9)) # (!PPSTRBx & CMODE034510); (!PBSTRBx & (CMODE0orlor2 # CMODE3 # CMODE6 # CMODEl)) # (!DSBlSTRBx & (CMODE4 # CMODE9)) # (!DSB2STRBx & (CMODE5 # CMODE8));

69

!PB_GBA_ENx !DSBl_GBA_ENx !DSB2_ GBA_ENx !PP_GBA_ENx

MMODEO # MMODE4 # MMODE5 # MMODE8 # MMODElO # MMODE15; MMODE4;

END IF;

! DSP _ GBA_ENx !GBA_STRBOx

GBA_WRTx

!PB_GBB_ENx !DSB l_GBB_ENx !DSB2_GBB_ENx !PP _GBB_ENx !DSP _GBB_ENx !GBB_STRBOx GBB_WRTx

!PB_GBC_ENx !DSBl_GBC_ENx !DSB2_GBC_ENx !PP _GBC_ENx !DSP _GBC_ENx !GBC_STRBOx GBC_WRTx

!PB_GBD_ENx !DSBl_GBD_ENx !DSB2_GBD_ENx !PP _GBD_ENx !DSP_GBD_ENx !GBD_STRBOx GBD_WRTx

AGI_GBA_ENx AG I_ GBB_ENx !AGO_GBA_ENx !AGO_GBB_ENx !AGO_GBC_ENx !AGO_GBD_ENx

MMODE5; MMODEO; MMODE8 # MMODE15; (!PBSTRBx & (MMODElO # MMODE15)) # (!DSP_STRBlx & MMODE15 & ADRES_INPUT); (MMODElO & INPUT_STATE) # (MMODE15 & (DSP_WRTx # !PBSTRBx));

MMODEl # MMODEll; MMODE4; MMODE5; MMODEl # MMODE4 # MMODE5 # MMODE8; MMODE8; !PBSTRBx & MMODEll; MMODEll & INPUT_STATE;

MMODE2 # MMODE6 # MMODEl # MMODE9 # MMODE12; MMODE6; MMODEl; MMODE2; MMODE9; !PBSTRBx & MMODE12; MMODE12 & INPUT_STATE;

MMODE3 # MMODE13; MMODE6; MMODEl; MMODE3 # MMODE6 # MMODEl # MMODE9; MMODE9; !PBSTRBx & (MMODE13 # MMODE14); MMODE13 & INPUT_STATE;

VCC; VCC; MMODElO # (MMODE15 & DSP_RDY_INGB); MMODEll; MMODE12; MMODE13;

% *** * *** ** **** *********** ******* ******* * ******

* INCREMENTEN ADRESGENERATOREN (maintenance) * * * * * * * * * * * * * * * * * * * * 1r * * * * 1r * * * * * * * * * * * * * * ** * * **%

INC_AGix !INC_AGOx

VCC; !PBSTRBx & (MMODElO # MMODEll # MMODE12 # MMODE13 # MMODE15);

Page 78: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

70

% ***** ** ********* * * * ** **

* ADRES DECODERING DSP * ** *********************%

ADRES_INPUT ADRES_OUTPUT

% ****************** ***

* Configuratie modes * * ************** * ** ** *%

CMODEO CMODEl CMODE2 CMODE3 CMODE4 CMODE5 CMODE6 CMODE7 CMODE8 CMODE9 CMODElO CM ODEOor l or2 CMODE3TM9

CMODE0345l 0

% ********************

* Maintenance modes * ********* ***********%

MMODEO MMODEl MMODE2 MMODE3 MMODE4 MMODES MMODE6 MMODEl MMODES MMODE9 MMODElG MMODEll MMODE12 MMODE13 MMODE14 MMODE15

% *******************

* RESERVE SIGNALEN * ************* ******%

FLUT

END

BIJLAGE D: EPLD design Configuratie-controller (deel2, CCl)

DSPAO==H"40"; DSPAO==H"4l";

CMODExO==!H"F"; CMODExO==!H"E"; CMODExO==!H"D"; CMODExO==!H"C"; CMODExQ==!H"B"; CMODExQ==!H"A"; CMODExO==!H"9"; CMODEx0==!H"8"; CMODExQ==!H"?"; CMODExO==!H"6"; CMODExO==!H"5"; CMODEO # CMODEl # CMODE2; CMODE3 # CMODE4 # CMODE5 # CMODE6 # CMODE? # CMODE8 # CMODE9; CMODEO # CMODE3 # CMODE4 # CMODE5 # CMODE l 0;

MMODExO==!H"O"; MMODExQ==!H"l "; MMODExQ==!H"2"; MMODExO==!H"3"; MMODExO==!H"4"; MMODExQ==!H"5"; MMODExQ==!H"6"; MMODExO==!H"?"; MMODExO==!H"8"; MMODExO==!H"9"; MMODExQ==!H"A"; MMODExO==!H"B"; MMODExO==!H"C"; MMODExO==!H"D"; MMODExO==!H"E"; MMODExQ==!H"F";

DSPDO & DSPDl & DSPD2 & DSPD3 & DSPD4 & DSPD5 & DSPD6 & DSPD? & RESO & RESl & RES2 & RES3 & RES4 & RES5 & RES6 & RES7 & RES8 & RES9;

Page 79: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE E: EPLD design Configuratie-controller (deel3, CC2)

EPLD design Configuratie-controller (deel 3, CC2)

SUBDESIGN 9602CC2 (

DSP_RDYlx PBRDYx PPRDYx DSBlRDYx DSB2RDYx

TACC(2 .. 0)

% 1/0 9602CC2 % PB_GBA_ENx DSBl_GBA_ENx DSB2_GBA_ENx PP_GBA_ENx DSP _GBA_ENx GBA_STRBOx GBA_RDYOx

PB_GBB_ENx DSBl_GBB_ENx DSB2_GBB_ENx PP_GBB_ENx DSP _GBB_ENx GBB_STRBOx GBB_RDYOx

PB_GBC_ENx DSBl_GBC_ENx DSB2_ GBC_ENx DSP_GBC_ENx GBC_STRBOx GBC_RDYOx

PB_GBD_ENx DSBl_GBD_ENx DSB2_GBD_ENx DSP _GBD_ENx GBD_STRBOx GBD_RDYOx

DSP_WRTx DSP_WRT

INC_AGix BUSYx ACQ

% 1/0 9602CC2 EINDE %

% RESERVE SIGNALEN % RES(20 .. 3) FLUT

)

OUTPUT; OUTPUT; OUTPUT; OUTPUT; OUTPUT;

INPUT;

INPUT; INPUT; INPUT; INPUT; INPUT; INPUT; INPUT;

INPUT; INPUT; INPUT; INPUT; INPUT; INPUT; INPUT;

INPUT; INPUT; INPUT; INPUT; INPUT; INPUT;

INPUT; INPUT; INPUT; INPUT; INPUT; INPUT;

INPUT; OUTPUT;

INPUT; INPUT; OUTPUT;

INPUT; OUTPUT;

71

Page 80: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

72

VARIABLE GBA_RDY GBB_RDY GBC_RDY GBD_RDY

GBA_STRBO_DELx(ó .. 1) : GBB_STRBO_DELx(ó .. 1) : GBC_STRBO_DELx(ó .. 1): GBD_STRBO_DELx(ó .. 1):

BEGIN % *******************

• READY GENERATION * ************* ******%

!PBRDYx

!DSB1RDYx

!DSB2RDYx

!PPRDYx

!DSP_RDY1x

BIJLAGE E: EPLD design Configuratie-controller (deel3, CC2)

NODE; NODE; NODE; NODE;

LCELL; LCELL; LCELL; LCELL;

(GBA_RDY & !PB_GBA_ENx) # (GBB_RDY & !PB_GBB_ENx) # (GBC_RDY & !PB_GBC_ENx) # (GBD_RDY & !PB_GBD_ENx); (GBA_RDY & !DSB1_GBA_ENx) # (GBB_RDY & !DSB1_GBB_ENx) # (GBC_RDY & !DSB1_GBC_ENx) # (GBD_RDY & !DSB1_GBD_ENx); (GBA_RDY & !DSB2_GBA_ENx) # (GBB_RDY & !DSB2_GBB_ENx) # (GBC_RDY & !DSB2_GBC_ENx) # (GBD_RDY & !DSB2_GBD_ENx); (GBA_RDY & !PP_GBA_ENx) # (GBB_RDY & !PP _GBB_ENx); (GBA_RDY & !DSP _GBA_ENx) # (GBB_RDY & !DSP _GBB_ENx) # (GBC_RDY & !DSP _GBC_ENx) # (GBD_RDY & !DSP _GBD_ENx);

Page 81: Eindhoven University of Technology MASTER Ontwerp van het ... · Pentium die ik tot mijn beschikking had (de harde schijf zit nu vol met .avi's), Berry Sanders voor het geweldige

BIJLAGE E: EPLD design Configuratie-controller (deel3, CC2)

CASE TACCO IS WHEN 7 =>

GBA_RDY=!GBA_RDYOx; GBB_RDY=!GBB_RDYOx; GBC_RDY =!GBC _RDYOx; GBD _RDY=!GBD _RDYOx;

WHEN6=> GBA_RDY =!GBA_STRBOx; GBB_RDY=!GBB_STRBOx; GBC_RDY=!GBC_STRBOx; GBD _RDY =!GBD _STRBOx;

WHEN 5 => GBA_RDY=!GBA_STRBO_DELxl & !GBA_STRBOx; GBB_RDY:!GBB_STRBO_DELxl & !GBB_STRBOx; GBC_RDY:!GBC_STRBO_DELxl & !GBC_STRBOx; GBD_RDY:!GBD_STRBO_DELxl & !GBD_STRBOx;

WHENLI => GBA_RDY=!GBA_STRBO_DELx2 & !GBA_STRBOx; GBB_RDY=!GBB_STRBO_DELx2 & !GBB_STRBOx; GBC_RDY=!GBC_STRBO_DELx2 & !GBC_STRBOx; GBD_RDY=!GBD_STRBO_DELx2 & !GBD_STRBOx;

WHEN3=> GBA_RDY=!GBA_STRBO_DELx3 & !GBA_STRBOx; GBB_RDY=!GBB_STRBO_DELx3 & !GBB_STRBOx; GBC_RDY:"JGBC_STRBO_DELx3 & !GBC_STRBOx; GBD_RDY=!GBD_STRBO_DELx3 & !GBD_STRBOx;

WHEN 2 => GBA_RDY=!GBA_STRBO_DELxLI & !GBA_STRBOx; GBB_RDY=!GBB_STRBO_DELx4 & !GBB_STRBOx; GBC_RDY=!GBC_STRBO_DELxLI & !GBC_STRBOx; GBD_RDY=!GBD_STRBO_DELx4 & !GBD_STRBOx;

WHEN l => GBA_RDY=!GBA_STRBO_DELx5 & !GBA_STRBOx; GBB_RDY=!GBB_STRBO_DELx5 & !GBB_STRBOx; GBC_RDY=!GBC_STRBO_DELx5 & !GBC_STRBOx; GBD_RDY=!GBD_STRBO_DELx5 & !GBD_STRBOx;

WHENO=>

END CASE;

GBA_RDY=!GBA_STRBO_DELxó & !GBA_STRBOx; GBB_RDY=!GBB_STRBO_DELxó & !GBB_STRBOx; GBC_RDY=!GBC_STRBO_DELx6 & !GBC_STRBOx; GBD_RDY=!GBD_STRBO_DELxó & !GBD_STRBOx;

% ************'*******

• GENEREREN DELAYS • **** **** * * * * * * * * ** *%

GBA_STRBO_DELxl GBA_STRBO_DELx(6 .. 2) GBB_STRBO_DELxl GBB_STRBO_DELx(6 .. 2) GBC_STRBO_DELxl GBC_STRBO_DELx(6 .. 2) GBD_STRBO_DELxl GBD_STRBO_DELx(6 .. 2) =

% *******************

* RESERVE SIGNALEN • ****************** *%

END;

FLUT

DSP_WRT ACQ

GBA_STRBOx; GBA_STRBO_DELx(5 .. 1); GBB_STRBOx; GBB_STRBO_DELx(S .. l); GBC_STRBOx; GBC_STRBO_DELx(5 .. 1); GBD_STRBOx; GBD_STRBO_DELx(5 .. 1);

RES3 & RESLI & RES5 & RES6 & RES7 & RESB & RES9 & RESlO & RESll & RES12& RES13& RES14& RES15& RES16 & RES17 & RES18 & RES19 & RES20 ; !DSP_WRTx !BUSYx & !INC_AGix;

73