[//3
...=
-.-
Technische Hogeschoo1 Eindhoven afdeling der E1ektrotechniek vakgroep E1ektronische Schakelingen (EEE)
Spraakcodering met behulp van de Linear Predictive Coding techniek een real-time implementatie van LPC-analyse op een TMS-32010 systeem
1\fsttuieerp1aats
Technische Hogeschoo1 Eindhoven afdeling der E1ektrotechniek vakgroep E1ektronische Schakelingen (EEB)
Begeleiders
ir. J.J. Verboven proLdr.ir. W.M.G. van Bokhoven
1\uteur
Behzat Eren student afdeling E1ektrotechniek
1\fstudeerperiode
mei 1985 tim juni 1986 Eindhoven. 23 juni 1986
De auteur werd door Technische Hogeschool Eindhoven in staat gesteld een onderzoek te verrichten, dat mede aan dit rapport ten grondslag ligt. Technische Hogeschool Eindhoven aanvaardt geen verantwoordelijkheid voor de juistheid van de, in dit rapport vermelde, gegevens, beschouwingen en conclusies, die geheel voor rekening van de auteur komen.
VOORWOORD
In de periode mei 1985 tim juni 1986 heb ik aan deze afstudeeropdracht gewerkt bij de vakgroep Elektronische Schakelingen (EEB), afdeling der Elektrotechniek, Technische Hogeschool Eindhoven. Bij de vakgroep Elektronische Schakelingen houdt men zich voornamelijk bezig met het ontwerpen en realiseren van analoge schakelingen in NMOS-techniek en met digitale signaalverwerking met behulp van de TMS-320l0 processor. Tijdens mijn afstudeerperiode heb ik mij bezig gehouden met digitale signaalverwerking met behulp van de TMS-320l0, namelijk spraakcodering volgens de Linear Predictive Coding techniek. Hierbij werd ik begeleid door de heren ir. J.J. Verboven en proLdr.ir. W.M.G. van Bokhoven. De verstandhouding met beiden was uitstekend. Ook de verstandhouding met alle andere medewerkers van de vakgroep en de medestudenten was uitstekend. Mijn dank gaat dan ook uit naar mijn begeleiders, alle andere medewerkers van de vakgroep en de medestudenten voor de prettige samenwerking. Behzat Eren Eindhoven 23 juni 1986
SAMENVATTING
Dit verslag beschrijft een afstudeerprojeet: over spraakcodering met behulp van de Linear Predictive Coding techniek. Om spraaksignalen op efficiente wijze te coderen, kan gebruik worden gemaakt van de Linear Predictive Coding techniek _ LPC-analyse. Linear Prediction is een eenvoudige doch effeetieve methode om spraaksignalen weer te geven in een klein aantallangzaam veranderende parameters. Bij LPC-analyse kunnen de parameters op verschillende manieren berekend
worden. Hier is gebruik gemaakt van de kleinste kwadraten methode en de autocorrelatie methode. Deze berekeningen worden uitgevoerd aan de hand van een lineair all-zero filter model. De parameters die berekend moeten worden, zijn de coefficienten van dit filter. Voor de real-time realisatie van LPC-analyse moeten we enkele punten in acht nemen, nl. : een snelle microprocessor kiezen (bijv. TMS-32010) de spraaksignalen samplen en quantiseren (bijv. 16-bits AID conversie) een tijdsinterval afbakenen (window functie) windows aaneengesloten kiezen voor een continu signaalverwerking het lineaire filter realiseren en de coderingsfout meten (o.a. DI A conversie) Al deze punten in acht genomen, is voor de real-time realisatie gekozen voor de TMS-32010 Digital Signal Processor met bijbehorende Evaluatie Moduul en Analog Interface Board. Voor programma file edit en assembleer faciliteiten is verder een HP-64000 ontwikkelsysteem gebruikt. Het LPC-analyse berekeningsprogramma in assemblertaal wordt op dit systeem ge-edit, ge-assembleerd en ge-linked. Met een eenvoudige upload acHe wordt het vertaalde programma in het programma geheugen van de TMS-32010 processor geladen. Het interne data geheugen van de processor is 144 woorden groot. Omdat er tijdens de LPC-analyse berekeningen enkele acHes parallel moeten verlopen, is dit interne geheugen niet voldoende om alle betrokken data tegelijk te bevatten. Daarom wordt gebruik gemaakt van inlees- en uitvoerbuffers. Deze buffers bevinden zich in het externe data RAM gebied op het AlB-board. Terwijl de processor bezig is met de berekeningen van een window, worden alvast de samples van een volgende window in een inleesbuffer geplaatst. Tegelijkertijd wordt een
1.
coderingsfout (error) sample van een vorige window uit een uitvoerbuffer gebaald en naar bUiten gevoerd. Deze bandelingen worden op interrupt basis uitgevoerd. Bij iedere nieuwe sample krijgt de processor een interrupt en bewerkt dan de buffers. Daarna gaat bet verder met de berekeningen. Voor de analyse berekeningen wordt bet spraaksignaal met 10 kHz gesampled. ledere sample wordt in 16 bits weergegeven. Er worden rechthoekige windows gebruikt. Deze windows bevatten ieder 80 samples, zodat de windowduur 8 ms is. Voor iedere Window kunnen maximaal 10 parameters van ieder 16 bits berekend worden. Voor bet bepalen van de parameters wordt gebruik gemaakt van de kleinste kwadraten methode. In deze methode wordt eerst uit de samples de autocorrelatie matrix berekend. Uit de matrixelementen worden dan met de Levinson/Durbin recursie de parameters (de lineaire filter coefficienten) berekend. Om de werking van de real-time analyse te testen, zijn synthetische signalen gegenereerd en toegevoerd aan de LPC-analyse berekeningen. Uit de metingen is gebleken dat de analyse berekeningen correct worden uitgevoerd. Desondanks blijven verbeteringen mogelijk, bijvoorbeeld door het toepassen van een Hamming window.
2.
INHOUDSOPGAVB
1. INLEIDING
5
2. LINEAR PREDICTIVE CODING VAN SPRAAK 2.1. Inleiding
7 7
2.2. De kleinste kwadraten methode 2.3. De autocorrelatie methode
9 11
2.4. Korte samenvatting van de LPC-theorie
15
3. RICHTLIJNEN VOOR HET REALISEREN VAN DE LPC-ANALYSE 3.1. Processor keuze . 3.2. Samplen en quantiseren 3.3. Window functie 3.4. De autocorrelatie coefficienten 3.5. De filter coefficienten en de restenergie 3.6. Filter realisatie 3.7. Window continuering
17
4. CONFIGURATIE EN BEDIENING VAN HET LPC-ANALYSE SYSTEEM 4.1. Het HP-64000 ontwikkelsyteem 4.1.1. De bediening 4.1.2. Files editen 4.1.3. Files assembleren en linken 4.1.4. Koppeling tussen het HP-systeem en het EVM-board
17 18 18 19 21 22 23 24 25 25 26 27 27
4.2. Het EVM-board 4.2.1. De functie en de configuratie van het EVM-board
29 29
4.2.2. De bediening van het EVM-board
31
4.3. Het Analog Interface Board
32
4.3.1. Functionele beschrijving van het board 4.3.2. Bediening van het Analog Interface Board
32 34
4.3.3. Sample rate klok
36
4.3.4. AlB Control register
36
4.3.5. Data acquisitie mogelijkheden
37
5. DE ORGANISATIE VAN HET ASSEMBLERTAAL PROGRAMMA 5.1. Het programma in grote lijnen 5.2. Interrupt afhandeling ~.................................................................. 5.3. Interne geheugenindeling van de processor 5.4. Buffer organisatie en timing
40 40 43 44 51
3.
6. BESCHRIJVINGEN VAN DE PROGRAMMA MODULES 6.1. Het initialisatie moduul : START 6.2. Wachtlus moduul : WACHT 6.3. Inleesbuffer naar interne data RAM kopieer moduul : SMPLMV 6.4. Autocorrelatie matrix elementen berekeningen : MATRIX 6.5. Filter- en refiectie coefficienten berekeningen : FLTRCO 6.6. Filter realisatie moduul : FTUITG 6.7. Interrupt service routine: INTSR 6.8. 16-bits deel routine: DELEN 6.9. 32-bits deel routine: DEEL32
58 58 60 61 63 65 68 71 74 76
7. METINGEN, RESULTATEN EN CONCLUSIES 7.1. Meetmethode 7.2. Realisatie van de signaal synthese 7.3. Voorbereidende handelingen voor de metingen 7.3.1. Initialisatie van de hardware 7.3.2. De meetapparatuur 7.3.3. Herhaald voorkomende handelingen 7.4. De uitvoering van de metingen 7.5. De meetresultaten 7.6. Conclusies 7.7. Mogelijke verbeteringen en aanbevelingen
79 79 81 84 84 85 86 87 90 96 96
Literatuurlijst Bijlage 1 : Programma listing LPC_RW Bijlage 2 : Testprogramma listing LPC_RWT1
_................
98 100 _................ 101
4.
lnleiding
1.
INLEIDING
We zien de laatste jaren steeds meer belangstelling ontstaan om door middel van spraak met de computer te communiceren. Daaraan ligt ten grondslag dat de mens in hoofdzaak een verbaal georienteerd wezen is. Toepassingen op het gebied van spraak communicatie met de computer zijn o.a. het invoeren van gegevens in de computer, gesproken antwoorden uit de computer, persoonsherkenning bij beveiligingssysteinen, e.d. Bij ieder van deze systemen krijgen we met de volgende zaken te maken : spraak analyse. spraak synthese, spraak herkenning, zo min mogelijk geheugen gebruik bij opslag van de spraakgegevens, bij synthese een zo natuurgetrouw mogelijk spraak reproductie. Een methode die aan vrijwel alle bovenstaande eisen voldoet en die met de huidige technieken vrij goed te realiseren is, is de Linear Predictive Coding (LPC) techniek. Linear Prediction (voorspelling) is de meest gebruikte techniek op het" gebied van spraak analyse. Het is een eenvoudige en effectieve methode om spraak signalen weer te geven door mid del van een klein aantallangzaam veranderende parameters. De lineaire voorspelbaarheid van spraak signalen is direct gebaseerd op een lineair filter model. De coefficienten van dit filter kunnen zodanig bepaald worden dat de impulsresponsie van het filter het spraaksignaal, over een bepaald tijdsinterval, volledig beschrijft. Linear Prediction bestaat dan daaruit dat deze coefficienten uit enkele discrete sampIes van het spraak signaal de volgende samplewaarde kun~en voorspellen (-+ predictie). Bij spraak analyse wordt geprobeerd aan de hand van een discreet spraak signaal de filter coefficienten te bepalen, die zoals hierboven beschreven een predictief karakter hebben. Bij spraak synthese wordt met de, eerder bij analyse bepaalde, filter coefficienten het discrete spraak signaal terug gegenereerd. Bij spraak herkenning wordt ook gebruik gemaakt van de filter cOOfficienten om deze te vergelijken met in het geheugen opgeslagen coefficienten. Al deze berekeningen, zowel voor de analyse, als voor de synthese als ook voor de herkenning gebeuren in het tijd domein. Bij vakgroep EEB, afdeling Elektrotechniek, T.H. Eindhoven, is door middel van deze afstudeeropdracht getracht wat meer inzicht te krijgen in de real-time realisering van spraak analyse met behulp van de LPC techniek. Ais eerste aanzet is getracht een LPC-autocorrelatie analyse te realiseren. Bij deze methode wordt steeds een tijdsinterval van het spraak signaal beschouwd, waarbij het signaal
5.
Inleiding
bUiten dit interval tijdelijk nul wordt verondersteld. De tijdsintervallen worden aaneengesloten gekozen zodat toch het gehele spraak signaal wordt geanalyseerd. Voor de real-time realisatie is de Texas Instruments TMS-32010 microprocessor gekozen. Deze processor heeft een hoge verwerkingssnelheid en een krachtige instructieset die speciaal is toegespitst op digitale signaal verwerking, zoals spraak analyse en lineaire filter realisatie. Om de processor optimaal te kunnen benutten, wordt het ondersteund door een TMS-32010 Evaluation Module (EVM-board), een TMS-32010 Analog Interface Board (AlB) en een Hewlett Packard 64000 ontwikkelsysteem als host computer. De opzet van dit verslag is als voIgt: In hoofdstuk 2 wordt de theorie van de LPC-autocorrelatie analyse methode beschreven. In hoofdstuk 3 worden de wensen en eisen, die voor de real-time realisatie van belang zijn, beschreven. In hoofdstuk 4 wordt de hardware beschreven waarmee de LPC-analyse wordt gerealiseerd. In hoofdstuk 5 komt de organisatie van het assemblertaal programma aan de orde. In hoofdstuk 6 worden de verschillende delen van het assemblertaal programma beschreven. Tenslotte in hoofdstuk 7 komen de meetresultaten en de conclusies aan de orde.
6.
LPC-analyse theorie
2.
2.1.
LINEAR PREDICTIVE CODING VAN SPRAAK
INLEIDING
Dit verslag handelt over spraakcodering. In het bijzonder over de real-time realisatie van deze codering met behulp van de Linear Proo.ictive Coding (LPC) techniek. Bij spraakcodering volgens deze (LPC) techniek, wordt getracht een stuk spraaksignaal, binnen een bepaald tijdsinterval (= window), wee~ te geven met een klein aantal coefficienten. En weI zodanig dat alle essentiele informatie van het spraaksignaal geconcentreerd is in de coefficienten. Het aantal coefficienten is veel kleiner dan het aantal sam pIes binnen de beschouwde window, zodat deze methode een enorme data reduetie oplevert. Het is bijvoorbeeld mogelijk deze coefficienten op te slaan in het geheugen van een computer of ze met een lage bit-rate over een telefoonlijn te versturen. Met een decoderings bewerking (= synthese) kan dan het oorspronkelijke spraaksignaal, op een andere plaats en/of op een ander tijdstip, uit deze coefficienten, terug gegenereerd worden. Deze synthese bewerking wordt oak volgens de LPC techniek uitgevoerd. In ftguur 1 is symbolisch weergegeven wat er bij analyse en synthese gebeurt.
~
A (1)
5(z)
}c:oerpeienten{
!
A(i)
~ S(I)
E('z) LPC -Cll'lIfi/,se (corleY' )
LPc - :>Jl1fl,sse (decode,... )
fig. 1: Syrnbolische weergave van de analyse en synthese bewerkingen
7.
LPC-analyse theorie
De coderings bewerking wordt bij deze techniek LPC-analyse genoemd. De decoderings bewerking wordt LPC-synlhese genoemd. De analyse wordt uitgevoerd met een zogenaamde LPC-analyse filter; ook weI een invers filter genoemd (all-zero type). De synthese wordt uitgevoerd met een LPC-synthese filter (all-pole type). Deze analyse- en synthese filters zijn exact elkaars inversen. Bij deze afstudeeropdracht is alleen de LPC-analyse (spraakcodering) gerealiseerd. Later zal, bij een volgende afstudeeropdracht, ook de LPC-synthese (decodering) gerealiseerd worden. Wat is nu deze LPC techniek precies ? Linear Predictive Coding wordt toegepast op discrete signalen (gesamplede signalen). Bij deze techniek wordt de kwaliteit van de coefficienten bepaald door de mate van correlatie tussen de samples onderling. Omdat er voor het bepalen van de coefficienten veel gerekend moet worden, wordt bij deze techniek altijd gebruik gemaakt van een computer. Er kan dan ook gesteld worden dat de Linear Predictive Coding techniek een digitale signaal-bewerkingsmethode is. De windows die bij deze techniek steeds beschouwd worden, zijn allemaal even lang en worden aaneengesloten gekozen. Ieder van deze windows bevat enkele tientallen tot honderden samples van het spraaksignaal (afhankelijk van de toepassing). Bij analyse worden uit de spraaksampIes binnen iedere window de bijbehorende coeffidenten bepaald, zodanig dat deze coefficienten een predictive karakter hebben. Dit gebeurt met behulp van het digitale analyse filter. Bij synthese worden deze coefficienten in het digitale synthese filter ingevuld. Hiermee kunnen dan de sam pIes van het oorspronkelijke spraaksignaal terug gegenereerd worden. Na filtering met een laagdoorlaat filter ontstaat dan het analoge sp raaksignaal. De naam Linear Prediction is afkomstig van het feit dat bij de synthese iedere nieuwe spraak sample een lineaire combinatie is van een aantal voorgaande samples. De nieuwe samplewaarde wordt als het ware voorspeld, vandaar de kreet Predictie. Voor het bepalen van de predictie coefficienten gebruiken we de filterstructuur zoals dat in figuur 2 is weergegeven. Voor deze filterstructuur geldt dat er altijd tijdens de analyse een klein restsignaal en overblijft. We kunnen echter proberen dit restsignaal zo klein mogelijk te maken. Via de berekeningen om dit restsignaal te minimaliseren, vinden we dan de optimale filter coefficienten; die coefficienten waarin alle essentiele informatie van het spraaksignaal is geconrentreerd. Een methode om het restsignaal te minimaliseren, is de kleinste kwadralen methode. Met behulp van deze methode wordt getracht de energie van het restsignaal en te minimaliseren.
8.
LPC-analyse theorie
. S" -'---r---.I r-
IIf"
-,
:
L='-.;
fig. 2: Filterstruetu.u.r zoals het hier gebruilct wordt voor de LPC-anaZyse
2.2.
DE KLEINSTE KWADRATEN METHODE
In figuur 2 is de filterstructuur weergegeven waarvoor we, bij ieder stukje spraaksignaal, de optimale filter coeHicieten moeten bepalen. We gaan echter in eerste instantie niet dit filter realiseren, maar analyse berekeningen doen volgens deze filterstructuur. Pas in een later stadium kunnen we dit filter gaan realiseren, de gevonden filter coeffi.cH~nten invullen en bij hetzelfde ingangssignaal controleren of het analyse filter ook goed functioneert. Voor dit filter geldt (zie fig. 2) : (1)
We' kunnen voor het gemak a 0 = 1 stellen. Dit verandert niets aan de geldigheid van bovenstaande formule. Door verder de benadering voor Sn -+ sn te noemen, krijgen we de volgende formules : (2)
en en
= Sn
-
= Sn
sn
t
+
ak Sn-k
(3)
k=1
De fout tussen de werkelijke Sn en de benaderde -sn is dus en (c: error). en staat bekend als het residu. Bij de kleinste kwadraten methode wordt het gemiddelde van de som van de kwadraten van de en's geminimaliseerd. En weI met betrekking tot de parameters ak' Ais oplossing vinden we dan de filter coefBcienten ak' Om te beginnen stellen we dat E de totale gekwadrateerde error is : E =
r. n
en 2
=
r. n
(sn
+ k
t=
ak Sn -k )2
(4)
1
9.
LPC-analyse theorie
Het bereik van de sommatie in (4) en de definitie van Sn binnen dit bereik zijn belangrijk. Maar zonder voorlopig naar de onder- en bovengrenzen van n te kijken, werken we deze formule eerst uit. E wordt geminimaliseerd door te stellen :
= O.
i)E i)aj
(5)
1 ~ i ~ P
Uitgeschreven wordt dit :
:: = ~ 2 CS n
+
kfl
ak Sn-k) Sn-i
L,Sn - j n
k
t
ak Sn -k = - L,sn
=1
n
takL,Sn-k Sn-j k
=1
=0
n
= -L,Sn n
Sn-i'
(6)
De vergelijkingen in (6) heten de normaalvergelijkingen. Formule (6) vormt een set van
p
vergelijkingen met
p
onbekenden. Hieruit kunnen de filter coefficienten
{I ~ k ~ p} opgelost worden, waarmee E geminimaliseerd wordt. De minimale energie in en kunnen we noteren als :
ak
sn2 + 2
= L,
Ep
n
t
ak Sn -k Sn
k=l
+
C
t
ak Sn -k )2
(7)
k=l
Ais we formule (6) hierin invullen, krijgen we : Ep
= L,s/+ tak n
k=l
= L, s n2+ t ak k=l
n
L,SnSn-k-L,Sn2+L,Ctak Sn_k)2 n n n k=l
L,SnSn_k-L,sn2+L,Cen-sn)2 n
n
Door en t.o.v. Sn te verwaarlozen, krijgen Ep
:::::
L,s~2+ n
t
2
n
k
~e
:
ak L,Sn Sn -k - L,sn2+ L, s n2
k=l
= L, s n +
(8)
n
t= ak 1
n
L,sn Sn-k
n
n
(9)
n
10.
LPC-analyse theorie
2.3.
DE AUTOCORRELATIE METHODE
E{~n van de methoden om de voorgaande formules uit te werken, is de autocorrelatie methode. Bij deze methode wordt verondersteld dat de fout wordt geminimaliseerd over een oneindig interval - 00 < 11 < 00. De vergelijkingen (6) en (9) reduceren dan tot :
t
aJ: R
1 ~ i ~ P
Ci -k)= -R Ci),
(10)
J:=1 Ep=R(O)+ taJ:R(k) J:=1
(1)
Hierbij is
r. <Xl
RCi)=
SnSn+i
(2)
n=-oo
de autocorrelatie functie van het signaal betekent dat R (-i)= R (i )).
Sn' (R
Ci) is een even functie van
i,
dit
De coefficienten R Ci -k) vormen een autocorrelatie matrix. Vandaar dat deze oplossingsmethode de autocorrelatie methode wordt genoemd. Een autocorrelatie matrix is een symmetrische Toeplitz matrix. (Dit is een matrix waar aBe elementen langs een diagonaal aan elkaar gelijk zijn.) In de praktijk kennen we het signaal Sn slechts over een beperkt interval. Daarom vermenigvuldigen we het signaal Sn met een window functie W n , zodanig dat het onstane signaal s· n buiten het interval 0 ~ n ~ N -1 nul is :
.
S n
( 13)
= O.
anders.
De autocorrelatie functie luidt nu : ,
R Ci )
N-l-;,
= r.
I
S n S n +i •
i ~ 0
n=O
N-1
=
r. s '
n S ' n -i
(4)
n =i
I
RCi-k)
=
N-1-i+J:
r.
s'nS'n+i-J:
n =0
11.
LPC-analyse theorie
Wanneer we formule CIO) herschrijven in matrix vorm, krijgen we het volgende: /1"-1 L • I Sn sn n =0
11'-2 L
I I Sn S n+1
n=O 11'-3 L ' , Sn Sn +2 n =0
11'-1 n=1 11'-1 L
n=O 11'-2
I
I
Sn Sn
L S~ n=O
11'-1
11'-1 L Sn' Sn-2 I n =2 11'-1 L I' Sn S n-1 n=1 11'-1 L Sn' Sn'
LS~S~-1
S~+1
L n =p-1 11'-1
I
, ,
Sn Sn +2-p L n =p-2 11'-1 /
a2
Sn Sn +3-p L n =p-3
a3
•
n =0
,
Sn Sn +1-p
a1
= 11'-1, • L SnS~ n =0 N-1 ~
, ,
L- S n S n-1 n=1
,
,
N-1,
,
N-1 ~
L- Sn Sn-2 n=2 L Sn Sn-3 n=3
=
CI5)
N-1 (
, L Sn Sn-p n =p
Dit kunnen we oak als voIgt weergeven, Ro R1 R2
R1 Ro R1
R2 R1 Ro
=
CI6)
Ro (De notaties R; en R Ci) zijn idenJiek en zu11en dan ook door elkaar gebruikt worden). De oplossing van deze'vergelijking levert ons de gewenste filter coefficienten. Bij de p x p autocorrelatie matrix zien we een zodanige symmetrische vorm (Toeplitz matrix), dat we aIleen maar de elementen R o tim Rp - 1 en Rp in de rechter kolomvector hoeven op te lossen. Het berekenen van deze elementen is gewoon een kwestie van de juiste samples met elkaar vermenigvuldigen en sommeren. Deze berekeningen kosten ongeveer pN - 1h p 2 - lh P vermenigvuldigingen en optellingen. Eenmaal deze elementen berekend, is het mogelijk m.b.v. de recursie methode van Levinson/Durbin de nIter coefficienten a 1 tim a p op te lossen.
12.
Deze recursiemethode verloopt als voIgt: We beginnen initieel met een 0' orde filter. Dan geldt er Eo (9) en (11)).
=R
0
(zie form ules
In de eerste recursiestap voegen we aan het filter een vertragingselement Z-l en een filter coefficient a P) toe. We berekenen dan een tussenresultaat dat refieetie coefficienl k 1 wordt genoemd. Verder worden de restenergie E I en filter coefficient a fl) berekend. In de tweede recursiestap voegen we een volgende vertragingselement z -I, en een filter coefficient a ~2) toe. En we berekenen de waarden van de refiectie coefficient k 2 , de restenergie E 2 en de filter coefficienten a F) en aF). In de i e recursiestap beschouwen we een i e orde filter. Hier horen refiectie coefficient k i , restenergie E j en de filter coeffici(~nten a ii) tim ay) bij. In de laatste (pe) stap hebben we uiteindelijk de gewenste filter structuur bereikt. Hier horen dan de coeficienten k p ,Ep en a ip ) tim ap(p) bij. Bij iedere recursiestap kunnen de gewenste coefficienten, met behulp van de formules (17 a) tim (17 f), eenvoudig berekend worden uit de waarden van de vorige recursiestap. (Bij iedere stap blijft ad;) = 1 gelden. Verder geldt er Ik i 1<1 ). De formules (17 a) tim (17 f) luiden als voIgt: Eo
=Ro
(17 a)
(17 a) wordt gebruikt in de initiele stap.
(17 b)
E; = [1-k? ]E;_I a·(i) J
=
aU-I) J
+ k.a(i-:-I) I l-J
(17 c) •
(17 d)
1 ~ j ~ i-I
(17 e)
De vergelijkingen (17 b) tim (17 e) gelden voor de recursiestappen De eind oplossing luidt dan: a· J
=a
i
= 1.2.3 .....p. (17f)
.(p)
J
Bij de Levinson/Durbin recursie kan de refieetie coefficient k; opgevat worden als de energie refiectie aan de ingang van een vertragingselement. De formule voor deze coefficient is gegeven in (17 b). Uitschrijven van enkele recursiestappen maakt hier het beeld wat dUidelijker. stap 0 (i=O) : stap 1 (i=l):
Eo
=Ro
adO)
= 1 R Eo
R Ro
k l = - -I= - -I
EI = [1- kl]E o ad l ) = 1 13.
LPC-analyse theorie
a 1(l)-k -
stap 2 Ci=2) :
k
z
1
= _ R z+ail)R 1 E1
Ez = [1-ki]E a ci Z ) = 1 a P) = a fl) adZ) = k z
stap 3 Ci=3) :
k
3
1
+ k zC2 fl)
= _ R 3+ap)R z+ap)R 1 Ez
E = (l-ki]E z 3
=
a d3 ) 1 a f3) = a i Z ) ap) = ap) aj3) = k 3
+ k 3a P) + k 3ap)
p-l R(p)+ La}P-l)R(p-j) j=1
stap p Ci=p) :
Ep -
1
E = (l-k/ ]E
p- 1
p
adP )
=
ai
=
1 aip) = ai p p )
=
ai
1)
p - 1)
(p) a p-l (P-l) a p-l ap(p) = k p
+ k P a p-l (p -1) + k P ap-z (p -1)
+ k Pa 1(p-l)
Deze, in stap (p) berekende, a i p ) tim a}p) zijn de gewenste filter coefficienten. Het is hier nuttig om op te merken dat tijdens de berekeningen van de coefficienten van een pe orde filter, tevens de coefficienten berekend worden van aIle filters met orde kleiner dan p • Verder is het nuttig om op te merken dat het oplossen van de normaal vergelijkingen (10) niet de meeste rekentijd vergt. Het zijn eerder de berekeningen van de autocorrelatie matrix elementen R o tim Rp die de meeste rekentijd vergen, vooral als N» p. Want de Levinson/Durbin algorithme kost ongeveer pZ bewerkingen. De oplossing van formule (16) verandert niet als aIle Rj's door R o ged.eeld worden. Deze elementen staan bekend onder de naam genormaliseerde autocorrelatie coefficienJ en r( 0 : R
rCi)= - '
Ro
Deze r Ci)'s hebben de eigenschap dat I r Ci) I ::::; 1. I?it is van bijzonder wanneer er met fixed-point rekenmethodes wordt gewerkt.
(18) bel~ng
14.
LPC-analyse theorie
De oplossing van (17) geeft ons tevens het minimum totale energie E j tijdens iedere rekenslag. We zien dUidelijk dat E i afneemt (of gelijk blijft) als de orde van de coefficienten toeneemt. Omdat E i nooit negatief kan zijn (_ kwadraat van de fouten ) geldt er :
= Ro
Eo
(9)
Bij het normaliseren van de autocorrelatie coefficienten wordt E j ook gedeeld door R o' Dit resulteert in de genormaliseerde fOUl Vi : (20) Uit (9) en (20) voIgt dan ook : (21)
i ~ 0
Uit (7) en (20 ) kunnen we concluderen dat de totale genormaliseerde fout Vp gelijk is aan : (22)
De termen k i zijn de refiectie coefficienten. Deze kunnen geinterpreteerd worden als de energie refiectie van een vertragingselement of ook weI als de (negatieve) partieIe correlatie tussen Sn en Sn +j, met Sn +1 , . . . , Sn +i-1 ongewijzigd. De term "re:fiectie coefficient" is afkomstig van de lange leidingen theorie.
2.4.· KORTE SAl\1ENVATTING VAN DE LPC-THEORIE We willen in de betrekking
=
en
+
Sn
t
ak Sn -k
de energie in
en
minimaliseren,
k =1
zodat de coefficii~nten a 1 tim ap in staat zijn uit de vorige sample waarden de volgende sample waarde Sn binnen een window te voorspellen. Met de formules : 2
E=
1: n
Sn+takSn-k k =1
en
~=o (jai
komen we tot de formule:
Ro R1
R1 Ro
Rp Rp -
1
a1
2
a2
R1 R2
= Rp -
1
Rp -
2
Ro
ap
Rp
15.
LPC-analyse theorie
Voor R j geldt de formule : N-1
Rj
= L
5 n 5 n -;
n=i
Recursieve oplossing van bovenstaande autocorrelatie matrix (m.b.v. de Levinson/Durbin methode) levert ons dan de coefficienten a 1 tIm ap op. Uit de samples 50 .51 , . . . , 5N-1 hebben we dus de coefficH~nten a 1 tIm ap bepaald die eventueel bij synthe;e weer de samples 50 tIm 51\'-1 kunnen genereren. Het voordeel hierbij is dat p « N, dus aantal coefficienten « aantal samples.
16.
Richtlijnen voor realisatie
3.
RICHTLIJNEN VOOR HET REALISEREN VAN DE LPC-ANALYSE
Willen we m.b.v. een computer een spraaksignaal gaan analyseren volgens het LPC principe, dan moeten we als voIgt te werk gaan : I - Een geschikte microprocessor kiezen voor de real-time realisatie van de LPCanalyse. 2 - Het signaal samplen en quantiseren. 3 - Deze sampIes bewerken met een window functie. 4 - De autocorrelatie coefficienten R o tim Rp berekenen van de samples binnen de window. 5 - Vit R 0 tim Rp de predictie filter coefficienten berekenen.
Q
1
tim
Q
p
en de restenergie Ep
6 - Als testoptie : Het analyse filter realiseren en m.b.v. de berekende Q 1 tim Q p de samples binnen de actieve window bewerken, om het restsignaal en aan de uit:gang van het analyse filter te meten. 7 - De windows aaneen gesloten kiezen zodat het binnenkomend signaal continu bewerkt wordt. De hierboven genoemde punten 2 tim 6 worden dan in een "loop" continu doorlopen. We zullen nu wat dieper ingaan op de genoemde punten om. te zien waar we op moeten letten bij het schrijven van een computer programma voor het in realtime realiseren van de LPC-analyse. CHet eigenlijke computer programma wordt in een volgend hoofdstuk beschreven.)
3.1.
PROCESSOR KEUZE
Het kiezen van de meest geschikte processor is hier van belang omdat de berekeningen in real-time moeten gebeuren. Een snelle processor die naast de berekeningen nog extra acties kan uitvoeren, zoals het realiseren van het berekende digitale filter, verdient zeker de voorkeur. Door deze overwegingen is de keuze op de Texas Instruments TM5-320l0 Digital Signal Processor, met bijbehorend Analog Interface Board en Evaluation
17.
Richtlijnen voor realisatie
Module, gevallen. De architectuur van deze processor is speciaal op dit soort analyse berekeningen en digitale filter realisatie toegespitst. De gewenste algorithmen kunnen dan ook op eenvoudige wijze geimplementeerd worden. De instructiecyclus-tijd van 200-ns is voldoende snel om alle berekeningen en de filter realisatie in real-time te kunnen uitvoeren. Een optie die het overwegen waard is, en bij deze opdracht ook toegepast is, is het koppelen van het Evaluation Module aan een host computer. Dit maakt het mogelijk op de host computer assemblertaal programma's te ed.iten en deze als files op disk te bewaren. Ais de host computer daartoe mogelijk.heden heeft, kunnen de geschreven programma's oak daarop door de assembler vertaald worden. Daarna kan de object-code vanuit de host computer rechtstreeks in het programmageheugen van de TMS-32010 processor geladen worden. Ais host computer is bij deze opdracht een HP-64000 ontwikkelsysteem gebruikt. De koppeling tussen de boards onderling en met dit ontwikkelsysteem en het functioneren van het geheel zal in een volgend hoofdstuk beschreven worden.
3.2.
SAMPLEN EN QUANTlSEREN
Het samplen is nodig om van een continu signaal een discreet signaal te maken. Dit g~beurt met behulp van een Sample & Hold schakeling. We krijgen zo Sn = S (nT), T = de periode tijd van f sample' Verder dient het samplen aan het NyqUist criterium te voldoen. Dit houdt in :
f
sample
~ 2
f
signaal max
Dus de sample frequentie moet minstens 2 keer zo groat zijn als de maximale frequentie van het ingangssignaal. Echter de sample frequentie mag niet veel groter zijn dan 2 maal f max omdat dan het spectrale dynamische bereik van het filter vergroat wordt zodat de analyse slechter wordt (zie Markel en Gray, Linear Prediction of Speech, par. 9.2.3). Bij deze opdracht gebruiken we een anti-aliasing filter van 4,7 kHz en we samplen de spraaksignalen met 10 kHz. Tussen twee samples verstrijkt er 0,1 IDS. Omdat de verwerking verder digitaal gebeurt, hebben we de AID converter nodig om de analoge sample waarde om te zetten in een digitale overeenkomstige waarde. Dit gebeurt met een 12-bits AID converter.
3.3.
'WINDOW FUNCTIE
Volgens de theorie zijn we met de filter coefficienten Q 1 tim Qp' slechts over een bepaald tijdsinterval, in staat het signaal Sn te voarspellen. We moeten dus een "window" over het signaal Sn leggen om een tijdsinterval af te bakenen. De samples die binnen dit intervalliggen worden genummerd van So tim SN-l' Dus 0 ~ n ~ N -1 met N » p.
18.
Richtlijnen voor realisatie
Als het signaal met een window "bewerkt" is, geldt er dat beschoU'lvde interval nul is, (zie figuur 3) :
s' n
buiten het
o~
, = 10
n ~ N-1 anders
Sn W n
S n
I I
IN" i
t
1
I
-_·-_-_-_-_-_It....-_-_-VJ==.n=oI=o=w==~===~J...",..-_;;_i-_I"l_i_o -_w_-_b_ _t_fr.. nT)
s'o
fig. 3: Het effect van de window functie
We beschouwen dus steeds een deel van het signaal Sn' Als window gebruiken we voorlopig voor het gemak een rechthoekig window. Er geldt dan s' n = 1'sn binnen de beschouwde window 0 ~ n ~ N -1. Als bijvoorbeeld de berekeningen van de eerste window afgerond zijn, gaan we verder met de berekeningen van de tweede window, zodat we van het signaal Sn niets missen. Ook binnen de tweede window wordt n weer vanaf nul genummerd, dus 0 ~ n ~ N-l, etc. Bij deze opdracht plaatsen we 80 samples in een window. Bij een samplefrequentie van 10 kHz betekent dit een windowduur van 8 ms.
3.4.
DE AUTOCORRELATIE COEFF1CIENTEN Voor de autocorrelatie
coeffi.cH~nten geldt
de formule :
N-l
R(i)
= L s'ns'n-;'
i ~
0
n =;
We moeten R (0) tfm R (p) berekenen. Als we hiervan enkele uitschrijven, krijgen we: R (0) --
S
.oS .0
+ S .IS .1 + S .2s .2 +
. . .
+ .N -1 = S N. -IS
S .2 0
+ S.2I+S .22 +
. . .
+. 2 S N-l
19.
Richtlijnen voor realisatie
Om R (0) tim R (p) snel en eenvoudig te kunnen berekenen, moeten aIle samples van een window tegelijk beschikbaar zijn. Dit houdt automatisch in dat deze berekeningen pas aan het eind van ieder window uitgevoerd kunnen worden. Tussen het werkelijke signaal en de berekeningen zit dus een vertraging van een window. Ben Pascal programma moduul om de R Ci )'s te berekenen, zou er als voIgt uit kunnen zien : for i := 0 to p do begin R[i] := 0 ; for n := i to N-I do R[i] := R[i] + s'[n] . end;
* s'[n-i]
;
De TMS-320IO processor heeft een bijzondere instructie ( = BANZ : Branch on Auxiliary Register Not Zero) waarmee op eenvoudige wijze een loop in een programma gerealiseerd kan worden. Om hiervan gebruik te kunnen maken, moet bovenstaand Pascal programma moduul enigszins gewijzigd worden. Het programma moduul ziet er dan als voIgt uit : for i := p downto 0 do begin R[i] := 0 ; for n := N-I-i downto 0 do R[i] := R[i] + s'[n] end;
* s'[n+i] ;
Voor de berekening van de autocorrelatie coefficienten R (0) tim R (p) is dit programma moduul in TMS-320 assemblertaal gerealiseerd, in het moduul genaamd MATRIX. Het assemblertaal moduul zal in een volgend hoofdstuk beschreven worden. Door voor de recursieve berekeningen niet de R Ci) waarden, maar de genormeerde r (i) waarden te gebruiken (r (i ) = R (i )/ R (0)), krijgen we in de processor zoveel mogelijk significante bits bij ieder autocorrelatie coefficient. Dit komt de nauwkeurigheid van de resultaten ten goede.
20.
Richtlijnen voor realisatie
3.5.
DE
Fll.,TER
COEFFlCIENTEN EN DE RESTENERGIE
Voor het berekenen van a 1 tim (17 f) uit het vorige hoofdstuk.
ap
en Ep gebruiken we de formules (17 a) tim (17 a)
Eo = R o ;-1
RCi)+ Lal-1)RCi-j) j=1 ----=--------
k; = -
Ej =
[l-k? ]E;-1
aU)
=
ay)
= k;
)
(17 b)
E;-1
a.(i-l) )
+ k.I
(17 c)
a·(i-:-l) I-I
1 ~ j ~ i-1
•
(17 d) (17 e)
1 ~ j ~ p
.... eindoplossing : a j = a}p) •
(17f)
Het bovenstaande beschrijft de Levinson/Durbin recursie a1gorithme. Bij de berekeningen kunnen we gebruik maken van de bijzondere re1atie tussen de formu1es ( 17 b) en (17 c). We kunnen namelijk schrijven :
=-
k. ,
teller (i) E;-1
(17 b)
= -teller (i )
(17 b)
Dit herschrijven 1evert : •
k l -£.
J-
1
Dit kunnen we nu gebruiken in (17 c) : E;
= [1-k 2 ]E;-1 = Ei - 1 + ki · teller Ci) j
(17 c)
Doordat we nu een vermenigvuldiging minder hebben za1 het resu1taat ook nauwkeuriger zijn. We zien in (17 d) ook een verband tussen de formu1es van a}il en a;~), n1 : a·(il )
a·(i~ I-I
= a·(i-l) + k.a.(i-:-l) = a·(i-:-l) + k.a,U-l) )
/
I-I
,-)
/
)
Door deze form u1es op deze wijze twee aan twee te berekenen, kunnen we en geheugenp1aatsen besparen en het programma ver100p versnellen. Dit in vergelijking tot het een voor een berekenen van deze formules. Het vo1gend Pascal programma moduu1 zou bovenstaande recursieve berekeningen kunnen realiseren : teller := r[ I] ; E := r[O] ; k[l] := - teller / E ; a[I] := k[I] ; E := E + k[l] * r[I] ; { dit is de waarde van for i := 2 to p do
Ed
21.
Richtlijnen voor realisa tie
begin
teller := r[i] ; for j := I to i-I do teller := teller + r[i-j] k[i] := - teller IE; a[i] := k[i] ; E := E + k[i] * teller ; for j := I to trunc(i/2) do begin
* aU] ;
atemporary := aU] + k[i] * a[i-j] ; a[i-j] := a[i-j] + k[i] * aU] ; aU] := atemporary ;
end; end; Bij even i waarden treedt de bijzondere situatie op dat in de laatste geneste loop de coefficient met de index j
=~
twee keer berekend wordt, namelijk bij a}i}
en bij ai~~. Dit is misschien niet zo elegant, maar in een real-time programma, zoals bij deze opdracht, verloopt het twee keer berekenen van een zelfde coefficient sneller dan een test om de extra berekening te omzeilen. Deze programma struetuur wordt in TM5-320 assemblertaal gerealiseerd in het programma moduul FLTRCO. Dit programma moduul zal in een volgend hoofdstuk beschreven worden.
3.6.
FILTER REALISATIE
Ais testoptie gaan we het analyse filter realiseren om te controleren of de berekeningen juist en nauwkeurig uitgevoerd worden. De filter coefficienten a 1 tim ap die hiervoor zijn berekend, worden nu op de samples "losgelaten". Dat zijn die samples waaruit a 1 tim ap zijn berekend. Door nu de samples s"n, beginned bij s "0, een voor een door het filter te schuiven, worden de filter uitgangs samples en bepaald. Na DI A conversie en Low Pass filtering hmnen deze samples m.b.v. een oscilloscoop en een spectrum analyzer gemeten worden. In Pascal vorm zou het uitgangssignaal en van het analyse filter als voIgt gerealiseerd krumen worden : for n := 0 to N-I do begin e := s'[n] ; for k := I to p do e := e + ark] write (e) ; end;
* s'[n-k] ;
Deze programma structuur is in TMS-320 assemblertaal gerealiseerd in het programma moduul FTUIlG. Dit zal in een volgend hoofdstuk beschreven worden.
22.
Richtlijnen voor realisatie
3.7.
WINDOW CONTINUERING
Om zonder onderbreking het signaal Sn te kunnen analyseren, moeten de windows aaneengesloten gekozen worden en moeten voor iedere window identieke bewerkingen uitgevoerd worden. We krijgen in dit geval te maken met parallelle processen, zoals het uitvoeren van de berekeningen en het ondertussen binnenkomen van nieuwe samples van een volgend window. Om dit alles feilloos af te kunnen handelen zal er gebruik moeten worden gemaakt van buffers. Terwijl de processor bezig is met rekenen, kunnen de nieuwe samples tijdelijk in een buffer bewaard worden. Dubbel uitvoeren van deze buffers heeft het voordeel dat de ene buffer volgeschreven kan worden met nieuwe samples terwijl de processor bezig is te rekenen aan de samples van de andere buffer. Ook de filter uitgangs samples en van de test optie kunnen via een buffer verlopen, omdat de berekeningen hiervan sneller verlopen dan dat deze samples in real-time naar buiten uitgevoerd moeten worden. Het uitvoeren van uitgangs samples en kan dan zo geprogtammeerd worden, dat het synchroon verloopt met het binnenkomen van nieuwe samples Sn' Voor de overzichtelijkheid zal het uitlezen van deze uitvoerbuffer moeten beginnen aan het begin van een nieuwe window. Ook hier heeft het dubbel uitvoeren van deze buffers het voordeel dat de processor de ene buffer kan volschrijven, terwijl uit de andere buffer uitgangs samples naar de D/A converter worden gestuurd. De organisatie van de buffers en de communicatie tussen de processor en de buffers zal in een volgend hoofdstuk uitvoeriger worden beschreven.
23.
Systeern configuratie en bediening
4.
CONFIGURATIE EN BEDIENING VAN HET LPC-ANALYSE SYSTEEM
Het systeem waarmee de LPC-analyse bij deze opdracht wordt gerealiseerd, bestaat uit 3 hoofdcomponenten, nl :
EVI1- board
AlB -bot/rei
fig. 4: De configuratie van het LPC-analyse systeem in test opsteUing
Hewlett Packard 64000 ontwikkelsysteem Dit systeem wordt als host computer gebruikt. Op dit ontwikkelsysteem kunnen programma's, in TM5-320 assemblertaal, ge-edit, ge-assembleerd en ge-linked worden. De ge-assembleerde en ge-linkde programma's kunnen met een "upload" actie in het EVM-board geladen worden. Texas Instruments TMS-32010 Evaluation Mcxlule (EVM-board) Dit board fungeert als interface tussen de TMS-32010 processor en de gebruiker (c.q.host computer). Het heeft hiertoe 2 RS-232C communicatie poorten, waaraan een terminal en eventueel een ander unit zoals een computer, modem of printer aangesloten kunnen worden.
24.
Systeem configuratie en bediening
Texas Instruments TMS-32010 Analog Interface Board (Am) Op dit board zijn een AID converter en een DI A converter met bijbehorende anti-aliasing respectievelijk smoothing filters aangebracht. Het board bevat verder RAM geheugen Ie's, adres counters, board control logica en registers, waardoor de communicatie met de buitenwereld vereenvoudigd is.
4.1.
RET HP-64000 ONTWIKKELSYSTEEM . .
4.1.1. De bediening Deze HP computer is zeer geschikt om files in assemblertaal te editen, deze files te vertalen naar de object-eode van de gewenste processor (in ons geval de TMS32010) en dan op ieder gewenst moment de object-eode te "uploaden" naar een ander apparaat (in ons geval het EVM-board, waar het programma geheugen van de TMS-32010 processor is gestationeerd). Het aanzetten van deze computer gaat als voIgt: eerst de disk drive en de printer aanzetten, daarna het master-werkstation (station 1) en als laatste het werkstation 2. Uitzetten gaat in omgekeerde volgorde. Files kunnen via beide stations ge-edit, ge-assembleerd en ge-linked worden. Echter het "uploaden" van de object-eode moet via het tweede werkstation gebeuren, omdat het EVM-board hieraan gekoppeld is. Op deze computer kan een gewenste functie geactiveerd worden door de overeenkomstige soft function key, onder het beeldscherm, in te drukken. Staat de gewenste functie niet op het scherm dan kan men die oproepen door de -EI'Ctoets (uiterst rechts) in te drukken. Is een functie gekozen dan verschijnen onderin het beeld de subfuncties van d,eze functie. 20 kan men met behulp van de soft function keys, menu georienteerd ieder beschikbare functie kiezen. Pas bij het indrukken van de REIVRN toets wordt de functie uitgevoerd. De tekst van de gekozen functies verschijnt onder de statusregel op het
scherm. Alvorens de RElVRN toets in te drukken, kan een gekozen subfunctie ongedaan worden gemaakt door met de cursor toetsen terug te gaan op de regel en dan de tekst van de subfunctie met de spatiebalk uit te wissen. Door met de cursor toetsen terug te gaan op de regel, gaat men eigenlijk terug in het functie-menu. Wil men de gekozen functie in zijn geheel ongedaan maken dan hoeft aIleen maar de ClEAR liNE toets (hoven de cursor toetsen) ingedrukt te worden. In deze situatie keert men weer terug naar het hoofdmenu.
25.
Systeem connguratie en bediening
4.1.2. Files editen Na het aanzetten van de computer moet er eerst ingelogd worden. Dit gaat door eerst de user id soft function key in te drukken en daarna via de alfanumerieke toetsen de identiteit in te typen. De identiteit kan de eigen naam of de naam van het project zijn. Er is wat het inloggen betreft absoluut geen beveiliging op het systeem, zodat onder ieder willekeurige naam ingelogd kan worden. Voor het editen van een file wordt de edit functie gekozen. Met edit inJo : < filenaam > wordt een nieuwe file aangemaakt. Men komt hiermee in de insert mode ( de tekst I insert I in invers video geeft dit aan). Nu kan er tekst ingetypt worden. Een regel tekst kan willekeUrig lang zijn. Echter het verdient aanbeveling dit niet langer te maken dan 132 karakters, in verband met de breedte van de printer. Nog beter is het, de regels niet langer te maken dan 110 karakters omdat bij ge-assembleerde files ook nog de geheugen adressen en de object-codes voor de regels geprint worden. Met een RETURN wordt een regel beeindigd. Na iedere regel tekst wordt er automatisch een blanco regel gegenereerd. In deze mode kan de kursor al1een maar naar links en naar rechts bewogen worden. Het gebruik van de kursor toetsen naar boven of naar beneden heeft tot gevolg dat de regel waarin men bezig is, meegaat. Om uit de insert mode te gaan, moot de insert toets ingedrukt worden. Met de revise functie kunnen er wijzigingen aangebracht worden in de file waaraan men op dat moment aan het werken is. Er kunnen echter geen nieuwe regels tekst toogevoegd worden. In deze mode kan iedere gewenste regel in de file bereikt worden, terwijl dat in de insert mode niet mogelijk was. Met end wordt de file ge-saved. Wil1en we na het inloggen een bestaande file editen, dan kan dit met de functie filenaam >. De rest gaat op dezelfde wijze als hierboven. Bij het editen van een programmafile in TMS-320 assemblertaal mooten we de volgende vier punten in acht nemen : In de eerste regel van de file moot "TMS320" staan, zodat later het assem1bleer programma naar de juiste object-code kan vertalen. 2 De Texas Instruments assembler directive DATA is bij het HP-systeem onbekend. Hiervoor in de plaats moot de bij HP gangbare assembler directive DW (define word) gebruikt worden. Deze assembler directive wordt namelijk gebruikt om constante waarden in het programma geheugen van de TM5-32010 te plaatsen.
edit
3 -
<
Ook de Texas Instruments aanduiding ">" voor hexadecimale getallen is bij het HP-systeem onbekend. Hiervoor moot bij HP achter het hexadecimale getal de letter H toogevoegd worden. Verder moot voor het getal een 0 toegevoegd worden als het getal zelf begint met A, B, C, D, E of F.
26.
Systeem configuratie en bediening
Enkele voorbeelden : TI
>OOBC >A57D 4 -
HP OOBCH OA57DH
Op de laatste regel van de file wordt door het HP-systeem automatisch de tekst END geplaatst. Dit hoeft men daarom niet zelf in het programma op te nemen.
Deze vier punten gelden a11een wanneer het programma ook op het HP-systeem geassembleerd zal worden. Willen we een file aanmaken dat door het EVM-board geassembleerd zal worden, dan moeten de aanwijzingen in Hoofdstuk 4 van het TMS-32010 Evaluation Module User's Guide opgevolgd worden. Verder moeten we er op letten voor de Auxiliary Registers van de TMS-32010 niet de afkortingen ARO resp. ARt te gebruiken, maar hiervoor in de plaats 0 resp. 1. De assembler directive END moet nu weI opgenomen worden in het programma.
4.1.3. Files assembleren en linken Het assembleren van een programma op het HP-systeem gebeurt met het commando: assemble < progr. filenaam > :listtile < listing filenaam >. De file met de naam < progr. filenaam > wordt door de assembler vertaald. Het resultaat met eventuele foutmeldingen gaat naar de file met de naam < listing filenaam >. Beide filenamen kunnen hetzelfde gekozen worden, omdat de extensie van de beide filenamen andel'S is. De programmafile is namelijk de source < filenaam > :source, de vertaalde versie is de listing _ < filenaam > :listing. Ze kunnen elkaar daarom niet overschrijven. Na het assembleren moet de object-eode ge-linkoo worden, zodat de adressen in het programma op de juiste plaatsen in het TMS-32010 programma geheugen geprojecteerd worden. Dit gebeurt met het commando : link < progr. filenaam >. Nu zijn we zover dat we een verbinding kunnen leggen tussen het tweede HP werkstation en het EVM-board.
4.1.4. Koppeling tussen het HP-systeem en het EVM-board Het HP-systeem is via de RS-232C : TO PERIPHERAL poort van zijn tweede werkstation (met zwart/wit beeldscherm) aan het EVM-board gekoppeld. Deze RS-232C verbinding ziet er als voIgt uit : (zie volgende pagina)
27.
Systeern conftguratie en bediening
HP-werksation 2
EVM-board
poort TO PERIPHERAL
poort J1
Transmitted data Received dat a CTS DSR signal GND RLSD DTR
2 3 5
--
2 3 5
'~
~
~
~
6
7
-
6
...
8 20
7
--
8 20
~
TxD RxD CTS DSR GND signal DCD DTR
fig. 5: RS-232C verbinding tussen het EVM-board en het H P-werkstation 2
In het tweede werkstation van het HP-systeem moeten op het seriele 1/0board- enkele dip switches verzet worden om de handshaking met het EVM-board goed te laten verlopen. De dipswitches hebben de volgende instellingen : Schakelblok S4 : bit 1 = 1 (msb) (Isb) bit 2 = I -+ bit 3 - 0 -+ bit 4 = 0 bit 5 = 1 (msb) (Isb) bit 6 - 0 -+ bit 7 = 1 ..... bit 8 = * Schakelblok S5 : -+ bit I "" I (msb) bit 2 = 0 bit 3 = I bit 4 "" I (Isb) bit 5 "" I
2 stop bits odd parity parity disable
7 data bits baud range irrelevant
* 16
RTS High
1 23
it 5 6 '1
e
t 2
a
Baudrate = 9600
" 5
Tenslotte hebben we nog een command file waarmee de juiste protocollen voor het werkstation ingesteld worden. Het HP-systeem voert deze file uit en zet dan het werkstation, vanwaar deze file is aangeroepen, in de terminal mode. De command file met de naam TERM bevat de volgende commando's : commando terminal yes no no "L F " 04H
-+ -+ -+ -+ -+ -+
betekenis terminal mode auto linefeed geen local echo niet wachten op echo tijdens het uploaden Download start sequence "einde source file" karakter
28.
Systeem configuratie en bediening
T_hex no 16 16
XON- XOFF DOH llH 13H 0
--
-----
Binaire ules versturen in TektroniX formaat geen prompt sequence processor databus breedte (bits) kleinste adresseerbare eenheid (bits) XON-XOFF protocol tijdens terminal mode upload prompt karakter XON karakter XOFF karakter delay tijd na XOFF, tijdens download
Door het intikken van de naam van de command ule ( = TERM) gaat het HPwerkstation over in terminal mode. Als het EVM-board ingeschakeld en ge-reset is, kan dit board met het HP-werkstation communireren. Vanaf dit moment gedraagt het HP-werkstation zich als een losse terminal die aan het EVM-board is gekoppeld. Echter met dit verschil dat we op ieder gewenst ogenblik functies kunnen aanroepen op het HP-systeem, met behulp van de functie toetsen !. Ook is het mogelijk de verbinding naar het EVM-board tijdelijk stil te leggen door uit de terminal mode. te gaan (met de end functie toets). Het is dan via hetzelfde werkstation mogelijk op het HP-systeem iets te doen, bijv. een ule editen. Door daarna TERM in te typen gaat het werkstation weer over in terminal mode en wordt de verbinding naar het EVM-board opgepakt vanaf de plaats waar het stilgelegd was. Dit soort handelingen verstoort noch de werking van het HP-systeem noch die van het EVM-board. Het HP-systeem kan eigenlijk beschouwd worden als ~n "locale computer" en het EVM-board als een "remote computer" waartussen men op het werkstation om en om schakelt door in en uit de terminal mode te gaan. Als er voor het eerst verbinding is gemaakt naar het EVM-board, dan moet op dit board ook het Tektronix formaat ingesteld worden om een object-eode ule vanuit het HP-systeem te kunnen "uploaden". Het instellen van het EVM-board en het "uploaden" van een object-code ule wordt in een volgend paragraaf beschreven.
4.2.
HET EVM-BOARD
4.2.1. De functie en de configuratie van het EVM-board Het TMS-320l0 EVM-board is een single board ontwikkelsysteem voor de TMS-320 10 digital signal processor. Het board kan als stand alone ontwikkelsysteem gebruikt worden. Het heeft een tekst editor om TMS-320l0 assemblertaal programma's via een terminal in te voeren. Een cassette rerorder interface maakt het mogelijk assemblertaal programma's op cassette op te slaan.
29.
Systeem configuratie en bcdiening
Omdat wij het HP-systeem gebruiken voor het editen en opslaan van programma's, worden de genoemde edit-faciliteiten van het EVM-board door ons niet benut. Het EVM-board heeft verder twee RS-232C poorten (poor-t lIen poon 12). Deze poorten kunnen gebruikt worden voor communicatie met terminals, printers en andere computers. Wij gebruiken poort 11 voor de communicatie met het HPwerkstation. De aansluitingen hiervan zijn in de vorige paragraaf gegeven. Na power-up en reset van het EVM-board wordt de baudrate van poort Jl automatisch ingesteld als vanaf de terminal (HP-werkstation in terminal mode) een carriage return
wordt gegeven. Het HP-werkstation is in ons geval op 9600 Baud ingesteld.
De baudrate van poort J2 wordt na het resetten default op 9600 Baud gezet. De baudrates van beide poorten zijn eventueel te wijzigen met behulp van de commando's BAUDl en BAUD2. Het EVM-board ondersteunt baudrates van 100, 300, 600, 1200, 2400, 4800, %00 en 19200 Baud. Via de aansluiting met poort Jl kunnen we vanaf het HP-werkstation niet aIleen commando's geven aan het EVM-board, maar ook direct TM5-320l0 .objectcode laden vanuit het HP-systeem (zie volgende paragraaf). Deze object-code wordt in een 4k X 16 bit RAM geheugen opgeslagen. Dit is ook het maximale adresbereik van de TMS-32010 processor. De TM5-320l0 processor bevindt zich op het EVM-board. Een 40-pins emulatiekabel met target socket verbindt de processor met het Analog Interface Board (AlB). Op het EVM-board is verder ook een 20 MHz klokdcuit aanweZig om de TMS-320 10 processor van een kloksignaal te voorZien. Ondanks het feit dat dit circuit de "INTERNAL CLOCK" wordt genoemd, kan het ook als "EJiTERNAL CLOCAA< dienst doen. Het is namelijk zo dat na het resetten de EVM-frrmware voor de "CLOCK SOURCE' INTERNAL kiest. Door deze keuze worden echter de INTerrupt en BIO signalen, afkomstig van het AlB-board, geblokkeerd. am nu te bereiken dat deze signalen niet geblokkeerd worden, moeten we met het INIT commando CLOCK SOURCE = EXTERNAL kiezen. am het klokcircuit ook als EXTERNAL CLOCK SOURCE te kunnen gebruiken, brengen we bij connector 16 (op het EVM-board) een jumper aan tussen de contacten 2 en 3. (In paragraaf 9.8 van de EVM User's Guide wordt nog een beschrijving gegeven over de stand van de dip switches op de target socket. In onze situatie zijn de standen van de dip switches irrelevant voor de werking van het klokcircuit.) Het EVM-board wordt door een voedingsunit gevoed met GND, + 5V, - l2V en + 12V. Een tweede kabel vanaf het EVM-board naar het AlB-board verzorgt het AlB-board van dezelfde voedingsspanningen.
30.
Systeem configuratie en bediening
4.2.2. De bediening van het EVM-board Als het HP-werkstation nog niet in de terminal mode staat, gaat het in de terminal mode over door het intypen van de naam van de terminal-command-frle (in ons geval is dit : TERM). Daarna schakelen we de voeding van het EVM-board in. Het board voert nu automatisch een "koude" reset uit. Om de automatische baudrate instelling van poort J 1 op te starten, moeten we met de hand nog een "warme" reset geven. Dit kan met de reset switch in de rechter bovenhoek van het board (naast de voedingskabel connector). Een carriage return < CR> vanaf het HP-werkstation laat nu het start menu van het EVM-board op het scherm verschijnen. Hoe we een object-code frle vanuit het HP-systeem kunnen laden en de TMS32010 processor met deze code kunnen laten runnen, zien we in de tabel hieronder : (Eerst een korte uitleg over de opzet van de tekst : De eerste kolom geeft de volgorde van de commando's aan. In de tweede kolom zijn de schuin gedrulae en de vet gedrukte stukken tekst datgene wat men zelf intypt. De schuin gedrulae tekst heeft betrekking op de soft function keys en de vet gedrukte tekst heeft betrekking op de alfa-numerieke toetsen. De resterende tekst wordt door ofwel het EVMboard ofwel het HP-systeem geproduceerd, afhankelijk van het geval voor welk apparaat het commando bestemd was. In de derde kolom wordt aangegeven naar welk apparaat het commando gaat. En in de vierde kolom wordt uitleg gegeven over de betekenis van het commando. Verder betekenen en <SP> respectievelijk carriage return en spatie.) Volg-
Tekst op scherm
orde
+ commando's
Uitleg
Bestemming
1:
? ACK
EVM
Tektronix protocol instellen om
2:
? INIT
EVM
object-code files te laden. Hiermee wordt het INTerrupt signaal de TMS-32010 processor. Object-code file laden via poort J 1
CLOCK SOURCE = INTERNAL E
vanuit het AlB-board doorgegeven naar
3:
? LPM 1 OLPM 1
EVM
4:
upload < ge-assem bleerde
HP
& ge-linkde filenaam> :absolute
Laad object-code file naar EVM-board (duurt ongeveer 2 minuten)
uploading < filenaam> :absolute ,record - - 1 uploading < filenaam> :absolute ,record - - 2 etc. Terminal mode
5:
ABORT
HP
HP-werkstation terug naar
terminal mode Mogelijkheid 1 : Breakpoints zetten en het programma single steppen.
6:
? SB < CR >
EVM
Breakpoints utten op de gewenste
BRI = XXX > hex.dec. adres <SP>
plaatsen (EVM handleiding
BR2 = XXX > hex.dec. adres < SP >
raadplegen voor niet toegestane breakpoint plaatsen). Het > teken
31.
Sys1eem configura1ie en bediening
gebruiken voor bexadecimale getallen. etc.
7:
> hex.dec. adres < CR >
? EX 1
(+ teken voor decimale getallen).
EVM
8:
? SS 1 (SS)
Runnen van het programma met breakpoints. Display mode = 1.
BREAKPOINT HALT AT PC = ..... E\/M
<SP> <SP>
Single steppen van het programma. Display mode = 1.
Mogelijkheid 2 : Programma runnen zander breakpoints.
6:
? RUN
EVM
Runnen van het programma zander breakpoints te zetten.
Om na het RUN commando de executie van het programma te kunnen stoppen, moeten we het EVM-board met de hand resetten. Het komt weI eens voor dat het EVM-board niet reageert op commando's zoals EX , SS , en RUN. Dan is het noodzakelijk eerst met de hand een "warme" reset en daarna met het RESET commando een "koude" reset te geven. Na deze actie moeten de stappen 1, 2 en 6 (evt. ook 7 en 8) herhaald worden. Na een reset op deze wijze is het programma meestal nog intact, zodat een upload niet nodig is. Met het DPM (Display Program Memory) commando kan het programma geheugen van de TMS-320 10 processor bekeken worden. Met het MPM (Modify Program Memory) commando kan dit programma geheugen stap voor stap bekeken en eventueel gewijZigd worden. Met het MDM (Modify Data Memory) commando kan het interne data geheugen van de TMS-3201 0 processor stap voor stap bekeken en ook eventueel gewijZigd worden. Uitvoerige beschrijvingen van deze commando's zijn te vinden in het EVM-board User's Guide.
4.3.
RET ANALOG INTERFACE BOARD
4.3.1. Functionele beschrijving van het board Het TMS-320l0 Analog Interface Board verzorgt de AID en DI A conversie functies voor de TM5-320l0 processor. Dit board maakt het mogelijk applicatie programma's met analoge lIO te testen door dit board aan de processor te koppelen. Het board bestaat uit de volgende functionele delen : l2-bit AID converter met sample & hold. (AD AOC80 en LF398) l2-bit DI A converter. (AD 565A) Een l6-bit output poort voor een extra DI A converter of een andere output functie.
32.
Systeem confJguratie en bediening
Een l6-bit input poort voor een extra AID converter of een andere input functie. Twee laagdoorlaat filters. Audio versterker. (LM306) TBLW (Table Write) decodering. Extern 1/0 data geheugen (extended memory). Sample Rate klok circuit. Control register. Status register. Een blokschema van het board is in het volgende figuur weergegeven.
T"S328
-
-
1....0 DECODE
.-
I TlL.L! DECODE
~
EXPANSION ~1 6 lIT OUTPUT 0 UTPUT PORT
ADDRESS
~'"" ~
TAR&ET SOCKET
EXTENDED _ E XPANSION CONNECTOR "E"ORY
DATA
ANAL.06 OUTPUT
I--A UDIO OUTPUT ~-2 8 YP-P OUTPUT
"""
DATA IUS BurrER
_1 6 lIT ~~ ~
•
CONTROL. RE&ISTER
~~ ~
..
STATUS RE&ISTER
fIg.6: Blokscherna van
EXPANSION ~I NPUT PORT INPUT
..
~
....
ANAL.O& INPUT
SA"PL.E RATE CLOCK
....
28 YP-P INPUT
-I--
-
het TMS-3201O AlB-board.
De sample rate klok op het board wordt aangestuurd door het CLKOUT signaal van de processor (= 5 MHz). Dit klok circuit kan, met een OUT instructie naar poort 1, geprogrammeerd worden om de AID en de DI A converters periodiek een conversie uit te laten voeren. Het bereik van de sample rate klok ligt tussen 76,29 Hz en 5 MHz. 33.
Systeem configura tie en bediening
Een van de laagdoorlaat filters op het board is een anti-aliasing filter, aan de ingang van de AID converter. Het is een zesde orde Butterworth type filter. Het andere filter is een smoothing filter aan de uitgang van de DI A converter. Ook dit is een zesde orde Butterworth type filter. De afsnijfrequentie van beide filters is vanaf de fabriek op 4,7 kHz ingesteld. Deze afsnijfrequenties kunnen desgewenst gewijzigd worden door sommige componenten van de filters te wijzigen. Aanwijzingen hiervoor staan in het TMS-32010 AlB User's Guide. De AID converter, Sample & Hold en DI A converter specificaties zijn hier onder weergegeven. AID converter (Analog Devices AOCBO)
Resolutie 12 bits Analoge Ingang -10 V tot + 10 V Digitale Uitgang 16 bit two's complement (Q15 formaat) Conversie tijd 25 J.LS (maximum) Sample & Hold (LF398) Acquisitie tijd tot 0,1% 4 J.LS (A Your = 10V ) Uitgangs verval snelheid 0,3 V Is (25° C ) Houd stap 10 mV (25°C) D/A converter (Analog Devices 565A) Reso1utie 12 bits Digitale Ingang 16 bit two's complement (Q15 formaat) Ana10ge Uitgang -10 V tot +10 V Stabilisatie tijd 250 ns (maximum) Zowel bij de AID converter als bij de DI A converter komen de 12 data bits overeen met de meest significante 12 bits van de 16-bits data bus. Het Q15 formaat bij 16-bits data houdt in dat het woord 1 tekenbit en 15 fractiebits heeft. De waarde die hiermee weergegeven kan worden ligt tussen +0,999%94824 en -1. Dus bij de converters komt een analoge waarde van -10 V overeen met de digitale waarde -1. Voor audio toepassingen kan aan de uitgang van de audio versterker een 8 IUidspreker aangesloten worden.
n
Voor het externe I/O geheugen zijn op het board twee IC-voetjes (U48 en U58) aanwezig voor twee 8kx8 RAM Ie's (samen 8k-woorden). Deze geheugen Ie's worden met I/O instructies geadresseerd. De adressering gebeurt via het automatische adresserings circuit. In totaal kan er 64k-woorden (64kX 16-bits) geheugen geadresseerd worden. Hiervan kunnen er 8k op het board zelf geinstalleerd worden. De resterende 56k kunnen via de expansie connector aangesloten worden.
4.3.2. Bediening van bet Analog Interface Board Dit board is via een 40-pins emulatiekabel aan het EVM-board gekoppeld. De +5V, +12V, -12V en GND voedingsspanningen krijgt het AlB ook van het EVMboard.
34.
Systeem configuratie en bediening
AlB -bocU·J P(
flg.7:
~P2
De verbindingen tussen het E\lM-board en het AlB-board.
Door middel van jumpers kunnen er verbindingen gemaakt worden tussen sommige functionele delen op het AlB-board. Voor onze toepassing zijn de volgende verbindingen gemaakt : JUMPER El : E2 :
VERBINDING 1-2 3-4 1-2 3-4
E3 : E4 :
XXX XXX
E5 :
2-3
E6 :
1-2
FUNCfIE Analoge ingangs jackplug (J2) aan anti-aliasing filter. Anti-aliasing filter aan AID converter. Smoothing filter aan uigangs jackplug (3). DIA converter aan smoothing filter.
N.C. N.C. "EINDE CONVERSIE" signaal van AID converter aan INT-pin van TMS-32010 emulator socket. Sample & Hold aan AID converter ingang.
Tussen de TMS-320l0 processor en het AlB-board vindt data overdarcht plaats met q.e IN en OUT instructies. Met iedere IN en OUT instructie is een drie bits poort adres geassocieerd. Zie hieronder : fOORT ADRES INPUT FUNCfIE OLrrPUT FUNCfIE I 0 Lees AID status register Laad AlB control register I 1 n.v.t. Laad Sample Rate klok 2 Lees data van AID converter Schrijf data naar DI A converter Lees expansie poort data Schrijf data naar expansie poort 3 I 4 Lees extended memory adres Laad extended memory adres I 5 Lees data uit extended memory Schrijf data naar extended memoryl I I 6 n.v.t. n.v.t. I I 7 n.v.t. n.v.t. II
In grote lijnen is de bediening van het board vanuit de TMS-320l0 als voIgt: lnitialisatie - Sample Rate klok laden - Control register laden (met o.a. enable sample klok,
35.
Systeem configuratie en bediening
initialiseer AID en DI A converter en extendtrl memory) Programma run - lees AID converter data (sample waarde) - schrijf (sample waarde) naar extended memory - lees uit extendtrl memory (een andere waarde) - schrijf (een andere waarde) naar DI A converter Deze acties worden door de processor uitgevoerd. De ingang van de AID converter en de uitgang van de DI A converter worden op het ritme van de sample klok geactiveerd.
4.3.3. Sample Rate Klok De sample rate klok bestaat uit een programmeerbare divide-by-N teller. Het CLKOUT signaal van de TMS-32010 processor wordt als bronsignaal gebruikt voor de teller. De uitgang van deze teller verzorgt zowel de CONVERSIE START pulsen naar de AID converter als ook andere pulsen om data naar de DI A converter te leiden. De uitgangsfrequentie wordt als voIgt bepaald : Fsampkrau
=
F dkouJ
N+l 5-10 6 500
= --=
am een sample frequentie van 10 kHz te krijgen, moeten we dus N = 499 in de teller laden. Dit doen we door met een OUT instructie vanuit de processor de waarde 499 naar poort I te sturen. De teller begint pas te werken als in het Control Register het Clock Inhibit bit (bit 0) op 0 wordt gezet. Dit gaat door de juiste control bits vanuit het interne RAM geheugen van de processor met een our instructie naar poort 0 te sturen (Zie vo1gend paragraaf). We gebruiken 10 kHz a1s sample frequentie omdat de filters op 4,7 kHz zijn ingeste1d. Want vo1gens het Nyquist criterium moet de sample frequentie minstens twee keer zo hoog zijn als de hoogste frequentie van het ingangssignaal.
4.3.4. AlB Control Register Dit Control Register wordt vanuit de processor ge1aden om de mode van het AlB-board te definieren. Een gewenste mode kan gekozen worden door met een OUT instructie het juiste bitpatroon naar poort 0 te sturen. Ben uitgebreide omschrijving van het bitpatroon is in par. 3.2 van de AlB User's Guide gegeven. In ons geva1 is het vo1gende bitpatroon gekozen : 15 IX
X
X
X
X
X
X
876543210 X I-O--0-0--X-1--X-O--1/-01
36.
5ysteem conflguratie en bediening
Deze bits hebben de volgende betekenis : BIT NR.
WAARDE
FUNCfIE
1
tijdens initialisatie : disable sample klok aan het eind van de initialisatie : enable sample klok sample delay mode voor DI A converter don't care automatic receive mode voor AID converter don't care extended memory adres counter telt omlaag memory adres counter telt bij memory data read memory adres counter telt bij memory data write don't care
o
o o
1 2 3
X 1 X
4
7
o o o
8 tim 15
X
5 6
4.3.5. Data acquisitie mogelijkheden Het AlB-board heeft verscheidene data acquisitie modes. Van deze modes maken we bij onze toepassing gebruik van de "Automatic Receive Mode" voor de AID converter en de "Sample Delay Mode" voor de DI A converter. De automatic receive mode (AID converter), zie &g. 8 O,L ""s St.,,.t Co"vtr~fl
(Suffle clock)
E/lIrlt ctJlIvt!'$lt (tNT)
rMS-3'-tJ/c
Jill fa
fJil
IM51-
,I
-1J _
# I.tc/' ---+t
fig. 8: AID converter automatic receive mode timing
Na het laden van de Sample Rate klok en na initialisatie van het Control Register zal in deze mode de AID converter automatisch samples converteren op het ritme van de sample klok. Aan het eind van ieder conversieslag wordt de geconverteerde data in een 16-bits latch gebufferd. Ook wordt er met het "EINDE CONVERSIE' signaal een INTerrupt gegeven aan de TMS-32010 processor. Als reactie op dit interrupt signaal, leest de processor de waarde die in de latch gebufferd is (poort 2, IN instructie). Bij een volgende puIs van de sample klok zal de AID converter een volgende sample converteren. Het lezen van de waarde uit de 37.
Systeem configuTatie en bediening
AID converter is essentieel. Hiermee wordt de INT-lijn ge-reset. Dus ook al moet er een dummy leesopdracht uitgevoerd worden, na een interrupt moet de data uit de AID converter gelezen worden om de INT-lijn te resetten !!. De sample delay mode CDIA converter), zie fig. 9 O,J
Sfet,.1
C"nII''''''
( .5It~/t CI.Ck
)
7/115-3'-0(0 Jd,,.j/f nt1*,. pN1INI;rl
[.h1t
2>lA
llitjtiinJ p,.,..,ire
t «tel, .
"'$
----,------------,----\
_'=.-+
~ ...-.1 l...-
.r----
\
ltr-f ----:
-' \-----
fig. 9: DIA converter sample delay mode timing
Deze mode is gekozen om de periodidteit te waarborgen tussen de nIter uitgangs~amples (bij de testoptie). De werking is als voIgt: De ingang van de DI A converter is dubbel gebufferd, met twee 16-bits latches. De processor schrijft een waarde in de primaire latch (poort 2, OUT instructie). Bij de eerstvolgende "START CONVERSIE' puIs vanuit de sample klok wordt deze waarde overgenomen door de secundaire latch en doorgegeven naar de DI A converter. De DI A converter converteert dus op het ritme van de sample klok. Extended memory circuit Het AlB-board is uitgerust met IC-voetjes voor 8k woorden (16-bits) extended data geheugen. In deze voetjes hebben wij TC5565P-15 RAM Ie's geinstalleerd (voetjes U48 en U58). Het geheugen is uit te breiden tot 64k 'woorden via connector P2. Data overdracht tussen de processor en dit geheugen vindt plaats door middel van IN en OUT instructies. In dit data geheugen circuit is ook een adres teller opgenomen. Deze teller zorgt voor het geheugenadres als de processor een geheugen read of write doet. Deze teller wordt in onze toepassing in de auto-decrement mode gebruikt. Bij initialisatie wordt de teller met een startwaarde geladen. Na iedere geheugen access (read of write) wordt de teller automatisch verlaagd. Wanneer bijvoorbeeld een deel van dit geheugen geheel volgeschreven of uitgelezen moet worden, dan is het voldoende het beginadres van de te gebruiken geheugendeel in de teller te laden. Daarna wijst de teller automatisch naar het juiste adres als er een read of write actie wordt uitgevoerd. De auto-decrement mode voor de teller wordt gekozen door het bitpatroon (bit 7, bit 6, bit 5) 000 in het Control Register te laden (poort 0). De startwaarde
38.
Systeern configuratie en bediening
van de teller wordt met een OUT instructie via poort 4 geladen. Ook kan via deze poort met een IN instructie de tellerwaarde terug gelezen worden. Tenslotte kan met een OUT naar poort 5 data in het geheugen geschreven worden en met een IN via poort 5 data van het geheugen gelezen worden Cautomatische adrES aanpassing). Dit externe data geheugen gebruiken we om de ingelezen samplewaarden en de berekende errorwaarden tijdelijk te bufferen. In paragraaf 5.4 wordt het gebruik van deze buffers gedetailleerder beschreven.
39.
Organisatie assemblertaal programma
5.
5.1.
DE ORGANISATIE VAN HET ASSEMBLERTAAL PROGRAMMA
RET PROGRAMMA IN GROTE LIJNEN De in hoofdstuk 3 beschreven programma structuur voor real-time LPC-
analyse is in TMS-32010 assemblertaal gerealiseerd. Dit programma bestaat uit 2 afzonderlijke delen, namelijk het hoofdprogramma en de interrupt routine. Het hoofdprogramma is modulair opgebouwd (zie volgend ftguur). Dit heeft het voordeel dat ten eerste de werking van de verschillende modules afzonderlijk getest kan worden en ten tweede achteraf uitbreidingen en verbeteringen eenvoudig geimplementeerd kunnen worden. De modules waaruit het hoofdprogramma is opgebouwd zijn de volgende: START (Zie voor gedetaiUeerde beschrijving van dit moduul par. 6.]) Dit is het INITIUSATIE moduul. In dit moduul worden de noodzi,l.kelijke constanten in het interne data geheugen van de processor geladen. Verder wordt bij het Analog Interface Board de Sample Rate klok en de mode van het board ingesteld. Zodra de sampIe rate klok ge-enabled wordt, zal de AID converter op het ritme van deze klok samples van de analoge ingang converteren en deze waarden op interrupt basis aan de processor doorgeven. W ACHT (Zie voor gedetaiUeerde beschrijving van die moduul par. 6.2) In dit moduul staat de processor freewheelend te wachten totdat alle samples van de hUidige window in een van de inleesbuffers opgezameld zijn. Gedurende heel de eerste Window staat de processor hier te wachten. Bij de volgende Windows komt de processor in dit moduul terecht wanneer het de berekeningen van de vorige window heeft afgerond. De processor is ongeveer op de helft van de huidige Window klaar met de berekeningen van de vorige window. Goourende de resterende tijd tot het einde van de huidige window wacht de processor in dit moduul totdat alle samples van de huidige window opgezameld zijn. Want de berekeningen aan de huidige Window kunnen pas uitgevoerd worden als alle samples hiervan binnen zijn.
","
-.
40.
Organisatie assemblertaal programma
Rol1l/nes
START
Ir I. I. J.n/'rletll.5e1 .,.Ie • I.
'T
I
Va' n
- Lee':l s"u'JP/e ,." Vlt" AID con v. (nll.r ill/us.
zeit en AlB -boarcl
7115-32010
otAffrr)
- 5cIJlj'! e"'''''f' .s.u,P,k
vltn u/fIlDfrk"lfer nit.,
:PIA
..
lIti1n
#
"1tW1J'./'~ IItIln h"/"l;e w/ntlDW.
1I1/e
I
'3Q»1;>Ie$ Van
Ne~
CD~IV.
- :Bo,kj,pU'/ln.J
nUi"''tJ e WIA6w ell iYJlelezM? l-a
S~PL .At V -Sw/te/, bllll~r.s
PELEN
-I<0/J/hr lngelezen sa"'fJles netttr /"ler)J~
R4/11
van TN5 -32010
MATRIX }3>e1"e/a'n .!Jenormf~,.ele
met Ir/x ro
FL.T,fco
I/n,
elemenlen rio
..
8erel<en reJlec'h'e cd;': K, ~ k,,, ,/tiler Cd/. Cl1 ~ en re~lt!n er.1t'e £>()
"'0
,crvlrtT
11,
I
ITELLtRI
I
fig. 10 : Blokschem.a van her real-time LPC-analyse programma
41.
Organisatie assem blertaal programma
SMPLMV (Zie voor gedetaiUeerde beschrijving van dit moduul par. 6.3) Dit is het moduul waarmee de opgezamelde samples van een inleesbuffer (in externe data geheugen) naar het interne data geheugen van de processor gehaald worden (SAMPLE MOVE). Voordat de samples binnengehaald worden, wordt eerst gecontroleerd in welk buffer de samples staan. Dan wordt omgeschakeld naar de andere lege inleesbuffer en de volle uitvoerbuffer zodat tijdens interrupts deze buffers als actieve buffers gebruikt kunnen worden (de timing van deze buffers zal in een volgend paragraaf beschreven worden). Daarna worden de opgezamelde samples uit de nu inactief geworden inleesbuffer naar het interne RAM geheugen van de processor gelezen. MATRIX (Zie voor gedetaiUeerde beschrijving van dit moduul par. 6.4) In dit moduul worden de genormeerde autocorrelatie matrix elementen r (0) tim r (p) berekend. Allereerst wordt R (0) berekend. Om tijdens het delen overflow problemen te voorkomen, wordt voor het normeren R (0) + 2- 24 gebruikt. Ieder berekende R (i) wordt dan op dit getal genormeerd. Als resultaat krijgen we dan rcO) tim r (p). In het maximale geval is p = 10. De elementen R (0) tim R (p) worden in 32 bit uitgerekend. De genonneerde r (0) tim r (p) worden in 16 bit weergegeven. Dit formaat is gemakkelijker te hanteren bij de vervolg berekeningen. FLTRCO (Zie voor gedetaiUeerde beschrijving van dit moduul par. 6.5) In dit moduul worden de analyse filter coefficj(~nten a 1 tim ap ' de reflectie coefficj(~nten k 1 tim k p en de rest energie Ep berekend. a 0 wordt 1 gesteld. a fl), k 1 en E 1 worden direct uit r (1) en r (0) berekend. De resterende coefficienten worden, met behulp van de Levinson/Durbin methode, recursief berekend. FTUITG
DELEN
(Zie voor gedetail1eerde beschrijving van dit moduul par. 6.6) In dit moduul wordt het analyse filter gerealiseerd. De zojuist berekende coefficienten worden in het filter ingevuld. De samples van de window, waaruit de coefficienten zijn bepaald, worden door het filter gestuurd. In een versneld tempo, als het ware in een burst mode, worden dan de error samples en voor deze window bepaald en in het niet actieve uitvoerbu1!er geschreven. Vana! het begin van een volgende window zuUen dan en waarden uit deze bu1!er op de juiste tijdstippen uitgelezen en naar de DIA converter gestuurd worden. De laatste p sample waarden die nog in het fll1er aanwezig zijn, worden naar fll1erbu1!er 1 weggeschreven, zodat ze bij de volgende filter realisatie weer gebruikt kunnen worden. De berekeningen voor de vorige window zijn nu afgerond. Nadat er een paar registers in de processor op de juiste waarden zijn gezet, kan de processor naar het moduul WACHT om het einde van de huidige window af te wachten. Dan beginnen de berekeningen voor deze window. (Zie voor gedetaiUeerde beschrijving van dit moduul par. 6.8) Dit is een dee1routine dat in het hoofdprogramma in het moduul FLTRCO wordt gebruikt. Het wordt gebruikt om de waarde van de refiectie coefficienten te berekenen. In deze routine worden twee 16-bits getallen (fixed-point) op elkaar gedeeld, onder de voorwaarde 42.
Organisatie assemblertaal programma
I teller I
<
I rwemer I.
Dit is ook het geval bij deze berekeningen. Het resultaat van de deling is ook 16-bits, -+ 1 tekenbit en 15 signincante bits. DEEL32
(Zie voor gedetailleerde beschrijving van dit moduul par. 6.9)
Dit is ook een deelroutine die echter in het moduul MATRIX wordt gebruikt. Het is een 32-bits, nxed-point, deelroutine met ook de voorwaarde I teller I < I rwemer I. Bij R (0) tim R (p) komt het vooral bij kleine signalen voor dat de signincante bits in de onderste 16 bits van de 32-bits accumulc.tor zitten. Bij gebruik van het 16-bits deelroutine verliezen we aIle signincante bits tijdens het normeren zodat er een verkeerd resultaat berekend wordt. Daarom is deze routine geschreven om aIle 32-bits van R (0) tim R (p) te gebruiken tijdens het normeren. De resuItaten r (0) tim r (p ) zijn 16-bits.
5.2.
INTERRUPT AFHANDELING (Zie voor gedetaiUeerde beschrijving van dit moduul par. 6.7)
Wanneer de processor in het hoofdprogramma bezig is, komen er nieuwe sampIes van de huidige window binnen en moeten er ook en samples van de vorige window naar buiten uitgevoerd worden. De afhandeling van deze acties wordt in de interrupt routine verzorgd. Iedere keer als de AID converter een sample heeft geconverteerd, geeft het via zijn EINDE CONVERSIE signaal een interrupt aan de processor. Hierop verlaat de processor tijdelijk het hoofdprogramma en gaat naar de interrupt routine INTSR. Na het "saven" van de meeste registers wordt de' 16-bits sample waarde uit de AID converter gelezen. Met deze lee;actie wordt de INT-lijn automatisch ge-reset. Van deze waarde worden de minst signincante 3 bits (aIle drie 0) eerst verwijderd, zodat er een resultaat in Ql2-formaat ( < 1 ) ontstaat. Dit wordt gedaan om overflow te voorkomen bij de berekeningen van R (0) tim R (p). Na eerst het juiste bufferadres in de externe adres counter geladen te hebben, wordt deze Ql2-formaat waarde in de actieve inleesbuffer geplaatst. Actief wil hier zeggen : die buffer waarin de AID geconverteerde samplewaarden geplaatst worden. Ondanks dat de externe adres counter in de auto-decrement mode staat worden de juiste buffer adressen in de interrupt routine bijgehouden, omdat er naar verschillende buffers een access wordt uitgevoerd. Nu moet er nog een en sample waarde naar de DI A converter gestuurd worden. Hiermee wordt bereikt dat het inlezen van nieuwe samples en het uitvoeren van errorsamples synchroon verloopt. De juiste waarde wordt uit de actieve uitvoerbuffer gehaald en naar de DI A converter gestuurd. Actief wil hier zeggen : die buffer waaruit de errorsamples gelezen worden om naar de DI A converter te sturen. Dit gebeurt in 16-bits two's complement Q15 formaat. Na het herstellen van de register waarden is de interrupt routine afgerond en kan de processor het hoofdprogramma vervolgen vanaf de plaats wa'ar het onderbroken was.
43.
Organisatie assem blertaal programma
5.3.
INTERNE GEHEUGEN INDELING VAN DE PROCESSOR
Het interne data geheugen van de TMS-32010 processor bestaat uit 144 woorden van 16-bits. Deze geheugen plaatsen zijn verdeeld over 2 pagina's. Pagina 0 (data-page 0) bevat de geheugen plaatsen 0 tim 127 en pagina 1 (data-page 1) de geheugen p1aatsen 128 tim 143. Bij dit LPC-analyse programma wordt pagina 1 gebruikt tijdens de modules START, WACHT en SMPLMV en tijdens de interrupt routine INTSR. Pagina 0 wordt gedurende de rest van het hoofdprogramma gebruikt. De benamingen van de geheugen p1aatsen in data-page 0 zijn in nguur 11 weergegeven. Voor de samples van ren window zijn, in data-page 0, 80 geheugen p1aatsen gereserveerd. Dit komt overeen met een windowduur van 8 ms, bij een sample frequentie van 10 kHz. Voor de autocorre1atie matrix e1ementen zijn er 11 geheugen p1aatsen gereserveerd, voor rCO) tim r (to). Er kunnen dan ook maximaa1 10 nIter coefficienten en 10 reflectie coefficienten berekend worden. Voor deze coefficienten zijn daarom in totaal 20 geheugen p1aatsen gereserveerd. De resterende geheugen p1aatsen worden voor andere vaIiabe1en gebruikt. Het beperkte interne geheugen van de processor is de beperkende factor voor de grootte van de window en het aanta1 coeffidenten. De benamingen van de geheugen p1aatsen in data-page 1 zijn in nguur 12 weergegeven. Deze geheugen p1aatsen hebben de vo1gende functies : Data-page 0 SMPLO, SMPL1 en SMPL79 Geheugen p1aatsen [79] tim [00]. In de geheugen p1aatsen SMPLO tim SMPL79 komen de sampIes van een window te staan. Beha1ve de genoemde drie geheugen p1aatsen hebben de andere tussenliggende geheugen p1aatsen geen label. AUCORO, AUCOR1 en ACOR10 Geheugen p1aatsen [90] tim [80]. In deze geheugen p1aatsen komen de genormeerde autocorre1atie matrix e1ementen r (0) tim max. r (10) te staan. Beha1ve deze dIie hebben de andere tussenliggende geheugen p1aatsen geen label. Deze geheugen p1aatsen worden in de modules MATRIX en FLTRCO gebruikt. SMIN 10 en SMINO1 Geheugen p1aatsen [89] tim [80]. In deze geheugen p1aatsen kunnen maximaa1 de laatste 10 samples van een voIige window gep1aatst worden (moduu1 FrUITG). Er ontstaat geen conflict met de matrix e1ementen omdat de matrix elementen in het moduul FrUrrG en daarna met nodig zijn. Aan het einde van moduu1 FTUITG worden SMINp tim SMIN01 ge-saved in n1terbuffer 1 (externe RAM). Deze kunnen dan bij een vo1gende window gebruikt worden. REFCO 1 en REFC 10 Geheugen plaatsen [100] tim [91]. Hierin komen de reflectie coefficienten k 1 tim k p te staan. p kan maximaal 10 zijn.
44.
Organisatie assemblertaal programma
l1ex, m 'Dec, A
c:I;es
KLA'D¢
>7F
f2J
>IF
(26
I. if..;, . ,.: tit'.!, ~ ,.411111 'e
>7D
125
I. fI'.!.
>7C
(20/
>iZB
/23
>7A
11.2
>79
12!
>78
{2..0
"Jr'$
s""'r'k s..
5/1PADR
>77
(/9
Jtl7l!sle -1"'fI- U>u"ter
II~TCNT
>76
118
>75
1/7
-Ie let" "III" f liD Iii';' "
Tt1P5(;.!V
>7"
(/6
Ie;;',. ~j I~ -J,.'IJ /,i"
TELLER
>73
1/5
"~h?tr ".j' 16-I.-'I.s /'t7~J
No£I1£R
>72
1/4
>7J
113
ct{ge""M kl./,.ui",!e
j/"'''Jsre /6 J.,-h 11« I,t Iii b 32-, I. s .14, b'
'11$
ik/J1'1/1'"1e//7t:.k/6."~';"" It>. ,,.hr' .32-lJilS r/,/'.",
KLAD2/r£LLO
Ic I./i ~ /"."~.11, /6 ~'IJ VII~ , 1t()eIMr J.' .u-J.,h ~/,.", KLAD3 / NO EM I-IJ Ic Jd,/' ~ lol.ih KLA'D4/II/O£J1LO It'!, lIP' 'hi". t Y/"'II1#" I.~: 32-.:/'-""" '"'.f. ill'"
/n./c-r
III'/~S
tItII" ", ..6.:r 11
va"
....,.,.Ie
AT£!'1P
eleM&l/ r..
ELEI1RI
ti) ~.
1j'/e4-..te
'o~-'-Ou." fer
LPCNTR
-t-3Jelj~e. ,J /"'011""" "'1/<1 e
fIlOliilltMHIIl,.r/e /
>1¢ I/l
QL/.orNT/TI'1PAlOc
tilt I.t-;'p~e ~oif'l t Ml4~e
PAGEPT
{;/kr erie - i
FL70RD
>6':-
01
= i
>6E
If¢
C(t
>65 >6"
KLADi/TELI-I.l
YI
~
e,.~,;;
·,
···,
1;~/e,.
,~{
CI/,o
t~~
let
, ,
£EIV rCA¢>i
">iil FcAl¢ REFC¢l
I
>58
>5A
>59
f"ff/;Cf,'e coel
,, , 9J.
klo r.
9¢
O'J , , ,
t(uto~,...e l:'~." tre ,uI.e' $.JltfJes mlll-,·"/( ..t'~nit/l "..... 1/17'f~S I)
I
.:
I
>s¢
fie
>ItF
7;)
>'IE
w.~
s-, :
t':o
s.
(ul'Sfe)
o~
IA CoRf¢ /S,A1/A/¢i '5NPL¢ Sft1PLJ
s..
18
·
! ',"
RE'Fct¢ A ucoR¢ ~ IIc.OI( i /S,A1 /Io/I¢
I
I
,
-::~
5lt~k5
:: I"qn
,,
ten wintle w
,
I
I
!,
>¢¢
.,~
: (l••d3/~)
~
S!1PL1;;
fig. 11 : Geheugen indeling van het interne data geheugen (data-page 0)
45.
Organisatie assemblertaal programma
f.!e}(.]/ 'Dec. I A~r!'s
~
1) .
.L
Intl't'recr
free,
;;-
Hpx. UI 'Dec.. AJres
>F
j5
S
v_,..
An ~ed' i
AUXRC71/IAUXRJ
> 81= 1"3
>IE
14
s,cWt ;DIll'!/,
VDCr
Alii. /2~/'pI
ALJX RG¢/IAUX.R¢
>8E
>D
13
Seve ~1.~/s
lIDo,.
Accu!lG /rAcct./!-I
>8]) 141
>c.
12
Sotl/e /'t,lIh
>8
U
Sa V~1'1.1t,h v""r S I-. hS ",''J~'"
>A
to
9
9
error
8
8
/nJllezM Jt:lnycle s"
"1
"1
= 0
6
6
;"kts6~r-s ,tlre.s,!Jilt'''' ~
5
5
4
110-"
,q~"m. /"'1h ~ ,t(CCImI.
/jtleljh ~S;' Vlln 711 e",.,...!1 If ' "NS
CD 1I1'1
-St:tW//,
Lt>MI
P.(I-~,." t
~ e"
L1itf:f!J/ I!tu6 ""or, ,,,,,41"'1,,1. IItIIn
",~
>8e
L40
STATUS/I STATS
>8B
139
TI1 pci/T/ I TMPCT
>BA
/38
[JIT(;SM /ItllTGS
>89
131
SAMPLE"/ ISA-I1PL
>~8
/36
IAltlLjLE£sAD >8(,
135
,.,,,,..J Accuu;
Ie,.
,'~7':':.
II ACCtlL
(42
AltAL /
L BUFAD/ILBU PA
>86
134
11;1VfJ erh~r..s .,dHJ I""IJ" ~r
f1BUFAD jIU8tJFA
>d5
133
y
# St¥"?)1/,..s ,I"r V/I'I.4w ~(mle,.
C O"#TI ICO"A/T
>84
132
3
3
mr;rlt> wDDrd AlB -boi:t;f"eI
Mo/)£ / I MoPE
>83
2
2
Stt»1fllt
RATE /IRATE
>82-
i
i
= -i
I1/AlIJ5/IMINtl5
>81
t 2.9
0
0
=i
ONE' /ION'E
>8¢
128
rw.te
13~ 1~o
:fig. 12 : Geheu.gen indeling van h£t interne data geheugen (data-page 1)
FCAO 1 en FCA 10 Geheugen p1aatsen [110] tim [101]. Hierin komen de filter coefficienten Q 1 tim Q p te staan, met p maximaa1 10. Bij iedere nieuwe recursie stap ge1den deze waarden a1s de "vorige" coefficienten. Aan het eind van iedere recursie stap staan hierin dan de nieuwe coefficienten. EEN Geheugen p1aats [111]. Deze geheugen p1aats krijgt de waarde 1. Hiermee kan bij de accumulator 1 opgete1d of er 1 van af getrokken worden. Dit is noodzakelijk omdat de accumulator geen increment of decrement instructies kent. FLTORD Geheugen plaats [112]. Deze geheugen p1aats bevat de analyse fi1terorde. De waarde hierin is altijd een minder dan de eigenlijke filterorde. Maximale waarde is 9. PAGEPT Geheugen plaats [113]. Deze variabe1e geeft aan welke data-page er actief is. Iedere keer a1s van data-page omgeschake1d moet worden, moot in het
46.
Organisatie assemblertaal programma
programma deze variabele ook aangepast worden, behalve bij interrupts. Aan het eind van de interrupt routine kan de processor namelijk aan de waarde van deze variabele zien in welke data-page het hoofdprogramma bezig was. Het status register kan dan overeenkomstig de waarde van deze variabele aangepast worden. QUOTNTITMPNOE Geheugen plaats [114]. Deze variabele wordt tijdens beide deel routines gebruikt. Aan het begin van de 16-bits deel routine wordt hierin de absolute waarde van de noemer geplaatst (TMPNOE). Aan het eind van beide routines kornt hierin het resultaat van de deling te staan (QUOTNT). Dit resultaat is een two's complement getal < 1. Het bevat 1 tekenbit en 15 fractiebits. NOEMER Geheugen plaats [115]. Dit is de noemer waarde voor een 16-bits deling. De waarde die hierin geplaatst wordt, is na de deling nog intact. Het is een two's complement getal < 1. TELLER Geheugen plaats [116]. Dit is de teller waarde voor een 16-bits deling. De waarde die hierin geplaatst wordt, is na de deling nog intact. Het is een two's complement getal < 1. TMPSGN Geheugen plaats [117]. Aan het begin van een beide deel routines wordt eerst het teken van het quotient bepaald door teller en noemer met elkaar te vermenigvuldigen.De hoogste 16-bits van het resultaat worden in deze variabele bewaard om aan het eind van de deel routine het teken van ~et quotient te bepalen. Als het getal in deze variabele negatief is, wordt het quotient negatief, anders wordt het quotient positief. LPCNTR Geheugen plaats [118]. Dit wordt als een down-count "teller" gebruikt om bij FOR-DO loops de loopcount bij te houden. Aan het eind van ied.ere loop wordt de waarde hiervan ren verlaagd. De loop wordt boondigd als de waarde < 0 is geworden. Vandaar ook dat de waarde hierin altijd ren minder is dan de eigenlijke loopcount. Wordt in de modules MATRIX, FLTRCO en FTUITG gebruikt. NSTCNT Geheugen plaats [119]. Deze variabele heeft dezelfde functie als LPCNTR echter met dit verschil dat deze variabele alleen wordt gebruikt als er twee geneste FOR-DO loops gerealiseerd moeten worden. LPCNTR wordt dan de hoofd-loop-counter deze variabele NSTCNT wordt dan de nestloop-counter. Wordt in de modules FLTRCO en FTUITG gebruikt. SMPADR Geheugen plaats [120]. Bevat het adres van beginsample Sj bij het berekenen van de autocorrelatie matrix elementen. Het begin adres hierin is 79 (-so) voor de berekening van rcO). Het eind adres kan in het maximale geval 69 (- s 10) worden voor de berekening van r (l 0). Wordt in het moduul MATRIX gebruikt. ELEMRI Geheugen plaats [121l. Deze variabele bevat het adres van het autocorrelatie matrix element dat op dat moment wordt berekend. De begin waarde is dus 90 (_ AUCORO) en de eind waarde is (bijp= 10) 80 (- ACORI0). Wordt gebruikt in het moduul MATRIX.
47.
Organisatie assem blertaal programma
ATEMP
Geheugen plaats [122]. Dit is een tijdelijke hulp variabele. Tijdens de berekeningen van de filter coefficH:;nten wordt de waarde van a}il tijdelijk hierin opgeborgen. Nadat ai~j is berekend, wordt de waarde van deze variabele naar a j (FCA.. geheugen plaatsen) geschreven. Wordt gebruikt in het moduul FLTRCO. KLAD4/NOEMLO Geheugen plaats [123]. Deze geheugen plaats vervult twee soorten functies. Namelijk als kladruimte en als opslagplaats voor de laagste 16 bits van de 32-bits noemer (voor een 32-bits deling). Deze dubbele functie levert geen problemen op, mits in het programma er voor wordt gezogd dat niet beide functies tegelijk actief zijn. KLAD3/NOEMHI Geheugen plaats [124]. Deze geheugen plaats is evenals de vorige ook dubbel bezet. Als tweede functie bevat het de hoogste 16 bits van de 32-bits noemer (voor een 32-bits deling). KLAD2/TELLO Geheugen plaats [125]. Ook deze geheugen plaats vervult een dubbele functie. De tweede functie is de opslag van de laagste 16 bits van de 32-bits teller (voor een 32-bits deling). KLAD l/TELHI Oeheugen plaats [126]. Tenslotte heeft ook deze geheugen plaats een dubbele functie. De tweede functie is de opslag van de hoogste 16 bits van de 32-bits teller (voor een 32-bits deling). Zowel voor deze geheugen plaats als ook voor de voorgaande dubbel bezeHe geheugen plaatsen geldt dat de twee functies niet tegelijk actief mogen zijn. KLADO Geheugen plaats [127]. Dit is een algemene kladruimte.
Data-page 1 Data-page 1 van de processor kan op twee manieren geadresseerd worden, nl. direct en indirect. Om op directe wijze te kunnen adresseren moet eerst met de LDPK 1 instructie data-page 1 gekozen zijn. De adressering begint dan weer vanaf
O. Op indirecte wijze kan geadresseefd worden door gebruik te maken van de Auxiliary Registers. Dan is het niet nodig eerst de LDPK 1 instructie te gebruiken. Bij de adressen van deze geheugen plaatsen zal met de letters d en i aangegeven worden wat de directe, resp. de indirecte adressen zijn. De labels van deze geheugen plaatsen zijn hiervoor ook aangepast. Geheugen plaats d[O],i[128]. Deze geheugen p1aats vervu1t deze1fde functie als EEN in data-page O. MINUS/IMINUSGeheugen plaats d[1],i[129]. Deze variabele bevat de waarde -1. Dit wordt gebruikt om een bit in een ander woord te resetten. RATE/IRATE Geheugen plaats d[2] ,i[ 130]. Dit is de variabeIe waarin het deelgeta1 voor de bepaling van de sampIe rate staat. Om met 10kHz te kunnen samplen wordt hierin het geta1499 geladen. ONEIIONE
48.
Organisatie assemblertaal programma
MODEIIMODE Geheugen plaats d[3l,i[ 131]. Deze variabele bevat het mode woord voor het Analog Interface Board. Het wordt eerst geladen met de hexadecimale waarde 00 I DH. Aan het eind van het initialisatie moduul wordt het gewijzigd in DOlCH, zodat hiermee de sample rate klok wordt ge-enabled. COUNTRIICOUNT Geheugen plaats d[4],i[132]. In deze variabele wordt bijgehouden hoeveel samples er van de huidige window nog moeten binnenkomen. De waarde hierin is steeds een minder dan het eigenlijke aantal.
UBUFAD/IUBUFA Geheugen plaats d[5],i[133]. Adres pointer voor de uitvoerbuffers. Wordt bij iedere interrupt een verlaagd. Ais de waarde hiervan het eindadres van buffer 2 is gepasseerd,dan wordt in het moduul SMPLMV de waarde aangepast om naar het begin van uitvoerbuffer 1 te wijzen. (Zie voor buffer organisatie volgende paragraaf). LBUFAD/ILBUFA Geheugen plaats d[6],i[134]. Adres pointer voor de inleesbuffers. Wordt identiek behandeld als de vorige geheugen plaats. De waarde hiervan is beslissend om te concluderen dat beide adres-pointers de eindadressen van buffers 2 zijn gepasseerd. NUL/INUL/LEESAD Geheugen plaats d,[ 7],i[l35]. Deze geheugen plaats bevat de waarde O. Wordt onder andere gebruikt om de uitvoerbuffers en eventueel andere geheugen plaatsen te "dearen". De tweede functie is om tijdelijk het beginadres van inleesbuffer 1 vast te houden in het moduul SMPLMV. SAMPLEIISAMPL Geheugen plaats d[8],i[136]. Wordt tijdens interrupts gebruikt. De sample waarde uit de AID converter wordt tijdelijk hierin opgeborgen alvorens het in het actieve inleesbuffer wordt geschreven. UITGSM/IUITGS Geheugen plaats d[9],i[137]. Wordt tijdens interrupts gebruikt. De filter uitgangs sample uit de actieve uitvoerbuffer wordt tijdelijk hierin opgeborgen alvorens het naar de DIA converter wordt gestuurd. De vorige en deze geheugen plaats zijn nodig omdat lID acties altijd van en naar geheugen plaatsen gaan. TMPCNT IITMPCT Geheugen plaats d[lO],i[138]. De waarde van de externe memory adres counter wordt tijdens interrupts hierin ge-saved.. Aan het eind van de interrupt routine wordt het weer teruggeschreven. Dit is noodzakelijk omdat het externe data geheugen zowel in het hoofdprogramma als tijdens interrupts wordt gebruikt. STATUS/ISTATS Geheugen plaats d[1l],i[139]. Tijdens interrupts wordt het status 49.
Organisatie assemblertaal programma
register voor het hoofdprogramma hierin ge-saved. ACCULG/IACCUL Geheugen plaats d[12J,i[140]. De laagste 16 bits van de accumulator worden tijdens interrupts hierin ge-saved. ACCUHG IIACCUH Geheugen plaats d[13],i[141l. De hoogste 16 bits van de accumulator worden tijdens interrupts hierin ge-saved. AUXRGO/IAUXRO
Geheugen plaats d[14J,i[142]. Tijdens interrupts wordt auxiliary register ARO hierin ge-saved. AUXRGl/IAUXRl Geheugen plaats d[15],i[143]. Tijdens interrupts wordt auxiliary register ARl hierin ge-saved. De geheugen bezetting van data-page 0 gedurende het programma verloop is in nguur 14 weergegeven. Voor data-page 1 is dit in nguur 13 weergegeven.
50.
Organisatie assem blertaal programma
~
=er wor,/I
/n gescltrevtn
,~'" = er ",ortll I/l;' .!"/'~.n _ = er wem" z~WlI!e~,.~v,n #lis ~e~z.en ftg. 13 : Geheugen bezetting van data-page 1 gedurende het program.ma verloop
5.4.
BUFFER ORGANISATIE EN TIMING
Het interne data geheugen van de TMS-320l0 processor is te beperkt om alle bij de LPC-analyse betrokken data hierin op te slaan. Er moot zelfs gewookerd worden met geheugen plaatsen om de noodzakelijke gegevens van ren window in het interne data geheugen op te kunnen slaan. Dit maakt het dan ook noodzakelijk gebruik te maken van externe buffers. Deze buffers zijn in het externe data geheugen op het Analog Interface Board gestationeerd. Dankzij de combinatie van de interrupt routine en deze buffers wordt het mogelijk pseudo parallel processing uit te vooren, namelijk rekenen, signaal samples binnenhalen en error samples uitvooren. In figuur 15 is de buffer indeli~g in het externe data geheugen weergegeven.
51.
Organisatie assem blertaal programma
tJ.ow{.i~e:s
lIool'cI/"'0Jra'mwz.."
~TA!?T UlAcHr 5,.,PVl~ HAiJiI/x i;:'LnEL£AI 04£1.32. IAlT"~
/2.7
12.6 12.5
~
~~=T=lllli'Xl=l~~~i~E= ~
(2."
)(
/2 3
~
X;S
y
h.
KLA:P ¢
kL!+PJ/rEUII I
KLIl J)~/AI()EMLO
12./
ueMRZ
t 20
sNP/tlJl(
119
AlJ reA/'T
116'
>0
fl7 1/6
X
LPcA/T~
rI'1P.5GH
V
TEL.t....£R
Q<
[=E3=jii~IE3~~~EjAl~ev1~
(/5 lilt
cpt/OTIVT/ml'#O&
v
~
113
W
~
~PAGe;DT
1'H:,..c,.+--+L-.L..L.....q........,,-M,..............~;,.L..L.4\---l----+~~
~
'12.
~~~
¥,4"~---+---~~~~~~--l----+---!
FLTt:>~j)
Iff ~ ~~~ e&rA/ --;-1/;-:::'o----F-~+---+--p.-~:~~~~~~~--+----+---1 F"cA¢i
-+---+----+_+--_~1J'.."'·~~~~l+____+____+____IFC.4f¢
;..:;../ 0..:.-1 100
RFR::.¢{
fig. 14: Geheugen bezetting van data-page 0 gedurende het program17Ul verloop
52.
Organ isatie assem bJertaa J programma
>'FF~
;; 00 IIJDDrtlen
~D
WTJIOER B~fFcR L
#90
wDDrl,n
UrfroEf<SIIFFQ( 2-
lO:.:
"
!
~
"
~
III
~
,,/eflehraiJ: t
')
Sc,hrMllees r,'chf-ir'l}
~
~ lo( ~
>
pA~
-/0
s~
"':'-
#&0 lAJoortitn
~
-<
Cb
F/LTEI(~lIrF£~I
So
~ ~
j
IIYL££$!JIIFflR I
s
>.
>PPIiF #00
IIJtJorqlen
So
IAlUES!;lIrFEI? 2.
>Pf6¢¢
j
fig. 15 : Indeling van de buffers in het externe data geheugen
De functie van de buffers is als voIgt verdeeld : Inleesbuffer 1 : 80 geheugenplaatsen. Startadres: > 009F. Eindadres: > 0050. De ingelezen samplewaarden van de oneven genummerde windows worden hierin gebufferd. Inleesbuffer 2 : 80 geheugenplaatsen. Startadres: > 004F. Eindadres: > 0000. De ingelezen samplewaarden van de even genummerde windows worden hierin gebufferd. Uitvoerbuffer 1: 80 geheugenplaatsen. Startadres : > IFFF. Eindadres: > IFBO. De berekende errorwaarden van de oneven genummerde windows worden hierin gebufferd. Uitvoerbuffer 2 : 80 geheugenplaatsen. Startadres: > IFAF. Eindadres : > IF60. De berekende errorwaarden van de even genummerde windows worden hierin gebuffen:L Filterbuffer 1 : 10 geheugenplaatsen. Startadres: > OOA9. Eindadres: > OOAO. Hierin staan de laatste 10 samples van een vorige window, die tijdens de testoptie, bij het berekenen van de errorwaarden werden gebruikt. Bij de testoptie van de volgende window worden deze samples gebruikt als die samples die in het analyse filter nog aanwezig zijn.
53.
Organisatie assem blertaal programma
De 80 geheugenplaatsen in de grote buffers komen overeen met de window grootte. De 10 geheugenplaatsen in nlterbuffer 1 komen overeen met de maximaal mogelijke nlterorde die we bij de analyse kunnen gebruiken. Van de vier grote buffers zijn er twee steeds "actief', namelijk een inleesbuffer en een uitvoerbuffer. Bij een oneven genummerde window horen de oneven genummerde buffers en bij een even genummerde window horen de even genummerde buffers. Actief wil in deze situatie zeggen : de inleesbuffer is geassocieerd met de AID converter en de uitvoerbuffer met de DI A converter. Steeds als de AID converter een interrupt genereert wordt de samplewaarde hier uitgelezen en in de actieve inleesbuffer geplaatst. Tevens wordt er een error sample uit de actieve uitvoerbuffer gehaald en naar de DI A converter gestuurd. De term "huidige window" is steeds geassocieerd met de window die in de actieve inleesbuffer wordt geladen. De niet-actieve buffers staan tot beschikking van de processor. De samples van de gehele vorige window staan in de niet-actieve inleesbuffer. De processor kan in het moduul SMPLMV deze samples naar zijn interne data geheugen halen en aan deze samples beginnen te rekenen. Bij het moduul F1UITG kan de processor de berekende error samples naar de niet actieve uitvoerbuffer schrijven. Hierna gaat de processor naar het moduu1 WACHT om het einde van de huidige window af te wachten. Op het moment dat alle samples van de huidige window in de actieve in1eesbuffer zijn geschreven, worden de buffers geswitcht. De actieve in1ees- en uitvoer buffers worden nu niet-actief en de buffers die eerst niet-actief waren worden nu actief gemaakt. De processor kan nu beginnen te rekenen aan de nieuwe samples. Het een en ander is weergegeven in nguur 16. Op de inge1ezen samples wordt geen aparte window bewerking uitgevoerd. De afbakening van een bepaa1d tijdsinterva1 (= 8 ms) geeft impliciet een rechthoekige window. De timing van het gebruik van de buffers en van het gehe1e programma is in nguur 17 te zien. In nguur 18 is de timing van ren window weergegeven. Filterbuffer 1 bevat, in tegenstelling tot de grote buffers, maar 10 geheugen plaatsen. Deze buffer wordt gebruikt om de laatste p samples op te slaan (p afhankelijk van nlterorde; max. 10) van de window waaruit de error samples zijn berekend. Bij de error berekeningen van een volgende window zullen deze samples weer terug gelezen worden om te dienen als "die samples die nog in het nlter aanwezig zijn, van de vorige window". Als de samples van de nieuwe window in het nIter geschoven worden. zullen deze oude sample waarden, een voor ren. automatisch uit het nIter geschoven worden. Aan het eind van de berekeningen aan deze nieuwe window. worden zijn laatste p samples naar deze buffer weggeschreven.
54.
Organisatie assem blertaal programma
IIoo{J?ro f rf/mm t::( R
lA/LEE SBtlFFF~ '" etC
urrV{?EIr atlFrF.e
fipf}
Cl
(ltd/ef)
Sa.Wlr~~ wiruJow :t:+-1
S·"
t"
$
loJi",/pw ;(-J
7M:J-32ofo
~AT't'1C
FL:TR.c.c FTI4IT"
J
JOe Ie el'lQYI ..,;nJoo.J
".."
x
·"WIT"·
I*'MPLMV"
II
S~ 1M
. .",,.Lts ,'nJDIAJ
)(
"iel-
/._~1
_ _ _ _ _ _ _ _IN_LE_r._;U_"'_'F_r._Ei_j('_·
til 5.,.,ltj "";,,.101.) ..:t
I E
(n,.~f-d"f,'H )
~_'lW
IJ_IT_V_/)_ER_8Il_'r_;:&._it'_.
_
Il?ferrlJet NJuline l/lIlEIf"!5Al.iFFrFX'
tJlr~ER MFFE'1l'
(.,h'ef)
..cf/ef)
S~ samtk.s W,'1?I/ow
En
:r+l
\
I \
I
AID con If.
"'I'"s
41/,,,IQ,*
rMS-'!.2.o
---i
5 1t
~
I
b,,.eJ.,ni"jt" fl/qn
:r-I
,
IA),'YIIIDW ..t' 1j'/,lp DI'IJe,. t.rol<e/ll.
.P~ f---+ c.o)'!""'.
fig. 16 : Het buffer gebruik in r.et hoofd programma en tijtlens interrupts
55.
INLEESBUFFE~ J
IAiLEESaUFFE~ 2.
START
'"-f
INTSIl
\n
SMPI.Mv..
3: I
\.03 ~ I;)
MATHI
"' FLTI2C 0 FTlllr" ~'HT
80
-------80interru,6 --- -- .
/
tI
O.u:HS6i'9~""/
/ "
""
""
" ""
"
,,,
60
2.0
, t
I I I
I ,,
..
- -... 1:
/"1'<" w;nJ•., /
elnJe ",,;(/10 tV 6tj/" I'DI.1M/eI
1I1p le!t lo{nnenJ.41en L1it c'nkes blAlfeT" Sa.
IIfJ/ "
/J/acAlen
filkr ver.s.
,,~
rett!i,St.rt.Y1
,
en
lei elnrlr
4/inJow
in
I
tI" III
Programma moduu! beschrijvingen
6.
BESCHRIJVINGEN MODULES
VAN
DE
PROGRAMMA
Dit programma is op het HP-systeem opgeslagen onder de naam : LPC_RW (afkorting van Linear Predictive Coding met Rechthoekige Window). De listing van het geassembleerde programma is achter in dit verslag te vinden. Het verdient aanbeveling bij het bestuderen van diJ hoofdstuk de listing van het programma erbij te nemen. De labels in het programma zijn in dit hoofdstuk SCHUIN weergegeven. De namen van geheugen plaarsen zijn NORMAAL weergegeven. TMS-320lO instructies zijn VET weergegeven. Nog een opmerking vooraf : Bij het doorlopen van loops is het zo dar de waarde die in een auxiliary register of in een geheugen plaars staat om de loopcount bij te houden, a1tijd 1 minder is dan het eigenlijke aantal keren dar de loop doorlopen moet worden. Als bijvoorbeeld een loop nog 3 keer doorlopen moet worden, dan is de loopcountwaarde 2. Als de loopcounlwaarde 0 is, wordt de loop een keer doorlopen.
6.1.
RET INITIALISATIE MODUUL: START
Functie
Initialisarie van de processor zelf en van het Analog Interface Board. (Benodigde machinetijd : 6,571 ms) .
Uitleg
Eerst wordt de Overflow mode gezet (SOVM) om te zorgen dat bij overflow situaties het maximaa1 mogelijke geta1 in de accumulator komt te staan. Dit komt overeen met een verzadigings effect. Uit TABEL 0 (programma geheugen) worden naar data-page 0 de waarden van FLTORD, EEN en PAGEPT ge1ezen. FLTORD wordt 9 a1s we met een 1Qe orde filter te maken hebben. EEN en PAGEPT krijgen ieder de waarde 1. Om de geheugen p1aatsen i[128] tim i[135] in data-page 1 ook met initie1e waarden uit TABEL1 te kunnen laden, fungeert AR1 a1s indirecte adres pointer. ARO fungeert a1s teller voor het aanta1 waarden (8 waarden, dus ARO := 7). Zo worden een voor een de waarden van ONE := 1, MINUS := -1, RATE := 499, MODE := 00lDH, COUNTR := 79, UBUFAD :=lFFFH, LBUFAD := 159 en NUL := 0 vanuit het programma geheugen ge1aden.
58.
Programma moduul beschrijvingen
s7ART :
5 et ovtr/IDw mod'e Lus FLTOR'D J EeN
w.",.rleYl
PA(;EP 7
uit I'r"r"Wl~ :feA6UJen (TASElr/J)
1I0L.6-ND:
1'/10',.
tllIl"'-~.Je ¢
Lees ONe" MIII/PS, R1t7~ feIIoD~ COIJN7~,
U6U.FAD, L8/JFAD, NUL !lJfU.,.tltn /.IiI prD,J"tOtl#l" r!t"e~1en (rABEL/Jill." IttI:t-"ot/t I.
5+'41i4'" RArE" INII_de "'11/11"
f'0o,.f i
Of' .418·h.art/.
5/~1J.1' 140'/)£
w."""/e
11Jf_
I'H"'; , '1' A/8 - J.Ntrwl.
Cled" tt//e Je/'PIJjenfJkahen /n ~xl-ell';hel 'WIet»or; ",.6.v. "I4!! Viln NuL.
1o,)1t",.t!e
En. e St:t~ Refe. JIoJ. ~ AlB -ltJo..,.;.
clear
1HT· Ii'"
r·".,er
,.,." -ill>
fig. 19: Flowdiagram van START moduul
De sample rate klok op het Analog Interface Board wordt ingesteld door de waarde van RATE naar I/O poort 1 te sturen: De mode van dit board wordt ingesteld door de waarde van MODE naar I/O poort 0 te sturen (dit is het Control Register van het board). Hierbij is de sample rate klok nog disabled, want in het mode woord is het Clock Inhibit bit (bit 0)
=
l.
Met de waarde van NUL worden de twee uitvoerbuffers ge-cleared. De sample rate klok kan nu ge-enabled worden door in het mode woord het Clock Inhibit bit =- 0 te maken en dit naar het Control Register van het
59.
ProgTamma moduuJ beschrijvingen
AIB te sturen. Een dummy lees opdracht uit de AID converter zorgt ervoor dat de INT lijn, die van de AID converter komt, ge-reset wordt. Met de EINT (enable interrupts) instructie staat de processor tenslotte klaar om interrupts te ontvangen. Hiermee is de initialisatie van de processor en het AlB-board voltooid.
6.2.
WACHTLUS MODUUL : W ACHT
WAcJJ.T:
Lees
C(!)(jNrR
WtlltrJe
fig. 20 : Flowdiagram van WACHT moduul
Functie
Wachten totda! a11e samples van de huidige window ingelezen zijn. (Benodigde machinetijd : minimaal 600 ns; kan maximaal8 ms worden)
Uitleg
Bij dit moduul wordt de waarde van de variabele COUNTR (in datapage 1) getest om te controleren of alle samples van de hUidige window al ingelezen zijn. COUNTR was bij initialisatie met 79 geladen en het wordt bij iedere ingelezen nieuwe sample, in de interrupt routine, gedecrementeerd. Na 80 samples, aan het einde van de window, heeft het de waarde -1. Zodra dit geconstateerd wordt, wordt dit wachtlus moduul beeindigd.
60.
Programma moduul beschrijvingen
6.3.
INLEESBUFFER NAAR MODUUL : SMPLMV
INTERNE
DATA
RAM
KOPIEER
5MPL MI!'.
M Qa/t.
COUNT/<
Lees L. 8t/FAD
c
'79
lAJalfrde
Nee
)(..7BFj;
Ad'/veer
en
'NUE.sBuFFER. /JITIIO£1!?8"FFeR " ,
t
eJtt. )ffem..J,." cpunhr OM inlet$ ""'flt;2 u/I-.fe k zen ,
L fUrl 79 ,o",
PAG-£¢:
Ac'fiveer INJ..E"ES~"Fre1( 2en "ITV()6,f8f,lFFE~ 2 (rJ,'t..1#t ,d
lilil-om-r/l,("J,)
J.utlI5~
/n #,cf, ",em, tJlalr,.s
CPUI'/-k,. NI
,"'/~~.5
",...; Ie lez.en,
billie,. ,
Act/vtu' "]).~-P'V~ ¢ in 7/015-32010
~EES:
fig. 21 : Flowdiagram van SMPLMV moduul
61.
Programma moduul beschrijvingen
Functie
Met behulp van dit moduul worden de in externe RAM geheugen opgeslagen 80 samples van de zojuist ingelezen window in een keer noor de i7Uerne data RAM van de processor gecopieerd; naar de geheugen plaatsen SMPLO tim SMPL79. Voor de samples cou7Uer (COUNTR) en eve7Uueel voor de adres pointers van de uitvoerbuffers (UBUFAD) en de inleesbuffers (LBUFAD) worden nieuwe woorden geladen. (Benodigde machinetijd : 0,0676 ms)
Uitleg
Tussen twee interrupts verstrijkt er 0,1 ms. Met een instructiecyc1us tijd van 200 ns kan de processor in dit tijdsinterval 500 instructies uitvoeren. Vanaf de laatste sample van de ingelezen window heeft de processor in de interrupt routine en in het vorige moduul (WACHT) in totaal ongeveer 50 instructiecycli verbruikt. Het heeft dus nog 450 instructiecycli de tijd om de buffers te switchen en aan het begin van de nieuwe window enkele initieIe waarden te laden in sommige geheugen plaatsen. Eerst wordt COUNTR, via auxiliary register ARO, met 79 geladen zodat de samples van de nieuwe window bijgehouden kunnen worden. Controle van de waarde van de inleesbuffers adres-pointer LBUFAD levert informatie omtrent de buffers die zojuist actief waren. Als de waarde van LBUFAD < 0 is, dan waren zojuist inleesbuffer 2 en uitvoerbuffer 2 actief en moeten nu inleesbuffer 1 en uitvoerbuffer 1 geactiveerd worden. LBUFAD _ +159 en UBUFAD _ lFFFH. Anders als LBUFAD > 0 is, dan waren inleesbuffer 1 en uitvoerbuffer 1 actief en moeten nu inleesbuffer 2 en uitvoerbuffer 2 geactiveerd worden. Hiervoor hoeven echter LBUFAD en UBUFAD niet aangepast te worden. Want fnleesbuffer 2 sluit direct achter inleesbuffer'1 aan en uitvoerbuffer 2 direct achter uitvoerbuffer 1, zodat deze adres-pointers automatisch goed staan. LBUFAD = +79 en UBUFAD = lFAFH. Na het goed zetten van deze adres-pointers wordt het begin adres van de nu niet-actieve inleesbuffer in de externe RAM adres counter geladen, zodat de zojuist ingelezen samples naar het interne RAM geheugen van de processor gecopieerd kunnen worden. Hiertoe wordt eerst de datapage van de processor omgeschakeld naar data-page 0 (label: PAGFXJ). Auxiliary register ARO fungeert als indirecte adres-pointer in het interne RAM geheugen. Het startadres (79) was aan het begin van dit moduul al in ARO geladen om COUNTR weer te initialiseren. Bij de loop met label: LEES worden tenslotte de samples uit de nietactieve inleesbuffer naar het interne RAM geheugen gelezen; naar de geheugen plaatsen SMPLO tim SMPL79. Sample 0 komt op adres 79 te staan en sample 79 op adres O. Dit is zo gedaan in verband met de mogelijkheden van de instructies van de processor. Hiermee is het copieren van de ingelezen samples voltooid. Nu kunnen de berekeningen beginnen.
62.
Programma moduul beschrijvingen
6.4.
AUTOCORRELATIE MATRIX ELEMENTEN BEREKENINGEN : MATRIX
Functie
Uitleg
In dit moduul worden r (0) t /mr (p) berekend. tim SMPL79 gebruikt. ACORiO te staan. (Benodigde machinetijd
de genormeerde autocorrelatie matrix element en Als ingangswaarden worden de samples SMPLO De resul1aten komen in AUCORO tim maximaal : i,446 ms bij 10' orde analyse filter)
Voor R Ci ) geldt de formule : R Ci) =
r.
n=79 Sn Sn-j
n=i
Met de berekeningen wordt bij R (0) begonnen. Auxiliary register ARO wordt als indirecte adres-pointer gebruikt. Het wijst aan het begin naar SMPLO. Na het dearen van de accumulator en het P-register wordt bij de loop MTXELO de waarde van R (0) berekend. De berekening eindigt als ARO voorbij SMPL79 komt. Het resultaat van S f9 staat nog in het P-register en wordt bij de rest opgeteld met de APAC instructie. R(O) staat nu in de accumulator. Het heeft 1 tekenbit, 7 integerbits en 24 fractiebits (Q24 fonnaat). De maximale waarde die R (0) kan aannemen is ~ 80. Dit voIgt uit het feit dat iedere sample maximaal de waarde 0,9999694824 of -1 kan aannemen. 80 samples gekwadrateerd en bij elkaar opgeteld levert maximaal 80 op. Een test op de waarde van R (0) of het al of niet nul is, geeft de beslissing of er verder gerekend moet worden. R(O) is altijd positief en als R(O) = 0 dan is het signaal = 0, dus zijn ook aIle andere matrix elementen en coe:fficH~nten = O. In zo'n geval wordt er niet meer verder gerekend. AIle geheugen plaatsen vanaf FCAOI tim ACORlO (31 geheugen plaatsen) worden bij loop COFNUL nul gemaakt. ARl fungeert als loop-counter en ARO als indirecte adres-pointer naar deze geheugen plaatsen. Het programma verloop gaat daarna verder bij het moduul FTIJITG, de realisatie van het analyse filter. Wanneer R (0) < > 0 dan wordt er verder gerekend. R (0) wordt de tellerwaarde en R (0)+2- 24 wordt de noemerwaarde voor de 32-bits deling. Met deze waarden wordt do) berekend en in AUCORO opgeslagen. Het heeft 1 tekenbit en 15 fractiebits (Q15 formaat). am de resterende matrix elementen te berekenen, wordt geheugen plaats ELEMRI als adres-pointer gebruikt voor de matrix elementen. Het adres van sample Sj wordt in SMPADR opgeslagen. am te beginnen is dit het adres van SMPLI (S 1). Het aantal matrix elementen dat nog berekend moet worden, is gelijk aan de filterorde, nl. r (l) tim r (p). Daarom wordt de FL TORD waarde in LPCNTR geladen. In de loop MXWOP worden de matrix elementen berekend. ARO wijst naar de samples Si en ARI wijst naar de samples Sn _ j . In de geneste loop MTXELI worden de twee samples, die door ARO en ARI worden aangewezen, met elkaar vermenigvuldigd en bij de accumulator opgeteld.
63.
Programma moduul beschrijvingen
MTXEI..¢ ,
8ereken
R. ((»
coFNUL:
L't>rEL. :
.N1.",d. aa.1"I
Be-!'alll de ,jenormeer<
t,
FCA¢ i i'j,.. FcA t¢ J RE.FC.¢1 ii,.., REFC
r(r/J).
AlA(..Q~
~ AColef¢
J
===0
LafJ/ti
.,J,..f'~"'" ret)
I'M
E~RI
.ft.J qJ,.es ..." "~iM ~Plt~
Be,oc-I ~/'n",_ChIt. ....., /." C4"'"
MX.L.oo P:
MTXELI:
~en
R (i) ,
"'o/'II(tt! .Ie !-eI1ON1'J-e~ r{i) ptt.5 EI.EWI ~I e-, SMP~ 1>1<
-'" 1IfJf)'" lID'JUlele .1f9'
fig. 22: Flowdiagram van het MATRIX moduul
64.
Programma moduul beschrijvingen
Ais ARO voorbij SMPL79 komt, wordt de loop MTXEll beeindigd. Hiermee is dan R Ci ) berekend. Om dit te normeren delen we het door de 32-bits noemerwaarde R (0)+2- 24 • Met behulp van de waarde in ELEMRI wordt de waarde van r Ci) op de juiste geheugenplaats opgeslagen. ELEMRI wordt aangepast voor het volgende adres; adres van r Ci + 1). Ook SMPADR wordt aangepast voor Si+l' Dan kan de loop MXWOP herhaald worden, zolang de waarde van LPCNTR ~ O. De waarde van LPCNTR wordt via ARI verlaagd bij de BANZ instructie, aan het eind van MXWOP. De nieuwe waarde wordt aan het begin van MXLOOP in LPCNTR geladen. Op deze wijze worden aIle matrix elementen berekend. Nu kunnen de nIter coefficH~nten berekend worden.
6.5.
FIT..TER- EN REFLECTIE COEFFICIENTEN BEREKENINGEN : FLTRCO
Functie
In dit moduul worden de filler coe]ficienten a 1 tim ap , de refieetie coejficiemen k 1 tim kp en de rest energie Ep berekend. Als ingangswaarden worden de matrix elememen uit de geheugen plaatsen AUCORO tim maximaal ACORlO gebruikt. De resullaten worden opgeslagen in de geheUgen plaatsen FCAOl tim maximaal FCA10, REFCOl tim maximaal REFC10 en NOEMER. (Benodigde machinetijd : 0,3792 ms bij 10~ orde analyse filler)
Uitleg
Dit moduul begint met de berekening van reflectie coefficient k l' Het resultaat wordt in REFCOI opgeslagen in Q15 formaat. Het resultaat dat nog in de accumulator staat wordt naar een Q13 formaat afgerond en in FCAOI opgeslagen als nIter coe£licH~nt a pl . Afronden gebeurt in dit geval door de waarde van EEN een bit naar links geschoven bij de accumulator op te tellen en daarna de inhoud van de accumulator 2 bits naar rechts te schuiven. Een instructie om de accumulator naar rechts te schuiven heeft de processor niet. Daarom wordt de waarde eerst naar het geheugen weggeschreven, daarna met een leftshift van 14 bits teruggelezen. De hoogste 16 bits van de accumulator bevatten nu het gewenste resultaat. Dit wordt dan weggeschreven naar FCAOl. De reden dat de nIter coefficienten in Q13 formaat worden weergegeven is dat deze een waarde > 1 kunnen krijgen. Dit kan in Q15 formaat niet weergegeven worden. Experimenteel is vastgesteld dat Q13 formaat weI voldoet. De refiectie coefficienten zijn altijd < 1, zodat bij deze weI Q15 formaat gebruikt kan worden. De TEllER en NOEMER worden ook afgerond naar Q13 formaat omdat hiermee zo meteen bij de optellingen de bits op de juiste wijze uitgelijnd kunnen worden. De waarde van REFCOI wordt naar het T-register gecopieerd om zo meteen E 1 te kunnen berekenen. E 1 wordt berekend volgens de formule
65.
Programma moduul beschrijvingen
FI.TR.Co:
C.ot:rFLP,
Tct..LP:
Rc.oADR:
fig. 23 : Flowdiagram van FLTRCO moduul
66.
Programma moduul beschrijvingen
E1
= Eo + k 1"teller .
Het resultaat komt in Q13 formaat in NOEMER te
staan. Nu moeten vanaf i = 2 tim i = P met behulp van de Levinson/Durbin recursie de resterende refiectie coefficH~nten en de nIter coefficienten berekend worden. Er moeten dus in totaal p -1 recursie stappen uitgevoerd worden. LPCNTR wordt dan ook geladen met de waarde FLTORD-l. Bij een tOe orde nIter is FLTORD = 9 en wordt LPCNTR dus = 8. De COEFLP loop wordt voor iedere recursie stap uitgevoerd. Na iedere recursie stap wordt de waarde van LPCNTR een verminderd. Het verschil tussen de waarde van FLTORD en LPCNTR kan gebruikt worden om het jUiste adres te berekenen voor een coefficient. Dit gebeurt door dit verschil af te trekken van het adres van de eerste coeffident, uit de gewenste coefficienten reeks. Bijvoorbeeld bij de nIter coefficienten aftrekken van het adres van FCAOl. Verder kan dit verschil met, nog eens 1 verminderd, gebruikt worden om de nest-loop-<;ounter waarde NSTCNT te bepalen. In de eerste recursie stap wordt NSTCNT dus = O. Nu wordt eerst TELLER berekend, bij TELLP. ARI vervult twee functies, nl. als adres-pointer naar de matrix elementen en als nest-loopcounter. Dit wordt bewerksteIligd door vooraan in de loop ARI naar NSTCNT weg te schrijven en dan de waarde van ELEMRI over te nemen om te kunnen adresseren. Aan het einde van TELLP wordt de aangepaste waarde van ARI naar ELEMRI weggeschreven en de waarde van NSTCNT teruggelezen. ARO fungeert als adres-pointer naar de nIter coefficienten. Als de waarde van NSTCNT < 0 is geworden, wordt TELLP beeindigd en wordt in TELLER de zojuist berekende waarde geladen. ARO bevat op dit moment het adres van ap>. Dit adres kan in KLAD2 even bewaard worden om zo meteen te gebruiken. Nu kan refiectie coefficient k 2 berekend worden. Na bepaling van het juiste adres wordt deze waarde in het geheugen opgeslagen (in Q15 formaat). Na afronding wordt ook de waarde van nIter coefficient ap> met behulp van het adres in KLAD2 op de jUiste geheugen plaats opgeslagen (in Q13 formaat). De waarde van k 2 wordt ook naar het T-register gecopieerd om het te prepareren voor de vermenigvuldigingen die zo meteen uitgevoero moeten worden. Deze waarde in het T-register blijft ongewijzigd totdat bij de volgende recursie stap, op deze zelfde plaats in het programma, de waarde van k 3 hierin geladen wordt. Als volgende stap wordt E 2 berekend. Dit is dus een nieuwe NOEMER waarde. Dit gaat op identieke wijze als bij E l' Dan volgen de berekeningen voor ap> en a~:'>j' Omdat nu j en 2-j identiek zijn, nl. 1 wordt hier a f> twee keer berekend. Dit is nu zo'n bijzondere situatie waarover in hoofdstuk 3 al is geschreven. We zijn nu in de 2& recursie stap. Zo'n situatie treedt bij aIle even genummerde recursie stappen op. Bij recursie stap 4 zal dus a~4> twee keer berekend worden, en bij recursie stap 6 ai 6 >, etc. De loop waarin a J2> wordt berekend is FCLOOP. NSTCNT bevat de loopcount hiervoor. De waarde van NSTCNT is tnmc(212)-1 = O. Met
67.
ProgTarnrna moduu] beschrijvingen
deze waarde wordt de loop maar een keer doorlopen. Eerst wordt ATEMP berekend. Dan wordt a P) (= FCAOl) berekend en tenslotte wordt ATEMP naar FCAOI gecopieerd. Dus twee keer dezelfde berekeningen. De loop wordt dan beeindigd omdat NSTCNT < 0 wordt. Hiermee is dan ook recursie stap 2 beeindigd. LPCNTR wordt een verlaagd en vanaf label COEFLP begint recursie stap 3. Hierin worden dan k 3, a P) , E 3, a P) en a P) berekend. Daarna begint recursie stap 4, etc. Totdat LPCNTR < 0 wordt. Op dat moment wordt dit moduul FLTRCO beeindigd.
6.6.
FIT..,TER
REALISATIE MODUUL : FTUITG
Functie
In dit moduul wordt het analyse fiUer gerealiseerd om te comroleren of de berekeningen goed zijn uitgevoerd en hoeveel error signaal er nog overblijft. De ingangswaarden zijn FCA01 tim maximaal FCA1O, SMPLO tim SMPL79 en SMIN01 tim maximaal SMIN1O. De resultaten worden naar de niet-actieve uitvoerbufJer geschreven. De nieuwe SMIN01 tim maximaal SMIN10 worden naar filterbufJer 1 geschreven. (Benodigdemachinetijd: 1,6116 msbij lOe ordeanalysefilter)
Uitleg
Allereerst worden de laatste p samples van de vorige window uit fi1terbuffer 1 gelezen, naar SMINOl" tim SMINp. Het buffer adres van SMINOI wordt uit de tabel FILTBF gelezen. Hiermee en tesamen met FLTORD wordt het buffer adres van SMINp berekend. Daarna worden SMINp tim SMINOI in de genoemde volgorde naar het interne RAM geheugen gelezen, naar de geheugen plaatsen SMINp tim SMINOI (hier stonden eerst de matrix elementen). Deze samples zijn de laatste p samples die aan het eind van de filter realisatie van de vorige window in het filter achterbleven. Om een continu signaal verloop te krljgen, moeten deze samples weer gebruikt worden aan het begin van deze window. Tijdens dit inlezen is ARO de loop-counter en ARI de indirocte adrespointer naar de geheugen plaatsen SMINp tim SMINOl. Dit inlezen gebeurt in de loop OUDSLP. Deze samples zijn in Q14 formaat. De samples in SMPLO tim SMPL79 zijn nog in Q12 formaat. In de loop SMPSFT worden deze 2 bits naar links geschoven zodat ook zij het Q14 formaat krijgen (Q15 formaat geeft overflow problemen tijdens de filter realisatie). Door heel even in data-page 1 naar de waarde van LBUFAD te kijken, wordt bepaald welke uitvoerbuffer actief is. Als LBUFAD > 79 is dan zijn buffers 1 actief en moeten de error samples naar uitvoerbuffer 2 geschreven worden. Anders moeten de error samples naar uitvoerbuffer 1 geschreven worden. Het begin adres van de jUiste buffer wordt via geheugen plaats KLAD2, met een OUT instructie, in de externe RAM adres counter geladen. Als het programma voor het eerst wordt doorlopen dan worden de error samples naar uitvoerbuffer 1
68.
Programma moduul beschrijvingen
!t)'*tll/ «'e 5larfq tll'eSSer? va.n S.;,,~ .-" IlIkrJl4fltl'J
tn 'n
~
-
Q
,
O(J[)S/..P:
MallA ~ /4
~"'P4J5 ~ SIotPl?J
/orm4Ai «!)
4DRSLll :
ERoRLl> :
lo.~4ulff,= 1D();«.~lJt-1.
(= ""nfe".~q niel/lAJt in te $£huiV rn
s.""Ie)
fig. 24 : Flowdiagram van FTUITG moduul
69.
Programma moduul beschrijvingen
geschreven. Vanaf dit moment mooten alle samples, van de zojuist berekende window, door het analyse nIter gestuurd worden. LPCNTR krijgt de waarde 79 geladen (label: ERORLD).Dit zal als adres-pointer fungeren voor de sample die in het nIter geschoven wordt. Tegelijk doet het ook dienst als counter om het aantal ingeschoven samples bij te houden. De loop ERORLD stopt als de waarde van LPCNTR < 0 wordt. De samples SMPLO tim SMPL79 van de window en de samples SMINOI tim SMINp zullen niet verschoven worden in het geheugen. Daarvoor in de plaats zal de adres-pointer Clees LPCNTR) aangepast worden voor de in het nIter te schuiven sample. Het adres van de eerste filter coefficient FCAOl wordt in KLAD3 gezet, om zo meteen als adres pointer voor de filter coefficienten te gaan fungeren. Omdat bij iedere ingeschoven sample het gehele filter doorgerekend moot worden om een error sample te bepalen, wordt NSTCNT met de waarde van FLTORD geladen. Nu kan voor de eerste ingeschoven sample het gehele filter doorgerekend worden. Dit gebeurt in de E!?ROR loop. Auxiliary register ARO functioneert voor de samples binnen het nIter als adres-pointer. SMPLO wordt in principe met a 0 vermenigvuldigd, maar omdat we a 0= 1 verondersteld hebben, verandert het resultaat niet. SMPLO komt dan ook rechtstreeks in de accumulator te staan, weliswaar met zijn bits goed uitgelijnd voor een optelling C13 bits naar links geschoven). Daarna wordt SMINOI met FCAOI vermenigvuldigd en bij de accumulator opgeteld. Vervolgens wordt SMIN02 met FCA02 vermenigvuldigd en bij de accumulator opgeteld, etc. De ERROR loop wordt netzolang herhaald totdat ook FCAp met SMINp' zijn vermenigvuldigd. Buiten de Ius wordt deze laatste waarde bij de rest opgeteld. Alle berekeningen gebeuren in Q27 formaat, want alle FCA's zijn in Q13 formaat en de samples in Q14 formaat, het resultaat wordt automatisch Q27 formaat. Na afronding van het resultaat naar Q15 formaat wordt het naar de uitvoorbuffer geschreven. De allereerste sample van de window is nu in het filter geschoven. SMINp is uit het filter geschoven. Nu moot de tweede sample van de window in het filter geschoven worden. De waarde van LPCNTR wordt via auxiliary register ARO een verminderd om naar SMPL1 te wijzen. De ERORLD loop herhaalt zich dan weer. In de geneste ERROR loop worden nu SMPLO tim SMINp-l met de filter coefficienten FCAOI tim FCAp vermenigvuldigd en gesommeerd. Dus iedere krer als ERORLD loop wordt doorlopen, wordt de ERROR loop p keer doorlopen. Bij een 10~ orde filter dus 10 krer. Na iedere ERROR loop wordt de berekende error sample naar de niet-actieve uitvoorbuffer geschreven. Nadat ERORLD loop 80 keer is uitgevoord, wordt het beeindigd. LPCNTR heeft dan als laatste naar sample 579 gewezen (SMPL79). Nu worden de samples op de geheugen plaatsen SMPL70 tim SMPL79 (adressen 09 tim 00 in data-page 0) naar fIlterbuffer 1 geschreven. Deze kunnen dan bij een volgende window als SMINp tim SMINOI fungeren. 70.
Programma moduul beschrijvingen
Dit wegschrijven wordt in de SCHRLP loop gerealiseerd. Al deze berekeningen worden in een zeer snel tempo uitgevoerd. De uitvoerbuffer wordt als het ware in een burst-mode volgeschreven. Het zal bij het begin van de volgende window op de juiste tijdstippen uitgelezen worden. De berekeningen en bewerkingen aan de afgelopen window zijn nu afgerond. De samples van de huidige window zijn nog aan het binnen komen. Er moet dus gewacht worden totdat alle samples van de huidige window binnen zijn, alvorens er berekeningen aan uitgevoerd kunnen worden. Na omschakeling naar data-page I gaat de processor naar het moduul WACHT om de resterende samples van de huidige window af te wachten. Daarna herhaalt het geheel zich weer.
Hieronder volgen de beschrijvingen van de rozaines INTSR, DELEN en DEEL32. Dit zijn respectievelijk de interrupt rozaine, de 16-bits deel rozaine en de 32-bits deel rozaine.
6.7.
INTERRUPT SERVICE ROUTINE: INTSR
Functie
Uitleg
In deze rozaine wordt er een sample van de AID converter ingelezen en in de actieve in1eesbujfer geplaatSl. Verder wordt er een error sample uit de actieve uitvoerbujfer gehaald en naar de DIA converter gestuurd. Er wordt gebruik gemaakt van de geheugen plaatsen in data-page 1. Met uitzondering van RATE, MODE en NUL worden alle andere geheugen plaatsen in deze data-page gebruikt. Na beeindiging van deze rozaine goot de processor verder in het hootdprogramma vanat de plaats woor het onderbroken was. (Benodigde machinetijd : 0,010 ms) Als de AID converter een sample heeft geconverteerd, geeft het via zijn "EINDE CONVERSIE' signaal een interrupt aan de processor (de INT lijn van de processor wordt 0 gemaakt). Als bij de processor interrupts zijn ge-enabled dan accepteert het de interrupt en voert een "Branch" uit naar adres 2 in het programma geheugen. Ondertussen wordt de oorspronkelijke waarde van de Program Counter automatisch op de stack ge-saved. Ook worden eventuele volgende interrupts automatisch disabled. Op adres 2 in het programma geheugen staat een B INTSR instructie (Branch naar Interrupt routine). De processor voert deze Branch instructie uit en komt in de Interrupt routine terecht. In de interrupt routine wordt eerst omgeschakeld naar data-page 1. Daarna worden het status register, de accumulator en de beide auxiliary registers ge-saved op respectievelijk de geheugen plaatsen : STATUS, ACCULG, ACCUHG, AUXRGO en AUXRG1. De T- en P-registers kunnen zeer moeizaam ge-saved worden. Om deze rompslomp te omzeilen,
71.
Programma moduul beschrijvingen
Br«ncJ, IA/'TSt< _ _.::ss~""""~ IN,S/( :
SCi!,. \' e
S
1/
5
,.tj ,'j ier,
ALlliliAr~ ,.e~j Ste"s en Acc.ur1lLAJ.. ~\""
Lee ~ sruntle.
w,"f
A/l)
CDnV, en .",..k,J,i 6;12. 10,.
e~!> err-f)" sarYlf
"it Itcf;f~
...,met-hl#ffe,.. e-" sfuur tI," riaaN'
~
COM',
EIND5/(:
s fig. 25 : Flowdiagram van de interrupt routine INTSR
worden ze niet ge-saved. Om te voorkomen dat de T- en P-registers overschreven worden. worden er in deze routine geen vermenigvuldigingen uitgevoerd !. Een ander belangrijk punt is het volgende : In het status woord is het data-page bit aan het begin van deze routine gewijzigd. toen er werd omgeschkeld naar data-page 1. Dit gebeurde nog
72.
Programma moduul beschrijvingen
voordat dit status woord ge-saved was. Het moest ook weI omdat het status woord in data-page 1 ge-saved kan worden (geheugen plaats STATUS). Aan het eind van deze routine moet deze wijziging weer gecorrigeerd worden alvorens het status woord terug te laden in de processor. Dit wordt bewerkstelligd door naar de waarde van geheugen plaats PAGEPT te kijken en aan de hand van die waarde het data-page bit in het ge-savede status woord te corrigeren. Als volgende actie wordt de sample waarde uit de AID converter gelezen. Door het uitvoeren van deze lees actie wordt de INT lijn naar de processor weer 1 gemaakt. De waarde uit de AID converter wordt in SAMPLE geplaatst, in Q12 formaat. Het Q12 formaat wordt verkregen door SAMPLE eerst 13 bits naar links verschoven in de accumulator te lezen en daarna bij het terugschrijven naar SAMPLE de laagste 3 bits te laten vallen. Op deze omslachtige wijze wordt een "right shift" van 3 bits gerealiseerd. Het Q12 formaat is nodig om overflow problemen te voorkomen bij de berekeningen van de matrix elementen. Alvorens de gelezen sample waarde naar de inleesbuffer te sturen, wordt eerst de waarde van de externe RAM adres counter ge-saved in TMPCNT (IN TMPCNT,PA4 instructie). Het kan namelijk zijn dat deze counter in het hoofdprogramma gebruikt wordt. Om na de interrupt routine met de juiste counter waarde verder te kunnen werken, moet de waarde ervan ge-saved worden. De waarde van LBUFAD wordt dan als inleesbuffer adres-pointer in de externe RAM adres counter geladen. SAMPLE wordt dan naar de inleesbuffer gecopieerd. Vervolgens wordt UBUFAD als adres-pointer voor de actieve uitvoerbuffer in de externe RAM adres counter geladen. De error sample wordt uit de buffer gelezen en onmiddellijk naar de DIA converter doorgestuurd. Omdat de externe RAM adres counter in de auto decrement mode staat, kunnen we zijn nieuwe waarde teruglezen naar UBUFAD om het dan bij een volgende interrupt te gebruiken. Vervolgens worden COUNTR en LBUFAD ieder ren verlaagd. LBUFAD wordt niet net als UBUFAD van de externe RAM adres counter teruggelezen. Deze counter heeft namelijk de eigenschap na het bereiken van de waarde 0 de oorspronkelijke start waarde te herladen. Dit willen we vermijden. Want we willen dat LBUFAD < 0 wordt als het het einde van inleesbuffer 2 voorbij is. Zo kunnen we namelijk in het hoofdprogramma beslissen naar welke buffers er omgeschakeld moot worden. Nu zijn eigenlijk alle noodzakelijke handelingen verricht. Rest nog het herstellen van de ge-savede registers alvorens naar het hoofdprogramma terug te keren. Eerst wordt vanuit TMPCNT de oorspronkelijke waarde van de externe RAM adres counter teruggeschreven. Daarna wordt even in data-page 0 in PAGEPT gekeken om vast te stellen naar welke datapage er teruggekeerd moot worden. Als PAGEPT = 1 dan wordt er niets veranderd aan het ge-savede status woord. Is echter PAGEPT = 0 dan moot bit 0 in het ge-savede status woord 0 gemaakt worden. Daarna worden de auxiliary registers,-de accumulator en het status woord terug
73.
ProgTamma moduul beschrijvingen
geladen in de processor. Omdat het ge-savede status woord nu het juiste data-page bit bevat, keert de processor automatisch naar de juiste datapage terug door het laden van dit woord in de processor. Tenslotte worden met een EINT (Enable Interrupts) instructie volgende interrupts weer ge-enabled en met een Return wordt er teruggekeerd naar het hoofd programma.
6.8.
16-BITS DEEL ROUTINE: DELEN
Functie
In deze routine wordt TELlER door NOEMER gedeeld. De deling wordt a11een correct uitgevoerd onder de voorwaarde dat : I TELLER I
<
I NOEMER I
Her resultaat is dan < 1. Dit koml in Q15 formaar in QUOTNT te staan. (Benodigde machinetijd : 0,0136 ms)
Uitleg
Deze routine is identiek aan de routine DIV 1 zoals het beschreven wordt in de TMS-320 10 User's Guide, par. 5.1.3.3. De enigste wijziging die hier is aangebracht, is het wegschrijven van de absolute waarde van NOEMER naar TMPNOE. Bij DIV 1 wordt de absolute waarde naar NOEMER zelf teruggeschreven. De routine begint met het activeren van auxiliary register ARO. ARO blijft actief tot het einde van deze routine. Als voor het aanroepen van deze routine AR 1 actief is dan moet na beeindiging van deze routine met de LARP 1 instructie ARI opnieuw geactiveerd worden. De eerst volgende actie is het controleren van de teller waarde. Als deze o is wordt er geen deling uitgevoerd. Het quotient (QUOTNT) wordt dan nul gemaakt en de routine wordt l>eeindigd. Als de teller waarde < > 0 is dan wordt er weI een deling uitgevoerd. Dit begint bij label: BffiDL. Eerst wordt het teken van het quotient bepaald door TELLER met NOEMER te vermenigvuldigen. De hoogste l6-bits van het resultaat in de accumulator bevatten informatie over het teken. Dit deel van de accumulator wordt opgeslagen in TMPSGN. De deling kan hierna met absolute waarden van TELLER en NOEMER uitgevoerd worden. De absolute waarde van NOEMER komt in TMPNOE te staan (zelfde geheugen plaats als QUOTNT). De absolute waarde van TELLER komt in de accumulator, in de hoogste 16 bits. Om voor het quotient het Q15 formaat te verkrijgen, wordt de waarde 14 in auxiliary register ARO geladen. ARO zal als loop-counter fungeren, om bij te houden hoe vaak de DEELLP loop doorlopen moet worden. De deling wordt gerealiseerd met behulp van de SUBC (Subtract Conditional) instructie. Iedere keer als DEELLP wordt doorlopen, wordt met deze instructie TMPNOE van de accumulator afgetrokken. A1s het resultaat van deze bewerking ~ 0 is, dan wordt dit resultaat in de accumulator geladen, 1 bit naar links verschoven en bij het minst significante bit
74.
Programma moduul beschrijvingen
CAL L. 'DE Le AI
BefeUlI ~et tekeVi veln Ltc/'T
'5ef~t:tl
T
QbsoliA.te
wt:tttrde van NOEME/<
QUOTNT:=¢
LtIlll eI IDt:/' COllI} f /POfJ 15ufr
D WI
Ie JPD,(.
deel~".
'DEELL.P: Loortou.,,I: I = /o"rc.ouMt -1
Alee
Nee
RETDL:
R e tu.rYl
fig. 26: FWwdiagram van 16-bits deel routine DEIEN
wordt er 1 opgeteld. Als het resultaat echter negatief uitvalt, wordt alleen de accumulator 1 bit naar links geschoven. Na 15 keer uitvoeren van deze bewerking staat de quotient waarde in de laagste 15 bits van de accumulator. Deze waarde wordt in QUOTNT opgeslagen (TMPNOE wordt nu
75.
Programma moduuJ beschrijvingen
overschreven ). Testen van TMPSGN geeft informatie over het teken dat QUOTNT moet krijgen. Als TMPSGN ~ 0 dan is QUOTNT positief en wordt de deel routine beeindigd. Als TMPSGN < 0 dan wordt eerst de accumulator 0 gemaakt en daarna QUOTNT hiervan afgetrokken. Het resultaat wordt weer teruggeschreven in QUOTNT. Deze routine is dan hiennee beeindigd. WeI moet er op gelet worden dat na terugkeer uit deze routine eventueel de LARP 1 instructie gebruikt moet worden.
6.9.
32-BITS DEEL ROUTINE: DEEL32
Functie
In deze routine wordt een 32-bits teller door een 32-bits noemer gedeeld. De noemer wordt verondersteld positief en groter dan de teller te zijn. Omdat deze routine a11een bij het moduul MATRIX wordt gebruikt om te normeren, klopt deze verondersteUing. De noemer is namelijk R (0)+2- 24 • R (0) is al1ijd positief en R (Ot /mR (10) zijn kleiner dan R (0). Bij het aanroepen van deze routine behoort de teUer waarde in TEIJ-lI en TELW te staan, hoogste 16 bits in TEIJ-lI en laagste 16 bits in TELW. De noemer waarde behoort in NOEMHI en NOEMW te staan, met de hoogste 16 bits in NOEMHI en de laagste 16 bits in NOEMW. Aan het einde van de deli~1g staat het resul1aat in Q1S formaat in QUOTNT. (Benodigde machinetijd : 0,068 ms)
Uitleg
Op de plaats waar deze routine aangeroepen wordt is auxiliary register ARO actief en hoeft er dus achteraf geen extra LARP 1 instructie uitgevoerd te worden. In auxiliary register ARO wordt de waarde 15 geladen om de DL32LP loop 16 keer te doorlopen. Deze loop moet nu in tegenstelling tot de vorige deel routine 16 keer doorlopen worden omdat de allereerste deel slag 0 oplevert. Bij de vorige deel routine konden de teller bits al naar links verschoven in de accumulator geladen worden! zodat deze eerste loze slag overgeslagen werd. Nu kan dit verschuiven met aIle 32 bits tegelijk wat moeilijker gerealiseerd worden, zodat deze extra loze slag meegenomen wordt. Een ander punt is dat bij deze 32-bits deel operatie de SUBC instructie niet gebruikt kan worden omdat we niet in een keer een 32-bits getal van de accumulator kunnen aftrekken (met uitzondering van het Pregister). De werking van de SUBC instructie moet hier dan ook op een andere wat omslachtigere wijze gerealiseerd worden. Om te beginnen wordt Overflow Mode ge-reset om te voorkomen dat er verkeerde resultaten ontstaan. QUOTNT wordt gecleared. Het teken van de teller bepaalt het teken van het quotient, zodat de hoogste 16 bits van de teller naar TMPSGN gecopieerd worden. Vanaf dit moment kan er met de absolute waarde van de teller gewerkt worden. De absolute waarde van de teller wordt teruggeschreven in TEWI en TELLO.
76.
Programma moduul beschrijvingen
CALL~~n~2----
S;~
OcCL32:
L~~d ~Of'DU~fw~d~
AR¢ o~ Jeel/oo!, 16 Jcfer fe dOD rio en irl
7eller-~
RESPO~:
Sc,hlAi{ nctctr
/oo/, count := t~/Jcou»f - i
5(fJ.OTIt/'T
i
rt~Llltaai
bit
IAltfYif
U.,b
L.SIIIFi:
IIJlI.arrle
.Ie. nitu.wc T.eller
SCh ".,'! Teller i kd n~ftr /,'nks
Alee
/lie e.
EIND32 :
Re turn
z fig. 27 : Flowdiagram van 32-bits deel routine DEEL32
77.
Programma moduu! beschrijvingen
Auxiliary register ARO wordt met 15 geladen. In de DL32LP loop wordt eerst de noemer van de accumulator afgetrokken. Als het remltaat negatief is, mag de teller waarde niet veranderd worden. Bij RESNEG wordt QUOTNT dan 1 bit naar links geschoven. Daarna worden bij LSHIFT, TELHI en TELLO tezamen 1 bit naar links geschoven. Als echter het resultaat in de accumulator positief is dan wordt dit resultaat de nieuwe waarde van de teller. Bij RESPOS wordt de accumulator naar TELHI en TELLO gecopieerd. Daarna wordt QUOTNT 1 bit naar links geschoven en bij het minst significante bit hiervan wordt 1 opgeteld. De nieuwe teller waarde moet nog 1 bit naar links geschoven worden. Dit gebeurt bij LSHIFT waar TELHI en TELLO tezamen worden verschoven. Deze nieuwe teller waarde wordt in de accumulator geladen en DL32LP wordt weer herhaald, net zolang totdat ARO < 0 is. Het remltaat van de deling staat in absolute waarde in QUOTNT. Als het teken in TMPSGN positief is, wordt deze routine beeindigd. Als TMPSGN echter negatief is, wordt eerst de accumulator 0 gemaakt en daarna QUOTNT hiervan afgetrokken. Het resultaat wordt dan weer teruggeschreven naar QUOTNT. Deze routine wordt beeindigd na het activeren van de Overflow Mode.
78.
Metingen, resultaten en conclusies
7.
7.1.
METINGEN, RESULTATEN EN CONCLUSIES
:MEET:METIIODE
De berekeningen voor de LPC analyse en de nIter realisatie zijn nu in assemblertaal geimplementeerd. Hoe goed is de kwaliteit nu van deze analyse ? Een meting om dit te bepalen zou kunnen zijn, het meten van het errorsignaal bij verschillende nlterorde's. Er moeten meetmethoden bedacht worden waarmee de gewenste metingen op correcte wijze uitgevoerd kunnen worden. Deze meetmethoden moeten zodanig zijn dat ze exact reproduceerbaar zijn. Dit wil hier zeggen dat we bij iedere meting over exact hetzelfde ingangssignaal moeten kunnen beschikken. Alleen dan is het mogelijk de resultaten met elkaar te vergelijken. Voor de metingen komen drie soorten ingangssignalen in aanmerking, namelijk : Analoge cassetterecorder signaal. Digitale samples vanuit een andere computer. In de TMS-32010 synthetisch gegenereerde samples. Een cassetterecorder levert realistische spraaksignalen af maar heeft het nadeel dat we nooit exact hetzelfde ingangssignaal tot onze beschikking hebben. Ais bij de verschillende metingen de recorder enkele milliseconden later of eerder gestart wordt, dan hebben we andere samples in de windows. Het verschil tussen de windows van de verschillende metingen is misschien maar een fractie, maar het werkt toch niet njn op deze manier. Een ander nadeel is dat binnen een meting het spectrum van ieder window anders is. Dit is ook niet wenselijk, want we hebben het liefst dat ieder window hetzelfde spectrum heeft. Dus cassetterecorder vervalt. Digitale spraak samples vanuit een andere computer kan in principe goed functioneren. De computer kan voor iedere meting exact dezelfde samples leveren. Dit zou dan via de expansion input en output poorten van het AI~board moeten gaan. De TMS-32010 zou via de expansion output poort timing-signalen kunnen geven waarop de andere computer de samples via de expansion input poort toelevert. Hoewel de methode goed kan functioneren, ontbreekt het aan tijd om de timing
79.
Metingen, resultaten en conclusies
tussen het AlB-board en de andere computer uit te zoeken en eventueel de interface tussen de twee te realiseren. De methode die nog n:st is het synthetisch genereren van de ingangs samples in de TMS-32010 zelf. De samples zijn misschien geen echte spraak samples, maar we kunnen toch correcte metingen uitvoeren om de nauwkeurigheid van de analyse berekeningen te controleren. We moeten weI zorgen dat de nIter structuur waarmee de synthetische samples gegenereerd worden, exact het inverse is van het analyse nIter. Hiermee bereiken we dat het synthese nIter en het analyse nIter samen een overdracht I hebben. Ais we dan zelf de nIter coefficienten van het synthese nIter invullen en dit nIter aanstoten met een puIs, dan moeten de berekeningen voor het analyse nIter exact dezelfde coefficienten opleveren. Het errorsignaal uit het analyse nIter moet dan identiek zijn aan het ingangssignaal van het synthese nIter, dus ook een puIs.
r-------
- - - - ---------- ---J
TM5320(0
I
I
I
I
I
I I I
I
I I I
j
111111 I
I z" I I
~
X(i)
Slnthese {tlltY' ~ A(if)
~
I
A(z)
,
S(2)
_JI
I
!ol
£71
eCl)
--.
r
I
I L __
AIJd4Jf f· lle,..
I I
- - - - - - -- -------------o sc.il/oSGD? ~
5?~irum an.IJuY'
"
I I I
I __J
x
"
Xy- sr),"fj'o'e'"
(T
fig. 28 : Blokschema van de meermethode
Deze meetmethode heeft het voordeel dat het ingangssignaal van het analyse nIter steeds exact reproduceerbaar is en dat we op eenvoudige wijze met verschillende 80.
Metingen, resultaten en conc1usies
soorten ingangssignalen kunnen werken, gewoon door in het synthese filter andere coHficH~nten in te vullen. Hoe we met deze meetmethode de kwaliteit van het analyse filter kunnen bepalen, kunnen we als voIgt beschrijven : Stellen we even dat we een signaal genereren met bijvoorbeeld een 3 orde synthese filter. Om dit signaal te kunnen analyseren, moeten we precies een 3 orde analyse filter gebruiken. Een 2 orde analyse filter moet verkeerde resultaten opleveren. En een 4 orde analyse filter mag geen merkbare verbeteringen geven ten opzichte van het 3 orde analyse filter. Als dit zo blijkt te zijn, dan kunnen we zeggen dat het analyse filter goed functioneert. Tijdens de metingen moeten we dan de puIs, waarmee we het synthese filter aanstoten, aan de uitgang van het analyse filter weer terugzien, juist omdat het synthese filter en het analyse filter exact elkaars inversen zijn. Deze puIs zal alleen van de vorm sinex )/x zijn, omdat we een window functie gebruiken. De rest van het errorsignaal binnen de window moet dan vrijwel nul zijn. We kunnen ook andere synthetische signalen genereren met andere synthese filter ordes en andere coefficH~nten. Dan moeten we identieke resultaten vinden. C
C
C
C
C
7.2.
REALISATIE VAN DE SIGNAAL SYNTHESE
Het synthese filter wordt gerealiseerd door in het hoofdprogramma achter in het moduul FWITG het moduul SYNTHE te plaatsen, nog voor de label PAGEfJ] (dit is alleen maar om te testen, is dus in normale situaties niet nodig). In dit nieuwe moduul worden in een burst-mode de samples voor een nieuwe window gegenereerd. Daarna gaat de processor naar het moduul WACHT om de real-time tijdsduur van de huidige window vol te maken. Tijdens interrupts worden de samples van de AID converter weI gelezen (om de INT lijn te resetten) maar niet in het inleesbuffer geplaast. We kunnen nu met deze synthetische samples twee kanten op, namelijk als eerste via de uitvoerbuffers naar bUiten voeren, zonder analyse te doen. Dan kunnen we aan dit signaal zelf meten, hoe het eruit ziet en wat het spectrum ervan is. In tweede instantie kunnen we de gegenereerde samples naar de inleesbuffers schrijven en daarop analyse berekeningen uitvoeren. Om deze twee methoden te realiseren gaan we als voIgt te werk : We plaatsen vooraan in het hoofdprogramma enkele gegevens in een tabel. Als eerste een indicatiewaarde om aan te geven of de gegenereerde samples naar de uitvoerbuffers moeten of naar de inleesbuffers. Als tweede de fIlterorde van het synthese filter (maximale waarde = 9). Deze fIlterorde hoeft niet gelijk te zijn aan de fIlterorde van het analyse filter. Als derde hebben we de filter coeflicienten van dit synthese filter. Verder brengen we in het externe RAM geheugen nog een fIlterbuffer aan (Filterbuffer 2; 10 geheugenplaatsen). Hierin kunnen dan de laatste 10 samples van een synthese window geplaatst worden. Om een continu signaal te verkrijgen worden deze samples aan het begin van een volgende synthese window weer gebruikt.
81.
Metingen. resultaten en conclusies
+
fig. 29 : De structuur van het synthese filter
Het startadres van deze buffer staat ook in de tabel, nog voor de hierboven genoemde gegevens. De werking van het synthese moduul is als voIgt: Als eerste worden het nlterbuffer 2 startadres, de indicatiewaarde en de nIterorde van het synthese nIter uit de tabel gelezen (label: SYNTHE). Vervolgens worden ook de coefficienten van het synthese nIter uit de tabel gelezen (label: SYCOLP) , naar de geheugenplaatsen REFCOI tim REFClO (maximaal). Deze coefficienten worden negatief gemaakt om de aftrek bewerking tijdens de berekeningen te omzeilen. Met het inlezen van de laatste synthese samples van een vorige window, uit nIterbuffer 2, zijn de initialisatie acties voor de synthese voltooid. (Deze laatste samples worden op de geheugen plaatsen SMINOl tim SMINp geplaatst). Om de synthese samples voor een nieuwe window te kunnen genereren, wordt vervolgens op geheugenplaats SMPLO de waarde 1 Cin Q12 fonnaat) ingevuld. De geheugenplaatsen SMPLI tim SMPL79 worden 0 gemaakt (label: SYNUL). De waarde 1 in geheugenplaats SMPLO gaat als puIs fungeren waarmee het synthese nIter aangestoten zal worden. Daarna kan het genererenyan de samples beginnen. De nIter coefD.cienten worden vermenigvuldigd met de aanwezige samples en het geheel wordt gesommeerd (labels: SYNTLP en SYFILT). De constructie hier is identiek aan de constructie bij het moduul FIVITG. De samples worden weergegeven in Q12 formaat. De eerste synthese sample van de window wordt op geheugen plaats SMPLO geplaatst, de volgende sample op geheugen plaats SMPLl, etc. Om de waarde van een nieuwe sample te bepalen worden de laatst berekende p samples gebruikt. Deze p samples bepalen namehjk samen met de nIter coefD.cienten de waarde van een nieuwe
82.
Metingen, resultaten en conclusies
SYcoLP:
r;----rr-~~--____,
START SYGSLP:
r ; -_ _-=-----:"~---....,
SYNIJt:
UN/. hF :
Sdlf'!3f stl.Wlfle.s ~ I"lAtU'"
~
il'llees-
'ft./"
fig. 30 : Flowdiagram van Synrhese moduul
sample in de window Cpredictie). De synthese samples van een nieuwe window komen op deze wijze op de geheugenplaa1sen SMPLO tim SMPL79 te staan. Als alle synthese samples voor een window zijn bepaald, worden de laa1ste p samples Un het maxim ale geval de geheugen plaa1sen SMPL70 tim SMPL79) weggeschreven naar filterbuffer 2 (label: SCHBF2). 83.
Metingen. resulla1en en conclusies
Het kan voorkomen dat sommige samples een waarde hebben die> 1 is, in Q12 formaat. Omdat tijdens de analyse berekeningen alle sample waarden < 1 moeten zijn Cin Q12 formaat), worden alle sample waarden gecontroleerd. Als er een sample> 1 is dan worden alle samples door 2 gedeeld. Daarna worden de samples nogmaals gecontorleerd. Als er nog steeds samples zijn met een waarde > 1, dan wordt de deeloperatie herhaald. Dit controleren en delen wordt maximaal 3 keer uitgevoerd, want de samples zijn in een l6-bits woord Cin Q12 formaat) < 8. Tenslotte zijn dan alle samples < 1 (labels: TESTLP en SCHFLP). Ze worden dan allemaal geinverteerd omdat ze op het AIB-board nogmaals geinverteerd zullen worden alvorens ze naar de Df A converter gaan. Nu moet nog bepaald worden naar welke buffer de synthese samples weggeschreven moeten worden. De waarde van geheugenplaats LBUFAD Cin data-page 1) en de indicatiewaarde bepalen samen de buffer keuze. Deze keuze wordt als voIgt gemaakt: LBUFAD > 79 en indicatie = a : samples schrijven naar inleesbuffer 2. LBUFAD > 79 en indicatie = 1 : samples schrijven naar uitvoerbuffer 2. LBUFAD < 79 en indicatie = a : samples schrijven naar inleesbuffer l. LBUFAD < 79 en indicatie = 1 : samples schrijven naar uitvoerbuffer l. A1s de samples naar een in1eesbuffer gaan, dan worden ze in Q12 fonnaat ( waarde < 1 ) weggeschreven. Vanaf het moduul SMPLMV kan de processor dan aan de analyse berekeningen van deze sampIes beginnen. Als de samples naar een uitvoerbuffer moeten, dan worden de samples eerst 3 bits naar links geschoven om er Q15 formaat van te maken (nodig voor de Df A converter). Daarna worden ze naar de gekozen niet-actieve uitvoerbuffer geschreven. Als in het moduul FrUITG hier al iets ingevuld was, dan wordt dit overschreven. Dit is ook niet zo erg, want als de indicatiewaarde = 1 dan betekent dit dat we metingen willen doen aan de synthese samples zelf. We zijn dan even niet geinteresseerd in het uitgangssignaal van het analyse filter. Vanaf de label VERDER tot aan de label PAGE1J] wordt de juiste buffer gekozen en worden de synthese samples daarheen geschreven. Bij PAGE1J] wordt omgeschakeld naar data-page 1 en gaat de processor verder naar het moduul WACHT om het real-time einde van de huidige window af te wachten:
7.3.
VOORBEREIDENDE HANDELINGEN VOOR DE METINGEN
7.3.1. Ini tialisa tie van de hardware am te beginnen maken we op het HP systeem een nieuwe file aan onder de naam LPC_RWTl. Dit gaat eenvoudig door eerst de bestaande LPC_RW file hierin te kopieren en dan hieraan het moduul SYNTHE en de tabel met gegevens toe te voegen. Verder is ook een kleine wijziging in de interrupt routine nodig om het
84.
Metingen, resultaten en conc1usies
wegschrijven van de ingelezen sample naar de inleesbuffer te onderdrukken. Dit doen we door een * te plaatsen voor de regel met de instructie OUT SAMPLE,PA5. Hierna kan deze file ge-assembleerd en ge-linked worden. Als volgende zetten we het EVM-board aan en resetten het met de hand. Vervolgens brengen we het HP-werkstation in terminal mode door het intypen van TERM. Eenmaal in de terminal mode zal een carriage return het contact met het EVM-board op gang brengen. Na het instellen van de ACK en INIT (Clock source = External) commando's op het EVM-board, kan met het LPM 1 (EVM-board) commando en de soft function key upload LPC_RWTI :absolU1e (HP-systeem) de testn1e in het programma gEheugen van de TMS-320 10 ge1aden worden. De hardware is nu gereed om de metingen uit te kunnen voeren.
7.3.2. De meetapparatuur
E1
J3~1-------"'-"-
ArB
x o
0
fig. 31 : Aan.sluiting van. de meer.apparaten.
Voor de metingen gebruiken we een oscilloscoop, een spectrum analyzer en een XY -schrijver. De oscil1oscoop en de spectrum analyzer sluiten we aan bet Analog Interface Board aan. De oscilloscoop aan pin 5 van jumper E2 en de spectrum analyzer aan poort J3 (Analog Output). De XY-schrijver is aan de X en Y uitgangen van de spectrum analyzer aanges10ten (zie nguur 31). Met de oscil1oscoop bekijken we de vormen van de meetsigna1en. Deze signa1en tekenen we dan met de hand over op papier. Met de spectrum analyzer bekijken we de spectra van deze signa1en. En met de XY-schrijver 1eggen we deze spectra op papier vast.
85.
Metingen, resultaten en conc1usies
De instelling van de meetapparaten is als voIgt: Oscilloscoop (PHILIPS Trigger source Trigger mode Channel AC/DC
Time base Sensitivity
PM 3212)
reg. nr. : EEB 5645
A
Auto A
DC 2 ms/div 2 V/div of 5 V/div
Spectrum Analyzer (HEWLET'T PACKARD 3580A) reg. nr. Adaptive sweep OFF Amplitude mode Log 10 dB/div Amplitude ref. level NORMAL Frequency 0.00 kHz, START Display smoothing min Resolution bandwidth 30 Hz 0.5 kHz Freq. span/div Sweep time 1 s/div Input sensitivity +20 dB Switch dBV llin XY-schrijver (KIPP & ZONEN X-channel Polarity + switch \J Fixed \J Range switch Range 0,5 V Icm
BD 90) Y-channel Polarity switch switch Range
reg~
EEB 5613
nr. : EEB 5649
+ \J Fixed \J Range
0,5 V/cm
7.3.3. Herhaald voorkomende handelingen Er zijn een paar handelingen die tijdens de metingen herhaaldelijk voorkomen. Daarom worden deze eerst beschreven, alvorens de metingen zelf te beschrijven.
De handelingen die tijdens de metingen herhaaldelijk voorkomen, zijn : Het wijzigen van de tabel gegevens in het programma geheugen van de TM532010. Het uitlezen van de berekende analyse ftlter coCfficienten uit het interne RAM geheugen van de TMS-32010. Het wijzigen van de tabel gegevens in het programma geheugen van de TMS32010 gebeurt met behulp van het commando MPM < tabeladres >. De gegevens die we op deze wijze willen wijzigen zijn : de indicatiewaarde (prog. adres: > 10), de synthese ftlterorde (prog. adres: > 11), de coeffi.cii~nten van het synthese ftlter (prog. adressen: > 12 tim maximaal > 1B) en de analyse ftlterorde (prog. adres: > 04 ). Om bijvoorbeeld de indicatiewaarde te wijzigen, typen we het commando
86.
Metingen, resultaten en conclusies
MPM 10 in en geven een Return. Op het scherm verschijnt de waarde van deze geheugenplaats. Als we een Return geven blijft deze waarde ongewijzigd. Als we echter een nieuwe waarde intypen en dan een Return geven, dan zal deze nieuwe waarde ingevuld worden. Een nieuwe waarde zonder voor- of achtervoegsels heeft een Hexadecimale betekenis. Als we voor het getal een + plaatsen dan is deze waarde posirief Decimaal. Als we een - gebruiken dan is deze waarde negalief Decimaal. Het getal dat we intypen, moet liggen tussen de waarden : -32768 ~ geral ~ +32767. Als we na het bekijken cq. wijzigen van een geheugenplaats, in plaats van de Return toets, de spatiebalk indrukken, dan krijgen we de hierop volgende geheugenplaats op het scherm te zien. De berekende filter coefficienten van het analyse filter willen we graag vergelijken met de zelf ingevulde coefficH~nten van het synthese filter. Daarom moeten we na de berekeningen van de analyse filter coefficienten het programma op het jUiste tijdstip stoppen en deze coefficienten uit het interne RAM geheugen van de TMS-320 10 lezen. Hiertoe laten we eerst het programma lopen met de ingevulde synthese filter coefflcienten (RUN commando). Daarna resetten we het EVM-board (Reset switch tweemaal indrukken). Vervolgens brengen we op de eerste regel van het moduul FTUITG een Breakpoint aan (SB commando). Als we dan het programma met het EX 1 commando laten lopen dan zal het tot aan dit Breakpoint lopen en daar stoppen. Met het DDM +101 +11 0 commando kunnen we dan de filter coeffidenten van het analyse filter bekijken. De waarden van deze coefficienten worden op het scherm dedmaal weergegeven.
7.4.
DE UITVOERING VAN DE :METINGEN
De metingen zijn in 3 groepen verdeeld. Per groep voeren we 4 metingen uit. In totaal dus 12 metingen. De groepen hebben de volgende betekenissen : Groep 1: Signaal synthese met behulp van een 3e orde synthese filter. Groep 2 : Signaal synthese met behulp van een 6 e orde synthese filter. Groep 3 : Signaal synthese met behulp van een 8 e orde synthese filter. We voeren de metingen uit in de volgorde zoals ze in onderstaande tabellen zijn weergegeven. Groep 1 meting 1.0
Meten aan bet uitgangssignaal van bet 3 e orde syntbese filter
meting 1.1
Meten aan bet errorsignaal van bet 2e orde analyse filter en de berekende analyse filter coefiicienten uitlezen
meting 1.2
Meten aan bet errorsignaal van bet 3 e orde analyse filter en de berekende analyse filter coefiicienten uitlezen
meting 1.3
Meten aan bet errorsignaal van bet 4£ orde analyse filter en de berekende analyse filter coefiicienten uitlezen
87.
Metingen, resultaten en conclusies
Groep 2 meting 2.0
Meten aan het uitgangssignaal van het 6' orde synthese filter
meting 2.1
Meten aan het errorsignaal van het Y orde analyse filter en de berekende analyse filter coefficienten uitlezen
meting 2.2
Meten aan het errorsignaal van het 6' orde analyse filter en de berekende analyse filter coefficienten uitlezen
meting 2.3
Meten aan het errorsignaal van het 7' orde analyse filter en de berekende analyse filter coefficienten uitlezen
Groep 3 meting 3.0
Meten aan het uitgangssignaal van het 8e orde synthese filter
meting 3.1
Meten aan het errorsignaal van het 7' orde analyse filter en de berekende analyse filter coefficienten uitlezen
meting 3.2
Meten aan het errorsignaal van het 8 e orde analyse filter en de berekende analyse filter coefficienten uitlezen
meting 3.3
Meten aan het errorsignaal van het 9' orde analyse filter en de berekende analyse filter coefficienten uitlezen
Hieronder volgen de beschrijvingen van de uitvoeringen van de metingen. Het groepsnummer is bij de beschrijvingen weggelaten, omdat de uitvoering van de metingen bij iedere groep identiek is. Per groep worden de metingen in de genoemde volgorde uitgevoerd.
meting *.0 :
Meten aan het uitgangssignaa1 van het synthese ftlter. Het EVM-board moet geinitialiseerd zijn. Ais eerste maken we in de tabel, op geheugenplaats > 10, de indicatiewaarde ""' 1. Vervolgens vullen we, op geheugenplaats > II, de synthese nlterorde in : voor een 3' orde nIter de waarde 2; voor een 6' orde nIter de waarde 5; voor een 8e orde nIter de waarde 7. Vanaf geheugenplaats > 12 vullen we de waarden van de synthese nIter coefficienten in. De eerste cotillicient op adres > 12, de tweede op > 13, etc. De waarden kunnen we gewoon a1s decimale integers invul1en. De integer waarde +8192 komt overeen met de real waarde +1 en de integer waarde -8192 met de real waarde -1. De nIter cotillicienten geven we namelijk in Q 13 formaat weer. De nIter coeflicienten moeten volgens de stabiliteitseisen binnen de stabiliteitsdriehoek liggen (zie dictaat Signalen III, hoofdstuk 3,ir. G.Verkroost,THE). De gekozen nIter coefficienten zijn bij de meetresultaten te zien. Met een RUN commando zal het programma uitgevoerd worden. Met de oscilloscoop en de spectrum analyzer kunnen we het uitgangssignaal van het synthese nIter meten. De XY -schrijver begint automatisch met de spectrum analyzer mee te schrijven a1s het. in de stand RECORD staat. Om het programma te stoppen resetten we 88.
Metingen. resultaten en conclusies
meting *.1
meting *.2
het EVM-board. De orde van het analyse hI ter een minder kiezen dan de orde van het synthese hlter. Meten aan het uitgangssignaal (errorsignaaO van het anaI)7se hlter en de coefficienten van dit hIter uitlezen. We maken eerst de indicatiewaarde = O. Vervolgens vullen we, op geheugenplaats > 04, de analyse filterorde in : voor een 2e orde analyse filter de waarde 1; voor een se orde analyse filter de waarde 4; voor een 7e orde analyse filter de waarde 6. Als we vervolgens een RUN geven, zal het programma uitgevoerd worden. Met de oscilloscoop en de spectrum analyzer kunnen we het errorsignaal van het analyse filter meten. Na beeindiging van deze metingen resetten we het EVM-board 2 x. Hiermee voert dit board een koude reset uit. ACK en INIT moeten nu opnieuw ingesteld worden. We kunnen dan een Breakpoint zetten op adres > OOFB (begin van moduul. FIVITG) en met EX 1 het programma tot aan dit punt laten lopeno Met DDM +101 +110 kunnen we de analyse filter coefficienten uit het data geheugen van de TMS-3201 0 lezen en met de door ons zelf ingevulde synthese filter coefficienten vergelijken. Als de analyse filter berekeningen goed uitgevoerd worden, moeten deze coefficienten identiek zijn, met uitzodering van kleine afrondfouten. De orde van het analyse hIter gelijk kiezen aan de oj-de van het synthese hlter. Meten aan het uitgangssignaal (errorsignaal) van het analyse hIter en de coefficienten van dit hlter uitlezen. Alvorens we de meting uitvoeren, resetten we eerst bet EVM-board 1 x (warme reset). Voor de rest zijn de handelingen bij deze meting identiek aan de handelingen bij meting *.1, met de uitzondering dat we nu de orde van het analyse filter gelijk kiezen aan de orde van het.synthese filter. Op geheugenplaats > 04 kunnen we de volgende waarden invullen : voor een 3e orde analyse filter de waarde 2; voor een 6e orde analyse filter de waarde 5; voor een Be orde analyse filter de waarde 7.
meting *.3:
De orde van het analyse hIter een groter kiezen dan de orde
van het synthese £l1ter. Meten aan het uitgangssignaal (errorsignaaO van het analyse hIter en de coeH1cienten van dit hIter uitlezen.
De bandelingen bij deze meting zijn identiek aan de handelingen bij meting *.2, nu met de uitzondering dat we de orde van het analyse filter ren groter kiezen dan de orde van het synthese filter. Op geheugenplaats > 04 kunnen we de volgende waarden invullen : voor een 4e orde analyse filter de waarde 3; voor een 7e orde analyse filter de waarde 6; voor een 9" orde analyse filter de waarde 8.
89.
Metingen. resultaten en conclusies
7.5.
DE 1vffiETRESULT ATEN
(Opm : Bij de spectra zijn aUeen de tappen van belang. De repetitie in de spectra wordt veroorzaakt door het windowen van het signaalJ. Groep 1: 3' orde signaal synthese
: Zeu ingevulde synthese fl1ter coefficienten
I sa 1 = - 0.5 I sa 2 = I
0,25
sa3 = + 0,75
I Berekende I I
analyse filter coefficienten
i
I
I I I
al a2
( = -4096 integer) ( = -2048 integer) ( = +6144 integer) Meting 1.1 2' orde analyse filter -0,71960 +0,29016
IIIIII IIIIII
a3 a4
Meting 1.2 3' orde analyse filter -0,50208 -0,24939 +0,74988 /11111
Meting 1.3 4' orde analyse filter -0,50500 -0,24841 +0,75183 -0,00391
Hieronder zijn de gemeten signalen weergegeven. Op de volgende pagina zijn de spectra van de gemeten signalen weergegeven.
L.
2 V/J.'~
t
90.
I
f .... {~JI~~5
,
o
L
.t
j
I
J
I
'~
:1I1et"i~ ~
I
!~to
('drlt~eJe e.nera:e.
1-40
I '
,:
I'
j
I
I
I
I
,
. ,I; ! i
I
i
\
i,.
i
I
I'
I
!'
I
.~.
I
[
!
o
;
i
Id/Jtifvt -., i e.Yl~#t' : !-~!'I : - 40
:t ,
I 10'0 f
!
4
,
i
I
I
I
I,
I
i
I
, .
i :i
,
I
I
I Ii;
,
:
:
;
,
I· 'II'~+' '! ,- r I j., I ' . atd~ A~I ~.'I,&~l1d5.! ~/jn~J/ ILBO SA"ftlum/! I I
J.[
I
..s' ,()O' fJ¥#
: I I I I 11/(1; ~n i , ! . i ,i j I I I Iii
,
I
I '
i
I:
1·--:· . ,
" i
l3~Jrcl~
1)1
J :.11" ~
,
'eln.·
1
:
I
Illjse f'ller:
I . "
I
.3
I;.)"
I
,
",ar :~'lI
I ,-
. . . "··r·, -_...._-".
5
3
I i ' I ! i
.I
!
I
"-) i
.(
'
l-mel/J'''J
I i I
':1 ' -2.0
,
f ~(i(N~J
i
!
i
I
.f
i
:
:
f -r(kH~) I
5
i +.. 4-·+.-'- .--.1"'1''';--+'''''' 1
i
'+---'- .. 1--~;-----l.,.J, I .L ... ' .
"
,"
.! ....
~++_~_'j ;,j._ :~ _~ i ...
.. __ L ....
i
, I "
e +-'I·+--I».. j.I.:
I£,./~
I
,
I
.
I:i
I
~•
I ,I
Ii
I, ,
Metingen. resultaten en conc1usies
Groep 2: 6 e orde signaal synthese Zelf ingevulde synthese hIter coe:ffi.cien ten I sa 1 = - 0,36011 ( = -2950 integer) sa 4 = -0,53711 ( = -4400 integer) I II sa 2 = - 0,13428 ( = -1100 integer) I sa 5 = +0,48828 (= +4000 integer) I sa3 = + 0,54932 (= +4500 integer) l_sa...::6~=_+_0,~3_9_06_3 __ ( _=_+_3_2_0_0_in_t_e..::;.ge_r_) I
I
I
I II
Berekende analyse filter coefficienten
I
a1
I
a2 a3 a4 as a6
I
II
I
a7
Meting 2.1 se orde analyse filter -0,45776 -0,18591 +0,38586 -0,31812 +0,53394 IIIIII IIIIII
Meting 2.2 6 e orde analyse filter -0,16199 -0,36023 +0,59814 -0,42078 +0,28491 +0,54810 IIIIII
Meting 2.3 I e 7 orde I analyse filter
----:..-_-----------
I
I
-0,16785 -0,36389 +0,60266 -0,42773 +0,29004 +0,55005 -0,01282
I I
I I I
I
Hieronder zijn de gemeten signalen weergegeven. Op de vo1gende pagina zijn de spectra van de gemeten signalen weergegeven.
_ . : _ ••• 1 • •
.. ~ .
,
~:
•••••
iiI
:
-·-i---1-.~
_-+-~-l--l
~ .. : ...( ...I....... ..._ ' -~!... _ ..,._.. j -+-.---1 i I , .L.... Ji I. i ! I! • i , 1 + . J' II- VI 1:'
,.,.,,1It."
!
j
[
....
_j
...
J
__
. -t... i- ~il:-/~~L...J.I·_· --i,----t--t-,·,-'j -~I?~ '-ii .. i-I i
)
I
i
- .
( : 1 .
j
I
:
:.
_l._!__ J , j :
I
_ 2,_3! i I I !... , ,l-- ··_·-f -~--+-j !
.i ..
r-
j
I
! ,-
i J
.J
I
\
I
J_._,
I'
' - 4 __
,- 1
I
I
"I
I
1._-.
1 .. J.. !
1,
--II
,
~
i
I
L__ ~_ -
-,.
__
.~
... -.
-_.._-_.
__
.. --~----,
92.
,
:~ P..-I , f '"t (.UiJ, 'I
,
'
,
!
o
j
I
.'
i
I
-
,
~10
reldHtl/~
~ner~I'e,
,
L.to
t (Je)
. I'
i
--- -1:l..
!
f",eW~t
I ..
I
I
I
t
\-,
i
I ' j.
Ii
i
I
II
I
, '-
_ Ii..
I
f
j';I I ,I --I - i' __
I
j
-. . I
I
u'
•
Metingen, resultaten en conclusies
Groep 3:
se
orde signaal synthese
I Zelf ingevulde synthese filter coefficienten I
I I
I
a1 = a2 = a3 = a4=
( = -3200 integer) ( = - 900 integer) ( = + 800 integer) ( = - 800 integer)
- 0.39063 - 0.10986 + 0,09766 - 0,09766
Berekende analyse filter coefficienten
Meting 3.1 7 e orde analyse filter -0,37024 -0,09924 +0,36035 -0,16589 +0,60815 +0,02185 +0,02332
al a2 a3 a4 as a6 a7 a8 aq
I
Meting 3.3 ge orde analyse filter -0,38440 -0,10608 +0,09875 -0,09204 +0,45313 +0,06323 +0,18335 -0,43237 +0,00562
Meting 3.2 se orde anal yse filter -0,38062 -0,10840 +0,09863 -0.09436 +0,45264 +0,06421 +0,18347 -0,43066
IIIIII IIIIII
( = +3800 integer) I ( = + 550 integer) I ( = +1500 integer) I ( = -3500 integer)
as = + 0,46387 a6 = + 0,06714 a7=+0,18311 as = - 0,42725
IIIIII
I
I
I I I
I I I
I I
I
I I
Hieronder zijn de gemeten signa1en weergegeven. Op de volgende pagina zijn de spectra van de gemeten signa1en weergegeven.
~-
'3;01 : .
~. -
......
1--'9';....[ ------+...-
2o/'~v -I~J'
t :.
''''j' : -'1
...:
~.li
,-;I---j---'-1'
-II1t H+A,
I'
i
---j..
'--'1"-:
H" I i~'" . . . . - . - .--..
..-
. .. - ··-t " ····1 . I 11. .. J" . . 1 L -tH----I!~·+_T·--+--_t_-7· -- ,-+----L ." -'-- t I' i I ' i
"j .. !---'7--iHHtHIH HH-I--fft-H
--j--:'-iIIIHtf,"U
I.
-. .. :
'
I
t--+tttttf'H+tt+-l+H++iH-HfttH++~, .........---.---·...........,.-~,,*,/I¥A,~looofI"o~~IIY¥'f---·-IH 11 HH-IHI
i i i•. , . i 1--I .-.; -'i~'-I·-_~~j~_: _ l----J_~.J . . ",1
1--r--ftf-lHfj+f-t-tH-+H++jf-H-H-V-HH~~
~+~
i ,
'I~j :.
:-~~-.
':T'i---f-T-
I
:
..l..
i l l
1 "'i"
1: I
"'j s"tJill
I
i
i
.
I
:
I
:
I
. ....
I +-_.
,
' t- : .---~-, I
.
'0-'
I
[
!
v: " : :! Ii, I ' , rt---T-2' J:.,Z;:---- ~- ----k+--.~·sA\-·· .J... i H i y'JIv' i j ! ~V- . .--._1 -. 'i-'--'+-'~-"-+'" I.;: -1"'-: .--.; ''''+1 -'~,-- ',"'11 '11, -+I_~.JI·" _. ~.3,.: .. '.. ill 1 . ·_·-~-t-"-r-·-··-T--· j
I-.'.-t-
"C'
.~~ t··~·_··_;,..
,i II
...
~.-
'I
i
'-i-'" : I.. It.!
, J' i I , j .__ ._.,--~-_.+-._-
I
I; f-· --f
I
I,
--+-'-+--'--+----Ir-:...{---.., . . . . . . , .. ' ' I l - -I .... ' ! . .
.. -+-_····_-t
I , r---J--'-i"--T~ '--'+-'-7---i--
!.
'1"S
. ."
:
t---'-
--1-1
.: -+.. ---.
,
' : i---,-+--·-------+·~·
I
:
I
. .... ... • ..
'
.~
I
.. . --l__ ....
.
1 I
.J_.......L__
I
i
-- -!--..__.... !
:
94.
,
j
!
,
,
I
i"
I
:f +(~1I2)
I
O+---+-_fl---+---+-~_ _...... 3 --i_+~-'''''--+$'---. :»1
I
,lind:d-
j
I I
l -"
..
I
; i
~2.o
reldb'ev~
eneY-gie.
Ho ,
, i j
t (J8)
. , I
~Oo
!
J,co
.
\
~ •
.
i
!
I
I
5recfrl,f,t, v4n htl q/'.jf4'!1S&i.!n".,'( v-n -e,r' ~fl tj,rv:le s.J..1JIA~s~: f'/terj Si3 n4d/:: .$..,
I'
--,- I I !i i __ i-, -
_!._j.J .. , ,. b
_.-j-_.
i
-r-7-+~t-:-+----+----l-+---+--4---=~-+---
Metingen, resultaten en conc1usies
7.6.
CONCLUSIES
Als we de meetresultaten vergelijken met onze verwachtingen, dan krijgen we het vo]gende beeld : Bij de metingen *.1 verwachtten we slechte resultaten van de analyse berekeningen. Bij de meetresultaten zien we inderdaad dat de analyse tekort schiet, bij alle drie de groepen. De analyse nIter coefficienten wijken af van de synthese nIter coefficH~nten. Bij het oscilloscoopbeeld zien we een ernstig misvormd errorsignaal van het analyse nIter. Het spectrum van het errorsignaal bevat nog teveel van het ingangssignaal. De resultaten komen dus overeen met onze verwachtingen. Bij de metingen *.2 verwachtten we goede resultaten. In die zin dat de berekende analyse nIter coeffidenten identiek zouden zijn aan de door ons zelf ingevulde synthese nIter coem.cH~nten en dat het errorsignaal van het analyse nIter een sin ex )/x vormige puIs zou zijn. In de meetresultaten zien we dit inderdaad terug, aan het begin van de window een puIs en de rest vrijwel nul. Alleen bij meting 2.2 zien we iets vreemds. De berekende analyse coefficienten wijken af van de door ons zelf ingevulde synthese nIter coefficienten. Om te controleren of de berekende coefficienten weI juist waren, hebben we deze berekende waarden in het synthese nIter ingevuld. Het bleek toen dat het synthese nIter hetzelfde signaal produceerde en ook hetzelfde spectrum te zien gaL Gezien dit resultaat moeten we dan ook aannemen dat de analyse correct wordt uitgevoerd. Wat het spectrum betreft : We kunnen in het spectrum van het errorsignaal niets meer terug vinden van het synthesesignaal. Het is een vlak spectrum _ hetzelfde spectrum als van witte ruis. Dit houdt in dat de analyse berekeningen correct uitgevoerd worden. De resultaten komen dus overeen met onze verwachtingen. Wat de metingen *.3 betreft : Deze mochten geen wezenlijke verbeteringen opleveren ten opzichte van de metingen *.2. Zowel wat de berekende coefficienten betreft, als de errorsignaalvormen als ook de spectra kunnen we inderdaad nauwelijks verschil zien ten opzichte van de resultaten van de metingen *.2. Dus ook hier komen de resultaten overeen met onze verwachtingen. Naar aanleiding van deze resultaten kunnen we concluderen dat de toegepaste autocorrelatie LPC-analyse methode correct functioneert. Met deze methode is het mogelijk, in real-time, uit een stuk spraaksignaal optimale coefficienten te bepalen om bij synthese weer het oorspronkelijke spraaksignaal terug te kunnen genereren.
7.7.
MOGELIJKE VERBETERINGEN EN AANBEVELINGEN
We kunnen hier een paar punten noemen die voor verdere onderzoek in aanmerking komen : Ais we de spectra van de errorsignalen bekijken, dan zien we dat deze vrij vlak verlopen (een teken voor het geed functioneren van de analyse). We zouden
96.
Metingen, resultaten en conclusies
echter weI graag zien dat de niveau's van deze spectra veel lager komen te liggen. Bijvoorbeeld bij -80 dB of -90 dB in plaats van de -40 dB waar ze nu liggen. Zolang dit niet gebeurt, zal het noodzakelijk blijven de errorsignalen, met bijvoorbeeld Delta modulatie te coderen en mee te sturen met de berekende coefficienten. Als het echter mogelijk wordt het niveau van de error spectra te verlagen tot bijvoorbeeld -90 dB, dan zullen de errorsignalen eruit zien als witte ruis. Dit betekent dat er geen informatie meer in de errorsignalen zit. Er hoeft dan van het errorsignaal niets gecodeerd en verstuurd te worden. Tijdens synthese kan dan volstaan worden met een ruisbron om het synthese filter aan te stoten. De niveau's van de errorspectra zouden verlaagd kunnen worden door bijvoorbeeld gebruik te maken van een andere window. Bijvoorbeeld een Hamming window, in plaats van de rechthoekige window die we nu gebruiken. Een ander punt betreft de berekende coem.cienten. Tijdens de analyse hebben we zowel refiectie coefficienten als ook filter coefficienten berekend. Beide coefficienten sets bevatten evenveel informatie over de beschouwde window. Het versturen van een van de coefficienten sets naar de synthese zijde is voldoende. Maar de refiectie coe:fBcienten zijn allemaal < 1. Van de gewone filter coefficienten kunnen we dit niet zeggen. Het verdient dan ook aanbeveling voor transmissie de refiectie coefficienten te gebruiken. Eventuele transmissiefouten kunnen dan gemakkelijker herkend worden. Aan de synthese zijde kunnen door middel van een paar eenvoudige berekeningen de gewenste filter coefficienten uit de refiectie coefficienten berekend worden. Het moet ook mogelijk zijn de refiectie, c~£licienten voor transmissie nogmaals te coderen, zodat er tijdens de transmissie met nog minder bits kan worden volstaan. Een verdere roouctie zou verkregen kunnen worden door de coefficienten van opvolgende windows met elkaar te vergelijken en de coefficienten alleen dan te versturenals ze anders zijn dan die van een vorige window. Een laatste punt, maar niet de minst belangrijke, nl : de window grootte. Het is nog steeds een onduidelijk punt hoe groot de windows gekozen moeten worden. Ook in de literatuur is dit erg onduidelijk. Bij onze systeem is vanwege de beperkte geheugengrootte ~n window van 8 ms gekozen. In principe kunnen de windows varieren van enkele milliseconden tot enkele tientallen milliseconden. Welke windowgrootte het meest geschikt is voor een bepaalde toepassing, moet nag nader onderzocht worden. Misschien kan de nieuwe TMS-32OC20 processor hier uitkomst brengen (100 ns instructie cyclustijd, 544 woorden interne RAM geheugen).
97.
LITERATUURLUST
Boeken: [1]
[2]
[3]
[4]
Fallside, F. & W.A. Woods COMPUTER SPEECH PROCESSING. London: Prentice-Hall, 1985. THE-nummer : DGR 85 COM. Markel, J.D. & A.H. Gray, Jr. LINEAR PREDICTION OF SPEECH. Berlin: Springer, 1976. Communication and Cybernetics series, vol. 12. THE-nummer : PKK 76 MAR. Haykin, S. INTRODUCTION TO ADAPTIVE FILTERS. New York: MacMillan, 1984. THE-nummer: DNB 84 HAY. Widrow, B. & S.D. Stearns ADAPTIVE SIGNAL PROCESSING. Englewood Cliffs: Prentice-Hall, 1985. Signal Processing Series. THE-nummer : LRF 85 WID.
Tijdschrift artike1en & Con2'res vers1a~en : [5] Makhoul, J. LINEAR PREDICTION: A tutorial review. Proc. IEEE, vol. 63, no. 4, Apr. 1975, p. 561-580. [6] Wakita, H. DIRECT ESTIMATION OF THE VOCAL TRACT SHAPE BY INVERSE FILTERING ACOUSTIC SPEECH WAVEFORMS. IEEE Trans. Audio & E1ectroaooust., vol. AU-21, no. 5, Oct. 1973, p.417-427. [7] Makhoul, J. SPECTRAL LINEAR PREDICTION: Properties and Applications. IEEE Trans. Acoust. Speech & Sign. Proc., vol. ASSP-23, no. 3, June 1975, p.283-296. [8] Gray, A.H. Jr. & J.D. Markel A NORMALIZED DIGITAL FILTER STRUCTURE IEEE Trans. Acoust. Speech & Sign. Proc., vol. ASSP-23, no. 3, June 1975, p.268-277.
98.
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16] [17]
[18]
Rabiner, L.R. et al. TERMINOLOGY IN DIGITAL SIGNAL PROCESSING IEEE Trans. Audio & E1ectroacoust., vol. AU-20, no. 5, Dec. 1972, p. 322-337. Gibson, J.D. ADAPTIVE PREDICTION FOR SPEECH ENCODING IEEE ASSP Magazine, July 1984, p. 12-26. Makhoul, J. STABLE AND EFFICIENT LATTICE MErHODS FOR LINEAR PREDICTION. IEEE Trans. Acoust. Speech & Sign. Proc., vol. ASSP-25, no. 5, Oct. 1977, p.423-428. Atal, B.S. & M.R. Schroeder PREDICTIVE CODING OF SPEECH SIGNALS AND SUBJECTIVE ERROR CRITERIA. IEEE Proc., Int. Conf. on Acoust. Speech & Sign. Proc., Tulsa - Oklahoma, 1978, p. 573-576. Atal, B.S. PROGRAMS FOR DIGITAL SIGNAL PROCESSING. IEEE Acoust. Speech & Sign. Proc. Society, p. 4.0-1 ... 4.3-7 New York: Wiley, 1979. THE-nummer : LRH 79 PRO. Colleeedictaa t : Verkroost, G. SIGNALEN III, deel 1. Afdeling der E1ektrotechniek, Technische Hogeschool Eindhoven, 1985. Dictaat nr. 5.625.0 Hand1eidineen : TMS-32010 USER'S GUIDE Dallas, Texas: Texas Instruments, May 1983. (SPRUOOl) TMS-32010 EVM-BOARD USER'S GUIDE Dallas, Texas: Texas Instruments, 1983. TMS-32010 ANALOG INTERFACE BOARD USER'S GUIDE Dalls, Texas: Texas Instruments, November 1984 (RTC/EVM32OC-06, REV. 1.0) TMS-32010 ASSEMBLY LANGUAGE PROGRAMMER'S GUIDE Dallas, Texas: Texas Instruments, 1983
99.
FILE: LPC_RW:BEHIAT
HEWLETT-PACKARD: TM8320
LOCATION 08JECT CODE LINE 2 J •,
5
Wed,
4 Jun 1986, 13:41
SfJUIH:L LINE .)t
* It *It
"TMS.520" FILENAAM : LPC DIT HET HET
RW PROGRAMMA MAAKT GE8RUIK VAN TWEE INLEESBUFFERS EN TWEE UITVOERBUFFERS. INGANGSSIGNAAL WORDT IMPI_ICIET DOOR fEN RlCHTHOEKIG WINDOW BEWERKr . UITGANGSSIGNAAL IS HEr ERRORSIGNAAL VAN HET FIR-ANALYSEFILTLR.
6 7 ItZXXXXXXXI.I./././.I.I.%Z%/./.Z/./.%7.Z/.Z%%r.zr.z/.%%ZZ/.%Z/.7.7.ZI.Z/./.Z7./.%%Z/./.%%/.Z/-/-%ZI.Z/-Z7./.Zzr.7.XXXX7.Zzr.r./.%%/.7.7./././.%7.ZZ* 8 It LINEAIR PREDICTIVE CODING ANALYSE VOLGENS DE AUTOCORRELATIE METHODE * 9 It M.B.V. HEr TM8-32010 EVALUATION 8UAND EN HEr ANALOG-INTERFACE-BOARD (NIEUW TYPE) It 10 1tr.7.ZZZ%%7.r.%r.%z/.7./-7.ZZ/.I.%I./.%I.ZZ/.%%7.XZ/.7.7.i.Z7./.Z%/./.7.7./.7.Z7.%/. %Z7.7.%%7./.%I.7.7.%/-%/.%% 7.7. 7.Z%7.7.7.7.7.7.7.7.7.7.7.7.%I.7.r.r.7.r./-7.I.*
1'/
* * * *
(LABEL)
;:'0
*
STAR T
I I
12 II 1J
1" I:':i
16
It
%%Y.7./-7.k/-%Y.%l.l.r.r./-Y.XZi.ZZZZ/-%%r.Zr.%%%/./-%/-7.%7.r. I. BLOKSCHEMA VAN HEY ANALYSE-PROGRAMMA I. %%7.I.i.r.%ZZZZZi.7.r.Xxr.ZZ7.ZZzr.r.r.r.7.Z7.7.i.r.r.i.%r.7.7.Z
If
(BIJBEHOREND BLOK)
(KORTE OMSCHRIJVING)
18 II I '7 II
t
INITIALH3AIlE
INITIALISArIE VAN INlERNE DATA-RAM VAN DE lM8-32U EN HEr AIB-80ARD.
21 ..
22 ..
I
1«--------------I
23 .. ;:'4
25 26
l(
* *
WACHT
• WACHTEN TOlDAT • ER fJU SAMPLES t BINNEN LIJN
• "
SMPLMV
I'
HAAL DE ao • SAI1PLES BINNEN
••
27 ..
28 II ;~9
It
30 31 32 33
* *
t
If
It
34 II
35 ..
36 ..
WACHT TDlDAT ALLE SAMPLES VAN lEN WINDOW 8INNEN ZIJN
HAAL DE IN EXTERNE RAM GLBUFFERDE SAMPLES VAN EEN WINDOW BINNEN NAAR DE INTERNE DATA-RAM VAN DE TMS-32U
3'7 ..
38 39 40
41 42
*
*It
MATRIX
*
• BEREKEN DE 1 t MATRIX ELEMENTENt 1----1 ROil TIM R10* 1
,
*
I
~"""''''''' '"''''''~''''' .. ,~",,,,,,,,
I I
~==~=:;~~~==::~:::===:;:::~:~:
5U It
I I I I
" 8EREKEN DE FIL- t TER COEFFICIEN- 4 " AI T/H A10 EN t • K1 TIM K10 1
I
.. ~:~~:~==~:~~::~ .. ==~:.~c~
51 .)1 ::;2 It
I
1--,-- ... -_..--.- .. -.) I
53 ..
V
43 1\4 4:')
* 1(.
.)1
46 II 47
*
4'7
*
FLlIlCO
48 II
~j"
.,..""
t
.
8EREKLN VANAF RO* ALLE MArRIX ELEMENTEN TIM RIUII IN GENORMALISEERDE VORM (ALB DE COEF. ALLLMAAL U 21JN GAAT HEI PROGRAMMA VERDER DIJ "FTUITG"
BEREKEN ALLE FILlER COEFFICIENlEN AI TIM AIO EN REFLLCTIE CDEFFICIENrEN K1 TIM K1U (~ECUR81EVE BEREKENINGENl
::=
1
·x·
:'j;'i
.)1
~.,6
I(
~
57)1
t
FlunG
t
DEREKEN HET Fll-4 lCW UITGANGSJ SIGNAAL eM t
IE9l0PTl~ : BEPALING VAN HET UIJGANGSSIGNAAL VAN HET ANALYSE FILTER, (U~i IE CONTAULEREN HOE GOED DE ANALYSE
...
-
HEWLETT-PACKARD: TM8320
Wed.
4 Jun
'I '/IJ6,
1.5: 41
P l\c;l~
,..."
LOCATION OBJECT CODE LiN~ Q
SOURCE LINE
5B
II
59
II
t t
60 II 61 II
(':I
t
PLAATS DE RESUL-f TAlEN IN EXlERNEt RM'I BUFF(R, t
b2 II b3 II
n
64 II 65 • 66 II 67 II
t"
be II b9 II '70 II
n
11 72
BRANCH NAAR (WACHT) VOOR DE t RESTERENDE • SAMPLES VAN D~ • NIEUWE WINDOW t t
c 0 0
86
88 89
II
....
91
""'
95
""
97 II '18 II 99 II
1----------------), (SUBROUTINES) INTSR
(INTERRUPT ROUTINE) t • -NIEUWE SAMPLE INLEZEN t • -FILlER UITCANCSSAHPLE l • NAAR DE DIA CONVERTER t t STUREN t t
II
~UFFER9
E.R ZIJN
DEZE ZIJN
1-
INLfESBUFFER 1
v
100
If
101
II
102 103
II
»
- INLEESBUrFER 2
II
II II II 108 II 109 II 110 II 111 II
10b 107
:0 I
III v
1
II
104 II
~
112 113 114
t (DEEL ROUTINE) t t DELEN VAN TWEE t • 1b BITS CETALLEN t t RESULTAAT WEERGAVEt • IN Q1S FORMAAI t
DEEL32
t (DEELNOUTINE) • ~ • DELEN VAN TWEE • 32 BITS GETALLEN t f (NOEMER 18 PUSIT.)l • ~ESULT. Q15 fORM, t
IN HET EXTERNE RAM GLBIED GESTATIUNEERD,
10S
....
DELtN
(BUFFERS)
9b II
"'"
I I I
I I
I
92 II 93 II 94 If
'WI
t
DE BLREKENINGEN VOO~ DLlE WINDOW IIJN AFGERONO, WACHT NU TOIOAI ALLE SAMPLES VAN DE EfRSTVOLGENDE WINDOW BINNEN 11JM, DE EERSIE SAI1PLES VAN DE NIElIWL WIIHlOW ZIJN ONDERlUSSLN UP INTERRUPT-BASIS BINNENGEKOMEN.
II
90 II
"'"'
t
•
I I I
II
87 II 0
t
If
II II II II II 80 II 81 II 82 II 83 II 84 II 85 II
n
t
II
75 76 77 78 79
VERLOOPT>
I
PAGE1
73 II 74 II
n
I I I I I I I
If
II II
80 GUIEUGENPLAATSLN SAMPLE 0 OP ADRES )9f (=159 D~CIMAAL~ SAMPLE 79 OP ADRES )50 (DOWN LOUNT ADRESSE~ING) DE SAMPLES VAN EEN NIEUW WINDOW (ONEVEN WINDOW) WORDEN HIERIN TISDELl CEBUFFERD WAARNA ZE DIJ MODULE (SMPLMU) NAAR DE INTERNE RAM VAN DE IMS-320 GELElEN WORDEN OM ER EEN PRE-EMPHASIS EN fEN HAMMING-WINDOW BfWERKING OP UIi TE VOEREN.
80 GEHEUGENPLAATSEN SAMPLE 0 UP ADRES )4F (= 79 DECIMAAL) SAMPLE 79 UP ADRES )00 (DOWN CUUNT ADRES8ERING) » DE SAMPLES VAN lEN NIEUW WINDOW (EVEN WINDOW) WORDEN HIERIN TIJOELIJK GEBlIFFERD WAAI'NA Ie InJ tlDDIJLl (SMPLMV) NAAR DE:, INTERNE: RMI VAN 1lE. TMS-32U GELEILN WORDEN OM ER fEN PRE-EMPHASIS EN HAMMING-WINDOW BEWERKING OP UIl TE UOlREN. 1
- UITVOERBUFFER 1
1
»
au GEHEUGENPLAATSEN (WORlll P~NALLEL GCBRUIKT MET INLEESBUFFER 1) SAMPLE 0 OP ADRES )lFFF (z 8191 DECIMAAL) SAMPLE 79 OP ADRES )IFBO IN DE1~ BUFFER srAAN DE ANALYSEFILIER UITGANGS SAMPLES VAN DE VORIGE WINDOW, BIJ I~DER INT~R~UPT, ALS ER LEN NIEUWE SAMPLE VAN D~ AID CONVERIER WORor INGELElEN (-) NAAR lNLEES(tUFFE:,I~), WlJRliT ER un D[ZE BUFFfR EEN OVUH.. EN~.mISTIG SMiPLI::. G~NOMEN OM NAA~ DE DIA CONVERTER GlSTUURD IE WORDEN, DELE
~
~
~
~
~
FILE: LPC_RW:BEHZAT
HEWLETT-PACKARD, 1"5320
LOCATION OBJECT CODE LINE 115 116 1t 7 11 B 119 120 121
:-' (')
"
122
n r-
n
r
Wed,
4
Jun l'/B6,
13:41
PACE
SOURCE LINE BESCHRIJVING GELDT ALLELN ALB DELE BUFrER DOOR DE PROCESSOR ALS ACTIEUL BUFFE~ lU GEKOLEN. UI1VOERBUFFERB 1 EN 2 IIJN OM EN OM AC1IEF. DI1 WISSELl NA I~DERE WINDOW. ALB DELE BUFFER NIlT ACTIEF IS WORDT HEr DOO~ D~ PROCESSOR VOLGESCHREVEN MET UITGANGSIGNAALSAMPLES VAN HEr ANALYSEFILTER (VOOR HEr IN BEHANDELING IIJND~ WINDOW), BIJ MODULE CF1UITG).
" "
"
II
" " II
If
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
"
139 140
II
-UITVUERBUFFER 2
»
ao GEHfUGENPLAAISEN (WORDT PARALLEL GEBRUIKT MEr INLEESBUFFER 2) SAMPLE 0 UP AD~EB )IFAF (2 Blll DECIMAAL) SAMPLE 79 or ADRES )lF60 FUNcrlf IS IDENTIEK AAN UIrVOERBUFFER 1. DElE lWEE BUFFERS ZIJN STEEDS AFWI9SELlND ACTIEF EN NIEr-AClIEF. bIT WISSELT NA IEDERE WINDOW.
»
10 GEHEUGlNPLAA1BLN -10 UP ADRES )OA9 SAMPLE - 1 DP ADRES )OAO (~160 DECIMAAL --I BTARTADR(9) HIERIN 9lAAN DE LA~rS1L 10 SAMPLES VAN EEN VORIG WINDOW DIE DOOR HEY ANALYSEFILTER WERD BEWERKl. BIJ HET VOLGENDE WINDUW WORDEN DELE ALS DE IN HEr ANALYSEFILTER AANWEZIGE SAMPLES GEBRUIKT.
It If It
If If If !Ii
If
-FlLTERBUFFER 1
SAMPL~
"
" It
If It
nB 1"17.7.7.7.7.7.7.7.7.7.7.7.7.7.%7.7.7.7.7.7.7.7.7.7.7.7.7.1.7.7.7.1.1.7.7.7.7.7.7.7.7.7.7.7.7.1.7.7.7.7.7.7.7.7.7.1.7.7.1.7.7.7.7.7.7-7.7.7.7.7.7.7.7.7.7.7.1.7.1.7.7.1.7.7.7.7.7.7.7.7.7.7.7.7.7.1.7.7-
~.'
\.,.I
~
V
"'" 'wi
'" 'V
'OJ
'
~, !lot
'-I
II
HEWLETT-PACKARD: *** LPC ANALYSE PROGRAMMA ***
FILE: LPC_RW:BEHIAT
14.~
f"AGL
-)I
)<,
144 "
ORG
1 4~j
1l1l01i F9110111l()f' OOO~~ F9000138
4 Jun 1986, 13:41
SOURCE LINE
LUCATION OBJECf CODE LINE 142
Wed,
146
B B
14'7
o STAR r INTSR
;ABSOLUUT SIART ADRES VAN HEI PROGRAMMA. 0 ;SfAR"f ADRlS VAN HOOFDPROGRAMMA ISTART ADRES VAN INTE~RUPT SERVICE RUUIINE
140 •
149 1S0
)I )I
1 ::,1 152 "*******K*********************************************~~***********)<,*********************************
"
153 K 154 *
r-
1 ~:/5
156
SfARf EN EIHD ADRESSlN VAN DAfA-nRRAYS IN HEY INTERNE RAM-GEHEUGEN VAN DE fMS-3211
SMPLO AUCDRll SHIN10 REFC01 FeA1l1
)I
*
1 ~,'l K
158 159
(1I04F) (Il04E.>
(1l000) (Otl5A) (1l059) (0050) (0059) (0050)
-..J
(0064) (0058)
\..I
(006E) (00b5)
17'1
'" ....
v
)I )l
)I
*
*
*II
89
ao
IADRES VAN 9AMPLl -10 (VAN VORIG WINDOW) IADRES VAN SAMPLL - 1
E(~U
100
EQU
91
IADRES VAN REFL. COEF. K1 IADRES VAN REFL. COEF. K10
EQU EQU
11 0 101
IADRES VAN fILTER COEF. A1 TIJDENS DE M'DE RECURSIE SlAP IADRES VAN FILTE.R COEF. A10 TlJDENS DE '1'DE RECUR9IE 5T.AP
EI~U
EQU
•
( 01l6F> (0070) (0071)
181
K***K*KICKKK**KIC*******************KKK**ICKICK**ICKICKK*KICK**ICMKK**K***KICKKM*KKKKII*ICKK******K*II***I1******
10:)
* EEN
186
HI7 FLIURD
1BB PAGEPT H19
oJ
DE SAMPLES DE AUTOCUR. MAlRIX ELEMENIEN D~ LAAISlE 111 SAMPLES VAN VORIG WINDOW DE REFLECTIE COEfFICILNTfN DE RECURSIEF BEREKENDE FILTER COEFFICIENlEN
180 * 181 **************************************************************************************************** ADRESSEN VAN GEHEUGEN PLAAlSEN IN DATA-PAGE 0 (VAN DE TMS-320) " 182 K 18:1 * VOOR GEBRUIK IN HET HOUFD PROGRAMMA *
'"'
v
BEVAT1EN BEVAlIEN BEVAlIEN BEVATlfN BEVAllEN
1(.
170 SMIN10 171 SHIN01 172 * 173 REFC01 174 REFC10 175 * 176 FCA01 177 FCA10 178
'"'
SMPL79 ACDR10 SMIN01 REFC10 FCA10
160 K*************************************************************************************************** 161 1(. 162 SMPLO EI~U '19 I ADr~ES VAN EERSTE, SM1PLL VAN fEN WINljOW EQU '78 IADRLS VAN IWE[lll SAIWLE VAN [EN WINIJOW 1 6.~ S/iI'Lt EQU 164 SMPL'I9 IADRES VAN LAATSTE SMIPLl VAN EEN WINDOW 00 16:5 * IADRES VAN MATRIX ELEMENT RO EQU 16b AUCORO 90 ;ADRES VAN MATRIX ELEMENl Rl EQU 167 AUCOR1 69 EQU ;ADRES VAN MATRIX ELEMENT R10 168 ACOR10 80 169
l"
K
*
TIM TIM TIM TIM TIM
)<,
*
,.. I
( 0072) (1l1l72 ) (OOn) (OO?4) (0075) (0076)
113
IBEVAT m~ WAARDE 1 IGEEFT DE (fILTERORI>E -- 1) AAN IGEEFI AAN IN WELKE DATA-PAGE DE PROCESSOR BEliG 18.
EQIJ EQU [Iau EQU lQlJ
114 11., 115 116 117
IBEVAT ;EiEVAf jliEVAT ,['EVAT I Ec[VAT
EQU
11 a
;LOOPGOUNIER OM BIJ lE HOUDEN ,MOllEN WORDEN (DOWN-COUNlER)
111 112
II
190 QUIJTNT 1 'j11 IMPNOE 192 NOEME.R 193 lE.LLER 194 TMPSGN 195 196 * * 19'7 LPCNTR 198
Elau EQU EQU
*
HEI RESULlAAT VAN DE DELING (Q1S FORHAAT) TIJI>ElIJK DE NOEMER WAARDE DIJ EEN DEELOPERATIE DE NOEMER WAARDE VOOW fEN DELING 116 BITS) DE TELLER WAARDE VOUR EEN DELING (16 BITS) TIJIlELIJK HET TlKEN VAN III DELING HO~VEEL
fIllER LUlFFICILNTEN
~ERLK[ND
4
HEWL~rT-PACKA~DI
II • •
LPC
ANALYB~
PROGRAMMA
Wed,
**~
4 Jun 1'186,13:41
F'AGL
~'-,
.,r""',
SOURCE LINE
LOCATION OBJECr CODE LINE fi
n
(0077 ) (0070) (0079) ( 007M
199 200 201 202 203
NSTCNT SI1PAI)R ELEMRI A1EHP
(0078)
204 NOEHLO 205 NUEHHI 206 TELl.O 207 TELHI
( OO'IC)
(')
(007D) (007E)
•
(007D)
208 209 KU\DO 210 Kl.ADl 211 KLAD2
( OO'IC)
2'12
("\
(007F) (OO'IE> ("'I
(0071J)
KLAD3 213 KLAD4
214 215
(")
216 217 2tr:l 219 220 221 222
(')
(;l
2t.~3
0
\"I
(0000) (0001) (0002) (0003) (0004) (000:5) (0006) (0007) (0007)
..,
(01108) (0009)
'-'
""
( 00 OM W
(0008) (OOOC)
...,
,.
~ I
tit WI
II
II
(OOOD)
( oDOE.> (OOOF)
•
111 NUS
RATE MODE COUNTR 2:~B UBUFAD 239 LElUFAD 240 NUL 241 LEESAD
*TMPCNT
•
J 4
IIII""""lt""IIII""""II"""(MITS NIET IN GEBRUIK VOUR ANDERL FDNCTIE)
DATA-PAGE 1 WORDT TIJDENS DE VOLGENDE AeTIES GEBRUIKT - INITIALISATIE - SAMPLES IlINNENHALEN UIT HEY EXT ERNE GEHEUGEN - INTERRUPT RUUTINE, OM SAMPLES VAN DE AID CONVERTER NAAR HET EXTERNE GEHEUGEN IE LEIEN EN OM FILTER-UITCANGSSIGNALEN VANUIr DE BUFFER IN HET EXTERNE GEHEUGEN NAAR DE D/A CONVERTER TE BTUREN. DE GEHEUGENPLAATSEN IN DATA-PAGE 1 ZlJN ALS VOLGT BEZET :
*
II
• II
*
II II
*
E.QU
o
Etlll
1
EQU EQU Elau EQU EQU Etill
E:QU
2 3 4
5 6
7 7
,BEVAT DE WAARDE 1 ,BEV~T DE WAARDE -1 ,KLOK RATE VOOR DE AID CONVERlER ,MODE WUORD VOUR DE ANALOG INTERFACE BUARD (NIEUW BOARD) ,tSAMPLES PER WINDOW COUNIE~ (DOWN COUNTER) ,UITGANGSBUFFERS-ADRES-POINTER (DOWN COUNTER) ,INLEESElUFfERS-A~RES-PUINTER (DUWN CUUNTER) ,BEVAr DE WAARDE 0 ,TIJDELIJKE OPSLAGPLAATB VOOR HET BEGINADRE9 VAN DE IN lE LElEN BUFFER
EQU
EI~U
EJ 9
EQU
10
,1IJDELIJKE OPSLAGPLAATS VOOR lEN SAMPLE UIT DL AID CONVERTER ,TIJDELIJKE OPBLAGPLAATS VOOW EEN FILlE.R SIGNAAL SAMPLE UIl HEl EXT ERNE RAM ,DElE SAMPLE WORDT DOORGlSlUURD NAA~ DE D/A CONVERTER ITIJDENS fEN INTERRUPT WORDr HIERIN DE WAARDE VAN DE IEXTERNE ~AM ADRES COUNTER UPGLBO~GLN,
II
STATUS ACCULG ACCUHG 252 AUXRGO 253 AUXkGl 2::)5
123
2
II
243 SAMPLE 244 UIIGSM
2:54
125
124
0 VUOR ALGEMEEN GEBRUIK
1
.**•••••••••*••*••••••••*•••*******.*******••****************************.**************************
232 233 ONE
245 246 247 2413 249 250 251
,KLADRUIMTE ,KLADRUIIfn:: ,KLA['RUIMTE ,KLADRUIMU: ,KLADRUIMlE
126
* **.***.*.***••***•••**•• ***.*.************~***~****~***.***** •••**.***•• *••••••••• *.***•••••••• *••• *.
229
242
12'1
EQU EQU [Iau EQU EQU
....
LOW-WORD VAN DE NOLMER VOOR 32-~ITS DELING VAN DE MATRIX ~L~MENTEN HIGH-WORD VAN DE NUEMER VOO~ 32-Blfa DELING (NOlMER 18 ALTIJD PUSIlIEF !) LUW-WORD VAN DE TELLE~ VUOR 32-BITS DELING HIGH-WORD VAN DE TELLER VUO~ J2-BITS DELING
*
*
234 235 236 237
IBEVAT IBEVAT ,BEVAT ,BEVAT
•
230 •
v
123 124 1"·" 126
*
228
231
Elau EQU Elm EQU
*
226 * 227 •
\;,)
INESTCOUNTER OM GLNEBTE FOR/NEXT LUOPS IlIJ TE HDUDEN IADRES VAN SAMPLL S(Nl IN DATA-PAGE 0 ,ADRES VAN MAT~lX-ELfMENT RI IN DATA-PAGE 0 ,fIJDELIJKE OPSLAGPLAATB VUOR D( FILTERCO~FFICIENT Al
Ef~U
•*
224 • 225 •
0
WJ
•
EQIJ EQU
119 120 121 122
Elau
.
•
EQU f.QU EQU EQU EI~IJ
11
12 13 14 15
,STAllIS ; M:CUM .l.At,G I AeCUrl , HOUG IAUX, REG () ,AUX, REG.l
(IPBLRGPLAATS OPBEkbPLAA'I8 OPBLRGPLAAIS Of'BfRGf'LAAlS OPIJERGPLAATS
Tl J1)E.NS
T!JDENS I I:J liENS rlJDfNS TIJDfNG
IlHERRUF'T INTERRUPT lNH:.RIWP'\ INTEI
lEN EE.N El,N fEN
.....
FILE: LPC_RW:BEHIAT
HEWLET1-PACKARD: ••• LPC ANALYSE PROGRAMMA
256 257 ;~58
(OOBO)
(00B1) (OOB2) (OIlB3)
(OOB4) (0085) (OOSb)
(OOB7) ( 008B) ( OOlW) (OoaA>
(008B) (008e) (0090) (ODelE) ( OOf.lF>
259 260 261 262 263 264 265 266 267 268 269 270
279 280 201 282
(.)
284 2B5
*
• .•
*111111111111*****••***.*•••*••***•••••••••••••••••••••••••••••••••••••••••••••***** ••*••••••••••••••••••• II
EI~U
1213 129
EQU HIU
131
EIJlJ
130
U~U
132
HILI
133 134 135 Db 137
H/U EQU EIJU E(~U E(~ll
EQU EQU EQU
1JB 13'/
140 141
EI~U
142
EQU
143
; '" 1
; ,,,- 1
II<.L.OK RMf.: ;HODE VUOR AlB - BUARD ;1BAMPLES PLR 'WINDOW COUNrER ;UITVOERBUFFER~ ADRES POINTER ;INL~ESBUFFERS ADRES POINrER ;"'0
;TIJDELIJKE OPSLAGPLAATS NIEUWE SAMPLE ;TIJDELIJKE FILlER UIJGANGS SAMPLE OPSLAGPLAATS ;TIJDELIJKE Exr.MEM.ADR.[;UUNTER OPSLAGPLAATS ;STA1US OPBERGPLAA1S BIJ INTERRUPT ;Aceu LAnG OPBLRGPLAATS DIJ INTERRUPT ;ACCU HUUG OPBERGPLAArS DIJ IN1ERRUPT ;AUX.REG,O UPSLAGPLAArS DIJ INrERRUPT ;AUX.REG.1 OPSLAGPLAATS BII INTERRUPT
II
*
* * II
*
*
*
II
""
289
II
290 291
II
""
29;:!
U
II
II
II
*
293 ..
2'14
II
2'n
II
S$$$$$$$S$$$$$$$$$$$$$S$$$$$$$$$$$$$$.$$$$$SS$$$$$S'$$S$SSSS $$$$$$$$$$$ $$$SSSSS$$ $S$$$S.$$$$ HET BEGIN VAN HET HOOFDPROCRAMMA $SSSS$$S" $$'S$$"$$$ $S$IS$S$S. $$$$$$.$S$$$$$$$S$$$$$$$$$.$S$$$$$$$$$$$$'$$$$$$$$$$$$$$$$$$
2(15 • 296 II
"" ....
298 2'/9
"'"
II II
30;~
•
,~o
1\
305 306
307
DE TEXAS INSTRUMENTS "DATA" SlATEMfNr IS HIER VERVANGlN DOOR DE "DW" BIATEHlNf ,! I
* * *
!! I LEr OP
OVERAL WAAR EEN "LOOP" WORDl DOOWLOPlN, WORDT HEr AANTAL KEREH DAT DE "LOUP" UITGEVOLRD WORDT BIJGEHUUDEN DOUR EEN OOWN·COUNT VARIA8ELf, DE WAARDE VAN DflE VARIABELE IS BTEEDS 1 HINDER DAN HET EIGENLIJKE AANTAL OAT DE "LOOP" NOG DOONLUPEN MOEI WORDEN.
II
*•••••••••••••=•••••••••••===.====.====.==••===.===r.=••,,=.r•••=.==.=============.====••=.==••••=.=J( II DATA W(\A!WEN • 11==.===.,.===•••===.=.===.===.========.====_=====.====c.n,,=.=•.=•. ===,===.=r•• ====.========.====.====J(
~10
If
~
311
It
OOll4 0009
V(lOI~AF
I'! LET OP
:~OH
309
Uf'MERI<.INGEN
*
~ I
ENKELE
II
:500 :5111
303
"'"
'-'
HIERONDER VOLCEN DE BENAMINGlN veUR GENfUClNPLAAISfN IN DA1A-PAGE 1 ALB DEZE IN INDIRECTE ~IODE WOI
*
286 287 28B
tV
(,
283 1I.$•• $$$$$$$.$$$$.$.$$$$$.$$$ •• $$$$$$$$$$$$$$$S$$$$$$$$$$$$$.$$$$$$$$$$S$$$S$$$S$$$$ •• $$$$$$$$$$$$$$
~
.....
4 Jun 1986, 13:41
11.11** •••1111* ••••••••••11••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
lONE !tUNUS IRATE IHODE IeOUNr IUBUFA ILBUFA INIJL ISAtlPL IUITGS ;~71 ITMPCT ~~'l2 I STAT8 ~~7:5 !A[;CUL 2'14 IACCUli 275 IAUXR 0 276 IAUXR1 2Tl 278
Wyd,
SOURCE LINE.
LOCATION OBJECr CODE LINE
.....
.*.
312 lABELO
DW
IF ILTERUlW[;·-1
--) FLHIIW
FILE: LPCRW:E
-
hE~LEIT-PACKARD:
LOCATION OBJECT COUf LINE ~
313 lAB£L1 314 315
OooB 0011)
:H'I
31b
318 319 320 321
n
c;
~~.30
337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 .553 354
0
..; W l..-
v
.....
3:::'5
"'" '-I
..., 'fill
i,
\oil
"
o
[HJF2AD FILTBF " "
DW DW
lFAFfl OOAOfl
*
4 Jun 1986, 13:41
PAGE:
INITIALISATIE MODijLE
*==~~~======:~====~=~=~%=====:~=~:=~:::~::;~~:=~.~=::= =~;=:~~=~=~==~~~~~=~:~=.=:=:~~::::~:~.:;~.;~~~~===w~:~ :::=~=~=:~:~=~;=:;~~~::::i:~;;~* I
START
..
"
* *
" " "
It
* " * " * " * "
.)t
IN DIT MODULE WORDT DE INTERNE DATA-RAM VAN DE TMS-320 GELADEN VANAF TABELO EERST WORDEN ER 3 WAARDEN IN DATA-pnG~ 0 GELADEN. DAARNA WORDEN fR e WAARDEN IN DATA PAGE 1 CELADEN.
" " It
"
MET (RATE) EN (MUDE) WORDT HEr ANALOCE INTERfACE BOARD GEINITIALISEERD. UE FILTER UITGANG9(RUIS)SIGNAAL BUFFERS WORDEN INITIEEL HET U GlLADEN. ALS LAATSTE WORDEN DE SAMPLE RATE CLUCK VAN HET A.I.B. EN INTERRUPT HODE VAN DE THS-320 GE-ENABLED.
It
" It
" 1(.
GEaRUIKIE VARIAaELEN I - IN DATA-PAGE 0 EEN I RAM [111] FLTORD I RAM [l12J PAGEPT I RAH [113]
..
~
1 9 1
~
" • "
*
It
"
*
367 "
369
1 ~'1
I>W
356 " 337 * 358 * 359 * 360 " 361 * ~562 " 363 It 364 It 3bS * 366 * 368
79 lFfFU
DW DW DW
329 HERLD
336
0
.OOllHI
It .
3i!fJ
331 332 333 334 335
Wwd,
~*.
I -1 --) EEN, PAGEP1, UNE ; =-1 --) MINUS ;SAMPLE. RATE --) RATE J SAMPLE FREQUENTIE • 5 MHl/(SAMPLE RATE + 1) IAIB MODE WAARDE (~LUK TlJDELIJK DISABLED) --) MODE JHODE BITS: J BIT 15 11M B : ~UOOO UUUO ) DON'T CARE J BIT 7 :=0 ) EXr. HEM. AOR. COUNTER COUNfS ON HEM. DATA WRITES J BIT 6 :-0 ) EX1. MEM. ADR. CUUN1ER COUNTS ON MEM. DATA READS J BIT 5 :=0 ) EXT. MEM. AOR. COUNTER COUN'fS DOWN J BIT 4 :=1 ) AUTOMATIC RECEIVE MODE FUR EXPANSIUN AID J BIT 3 :-1 ) AUTOMArlC RECEIVE MODE FOR ON BOARD AID J BIT 2 :=1 ) TRANSPARENT MODE FOR EXPANSIUN lilA J BIT 1 :=0 ) SAMPLE DELAY MODE FOR ON BOARD DIA J BIT 0 1=1 ) DHiABLE SAMPLE RATE CLUCK J(t SAMPLES PE~ WINDOW -1) --) COUNTR JBEGIN ADRES FILTER SIGN. BUFFERl --) UBW=AD J(t FILTER SIGN. SAMPLES IN TWEE BUFFERS -11 --) LBUFAO J =0 --) NUL ;STARr ADRES VAN TWEEDE UITGANGS RUIS BUFFER JSTART ADRES VAN FILTEABUFFER (SAMPLL -11
It
,n
r
OFFFFH 499
It It
322 ..
C-
1
DW DW DW
323 " 324 " 325 " 326 * 3;~7 "
0009 OU41" OOOA lFFF OOOEi 009F ooue 0000 0000 lFAF OOOE OOAO
IiW
It
r
(".
LPC ANALYYE PROGRAMMA
SOURCE LINE'
0005 0001 OO(lb FFFF 0007 01FJ
~
It**
* *••__
- IN DATA-PAGE 1 ONE I RAM MINUS RAM RATt RAM MODE RAM COUNTR RAM UBUFAD I RAM LBUFAD RAI1 NUL RAM
" 0) '" 1
It
1]· )FFFF (~-1) 2] 499 3]· EERST )OOlD , BlJ 4) 79 5] )lFFF 6] 1~)9 7] U
" I(
HODUL~
*
EINDE )OOlC
I(
* l(
.)t
..
BIJ EEN GEGEVEN PROCESSOR STA1US BCTEKENT
I
III = DON'T CARE 1 ~ ONBEKEND, HAAR WEL WAARDEVOL
PROCESSOR STATUS 81J MODULE BEGIN : OVM ~ III J INTM • RESET ; DP EINDE. : DUN .,. SLl ; INnl ., SL I' ; iiI" ._.a~a.a
•.••a_••
••
c~aa~
••
_=~=._a~
•• a.aca,c
,._~.,=
,.~~.==
~/III
.• _••• •• a=.=•••• ~
1 I
ARP '" III AI~P
., U
It I(
" I(
"
===.a==&.a===.=.=.=-~"
'7
FILE: LPC_RW:DEHZAl
:'
LUCATION OBJECr CODE LINE
r".
OOOF 0010 0011 001:? 0013 0014 0015 00lh 0017 00lS 0019 001A 0018 00lC
".,
ODIE 4902 001F 4803
Cl ~
n
n
7F8B 6EOO 7E04 6'l70 7E05 6?6F 67'i'1
bEOl 700'/ 7180 68tH 6'1AO 0000 F4000019
0020 4C05 0021 380S 0022 41)07 002,'1 F4000022
0
0 o O;~~ 0026 01127 0028
c· .....'
3803 6898 3003 4803
0029 4208 OO'~A
'-'
7F82
v
11 __
Wed,
4 Jun 1986, 13:42
PA(;L
373
374 375
~~ ';
376
377 ;3'78
31'1
3BO 3Bl 382 VOLGND ,'183 384 3ElS 386 .. 3137 3BB 389 It 390 ·,'191 392 CLRBUF 393
394 395 396 397 398
SOVM LDPI( LACK TBLR LACK TEcLR TBLH LDPK LARK LARK LARf' fBLR ADD BANZ
(l
ONE VOLGND
,SEf OVERFLOW ~ODE ,DATA-PAGE 0 ACTIEF ,1ADELO-ADRES IN ACCUMULATOR ,LEEt'. FILTERORDE WAAkDE I1~ ,H\BEl.1--A·DI~ES IN ACCUMULATOR I EEN 1= 1 ,PAGEPT :"" 1 ,DATA-PACE 1 ACTIEF ,lflABEL WAARDlN - 1) IN ARO ;BEGIN ADRES VAN DATAVELD IN DATA-PAGE 1 ,AR 1 ACT lET ILEES EEN DATA WAARDE UIr lABEL ,HODG AeCUM. OP NAAR VOLGEND DATA IN TAB~L ,LEES lOLANG ARO()O
OUT
Rr'llF._ ,PAt MODE,PAO
,SAMPL~ RArE WAARDE NAAR A.I.B. ;MODE WOORD NAAR A.I.B. (SAMPLE CLOCK DISABLED)
OUT OUT BANl
UBUFAD,PA4 ARO,UBUfAD NlIL,f'A5 CLRBUf
,fiLTER UITGANGSIRUIS)SIGNAAL BUFFER 1 ADNES NAAR ~xrERNE ADRES COUNTER }EX1ERN RAM lOP ADRES IN ARO ,CLEAR BUFFER GEHEUGEN (GEHEUCEN ADRES WORDT DOOR EXf.M~M.ADR. COUNTER f.lIJGEHOU }TOT HEr EINDE VAN INLEESBUFFER 2 (ARO FUNGEERT ALB LOOP-COUNTER)
LAR MAR
*..
IIRO, HODE
our LAR
o TABELO FLl ORD TABELI EEN PAGEp·, 1
AR 0,'7 ARt, lONE 1 IH
,ARO
It It
39'1
400 II 401 402 It 403 404 .. 40S .. 406 II
SAlol OUl
ARO,MODE HODE,PAO
ILAAD AkO MEf A.I.B. MODE WOORD (Ull DATA··-PAGE 1) ,RESET LSB --) ENABLE SAMPLE CLOCK ,STOkE A.I.B. MODE WOORD IN RAM ,NIEUW MODE WOORD NAAR A.I.B.
IN
SAMPU:.,PA2
,DUMMY LEES OPDRACHf OM DE INT-LIJN VAN DE A/D CONV. Tf RESlTfEN
EINT
,ENABLE IM5-320 INTERRUPT MODE
.===~=~===~==~~~~===~~:~==~=~==~===~:=:~==~~:~~=~~c=~:~=~:~;:~~;==~~=:~;~~=====:=~:::;:;~~==~~:~:=~~=;==~~~~=:~:~:=~=:=:=:~=:::~*
WACHT LUS MODULE I WACHT 40\3 " * +I 409 II ER WORDT GEWACHT 10LANG DE l4SAMPLES -1) COUNTER )= 0 IS. 410 * * II DELE WACHT LUB WORDT ALLEEN GEBRUIKT ALB DE PROCESSOk HELEMAAL NIETS IE DOEN HEEFf. 411 * UOOR HEr VERWERKEN VAN DE ALS DE COUNTER ( 0 IS DAN BEGINT ER EEN NIEUWE CYCLUS 412 * * BINNENGEKOMEN SAMPLES VAN EEN WINDOW. 413 * 414 It 41'5 II GEBRUIKTE VARIABELEN : * 416 - IN DATA-PAGE 1 * 1I 417 COUNTR I RAM [ 4] = )FFFF (81J MODULE LINDE) 418 PROCESSOR STATUS BU MOI)UU,. BLGIN (LIB) : [I Vi'\ ,~ SEr , INnl "., SLf ; DI-' '" 1 , ARP '" 0 1I 419 * EI NJ>E .. -.... > : DVI1 ~ Sf:. T I I Nl11 " !:it:. f • IW -'" 1 I liR P = 0 If 420 .. .. :~ :::~:~.:_.;:·=:·:~=.;:,.=:::.. =~:~~~~:~::.::~::::~m==: :::~::.~~:==* 421 *=~~.~====~=;::~:~==~==;~~:~~~~;~~~==~::==~~~l=~=:.~:::=~==~~;~:~=~::~::.~:.:~::"~~:::=~::::~:~=::::=_: 422 It 423 * 424 WACHT L.AC CIJUNTR,O ,LLES lfSAMPLES - l)COUNTER [lGEZ 425 WACHT IWACHl lOlliNG DELL ). 0 IS 426 It
....
""
......
w
..,
LPC ANALYSE PROGRAMMA
SOURCt:: LINE
370 371 * 372 STArn
407
"'"
""
***
..
n
~
HEWLErf-PACKn~DI
, I
OO'~B
2004 002e FD00002B
FILE: LPC.RW:BEHIAT
HEWL~IT-PACKAMD:
lOCATION UBJECT CODE LINE 427 428 4~~9
4:50 431 4:~2
433
.-'
, .
.
~.~
_.
,
'
Q
V
v
....
1I0:'B (11)]4 OnJ5 OOM. 0lU7
71 '7F 3107 4C1l7 7100
:Hll'7
00.~8
F9001103F
OO:~F
'"""
00411 Oil'll 110 4;~ 0043
..... -..J
6EOO 71110 31'71 451:11:1 F4000042
PAGI::,
..
MODULE OM SAMPLEB VAN fEN WINDOW BINNEN lE HALEN : BMPLMV
II
II II It It
M,B,V, DII MODULE WORDEN DE IN [XTERNE RAM GLHEIJGEN OPGE5LALEN 80 SAMPLES VAN EEN WINDOW IN EEN K~ER BINNENGEHAAlD NAAN DE INIERNE DATA-RAM VAN DE TMB-J20 , VOOR DE SAMPLES COUNIER (COUN1R) EN EVI, VOOR DE UIIVUERBUFFERS ADREB POINTE.R (UBUFAD) EN INLEESBUFFERS ADRES POINTER (LBUFAD) WORDEN NIEUWE WAARDEN GELADlN.
II I(
442
It
443 444 445 446 447
II II
II II It
4411
It
449
II I(
452
It
4~j3
*
454 SMPLMV 455
I(
II If
II I(
II
GEBRUIKTE VARIADELEN : - IN DATA-PAGE 0 PAGH" : RAM [1131 '" 0
II It
,"
x'
- IN DATA-PAGE 1 ONE RAM COUNTR RAH UHUF AI> RAli lBUFAI> RAM LEESA1) RAM NUL kAM
II
01 " 1 41 "1'7 51 )lFFf (ALS BUFFER 61 1~9 (ALS BUFFER 1
=
7J 71
I(
1 AeTIEF) I ~ )IFAF (Al.B DUFFER 2 AeIIEF) AeTIEF) I 79 (ALS BUFfER 2 AelIEF) BIARI ADRES VAN INLELSBUFFER 1 (TIJDELIJK) DAANNA DE WAARDE 0 C
*
1('
"II *
1('
PROCESSOR 51 ATUS BI J MUliULE !:if.:GI N (Ll S) : DVM '" SLT , HI Hi '" SlI I Df' "" 1 I ARP '" 0 EtNDE ----) : OVM ~ SEI I IN1M ~ SEI ; DP = 0 , ARP = II
It II
LMK SAR LAC Bll
ARO,79 ARO,CQUNTR LltIJFAD,ll ACTBF1
l(fSAMPLEB - 1) ~ 79 IN AHO ILAAD 79 IN COUN1R ILLES INl.EESBUFFERS-ADHES-POINTER WAAHDl IALB DElE WAARDL CO DAN ACTIVEER BUFFERS
LANK SAH OUT U,RK SAR
ARl,1::.>9 AR1,LEESAD LEE,SAD,PM AR1 ,0 AI~ 1, NUL PACEO
lANDERS ZIJN BUFFERS 2 ACTIEFISTAkT ADRES VAN INlEEBBUFFER 1 WOkDl GELADLN ,OM DE PAS INCEVUERDE WINDOW NAAR INTERNE RAM VAN TH5-320 lE LEZlN IBTUUR S1ARTADRES VAN INLllSbUF.l NAAN EXT.kAM ADRES COUNTER ; CLEf,R AUX. REG. 1 10M DE NUL WAARDE WEER TERUG TE SCHRIJVEN ICA VERDER BIJ ·PAGEO·
46B
LACK !BlR ADD
46'1
'IBU~
HERl.D UBIJI"AD ONE,O LBUFAI> COUNTR , PA4
;ANDERS HERl.AAD (--) lIE BIJ DATA WAARDLN UNDERAAN lAFEl1) ,BUFFER 1 ADRES = )lFFF IN UBUFAD lEN HERLAAD ISIARTADRlS VAN INLEEBBUFFER 1 IN LBUFAD ;GTUUR srARTADRE8 VAN INLEES~UF.2 NAAR [XT,RAM ADRES COUNfER
0
,ACTIVEER DATA-PAGE 0 I f,R 1 ... 0 ,REsel PAGE POINT BIl IN PAGEP1 ,LEES SAMPLE VANUII EX1ERNE RAM (ARll IS IN1ERNE RAM POIN1ER) INEr ZOLANG TOlhAI ARO ~ II (AUIOMA1'lC DOWN CUUNI FUNCIIE VAN DE EXTERNE JMEM. AOR, COUN1ER IS HIlR ACrIEF)
456 4~)7
458 4~)9
*
41111
461 462 463 464
a
II
466 AeTaF1 46'1
470 471
M'
472
PAGEll
OUT
1'/3
474 1'15 lEES 476 47'1 It
LIlPK LARK SAR IN BANI
1, II AR1,PAGI:,f'T II,PA5 lEES
AI~
*
4'/B 47'1
1('
~
480
*==za==~~=====
481
It
'0
402
II
403
II
I
1:5:4i!
==========~============.==========*
It
II
465
7EOA 1l0:Hl 6'11l~; 01l:3C 0000 1l0.m 671l1l 1l03E 4e1l4
I..i
"'"
704F 3004 2006 FAOIlOOJA
o1l:3A
V
"'"
On2E 0021" 00:50 OO:H
4 Jun '1'/86,
*
4:35 436 4:37
450 451
t)
Wed,
,j(
439 II 4411 II 'I'll * ('
***
SOUHel:. LINE
4:H
438
*It* LPC ANALYSE PROGRAMMA
••========================c
MAI~IX
_
ELEMEN1EN BEREKENINCS MODULE : MA1RIX
::~ ;:~
::..: :::::::' :::: :::. :::.:::: :: ...
======~="~=~~======~.~~==* It
If
IN DII MODULL WUROEN DE AU1UCURRELATIE HAIRIX ELlMENTlN Ao 11M R10 BEREKEND,
II
'I
HEWLETr-PACKARD:
FIl.E: LPC ..RW: f.lEHZAT
0045 7114F 0046 0047 0040 0114'7 01l-1A OOI\C
'" \oil
w v
BODO 6CB8 61>1:18 F4110004B 7F8F
004D FEIIII0057
~
'" ..,
7F89
~ • ~
004F 711E 00::';0 706£ 0051 6f:lUO OO~:;2 5091 0053 F401l0051 OO~~j F9000llEE 0057 5B7E OO::il:l 50'/D 0059 006F
PAGE
III
•
1\87
It
It IE
It
It
. 505
It
506
It
It SOB It 509 It 510 It
\J
1:~:4::~
488 It 413'1 It 490 It 491 It 4'72 If 43 It
~jnl
\J
4 Jun 1'/06,
It
It
495 II 496 II 1\97 It 498 It 49'7 It 500 It ::jOl It 502 II 503 It 504 *
v
Wed,
4B4 40;;; 496
494
r
LPC ANALYSL PRUGWAMMA *_*
SOURCE LINE
LOCAl ION OBJECr CODE LINE
()
Itltlt
VOOR EEN LPC-I0 OPLOSBING BLBTAAT DL AUrOCORRLLATIL MAlRIX U11 111*111 ~ 11111 LLlMENrlN ECHIER DE MAIRIX IS lODANIG SYHMEIRISCH DAT WE Ulr DELE 100 ELEMENIEN MAAN 11 STUKS HOEVEN TE BEREKENEN, VOUR Rl GELDT DE FORMUl.E
RI~
\
SIH)ltS(N-I)
... +8(79)*8(79-1)
~SII)IIS(O)+S(I+l)ItS(l)+,
I
I(
It
It -)f
N-'I
It -)f
MET DE BEREKENINGEN WORDr BIJ RO (I~O) BEGONNEH EN BIJ RIO (1~10)GEEINDIGD. DE SAMPLE WAARDEN B(N) HEDDEN EEN Q12 FORMAAT, IEDER RI WORDI fERST IN Q24 FORMAAT BEREKEND E.N DAf,RNA DOOR (f~0 -~ 2 •.-(4) CEDEfLD. HE.l UIlEINDELlJKl RESUl.TAAf VAN IEllERE RI WORDT IN Q15 FORMAAT WElRGEGlVEN. GEBRUIKTE VARIABELEN I IN DATA-PAGE 0 SMPLO RAM [ 79] WAnR DE:: VAN SAMPLE 0 AUCORO RAli [ 90] '" UIlEINDELIJKE WMRI)E VAN RO lIH:'i FORI1AA-') 11M ACURI0 RAM [80] UIIEINDELIJKE WAARDE VAN RI0 (Q1S FURHAAT) FLlORD RAM [112]'" FILTEiWIHlE -1 WAAIH/[ QUOINT RAM [114] ·'WAARDE VAN RI* IN Q15 FURMAAT TMPSGN RAM [117] • IEKEN VAN DE QUOTIENT TIJDENS DE DELING VAN I'll DOOR (RO+2·-24) LPCNIR RAM (lIB) 9., 0 (AANTAL. NUG IE [lE.REKENE.N 1'11'5) SMPADR RAM (120] .., '19 69 (ADRU; VAN SAtIPLE 51I) ) E_LEMRI RAM [1211 '/0 80 (ADRES VAN I'll> I RAt1l90l~'RO J RMl90l,,-RI0 NOEtlL.O RAM (123] r- LOW-WORD VAN (RO+2 A-24) (NOFtIER IS ALlISD POSIllEF, ..... ) NOEI1HI RAM [12-4] " flIGH·-WORD VAN (RO~-2A_24) (, .. TlJDENS DE 32-BITS DEtING) TELLO RAM [125] • LOW-WORD VAN I'll (DIl IS DE TELLER TIJDEN9 DE 32-BITS DELING) lELHI RAM (126] HIGH-WORD VAN RI
*
It
It
• • It
II I<
It
It It I<
It It
*
* II It
511 It II 512 It I< 513 II * It 514 It 515 It PROCESSOR STATUS DIJ HODULE B~GIN (EIS) I DUM· 5Er J INIM : SET I DP '" 0 I ARP • 0 It " l I N D E ---_._) I OWl" SEr J INnl '= mer J lIP " 0 I AI~P = 1 It 516 It 517 *;~~=~~:==~~~~~=~~.~==~:==~=~=~~~~~=~:=~;::~:;;.:l:.~:~~:;=:~~:;::~:~m~:~~=.~=~~~:~~~~~=~:::;=.:;_~~:~===.u==~=~~~=~~~=~=~=.~=~~=~=* SIB It 519 It 520 MATRIX LARK ILAAD SAMPLE 0 ADRlS IN AUX.REG.O ARO,9MPLO 521 It 522 l.AC JCLEAR ACCUMULATOR 523 MPYK ,CLEAR P·--R EG 0 It 524 MTXELO l.TA jACCUM. :~ACCUM. + P-REG I LAAD VOLGENDE SAMPLE IN T-REG. It 52:::; IWY JKWADRAIEER VOLGlNDE SAMPLE (P-REG.:~ 51 It el) 5;~6 BANZ MTXELO JDGE DIT Nfr ZU LANG TUTDAT ALLE SAMPLES 11M 879 VERWERKT lIJN (,fIAC 527 j ACCUli. : --, ACCUI1. + (5'/'7*879) (ACClJI1ULATOR ElEVAI' NU R0 IN Q2'l FORMAl> 528 It 529 JALS RO () 0 DAN VERDER GAAN MET DEREKEN£N VAN Rl 11M Rll1 IlNZ l.DTEL 530 II 531 LARK JANDERS ALLE MATRIX ELEMlNTEN EN FILTER CULFFICIENTEN NUL MAKEN (31 GEHEUGENPl.AA AR1,30 Jl.AAD ADRES VAN FILTER COEf. Al IN AUX.REG.O 532 LARK ARO,FCAOI 5JJ COFNUL LARP JACTivEER AUX.REG.O 0 5~i4 SACL It·- ,0" AR 1 IHAAK CEHE.UGENPLAAIS NUL (ACCUMULATOR IS NUL) tb 5:m MNZ COFNUL JDOE DIT NET ZOLANG TOIDnr ALLl 31 GEHLUGENPL.AATBEN NUL ZlJN ~ 536 B jGA NU VERDER MET DE IEBTOPTIE(FILIER UITGANGSSIGNALEN) FlUIlG ~ 537 II 5JB LDTEL BACH TELHI JSTORE HIGH-WORD VAN RO (RO IS DE TELl.LRWAARDE) H_L.LO Sf-,eL 53'7 ,urORE l.OW-WORD VAN RO (VODR DE 32-BITS DELING) ~ 540 ADD I::.EN ITEL ER 2·-24 81J OP
"
'"
-'
'-
--
HEWLETT-PACKARD:
FILE: LPC.RW:BEHIAT
MMM
Well,
LPC ANALYSE PRULNAMMA X*.
'1 Jun
1906,
1.~:42
P()GE
11
r',
SUURCE LINE
LOCATION OBJECT CODE LINE on:'.',A o n~)H 005C 005E OOSF
n
""
587C
541
~:i07B
542
FBOllllt7B 2072 505A
543 ::;44 545 546 547 54B 549
~
o O~"l 70S';> 01.161 30'1'/
CO'
o 1I~,2 704£ o06.~ 30'/B 01164 397n o n6~:; ~H76 01166 "l14F 01167 7F8';> 01168 68BO o06 rJ 6A';>t 1I06A 6D90 1I 1I fJll 6CBl 006C 6090 0061> F40000bB 006F 7F8F
("'I
C""'
,.-., (",
00'/0 0071 olin 00'/4
0
0
587E 5070 F8000t7B 2072
0075 3879 n076 'SO '18 0077 3079
V
'" ""
011'78 3976 007e F4000065
..... ...... 'wi
V
t
"
~
LARK
ARO,AUCORt AR 0, ELEl1R I
,LAAI> ADRES VAN Rt VIA AUK.REG.O lIN "ELEMENT RI" VARIABELE
AR 0, BI-IP Lt ARO,SMPAliR AIH ,FLHIRD ARl,LPCNTR AIH ,SMPLO
ILAAD A~RE:.B VAN SAMPLEt VIA AUK.REG.lI ,IN ·SAMPLE ADRES" VARIABELE ILAAJ) liE WAAIHi[ : CFILHIHllWE - 1) IN AUK.REG.t ,BTORE AANTAL NOG IE BERlKENEN RI'S ,ADRES VAN SAMPLL n CVAN EEN WIN~OW) IN ANt ;ACCUMULATOR :- 0 lARD ACTIEF CARll WIJ5T NAAR SCI» ILAAO 9CI) IN r-REG ; ACTIVEER ARI ,VERHENIGVULDIG SCI) MET BCD) :REBULTAAT IN P-REG. EN AC1IVLER ANO ,ACCIJ :., f.,CLlI ·t· f' ·'REG. I LAAD VOLGENllf S (N) IN f··R EG. ; ACT! VEER AWl IVERMLNIGVUL.llIG BeN) m::T SCN-l) _ ... ) P--RLC. ;AcnVLfR ARtI IGA VERDER MET BEREKENEN VAN RI 101 EN ME·I DE L.AATSIL SAMPLE C=8(79» ITEL NOG 8(79)*5(79-1) BIJ DE ACCUMULATOR UP
BAR II SAI~
5~i6
tAR BAR LARK It'iC LARP
5'57
U
lC·-
:358
MPY LTA MPY BANl APAC
l l - ,AI~O
M ,',R 1 *-,ARO IHXELl
BACH Sf..eL CALL LAC
'IEun lELLU DlE:L32 QUOlNT
,8TORE HIGH-WORD VAN RI COM RI* TE BEREKENEN) ,STORE LOW·WORD VAN RI CRI WORDY DOOR CRO + 2°-24) GEDEELD) IDEEL RI DUOR CRlI + 2°-24) ,LEES RIll
LAR SAeL BAR
ARO, H.E:.MRI ARO, ELEMR I
;LAAD ADRES VAN ki IN ARO ,STORE RI~ CQl~ FORHAAT) ISTORE ADRES VAN RCI+t) IN ELEMRI
LAR liAR BAR
ARO,SMPADR II-,ARI ARD ,SMPADR
;LAAD ADRES VAN SCI) IN ARO ,WIJIIG Dlr ADRES NAAR HEr ADRE9 VAN SCI+l) IACTIVEER ARt ISTORE ADRES VAN 8CI+t) IN 5MPADR
LAR BANl
ARt ,LPCNTR MXLOUP
,L.AAD CITE BEREKLNEN MATRIX ELEM.-t) IN ARt ,ARt () 0 DAN VERDER GAAN MEr BEREKENEN VAN VOLGENO MATRIX ELEMENT
552 ~j:)J
MXUIOP
554 r,:"r.: ...-
..JJ..J
~j~;9
IHX£:.LI
560 ::i6t ~i62
563 564 566 5b'l
,',Rt
*
~7J
11·-
".'
II
5'77 II II II
*:==~=l~==~~l=:~=:=~=~=:~:~:=:=~~:~:=~:=====C~=~=~;~~: ~==~:~::.:~==:=:~::;:=::::~=~~:~:~~~~~::~~::~U::;:~_:: ~::;::~~:=::::~::~:~~~:=::::=::~~~~~:=:~::::=~;~~c~==*
II
fILTER COEFFICIENTEN EN REFLECTIE COEFFICIENIEN BfREKENINGS MODULE
I
FLTRCU
5134 II 5U5 * 5136 * 58! M
IN DIT HODULE WURDEN DE FILTER CUEFFICIEN1~N At TIM AtO EN DE REFLECTIE COEFFICIENIEN Kt TIM KIll BEREKEND, LATER KAN MET DELE COEFFICIENTEN WEER HET UOkSPRONK~LIJKE SIGNAAL HERLEID WURDEN, DIT KAN WORDEN GE~EALISElRD MfT lEN LPC-SYNTHEBE FILlER.
~.iBfJ ~iU9
vaDR
* "
~WO
II
:191
It
~)92
II
59.3 II ~i94
II
'5'15 w 5';>b
597
VAN [EN WI
II
574 575 570 579 580
0
If
565
568 569 570 57t
,-
If
LARK
581 5B2 583
"""
laTORl NU HCT HIGH-WORD VAN Df NOLMER ;SfORE LOW-WORD VAN NOLMER CRO+2"-24 IS DAN DE NOEMERWAARDE) IBEREKEN NU ROll -) ROll l~ RlI I CRO + 2°-24) ILEEH ROl< IBTORE RlI* WAARDE
:=J~'1
~j76
""
NOEMHI NOEMLO DEEI...32 QUOTNT AueOkO
5511
~J'12
01178 3878 00'19 689t 007A 31178
SACH S(.,L:L CALL L.AC SACL
*
M
• II
*
* "
*
II HEY BEREKENEN VAN DE BOVENbENUEMDE C~LFFICIENIEN WORDT GEBRUIK ~EMAAKI VAN DE ROBINSON RECURSIE METHODE CZIE VERSCHEIDENE lHEORIE BOCKlN HILROVER), * ALS INVUER VODA DE BEREKENINGEN CELDEN DE HIERVOUR BEREKENJ)C MAIRIX ELEMENT EN Rl riM RIO * It MET DE BEREKENINGEN WORDT 91J Kt EN At BlGONNEN EN BIJ Ktll EN AtO GEEINDICD. II INDEX) PER REKENCYLLUB WORDf ER EEN KI EN DE DAARBIJ BEHORENDE Al TIN Al 9lREKEND.CI It OM OVERFLOW PROBLEMEN IE VOORKOMEN WORDEN At TIM I'll IN QtJ FORMAnT BLRlKLND. Kt ·'/H KI GEVEN GLEN OVE~fLUW PROBLEMEN. DElE WURDEN IN Qt5 FQRMAAf BEREKEND. .~
II
AAN HEr EIND VAN DE
BE~EKlNI~GEN
SlA~N
DE FILTER CUEFFICIEN1EN At TIM AtO RESf'. IN
*
tN
~
.1l. t\
""
.-"
HEWLEIT-PACKnRD: It** LPC
FILE: LPC_RW:BEHlAT
598 599 600 1,01 602 603 604 605 60b 607 60B 60Y 610 611 b12 613 614 615 blb
It
61'l
II It
C'
blB 61" 620 b21 b22
0
624 625
II
6~~6
Fl TRCO
II
b2J
007£ 205A 007F 5073
U
00811 2059 OOBl 50'74
..,
0082 FBOOO15F 00\:14 bB81 0()8~i 7FB" 008b 1072 0087 50b4 0llB8 01bF 00B9 50bE OOSA 2E6E DOSe SBbE
V
.., ..,
., .., v u
It
II II II
GEBRUIKIE VARIABELEN : IN DATA-PAGE 0 REFCOl RAM [1001 TIM
REFCI0 FCAOl
II
4 Jun 1986, 13:42
* 100 TIM 91,
RAM [91J RAM [110]
FCAI0 QUOTNT NOEMER fELLER LPCNIR NSfeNT ELEMRI AIEMP
II II II I(
It II
It
II
1(.
• REFLECTIECUEFFICIENT K(l) REFLECTIECOEFFICIENT K(10) fILlERCOEFFICIENT A(l)
*
• I(
* 1(.
I
RAM RAM RAM RAM RMI RAM RAM RAM
[lOll FILTERCOEFFICIENT A(10) [114] RlSULTAnf wnARDE VAN ilL DELING [115] • NOLMER WAARDL veOR EEN DELING [1161 lELLER WAARDE VQOR lEN DELING [118] c B."O lOOP DOWN COUNTlR VUOR l:='c '10 10 [119] ~ NEsr COUNlER VOUR (FU~ J:~2 TO I DU) lOOP [121] - UPSLAGPlAAT5 veOR DE ADRESSLN VAN DE RI'S [1231 TIJDElIJKE O~SlAGPLAATS veOR AJ(I'~ STAP)
* *
• • .•
*
•
*
.•
KL.ADl KlAD2 KLAD3
II
I I
RAI1 [126] RAM [125] RAI1 [124]
KLAIlIHJIHH. KlADRUIMrE 2 KlAORUIMlE 3
II
II II
I(
*
TIM
II
*
* 1(.
.•
PROCESSOR STAlUS BIJ MODULE BEGIN (lIS) I OVM m SET ; INTM z SET ; DP - 0 ; ARP z 1 E:.INI)E -----) : UV~I • S£ r ; IN HI " Sle f ; 1>1-' ~ 0 ; AIH' " 1
I(
•
M~~~~=,·~~:·:;·::=;~~~C~=~=~~I~~=~~:~~==~=~~;:::~:~~~:~:~~:~:~:=::.:::::=:~~:~:~::::~:~:~;~~:~~~~~~:=~;~:~:=:=~:~:~~=~;=====:~=~:~:=;:~:.=:~~~:~=:~~~*
It
LAC GACL
AUCORO NOEMER
ILAAD RO IN ACCUMULATOR ISIURE RO IN NOEMER (Q15-FORHAAT)
lAC gAel
AUCORl TE.llE.R
;LAAD Rl IN ACCUMUlATUR ,STORE Rl IN TELLER (Q15-FORHAAT)
CAll
DElEN
ITEllER/NOEME.R --) QUOTNT IACTIVE£R AUX.REG.l JACCU :- 0 ;ACCU I - -QUOTIENT IKl Ie AeCIJ (Q15 FORMAAT> 'IAFRONDCORRECTIl VOOR f.l13 FORMAAT ,STORE TIJDElIJK Al WAARDE (Q15 FORMAAT) JVORM IN HET HOGE DEEL VAN DE ACeUM. lEN Q13 FORMAAT VOOR Al ISTORE Al (Q13 FORMAT>
lARP ZAC SUB SAel ADO SACl LAC SACH
f.lUOTNT,O REFCOl EEN,l FCAOl FCA01,14 FCAOt
lAC ADD SACH
NOEI'1ER,13 E.EN,14 NOEMER,l
,MAAK VAN DE NOEMER OOK EEN f.llJ fORMAAl j AFRONDClJRRECTI E ,SldRE NOEMER (~13 FORMAAT)
lAC ADD SACH
TELLER ,1:5 EEN ,14 TEllER, 1
JHAAK VAN DE TELLER aUK FEN Q13 FORMAAT jAFRONDCORRECTIE JSTORl TELl.ER (Q13 FORMAAT)
l.T
REFCOl
Il.AAD Kl IN T-RE~. (DIT IS NUDIG OM ZOKETlEN EEN NIlUWE NOlMER TE BEAEKENEN) GENUEMD ,DELE NOlMER WORDf IN DE lHEORIE UUK ~El "ALPHA" OF ·E(I)~REBr-ENERGIE"
II
643 644 645 I(
OOOF 2D74 00<70 OEbI-' 0091 5974
647 641:l
0092 bAM
65t
0093 2F73
652 II 6~"i3 " 654
~
Wed,
DE GEHEUGEN pLAATSEN 110 TIM 101 (DATA-PAGl 0), DE REFLECTIE CUEFFICIENlEN Kl 11M Kl0 BIAAN R~SP,IN DE GEHEUGEN PLAATSEN
II II
636 637 638 b39 640 641
649 6~0
*.*
It
6:55
646
i,
It
62'7 b2B It b29 630 631 " 632 633 II 634
64~~
OOBC 2D73 OOBIl OEbF DOSE 5973
w
PROGRAMMA
SOURCE LINE
LUCArlON OBJECf CODE LINE
('.
ANALYS~
II
<, .•
BEREKENING VAN E( 1> ... ) lAC NDEl1ER , 15 ; L.AAD NOEMER (Q2B-FORMAAT) IN ACCUMULATOR
FILf: lPC_RW:BEHZAT ,;-"
0094 61>74 009::; ?FBF 0096 OE6F 009'/ 5973
n
009B 3970 oO','jl bW/B 009A 317b
:"'"
"
009B 7E59 009C b~~70 009D b176 009E 5079
(i
n
b72 b73 b74 b75 67b b7l
r,
e, 0 Q
v
....
2070 idbF b37b
bBb
5077
OOA3 OOM 00A5 00 At.
3979 2DM 3179 BODO
bB7 bBB
*
f I
~
It
* It
*
bB5
ba9
*
b90 69t
bnl
beAO 6D91 3t79 3977 f40000A9 7FBF
699 '100 701 702 703 l04 70S 70b 70'1 70B 709 710 '711
00B2 OHF 0083 5974 00B4 3071)
LPC ANALYSE PRUGRAMMA
*••
Wed,
4
JUri
1906,
IJ:42
TELLER HN,14 NOE-MfR,1
LAR Mf,f"
li-
AR1,FLTORD
SAR
AR 1 ,LP CNTR
LACK
AUCORI
SlJilS
F LTORD
ADDS SAeL
U'CNTR ELEMR I
IP-RLG. m K(t) * TLLLER (Q28-FURMAA1> IACCUM . • NOEMER + K(11 * lELLER IAFRUNDCORRlCTIE ISfORE NIEUWE NGEMER WAAROE (Q13 FORMAATI IWAARDE VOOR CFUN 1:=2 TO FILTERURDE DO> LOUP COUNrER IAUX.REG.t WORDT AANGEPASf OM ALB LOOPCOUNTER WAARDf lE DIENEN ISTORE LOUP COUNfER WAARDE ILAAD ADRES VAN Rl IN ACCUM. IDEREKEN NU HEf ADRES VAN R(FILTEIoIORDE) IBEREKEN HIERMEE HLf ADRES VAN RM ISTORE DIT ADRES IN ELEMRI
*------------------------------------------------------------------------------------------. * HIER WURDT DE TELLER VUOR HEr BEPALEN VAN KI BEREKEND, VOL~ENB DE FOR MULE * TELLERI",,1*RI + Al*R + A2*R
*II
IN PASCAL ZIEf DElE BLREKENING ER ONGEVEER ALB VOlGl UIT :
* *
~
* **
*
*
TELLERI=RII * FOR JI-2 TO 1-1 DO * TfLLER,- TELLER + A[J]*RLI-J] I
)I
•
*
• PROCESSUR STATUS BU HE f BEGIN VAN D'n SU[l-·MOIiUL.E * EINDE"
1 I
01" "' 0 I AI~P '" 1 DP .: 0 I (',RP ,= 1
*
.*
II
*------------------------------------------------------------------------------------------*
It
~~97'jl
OOA9 OOM OOAB OOAC OOAD OOAE OOAF OOBI
".,
II
3t77
"'"
""
* * * * * *
b92 b93 II b'jl4 b95 b90 II b97 TELLf'
OOA? 3977 OOAa 70bE
t;J
b7B 679 680 bBt 682 6BJ 6B4
009f OOAO OOAl OOM!
....
W
659
bbO bbt 6b2 COEFL.P :\ bb3 * • b64 * b65 bb6 6b? bbB bb9 *
b70 * 671 II
I'
MPY (-,PAC A1iD SACH
6~j5
6:;;b b57 b:'i8
***
SOURCE LINE
LOCATION ODJECT CODf LINE
Q
"."
HEWLEfT-PACKARO:
* * II
*
IACCU:=TIU£RORDL-l
I O~I
DE
(FOI~
J:='1 'ro 1,,-1 DOl Lom" lE EtEPALEN
LAC SIJB9 SUBS SAl.:L
fLTORD,O EEN LPCNlR HSTCHI
LAIol Lf,C BAM I'lP'yK
AR t ,ELEHR I *+,t3 ARt,ELEMRI
LAR LARK
fIR t , NSTCNT
SAR L.AR UA I'IPY BAR L('lIl BANI M'Ae
AR1,NSTCNf ARt ,ELEMRI *+,ARO *-,ARI ARt,ELEMRl ARt ,NSTCNf 'IELLP
ILAAD NIEUWl NESTCOUNTER WAARDE IN NSTCNI (ARl ~UNGEERl ALB COUNTER VDDR TELLP) ILARD ADRES VAN R (L-J) I1~ AUX. REG, 1 (AIoI"I FUNGEER T OOI( ALB POINl Ef! VOOR DE R'S) jACCU1-ACCU+P-RlG. I T-REG. I_ R(I-J)I(ARI WIJST NAAN VOLGLNDE R-WAARDE) IP-REG. :~ A(J>*R(I-J) I (ARO WIJSf NAAN VOLGENDE A-WAARDEI IBTORE ADREB VAN VOlGENDl R-WAARDE IN KLADJ IlAAD NESTCOUNIEH WAARDE IN ARI IGA VEROER MET HEf BLREKLNEN VAN DE TELLER WAAHDl ZULANG NS1CNT (10 J:~J+l 11EL A(I-ll*Rt 01" BtJ ACCUMULAfOR (Dlf SIONO NOG IN HET P-REGISrEIoI)
ADD SACIi
EEN, t 4 TELLER,l
IAFRONO CORRECllE VAN HEr RESULTAAT ISTORE RESULTAAT IN lELLER
SAI~
ARO,KLAD2
ISTORE HET ADRES VAN A(II VANUIl AUX.REG.O IN
0
ARO,FCAOt
IACCUI~FIL1ERORDE-2
IBEPAAL NU HOE VAAK DELL LOOP DODRLOPEN MOLf WORDEN (MINS1ENS EEN KEER) IlET DE GEVONDEN WAARDE IN NSTCNT (NESTCOUH1ER) ILAAD HET ADRES VAN RI IN AUX.REG.1 ILAAD loll (Q28-FORMAATIIN ACCUMULATOR ISTORl HET ADRES VAN R(I-l) IN ELEHRI I CLEAR P···R[G. ILAAD NEGTCOUNfER WAARDE IN AUX.RlG.t ILAAD ADRES VAN At IN AUX.REG.O
KLAD~
.------------------------_. ------------------------_._--------------------------------------.
FItE: LPC .. I~W:I!Elrl.AT
HEWLElf-PACKARDI
LOCATION OBJECT CODE LINE
."
712 71.5
......,
71::1 716
'114
'/1 'I
n OOB5 1'8000151' 00fl7 M10l 00B8 7[64 oOI~9 63'/0 OOf.tA 61'16 OOBB ~j07E OOBC 397£
('"\
~
n
OOBI> 387D
n ()
oOC~i
-
n7
II
7Ff.l9 10'/2 5000
'/33
01bF
nil
50BB
n~.'i
736 7.3"7 738
6ABB
...J
2F 7.5
6D'I4
71'81' OEbF 597L~
-..-
740 741 742 "14.5 744 '145 746 '147 '148 '/49 7~d'
7:'.'i1
v
752 7::d '/54
.....
'7:'i5 '/~'.:J6
....
"wi
v
, ...
•
~
* * * )(
'1('
*
'I6~j
l"U6,
1.5:4;:'
II
*
l(
II
** *
II
·x·
PROCESSUR STA1UB BIJ HET BEGIN VAN DIT SUB-MODULE I DP • 0 I ARP • 1 EINDE • . : DP ~ 0 I ARP • 1
11-------------------------------------------------------.----------------------
AlmB SACL LAR
REeFeOl f'LTORD Lf'CNTR KLAllt AIH ,KLADl
ITEl.LER/NOLMER --) QUOTNT IACTIVEER AUX.REG.l ILAAD ADRES VAN RlFL. CULF. Kl IN ACCUHULAIOR IBEPAAL HET ADRES VAN K(FILIERURDEI IBEPAAL HIERMEE HEr ADNES VAN R~FL. COEF, KI ILAAD ADREa VAN KI VIA KLADl lIN AUX,REG.l
LAR
ARO,KLAD2
ILAAD ADREB VAN A(11 Ulr KLAD2 IN AUX.RE:G.O
CALL LARP LACK
DELEN 1
ZAC SUB SACL ADD SACL l.AC SACH
lEN, 1
LT
*
QUOrNT,O +1,0,
A~
0
* 13 *, 1 ,AR 1
II,
IACCU : '''' 0 I ACCU : "" -Quonn IKI I'" Aeeu (W15 FOIH,AA'I I IAFRONDCORRECTIE. VOOR QIJ FORMAAT IsrORE AI lIJDELIJK IQ15 FORHAAl I ILEES AI IERUG IN Q2U FORMAAT ISTORE AI (Q13 FORMAATI ILAAII KI IN T-REGIS1ER (VOORBEREIDING VOUR DE.
~EREKENINGEN
~
_
... ...... -.. -.- .....
• I(
~
~
_~
(, ... BEREKENING VAN E
ll------------------------------------------------------------------------------------------. HIlR WORDEN DE RES1ERENDE FILllR COEFFICIEN1EN Al TIM AIM-11 BEREKEND
* II
•*
+I
ER WORDT GEBRUIK GEMAAKT VAN DL HIERVOOR BLREKlNDl KM WAAMDE
•
IN PASCAL VORH lIEN DE BCREKLNINGEN ER Al.S VOLGT UIT :
JI ~
* ~
IIJDENS DE
II
PROCESSOR srAIUS BIJ HEf BEGIN VAN 1>1f SUB-MODULE: Dr EINDE • : DP
•*
BlR~KENINGEN
BEVAr HEr f-REGIS1LR DOOWLDPEND DE WAARDE VAN K[ll
~-------------------------------------
LAC
H.IUIW,O
~;l.JD::1
l.PCN11~
!:HJB!3
LeN
.• II
FOR J:al 10 TNUNC(1/21 DO BEGIN * ATEMP:~ A[J] (I-l'E RECUR,STAPI + K[ll*ALI-Jl (}-1'[ WLCUR,srA~11 ~ ALI-JJ(I'DE. RECUR.STAPI l~ ALI-JJ(l-l'[ RlCUR.STAP) + KIIJ*AlJJ(I-l'E RECUR.S1API .)1 A[.J] I I 'E RECUR. 81 AP I :~, AI fMP I '" END I
I(
JI
BIJ FCLOOPI
I(
* * * *II *
766 767 '768
4 Jun
~
'/:')9
'/63
WeJ,
~
.)1
'/64
OOCB 20'70 ooce 6:3'/6 OOCI) 636F
* *
'7::,'7 758 '160 '761 '/ 6;~
'WI
PROGRAMMA •••
* KI := -(TELLER/NOEHERII ---) W15 FORMAAl * Al :' KI I --.-) IH3 FORI1AAf
•
730 7.31 7.52
;~D8B
nNALYS~
HIER WORDEN KI, AI EN E(II B[RlKEND
SUBS
FCOADI~
59131
II
1'25
73'J
OOCh OOC7 OOCI:I 00C9 OOCA
* * * * * * * • * RCOADR
726
no
LPC
SOURCE LlNE
'1~~9
0-
OOBE" OOf.
718 71 II 720 721 rJrJ 7 ....... 723 724
~~*
= ~
0, ARP 0, AMP
* +I
M
• .~
x, II +I
~
•~
~
II
----_ .... _--------------------------------- .. --~
IACCUM. I~ FILTLRORDl - 1 IBEPAAL HIERMEE DE WAARDE VAN I I BLf'AAL NU 1·-1
HEWLEI r-PACKARD:
FILE: LPC_RW:PEHZAT
OOCf: 507E OOCF 2F7E OODO ~ml7
()
0 ('\
("'I
()
C!
"
770 711
772 • 773
00 D;5 0004 00D5 001>6 OOD'/
bl6F
77&,1)lf ' 777 '778
~)07C
T/'I
38'7C
'/80 7131 •
OOI>B oOIl'I OODA OOD[I
3977 31'7'7 39'70 2FBO
001ll:: OOIll> OODE OODf
bOO8 7FBf OEbF '597A
OOEO OOEI OOE2 00E3 00E4
2F81 6DBO 7FBF
bill.
("\
(':"1
O/b'l
OODI 7EbE oII D.' 5070 b370
~~~ .. oJ' ,.'
/82
"lB3 rCLOUP 784 'les 78& • 78'7 7013 "189
"/90 791 • 792
793 794
OEbF
79~
59A1
79b
LPC ANALYSE PROGRAMMA
l.h'u,
'I
1'/86,
:lUll
PACE
1.'\:4i!.
1~'j
SACL LAC SACH
K.LADl NsrCNT,o
DIT TIJDlLIJK IACCUM.HIGH :~ lRUNCel/2)-1 eWAARDL IS DUS I HINDER DAN ISTUR~ BEREKEND~ NESICOUNIER WAARDE
LACK sr,CL
rCAlll KLAI>2
ILAAD ADRES VAN Al IN ACCUMULATOR IsrORE ADRES VAN Al IN KLAD2
SUBS ADDS ADDS sr,CL LAR
FlIOIW LPCN1R EE:N ARII ,KLAD3
IBEPAAL. HET ADRfS VAN AeFILTERORDE) IBEPAAL NU HET ADRES VAN Ael) IBEPAAL NU HET ADRES VAN Ael-1) ,STORE DIT ADRES IN KLADJ IlAAD ADREB VAN Ael-I) IN AUX.REG.II
LAR SAR LAR LAC
Al~ I , NSTCNT AR1,NSTCNT AR1, KLAD2 • , 15, AR Il
IINITIEER AUX.REG.I INHOUD AlS TELLLR VUOM DE FCLUOP ISIORE NIEUW~ WAARD~ IN NBICNI VANUIT AUX.REG.I ILAAD ADRES VAN AeJ) eI-I'E REC. STAP) IN AUX.REG.l IAceu.:= Ae]) eQ;:!B FORMAT>
MPY r,PAC ADD sr,CH
•
e(;/28 FUlmAAT> IP--REG. I'"~ KI*AeI"-J) IACCU:z AeJ) • KI*AeI-J) eQ28 FORMAAT) IAFRUND CORRECTIE VAN HEr RESULTAAT ISTORE NIEUWE Ae]) WAARI>E TIJDELIJK IN A1EMP
LAC 11PY APAC ADD !:iACH
.,15,ARl .,ARO E.EN,14 *+,l,ARl
ZAL.S sr,CL !:iAR
.--AH1,KLAD2
ATEIiP
IHAAl llJDElIJK UPGEBORGEN NIEUWE AeJ) WAARDE TERUG ISTORE DElE NIEUWE AeJ) WAARDE e(;/13 FURMAAr) ISTURE HEr ADRES VAN AeJ+I) IN KLAD2
LAR BANZ
AR1,NSTCNT FCLOOf'
ILAAD NESTCOUNTER WAARDE IN AUX.REC.l IGA VERDER MET HET BEREKENEN VAN DE AeJ'S) ZOLANG NSTCNT () 0
LAR BANl
ARl,LPCN1R COHLf'
ILAAD LUOPCOUNTER WAARDE IN AUX.REG.l IGA VERDER ~ET DE ~ECURSIEVE BE~EKENINGEN lOLANG LOOPCOUNIER () 0
ISTOR~
KLADI,I~j
KI_AD.~
EEN ,14 ATE11P ,1
"LUO~COUNT")
eQI3 rORHAAT>
IACCU. : ~fd I --J) e Q::~8 FOR ~IAA T> KI*AeJ) e~2B FORHAAT) IACCUH.:~ Ael-J) + KIIIAeJ) eQ28 FORHAAT) ;AFROND CORRECT IE ISTORE NIEUWE A(I-J) eQ13 rORHAAT) IP-REG.:~
797 • ODES &b7A 00E6 5098 00E7 317D
V
00E8 3977 OOE'I F40000D9
"" ..,
OOEll 391b OOEe F400009A
V
/98
799 800 801 • a02 B03 804 • 80~:i • ao& e07 808 • 80<1 •
IHO • 811 If 1:'1 2 t(':l =:";:: =:= :::::: :::: ::::1::-,; ;:::= r= :::..~::: ::-J == =:= :::: ::::::::==:::: ~:-.; l::::.:=:;:l::·::~:.:l,;~::: :' :::: :t"..l:r.::::' =::: I::' ::;;:.1: ::: ;:'.:::: ::. ::: ;:: :::: ::: :::::.:. :::. ::~ ::::;:: ;:.~ ::: :::: :.•: ::= ;;... :.~ ,:;':... ::' :;.. FILlER UllCANGB RUIS SIGNAAL BEREKENINGS .~DULE : FlUITG Ell3 •
.....
;'R';
B'14 01 ~'i Blb 81°/ 818 819 820
'-'
..., 1ס0o"
..., ~ I
~
"""
K••
SUURCE LINE
LOCATION OBJECT CODE LINE ,--\
~~~
r~21
822
.. •
.. II .. .. • II
*
823 .. 824 ..
82::;
*
..-
".
;;';;;:: :;: ::;; ::~ ;. :
:;~;;
-..
..
., .)1
• •
it
IN 011 HODULE WORDT MEr 8EHUlP VAN DE BEREKENDE FILlER COEFFICIENTEN EN DE INGELEIE:N SAMPLES VAN lEN WINDOW HEl ANALYBL FILTER LLREALlSLLRD. HEr UITCANGB SICNAAL VAN DIr FILlER WURDT VOUR EEN WINDOW BEREKEND. DE RESULTA1EN WORDEN IN HET EX I'ERNE RAM--GEtIEUGEN OPGESL.AGEN, IN 1)1'1 EX rLI~NI::: GDIEUCEI~ ZIJN HIElN()()I~ TWEE BUFFERS GERESERVEERD. ER WORDT NAAR DIE BUFFER G~SCHRLVEN DIE OP DAT MOMENT NIET IN GEDRUIK IB, UIT DE ANDERE BUFFER DIE WEL IN GlBRUIK IS WURDT BIJ IEOERE INTERRUPT EEN UITGANGS SAMPLE NAAR IlE D/A CONVERTER GEB1UURD, lDDAr DE FILlER UITGANGS SIGNALEN WELISWAAR VERIRAAGD OVER lWEE WINDUWB,MAAR WlL SYNCHRUUN HET DE INVUER SAMPLES NAAR BUITEN WORDEN UITGEVOERD. GEBRUIKTE VARIABELEN :
it If
" If
*it M If
" ~
Dot ~
"'"' 'i'\
"-
""
HEWLETT-PACKARD, *** LPC ANALyse PROGRAMMA
FILE: LPC_RW:BEHZAT
826 82"/
II
028
*
K·
1329 .. fJ30 * 832 033
034
835 836
* .. ' * *,,; :_, * *
* * .. *
83'1 ..
030 £-139
840 041
842 843 044
Wed,
4 JII" l'JEJ6,
13:42
SOURCE LINE
LOCATION OBJECT CODE LINE
B:i1
***
It
* It *
- IN DATA-PAGE 0 SI1PLO ,RAM TIM SMPL79 RAM SMINOl RAM TIM RAM BMINI0 RAM FCAOI TIM FeAI0 RAM EEN RMI RAM FLTDRD PA(;;EPl RAM Lf'CNIR RAI1 NS1CNT RAM KL.ADO RAM KLADl RAH KLAD2 RAM KLAD3 RAH
.
SAIWLI::
001 80]
BAMPL.L 79 WAARDE (LAA1STE IN WINDOW) SAMPLE -1 (DIT IS SAMPLE 79 VAN VORIGE WiNDOW)
0
WAAHDE
IN WINDOW)
19J
(~lRSTE
'"
.~
x· It It
[ 89] • SAMPLE -10 (DIT IS SAMPLE 7U VAN VORICE WINDOW) [110] FIL1ERCOEfFICIENr
It
'"
It
[ 101 ] • FILlERCOEFFICIENT 10 £111 ] ElEVAT DE WAARDE 1 £112 ] • GEEFf DE FILTERORDE-l AAN £113] (;;[EFT AAN IN WELKE DATA-PAGE DE PROCESSOR BElIG IS [lHIl ~ BEUAT HET AANTAL SAMPLES-l [119] DOORLUOPT HET AANTAL FILTER COEFFICIENTEN [127 ] '"' KL.ADRUIMTE [12b] • BEVAT HEr UITEINDEL.IJKL RESULTAAT WAARDE [ 125] • KLADRUIMTE [124 ] 8EVAT HET ADRES VAN FILTER COEFfICIlNI A(I)
0
8~1
OOEE 7EOf. OOEI'" b77F oliFO 207F OOFl II 0'/0 OllF2 50"/F OOF .~ 4C"IF
0 Q
OOF4 7£50 oOF~'i 00"/0 OOFb 507F OOF 7 397F OOF8 3870 001"';> bOUl 1I0FA 45';>0 1I0FB F40000F9
'"" V
...,
OOFD 704F OOFE i!2f.IB OliFF SOBS 0100 F40000FE
"" ....
"
,
-. ."I.. '-'
It
*
It
*
PROCESSOR STA1US 8IJ MODULE BEGIN (EIS) : UVM ~ SeT I IHfM • SLf l Dr mOl ARP • 1 '1"(. 84'1 .. EHIOE .....--) I OVN -= SET i IN1I1 .• SET i DP ,= 1 I ARP'" 0 B4B *=======~~=.=:;:::~==~~=~~:=m~:==~~~=~JI~:~:=~:~:~:::~:~~I~~:~::_:~::·. .-."". '"'' '" "...... -.. ,,- ,.. ,," ,., ". '" "",., '" ",,,-,,.,, ,"',,,,,,,,, ,, '""", '" """ '"'" '"' '" '" "'" "" '" '" '" 849 850 *
i
V
'" * '" '" * '"
1:H5 ..
846
'"
It
0102 0103 0104 0105 0106 0107 0108 010';> 010A
7Fut 6EO 1 6606 6EOO 7FB2 704F 307b
10'16 Fl:1I00111l
E1~j2
*..
FlUITG
B~3
1:154 8~5
856 1357 858 859 860 861
*
1362
8b3 8b4 DUDSLf' 1365
86b
86"/ * B08 130';> Si1PSFT 13'70 Wll 872
f.I7J
*
8'/'1 ll'75 B'/6 U'17
070
879 BOO f.lBl 082
It
..
LACK TBLR LAC ADD BACL OUT LflCK ADD SACL L.Afl L.AR l.ARP IN BANl
F ILTBF KLADO I(LAl'O FLTORD KLADO . KLADO ,PM
SHINOl F LTOR I)
teLADO AR1,KLADO ARO ,FLTORD 1 tt--,PA5,ARO OUDSLP
LAI~K
AHO,SHPLO
L.I',l: SACL. [lAHZ
*,2
DINT LDPK lAL.S L1)PK EINT L.AflK SAR HUB Bel
* SMPSF: r 1 L.BUFAII 0
fiR U, 79 AI~O,LPCNTR
LPCNIR,O UiBUf2
ILEES lABEL-ADRES WAAR HET ElEGINADRES VAN FILTERBUFFER IN STAAl ILEES WAARDE UI~ TABEL ILAAD »IT ADRES IN ACCUM. IBEREKEN JUISTE SlARTADRES ISTORE DIT ADRES IN KLADO jS1UUR WAARDE NAAR Exr.RAM ADRES COUlHER jLAAD ADRES VAN SAMPLE (-1) IN ACCUM. lEN BEPAAL HET ADRES VAN SAMPL~ (-FIL.TORDE) ISTORE RESULTAAT ADRES IN KLADO IL~ES DI'r ADRES NAAR AUX.REG.l IAUX,REG.O BEVAT ilL WAARDE: 1(F-ILTEIWI~IiL-"ll jACTIVEER AUX.REG.1 TIJDENS HET DOORLOPEN VAH DE "OUDSLP" IL.EES EEN SAHPLE VAN VOHIG WINDOW NAAR INTERNE RAM (GLBIED SMINOl TIM SHINJO) JGA DOOR MET LEIEH TOTDAr AUX.REG.O ~ 0 IS ILAAD ADRES VAN SAMPLE 0 IN AUX.ReG,O IBCHl/IF SAI1i'L.E 2 BI TS NMI~ LINKS (DE SAMPL.ES WAREN IN Q12 FORMAAr INGEL.EIEH) ;SCHIHJr SA/WLE TUWG UP ZUtl PLAATS (U 14 FOlmAAn IDOE DIl MEr AL.L.E BU SAMPLES IUNDERDRUK TIJDELIJK INTERRUPTS iDATA-PAGE 1 IS ACTIEF ILLES INLEESBUFFERS-ADRlS-POINTER IGA WEER lERUG NAAR DATA-PACE 0 IENABLE WEER INTERRUPTS i79 ~ DE HELfT VAN HEr AANTAL BUFFER EL.EHEN1EN ISTURE 79 IN LOOPCUUNrER IACCU. l~ IBUF.ELEH. - 79 IALB ACCU. ) 0 DAN BUFfER 2 LADEN MLT NIEUWE WAARIiEN
(DUffER 1 IS nellEF)
HEWLEIT-PAC~ARD:
FILE: LPC_RW:DEHZAT
n
o11ll 7EOD 0111 6770
"
0112 4C7D Il 11 :~ 3ll7f, 0114 '11M: 011~ 317C 0116 ~i9'1 0
Y. ('i
0117 01 HI 0119 0111'1 0111l 011C 0111> 011E 011F
n (""\
C'
OH~l
()
;~DAl
3177 39'IC 6C90 61>1'11 :517C 3977 F401l0119 71'81"
01 :':!2 OB6F 0123 5C7E 0124. 4I>7E
Q
0125 6880 0126 3876 0127 1'4000113
V
0129 01 ;'A o1 ;~B 012C 0120
'" "" \,I
012~:
7EllE 6TlF 207F 00'10 507F 4C7F
0121'
:~B7ll
41)(-18 0131 F4000130 OL~O
LIiBUF 1
8U6
II
88'7 n08
LDBUF2
AB9 II EI90 ADRSLD 891 If B'n ERURlD 139 ~i 1394
01 ~B 7EOl OD4 ~)(J 71 o 13~) 6EOI
w
lll~%
v
.....
i' ., , \)
F900002B
Wed,
4 J
II 11
1 'i'i:16
I
1 ~~ : 4;'!
f'(\GE
l!
lANDERS ElRSl BUFFERl SIART ADREB LLlEN ILLES SIARr ADRES VAN VOL IE SCHRIJVlN UI1VOERBUFFER IN KLA02 11IEGIN MEl tAfiFN
LACK II!LR
BUt' ;~AI> KLA02
IBUfFER2 SlART ADRES lEIEN ILLES srART ADREG VAN VUl IE SCHRIJVEN UIIVOERBUFFER IN KLA02
nUT
KlAII2,PA4
IlAAD EXT.ADkES COUNTER MET [lUFfER SlARl ADRES
ARO,lPCNIR AR1,FeAOl AIH ,KlAD3 AR1,FLTORD
ILAAD t NUG TE VERWERKEN SAMf'l~S IN LPCNIR IlAAD ADRfS VAN A(l) IN AUX.REG.l ISTURE DIT ADRES IN KLAD3 ILEES FILrERORDE IN AUX.REG.l (- • NOG TE [lEREKENEN COEF.)
0 1I+,13,ARl AR1,NSTCNT AR 1 , KLI'ID3 11-- ,ARO IH, r,Rl AIH ,KlAD3 AR1,NSTCNT lRRUR
IClEAR P"RLG. ILAAO S(N)KACO) = S(N)1I1 IN ACCUMULAIOR (Q27 FORMAAT) ISTORl tNOG TE DLREKENEN FIlT.CUEF. IN NSICNI ILAAD FIL1ERCOEF. ADRES IN AUX.REG.l ILAAD A(I) IN T-REG. I AUX.REG.l WIJST NAAR A(l+l) IVERMENIGVULDIG MEl SAMPLE S(N-I) --) P.RLG, ISTORE AIIRES VAN A(I+l) ILAAI> AUX.REG.l MEr t NUG TE [lEREKENlN FILI,COEF. IlAATSTE COEF.NUG NIEl LLHAD ,DAN VERVER REKENEN [lIJ ERRUR ITEl LAArSfE WAARDl IN P-REG. [lIJ ACCUM. UP (Q21 FORMAAT)
lEN,ll KLAD1,4 KlAD1,PA5
IAFRUNDCORRECTIL VUUR Q15 FORMAAT ;STORE RESUlTAAT IIJDElIJK CQ15 FORMAAT) IRUIS SAMPLE WAARDE NAAR EXTERNE BUFFER
LARP Lr,R BANZ
0 ARO,lPCN1R lROI~LD
IACTIVEER AUX.REC.O IlAAD L.OUPCOUNTER WAARI>E IN AUX.REG.O IAlS AUX.REG.O (> 0 DAN VERDERGAAN MET FllTERUITGANCS SIGN. CENEREREN
lACK 1BlR LAC ADD SACL OUI LAR OUT BANI
FIlTl3F KlADO KLAI;'l1 FUORD KLAliO KL.ADO ,PM AI~ 0, FLTOIW * , PA:3 SCHRU'
ILEES TA[lEL. ADRES VAN STARlADRES VAN FILlER lIUFFLR ILEES ADRES IN KlADO ,LEES DIT ADREB IN ACCUM. Illl ER FlIORD [lIJ UP OM JUI81E START AI>REB 1E VINDEN ISlORE ~EREKEND ADREB IN KLADO ,STUUR ADRES NAAR EXT.RAM ADRES CDUN1ER IlAAD AUX.REC,1l MEl FlTURD (VOOR ADRESSLRING IN INTERNE RMI) ISCHRIJF LAATSlE SAMPLES VAN WINDOW NAAR EXT.BUFFER ,NEfZOLANG TOTDAl AUX.REG.1l • 0 IS
lACK SACl L1iPK
1 PAGEPT 1
IACCU. :=, 1 IPAGEPUINTER ,- l' IACTIVEER DATA-PAGE
B
WACHI
,DL lIEREKENINGEN VOOR DELE WINDUW IIJN DLLINDIGD IWACHT TOTDnr ALLE SAMPLES VAN I>E VUlCENDE WINDOW [lINNEN lIJN
SAR L.AI~
K
SAI~
If
90~3
'104 905 'lll6 907 9llB
***
.IERLD KU\1>2 ADRSLD
LACI( I [ILR
LI'lR
B9'/ 898 B99 ERROR 900 901 9112
tlPYK LI'lC SAR lAR UA 111"'1' 8AR
LAR [lANl Af'AC II
ADD
YO'I
HACfi
910 911 II 912 rl'I3 914 915 II 916 r117 918 '71 rl 920 'nl 922 r123 SCHRU' 924
OUT
9:'~5
'"'
....
BOOO
BIB BB4 B85
WIS 896
LPC ANALYSL PROGRAMMA
SOURCE LINE
LOCAIION ODJECT CODE LINE 010t:: 7EOA 0101> 6771> 010E F91lll0112
***
II
926 PAGEO 1 92'1 PAGEl 921:1 r129 II 930 931 932 II* 9J3 If '134
If
93:.) 9 ~':l6 937
II II
938
II
939
II
II
s.$$ •• $$$$$.$$ •• $ • • • • • • • $.,$$$ • • • • • • $ ••• t ••••••• $$.$$$ • • $ •• ,$ ••••••••••••••••• , . SI$$$$$$$ $$$$$$$$$
"S'$'$S$
BESCHRIJVINGEN VAN DE SU[lknUIINE8
I
INISR, DELLN EN DEEL32
••••• $ • • $
1'/
FILE: LPC_RW:DEHZAf LOCATION OBJECT CODE LINE 0
9411
94b
951 952
n
953 954 955
n
950 959
(1
9bO 9bl 962 9b3 964 9b5
0
0
96& "lb7
0
968 969
970 971
0
972
973
'v
97b
v
'n7 978 979
'"
'180 9131 982 983 9tH 9fJ5
"" w
v
98b
OBa bEOI o1~39 7COB 013A SOOC 01~HI 580D 013C 300E 013D 310F 01 :5E 420f.l 0131=" 21)OB 0140 58118
* ** *
•• =••__ =._ ;-
_
__._
MODULf~
_.=
1B
-.........................................•
: INTSR
II
EXTERNE FILTER UITGANGS RUIS SAMPLE BUFFERS GENOMEN EN AAN DE
D/A
DE : CONVERTER DUORGEGEVEN . •
TIJDENB DELE INTERRUPf ROUTINE WORDT HOOFDZAKELIJK DATA-PAGE 1 VAN DE TMS-320 GEBRUIKT IN DATA-PAGE 0 WORDT ALLEEN DE PAGLPOINT VARIABELE GL-CHEKT OM TE BLPALEN NAAR WELKE DATA-PAGE ER TERUGGEKEERD MOET WORDEN AAN ~Ef EIND VAN DEZE ROUTINE. IN DELE ROUTINE WORDEN AAN HEr BEGIN I STAtUS, ACCU. , ARO EN ARl GE-SAVE.D EN AAN HEr EIND WEER HERSTELD, OMDAT HET T-REGISTER EN H[T P-REGI9TER NILI GESAVED WORUEN MOGEN DEZE NIET GEDRUIKT WORDEN IN DElE ROUTINE ... III! I!
**
* •
• * *
*
GEBRUIKTE VARIABELEN I - IN DATA-PAGE 0 PAGEPT ,RAM [113J • GEEFT AAN IN WELKE DAfA-PAGE DE PROCESSOR BEZIG IS IN HET HOOFDPROGRAMMA
* * *
•*
-
**
* * *
* * * *
* * *
•* ~ * * * ** *
IN DATA-PAGE 1 ONE I RAM HINUS I RAM COUNTR , RAH UBUFAD I RAM L~UfAD 1 RAH SAMPLE I RAM UITGSM I RAM TMPCNT I RAM
[ OJ [ 1] [ 41 [ 5] [ bJ [ 8] [ 91 [10]
• BEVAf DE WAARDE 1 • BlVAT DE WAARbE -1 ()FfFF) • lBAMPLE8 PlR WINDOW COUNTER (DOWN COUNTER) • FILTER UITGANGSIGNALEN BUFFER-AURES-POINTER (DOWN COUNTER) • INLEEHBUFFERS ADRES POINTER (DOWN COUNIER) • TIJDELIJKE OPSLAGPLAATS VOOR bE. SAMPLE VAN DE AID CONVERTER • TIJDELIJKE OPSLAGPLAATS VOOR DE RUISSAMPLE NAAR DE D/A CONV. • TIJDELIJKE OPSLAGPLAATS VOOR DE EXTERNE RAM ADRES COUNTER ALS NAMELIJK IN HET HOOFDF'ROGR. DELE COUNTER GEBRUIKf WORDT, DAN MOET DIE WAARDE AAN HEf EIND VAN DELE ROUTINE WEER HERSTELD KUNNEN WORDEN,
STATUS ACCULG ACCUHG AUXRGII AUXRGl
RAM RAM RAM RAM RAH
[111 [12] 1131 [141 [151
• • '" • •
STATUS SAVE PLAATS ACCU, LAGE DELL SAVE PLAATS ACCU, I·IOGE DUL SAVE PLAATS AUX,REG,O SAVE PLAATS AUX,RlG,l SAVE PLAATS
PHOCESSOR STATUS aIJ MODULE 0EGIN : DVM - SEf ~ INTM ~ RESlT ; DP ~ ? ARP ~? EHIDE : INti '"' SLf ; HlHI '" SLf ; liP " (PAGU'T> ; Ar~p '''?
*~~=~:~rn~=~=~~:~~~~"===~:~;==~.=~~=:~~:~:~~::~~;:':'L~·~:=.~:~:: .. ~~~~;~I.~·~;~~:~:~~~~;~::~~:~~::~:~~::.~:~:~
*K
* * * *
* * * * * * * * * * * * * ~
•
.. ::~~~'=~'~.~=~~:;:::=;~~=~~=~~~~=~:'====:==*
•
989
990
Lt)PK SST SACl BACH
9"11
BM
'192
SriR
995 996
_
~
INTlRRUPT SERVICE ROUTINE
** * * *
9B? * INTBR 9138
993 994
Pf!lGE
$$"'S'S' $$$$$$$$. $$$$"'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'$$'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
914 •
975
., ~~
*
95b M
957
4 Jun 198b, 1J:42
:.~11t:; ~~F~~~ ~~D~~~~ ~~~~~N~RG~~~U~~~F'~~p~~~t~~.A~~R~g~\J~~~~~ ~~l;~~,~l~~M~~EI~I~EE~~M~~~
947 948 • . " 949 * 950 *
0
...,
*
*.~.a==
0
Wed,
SOURCE LINE
941 * 942 * 943 944 . ' : 945
Q
~
*** LPC ANALYSE PROGRAMMA K**
HE~lETT-PACKARDI
<0
*
1
STAlUs ACCULG ACClJIiG,U ARO,AUXRGO AR1,AUXRGl
• BAMPL.E,PA2 IN LI',C SAMPLE,13 SACH SAMPLE,O
IACTIVEER DATA-PACE }SAVE StATUS ~SAVE ACCU, LAGE: DELL ~SAVE ACCU, IiOGE DEEL ~SAVE /'lUX.RlG.1I ~SA\Jt:: AUX,REG.l ~LEE9 SAMPLE IN VAN DE AID CONVERTER ;BAMPLE IN ACCUMULATOR 13 BItS NAAR LINKS GlSCHOVEN ,SAMPLt:: WEER TERUG IN GEHLUGEN J aITS AWIIHMEIIC NAAR
~ECHTS
GLSCHOVEN
(Q12
f()l~
HEWlEfT-PACKn~D:
FILE: LPC_RW:BEHZAl
9 rn
0141 44I1A 0142 4COb 0143 41>08
(")
.....
0144
o14~i
4CO~)
4~';09
.;.
0146 4A09 0147 4405
0
0140 2006 II 14" 11100 1114A 511 lib 014B 2004 lillie 1000 014D 5004
()
n
014£ 4COA
n
014F 6EOO II 1 ~iO ~'1l71 11151 6EOI 0152 FEOOO15E1
()
o1 ~;4 2000 01o;'i5 7801 1I15b 7908 0157 5008
0 g
o1 ~~;a :390F II 1~'j9 1I1SA III ~,B III ~jC
V
""
7F82 015E 'IF8D
01~m
..... 'wi
.....
.., ..,
.. ""
380£ 6501> 610C 7(108
~I
... '0
"
1000 1001 1002 II 1003 1004 1005 1006 1007 " 1110!3 1011" 1010 1011 II 1012 1013 11114 1015 " 1016 1 0 1 'I
Wed,
4 Jun
1'/116,
13:42
PAGl.
1 <;>
or
TMPCNT,PA4
;L~ES
OUT OUT
LBUf AD, PM SAMPlE,PA::i
;LAAD INLlESBUFFER SAMPLE ADRES IN EXT.HEM.ADRES CUUNfER JGfORE SAMPLE IN EX1£RNE MEMDRY (EXT.MEM.AOR.CNf. AUTOMATISCH DECREMENT)
UBUFAD,PA4
~xrERNE
MEM. ADRES COUN1ER WAANDE EN BERG DIT TIJDLLIJK
IN
JLAAD RUIS BUFFER ADRES IN EXT.HLM.ADklS COUNTER
OUT IN OUT IN
ur fGSM,PAS
i L EEl:; FILlER UITGANGS SAMPLE UIf EX1ERNE BUFFER,
UIIGSH,PA2 UBUFAI>,PM
J LETS GE-DECREMENTEERDE BUFFER AI>REB lERUG EN STORE DIT
LAC Gll£! SACl
lBUfAD,O ONE,O lBUFAD
,ACCU :~ INLEESBUFFERS ADRES-POINfER JACCU I - ACCU - 1 ,STORE NIEUWE INlEESDUFFERS ADRES-'POINrER
lAC SUB SACl
COUtHR,o ONE,O CIJUNTR
;ACCU :~ t(NOG WEG TE SCHRIJVEN SAMPLES) iACCU IY ACCU - 1 ,BTORE t(NOG WEG TE SCHRIJVEN SAMPLE~ - 1) IN CDUNTk
OUT
THPCNT,PA4
,HERlAAD DUDE WAARDE VAN EXTERNE MEM, ADMES COUNTER
LDPK l.(!,C lDPK BNZ
0 PAL;EP r , 0 1 EINDSR
;ACTIVEER fIJDELIJK DATA-PAGE 0 JLEES DE WAARDE VAN PAGEPOINTER ,WEER TERUG NAAk DATA-PAGE 1 ,ALB IN HOOFDPROGRAMMA DAfA-PAGE 1 ACTIEF WAS DAN IN1ERRUPT ROUTINE EINDIGEN
LAC XUfl AND SACL
ONE,O MINUS STATUS STAIUS
JANDERS Gl-SAVE-DE SIATUS WOURD WIJIIGEN ; lBB VAN ACCU. 1= IMAAK LSD VAN ACCUMULATOR 0 EN DE RES1ER~NDE BITS 1 IRESlT HIERMEE DE DATA-PAGE BIT IN GL-SAVi-Dl STATUS WOUND (DP:=O) JSTONE HET GEWIJlIGDE G1ATUS WOORD WEEfl IN GEHEUGEN
LAR
AR1,AUXRGl ARO,AUXRGO ACCUflG ACCUlG STATUS
,HERSTEl iHERSIEl ,HERSTEL IHERS'IEl JftERSTfl
,lAM DIT IN D/A CONVER1ER
If
1018 1 0 19
1020 1 021
1022 11123 1 II::!" 1025 1026 1 02'7 102B 1029 1030 1031 1032 1033 1034 1 II ~\::; 10:56 1037 1lUB
**.
II
998 99"
LPC ANAlYSL PWOLRAMMA
SOURCE UNE
LOCAfION ODJECT CODE LINE ::l
"~,,
"
" EINI>SR
U~,R
ZAlH ADDS
un "
*
EINT RET
AUX.REG.l AUX.REG.O ACCU. HUGE DEEL ACCU. LAGE DEEl STATUS (DATA-PAGE POINTER
WOR~l
AUfOMATISCH GOED GEIEr DOUR DP BI1)
,ENABLE INfERRUPTS (TMB-320) J1ERUG NAAR HOOFDPROGRAHMA
II !If
1039
*==~~:::~::==:~:::=:~==:~~=~:===~=====:~=~=~=~:=:::~::;~:w~:z=::::::~··::~~~:~~~:=~===~;:=::t:~::~::_~:~:~,:::::.~.'=:r.:=~:~:~::::=~::;;~;=:~~:~:~:::::-:::~~~:~~::::~:=::::;:~~*
1040 1041 11142 1043 104" 1045 1046 1047 1040 1049 10:50
" " "
1 O~.it 1 0~;2
*
" " "
* * * * * *
1053 "
DEll ROUTINE HODULE
I
DELEN
[N DELE ROUTINE WORDr DE WAARDE V~N DE lELLER GEDEELD DOUR DE WAARDE VAN DE NOEMEN. m\DAT VAN TE VOREN Al GELDT DAT TE1...LLI~ < NUEt\ER , Hi Hl.: f IU.. SULTAAI" < 1 HEr HESUlTAAT WORDf IN Q15-FORMAAf AFGElEVERD.
l(
"
II
" l(
It
AAN HEr EIND VAN DELE ROUfINE [8 AUX.RLG.O AeTIEF. ALS VUDR HEf AANROEPEN VAN DELE ROUTINE ARI AClIEF IS DAN HOLl NA BlEINDIGING VAN DELL RUUIINE MET DE lARP 1 INSTRUGTIE AUX.REG.l OPNIEUW GEACTIVEERD WORDEN. GEBRUIKTE VARIABElEN : - IN DATA-PAGE 0 BEVAf AAN HEr EIND~ VAN DE ROUfINE DE QUOfIENT QUOTN,. I RAi'I [11qJ TMPNOE : RAM [114J • BLVAI TIJDElIJK DE NOLMER WAARDL
II
" " It
..
It
bI
~ ~
~
k.
1(.
" '-
FILE: LPC_RW:BEHlAT
-
H~WLET
f-PACKARDI
II • •
LPC ANALYSE: PROGRAMMA
Wed,
K ••
04 Jun 1'/B6,
13:42
\
SOURCE: LINE
LOCATION OBJECT CUDE LINE
n ()
0
n ('\
n n
o1~iF
61380
0160 0161 016J 0164 0166 016'7 0168 0169
20'/4
FEOOO166 5072 F91l0017A 6A?4 61J73 7FBE 5875
01bA 2073 1l16B 7FBB
0
Il16C 5072
0
016D 6574 lIlhE 7F8B 016F 'lOOE 0170 6472 0171 F4001l170
0
1 0~)4 1 U'.',5 1056 1057 lU58 11l:W lU60 1061 11162 11163 1064 11165 1066 1067 1 06~1 1069 1070 lU71 1072 107.3 11174 11175 10'76 10'77 1078 1079 1080 1081 1 08;~
01'/3 5072 01'14 20'75 0175 FDOOO17A
u
0177 7FB9 0178 1072 01'19 5072
v V
017A 7F8D
1095
.....
....,
V
V
• II
• MK~=.=
••
RAM [115l RAI'I (116] HAM (117l
BLVAT DL NOlMER wnARDE BEo,iA I m:: 1ELLE.r~ WAARDE BLvnT TIJDELIJK HEr TEKEN VAN HET QUOTIENT
PHOCESSOR STATUS BIJ MODULE: BEGIN (EISI : UVM • SLT I INfM • EINDE ----) : OVM • SEf I INTM
= SET
~
I DP • 0 I ARP SET j DP • 0 I ARP
II K II
= ///
=
0
•• •
~C==:~=======~~=:~~=~==~:=~~=:==~~:==:=~~===~~:=:=~%=~::::~~:~;~::~~~:~:~:=:==~~::~:::;~:~=:~:=~~~ft~=::~~~:=~l=:~ .~:c::~:::=':::~=~*
If ;.~~ ~.
• DI:::LEN
LARP LAC Itl~Z
BACL BEGDL
B LI
MPY PAC SACH
0 TE.Ll.ER llEGDl. QUOTNT HLTDL IELLER NOI:::MER HIPSGN
jACTIVEER AUX,HEG,O JLAAI> TE.LLER IN ACCU IALS TELLER (I U DAN DEfL OPDRACHT UITUOLREN JANDERS IS HE.T ANTWOORD ~ 0 IGA NAAR HETURN ILARD DE TELLER IN T-REG, OM HEr fEKEN VAN DE QUOTIENT TE BEPALEN jBEPAAL NU SAMEN HET DE NOEMER HET TLKEN ILAAI> RESULfAAf IN ACCU, IBTORE HET TEKEN TIJDlLIJK IN lMPSGN
II
LAC ABB BACL LoAl.H ABS LARK
NOlMER
AR 0,1 "\
ILEES NlIE~'ER JNEEM HIERVAN DE ABSOLUTE WAARDE ISTORE DIT TIJDELIJK IN TMPNOL JLAAD lELLER WAARDE IN ACCUM, HIGH WORD jHAAK TE:.LL~R WAARDE PUSITIEF jLAAD LOOPCOUNf WAARDE VUOR Q15 FURMAAI IN AUX.REG.O
SUBC BANZ
TMPNOE DE.lLLP
115 KEER DLELLOOP DUOWLOPEN IDlIORGAAN TOTDAor AUX,REG.O ~ 0
SACL 13,C BGE:.I
QUOTNT TMPSGN RETOL
ISTORE DEELRESULTAAl IN QUOTNr L.EES THEN IALS TEKEN )~ 0 DAN RUUTINE BEEINOICEN
lAC SUB BACL
QUOTNT QUOTNT
JCLEAR ACCUMULATOR IACCU, I~ - QuorNT JSTURE DE NEGATIEVE QUOTIENT WAARDE IN QUUINT
TMPNOE TELLER
II
DEELLf' II
j
JTERUG NAAR HOOFDPRUGRAMMA
RET
II
1094 •
.....
~
NOlMER TELLER TMPSGN
II
11lfJ,3 10B4 1085 11186 II lOBi' 108B 10f.l9 1090 II 10 rll RETDL 1092 • 10'~3
\.i
• •
i
I
t;
10'/6 1097 10nl 1099 1100 1101 11112 1103 1104 1105 1106 1107 111lB 1109 1110
*==.~~~~~~~~~i::~~~a.~~:=~~d~=~~~~~:l:~=:~~~ln:~~~u~~:1~=~~=~lrn:~:=;~~~=::JI~::::=:~:~:=~.:=!~:I.I:=~:=~n:l~::~:~I:~=m~~~~~~:~::.~~lr':~~:~~ ;'::::~:~::~:I*
•
J2-BITS
D~EL
ROUTINE MODULE
I
DEELJ2
• II
• II II
• • II
• •
*
•
II
• tl
II
IN DElE ROUTINE WORDT EEN :52·°[llTS (1 IEKENIcI f ,31 SIGNIFICANIE IcITSIIE.LLER DUOR fEN 32-BITS NOEMER GEDlELD. ER WORDT VANUIT G~GAAN OAT DL NOLMEN PU91TIEF IS l.t~ DAT HET GRlHER HI DAN OE TELL.ER, IlIl Hi HET GEVI~L BU Dt:: l<EREKENINGEN VAN Rll r/I'I Rl0, RO 19 POSITIEF EN Rl T/M Rl0 ZIJN KLEINER DAN RD, DIJ HET NOkMLREN VAN RU T/M Rl0 WURDf DEZE DfEL.ROUTINE GEBRUIKf, HEf RESULTAAr VAN DE DELING IS IN Q15 FORMAAl,
II
*
• II
II
II
GEBRUIKTE VARIABELEN I - IN DATA-PAGE U 1 fEN I RAM [ 11 1 j B\:;.VAT HET RlSULTAAT VAN bE DELING (IN Q15 FORI'jAAO' I QUO'INT I RAM (114] TMPSGN I RAI1 [ll'/J ,. BE.VA,. TIJDELIJK HEf TEKEN VAN DE DELINe m:oVAo, LOW-WORD VAN DE NULMLR NOEML..O RMI [l;:!]J BlVAl HIGH-WORIl VAN DE NOEMER NOEI1HI I RAM [12" 1
till ~
'"
:..
• •
"'-
II
• II
•
Cl\
'"
-'
·"
LOCATION OBJECT
COD~
n
11 1 b
Cl
" 0
0 C
0 Q
0 U
0180 0181 01 8;~ 0183 01£14
657£ 617D 1F88 5070 58'7£
0185 0186 0187 0188
700F 637a 627C FAOOO191
018A 018B 018C 018D OUfE 01BF
50'71) sa7E 2172 006..5072 F900019J
0193 0194 0195 01 '16 0197 01913 0199 019A
v v
657£ 61 'ID 597£ 2170 5071> 657E 617D F4000186
019C 2075 0190 FDl1001A2
'""
01 f/F 7FB9 01AO 1072 01A1 5072
w
01A2 7FElB 01A3 7..-80
)
~, ~
W
7FBA 7Ff:J9 5072 20'1E 5075
0191 2172 0192 5072
"" ""
fill
01?B 017C 0170 017E 011F
....
TELLO lE.LHl
• II
PAGE
I I
RAH [125] • BEVAT LUW-WORD VAN DE TELL~R (WORDT GLWIJIIGD TIJDENS DE, .. ) RAH [126] • BEVAT HIGH-WORD VAN DE lELLER ( ..... DELING)
PROCE!lSOfl STA1US 8IJ MODULE
[~EGIN
(EI5)
:
EINDE ----)
I
OVI1 ~ SO , INTl1 • SEf , DP = 0 ; ARP = 0 DVM· SET , INTM - 8[T , DP = 0 ; ARP - 0
*.:m"lIU• • ,.a::=';::'::~t:~:aI=.-:.c::&::~=a:;==::~==:::=I;;:::::=::';::::;;::::;::~::::::::::.;:::;;:;;::::;:;;:.::.:.: ~ ~:;;:.:: .;::;:::::::;:,:; ~::::: :.:.-.:._::;,::.::;
II
;;::::&:
=::..::~::::::: ;.:: =: :::.:;,;:;:.::: ~:==::::::::::~;.~==.,;:::.-.:;;::=;::: ;.;: ',:: =::=:::::=: ;;::::::::"~~:: ::-.:=
II
*Je.
·'f'
,RESET OVERFLOW MODE ,ACCU :'" 0 ,QUOTIENT':'· 0 ;LEES IIIGH··WORD ur,N TELLER ,ALa TELLER NEG. DAN SlGN=NEG. (NOE.MER "PUS)
RlJVH lAL SACL
QUO TNT
SACL
'IHPSGN
ZALH ADDS ABS SACL !:IACH
TELHI 1ELLO lE.LLO TELHI
,LEES HIGH-WORD vnN TELLER IN ACCUMUl.ATOR ,VOEG HIERBIJ HET LOW-WORD VAN DE lELLE.R ,MAAK TELLERWAARDE POSITIEF ,STORE LOW-WORD VAN TELLERWAAkDE ,STORE HIGH-WORD VAN TELLERWAARDE
LARK SUBS BUBH BLl
ARO, 1:5 NOEt1LO NOEHHl RE8NEC
,LAAD LOOPWAARDE IN AUX.REG.O ,'RE.K LOW-WORD VAN NOEMER VAN DE ACCUMULATO~ AF ,TREK OOK HIGH-WURD VAN NOEMER VAN DL ACCUMULATOR AF ;ALS RESULTAAT NEGATIEF DAN VERDER GAAN BIJ "RESNEG" LABEL
TELLO
B
QUOTNT,1 EEN QUO TNT L.SHIFT
,RESULTAAT IS POSITIEF, DUS LAnD NIEU~E TELLERWAARDE VANUIT ACCUMULATOR IOUK HICH-WORD VAN TELLER LADEN VANUII ACCUMULATOR ,SCHUIF QUOTIENT 1 BIT NAAR LINKS ;lEL ER EEN alJ UP .STORE NIEUWE QUOTIENT WAARDE ,GA VERDER MET HET NAAR LINKS SCHUIVEN VAN DE TELLER
LAC BACL
QUOTNT,1 QUO TNT
,SCHUIF QlmTIENT 1 BIT NAAR LINKS ,STORE NIEUWE QUOTIENT WAARDE
ZAl.H
TELHI TELL.O TE:LHI , 1 'J E.LLO , 1 TELLO TELLO DL32LP
,LAAD HIGH-WORD VAN TELLER IN ACCUMULATOR JVOEG HIERBIJ LOW-WORD VAN lELLER ISTORE HIGH-WORD VAN TELLER 1 BIT NAAR LINKS GESCHOVEN ;LAAI> LOW-WORD ~AN lELLER IN ACCUMULATOR 1 Blf NAAR LINKS GESCHOVEN ,STORE NIEUW LOW-WORD VAN TELLER ,LAAD NIEUW HIGH-WORD VAN TELLE.R IN ACCUMULATOR ,VOEe HIE~BIJ LOW-WORD VAN TELLER jZOlANG LOOP NOG NIET DE-EINDIGD --) GA VERDER ME~ RE.KENEN
LAC BGE.Z
HIPSGN EIND32
jlEES SIGN WAARDE ,ALB BIGN PUSITIEF DAN SUBROUTINE BE-EINDIGEN
ZAC sua SACL
QUOTNT QUOTNT
lANDERS ACCU IE 0 ,EN NEGATIEVE WAARDE VAN DE QUOTIENf NEMEN ISTORE NEGATIEVE WAARDE VAN QUOTIENT
Lr,c
11~2
II
II
* * *
1117 * : 1118* . 1119 DEEL32 1120 1121 1123 1124 1125 1126 1127 112B 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1141 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 115'1 1160 1161 1162 116J 1164 1165 1166
4 Jun 1<;'86, 1:5:42
SOURCE LINE
LINE 1111 1112 1113 1114 1115
4'1
Wed,
HEWLETT-PACKARDI -** LPC ANALYSE PRUGRAMMA .-.
FILE: LPC_RW:BEHIAT
lEUH
II
II
DL32LP * RESPOS
REBNEC
*
LSHIFT
SACL BACH LAC ADD BACL
I\I)DS
eACH LAL BACL ZALli ADDS BANl
.~
lEun
lEun
• *
,. E.IND32 •
*
SINH RET
,SET OVERFLOW HODE ,1ERUG NAAR HOOFDPROGRAMMA to.
FILE: LPC_RWT1:BEHIAf
H~WLETI-PACKAND:
LOCAl ION OBJECT CODE LINE
Mon,
16 Jun 1(/1:)6,11:<"'1
PAGE
SOURCE LINt_
2
*
4
II
5
II
;~
IMSJ~O
" LPC_RWTl DIT PROGRAMMA MAAKT GEBRUIK VAN TWEE INLEESBUFFERS EN TW[E UITVUERBUFFERS. HET INGANGBSICNAAL WORDf SYNTHETISCH GEGENEREERD EN WORDl IMPLICIET DOUR lEN RECHTHOEKIGE WINDOW BEWERK1. HET UITGANGBSIGNAAL IS HE' ER~ORSIGNAAL VAN HET FIR-ANALYSEFILIER.
"TMS~~20
FILENAAM
-*
b II 7 It ' •. 8 1t~IXX%XXX7.i.i.i.I.i.i.7.7.7.7.7.7.7.i.7.7.i.i.7.7.7.7.7.7.7.7.i.7.7.7.I.7.7.7.7.7.7.7.7.i.7.7.7.7. 7.7. 7. 7.7.7.i. 7.7.7. 7. 7.7. 7. 7. 7.7.7. 7. 7. i. 7.7. 7.7.7. 7.7. 7. 7.7.7.7. 1.7.7.7.7.7.7.7.7.7.7.7.* 9 II LINEAIR PREDICTIVE CODING ANALYSE VOL GENS DE AUTOCORRELATIE ME-rHoDE II
10
II
M.B.V. HET TMS-32010 EVALUATION BOARD EN HET ANALOG-INTERFACE-BOARD (NIEUW TYPE)
II
11 *7. 7.%7.7. 7.7. 7.7. 7. 7. i. 7. 7.7. i. 7. 7. 7.7.7. 7.1. 7.7. 7. 7.7.7. 7.7.7.7. i. i.i. 7. i.7. 7. 7. 7. 7. 7. 7. 7. 7. i.i.i. 7. 7.7. 7.7.i.7.7.7.7.7.i.7.i.7.i.7.7.7.i.I.7.7.i.I.i.7.7.7.7.7.i.7.7.i.7.i.7.7.7.7.i.7.i.I.7.7.7.11
12 13
o
II
i. 7. 7. i.7. 7.i. i. 7.7.i. 7.7. 7.7.i. i. 7.7.7.7. 7.7.7.7. 7. 7.7. i. i.7. i. 7. 7.7. 7. 7. 7.7. 7.7.
II
7.
1&
II
i.i.7.7.7.7.%7.i.7.7.7.Xi.7.7.7.7.7.7.7.X7.i.7.7.7.7.7.7.7.7.7.i.7.%%7.7.i.7.
17
II
18
II
19
II
20 21
II
II
II
INITIALISAIIE VAN INTERNE DATA-RAM VAN DE TMS-J20 ~N HET AlB-BOARD.
I
1«---------------
1
WACHT
t WACHTEN fOTDAT • ER 80 SAMPLES • BINNEN lIJN
SMPLHV
t HAAL DE 80 • SAMPLES llINNEN
II
II
It
t
HAAL DE IN EXTERNE RAM GEllUFFERDE SAMPLES VAN EEN WINDOW BINNEN NAAR DE INTERNE DATA-RAM VAN DE TMS-320
•
II II
II
44
II
MATRIX
l!
• BEREK EN DE • • MATRIX ELEMENTENt ----I RO* TIM Rl0* t
II
45
II
v
46 47
II
..,
4B
II
II
FUReD
t llEREKEN DE FIL• TER eOEFFICIENt Al TIM AlII EN t Kl TIM KIll
49
II
511 51
II II
52
II
53
II
I I
54
II
--------------- > I
56 57
WACHf TUIDAf ALLE SAMPLES VAN EEN WINDOW BINNEN ZIJN
II
42 43
55
t
••
It
II It
v
'-'
• INITIALISAl IE. =====~:~=~=~=======~
II
It
..., ~.t
(KORIE UMSCHRIJVING)
II
'""'
~
Sf ART
(BIJBEHOREND BLOK)
It
40 41
.....
(LABEL)
II
31
35 3& 37 3B 39
BLUKSCHEMA VAN HEr ANALYSE-PROGRAMMA 7.
II
II
34
"""
II
*
28 29 30 32 33
'-'
*
14 15
22 23 24 25 26 27
C)
II
-,.
i t t
BEREKEN VANAF RO* ALLE MATRIX ELEMENrEN TIM Rl011 IN GENURMALISEERDE VURM (ALS DE COEF. ALLEMAAL II ZIJN GAAT HET PROGRAMMA VERDER llIJ "FTUITG"
BERLKEN ALLE FILTER eOE~FIeIENTEN Al 11M A10 EN REFLECIIE eUEFFICIENTEN Kl TIM Kl0 (RECURSIEVE BEREKENINGEN)
t
V
II II
F fUITG
•
B~REKLN
HET fIL-t
TES10PfiE
I
BEPALING VAN HET UITGANCS-
HEWLETT-PACKARD: TMSJ2U
FILE: LPC_RWT1:BEHZAT
~,8
If
'59 60 61
If
62 Q
,
.'
v
"
61~
II It
72 73
Il
74 75
"
76
Il
* *
~
,.;
"" ..., ~
,
~
f\3
PAGEl
I BRANCH NAAR • <WACHT> VUOR DE t RESTERENDE t SAMPLES VAN DE • NIEUWE WINDOW
DE BLRLKENINGEN VOOR DELE WINDOW lIJN AFGEROND. WACHT NU TUIDAI ALLE SAMPLES VAN DE EERSTVOLGENDE WINDOW BINNEN LIJN. DE EERSIE SAM~LES VAN DE NIEUWE WINDOW ZIJN ONDERTUSSEN OP INTERRUPT-BASIS [IHINENGEKOMEN.
If
" " " "
78 79 8U 81 82
Il
83
It
84 B5
Il
Bb
It
97 98 99 100 101 102 1113 104 105 106 1117 lOB 10'il 110 111 112 113 114
SYN1HETISCHE SIGNAAL GENERATIE VOOR EEN VOLGENDE WINDOW. SYNTHESE FILlER WORD1 AANGESrOIEN DOUR EEN PULS AAN HEr BEGIN VAN DE WINDOW.
,~.
II
70 71
'ilb
....
v
"
I I t
:----------------)
<SUBROUTINES) ====~========:~~===~=:====~
INTSR
It
"
Il
It It
" *
I t
I I
II
If
v
• SIGNAAL GENERATIEt t VODR VOLGENDE I I WINDUW I
II
II
67
89 90 91 92 93 94 95
SYNfHI::
"
" 87 Be "
,-
SIGNAAL VAN H~r ANALYSE FILTER. (OM IE CUNTROLEREN HOE GOED DE ANALYSE VERLOm'T)
"
Il
77
tl:;~(1
• TER UITGANGS• t SIGNnnL tN t t PLAATS DE RESUL-I • TAlEN IN LXT~RNE. • RAM BUFFf.:.I~. I
II
66 b8
16 Jun 1'/06,
SOURCE LINE
LOCATION OBJECT CODE LINE
63 b4 65
Mon,
•
t
t t
(lNT~RRUPT ROUTINE) -NIEUWE SAMPLE INLELEN -FILTER UITGANGSSAMPL~ • NAAR DE D/A CONVERTER t STUR~N
• t
t t
DELEN
t (DEEL RDUTINE) • • DELEN VAN TWEE t t 16 BilS GETALL~N • • RESULTAAT WEERGAVEt • IN Qt5 FORMAAT t
DEEL3~
(DEELROUTINE) t DELEN VAN TWEE t 32 BITS GETnLLEN • I (NOEMER IS POSIT.)t I RESULT. Qt5 ~ORM. t t t I
===.~=========c====c======
" "
ER ZUN
It
DEZE ZIJN :- INLEESBUFFER 1
5
BUffERS IN HET EXTERNE RAM GEDIED GESTATIONEERD.
Il
»
HO GEHEUGENPLAATSEN SAMPLE 0 OP ADRES >9F (=159 DECIMAAL) SAMPLE 79 OP ADRES )50 (DOWN COUNT ADRESSERING) DE SAMPLES VAN EEN NIEUW WINDOW (UNEVEN WINDOW) WORDEN HIERIN TIJDELI GEBUFFERD WAARNA IE BIJ MODULE <SMPLMV> NAAR DE INTERNE RAM VAN DE THS-J20 GELElEN WORDEN OM ER EEN PRE-EMPHASIS EN fEN HAMMING-WINDOW BEWERKING OP UIT TE VOEREN.
»
ao GEHEUGENPLAATSEN ~ ~ SAMPLE () OP AORES >'IF (= '/1/ Dl::.CJMAAL> ~ SAMPLE 79 or ADRES )00 (DUWN COUNT ADRESSERING) DE SAMPLES VAN EEN NIEUW WINDOW (EVEN WINOOW) WORDEN HIERIN TIJDELIJK GEBUFFERD WAARNA ZE DIJ HUDULE <SMPLMV) NAAR DE INTERNE RAM VAN DE ~ TMS-320 GELlIEN WORD~N UM ER lEN PRE-EMPHASIS EN HAMMING-WINDOW BEWERKING OP UIT TE VOEREN.
I
Il
*Il II
"
Il
II Il
- INLEESBUFFER 2
Il
It Il
II
"
*Il
FILE: LPC_RWfl :BEH1Af
HLWLEfT-PACKARD:
1 1~;
·ll
11("
1(.
1 1 7 ·x· 1 Hi I/;
,.....
11'7
I/;
1 ;'.' U
·ll
'"'
121
II
r-'
12:5 124
1~~;~
125
r· (",
(")
I/;
*
1 3~;
I/;
136 137
II
- UITVUERBUFFER 1 : 80 GEHEUGENPLAAfSLN (WORDT PARALLEL GEBRUIKT MEl INLLESBUFFER 1) SAMPLE 0 OP M)I~ES )Hlf (.~ 81'11 !)ECIMAAU SAMPLE 79 OP ADRES )lFBO » IN DELE BUFFER SlAAN DE ANALYSEFILfER UITGANGS SAMPLES VAN DE VONICE WINDOW, BIJ IEDER INTERRUPT, ALS ER EEN NIEUWE SAMPLE VAN DE AID CONVERfER WORDT INGELEZEN (-) NAAR INLEESBUFFER), WORDI ER Ull DELE BUFFER EEN oVEREENKOHSTIG SAMPLE GENOMEN OM NAAR DE DIA CONVERTER GESlUURD IE WORDEN. VEIE BESCHRIJVING CELDT ALLEEN ALB DEZE BUFFER DUUR DE PRUCESSoR ALB ACIIEVE BUFFER IS GLKOI~N. UITVUERBUFFERS 1 EN 2 ZIJN OM EN OM AeTIEF. DIT WISSELI NA IEDERE WINDOW. ALS DELE BUFFER NIEI ACTIEF IS WORDT HEI VUoR DE PRUCESSUR VOLGESCHRLVEN MEl UITGANGSIGNAALBAMPLES VAN HEI ANALYSEFILflR (VOUR HE' IN BEHANDELING IIJNDE WINDOW), BIJ MUDULE (FrUIfC), -U nVOER BUFFER 2
I
»
au GEHEUGENPLAATSEN (WORDT PARALLEL GEBRUIKT MEf INLLESBUFFER 2) SAMPLL 0 UP ADRES >tFAF (= 8111 DECIMAAL) SAMPLE 79 OP ADRES >tF61l FUNcrlE IS IDENIIEK AAN Ul1VUERBUFFER 1, DELE fWEE BUFFERS llJN SIEEDS AFWISSlLEND AeTIEF EN NIET-ACTIEF. DIl WlSSELT NA rEVERE WINDOW.
.)1
-FILTER BUFFER 1 10 GEHEUGENPLAATBEN 139 I/; SAMPLE -lOOP ADRES )UA9 14U I/; SAMPl.E - 1 (II" ADRES )IlAU (~1611 DECIMAAL --) 8fARTAJ)I~EB) I'll II » HIERIN STAAN DE LAATSfE to SAMPLES VAN EEN VORIG WINDOW DIE 142 II DOOR HET ANALYSEFILIER WERD BEWERKT, BIJ HEl VULGENDE WINDOW 14'3 II WORDEN DELE ALB DE IN HET ANALYSEFILIER AANWEZIGE SAMPLES GEBRUIKT. 144 1I 145 I/; 146 *XXXX7.XXXXXr./.ZXXXXZXZXXr.XXXr.X/.r.XXZXXXXXZ/.r.7.XXy./.r.Zy.r./.ZZ/.r.r.Xr.7./.Zr./.r./.r././.Zr.7.X7./-7.XZr.7.r.7.X/.Z/-Z7.1.r.Z/-Z7.7.r.ZZXr. 147 II 148 II 1:58
0
0 V
'-' V
'"' '"" .....
""" ...., ~
=' "" W,
...,
.~ I/;
126 I/; 127 I/; 128 * 129 )I 13U I/; L31 I/; 1:5211 133 II 134 II
r,
PAGE
GUURCE UNE
LOCATION UBJECr CODE LINE l~
Mon, 16 Jun 1'11:16,11:2'1
TMS3~0
It
HEWLETT-PACKARD: *** LPC ANALYSE PRW;RAMMA ***
FILE: LPC_RWT1:BEHZAT
Mon, 16 Jun 1'/86,
11:~~'1
PALL
~
SOURCE LINE
LOCATION OBJECf CODE LINE 150 151
()
1::,2
n
0000 f9110001C 0002 F90001D4
C' (')
1b2
'~
(')
n < 00 4F)
<004E>
("}
(0000)
<005A) <00::;'1) (0050)
CI
o START INI9R
;ABSOLUUT START ADREH VAN HET PROGRAMMA = 0 ;STARr ADR~S VAN HOllFDPROGRAMMA ;BTART ADRES VAN INTERRUPT SERVICE ROUTINE
•*
..
*
~
****************~************************************************************************************
*
START EN EIND
ADR~SSEN
VAN DATA-ARRAYS IN HEr INTERNE RAM-GEHlUGEN VAN DE fMS-320
**
*
* *
163 SMPLO TIM SMPL79 BEVATTEN DE SAMPLES 164 * AUCORO TIM ACUR10 BEVATTEN DE AUTOCOR. MATRIX ELEMENTEN * SMIN10 TIM 6MINOl DEVATTEN DE LAATSTE 10 SAMPLES VAN VORIG WINDOW * 165 * 166 * REFCOl TIM REFC10 BEVATTEN DE REFLECTIE COEFFICIENTEN * FeAOl TIM fCA10 DEVATTEN DE RECUR9lEF BEREKENDE FILfER CUEFfICIENTEN * 167 * 168 **************************************************************************************************** 169 * ;ADRES VAN fERBTE SAMPLE VAN EEN WINDOW 170 SMPLO EQU 79 ;ADRES VAN rWEEVE SAMPLE VAN EEN WINDOW EQU 78 171 SMPLt EQU ;ADREa VAN LAATSTE SAMPLE VAN EEN WINDOW 00 172 SHPL79 173 * ,ADRES VAN MATRIX ELEMENT RO 174 AUCORO 90 Et~U EQU ,ADRES VAN MATRIX ELEMENT Rl 89 1'75 AUCORl ;ADRE.S VAN MATRIX ELEMENT Rl0 EQU 176 ACOR10 80
(0064) <005B) (006E) (0065)
184 *FCA01 185 fCA10
E(~U
89
EtiU
80
,ADRES VAN SAMPLE -10 (VAN VORIG WINDOW) ;ADRES VAN SAMPLE - 1
EQU EtiU
100 91
;ADREa VAN REFL. COEF. Kl ,ADRES VAN REFL. COEF. Kl0
EtiU EQU
110 101
;ADRES VAN FILTER COEF. Al TIJDENB DE M'DE RECURSIE SlAP ;ADRES VAN ~ILTER COEF. Al0 TIJDENS DE M'DE RECURSIE SfAP
183
V
186
'"'
188
'"
189 190 191
187
* * * *******-******************************************************************************************** * ADRESSEN VAN GEHEUGEN PLAATSEN IN DATA-PAGE 0 (VAN DE TM6-320) * * VOOR GEBRUIK IN HET HOOFD PRUGRAMMA *
192 ************************************~***************************~***~***~*******************K***~***
'"
<006F) (0070) (0071>
..., '" 'WI
~
v
ORG _ B B
* 178 SMIN10 179 !JMINO 1 180 * 181 REFCOl 182 REfCl0
(0059) (0050)
V
v
'* *
177
Ci
J
153 154 155 lS6 157 158 159 160 161
-II
, --.
193 * 194 EEN 1 I,::; FL TURD 196 PAGEPT 197
111
112
* QUOINT
E(~U
199 TMflNOE
Elm
( 0072) (0072) (0073) <0(74) (0075)
201 TELLE.R 202 TMPSGN
(0076)
203 204 * 205 * LPCNTR
~
E(~U
EtiU EQU
198
200 NOEMER
206
-
113
EI~U
114 114 115
e:QlJ
116 117
E(~lI
lHI
EQU
;BEVAT DE WAARDE 1 ;ClEFT DE
HET RESULTAAT VAN DE DELING (Q15 FORMAAT) TIJDELIJK DE NOEMER WAARDE BIJ EEN DEELUPERATIE DE NOEMER WAARDE VOOR EEN DELING (16 BITS) DE TELLER WAARbE VOUR EEN DELING (16 BITS) TIJDELIJK HET TEKEN VAN DE DELING
;LOOPCOUN1ER OM BIJ TE HUUDlN HUEVEEL FILTER CUEFFICIENTEN BEREKEND ;MOLTEN WORDEN (DUWN-COUNTER)
4
HEWLETT-PACKARD: *** LPC ANALYSE PROGRAMMA
FILE: LPC_RWT1 :BEHIAT .~
LOCATION OBJEer
n
COD~
(0077) (01l'l{J) (0079) (01l7A)
t:'
(007B) (OO'/C) (007D) ( 007E>
0 ('\
(007F> (007E> (007D) (007C) (OO7B)
(i
11: ;,!'I
PACE
NSTCNT GMPADR ELEMRI AlEMP
EQU ElJU EQU ELiU
119 '120 121 ')":) 1 '-.'-
;NEBTCOUNrER OM CLNEBTE FUR/NEXT LOUPS BIJ TE HUUDEN ;ADRES VAN SAMPLE SCNI IN DATA-PAGE II ;ADREB VAN MATRIX-ELEMENT RI IN DATA-PACE 0 ;TIJDlLIJKE UPSLAGPLAATS VOOR DE FIL1ERCUEFFICl~NI Al
II
NOEMLO NOEMHI TELLO IELHI
* Kl.ADO KLAD1 KLAI>2 220 KLAI)3 221 KLAD4
E(~U
12~
HIU
124
EI~tJ
125 126
EQU EI~U EI~1.I
f:.(4U
EQU EQtJ
; £lEV AT ;BEVAT ;BEVAT ;BEVAT
LOW-WORD VAN DE NUEMER VOOR 32-BITS DELING VAN DE MATRIX ELEMENlEN HIGH-WORD VAN DE NUEMER VOUR J2-BITS DELING (NUEMER IS ALlIJD POSITIEF !) LOW-WORD VAN DE TELLER VOOR 32-BITS DELING HIGH-WORD VAN DE TELLER VOOR 32-BIT8 DELING 0 VODR ALGEMEEN GEBRUIK 1 2
125 124
;KLADRUIMrE ;KLADIWIlHE ;KLADfWIMTE ;KLADRUIMTE
3
123
~KLADRtJIMTE
4
127 126
" " 1111 It II II II It 11111111 II tl II II II II
('1IT!:; NIET IN GEBRUIK VUOR ANDERE FUNCTIE)
*
':.-)1:.-
(,
LL.J
r,
,~
227
II II II
228
I;)
'-'
....,
(1l000) <0(01) (0002) (ll003) (0004)
"" .....
""
230 1l**1l1l1l1l1l**.11****1l1l1l1l1l1l1l****1l1l1l1l*1l1l1l1l1l***•• ***.*1l1l1l*.***1l1l*11l.*1l1l******"*1l.1l1l***.1I***1l1l1l***1I1I**1l1l1l1l1l1l DATA-PAGE 1 WORDT TIJDENS DE VOLGENDE ACTIES GEBRUIKT * 231 II INITIALISATIE * 232 II 233 II - SAMPLES BINNENHAL~N UIT HET EXTERNE GEHEUGEH ll234 II INTERRUPT ROUTINE, OM SAMPLES VAH DE A/D CONVERlER NAAN HET ExrERNE GEHEUGEN II 235 II TE l.EIEN EN OM rILTER-UITGANGSBIGNALEN VANUIr DE BUFFER II 236 If IN HET EXTERNE GEHEUGEN NAAR DE D/A CONVE~TER TE srUREN. II 231 * II 238 II I>E GEHEUGENPLAATSEN IN DATA-PAGE 1 ZIJN ALS VOl.GT BEZEl : II 239 llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll*.llllllll*llllllllllllllllllllllllllllllllllll***llllllllllllllllllllllllllllllllllllllllllllllllllllll*llll• • 240 II ;BEVAT I>E WAARDE 1 241 ONE EI~U o ;BEVAT DE WAARDE -1 242 MINUS ELIU 1 ;KLOK RATE VOOR DE A/D CONVERTER 2 243 RATE ELIU ;MODE WUURD VOOR DE ANALOG INTERFACE BOARD (NIEUW BOARD) 244 MODE E:IJU 3 ;ISAMPLEB PER WINDOW COUNTER (DOWN CUUNTER) 245 COUNT[{ EQU 4 ;UITGANGBBUFFERB-ADNE8-POIN1ER (DOWN COUNTER) 246 UElUFAD t:t~U 5 [(4U ;lNl.EESBUFFERS-ADRES-POINTER EtltJ 250
(OOOEl) (0009)
....
(00 OM
"" '
~
,
:"
'"
(OOOB) ( OOOF>
ie'
226
229
()
w
1 f.> J un 1'/86,
222 22:3 II 224 -x
r"
w
Mon.
SOlJRCE LINE
LINE 207 2013 209 210 211 212 213 214 215 216 217 218 219
.*.
*
251 SAMPLE 2~)2 UlTGSI1 253 * ::~~'j'l 'I MPCN I 255 256
a '7
ELIU
'1 U
EI~1J
11 12
.)to
*
25B 259 260 261
SIATUS AeCULG ACCUHG AllXRGIJ AUXRG1
262
*
263
If
2~7
[(~IJ
[tau
ELIU ELlll
Elau HIIJ
13
14 15
;TIJDELIJKE OPSl.ACPLAATS VOOR EEN SAMPl.E IJIT DE A/D CONVERTER ;TIJDELIJKE UPBLACPLAAIB VUOR EfN FILTER SlGNAAL SAMPLE UIT HET l:::XTERNE RAM ;DEIE SAMPLE WORDr DODRGLSTUURD NAAR DE D/A CONVl~TER ;ll JDENB EEN INH,RIHlf'l WUfllll HIER IN 1lE. WAAIWE. VAN I>E ;EXTERNE RAM ADRES COUNTER OPGEBORGEN. lSTAIUB ;I'lC(;IJM,LAAG l ACClIt·j , HUOG ;AUX, RtG U ;AUX. RE:G.1
OPBE.I{Gf'LAt'tlB UP BEI~GPLAATS OPBEI{GPLAATS OPBU~Gf'LAI~1 S OPBERI;PLAATS
TI J I>LNU IIJDENS TIJDENS TLJDtNS TIJDENS
EEN IIHERRUPT Et:N INTERIWPT ELN lInE~RUPT i:LN IN'IEI{RUPI LEN IN1ERIHlP I
HEWLETT-PACKARD: **.
FILE: LPC_RWTl :BEHIAT LOCATION UBJECT CUDE LINE
<00B2)
264 265 266 267 268 269 270 271
(OOB~3)
2'/2
(0084) (0087)
273 274 275 276
( lI08B)
277
(0080)
(0081)
(0085) (0086) (OOIW) ( OOBA>
n
(lI08B)
(008C) ( lIOElD) ( Oll8E>
(OOBFS
ANALYSE PRUGRAMMA •••
Mon
16 J un
I
HIERONDER VOLGEN DE BENAMINGI:.. N VUOR t;E.I1EUt:E.NPLAATSEN IN DATA-'PAGE 1 ALS DE1.E I N .
lONE IHINUS IRATE rHODE ICOUNT IUBlJFA ILBUFA INUL ISAMPL
ELIU EQU
* INIHRECTE MOD[ WORDEN GEBRUIIO, !!!!!!! o. *************"'******"'''''''*'''****'''*'''*'''*****************'''**."'''''''**********************'''***'''********.*''''''*'''* * 128 129 130
E(~U
EQU
131 132 133
EI~U
; "1
; ,,-.. 1
;KLOK RATE JNODE VOOR AlB - BOARD ;tSAMPLES PER WINDOW COUNTER IUITVOERBUFFERS ADRES POINTER ;INl.EEBBUFFERS ADRES POINTER I" 0
136
2'78 lUIlGS
EI~U
137
279 IlMPCT 2l:l0 UHATS 281 IACeUL ;~B~~ IACeUH ;~B3 IAUXR 0 284 IAUXR'I
E(~U
BEl
EI~U
U9
E.{~U
140 141
;TIJDELIJKL OPSLACPLAATS NIEUWE SAMPLE ITIJDEl.IJKC FILTE~ UilGANGS SAMPLE OPSLAGPLAATS ;TIJDELIJKE EXl ,HEM,ADR,COUNTER OPSl.AGPLAATS ;STATUS OPBERGPLAA1S BIJ INTERRUPl ;ACeU LAAG OPElERGPLAAlS BIJ INTERRUPT IACCU HOOG OPBERGPLAAIS BIJ INTE~RUPT ;AUX,REG,O UPSLAGPLAATS BIJ INTERRUpr IAUX,REG,l OPSLAGPLAAfS BIJ INTERRUPT
292 293
PACE
"'****lI***.*••*.******.* •• *.*******•••• *•••••*•• *** •• **.**•• *********••• *•••••••• **.*••*••••*•••*****
E:1~U
291
11: 2'1
'"
135
~185
19t16,
SOURCE. LINE
EQU EtlU EQU
286 287 28B 289 290 '-
L~C
* *
134
~:QU
E(~U
142
HIU
143
* * *
* * *
*$"$'$$$"'$$$$$""$"$$$$"$$.'$$$$'$$$$.$$$'$'$$$$$$t$$$$$$$$$$$$$$$.$$$$$$$$$$$$$$$$$$$$$$$$$$$
294 * 2'75 " 296 *
2'n"
298 '" 299 "
3110
'-
....'
II
$$$$$'$$$$$$$$$$$$$$$$$'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$~.$$
302
It
$$$S$$$$$$$ $$$$$$$$$$$ $$$$$$$5$$$
303 :~06
"'"
309 310 :H 1
307 30B
..,
:st2
* * • * *
315
w
~r
"
0004 000'7
HET BEGIN VAN HET
HOO~DPRUGRAMHA
$$$$$$$$$$ $$$$$$$$$$ $$$$$$$$$$
$$$$$'$$$$$$$$$$$$$$$$.$$$$$$$~$$'$$$$$$~$$$$$$$$$$$$$$$$$$$
ENI(El.E
llP MER KI NGE.N
VOOI~AF
:;.. ;:.;:::::.:.::;;;r.;;;;.:.:.::::::;:::.;;:::
O~
I
DE TEXAS INSTRUMENTS "DATA" STATEMENr IS HIER VERVANGLN DOOR DE "OW" StATEMENT!!!
'I! LET OP
I
OVERAL WAAR EEN "l.OOP" WORDT DOORLOPEN, WORDT HEr AANTAL KlALN DAT D[ "LOOP" UITGEVULRD WURDI DIJGlHOUDEN DllUR EEN DOWNCllUNT VARIABELE, DE. WAAROl VAN DE1.E VARIADELl IS STElUS 1 MINDEN DAN HET EIGENLIJKE AANTAl. DAT D[ "LOOP" NOG DUORLOPlN HULl WORDEN,
! I! LET
If 1(0
If
313 ..
314
....,'
*
304 .. 305
....
V
*
~01
II
*===••• ====.~===••=.a•• =•• =•• =.~== ••••• ==.=.===P••• Z.'
316 * DATA WAARDEN 3 t 7 If =::::;: :::J:::~:::::::::: :::::.::: I:: = Cl:t:::= t::: :11I1:: ;:::.It.;~::=;:,.. :r,;::: r.:: I::: ~;:.;. ::;: c" ::~ :r.: =~::~ :::::'0: 1.::: ~.::;; ::;:1= r..:;::;:: ::';::. ::~ :::.•:. ,:;:: 31B * :H9 * .320 TAElEl.O DW IFlLTEfWRDE>-l '7
'".~~.===~.=====,=.~==========.====.====.=.~=.
:::.;':::: ::~::.: :;.• :';::::.::::. ::...-::::: ~: .. ;:~::;; ;;:;;:;. ::_ ~_ ::.;; : :... ,;R
:.• ::.
--) fLTORD
::~ ::;;;:;
:.;,. ::•• ::.. I:;;
*
::l: ::::. I: ;::: :.• :;:: :::: :::::0;;;1;;::. ::.. ;:R ::l ::. ::::".
HEWLETT-PACKARDt
FILE: LPC_RWTl :BEHZAT
r,
SOURCf~
LOCATION OBJECT CODE LINE 0005 0001 0006 FFFF 0007 011'3
0
*KIl
LPC ANALYSE
321 TABEL.1
bioi
1
322
DW DW
OFFFFH 499
DW
001DH
DW DW DW DW DW DW bW DW
79 IFfFtI 159 0 IFAFH OOAOH OFAH 1
3~3
0008 001D
325 326 II;: .
n
327
("l
330 II
It
328 II 329 If 3:51 3:32
r,
If II
:3:33 II 3~H
II
3:35 II ("
n n 0 Q
,..; \,,;
""
00 1l'7 OOOA OllOB OOOC OOOD DOOE 0001-' 0010
01l4F IFFI' 009F 0000 IFAF OOAO 001'1'1 0001
0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B
00112 E03F FFFb 0032 0000 0000 0000 0000 0000 0000 0000
336
337 338 339 340 341 342
HERLD
BIJF2AD flUBI' FlllUF2 343 INDICA 344 II 345 II 346 SfORDE 347 SFILCU
1)1.01
349 350
DW DW DW DW DW DW DW I>W
354 355 356
357
359 II 360 II 361 II
362 If 363 II Jb4 "
\w
36~j
II
---
3b6 II 367 II J68 II 369 * 37D "
'..J
*
-'
3'71 II ~i72
~
..,,;
=',
"w
PAGE
'I
2
-8129 -10 50 0 0 0 0 0 0 0
I =1 --) EEN, PAGEPT, ONE I =-1 --) MINUS ISAMPLE RA1E --) RAT~ I SAMPLE FRLQUENTIE = 5 MHZ/(SAMPLE RATE + 1) IAIB MUDE WAARDE (KLOK TIJDELIJK DISABLED) --) MODE )MODE BITS: I BIT 15 TIM B : =0000 0000 ) DON'T CARE I BIT 7 :~O ) EXT. HEM. ADR. COUNTER COUNTS ON MEM. DATA WRIfES BIT 6 ,=0 ) EXT. MEM. AI>R. COUNTEN COUNTS ON MEM, DATA READS BIT 5 :=0 ) EXT, MEM. ADR. COUNTER CUUNTS DOWN BIT 4 I-I ) AUTOMATIC RECEIVE MObE fOR EXPANSION AID BIT 3 :~1 ) AUTUMATIC RECEIVE MODE FOR ON BOARD AID BIT 2 :~1 ) TRANSPARENT MODE FON EXPANSION D/A BIT I~O) SAMPLf DELAY MODE fOR ON BOARD D/A I BIT 0 :"'1 ) DISABLE SAMI'LE RATE CLOCK 1(1 SAMPLES PER WINDUW -J) --) CUUNTR IBEGIN ADRES fILTER SIGN. BUFFERI --) UBUFAD ;(1 FILlER SIGN, SAMPLES IN TWEE BUFFERS -1) --) LBurAD I -0 --) NUL leTART ADRES V.ANTWEEDE UlTGANGS RUIS ltUFFER ISTART ADRES VAN FILTERBUFFER (SAMPLE -1) ISTARTADRES VAN FILTERBUFFER 2 (VOUR LAAISTE SAMPLES VAN SYNfH,FILlER) IINDICATIEWAARDE OM AAN IE GEVEN wAAR DE GEGENEREERDE SAMPLES HEEN MOETEN IINDICA ~O --) SAMPLES NAAR INLEESBUFFER )INDICA () 0 --) SAMPLES NAAR UITVOERBUFFER IBYNlHESE FILTER ORDE -1 (Q13 FORMAAT GEBRUIKEN !!!, I I I I) ;SYNT. FILTER COEF. 1 "
2 3 4 b
7 U
9
10
*=====:~===~~========:=====~~====~===~==~:==l=~~==;:~~=:===:~=~==~;====~~=~:;.=~:~:::~:~~.~:~=~=:~~=~~~=~;~~~~~~:=.:~:.=~~~~* If I
3SB II
"-'
DW DW
348
351 352 353
Mon, 16 Jun 1986, 11:29
~*.
LINE
324 II
0
P~OGRAHMA
3'73
If
374
II
~7S
If
3'/6
II
377 If
INITIALISATIE MODULE
START
1I
IN DIf MOI>ULE WORDT DE INTERNE DATA-RAM VAN DE TMS-320 GELADEN VANAF TABELO EERST WORDEN ER 3 WAARDEN IN DATA-PAGE 0 GElADEN. DAARNA WORDEN ER a WAARDEN IN DATA PACE 1 GELADEN.
Je. 1I lf
1I
MET (RATE) EN (MODE) WORDT HET ANALOGE INTERFACE BOARD GEINITIALISEERD. DE FILTER UITGANGS(RUIS)SIGNAAL BUFFERS WORDEN INITIEEL MET 0 GELADEN, ALS LAATSlE WORDEN DE SAMPLE RATE CLOCK VAN HET A,I'B' EN INTERRUPT MODE VAN DE TM9-320 GE-ENABLED. GEBRUIKTL VARIABELEN I .. IN J>A IA"'PAGE 0 EEN RAM ( 11ll FL ruRJ) I RAM (112 ] PAGEPl : RAM [l1:"3] - IN DATA-PAGE 1 ONE RAM MINUS I RAM
II 1I
If II
* *
I(
1 9 1
If
If If
If I(
o] 1 ,I
1 )FFf-F
If 1I
'.J
HlWLll r-PACKARDI
***
LPC
ANALYS~
PRUGRAMMA
110 n,
~K.
370
J(
3l'1
If
1~A1£
MODE CUUNTR UBUFAD LlIUFAD NUL
3lHIlt 3Bl If 382 .. .~I:U
If
3U4 38::;
If If
BIJ EEN
I
1
RAM RAM RAM RAM RAM RAM
3'11 3'12
7FBB 6EOO 7E:.04 67'70 7EO:':i 6761" 67'71 6EOl 7007 7180 00;.~6 6E1Bl 0027 67AO 0028 0000 0029 F4000026
00lC 001D 00lE 001F 0020 o O;:~ 1 o 0::~2 0023 0024 0025
002B 4902 002C 4BlU
:...../
OO:?D 4C05
~
OO;~E
~mo:)
002F 4D07 110]0 F400002F
""
o 1l:~2 0033 00]4 01135
v
....
JEll)] 6898 3003 4803
0036 420B
....
o 0:r7 7F82
*
II If
II~"''''''··''''''
u
"I 1 : 2'1
G~GEVEN
2J
4'/9
.*
EER!3 I 1001D , BIJ MODULE LINDE 1001C
J(
4.1 :j l 6.1
71~
'll
*
11 FF F 159
*
*
o
1(.
.*
PRUCESSOR SlAlUS BEllKlNT
I I I "" DOI~' T t;AR~_ ? = UNBLKENO, MAAR WEL WAARDEVUL
.~
J( J(
PRUCESSUR STATUS BIJ MUDULE BeCIN I OVM EHllIE: UVM
~
III ; INIM = RL8Ef ; DP ~/II; ARP ~ III uel; INIM" 5E·l j Df' , 1; ARP" 0
.* J(.
'~~,=r==~~==~~=~===~L~=~======~~'~="~=====~===~===~===.=============~=====~=~========~=====*
II II
:3'13 START .5<1 "
395 J'I6
397 _~9a
399 400 401 402 403 VOLGND 404 405 406 40'7 If 40B 409 410 If 411 412 413 CL.RBUF 414 415 ·It 416 If 417 41B 419 4;~0
421 422 42] 424
1
3]
:386 ..
388 Jf:j'1 J90
J un 1 '11:l b
SOURCE LINE
LOCATION OBJECT CODE LINE
:3B'l
"I 6
LAI~P
1
lBLR
IH,ARO ONE VOLGND
OVERFLUW MUDE IDA fA-PAGE 0 ALTIEF ;TABELO-ADRES IN ACCUMULATUR JLlES FILfEMURDE WAARDE IN ;TABEll-ADRE5 IN ACCUMULATUR IEEN : = 1 JPAGEPT : ",. 1 .DAfA-PACE 1 ACIIEF ICtTABE.L. WnARDEN - 11 IN ARO JBlGIN ADRES VAN DATAVELD IN DA1A-PAGf 1 ;ARl ACTILf JLEES fEN DATA WAARDE UIf TABEL ;HOOG ACCUM, 01' NAAR VOLGLND DAfA IN lABEL ILlES ZULANG AROe 10
RAIE,PAl MODE,PAO
JSAMPL.E RA1E WAARDE NAAR A.I.B, ;MODE WOORD NAAR A.I.B. CSAMPLE CLUCK DISABlEDI
UBUFAO ,PA4 ARO ,UBUFAD
JFILTER UITGANGSCRUISISIGNAAL BUFFER 1 ADRES NAAR EXTERNE ADRES COUNfER JEXTERN RAM TOP ADREa IN ARO JCLEAR BUFFER GlHfUGEN CGEHEUGEN ADRES WURDT DUUR EXT,MEM.ADR. CUUNTER lIIJGEHtJU ;TUT HET EINDE VAN INLEESBUFFER 2 CARO FUNGEERT ALS lOOP-COUNTERI
SOV~l
LDf'K L.ACK TBLR LACK II!LR IBLR UIPK LAI~K
LARK ADD ~'ANl
OUT
our
our LAR OUT BANZ
JS~T
o
., ABELO FLTORD ·IABEU lEN PAGt:PT 1
ARO,7 AR1,IONE
NUL,PA~
CLRBUF
I1AI~
Al~ 0, 11-
SAR lJUT
AI~ 0, MUDE ~1DOE,PAO
;lAAD ARO MET A.1.B. ~IODE WOURD CUlT DATA-PAGE 11 ;RESET LSB --) ENABLE SAMPLE CLUCK ;BlURE A.I.B. MODE WUORD IN RAM JNflUW MODE WOURD NAAR A.I.B.
iN
SAMPLE,PA2
IDUMMY LEES OPDRACHT OM D[ INT-LIJN VAN DE AID CONV. IE RESET fEN
lAR
MODE
If
I(
EINT
JlNABLE TM8-J20 INTERRUPT MUDE
425 •
426 * 427x·
'"
428
..... 'i; l'
v
*===:::~~=~~====~~::=~==~;~=:::=~~=:::~=::~::~~~:::=~:=:~~~~::~===~~~.;~=~%::~~:::_:_:~:~.~~~~::. :~:;:.;:_::~.:::=;~::'.::~.::~::::~:~::=~=~~_:;.=~~~=:~~~~~~':~~::::::~::~*
42<1 II
~
430 431 432 433 434
WACH fLUB 110DULE
1
WACH f
*
II
* II
* 1I
It
ER WORDT GlWACHl fOlAN~ DE CiSAMPLES -I) COUN1ER 1= 0 IS. DEl~ WACHT lUS WURDT ALLEEN GEDRUIKT ALB DE PROCESSUR HELEMAAL NIElS TE DUEN HEEF1. ALB DE COUNIER C 0 IS DAN BEGINr ER ELN NllUWE cyeLUS VUOR HET VERWERKEN VAN DE BINNENGEKUMEN SAMPLES VAN EEN WINDUW.
J(
*
*
1I
FILE: LPC_RWTl :BEHlAT
HEWLE1T-PACKARDI
LOCATION OBJECT CDOE LINE 43~5
I,,:",
436 437 ('"l
4_~B
r..
439 440 441
0038 2004 00.59 FD000039 C'>
("'J
,.,
* If
II
II II If
II
***
lion,
1 6 J un
1 '>'l'16,
11 : 29
".'-lGE.
II
GEBRUIKTE VARIABELEN I - IN DATA-PAGE 1 LOUNTR I RAM [ 41 • )FFFF
l!
(BIJ MODULE I:::INDE)
*
*
II
PROCESSOR STATUS BIJ MODULE BEGIN (El9) : GVM ~ SET; INTM .. SET I DP • 1 ; ARP ~ 0 ElNDE _._-) : OVM '" SET I INlM '" BET I DP .. 1 I AIH' ,., 0
1(.
l!
II If
445 WACHT 446
0 (OJ
"" "" '"
00·3C 30().4 01l3D 2006 II O:~f.. FAOOO047
V
V
\0,1
..... \) ="'"
~
01140 0041 0042 004.3 0044 0045
719F 3107 4ClI? 7100 3t07 F900004C
0047 0049 0049 004A 01l4B
7EOA 6705 0000 6706 4C04
0041: 6EOO
ILLES ('SAMPLES - l)CUUNTER ;WACHT ZOLANG DEZE )= II 19
II II
450
*e=============~=C=~==~~===~C====~~=~=~===:=~=~~:C~~=1==;=:~:==;=::~~~:==:==~~:.::~::=:~=c:~==:~=:~:==:=:~::~~~==:~~~:::=::~~:~.=:_~==~*
410
o0:5B 704F
COUNTR,O WACtH
II
MUDULE OM SAMPLES VAN EEN WINDOW BINNEN TE HALEN ; SMPLMV M.B.V. DIT MODULE WORDEN DE IN EXIERNE RAM GEHEUGEN UPGEBLAGEN ao SAMPLES VAN EEN WINDOW IN EEN KEER BINNENGEHAALD NAAR DE INTERNE DATA-RAM VAN DE lH8-320 . VOOR DE SAMPLES COUNIEH (CUUN1R) ~N EUT. VOUR D~ UITVUERBUfFERS ADRES POINTER (UBUFAD) EN INLEESBUFFERS ADREa POINTER (LBUFAD) WORDEN NIEUWE WAARDEN GELADEN.
II
458 If 459 * 460 II 461 II 462 If 46J • 464 II 463 If 466 II 467 • 469 II 469.
0
LAC (tGEl
44'7 448 449
4~7
'til
PROGRAM~A
SOURCE LINE
451 II 452 If 453 If 454 * 455 • 456 II
n
w
LPC ANALYSE
442 •• ~~~.*~.=~:~=~~==~~==~~~===~~~~=:;:~=~~:=-~~~=:~:;==~~~~:-:.~~~:=~:~~:=~~=~~~~=~==~~~~~~~:~==~~==~~~=~~-~~,=:==~==~=:===~=*
443 444
("'I
..,
***
*
II l!
II II
II II
GEBRUIKTE VARIABELEN I - IN DATA-PAGI::: 0 PAGEPT I RAM £113] = 0 -
IN DATA-PACE 1 ONE I RAM COUNTR I RAM UBUFAD 1 RAM LBUFAD I RAM
II
* II
* * *
II
[ 0] "" 1 [ 4] .. 79 [5] )lFFF (ALS BUFFER 1 AeTIEF) I • )lFAF (ALS BUFFER 2 AeTIEF) [ 6] .. 159 (ALS BUFFER t AC1IEF) I ~ 79 (ALB BUFfER 2 AeTIEF)
PROCESSOR STATUS BIJ MODULE BEGIN (EIS) I OVM = SET I INfM ~ SET I DP • 1 I ARP • 0 .. EINDE - ..----.) I OVI1· SET I IN1M'" SET I DP .. 0 I ARP ,., 0
II II
*
II 1(.
*==C===========ft======~==~==.=====~~===~~:~~=~=~:~~==~G=~==~~Z=~~=~=~:~:~=~===~=:~~~~:~=~~~3=1~=~:==~~;~:~~:::::~*
471 • 472 II 473 SMPLMV 474 475 476 477 II 478 47'1 480 481 4B,~
4tn 484 II 485 ACTBF1 486 487 4Be 489 490 * 491 PAGEO
LARK SAR LAC BLZ
AI~O,
79 ARO,COUNTR L.BUFAD,O AC HWl
l(tSAMPLES - 1) K 79 IN ARO ILAAD 19 IN CGUNIR ILEES INLEESBUFFERS-ADRES-POINTER WAARDE IALB DEZE WAARDE CO DAN ACTIUEER BUFFERS
L.ARK SAR OUT LARK Sf.'IR (c
AR1,159 Ml,L£,f8AD L.I:::ESAD,PA4 AR1,0 AR1,NUL PAGEII
;ANDERS ZIJN BUFfERS 2 ACTIEFISTART ADRES VAN INLEESBUFfER 1 WORDT GEL.ADEN DE PAS INGEVUERDE WINOUW NAA~ INTERNE RAM VAN TMS-320 lE LElEN IBTUUR STARTADRES VAN INLEESBUF.l NAAR EXT.RAM ADRES COUNTER ;CL.EAR AUX.REG.l ;OM DE NUL WAARDE WEER TlRUG IE SCHRIJV~N IGA VERDER (eIJ "PAGEO"
LACK IBLR AUD ·1 bLR OUT
HERU) U(cUFAD ONE,O LBlIt' AD COUNlR,PA4
lANDERS HERLAAD (--) ZIE (eIJ DATA WAARDEN UNDLRAAN TADEL1) IBUFFER 1 ADRES ~ )lFFF iN UBUFAD I EN tH:.RLAAD IBTAR1ADRES VAN INLEESBUfFLR 1 IN LBUrAD ISTUUR STARTADRES VAN INL.EESBUF.2 NAAR EXT .RAM ADRES COUNIER
LDPK
0
IAcnVEER DATA·-PAGE. 0
10M
9
FILE: lPC .. RWTl :BEHIAf
H~~LEI1-PALKARD:
.';'.
7111U 3171 45813 f400004F
4'/2
49] 494 LEES
495 496 4'jl7
LPC
ANALVS~
PROGRAMMA
***
11on,
16 .lun 1'/86, 11:<."/
SOURCE LINE
LOCATION OBJECT CODE LINE 01l4D 004E: OU4F 01150
11*11
* *
LARK SAR IN BANZ
AR1,n AR1,PAGEPT *,PAS LEES
; AR 1 '" 0 lRESET PA~E POINT BIT IN PAGEPT lLfLS SAMPLE VANUIT EXTERNE RAM (ARU IS INTERNE RAM POIN1ER) lNET IOLANG TOTDAT ARU ~ II (AUTOMAIIC DOWN CUUNT FUNC1IE VAN DE EXIERNE lMEM. ADR. COUN1ER IS HIER ACTIEF)
498 • ". 499 .~•• ~ •• =~~~===~~=~~~====~:=~~=:~=~=~=::::=::~~=~~===~:;:~:~~===~:::::~~~=~~=~=~=:~~':===~=~==~~~~~==~==~:.:=:~~~=:=~~=:==~;:=::;.:*
r·
''-'
~
\,.I
.... II II
.....
00:32 704F
HATRIX
LARK
ARU ,SMPLU
II
"" v ~
,
~ V
"
\)
01153 II 1l:'j4 U115~) OO::;b 01157 0059
7F89 BllllO 6C88 blHm f40110055 7Ft:W
o U~)A fEOOUU64
LAC HI XEL.ll
* II
11P VI<
U
UA
II
I1PY
II
BANI M'Ae
HTXEl.U
BNl
LIHEL
FILE: LPC
~RWTl
HEWLETT-PACKARD I *** lPC ANALYSE PRUGRAMMA
:BEHIAT
o O~:;C 71 H:. oo~m 706E oO:"il: 6BHO
oII~:.F
"'"
11:;~9
PAGE
11
;ANDERS ALLl MA1RIX ELEMENTEN ~N FIlTLR COLFFICIENTEN NUL MAKLN 131 GEHEUGEN ;lAAD Arn~lS VAN FILlER CUEf, Al IN AUX.RE~.O ;ACTIVEER AUX.REC,O ;HAnK GEHEUGENPlnATS NUL lACCUMULATUR IS NUL) ;DUE DIT NET IULANC TOTDAI ALLE 31 GLHEUGENPlAATBEN NUL ZIJN ;GA NU VEROER MET DE lESTOPTI~IFIL1ER UIfGANGSSIGNALEN)
H::UI1
QUOTNI AUCORO
;STORE HIGH-WORD VAN RO (RO IS DE lELLERWAARDE) ;S·fORE lUW-WORD VAN RO (UOUR DE J2-BITS DElING) ;TEL ER 2 A -24 BIJ OP ISTURE NU HET HIGH-WORD VAN DE NOEMER ;STORE LUW-WORD VAN NUEMER (RO+2 A -24 IS DAN DE NUEMERWAARDE) I[<EREKEN NU RO* -) ROl« :.: RO I (RO + 2 ·,·24) ;lEES RO·. ISfORE RO* WAARDE
SAR
ARO,AUCOf
IlAAD ADRES VAN Rl VIA AUX,REG,O lIN "ELEMENT RI" VARIABELE
lARK ti ,'f.! lAR St,R LARK
ARO,SNPll ARO ,SMPAI)I~ Af.!l,FUURD AR1,lPCNTM AR1,SMPLO
ILAnD ADRE9 VAN SAMPLEl VIA AUX.REC.O lIN "SAMPLE ADf.!ES" VARIAB~LE IlAAD DE WAARDE : (FIln:ROIWE - t) IN AUX.REG.l ISTORE AANfAl NOG lE BEREKENEN RI'S IADRES VAN SAMPLE 0 (VAN lEN WINDOW) IN ARl IACCUMULATOR :~ II ;ARO ACTIEF (ARO WIJBT NAAR 5(1» ;LAAD SCI) IN (-REG I ACTIVEER Ai'll IVERMENlGVULDIG Sll) MET SIO):RESULTAAl IN P-REG. EN ACTIVEER ARO IM:CU :' ACCU + P-RI:::G. I lAAD VULGENDE SIN) IN I--REG. IACTIVEER ARl IVERI'ILNICVllLDIG BIN) tIEr SIN-I) --) P--REG. ;ACTlVEER AI~O . IGA V~RD~R MET BE~EK[NEN VAN RI TOT EN MET DE lAAISIE SAMPLE I~S(79» ITEL NOG 9(79)1I5179-I) BIJ DE ACCUMULATUR OP
LAI~K
~'i511
L.ARK lARP SACl BANI B
COFNUl
~'ill'n
11060 F411111105E 01l6? F9111100FB
11l Jun 19U6.
AR 1, .30 ARO,FCAIII 0 .-,O,ARl COFNUl FlUIIG
:.549 5~)1
Mon,
SUURCE LINE
lUCATIUN UBJECT CODE liNE "'"\
*.*
~j:5 3 554
~
11064 11116:'i 01166 0067 01168 llO69 0061:1 006C
r. r
SACH SACL ADD SACH SACL CALL lAC GAel
587E ~'i071)
~:,~:;7
006F :.'i87(: S1l7B FBOO1l216 2072
5513
562
:'iO~jA
563
r.
5~t1
560 561
lE.lLO EE.N NOE11HI NOE~jLO
DEEL~2
A
564 ..
01l6D 7059 111l6!:': 3079 (",
01l6F 7114E 00'/0 3078 o1171 :39711 olin 3176 0073 714F 0074 7FCW 0075 68130 1l0'll> 6(\91 00'/7 6D90 0078 6C81 0079 6D90 OO'IA f4000078 007C 7FBF
("'.
n 0
V
00'7D 1l07E 007F OOBl
!oJ
""
587[ 507D F8000216 20'/2
0002 3879 01lB3 5098 0084 30'79
....
.... .....
572
LAI~K
573 574
lf~C
575
LT
576 577 MTl(EU 578 579 580 581 • 582 583 504 585 586 *
Mf'V l.TA Mf'V
LAI~P
IltMl
0 "-,ARl II-,ARO ",Akl *-- ,ARO M1XElI
APAC sneft SACl CAll LAC
TELHI lELUI DEEL32 QUOTNT
ISTORE HIGH-WORD VAN RI COM RI* IE BEREKENEN) ,SIORE lOW-WORD VAN RI CRI WORDT DUUR lRO + 2 A -24) GEDEELO) IDEEL RI DOOR lRO + 2 A -24) IlEES RIl«
58'7
LM
:'i88
SACL aAR
.-
ARll,ELEMRI
IlAAD ADREB VAN RI IN ARO ISTURE RI* CQ15 FORMAAT) ,STORE ADRE9 VAN RCI+l) IN ElEMRI
sn
lAR MAR BAR
AR 0, !:H·IPADR It-,ARI ARO,SMP'ADR
;LAAD ADRES VAN SII) IN ARO IWIJZlG OIl ADRES NAAR HET ADRES VAN 8Cl+1) IACTIVEER ARt ISTORE ADRES VAN 511+1) IN SMPADR
5'16
LAR BANZ
M 1, LPCNTR 11)(l.OOP
ILAAD ltTE BEREKENEN MATRIX ElEN,-I) IN ARl IARl () 0 DAN VERDlR GAAN MET BEREKENEN VAN VOlGEND MA1RIX ELEMENT
589 ~:i90
oOEl:') 38'78
591
0086 61191 00a'7 3078
::i'n
00B8 3976 0089 F40000'12
""
565 566 567 * 568 569 570 5'11 MXlUOP
ARO,ELEMRI
It
:594 .. 595
597 II· 598 '" 599 * ::0: ::::::0: ::. :::.; :::::.:::::::= ::::;:~::: :;;. :.::::: ::.: :;:; :::::::: :;.;; :.;;; ::.:':::::: ::.:::;;.:;-:. :::: ::" :;~:= :::.: * 600 *= =a= :=:::: ::::::: :=:r.:::;: :r.: ::-::.~::= :::::::: ::a::.:::::: ::::.::: ~::;: ::::::::: ::;::;:::::.: ::: :=:::::::: :::::=:.:: =-.: ::::l..:::::~ :::: FILlER COEFFICIEN1EN EN REFLECTIE COEFFICIEN1EN BEREKENINGB HODULE I FllRCU '" 601 .. 602 * * IN DIT MODULE WURDEN DE FIllER COEfFICIEN1EN Al TIM AIU EN DE REFLECTIE CUEFFICIENTE~ • 611;~ * Kl TIM KI0 ~fR[KEND, LAIER KAN MET DElE COlFFICJENICN WEER HEI OURSPRONKLL.IJKL * 604 * 91GNAAL HERLEID WURDEN, OIT KAN WURDEN GEREALlSEERu MEl fEN lPC-BYNTHESE FIllER, • 611~5 * :::::"0;: ::;: :::::
'OJ
'-
.....
Q !'"
,
'" '"
VAN EEN WI
::: :::..::.: :::: ::;: ::::.:: :::: ::,::::;
I::; ;':;:: :::: :;;: :::.: ::..
-'
FILE: LPC_RWTl :BEHIAr
HEWLETT-PACKARD:
.**
LPC ANALYSE
PRUG~AMMA
*-*
SOURCE LINE:
LOCArION OBJECf CODE LINE 606 • 607 If 60B • 609 * 610 • 611 ..
612 II 613 ..
II
. ";,
VUOR HET BEREKENEN VAN DE BUVENCENUlMDl COEFFICllNIEN WURDT GEBRUIK ~EMAAKT VAN DE ROBINSUN RECURSIE METHODE (Zl[ VERSCHEIDENE THEURIE BUEKlN HilRUVEN). ALS .!:.NVOER VOUR Dt:: BLfH:.KENINGEN GELI)EN DI::. HIERVUUfo/ BEI~EKEND':: NATRIX ELEMEN1EN rn 1/11 R10 MET DE BEREKENINGEN WDRDT BI! kl EN Al arGONNEN EN BIJ Kl0 EN A1D GEEINDIGD. PER REKENCYCLUS WDRDT Efo/ EEN KI EN DE DAARBIJ BEHORENDE Al TIM At BEREKEND.(I ~ INDEX) OM UVERFLOW PRO~LEMEN TE VOURKUMEN WURDEN Al TIM Al IN Q13 FURMAAT BEREKLND. Kl riM KI GEUEN CEEN OVEfoIFLOW PROBLEMEN. DELE WORDEN IN Q15 FDRMAAT BEREKEND.
614 •
615 616 617
It
* *
AAN HET EIND VAN DE BEREKENINGlN STAAN DE FILlER CUEFFICIENrEN Al flM AI0 RESP. IN DE GEHEUGlN PLAATSEN 110 TIM 101 (DATA-PAGE 0). DE REFLECTIE COEFFICIENTEN Kl riM K1D STAAN RESP.IN DE GEHE:UGEN PlAArSEN 100 11M 91.
618 •
619 • 620 * 621 • 622 It 62J If 624 •
62::; • 626 • 627 *
GEBRUIK1E VARIABELEN : - IN DATA-PAGE 0 RESULfAAT WAARDE VAN DE DELING IilUOTNT I RAI1 [114] NOEMER I RAM [115] • NOEMER WAARDE VDOR lEN DELING TELLER WAAROE VOOR EEN OELING IELLER I RAM [1161 LPCNTR RAM [11 a] = 1:1 ••• 0 LUlIP DOWN COUNTER VUUR 1: =-2 .• U 10 NGTCNT RAI1 [119t· NESI COUNTER VUDR (FOR J:~2 TO 1 DO) LOUP ELEMRI RAM [121] = OPSLAGPLAATS VOUM DE ADRESSEN VAN DE RI'S TIJDELIJKE OPSLAGPLAATS VOOR AJ(I'E SfAP) A1EMP RAM [123]
628 •
629 * 630 .. 631 .. 632 *
633 ..
'-
634 635
If
636
If
6:5?
If
v
639
641
r-
OO13D 2059 OOOE 5074 ooaF F80001FA
643 .. 644 64::i .. 646
""'
OlJ91 0092 OlJ93 0094 0095 0096 009'7 0098
v 'WI
'"
~ia6E
00'19 2D7J 009A OE6f 009B 59'73
.,.J
~. ~
6881 'iFa'" 1072 5064 016F 506E 2t:.6E
:' I
~
009C 2074 009D OE6F 009E 5974
KLADl KLAD2 KLADJ
b:J8 FLTRCO
647
648 64'1 6~0
651
652 653 6:i5 6ei6
65S
it;
*
If
* * it;
1(.
·It
* *
I(
* 1(.
* I(
* * * * It
I I
UVM ~ SET l INTM • SET I DP - 0 I ARP - 1 UVM ; SET l INTM • Slr l DP = 0 l ARP • 1
LAC BACL
AUCORO NOEHER
ILAAO RO IN ACCUMULATOR JSTORE RO IN NOEMER (Q15-FORHAAT)
LAC SACL
AUCURl TELLER
JLAAD Rl IN ACCUMULATUR JSTORE Rl IN TELLER (Q15-FORHAAT)
CALL
DELEN
JTELLER/NUEMER --) QUOTNT
LARP ZAC SUB SACL ADD GAel LAC SACf.
QUUTNr,O REfCOl EEN,l FCAOl FCAOI,14 FCAlll
JACTIVEER AUX.REG.l JACCU := 0 IACCU :- -QUOTIEHI IKl I'" Aceu «(;115 FORMAT> JAFRONDCURMECTIE VUUR QI3 FORMAAT ISTORE TIJDELIJK Al WAARDE CQ1S FORMAAT) lVDRM IN'HET HOGE DEEL VAN DE ACCUM. fEN Q13 FURMAAT VOUR Al ;STORE Al (Q13 FORMAAl)
lAC ADD SACH
NOEMER,13 EEN, 14 NOEMER,l
JMAAK VAN DE NUEMER OUK EEN 1il13 fORMAAT ;AFRONOCORRECTIE JSTURE NOLME.R (Q13 fURMAAT)
LAC AnD SACH
TELLER,13 EEN, 14 'I ELLER, 1
JMAAK VAN DE TELLER OOK EEN Q13 fORMAAT JAFRUNDCURRECTlE JSTORE TELLER (Q13 fURMAAT)
654 •
639
it;
If
1(.
If
642
657
*
* I(
*
RAH [126] • KLADRUIMTE RAM [12~] • KLADRUIMTE 2 RAH [124] KLADRUIMlt:: J
PROCESSOR STATUS 8IJ MODULE BEGIN (EIS) • EINDE ----)
II
*===~~~=~~~=.=~~==~~~=~~~=a=~~:~=:==~~~=~~:::~=~~~:~~:~;~~~~~~===~:~~~:==~==:.~~;==~~~~~~~~d=~~=~===:===~==:=~==.
onail 205A ooac 5073
b40
.-
I"
Mon, 16 Jun 1986, 11:29
*
660
661 662 ..
HEWLETT-PACKARD: *** LPC ANALYSE PROGRAMMA
FILE: lPC_RWll :BEHIAT
Mon, 16 J"un 1'/86,11:29
It • •
PAGE
1:~
,-'
SOURCE LINE.
LOCATION OBJECT CUDE LINE 009F 6A64
r":
663 664 61.5
llUAO 00A1 llllA2 OllA3 llOM
r"'
('\
2F73 61>'74 7FBf OE6F 5
00A5 3970 OOM 68''>8 00A'7 31'/6
n
00A8 7E::~)9 llllA9 6370 OllM 6176 OOAB 5079
r. (*\
p
c-
*
666 667 668 ,. 669 670 671 *
lLAnD Kl IN T-REG, (DIT IS NODIG OM lUMETEEN fEN NIEUWE NULMER TE BEREKENLN) IDlIE NUEMER WURDT IN DE THEURIE OUK WEl "ALPHA" OF "[(I)=REST-[NERGIE" GENOEHO
( , " EtEREKENING VAN E(ll .. ,) llAAD NUEMER (Q2B-FURMAAI) IN ACCUMULATOR LAC NOEMER , 15 lP-REG. ~ K(l) * l[LLER (Q28-FORHAA1) I1PY n:LlER ;ACCUM, ~ HOEMER + K(l) ~ TEllER APAC ;AFRONDCORRECTI~ ADD EEN, 14 ;STORf NIEUWE ~OEM~R WAnRDE (QIJ FORMAAT) SAOl NOEME.R , 1
6n
674 CfJEFlP
,-
... ,"
MAR
It--
BAR
AIH ,lPCNlR
;WAARDE VOUR (FOR I:E2 TU FILIERORDE DU) lOOP COUNTER ;AUK,REG,l WORDT AAN~EPAST 011 ALB lOOPCOUNIER WAARDE IE DIENEN ;STORE lOOP COUNTER WAARDE
LACK SUEtS ADI>S BACl
AUCURl Fl.TORD lPCNfR F..lE.MRI
IlAAD ADREB VAN Rl IN ACCUH. lBEREKEN NU HET ADRES VAN R(FIlTERORDE) ;BEREKEN H1ERHEE HET ADRES VAN RM ISTORE DIT ADRES IN ELEMRI
lAR
672
6'76 677
AR1,FLlORD
It
6'/8
679 680 681 * 682 * 683 II 684 II 6t'15 II 686 It 687 II b88 II 689 II 690 II 691 II
o Q
OOAC llOAD OOAE llOAF
v v
2070 6:H,F 6376 5077
OllBO 39'79 llOBl ;>OA8 o() Et;? 3179 llllEt3 BllOO
.... .....
llOB4 397'7 OOL
'-' \",I
..... C>
,
~
~ ~
REFCUl
6"15 II
("\
....,
IT II
00B6 31 '7'7 00[<'7 3'179 llOBO 6CAll oII It II 61>91 OOllA ;31'/9 OOVEt 39"1'7 OOBC F40000B6 OOBE "lFBF
692 * 693 II 694 II 69:i * 696 b97
698 699
700 701 702 703 704 705 7116
* K
*
It
~
*
'/12
713 '/14 '/15
716 718 '>
*
I
~
* ~
II
J(
TELlER:-RII FOR J:-2 TO 1-1 DO TElLERI- TELLER + AlJ"l*RlI-J] ;
* * *
PROCESSOR STATUS BIJ" HET BEGIN VAN DIT BUB-HODULE I DP ~ 0 l ARP ~ 1 ** EINDE I DP ,= 0 l ARP ..: 1 * 11------------------------------------------------------------------------------------------*
*
II II
LAC BUBS SUBEI SACl
FLTORD,O E.E:N lPCNTR NSTCNT
LAr~
AR1,ELUIRI *+, '13 AR 1 ,ELEHR I
lACCUI-FIlTERORDE-l l OM DE (FOR JI-l TO 1-1 DO) lOOP TE
~EPAlEN
;ACCUI~FILI~RORDE-2
lBEPAAL NU HOE VAAK DE1£ LOOP DUORlOPEN MOET WORDEN (MINBTENS [EN KEER) lIEf DE GEVUNDEN WAARDE IN NSTeNT (NESTCOUNTER)
II
707 70U It 709 lELlP 71ll 711
'/1
*
II
* IN PASCAL lIET DElE lsEREKENING ER ONGtvnR AlS VlllG'I UU
0
lLAAD HET ADRES VAN RI IN AUK,REG.l llAAD RI (Q28-FORHAAT)IN ACCUMULATUR lSTORE HET ADREB VAN R(I-l) IN ElEMRI lCL.EAR P'-REG,
LAR lARK
AR1,NSTCNT ARO,FCAOl
llAAO NEST COUNTER WAARDE IN AUK,REG,l ;lAAD ADRES VAN Al IN AUX,REG,O
SAR L(',R UA liP Y SAR LAR BANI l'if'AC
AI~ 1 ,NHTCNT AR1,E-LEMRI 'IH,ARll K,' ,ARl ARl ,ELE~ml AR 1 ,NSTCNT TELLP
;LAAD NIEUWE NESTCOUNTER wnARDE IN NSTCNf (ARl FUNGEERT ALB COUNTER VOOR lElLP) ILAAD nDI~Eb VAN R<1'-·J) IN AUX,REG,l Ulfd FUNGEERT OOK (\U:i POINTER VUUR Ill,: R'S) 1ACCU: "'ACCU+P-REG, l T-REG,: "" R(I-J) l U,IH WIJST NAAI~ VUlCLNDF R-WAAIWE) IP--RfG, : ~ A(J)~R(l-J) l (ARll WUST NA(\I{ VUlGLNIlE A·-WAr'tRIlE> ISTURE ADRES VAN VUlGENDE R-WAARD[ IN KLADJ IL(\AIl NESTCOUNTER WAARDl IN ARl lGi', VERDER ~'Lr fiEf EtLRLKENEN VAN DE lELLEI{ wnAI~VE lUI-ANG NSTCNI ()U l J :~J+l ll[L A(I-l).Rl or BIJ ACCUMUlATUR (DIT STOND NUG IN HET P-REGISTER)
ADD
EO~,
14 'I E.llEl~ .1
IAFROND CORRECTIE VAN HET REBULTAAr ISfURE R~SUll(\AT IN lEllER
LAC SAR liPYK
71'1 II
OOBF OE6F OOCO :';;974
~
HIER WURDT DE IElLER VOUR HEr BEPAlEN VAN KI BEREKEND, VOlGENS DE FORHUlE TELlERI-l*RI + Al*R(I-l) + A211R(I-2) + '" ,+ A(I-l)*Rl
~iACtl
FILE: LPC_RWT1:BEHIAI
HEWLETT-PACKARD, ••• LPC ANALYSE PROGWAMMA
LOCATION OBJECT CODE LINE
***
Mon, 16 Jun 1986, 11:29
PAGE
SOURCE LINt::
720 • OOCl 307D
SAR
7:~1
722 ..
o
723. 724 It 725 • 726 .,
n
727
" oOC:~ OOG4 DOCS OOCh OOC7 OUCB 00C9
F80001FA 6881 7E64 6370
61 '76 507E 397E
ooeA 387D OOCB ooce OOCD OOCE OOCF DODO OODl 00D2
v
001)3 00D4 OODS OODb 0007
i.J
'"
7FEl9 1072 5000 OHF 508B 209B 5981 bABB
2F73 6D74 7FBF OEbF 5973
728 729 730 731 732 733 734 735 736
II
AD~S
LAR
AR 0, KLAD2
7:59
SACL ADIl SACL LAC SACH
746 747 74B 749
753
754 755
756 7";.,7
761 762 '763 764 765
* II
* .. * * * II
"'"
766 ..
"""
767 7MI 769
V
,
~ ~
* If
1I
770 .. ~ !'
ZAC SUll
745
760
'WI
CALL L(.,RP LACK SUBS
740 It 741 FCOADR 742 * 743 744
*
771 772 7'73 774
* * II
It
775 .. 776 ..
..
II II
1 I
DP ~ 0 ; ARP • 1 DP • 0 ; ARP • 1
.. .. * ..
*------------------------------------------------------------------------------------------.
RCOADR
II
~EREKEND
.. KI :2 -(lELLER/NOEMER); ---) Q15 FORMAAr .. AI I'" KI I ---) Q13 FOR~IAAT .. .. PROCESSUR STATUS BIJ HET BEGIN VAN DIT SUB-MO~ULE .. EINDE
SACL LAR
752
IN KLAD2
..
737
750 751
AUK.R~G.O
*------------------------------------------------------------------------------------------.
7~~B
niB
'"
*
.. * ..
,STURE HEr ADRES VAN A(I) VANUIT
.. HIER WORDEN KI, AI EN E(I)
DE.LfN 1 REFCOl FLTORD LP.CNTR KLAlll AR1,KLADl
759
\,I
II
ARO,KLAD2
LT
QUOTNT,O *,0, AR 0 EEN,l
•.,13
..* , 1 ,AR 1
( .... BEREKENING VAN LAC NOEMER , 1:S MPY TELLER APAC ADD EEN,14 SACH NOEMER,l
ITELLER/NOE.MER --) QUOTNT ,ACTIVEER AUK.REG.l ;LAAD ADRES VAN REFL. COEF. Kl IN ACCUMULATUR IBEPAAL HET AllRED VAN K(FILlERORDE) IBEPAAL HIERHEE HET ADRES VAN REFL. COEF. KI ILAAD ADRES VAN KI VIA KLADl lIN AUK.REG.l ,LAAD ADRES VAN A(I) UIT KLAD2 IN AUK.REG.O IACClJ i " 0 ,AGeU :~ '-QUO TNT IKI :m Aceu (Q15 FORMAAT) IAFRONDCORRECTIE VOOR Q1J FORMAAT iSTORE AI TIJDELIJK (Q15 FORHAAT) ,LEES AI TERUG IN Q2B FORMAAT ,STORE AI (Q13 FORMAAT) ;LAAD KI IN T-REGISTER (VOORBEREIDING VOOR DE BEREKENINGEN BIJ FCLODP) E( Il ... )
ILAAD NOEMER (Q2B-FORMAAT) IN ACCUMULArOR ,P-REG. - K(I-l) * TELLER (Q2B-FORHAAT) ,ACCUM . • NOEMER + K(I-l) • TELLER IAFRONDCORRECTIE ISTORE NIEUWE NOEMER WAARDE (Q13 FORMAAr)
*------------------------------------------------------------------------------------------* .. HIER WORDEN DE RES1ERtNDE FILlER COEFFICIENlEN Al rIM A(M-l) BEREKEND .. .. ER WORDT
G~aRUIK
GEMAAKl VAN DE HIERVOOR BLREKENDE KM WAAHDE
II
..
• IN PASCAL VORM ZIEN DE ** *
*
B~REKENINGEN
fR ALB VULGT UIT ,
J: =1 TO TRlJNC( 112) DU BEGIN II ATEMP:'" A[J] (1-1'E RECIJR.SlAP) of· 1([lH'AlI-J] (l-l'E RECUR.SHIP); .. A£!-]](!'DE RECUR.SlAP) ,- AlI-J](I-l'E ~ECUR.BTAP) + KLl]*A[J](I-l'E RECUR.SfAP) * A[J] (I'E RE.CUR.SlAP) 1'= AlEMP I * END} FClI~
* * TIJDENS DE 9EREKENINGEN BEUAT HET T-REGISlER DOOR LOP END DE WAARDE VAN KlIl .. * PROCESSOR STATUS arJ HET BEGIN VAN Dlr sua-HUDULE I DP • 0, ARP ~ 1 II . EINDE : Dr ~ 0, ARP = 1
* **
*
* II
II
.. 'It
*
*
*
*
ll-------------------------------,---------------------------,-------------------------------ll
14
FILE: LPC_RWTl :BEHZAT
HEWLEfT-PACKAND:
***
***
LPC ANALYSE PNUGRAMMA
Mon, 16 "lin 1'>'06, 11:'i,'Y
PACE
1 ~j
'e. ,
SOURCE LINE
LOCATION OBJECT CODE LIN( 0
20'70
Cl
00D8 OOD9 OODA oOIHl OODe OODD
~
OODE 7EbE OODF ::l07D
(')
n r ,,-
6316
636F 50'7E 2F7E 51377
0 U
\,I
.... 'wi
""
~ I
~
-,
LACK SALL
fCAOl KLAD&:!
ILAAD AT>RES VAN Al IN ACCUrlULAlOR ISTOR':: ADfU:S VAN Al IN KLriD2
SUBS
FLTORD LPCNTR EEN KLAD3 ARO,KLAD3
;BEf'AAL HET ADI~ES VAN A( F 1 LTHUR DE) jBfPAnL NU HEf ADI~[8 VAN A(I) jBlPAAL Nll HI:.T ADIU:S VAN A(I-l) pHORE DIT I~DRES IN KLAD,~ JLAtlD ADRES VAN A(l.-l) I1~ AUX,REG,lJ
ARl,NSTCNT AR1,NS1CNT AR1,KLAD2 If, 15 ,AR 0
j INn HER AUX, REG, 1 INHOUD ALS TELLER VOOfl J)E FCl..lJUP IS rDRI:: NIEUWt:: WM,fW<:: IN NGlCNT VANUIT AUX,I~EG.l jLAAD ADRES VAN A(J) (I--l'E REC, Slf\F' ) IN (lUX,REG,l jACCU. I " A<J) (Q2B FORI1AAT)
If
«(;1213 FORMAAT) jP-REG, I :z;: KllfA( I-·J) IACCU: ,= AU) + Kl*A( I"-J) ( (;I~'.8 FORI1AA'f ) jAFROND CORIlECTIL VAN HET RE.SUUMl JSTORE NIEIJWE A<J) WAARDE flJDELIJK IN All::i1P
78'1
ADJ):~
616f 507C 3B7C
ADDS SACL LAR
DOES OllEb 00E7 OOEB
39'7'7 3177 397D 2F80
'790 '791 '792 793 794
00E:.9 OOEA OOEB OOEC
bDaB 7FBF OE6F 597A
OOED OIlE.E OOEF nOFO OOFl
2F81 bDBO 7F8F OEbF 59Al
OOFB 3976 001"9 F40000A7
.....
"\'
63'711
V
..J
* ~ ". ~,tl;
b176
OOFS 3977 001"6 F40000Eb
'"'
7B~.i
j ACCUM, :" F lLTEr~nl~DE: - 1 jfJEPAAL HIERt1EE liE. WAARDE. VAN I JBEPAAL NU 1-- 1 ; (HORE DIr TIJDEUJK (WMI
SUBS _
'/1:/1
/'82 783 784
!:IACL LAC sriCH
FLTORD,O LPCNTR EEN KLADl KLAD1,15 NSTCNT,O
LAC SUBS
OOElI OOEl OOf2 00[3 00E4
OOF2 bb7(1 00F3 50913 00F4 317D
V
*
71'16 787 788
{ , ',
0
777 7'7fJ 779 780
*
*
'/95 FCLOOP 79b
'I'n
798 If 799 BOO BOl a02 803 804 * 805 Bill, B07 Boa 809 910 * Bll 812 813 If 814 1315 816 817 *If 1310 B'l9 B;~O
I(
821 B':>'J ...... 823 1324
II II
825
*
826 827 1'1213 829 8~~0
B31 B32 133:5
* == :==::::::::::=
I(
It
It If
*II I(
*It
LAR 8M
LAR LAC MPY APAC ADD !:lACH LAC MPY AP(lC ADD SI'lCH
EEN,14 ATE11P , 1 1f,15,AfH If,ARO EEN,14 1f",l,ARl
::~
~,
(Q13 FURMAAT)
j ACCU , I :'A ( I--J) «(;128 FOIHlAAT) jP--REG. : '" KI*A(J) ( Q:~8 FORMAAT) jACeUM. I"" A( I-J) + KI*A(J) (Q28 FOIHlAAT) jAFROND CORREClIE JSTORE NIEUWE (I(I-J) (rH3 FOR~IAAT )
'-'
::i.ALS SACL SAR
.. -
AR1,KLAD2
jllAAL. TIJIiEUJK OPGl.BORGEN NIElIWE A<J) WAARDE TEIWG JSTORE DE2.E NIEllWE A( J) WAARDE (Q13 FORMAAT) j STOI~ E HET ADRfS VAN A(J+l) IN KLAD2
LAR (rANZ
AR1,N!HCNl FCLOOP
jLAAD NlSlCOUNTER WMRDE IN AUX. REG, 1 IGA VERDE.R I1El IIEl BE.RE.KENE.N VAN DE AO '8) ZOUING NSTCNT <) 0
l.AR BANl
AR1,LPCNrR COEFLP
JLAtlD L.OOPCOUNlER WAAR !)E W flUX,REG,l JGA VERDER t1E T DE RECURSIEVE BEREKENINGEN lOLANG LOOPCOUNlER <) 0
ATEMP
=:;:: ::::;::: ::: :::: :::: ::::::= :::= :::::::: ::::;::: :.-::~:::;
::::::::::;: :;:: ;:: ::::;;-.: ::.. ::.: :,.: ;;-,;:::: :::::'
::~
::1: =::'0;:::: :::: ::::.;::: :::: :::. :::; ::.: ::::::~ :::. ::;: ::,;. :~.::~ .:~:: :::: :::: :::: :::. ''':::::: :.:' ::;,-
.~
J:=J+l
... "
~=~====~aa~~~~c.c~~c~.,*
FILlER UIlGANCSBIGNAAL BEREKENINGS HODULE : FTUITC
If
II
IN DIT MODULE WORDT MET BEHULP VAN DE BlREKENDE FILTER COEfflCIENTEN EN DE INGEL.EIEN SAMPLES VAN EEN WINDOW HET ANALYSE FILTER GLREALISEERD, HEl UITGANGS BIGNAAl VAN DIT FILlER WORDT VOUR EEN WINDOW BEREKEND, J)[ RESULTAlEN WORDEN IN HET EXTERNE RAH-CEHEUGEN UPGLSLAGEN, IN Dl1 EXTERNL GEHEUGEN lIJN HIlRVOOR 1WEE ~llFFERS GERESERVEERD, ER WORDT NriAR DIE BUFFER GESCHREVEN DIE OP DAT HOMEN! NIET IN GEBRUIK 16, UII DE ANDERE BUFFER J)IE WEL IN GEDROIK IS WURDT BIJ ILDERE INTERROPT . EEN UIfGANGS SAMPLE NAAR DE D/A CONVERlER GESlUURD, ZODriT DE FILlER UITGANGS SIGNAL.EN WELIBWAAR VERTRAAGD OVER TWEE WINOOWS,HnAR WLL SYNCHROON MEf DE INVOER SAMPLES NAAR
Ie'
It Ie'
It
bt ~
~
II
~
l<:
toJ
1(.
*
FILE: LPC.RWTl :BEHlAT
HEWLETT-PACKARD:
B3~)
("'I.
;-',
0
n (.
II
B~\7
It
B3U
II
13.59
It
B411 B41
II.J
lH;~
II
843 844
It
v
""'
0101 0102 010] 0104 0105 0106 ll107 01llB
7E50 0070 50'7f 39?F 3870 bf.lBl 4590 F4000106
ll10A 704F 010B 2~'B8 010C 50BB 010D F400010El
"'"
"" ""
0101" 01 10 01 11 ll11? 0113 0114 0115 0116 11117
" ,.;t
7FBl 6EOI 660(, 6EIl0
Ct
:"
0\•
*
B 4'I
II ~"'" .,,' ..", II
B~jl
1(.
8:')2 * 853 FTUITG 1354 U5~)
1356 B~j7
B~,B
(-161 862 863 864
865 OUDSLP 866 867 86B II 869 870 SMPSFT 871 (-172 873 II 874 875 0'76
on B78 WI"
"''''*
Mon, 16 Jun 1986, 11:2'1
BUITEN WORDEN UITGEVUERD.
II
GEBRUIKTE VARIABElEN I - IN DATA-PAGE 0 9EVAT DE WAARDE 1 EEN RAM [ ttl] GEEFT DE FIlIERORDE-l AAN Fl.lORD RflM [ 1 121 GEEFT AAN IN WELKE DATA-PAGE DE PROCESSOR BElIG IS PAGEPT RAH [1131 BEVAT HET AANIAL SAMPLES-l l.peNI R RAI1 [ 1 1 a) NSTCNT I RAM [1191 • DUORL..OOPT HET AANTAL FILTER COEFFICIENTEN BEVAT HET UIIEINDELIJKE RESULTAAT WAARDE KL.ADI RAM [ 1 .~6] KLAD2 RAM [125 ) :: KLAl)lWItITE BEVAr HET ADRES VAN FILTER COEFFICIENT 1'1(1) KL..AD:5 RAM [ 12-4)
it
It It II II
II
*. it
It II It II
PRl.lCEBSOR STATUS IHJ MODULE BEGIN (EIS) : DVM" SEr ; IN'IM " SET i DP= 0 i ARP " 1 EINDE --_._) I UWI '" SLT i INTI'l ~, SET i DP '" 1 i AI~P " 0 ::.:.;;:~;~;:~.~:~~_::~:.. ::;~.l~~=~~:~.:~~;~;:~=~:=
..::;::..
~'.::~~~::~~:_.~~~:=.::~.~:=:
I(
II
.. ::::::~~::~~~~=~_~;~~~:_:;~~~~:==~~~~:~~::~~==:;=n=~:'==~::~~=~=:==~*
KLAnl) KLADO,PA4
iLEES TABEL-ADRES WAAR HET BEGINADRES VAN FILTERBUFFER IN STAAT ,LEES WAnRDE urT TABEl iLAAD DIT ADRES IN AeCUM. ;BEREKEN JUISIE STARIADRES ;STORE DIT ADRES IN KlADO ;STUUR WAARbE NAAR EXI.RAM ADRES COUNIER
L.ACK ADD SACL LAR L.AR lARP IN BANl
SHINOI FL roRD KLADO AR 1 ,KL.ADO ARO,FLTORD 1 1I-,PA5,ARO OUDSLP
iLAAD ADRES VAN SAMPLE (-1) IN ACCUM. iEN BEPAI'IL HET ADRES VAN SAMPLE (-FrLTORDE) ,STORE RESULTAAT ADRES IN KLADO iLEES DIT ADRES NAAR AUX.REG.l iAUX.REG.O BEVAT DL WAARDE :(FIlTLRO~DE-l) ;ACTIVEER AUX.REG.1 TIJDENS HET DOORLOPlN VAN DE "OUDSLP" ,LEES EEN SAMPL.E VAN VURIG WINDOW NAAR INTERNE RAM (GEBIED SHINOI TIM SMINI0) iGA DOOR MET LElEN TUTDAT AUX.REG.O • 0 IS
LARK LAC SACL BANl
AR 0, 9tlPLO *,2 * SHPSFT
;LAAD ADRES VAN SAMPLE 0 IN AUX.REG.O ,SCHUIF SAMPLE 2 aIrs NAAR LINKS (DE SAMPLES WAREN IN Q12 FORMAAT INGELEZEN) ;SCHRIJF SAMPLE TERUG OP IIJN PLAATS (W14 FORHAAT) ,DOE DIT MET ALLE ao SAMPLES
LACK !BLR L.AC ADD SACl OuT
FllTBF KLAIHI KL.AIlO FLTDfW
·11
8bO
7FB;~
011D 1EOD 011E 677D
'"
*
8~.,O
704F 30'76 1076 fCII00111)
0119 7EIlA 011A 677D 011B F900011F
It
II
BOO UlH 882
08]
w
'''';
207F 0070 5071" 4C7F
677F
It.
1346 B4'! D4U
859
...,
.....
7EIl[
OOFIl OOFC oorD oorE OOFF 0100
* *
B3b
B4~j
LPC ANALYSE PRUGRAMMA
SUURCE LINE
LOCATION OBJECT CODE LINE 8]4
***
ARO, '1'1 ARO,L.PCNTR L.PCNTR,O LDBUF2
,ONDERDRUK TIJDELIJK INTERRUPTS lDATA-PALE 1 19 ACTIEF ,LEES INLEESBUFFlRS-ADRES-POINTER ,GA WEER lERUG NAAR DArA-PACE 0 lENABLE WEER INrERRUPTB 179 = DE HELFT VAN HET AANTAL BUFFER EL.EMENTEN i9TORE 79 IN LOOPCOUNTER ;ACCU.:= tBUF.ELEM. - 79 IALS ACCU. ) 0 DAN BUFFER 2 LADEN HEf NIEUWE WAARDEN
LACK IBL.R B
HERLD KLAD2 ADRSL.D
iANDERS fERST BUFFERl START ADRLS L..EZEN ;LEES START ADRES VAN VOL IE SCHRIJVEN UlfvoERBurrER IN KLAD2 ;BEGIN MET LADEN
LACK !BL.R
BUF2AD KL../'\I)2
;L~ES
DINT LDPK ZALS I... IJPK UNT LARK SAR BU[I BGZ
1 L9UFAD 0
(BUFFER 1 IS ACTIEF)
II
813 4 U)IlUF 1 BB~i
BB6 BEl7 It BBB U)BUF2 809 890 II
lBUFFER2 START ADRES LEIEN START ADRES VAN VOL IE SCHRIJVEN UIIVOERBUFFER IN KLAD2
FILE: LPC_RWTl :BEHZAT
,-
HEWLETT-PACKARD:
011F 4(71)
n .0
0120 0121 0122 0123 0124 o1 ~):j
3076 716E 3171:: 66'70 5077 3977
0126 0127 0120 0129 012A 012B
BODO 2DA1 31'77 397e 6C90 6DAl
012C 0121> 012E 01:'10
317C .'.977 F4000128 "/FBF
891 AI>RSL.D 892 It 8'n ERORLD 894 895 8'/6
897
,':,'
898
• ',",
899 .. 0 ("\
()
C1
0131 OB6F 0132 5C7E 0133 4D7£
0 0
0134 6880 o1~'15 :'1876 0136 F4000120
0
Dna 013'7 01 :3A 013[1 one 0131> 013E 013F 0140
u u
""
7EOE 677F 207F 0070 S07F 4C7F 3EJ70 4DBB F400013F
900 901 902 ERROR r/03
904 905 906 907 'lOB 909 C/12
913 914 915 .. 916 917 918 919 If 9;~0
'-'
""
925
926 927 SCHRLP
'WI
'wi
943
~ I
~
0142 7FOO 0143 7EOF
PAGE
ARO ,l.PCNTR AR1,FCAOl AR1,KLAD3 FLTORD NSTCNT AR1,NSTCNT
;l.AAD t NOG TE VERWERKEN SAMPLES IN lPCNTR ;LAAI> ADRES VAN A(l) IN AUX.REG.l ;S10RE DIT ADRES IN Kl.AD3 ILEES FfLIERORDE
MPYK U',C SAR LAR UA 11PY
0
13, AR 1 AR1,NSTCNT AR1,KLAD3 .-,ARO 1t+,ARl
ICLEAR P·-REG. IlAAD S(N)*A(O) '" S(N)lI1 IN ACCUMULATOR (Q27 FORMAAT) ISTORE tNOG TE BLREKENEN FILT.COLF, IN NSTCNT ;LAAD FfllEMCOEF, ADRES IN AUX.REG.l ;lAAD A(I) IN T-REG. I AUX.REG,l WIJST NAAR A(I+l) ;VERMENIGVULDIG MEr SAMPLE S(N-I) --} P.REG.
SAR Lr.R BANZ AflAe
AR1,KLAD3 AR1,NSTCNT ERROR
ISTORE ADRES VAN A
ADD SACH OUT
EEN, 11 KLAD1,4 KLAD1,PA5
IAFRONDCORRECTIE VOOR Q15 FORMAAl ;BTORE RESUlTAAT TIJDELfJK (Q15 FORMAAT) ;R4IS SAMPLE WAARDE NAAR EXTERNE ~UFFER
l.ARP l.AR 'MNZ
0 ARO ,LPCNIR ERORLD
IACTIVEER AUX.REG.O ILAAD lOOPCQUNlER WAARDE IN AUX.REG.O IALB AUX.REG.O () 0 DAN VERDERGAAN MET FIL.TERUITGANGS SIGN. GlNERfREN
LACK
FIUBF KLADO Kl.ADO FLlORD KLADO KLADO ,PM ARO ,FLTORD *,PA5 SCHRLP
IL.EES TABEL ADRES VAN STARTADRES VAN ~ILTER BUFFER ;LEES ADRES IN KlADO ILEES VIT AI>RES IN ACCUM. ITEl ER FLTORD BIJ OP OM JUIS1E START AI>RES IE VINDEN ISTORE ~EREKEND ADRES IN KL.ADO ;STUUR ADRES NAAR EXT.RAM ADRES COUNTER ILAAD AUX.REG.O HET FLTORD (VOOR ADRES5~RING IN INTERNE RAM) ISCHRIJF LAATSTE SAMPLES VAN WINDOW NAAR EXT.BUFFER INETZOlANG TOIDATAUX.REG.O - 0 IS
Iii',
SIGNAAL SYNTHESE HODUUL
M~T
1'7
BUFFER START ADRES
I
BYNTHE
..
*
IN DIT HODUUL WORDEN DE SAMPLES VOOR DC VOL.GENDE WINDOW G~GLNEREERD. .. DE SAMPLES WORDEN AFHANKlLIJK VAN DE WAARDE VAN "INDICA" (INfABEl) NAAR DE NIET-RelIEVE * INLEESBUFFER OF NIlf-ACTIEVE UITVOERBUFFER GLBCHR~V~N * INDIC(\ .. 0 --} INLEESllUFFE,R * INDICA <) 0 - .. ) UITVOERBUFFEP. *
*
I ARP ~ 0 ; Df' '" 0 ; INIM = m:T ; OVM '" BET II I ARP ' " 0 ; DP '" 0 I IN 1M'" BE. T ; OVM '" SEI * « « « ««« <<< « « « « <« « (<< « «( « « (<< « « « « ( « « « « « « «( « « <« « « « « « « « « « «-II BEGIN I::1ND
*~~=~;:::=;~~~=J:;~~~===~~=~~~::=~~;::~:~:;~L~ .. ~.::~~:~~:c~~~.~:~=~~.:._~:J:_C~: .• C~:~:;C:.~~~~:~~~=~=~:~~~:==:_'==~~~::~~~=~:~=~:~J~=c:::,==:c~~;;~~:*
'144 • 945 1I ( 946 SYNTH£ 947
ii"~)
If *==~=:=:~=~~=~==~===~=~=~~~==~~=~=:=~~==~=~~~~=:===~~:~~~::~~I~~~~:~~~:~=~:~:::~~~~~=~~~:~=~=:L~~~;~=:=~:~~~~~:=I~:=:~~=::~:~* If»»»»»»»»»»»»»»}»)}»»)})}»»}»»»)»»»»»»»»»»)}})}»»}»»}})})}}}}}}*
939 " 940 " 941 • 942 'It(( «
~
11
SAR lARK SAR lAl.S SACL l.AR
LAC (\DD BACL OUT LAR OUT BANI
9313 "
.....
16 Jun 1<JB6,
;LAAI> EKT.ADRES COUNTER
922 923 924
931 932 .. 933 If 934 • 935 If 936 • 937 If
\,./
Mon,
KLAD2,PA4
1 Bl.R
928
**-
OUT
921
930
""
If
910 911 ..
929
lPC ANALYSE PROGRAMMA
SOURCE LINE
LOCATION OBJECT CODE LINE
n
***
• • • • • • • , •• , •••• , •••••
NOP LACK
FTBUF2
BLOK
I
LEES WAARDEN U1T TABEl (IN PROGM. GEHEUGEN,
)
FILE: LPC_RWT1:BEHZAT
HEWLETT-PACKARD I *** lPC ANAlYBE PRUGRAMMA
t:"'I
lOCATION OBJECT CODE
" 0 0
r,
n t;"
n
c i!)
0
u
'"' ~
...,
"" W
lW
.. "" v
....
~
... I
~
0144 II 1 4~'; 0146 0147 oH8
67'1£
0149 014A 014[1 014C 0140 014E 014F 0150 0151 0152 0153
7064 39"10 6880 006F 671'l8 5117C 7FB'i' 10B8 5091 207C F400014B
0155 11156 (1157 0158
207F 00"10 507F 4C7F
0159 015A 015B 01 :'jC 0150 015E 015F 0160
7£50 0070 5078 3978 3870 6BBl 4590 F400015E
0162 0163 0164 0165 0166 0167 01613
704F 2C6F 106F 5098 7F89 50B8 F4000167
01 bA 016B 016[; 0161) 016E
'J04F 3076 7164 31'7C 397D
016F 0170 0171 0172 01"13 0174 0175
67'7F 006F 006F 677D
8000 2DA1 31 '1'7 397C 6C911 6DAl 311(; 01 '7b 3977 011'7 F40001'l1 0179 7FOF
Man, 16 Jun 1YU6, 11:29
PAGE
1B
SOURCE LINE
llN~
9413 94'jI 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 910 911 972 973 974 975 976
***
* ~l ,
.(
·~t,
'A
syl~:ol.p
*
*
(
TBlR ADD TBlR ADD TBLR
KlADO EEN KlADl E.EN KlAD2
L.ARK LAR lARP AI)J) TBLR Sf,Cl lAC SUB SACL LAC BANZ
ARO ,REFCOl AR 1 ,KL.AD2 0 EEN * KlAD3
.....................
•••••••
lAC ADD SACI. OUT
* II-,O,AIH KlAD3· SYCOlP I
•
I
It
••
I
••
I
•
,
KlAIJO KlAD2 KlADO KlADO,PM
•
JLEES FIlTERBUFFER 2 STARTADRES ;VOlGENDE WAARDE jlEES INDICATIL WAARDl jVOlGENDE WAARDE jlEES BYNTHfSE FIlTERORDE BlOK : LEES OUK DE SYNTHESE FIllER COEF. UIT TABEl EN MAAK DELE NEGATIEF ... > JARO KRIJGT HET ADRES VAN DE EERaTE FILTER COEFFICIENT JAR1 IS ICOEF. CUUNTER JARO AcnVEREN jVOLGENDE WAARDE IN TABEl jlEES DELE WAARDl UIT TABEl (FILTER COEF.) JSTORE TIJDELIJK WAARDE VAN ACCUMULATOR jClEAR ACCUM. JMAAK GELEZEN FILlER COEF. NEGATIEF JSTORE NU DElE NEGATIEVE WAARDE VAN DE FILTER CDEF. jlEES ACCUM. WAARDE WEER lERUG jBlIJF lEZEN TOTDAT AR1 = 0 BlOK I LEES OUDE SYN1HESE SAMPLES UIT FIlTERBUFFER 2 > jlEES STARTADREB VAN FIlTERBUFfER 2 JBEPAAl NU HET ADRES VAN HOOGS1E SIGNIFICANIE FILTER COEF. JSTORE DElE WAARDE IN KlADO jSCHRIJF DIT ADRES NAAR EXT. MEM. ADRES COUNTER
jlAAD STARTADRES VAN SAMPLE -1 JBEPAAl NU HET ADRES VAN SAHPlE (-SYNTH.FIlTERORDE) jSlORE DIT ADRES IN SMPADR jlAAD DIT ADRES IN AR1 JARO lIS NU lOOP COUNTER jACTIVEER AR1 SYOSlP IlEES OUDE SYNTHESE SAMPLE TERUG UIT EXT.HEM. (FIlTERBUFfER 2) 971 ,,-,PA~,ARO JLEES AllE SAMPLES lOTDAT ARO • 0 SYOSlP 97B BlOK I HAAK EXCITATIE PUlS AAN BEGIN VAN WINDUW ) 979 * C.................. JHET ADRES VAN SMPlO IN ARO lARK ARO ,SMPlO 980 IlAAD DE WAARDE 1 (Q12 FORMAAT) IN ACCUMULATOR lAC 981 EEN ,12 IHAnK DELE WAARDE C 1 (Q12 FORHAAT) SUB 9B2 EEN JSTORE DElE WAARDE IN SMPLO SACl 983 *jHAAK NU ACCUMUlArOR • 0 ZAC 9tH JHAAK NU AllE RESTERENDE INPUT SAMPLES VOOR SYNTHES~ FILTER - 0 9135 SYNUl SACI. * JDIl' TIM SMPl79 SYNUl 9136 BANl ) 987 * C•••••••••••••••••••• BLOK I BEPAAl BYNTHEBE SAMPLES EN MAAK DEZE Q14 FURMAAT JNU BEGINf DE SYNTHESE VANAf SAMPlEO ARO,SMPlO l.ARK 'lOB JBTORE LOOPCOUNTER WAARDE 989 SYNTlP SAR ARO ,l.PCNTR jlAAD IN AR1 HET ADRES VAN EERS1E SYNTHEBE FIllER COEF. AR1,REFC01 lARK 990 JBTORE DIT ADRES IN KlAD3 991 SAR AR1,KlAD3 jlEES SYNTHESE FilTER ORDE IN AR1 lAR AR1,KlAD2 992 9'/3 II 994 MPYK 0 jCl.EAR P-·R"G. ILAAD S(ll) WAARD~ IN Q2~ FORMAAf IN ACCUM. 9'jl5 *·.,1 J, AR 1 l.AC lBTORE NIEUWE NEBl COUNfER wnARDE AIH ,NSTCNT 996 SYFllT SM lAR JLEES FILlER COEF.ADRES 997 AR1,KlAD3 lLAnO SFC(I) IN l-REG.; AR1 WIJST NAAR SFC(I+1) UA 998 *-,ARO IVERMENIGVUlDIG MET SAMPLE S(N-I) --) P-R~G. MPY *+,ARl 99'1 jSlORE ADRES VAN arC(I+l) 1000 SAR AR1,KlAD;3 JLAAD AR1 MET t NOG lE ~EREKENEN WAARDEN lAR AR1,NSTCNT 1001 JAL8 NUG NIET lAATSTE WAARDE DAN VERDER REK~NEN VANAF BYFIL1 1002 BANI SYFlLT ;lEL LAATS1E WAARDE IN P-REG UP elJ ALCUM. AflAC 1003 1004 * lACK ADD SACl lAR l.AR lARP IN BANZ
,-
i---
SMIN01 KlAD2 SMPADR AR 1, SMPADR ARO ,KlAD2 1
,.-'
HEWLErr-PACKnRD: ••• LPC ANALYSE
FILf: LPC RWll :BEHIAI'
017A OB6F 01nl :'iClB 1I1'lC 1I P/) 1I17E 01 'IF oHIli
~)F'7H
6080 31:1'76 'SBf:llJ
F41101l16l1
01H2 0103 OHt4 01 B:'j
4e7f JH7D 4DUB F401l0lEl.,
1I10? 1I1SB 01 B'I 01UA 011:IB 018C 018D lIHlf' 0191
2CfJF 5117C '104F 20BB ?FOB 10'IC FDOO01'i3 F400018A F9110019C
1I1'n 1l1'J4 01'T::, 1l1'lb 01'n III '19 01 'IA
711F M~Bl
;:!FB8 :'i8fJ B
F4000195 b8BO F9001l1BA
1I19C 0190 01
'IFBI bUll 66116 6ElIlI
011'16 Il 1A'I 1I 1All 01M 01AB OlAC 1I 1r,E OlAF OIBO
?lI'IE FEOl101AE 'lEOA 006F 6'l'lf1 F'IIlO01BD 'lE-OA 6'7'70 F90001C6
oHI;:! o'111~3 olll"i
;>. 0'IE
'lFm~
7114F 30'16 11l'76 FCOllOlte2
FEOO01B'i '1£41"" 01B6 50'IEl
Al.·D ur,CH
1 0 1I~'j
11106 1007 11108 lOllY 1010 11111 1012 1013 lU14 1013 1016 1017 101B lU19 1020 1021 1022 1023 1024
•••
Mon, 16 Jun l'IBfJ,
11:~!'1
PAGI::.
1'1
SUUR CE LI NI:.
LocnTIUN UBJECT CODE LINE .......
p~UGNnMMA
FEN,ll KLAD",1
;AFRUND CORREClIL VOOR Q13 FORMAAT ;8TORE RESULrAAl TIJDELIJK IN Q13 FORMAAT
.)0 LAC LAHP
KLAD4,15 ;LEES RLSULTAAT TLROG IN Q?O FURMAAr 0 ;ACTIVEER nRlI LA1~ ARO,LPCNTR ILl'll\!) LOOPCUUrHUJ (TFVI::.NS NIEUWE S(IIWLE At:'I~ES POINITR) IN AI~U SACH * ;BTORl BfRlKENDl WAAHDl IN Q12 FORMAl'll BANZ SYNILP IALS ANO C) U DAN VERDER GAAN BIJ SYNTLP MEr BEREKENEN VAN NIEUWE WAARDEN * C , , .. , BLUK : SCHR I.:J F DE L(',A ISH: (bF OIH)E.) SMIf'L.ES IMAR FIUER •.ILJF FE.ll ~) .. ".) our KLADO,PA4 ILAAD FILTfRBUFfER 2 LIND ADRES IN EXl .HEM.ADRES COUNfER LAN ARO,KLA02 IAAO IS LOOPCOUNIER VUOR t WAARDEN 9CHBF2 OUT ~,PAS ;SCHRIJF L.AArSrE SAMPLES VAN DE SYNTHESE SAMPLLS WEe NAAN FILTERBUFFfR 2 BANZ SCHBF2 IHERHAAL LOOP ZOLANG ANO C) 0 * .. ".,., , BUliC : HAM SYNIH£SL SA"H'LE~:; C 1 (IN (f12 FOIHlAAl> , ) l.(,C EEN,12 ;HAAK (.,CCt.H1. :.~"I IN Ql;!. FORI11~AI snCL KlAD3 IS10RE DCZE WAARDE TIJDELIJK IN KLAD3 lARK ARO,SMPLO ILAAD STARTADRES VAN WINDUW IN ANO TESTLP LAC * ILEES SAMPLE AlIS INEEM DE AlISOLUlE WAARDE HILRVAN SUB KLAD3 ITREK HIERVAN DE WAARDE IN KLAD3 AF 10;!.'~i hLEl SCHFLP Ir,LB RLBUL1M,l ) ... II l>rli~ ALLE \:)(ltWLEB 1 Bli NArIR RECHT\:) SCljUIVU~ (DELLN DUUR 2) 1026 BANI TESTlP lANDERS DOORGAAN MLr rES lEN 1112? B VERDER ;EINDE LOOP; lESIEN BEEINDIGEN 1028 • »») SAMPLES NAAR RECHTS SCHUll" ACTIE CCCCCCCCCC 111?9 SLHFLP LARK AR1,SMPLO ILAA/) Sl~HIADRES VAN WINDOW IN ARI 1030 LARP 1 IACTIVEER ARI 11131 SCHUlI' LAC *,1~ ;LEES SAMPLE IN 15 BITS NAAR LINKS GESCHOvEN 1032 SACH. ;LAAT LAArSlE BIT VALlEN EN STORE NIEUWE WAARDE TERoe 1033 BANZ SCHUI~ IGA VERDER MET SCHUIVEN 1034 LARP 0 IACTIVEER WE£R A~O 1035 D TESILP ;eA WEER lERUG NAAR lESTLOOP 1036 • »»») EINDE SAMPLES VERSCHUIVEN CCCCCCC 1037 • C , BLOK : BEPnAl NAAR WELKE BUFFER DE all SAMPLES GLSCHREVEN MOEIEN WORDEN ,.) 11130 VERDER DINT ;EVEN IN1ERR~PTS DISABLEN 1039 LDPK 1 10M IN DArn-PAGE 1 TE KIJKEN 1040 ZALS LBUFAD ILEES INLEESBUFFERS ADRES POINTER WAARDE 1041 LDPK 0 ITERUG NAAP DATA-PAGE 0 1042 EINT IENABLE WEER INIERRUPTS 1043 LARK AAO,79 ;LAAD t SAMPLES/WINDOW WAARDE IN ARO 104., BAR ANlI,LPCNfR IBTORE DELE WAARDE IN LPCNTR 1045 SUB LPCNrR 10M TE BfPALEN WLLKE DUFfER ER ACTIEF IS lU.,6 lIGl KIEBB2 IALS LBUFAO ) '19 D~N IIJN BUFFERS 1 AeTIEF, DUS KIES BUFFERS 2 C.. ,., .... , ... , ... , .. BlOIC: ALS INI....fIU!".? EN UIIV.BUF, ~) ACTlI:.. F, l\lLS D{\N INl...BUF.l EN UIrV.BUI:.l".,,) 104,/,)0 10q8 KIESBl LAC KLADI IBUFFERS I LEKO/tN , NU NUG GEPALEN INLEES~UFFER OF UllVOERDUFFER lU49 BNZ KSUDFI IALB INDICATIE WAARDl C) 0 DAN KILS UIIVOLNBUFFER 1 1050 KSIBFl LACK HERl.D lANDERS MOEr STARIADRES vnN INLEESBUFFER I CELElEN WURDEN 1051 ADD EEN IAGCUM. WI:JST NAAk SUISIE WAARVE IN TODEL 1052 lDLR SMPADR ILEES NU Sl~RTADRLS VAN INLEESlIUFFER 1 105J B LDILBF IGA NU VL~DE~ BIJ HEr BLOK OM DE INLLESBUFFER VOL lE SCHRIJVEN U'ICK HERL.D IKHl2E VAI..l OP lIIlI,.'UE.lH.l,f:H:.R 1 ... 10:'i'\ KSUBFl 1055 TDlR SMPADR ILEES STARTADREB VAN UITVOLRBUFFER 1 LDUVBF ;Ci\ VERDER BIJ HEI BUliC Ul1 EU~ UIlVOERBUFH.R VOL It: BCtHU:rVEN ~ 10:';6 B 10~i'7·)O C BU)K : ALS INL.BUF.l EN UI"1V.BUf.l ACTlU·,KIL.U DI'IN INL.t:eUF.2 EN UIIV.BUf .;! )'" 105B KIESB2 LAC KLADI l~UFFERS 2 CEKOlEN, NU NUG DEPALEN I INLEESBUFFLR OF UITVOERBUFFER ~ 1059 11M2 KSUBF2 ,ALS INOICATIE C) 0 DAN UllVUERBUFFER 2 KIL./EN lObO KSIBF2 LACK SMPLO ;l.AAD SlART AORES VAN INl.EESBUFFER 2 ~ 1061 SAel SMPADR ISTORE Dil ADRES IN SMPnDR
fion,
LOCATION OBJECT CODE LINE 01B'l F90001BD
oHI'l
'IE 0 1) 1l1BA 6TlO OtlH-l 1':"i'01l011::6
"
1l1BI> 01BE 01BF 01CO 01 Cl 01G,' 01C4
4C'78 7FlW 1000 5008 41Hl0 F40001BE F91l001CF
011:6 4C'lEl 01e7 2300 OIC8 :';000 01C'i' 7F09 1l1CA 1008 01CB 500n OIce 4DB8 01CD F40001C'/
01CF 7EOl 01DO 5071 01Dl 6EOl 01D2 F9000038
'16
Jun 'I 'fH/:> ,
11:2'i
SOURCE. LINE B
IGA VERDER BIJ HlT BLOk OM EEN INLEESUUFFLR VOL TE SCHRIJVEN ;ANDERS MUEr SlART ALRES VAN UIlVULRBuFFEw 2LElElEN WORDEN ll1b4 HLR SI'lPADI~ ILEES DIT ADRES UIT TABELI NAAR SMPADR 1 0 t>~; B LDIJVIJF IGA VERDER 8IJ LUUVDf 1066 11 <...••.•.........•.•• BLOK : LAAD SYNTHESL SAMPLES IN GLKOZEN INLEESBUFFER IN Q12 FORMAAT > IS'IUlJ\~ HET CEVONN:,N BlJfFER ADRES NAI'if~ EXT.I1EI1.ADRES COUNTER 1067 LDlLBF aUI SMPADR,PA4 U,C 10613 SRILBF IMAAK nCCUM n 0 OM ZO MEllEN DE NEGATIEVE WAARD[ VAN SAMPLE NAAR ~/A CONV. IE SI 1069 IMAAK SYNTHESE WAARDE NEGAIIEF SU[-l * 1070 SAel If ;SCHRIJF DElE WAARDE TERUG OP IIJN PLAATS DUI If ,PA::; 1071 JSCHRIJF NU WAARDE NAAR INLEESBUFFER ll172 BANI SR ILBF IVOE DIT HLI ALlL SAMPLES IUTDAT ARO ~ 0 10'7J B PAGEOl ;GA VERDER 8IJ PAGEDl 1074 ,If <...•.•..•....••••.•. BLOK l LAAD SYNIHlSE SAMPLES IN GEKOlEN UITVOERDUFFEA IN QI~ FORMAAT., ..... > 10'15 LlHJV[·F ISIUUR SlARTADRlLS VAN UIIVUERBUFFER NAAR EXI ."EM.ADRES COUNlER uur SMPADR,PA4 1076 SRUVBI'" LAC If,3 ILLES SAMPLE IN W15 FORMAAT NAAN AeGUM. SI',LL If 1077 ISTOAl SAMPLE TERue DP LIJN PLAATS (QI~ FORHAAr> VIC 1078 IMAAK AceUM • 0 OM WAARDE TE INVERTEREN If SUIt 1 1J'I'i' IINVERIEER WAARDE Jf 10lHl SACL ISCHRIJF WAARDE TERUG OP IIJN PLAATS lOBI If, P ,"I:'; our ;SCHRIJF SAMPLE NA~R UITVOERBuFFER lOB;:! BANI SRUVBF ,DOE DIT MLr ALLE SAMPLES TOTDAl ARO o 1062
10b~~
KSUBF2
10B3
I(
1084
*==~
10135 10B6 108'7
If
U~,CI<
LlHLBE I
•••• ~m.~===•••••=•• =.=====.=n===~=,.=======z=,
J!
PAGEOI lIJ8B PAGEl
10B'i' 1090 10'71
It
10'n
If
LACK SACL LDPK
1
PAGEPT 1
WACHI
IACCU. l " 1 ;PAGEPUINIER := 1 IACTIVEER DATA-PAGE ;DE BEREKENINGEN VOOR DELE WINDOW IlJN DLEINDIGD ;WACHT TUIDAI ALLE SAMPLES VAN DE VOLL~NDL WINDOW 8lNNEN IIJN
1 lI'i':3 '. 1 ll'i'4 II 10'i'5 J!
1096
If
10'17 11 10'i'8 ,If 10'i''i If 1100. 1101 * 11112 It 110~~"
BEBCHRIJVING~N
D~LLN
" "c,". ""'"",,, "'". c,. ,",,,_ ,,,,,,,. ".". ". ,",c.. " ):
11 04 l'c"="'~'"'='"
'-.'
....
.... ..... '-'
$S'$'S'$"""$""""""""""""""""""'".S•••••••••••••••••••••S •• "'$$$S" SS"$S$S' .I"'S... VAN DE SUBROUTINES: INTeR, EN DELLJ2 ,.S,,'SS$ SIS""$' SS$$S"S' ""$""$""$"$$",,$""""'$""""""'$""" •••••S••••••••••••••••••••
tt ", ~
0
1 1 n';:;
1(,
11116
It
1107
If
11 liB
,If
I1ll9
If
111 0 1111 1112
1('
,If
11
II L~
If
1114
'll
111~:;
If
1116
lC
1117* 1118 II'
INIERRUPT SERVICE ROUTINE MODULE
I
IN'rSR
~ ')l
)(, IN bIT MODULE WORDT ER EEN SAMPLE VAN DE AID CONVERIER INLELE2EN EN IN DE SAMPLE ')I BUFFER IN H~I EXTE~Nf GEHEUGEN GEPLAAIST. VERDER WURDT ER LEN SAMPLE UIT EEN VAN DE EXIERNE FILlER UITGANGS RUIS SAMPLE BUFFERS GENOMEN EN AAN DE D/A CONVERIER J>OORGEGEVEN. ,,.'l(
TIJDENS DELE INlERRUPT RUUTINE WORDl HDUFDlAKLLIJK DAJA-PAGE 'I VAN DE fMS-J20 CE~RUIKl IN DATA-PAGE 0 WORDI ALLEEN DE PAGf:rOlNT VARIA8CLE Gl-CHfkl OM IE BLPAL~N NAAR WElK~ DA'!A'''f'I',LE EI~ '!ERUCGEI<EERt> imEl WORDUI MN HE.T ElND VAN DUl:, RUUTINl. IN DEZE ROUTINE WURDEN AAN HET BEGIN: SIATUS, Aceu. , ARO EH ARI GE-SAVED EN AAN HET EIND WEER HERSTELD, OMDAI HET I-REGISTER EN HET P-RlGlSIER NIE! GESAVED WURhEH ~H:JLEN DE.l.£ N.lLT GEI'RUIK I wurd>EH IN DUL RUIHINE. ... !!!!!!
)I
11 ~
HEWLElT-PACKARD: "-,, LPC ANALYSE PRUGRAMMA •••
FILE: LPC.RWTl :BEHIAl LOCAl ION OBJECT CObE LINE
1123 II 1120\ II 112::; " 1126 II 1127 II 1 H~8 " 1129 II 1130 " 1131 II 113~~ • 1133 .)( 1134 " 1135
rJ ()
Q
011>4 01D5 01D6 01D7 01D8 01D9
"" V
bEOl 'lCOB 500C 580D 300E 310F
11 :2'i
CEBRUIKTE VARIABELEN : ". IN DAlA-PAGE 0
PAGEPT
RAM [113]
t 122 ..
1136 1137 1138 1139 11.0 1141 11.2 1143 1144 11 45 1146 114'7 1148 1149
H, Jun l'il:;6,
SOURCE LINE
1119)( 1120 ll' 1121 II
'"l
lion,
'. IN DAIA,,·PAGE 1 ONE I RM! 111 NUS [HIli COUNTR RAt! UBUFAD RAl1 lBUfAIi RM! SAMPl.E RAI1 UnCSI'! RAM 1 ~lPCNT RAI1
[ 0] [ll
[ 4] [ 5l [ bl [ 8l [
9]
[ 101
.)l
CLEFT AAN IN WELKE DATA-PAGE DE PROCESSUR BEIIG IS IN HET HUOF DPfWGRAI1Mf' BEVAT DE WAARDE 1 BEVA,. DE WA.·,RD~~ ..·1 (>FFFF> tSAMPL.EB PEN WINDOW COUNTER (DOWN CUUNTER) FIllER UITCnNGSIGNAlEN BUFFER-ADRES.. POINTER (DOWN COUNTER) INlEESBUFFERB ADREB POINTER (DOWN COUNTER) TIJDElIJKf OPblACPL.AATS VUOR DE SAMPL.E VAN DE AID CONVERlER TIJDELIJKE UPSLACPlAATS VOOR DE RUISSAMPlE NAAR DE DIA CONV. TIJDElIJKE OPSL.ACPLAATB VOOR DE [Xl ERNE RAM ADRES COUNlER ALS NAMElIJK IN H~T HOOFDPROGR. DELE COUNrER GEBRUIKl WORDT, '" DAN MOET DIE WAARDE AAN HET EIND VAN DEZE ROU1INE WEER HERSlElD " KUNNEN WORDEN. II
II
II
SlA1US ACCUlG ACCUHG AUxRCO AUXRGl
II
" II
" II
I
I
RAM RAM RAM RAM RAM
[lll [12] [13] [141 [15]
STATUS SAVE PLAATS ACCU. LACE DEEl SAVE PlAATS ACCU. HOGE DLEl SAVE PlAATS AUX,REG.O SAVE PLAA1S AUX.REG.l SAVE PLAATS
II
" • II
II
*
* PROCESSOR STATUS BIJ MODULE BEGIN: OVM z SLT , INTM " RfSLT I liP·? I ARP L? II II ell-a,E: OVI1:. SE.T I INll1 "SET I DP ~ (Pf.,GE.Pl> I ARP ."? 1(. II """"="''''''''"'''' ,=.., " ""","',z "',,,"',:,,,,= "'''',=,:... """',"'''''''' ". '"'''''' '''''' "..". '''''' ,,,,,,., .",,, '" '''''''..' ",,""",z ,~,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,, ".",.". '" ,., '" """". ," """,."."",,,,,,."',,,,,,,,,, ,"'" '"'''"''''''''' ." ","'.,,, II II
1(.
It
U>PK S!H SACl Sf,CH BAR BAR
1 STATUS ACCULG ACCUHG,O Af< 0, AUXRGO AR1,AUXRGl
,ACTIVEER DATA-PAGE 1 ,SAVE B I A'I US ,SAVE ACCU. lACE DEEl ,SAVE ACCU. HOCE DEEl ISAVE AUX.RlG.O jSAVE AUX.REG.l
IN lr,c SACH
SMlPLE,PA2 8A,1P L.E , 1.5 SMlf'lE,O
IlEES SAMPLE IN VAN DE AID CONVERTER ,SAMPLE IN ACCUMUL.ATOR 1.5 BITS NAAR lINKS CESCHOvEN ISAHPlE WEER TERUC IN GEHEUCLN 3 BI1S ARITHMETIC NAAR RECH1S GESCHUVEN
1159 IN 1160 " 1161 OUT 116,! ***"11***"" our 11 6;'~ It UUT 1164 116~:i IN 1166 OUT IN 1167 1168 .* 1169 L.AC 1170 SUB 11'11 SACl
HIPCNl,PA4
,LEES EXTERNE HEM. ADRES COUNTER WAARDE EN BERG DIT TIJDELIJK 01"
lBUf AD I PA4 SAI1PlE,PA5
,lAAD INL.EESBUFFlR SAMPLE ADRES IN [xT,MLM.A~RES COUNTER ISTORE SAMPLE IN [XlEHNE MEMORY (Exr.MEH.ADR.CNT. AUTOMATISCH DECREMENT)
UBUFArJ,PA4 UIlCS/1,flA5 UIIC!:H!,PA2 UBUFAD,PA4
IlAAD ILEU, IlAAD ILEU,
l.BUfAD,O OHL,O lBUFAI)
IACCU ;. INLEESBUF~ERB ADRES-POINTER IAceu IE Aeeu - 1 ISTOWE NIEUWE. INLLESBUFFERS AbRES-POINTER
COUNTR,O ONf,O COUNTR
,ACCU := t(NOG WEG TE SCHRIJVEN SAMPLES> IACCU :- Aceu - 1 IS10RE ~(NUG WEe lE BCHRIJVEN SAMPLES - 1) IN COUNTR
INHiR
11 ~'i0
1151 11 ::',2
1153 11 ~:;4 II
....
01DA 4208 OIDB ;?D08 OIDC 580a
1158 II
"-'
01 DI> 440A 01D[ 4COb
~
01 DF 4C05 OlEO 4~jO'~ 011:.1 'lAO" 01E'2 440~;
'wi
.....,
-' "" 'WI
115:i
1156 115'7
oU:::5 ~ !'
,..,
"
2006 01E4 1000 01E5 5006 01Eb 2004 OlD 1000 01E8 5004
11'n It 11'n
L.AC
117.
SUfi
1175
SAeL.
RUIS BUFfER ADRES IN EXT.HEM,AbRES COUNTER FILlER UITGANGS SAMPL.E UIT [X1ERME BUFF£R DIT IN DIA CONVERTER GE-DLCREMENIEERDE BUFFER ADRES lERU~ EN STORE DIT
HEWLE.ll ··f'ALI«()f!il:
FILE: LPC.RWrl :BEHZAr LOCATION OBJECT CODE LINE
our
6EOO ;:'071 6E.Ol FEOOO"lF·.i
Pi~DCRM'li·1A
;1 \I n,
10HI
nWCN·! ,PA.,
;HfRLAAD DUDE WAANDE VAN
l..IiI'K
o
L.AC LDPI( BNl
PAGEPT,O
;ACTIVEER IlJDEL.IJK DATA-PAGE 0 ;L.EES DE WAARDE VAN PA~EPUINlER ,WEER TERUG NAAR DATA-PACE 1 ,ALS IN HOOF tWR DCIH','1,'I(\ DA IA-··Pt,C!::
1
EINDGR
LAC
ONE,1l
XOI~
11:1 NUS
AND SAeL.
STATUS BTAHJB
3901'
LAR
~m{)E
L.()r~
650D 610C 7B08
l..ALH
1, AUXRGl nRO,AUXRGO ACCUHG (,CCULG STATUS
01EF 2000 011'0 71301 01Fl 790B 01F2 ~'jO OB 011'3 011'4 01F5 01F6 01F7
U·'C r,NAL Y~,>E
1 (, J II n
1 'i' l'I6,
11:;~ 'I
SOURCE LINE
01[11 4eOA OlEA 01 E.B 01EC OlEIl
1+·:01
AIl/)9
un
AI~
HEM, AORLS
1
CUUNT~R
ACI[LF WAS DAN INIERRUPT RUUIINE EINDIGEN
IANDE~S GE-SAVE-DE SIATUS WUORD WIJIIGEN ; LSB VAN Aceu, :~ ;MAAK LBB VAN ACCUMULATOR 0 EN DE RESIERENDE Bl1S 1 IRESET HIERMEE DE DATA-PAGE BIT IN GE-SAVE-DL STATUS WUOND (DP:~Ol ;STORE HET LEWIJZIGDE STATUS WUORD WEER IN GEHEUGEN
;HElUllH. nUX.REG,l I HE.I~ STH. AUX.REG,n
IHERSTEL ACCU. HUGE !lLEL ;HERSIEL ACCU. U,GI::: DEE.L ;HERS1EL SIATUS (DAIA-PAGE POINTER WORDT AUTUMAIISCH GOED GELCI DOUR DP BITl ;ENABLE INTERRUPIS (IM5-320) ;lERUG NAAR HOOf/)PROGRAMMA
EIN! RE.T
01FB 7F8;'! 01F9 7FBD
~XTERNE
""" ''''',.,,- ,,- ,,_ .. 1I 1(.
1 ':":I-J 1223 1 ;,~;~4 tlELEN t~ ,.~'-
(S
....
01FA 6BEI0 011'0 ;,'0'14 OlFC FEOO0201 1I1FE: ',:'i072 01FF F900021~j 0:'.01 6A74 o;:~O;~ 60'/3 O;.'O;~
j'F1:lE:
1 ::.)::::5
1 ;:~;'.6 1:!
1231l 1;:!.H
BEGDL
Lf.',RP LAC BNI BACL B I.T Mr' y
pr,c
o
.! ELL.E.R
f.lEI;J)1...
QUOINf RUI>L. lEL.LER NOUlER
;ACIIVEER AUX.REC.n ;LAAD TEL.L.ER IN Aceu IALS TELL.ER () 0 DAN DELL OPDRACHI UITVOEREN ;ANDE.RS IS HEr ANTWOOkD a 0 ;GA NAAR RE IURN ;LAAD DE lELL.ER IN T-REG, UM HET lEKEN VAN IlE QUOTIENT IE BEPALEN ;BEPAAl NU SAMEN MEr DE NOEMER HET lEKLH ;LAAD RESULlAAT IN Aceu. .,"',nl")l·
U,:".
W·Cb"I,I.1
'.'1
'I~H:'I
..
III
",1
·r"...DI;:r.~,,,1
FILE:
LPC_RWll:DEH1~1
HE~LElf-PACKAAD:
1,!JJ 1;>.:54
?fDB
12;~~J
O;:.'Ob 0;:.' U'I
~;on.'
1 ;~36
02U8 6~.';74 U?Uri' 'lFfl8 Il ;.! Il 1'1 'lUIlE
1'.'J7 1 ;>.:HJ
U2U[l 6472 1l;,~UC F41l1l1l2UB 1l~'IlE
~'iU'/2
U20F ;!U';i'5 U;~ 111 FDUU0215 U212 7FB9 O;~ 13 10n 0214 5072
1,~,W .)1
1 ;!J\ 1
DEELLP
H'42 124:5 1244
If
15 7FUD
....,
,
~
0?1B 657t: U;.:.'1 C 617D O?1D 7FDH
i15 KEE~ DEELLOOP DOORLOI'EN iDDORGAAN TOIDAT AUX,REG,O = U
TliPSGN r~ [TI)L
'~l./mNT
iSTORE DEELRESULIAAT IN QUOTNT iLEES TEKEN iALS TEKEN )~ 0 DAN ROUflNE BEEINDIGLN
QUllTNf QUOTNT
iCLlAR ACCUMULATUR ) ACCI.I, i " - QUOTtH iSrURL DE NEGATIlVE QUUTIENT WAARDE IN YUUTNI
ZAC
SUB BACL If
iTERUG NAAR HOUFDI'ROGRAMMA
REf
1 ;.:!~.i4
*le'
1256 1;>'::"/
*=======.=~==~========================~~=====.
12~5B
II
1 ;':j'i' 1 ::~6 U
If
It
126~j
It
1266
II
IN DELE ROUIINE WORDT EEN 32-BITY (1 lEKENBlr,31 SIGNIFILAN1E BITS) lELl.ER DOUR LEN J2-BITS NOlMER CEDEELD, lR WURDl VANUIT GI::.GAAN DAT DE NUlMLR POSITILF IS EN DAf HEf GR01ER IS DAN DE TEl.LER. DIf IS HET GEVAL BIJ l>E ~EREKENINGEN VAN RO TIM WIO, RO IS POSITIEF EN R1 TIM R10 llJN KLEINER DAN RU, BIJ HET NORMEREN VAN RO 11M R1U WORDT DEZE DEELRllUTINE GEBRUIKT, HEf RESULlAAT VAN DE DELING IS IN Q15 FORMAAT,
If
If
II If )(
If )<.
It
*
GEBRUIKlE VARIABELEN : - IN DATA-PAGE U EEN : RAM [ 1111 (~UOTNT RMI [114:1 nWSGN RA1i [11'l] N(JEMLU RAM [ 123] NOENIl RAI-! [124] TELl.O RMI [125 ] 1ELHI I RAii [126 ]
*
PRUCESSOR 8 11'11 US BIJ MODULE bLGIN (LJS) : DVM LINDE ----) I OVM
•
.)1
.. If
If If
1
J(.
[lEVAT HET RESULTAAT VAN DE. DELING (IN Q15 FOkHAAT) BlUAT TI.J DELl J K HE T 1EK l.N VAN DE DE.L we BI:.VAT LOW-WURD VAN DE NOLMER BEVf:ll IHGH'WDI~D VAt~ DE NOU1ER BLVAT LOW-WOkD VAN DE TELLER (WORDl GLWI:rllGD TIJDENS DE".) [lEVi'll HIGH-WLRD VAN DE lELLER (",. ,DELING)
II If
II If )I
If
II
., '" .,. ". "." •.•.. "".., .,
*DEEL3;~
,., "",." .,. '''' , '.' .,
1 '!.B;~
ROVM L.AC BACl.
1 ~~03
L.f',C
1'!.B4 120:jx· 1,.'1'16 l'!.I:l'/
SACL
1?1:ID
AbU
12BO
1 ;:!Bl
Wi
II
.*
1262 1'!.63 1 ;.~64
••
------~~~===~~========.=,
32-BITS DEEL ROUTINE MODULE : DEEL32
*
12'/1 It 1;'.'n I ;.:!?J It 1 ;>.74 ·x· 1275 1nt> It L?'I'/ It 1 ;:'>'10 J(. 127';>
~ !'
HIP NlIE:' l>EE.LLP
.~
lno
.....
SUBC BANI
NUEME~
12~';3
1261:1 1;,' 6'i'
U~!16 7FfJA 0;>.1 '/ ?FD9 U,!HI 51l'/2 o,.~ 1Ii' ;:.'O?E 0;.>'1 A ~51l'75
AR U, 1·4
[let,l
*
1 ;~~'2 RE rilL
1 ;~67
'.
HIPNO[ H.L1..ER
i l.EES NOEm:R ;NEEM HJERVAN DE ABSllLU1E WAARDE iSTIWE IH f IIJI;'EL.JJI( IN H,I'NOI::. )LAAD lELLER WAARDE IN ALLUM, HIGH WORD ;MAAK TELLER WAARDE POSITILF ;LAAD LOUPCllUNT WAARDE VOUR Q15 FORMAAT IN AUX.REG.O
SACl.
1 ;.!.:'J 0
1261
16 :run l'i'B6, 11:JO
LAC ABS SACl. Zr,LH AB:'; U',RK
t.M:
1 ;!4~i
1;~~'j1
U;~
rion,
If
L~40
1246 1::"17 1;'.41:1 1;:.'4'i'
PROCRAMMA _••
SOURCE: LiNE.
LUCATION OBJECT CODE LINe
o;,!U~) 2U'I ;5
._* LPC ANALYSe
IALH
AnI) !:,
.,,,., .., .., .,. " .., " ,
,.,,"'~.,'
'
SEf SI:.
r
INlii ., bET i Ill' ~ 0 i r,MP " 0 HIH\ " sl:r i DI' ,. 0 i ARP "' II ,.." .•" .,. c.. " .• " ". '....,,,,, ... ""'''' .,. '" .,"" " .•0'
.
iHLSET OVERFLOW MODE
i r,ccu :" 0 i t~UUT H.NT
QUOTNT lEL.HI ·..,.WSGN
: '" U ;LLES HICH-WORD V~N fELLER iALS TELLlR NEG, DAN SIGN=NEG.
TLL.HI lELLQ
i LEes H.U.;H··WOIW VAN ., f.:LL.E'~ IN ACCU~,UL.ATl.Il~ JVUEG HfERBI:r HEl L.OW-WORD VAN DE IELLEM il'h'lAK TEI..U:I~WAARlil::: PD!:ilTII'Y
"1 f' I
.eTnnt:'
I
j"l
I nl.I .... I.Ir\[)"(\
I,I\.'.J
lr.:1
I ','IJI.II\t':.I:Jnl::
." .0""" .", '"''
1(.
.)1 c .."'" '" ~ If
FILE:
LPC~,RWT1
HEWLErr-PACKAkl):
:BEHZAr
021F
~.l8'/E
O;,?;'!.O 700F O~!~~l f.d7B
1 :,?I/ 0
12 rl1
*
12'lc~
DL32LP
1:,'.92
AI~
0,15 NOEl-1LO NOE-.mlI RUmU;
;l.AAD LUOPWAARDE:: IN AUX.REC.U ;lREK LOW-WORD VAN HOLMER VAN DE ACCUMULATOR AF ;TREK OUK HIGH-WURD VAN NOLMER VAN DE ACCUMULA10R AF ;ALS RESUl.1AAT NEGAflEF DAN VERDER GRAN BIJ "RESNEG" l.ABEL ;RESULTAAT IS POSITILF, DUS LAAD NJEUWE lCLLERWAARDl VANUIT ACCUMULA1UR lOOK HIGH-WORD VAN lEL.LER LADEN VANUIT ACCUMUl.ATOR ;SCHUIf QUOliENT 1 Bil NAAR l.INKS ;lEl. ER EEN BIJ UP ;STORE NILUWE QUUliENT WAARDE ;SA VERDER MET HEr NAAR LINKS SCHUIVEN VAN DE lELLER
1294
SUBH
1 ;:~Ii~:,
[ILL
12 1/6 II 1:'.9'7 RESPOB
nOl
BACl. SACIi LAC ADD SACL
130:~
B
TELLO lEUII (JUOTNI , 1 [EN [JlIOTNT UitHFT
1304 RESNEG 13 (J~:j 1306 It 130'7 LSHIFf 1 :~OO
LAC SALL
fJUOTN r , 1 QUOTNT
;SCHUH WJ[J'IIENI 1 BlT NAAI~ LlNks ;STORE NIEUWE QUOTIENT WAARDE
ZAUi ADIi!>
1 :50 'I l:H 0
1311
Sr,CH l.r,C SACL
'1312
IAUi
1:'513
AI)!)!, BANl
TELHI 'I El.LO TELHI,l lEU,O,l TEl.LO lEUn 'I£LUt Dl.32l.P
;LAAD HIGH-WURD VAN TELL.ER IN ACCUMUL.ArUR ;VOEG HlERDIJ l.OW-WORD VAN TEl.LER ;SlURE HIGH-WURD VAN TELLER 1 [lIT NAAk l.INKS GLSCHOVEN ;l.AAD LOW-WORD VAN TELL.ER IN ACCUMUl.ATOR 1 Blf NAAR l.INKS CESCHOVEN ;STORE NILUW l.OW-WORD VAN TELLER ;l.AAI) NIEUW IllCH,lJJllRD VAN TELLER IN ACCLH1Ul.ATUR ;VOlG HIENBIJ LOW-WORD VAN TEl.LER ;lOLANG LOOP NOC NIEr BE-ElNDIGD --) GA VERDER MEr REKENEN
l.AC BG£Z
TMPSGN EIND32
;LEES SIGN WAARDE ;ALH SIGN POSITIEF DAN SUBROUTINE BE-EINDIGEN
fJUOTNT QUOTNT
,ANDE~S Aceu :E U ;EN NEGATIEVE WAARDE VAN DE QUOTIENT NEMEN ;STORE NEGATIEVE WAARDE VAN QUUTIENT
1;:", B 1 :~I/I/
1300 t:HL3 ,'"
l314 131~'j
0237 ;:,'O7~,) 023fJ FDO 0(J2::m O:'.3A 7Ff:1 9 o:?:m 10n O:?3C 50'72
1316 1.317 1318
Error~;=
o
It
*
131'1
lAC
1320 1:3;'.1
SUB SACL
1 :522
02:3D 7Ff.lB 023E 7F8D
1323
PAGI:~
l.ARK GU~.tB
6:~'7C
022E 65'7E. O?2F 617D 02:~O 59'7E 0:'.:51 ;:,'171) 0;,?3:? ~'jO'/D 023:~ 657E 0:,'.34 617D 02:~5 F4(JOO221
1'1::50
; STOI~[ HICtl,WOIH) VAN TCLL.ERWAAIHiE::
f"AOOO:;!.?C
O;J.:?C 21'72 0;:'2D ~'j(J'12
Mon, 16 J'un l'/Ub,
TELHI
O;,~;:!.]
O:,:!.26 ~'i8/'E o :~:~'7 ;:.. In' O?;:'.B 006F O:~;;!.9 50'72 O;:';?A FI/OOO2?E
*••
SI'\CH
O;:'!~~2
o~:!~~~j 50'7!)
LPC ANALYSe PRUGRAMMA
SOlJl< CE L..I NE
LOCATION OBJECT CODE LINE
-,
***
*
ElND32
13;:!1 13;:'.:7' 1326
It
13:?7
'It
It:
SOVM RET
;8[T UVERFLOW HUDE ,TERUG NAAR HOOFDPRUGRAMHA
;:!.4
HEWLETT-PACKARD: ••• LPC ANALYSE
FILE::: L.PC RWn :ltUlZAr LOCAl ION OBJECT CODE LINE 01 '7A OB6F 01'7l.t 5C'lB 01'71: 01"lO 01'7f ol"lF 01BO
2F'7B 6BOO .30'76 ~;OHB
F400016B
01H2 4C7F 01H3 JB"lD oHIli 4[HIB 01 n::. F40001f.14 "'"
,'~
....;
oHl"l 01813 018'1 01BA 01HI-t o11:IC OIBD 01BF 0191
2C6F 50'7C 704F 20013 'IFBB
10n: F00001'/3 F40001BA F900019C
01'1] 01'14 01';':'.'; 0196 01'17 01'19 ol'IA
F40001'15 6000 F90001BA
019C 019D 019E 019F 01AO olAl 01A? o1 A~~ 01M
'7FBl 6EOl 6606 6EOO 7F02 704F 3076 10'76 FCOOlllB2
OlAf> 11lA'! 01A9 01M 01AB O'!AC 01M::: OlAF 01BO
207E FEOOO1AE 7EOA 006F 677B F90001BD "lEOA 6'7'713 F'10001C6
'l11F
681'11 2F8B ~jBfJO
01B2 ;~07E: 01B3 FEOO01B9 0111'.'i "lEAf:' 01B6 50'78
p~OGNnMMA
•••
Mon, 16 Jun 1'106, 11
;;~'I
PAC!::.
1'I
SUUR CE. LI NE
;AF~UND CORRECIIE VUOR QI3 FOAMAAT ADD 1 0 O~) EEN,11 ;STORE HH,UUAAI rIJDELlJK IN (;113 FORt-IMT Kl.AD4,4 BACH 11106 1007 .j( LAG KLAU4,15 ;l.EES RLSU!:IAAT fERUG IN (;128 FO~MAAI 1000 l.ARP 0 ;ACTIVEER ARU 11111'1 l.A~ ARO,l.PCNTR ;LAAD LOOPCOUNTEA (TEVENS NIEl/WE SAMPLE ADRES POINTE~) IN AAU 1 01 0 SACH It ;STORE BEREKEND~ WAARUE IN Q12 FORMAAl 1011 BANZ SYNIl.P ;ALS ARO C) 0 DAN VERDEN CAAN BIJ SYNfLP MET BEREKENEN VAN NIEOWE WAARDEN 1012 C , EeL.UK: SCIiRLlF DE, UH'\fSJE (bFOI~DE.> S/',i'IPL.ES NAAR FIL1ERBUFFE.fl 2 ) 1013 It OUf Kl.ADO,PA4 ;LAAD FIL1ENBUFFEA 2 EINO ADRES IN EXT.M[M.AD~ES COUNTE~ 1014 l.AM ARO,Kl.AD2 IARO IS LOUPCUUNIER VOOR 1 WAAHDEN 101::; OUT *,PA5 ;SI:HRIJF LAAfSfE SAMPLES VAN DE SYNTHESl SAMPl.ES WEe NAAN FIl.fE~BUfFER 2 1016 SCHBF2 BANZ SCHBE2 ;HERHAAl. LOOP ZOL.ANe nRO C) 0 1111'l 1018 1(. ... , , , BUlK : MAAK BYN lHH>l:. SMIPLEU C 1 (IN Q12 FUIH\AAT> ) LrlC EEN,12 ;1'IAAK (ICClJt1. :." '[ IN (~l~) FORI1AAl 1019 8ACl. KLAD3 ;B10RE DeZE WAARD( TIJDELIJK iN KLAD3 111211 LARK ARO,SMPLO ;LAAD STARTADRES VAN WINDUW IN AAO 111~'1 11122 TESTLP LAC * ;l.EES SAMPl.E ABS ;NEEM DE ABSOL.UTE WAARD[ HIERVAN 1 0;~3 SUB KLADJ ;TAEK HIE~VAN DE WAARDE IN Kl.ADJ AI' 1 0;~4 BGEl GCHFLP ;AL9 RESULTAAI >= U nAN ALl.E SAMPl.ES '[ Blr NAAR RECHTS SCHUIVEN (DELEN DOOR 2) 1 O;:~:::; BANZ TESTl.P ;ANDERS DUONGAAN MLT lEBIEN 1026 B VERDER ;EINDE LOOP; lEsrEN BEEINOIGEN 1027 »»> SAMPLES NAAR RECHTS BCHUIF AGTIE CCCCCCCCCC 102B * l.ARK AR1,BMPLO ;LAAO SIARfADRES VAN WINDOW IN ARl 10;,'.9 SCHF LP LA~P 1 ;ACTIVEER ARl 10:50 LAC 1t,1~ ;l.EES SAMPLE IN 15 BIT8 NAAR LINKS GESCHOvEN 1 (J:'q SCHl/H SACH * ;l.AAT LAATSTE BIT VALLEN EN STORE NILl/WE WAARDE TERUG 1 03;~ BANZ SCHUIF IGA VERDER MET SCHUIVEN 103:3 l.ARP 0 ;ACTIVEER WEER AWO 1034 B TESILP ;GA WEE~ TERUG NAAR IEBTLuor 103::; »»»> EINDE SAMPLES VERSCHUIVEN CCCCCCC 10:% * C EeLUK : BEPAAL NAAR WEl.KE BUFFER DE BU SAMPl.ES CLBCHAEVEN MOLIEN WORDEN ,. > 103'7 * DINT ;EVEN INTERRGPfS DISABl.EN 10 ~'HI VER DER LDPK 1 ;OM IN DATA-PAGE lTE KIJKEN 1039 ZALS LBUfAD ;l.EEB INLEESBUFFERS ADRES POINTE~ WAAHDE 10411 LDPK 0 ;TERUG NAAR DATA-PAGE 0 1041 EINT ;ENABl.E WEER INIERRUPTS 1042 LARK ARO,79 ;LAAD t 8AMPLES/WINDOW WAARDE IN ARO 104:3 SAR ARU,LPCNfR ;B10RE DElE WAARDE IN LPCNTR 1044 SUB LPCNfR 10M TE BEPALEN WEl.KE BUFfER ER ACTIEF IS 1045 BGl KIEBB2 ;Al.S LB~FAD > 79 DAN LIJN BUFFERS 1 ACTIEF, DUS KIES BUFFERS 2 1046 C llLOICI AL.S IN1....BUF.;.~ EN unV.EIUf. 2 Ae'IILF, KILt; DI:\N lI~I....BlIf;.l EN 1I11V.BU\:.1 > 1047 .j( LAC KLADI IDUFFEHS 1 CEKOZtN , NU NUL DEPAl.EN INL.EESBuFFER OF UIIVOERBUFFER 11140 KIESBl 1 ()-'I'I BNZ KSl/DFl ;Al.S INDICA fIE wnAADE C> 0 DAN KILB UIIVOLKDUfFfR 1 LACK HERLD ;ANDERS Mocr SIARIADRES VAN INl.EEBBUfFER I GEl.ElEN WORDEN lU::,O KS.lBFl ADD lEN IACCUM. WIJSf NAAR JUISIl wnA~DE IN To DEL 1 O:H IBLR SMPADR ;LEES Nl/ ST~RTADRES VAN INLEESDUFFER 1 '1 0 ~',:~ B LDIL.BF ;GA NU VERDER BIJ HEl BLUK OM DE INLEESBUFFE~ VOl... TE SCHRIJVEN 1053 l.ACK HERl.D ;KEUZE VAl.T OP UIIVOERBLFFER 1 lU:H KSUBFl 1 0 ~:;:) HIL.R mlPADr~ ;LEE'S BTARTADREB VAN IJITVULRDUFfER 1 ~ B lDUVBF ;GA VERDER BIJ HET Bl.OK OM EEN UIIVOERBUFFER VOl. IE SCHRIJVEN ~ 1 0~i6 C BUlK: ALB INl...BUF.l EN unV.BlW.l ACTlU:,KH..Ei DAN INL.BUF.2 EN UlIV.BUF.2 >1i\ 105'7 .j( L~C Kl.ADl ;BUFFERS 2 GEKOZEN, NU NOG BEPALEN I INLEESBUFF~R OF UITVOERBUFFER ~ 10:';8 KIE8B2 105'1 ~~~K ~=~~~2 :~~:DI:~~~~T~~R~~ ~n~A~N~~~~~~~~~~F~R 2 KILZEN ~ 1060 KSIBF2 snel SMPnDR ;BTORE DJf ADRES IN BMPnDR 1061