Sunteți pe pagina 1din 3

1)Consideratii asupra unui sistem DSP. Conversia digital analogica.

Distinctia obisnuita între proiectarea cu procesoare DSP programabile si cea cu procesoare dedicate unei
aplicatii tinde sa dispara datorita aparitiei solutiilor DSP configurabile. Proiectantii de sisteme DSP pot decide care parte
a proiectului este mai potrivita abordarii hardware. Codul care trebuie sa mentina upgradabilitatea poate fi descarcat în
RAM-ul on-chip, iar restul programului poate fi mascat în ROM-ul on-chip. În plus, acceleratoarele de algoritmi si
perifericele configurabile pot fi proiectate si plasate pe acelasi chip.

Proiectarea sistemelor DSP consta în întelegerea unei aplicatii date, în dezvoltarea algoritmilor DSP, în
implementarea algoritmilor prin software pe baza unui anumit procesor, în dezvoltarea hardware-ului, în integrarea
soft-ului cu hard-ul si în analiza performantei sistemului pentru asigurarea satisfacerii cerintelor. Proiectarea unui sistem
DSP utilizând unelte CAD si de analiza conduce la o abordare mai eficienta în manipularea aplicatiilor complexe.

Un semnal analogic poate fi refacut fara distorsiuni pornind de la semnalul digital esantionat în mod ideal cu
ajutorul convertorului DA si a filtrarii trece-jos. Filtrul pentru reconstructia ideala are un raspuns cu magnitudine plata si
caracteristici de faza liniare în banda de trecere de curent continuu la jumatate din frecventa de esantionare. Orice
îndepartare de caracteristicile filtrului ideal introduce o serie de distorsiuni spectrale. Proiectarea unui filtru de netezire
mai usoara prin utilizarea tehnicii de supra-esantionare. Filtrele cu condensator comutat sunt preferate în implementare
datorita frecventei lor de taiere programabile si a marimii fizice.

2)Unitatea artimetica si logica. Alu si acumulatorul.

ALU si acumulatorul pe 32 de biti ale TMS320C2x realizeaza o gama larga de functii aritmetice si logice, din care
majoritatea se executa într-un singur ciclu de ceas. Odata ce o operatie este executata în ALU, rezultatul este transferat
în acumulator.Data care intra în ALU poate fi scalata de catre circuitul de deplasare si scalare.

ALU este o unitate aritmetica de uz general care opereaza cu cuvinte pe 16 biti luate din memoria RAM de date
sau derivate din instructiuni imediate. Pe lânga instructiunile aritmetice uzuale, ALU poate executa operatii booleene,
furnizând facilitatile de manipulare la nivel de bit cerute de un controler de mare viteza. Una din intrarile ALU este
furnizata totdeauna de catre acumulator. Cealalta poate fi furnizata de catre registrul de produs al multiplicatorului, PR,
sau de la intrarea lui scalling shifter care a adus data din memoria RAM pe magistrala de date. Dupa ce ALU a executat
operatia aritmetica sau logica, rezultatul este stocat în acumulator.

Acumulatorul pe 32 biti (vezi Fig.4.9) este împartit în doua segmente de câte 16 biti pentru stocarea în memoria
de date: ACCH (accumulator high) si ACCL (accumulator low). Shifterii de la iesirea acumulatorului furnizeaza o
deplasare stânga, cu 0 - 7 pozitii la TMS320C25, si cu 0, 1 sau 4 pozitii la TMS32020. Aceasta deplasare este eecutata în
timp ce data este transferata pe magistrala de date pentru stocare. Continutul acumulatorului ramâne neschimbat.
Când continutul ACCH este deplasat stânga, cei mai putin semnificativi biti sunt transferati din ACCL, iar cei mai
semnificativi biti se pierd. Când ACCL este deplasat stânga, cei mai putin semnificativi biti sunt umpluti cu 0, iar cei mai
semnificativi biti se pierd. Acumulatorul din TMS320C25 are un bit de carry (transport), care este setat sau resetat, în
functie de diferite operatii din circuit. Bitul de carry permite calculul mai eficient în precizie extinsa a rezultatului pentru
adunare sau scadere. Este de asemenea util în gestionarea depasirilor. Bitul de carry este afectat de majoritatea
instructiunilor aritmetice, de deplasari si rotatii.

TMS320C2x poate executa o multitudine de instructiuni de salt (ramificare) care depind de starea ALU si a
acumulatorului. În aceasta categorie intra:
- BV (salt la depasire);
- BZ (salt la atingerea valorii 0 de catre acumulator). În plus, BACC (salt la adresa din acumulator) furnizeaza facilitatea
unui salt la o adresa specificata de acumulator;
- BIT si BITT (instructiuni de testare a bitilor). Ele nu afecteaza acumulatorul si permit testarea unui bit specificat dintr-
un cuvânt al memoriei de date.

3)Descrierea bitilor registrelor de stare:

Cele doua registre de stare, ST0 si ST1, contin starea indicatorilor diferitelor moduri de functionare si bistabilele
de conditii. Pot fi salvati în memoria de date si încarcati din ea, ceea ce permite ca starea procesorului sa fie salvata si
restaurata dupa subrutine si întreruperi. Bitii de stare pot fi cititi sau scrisi cu instructiunile LST / LST1, SST / SST1, cu
exceptia bitului INTM care nu poate fi încarcat cu LST. Câmpurile ARP, ARB, DP apar ca registre separate în schema bloc
si pentru ca aceste registre nu au instructiuni separate pentru stocarea lor în RAM, au fost inclusi în registrele de stare.

