logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Proste zadanie - ADSP-2181 w VisualDSP++

kiziorxxx 02 Lut 2009 03:33 2341 3
REKLAMA
  • #1 6090063
    kiziorxxx
    Poziom 9  
    Witam, przejdę od razu do konkretów, mam takie zadanie do zrobienia:


    Proste zadanie - ADSP-2181 w VisualDSP++


    wszystko byłoby proste gdyby nie to, że mx0, mx1, mr, są 16-bitowe, więc nie ma szans zrobić to "normalnym" sposobem. Proszę o pomoc.

    pozdrawiam
  • REKLAMA
  • #2 6090113
    arturt134
    Poziom 27  
    Nieprawda. MR ma 40 bitów.

    Zadanie jest naprawdę proste:
    MR=MX0*MX0(SS);
    MR=MR+MX1*MX1(SS);

    Nie wiem, czy druga linia zadziała - sprawdź w symulatorze; jeżeli nie, to najpierw skopiuj MX1 do MX0.
  • REKLAMA
  • #3 6091643
    kiziorxxx
    Poziom 9  
    to działa na małych liczbach.
    Mr w sumie jest 40-bitowy, ale jest pdzielony na 3 segmenty MR2-8 bitów M1 i MR0 mają po 16bitów, wynik powinien być jakoś rozdzielony na te segmenty ale jakoś nie jest.

    masz jeszcze jakieś pomysły??
  • #4 6095154
    arturt134
    Poziom 27  
    Przecież masz małe liczby....
    Masz dwie liczby 16 bitowe.
    16bit*16bit = 32bit (mieści się w MR prawda?)
    32bit + 16bit*16bit = maksymalnie 33bit - w tym konkretnym przypadku nadal 32 bity.

    Nie mam zainstalowanego VDSP dla 218x, ale mam dla BlackFina (też jest 16bitowy, ma takie same rozmiary rejestrów). Sprawdzałem na symulatorze, działa.

    Aha, twój wynik znajdzie się w MR1:MR0. Arytmetykę musisz mieć ustawioną na całkowitą.
REKLAMA