ARB - buffer pentru indicatorul registrelor auxiliare; când se încarca ARP, vechea valoare a sa se încarca în ARB,
exceptând instructiunea LST; când ARB este încarcat prin LST1, aceeasi valoare se încarca în ARP.

ARP - indicator al registrelor auxiliare; selecteaza registrul auxiliar utilizat în adresarea indirecta. Când este
încarcat, vechea valoare se copie în ARB; poate fi modificat prin instructiuni referitoera la memorie când se utilizeaza
adresarea indirecta si prin instruct iunile LARP, MA, LST; poate fi încarcat la valoarea din ARB de LST1.

C - bitul de carry; este în "1" daca rezultatul are transport, sau în "0" daca rezultatul unei scaderi genereaza
împrumut, cu exceptia instruct iunilor ADDH sau SUBH, bitul se reseteaza dupa adunare si se seteaza dupa scadere;
instructiunile de rotatie si deplasare afecteaza bitul, iar salturile conditionate date de BC si BNC se fac în functie de
starea bitului; C = 1 în cazul unui reset.

CNF - bitul de control al configuratiei pentru memoria RAM de pe circuit; daca este în "0", blocul B0 este
configurat ca memorie de date, iar pentru "1" el este configurat ca memorie de program; poate fi modificat de
instructiunile CNFD,CNFP si LST1; CNF = 0 în cazul unui reset.

DP - pointer (indicator) al paginii de memorie; este utilizat cu cei mai putin semnificativi 7 biti ai cuvântului
instructiune pentru a forma adresa directa a memoriei; se poate modifica prin instructiunile LST, LDP si LDPK.

FO - bitul de format; pus în "0", duce la configurarea registrelor portului serial pe 16 biti; pus în "1", registrele
portului sunt configurate pe 8 biti; poate fi modificat de instructiunile FORT si LST1; FO = 0 dupa reset.
FSM - bitul pentru modul cu impuls de sincronizare; indica daca operatiile portului serial folosesc sau nu
impulsuri de sincronizare; FSM = 1 - operatiile portului serial initializate dupa un impuls pe intrarile FSX / FSR; FSM = 0 -
intrarile FSX / FSR sunt ignorate si operatiile portului serial sunt continue, fara impuls de sincronizare; FSM = 1 dupa
reset.

HM - bitul modului de hold; HM = 1 - procesorul opreste executiile interne când raspunde cu /HOLD activ; HM =
0 - procesorul poate continua executia în afara memoriei de program, dar pune interfata externa în înalta impedanta.

INTM - bitul modului de întreruperi; INTM = 0 - toate întreruperile mascabile sunt validate; INTM = 1 -
întreruperile mascabile sunt invalidate; este setat de instructiunile EINT si DINT si de reset; nu este afectat de LST si nu
are efect asupra resetului. OV - bitul de depasire; OV = 1 - apare o depasire în ALU si ramâne asa pâna la un reset, sau se
sterge cu BV, BNV sau LST.

OVM - bitul mod de depasire; OVM = 0 - rezultatul depaseste valoarea normala din acumulator; OVM = 1 -
fiecare bit al acumulatorului este setat în functie de valoarea pozitiva sau negativa maxima; instructiunile SOVM si
ROVM seteaza, respectiv reseteaza bitul.

PM - bitii modului de deplasare al produsului: 00 - cei 32 de biti ai rezultatului sunt încarcati în ALU fara
deplasare 01 - iesirea PR este deplasata cu o pozitie la stânga si încarcata în ALU, ultimii biti
fiind completati cu 0 10 - PR este deplasat stânga cu 4 pozitii si încarcat în ALU, ultimii biti fiind completati cu 0 11 - are
loc o deplasare dreapta cu 6 biti, extinzându-se semnul.
Continutul lui PR ramâne neschimbat; deplasarea are loc daca se transfera continutul lui PR în ALU; PM este încarcat de
instructiunile SPM si LST1; PM = 0 dupa un reset.

SXM - bit mod de extensie a semnului; SXM = 1 - are loc extensia semnului când în acumulator se ajunge printr-
un registru de deplasare; SXM = 0 – suprima extensia semnului; SXM nu afecteaza rezultatul unor instructiuni; bitul este
setat de SSXM si resetat de RSXM; poate fi încarcat cu LST1; SXM = 1 dupa un reset.

TC - bitul de test / control; este afectat de instructiunile BIT, BITT, CMPR, LST1 si NORM; TC = 1 - bitul testat cu
BIT sau BITT este "1"; compararea conditionata dintre AR0 si orice AR sau SAU-EXCLUSIV-ul dintre primii doi biti cei mai
semnificativi ai acumulatorului da un rezultat adevarat; instructiunile de salt conditionat BBZ si BBNZ duc la executarea
unui salt în functie de starea bitului.
TXM - bit mod de transmisie; TXM = 1 - configureaza pinul FSX al portului serial ca iesire si se produce un impuls
pe aceasta iesire când DXR este încarcat si se începe transmisia pe linia DX; TXM = 0 - configureaza pinul FSX ca intrare;
TXM este setat de STXM si resetat de RTXM; poate fi încarcat cu LST1; TXM = 0 dupa un reset.

XF - bit de stare al pinului XF; este în general pin de iesire; este setat de SXF si resetat de RXF; poate fi încarcat
cu LST1; XF = 1 dupa un reset.

S-ar putea să vă placă și