Mažasis endian Big konversija, modeliavimo rezultatai nėra aiškūs ..?

J

Jansi Meena

Guest
Prašome padėti man, aš gavau šį failą, kuris, jų teigimu, ji paverčia šiek tiek didelis endian. Vieną modulį turiu pateikti duomenys (nuo 0 iki 33) ir kitas modulis (33 downto 0) duomenų tipą. Man buvo pasakyta, kad žemiau kodas bus atlikti konversijas [kodas] subjektas le_2_be uostas (ARRAY_IN: std_logic_vector [0 iki 33)); ARRAY_OUT.: Iš ​​std_logic_vector (33 downto 0)); pabaiga le_2_be. Architektūra le_2_be_arch iš le_2_be. pradėti LE_2_BE_PROC: procesas (ARRAY_IN) prasideda for i in 0 iki 33 kilpų ARRAY_OUT (i)
 
Jis pasikeitė. Jei pažvelgti į faktinį skaičių, ARRAY_OUT (0) bus lygi ARRAY_IN (33),. Kaip ji rodoma, yra teisinga, nes 0 yra MSB array_in,, ir 33 yra MSB masyvo out. Taigi MSB indekso pokyčiai. Kodas yra šiek tiek overkil. Tai galite padaryti tiesiog raštu: ARRAY_OUT
 
OMG, kodas yra nenaudingas? Aš niekada negalvojau, kad taip. Tada man įdomu, kodėl ji buvo panaudota daugelyje vietų .... Taigi, net jei einu pro vertę iš "downto" Siekiant "iki", sveikasis skaičius arba skaičius papratimas pakeisti? Prašome paaiškinti man, kaip aš labai supainioti .... Pavyzdžiui, tai tik mano aiškumo ir kodas yra beprasmis. [Kodas] procesas (a, b) kintamasis: std_logic_vector (nuo 0 iki 3) kintamasis b: std_logic_vector (3 0) pradėti (nuo 0 iki 3)
 
pirmiausia visų, sintaksės klaida. Jūs tai 3, o ne downto 0 3 0. a) C yra "0010" "0010" savo neturi reikšmės tol, kol taikomas masyvo. straipsnio 3 downto 0) masyvo. antgaliai 3 downto 1) "0" 0 bitas yra "1". nuo 0 iki 3) bitų (0 2) "0" ir 3 bitas yra "1". b) "0010". Didelis endianness ar mažai endianness, nesvarbu, skaičius yra tas pats. Tai tiesiog, kad pokyčiai MSB indeksas. c) Nr., išskyrus atvejus, kai a ir b yra signalai iš išorės. Atidėti galima tik signalus, jautrumo sąraše. Jūs tada gavo vietinius kintamuosius a ir b, kad nepaisyti išorinio signalo vardus. Taigi vidaus nuorodos į kintamuosius ir pavartojote klaidingą priskyrimo operatorius, su kintamaisiais, kai ji yra: =). Šiuo
 
C bus 0010 tik. Žr. Endian tik indeksą kaip Tricky pasakė, ir ji papratimas pakeisti savo skaitmuo vertę. Modulis, kuris skaito mažai endian kur, kaip atėjo iš didžiųjų duomenys, tiesiog turi bitų kad reveresed, ir duomenys bus tiesiog tilpti į lizdą. Tai yra, kai jūs skaitote tiek išmintingas, pavyzdžiui, 32-bitų duomenis raštu ir kada jūs skaitysite (15 downto 0), tai nebus lygus tavo (nuo 0 iki 15) Bet kaip visos 32-bitų DWORD, skaitvardis vertė visada lieka tas pats. kaip tai .... 0 1 2 3 0 0 1 0 () 3 2 1 0 0 0 1 0 (b) Šiuo atveju (0-2) nėra lygus (2 downto 0), bet vis tiek = b Atskrendančiam? ... .
 
Visų pirma, sintaksės klaida. Jūs tai 3, o ne downto 0 3 0. a) C yra "0010" "0010" savo neturi reikšmės tol, kol taikomas masyvo. straipsnio 3 downto 0) masyvo. antgaliai 3 downto 1) "0" 0 bitas yra "1". nuo 0 iki 3) bitų (0 2) "0" ir 3 bitas yra "1". b) "0010". Didelis endianness ar mažai endianness, nesvarbu, skaičius yra tas pats. Tai tiesiog, kad pokyčiai MSB indeksas. c) Nr., išskyrus atvejus, kai a ir b yra signalai iš išorės. Atidėti galima tik signalus, jautrumo sąraše. Jūs tada gavo vietinius kintamuosius a ir b, kad nepaisyti išorinio signalo vardus. Taigi vidaus nuorodos į kintamuosius ir pavartojote klaidingą priskyrimo operatorius, su kintamaisiais, kai ji yra: =). Šiuo
taip, jis turėtų būti "downto". Ačiū draugai. Dar vienas abejonių, endian netaikoma bit?
 
endianness nėra taikomos bit. 31 downto 0 didelis endian 0 iki 31 yra mažai endian (IIRC). Ji gali šiek tiek sudėtingiau su kompiuteriais, nes baitai gali būti didelis endian, kai jis ateina į gabalus, ir mažai endian, kai jis ateina į baitų užsisakyti. Bitmap failus skaitymas yra šiek tiek skausmo.
 
Apskritai, sakyčiau, MSB pirmąjį užsakymą kas nors tai būtų šiek tiek \ baitų \ žodis \ dword \ qword tt, tai Big-endian. Tai lengva prisiminti, apeigas? ... Tricky:
, nes gali būti baitai didelis endian, kai jis ateina į gabalus, ir mažai endian, kai jis ateina į baitų užsisakyti. Bitmap failus skaitymas yra šiek tiek skausmo.
I dont suprasti, ką jūs bandote čia reiškia? ....
 
I dont suprasti, ką jūs bandote tai čia ....
Kiekvienas baitas bylą (7 downto 0), bet tada baitų nulis yra bent sig baitas pirmą DWORD. todėl šiek tiek, kad yra 7 .. 0 15 .. 8 23 .. 16 31 .. 24 ir tt erzina.
 
Kiekvienas baitas bylą (7 downto 0), bet tada baitų nulis yra bent sig baitas pirmą DWORD. todėl šiek tiek, kad 7 .. 0 15 .. 8 23 .. 16 31 .. 24 ir tt erzina.
Tai mažai endian bitų ir baitų, ir aš norėčiau jį. Ji gali būti fiziniai ir mūsų kultūroje, kad "kairė" yra pirmasis, tačiau ne "kairė" ir "teisė" aparatūros. Aš norėčiau, kad šiek tiek 0, tai mažiausiasis reikšminis bitas, ir kad baitų 0 yra mažiausiai svarbus baitas. "Intel" procesoriais, kaip šis. Seni Motorola, pavyzdžiui, 68000 procesoriai yra mažai endian bitų, bet didelis-endian baitai (31 .. 24 23 .. 16 15 .. 8 7 .. 0). Ji gali atrodyti "teisė" žmogui, bet nėra įrangos ar programinės įrangos privalumas. "Power PC yra didelis endian už bitų ir perjungiamos už baitų. Be galo big-endian režime bitai yra panašus į šį: (0 .. 7 8 .. 15 16 .. 24 25 .. 31) 0 bitas yra svarbiausias. Tarkime, jūs norite patikrinti, jei atmintyje skaičius yra lyginis ar nelyginis. Little-endian straipsnio baitas užsakymų) sistema jums tik reikia žinoti žodžio pradžios adresą. Big-endian straipsnio baitas užsakymų) sistema, jūs turite žinoti, pradžios adresą ir dydis žodžio.
 
Kodėl jūs turite galvoje, ar galite pasakyti kokį pavyzdį ... [ color = "Sidabrinė"] [size = 1] ---------- Pranešimas Parašytas 12:14 ---------- Ankstesnis 12:10 ------ ---- [/size] [/color]
Kiekvienas baitas bylą (7 downto 0), tačiau tada baitų nulis yra bent sig baitas pirmą DWORD. todėl šiek tiek, kad yra 7 .. 0 15 .. 8 23 .. 16 31 .. 24 ir tt erzina.
(7 .. 0 \ 15 .. 8) yra tikrai galvos skausmas Kaip elgtis tokiu atveju? . Jei mes turime formatuoti baitų dar kartą ir tada apdoroti? ..... Arba kaip tai pasirūpinta šiuolaikinių architektūrų ...?
 
Kodėl jūs turite galvoje, ar galite pasakyti kokį pavyzdį
big-endian sistemos indikatoriniai taško svarbiausias baitas straipsnio pirmasis baitas)?? Norėdami rasti mažiausiai svarbus baitas turite žinoti žodį dydį. Gauni panašią problemą, jei norite, padaryti multi-word/byte padidinimą ar serijos tuos padidinimus. Jūs turite pradėti nuo mažiausios žodį / BYTE / bit.
(7 .. 0 \ 15 .. 8) yra tikrai galvos skausmas
std_logic_vector (7 downto 0) nereiškia, kad 7 yra šiek tiek pirmas tiek. Tai šiek tiek "į kairę". Aparatūros nerūpi "kairę" ar "teisingas", tai kodėl sako, kad 7 bitų yra pirmasis? Manau, viskas yra lengviau, jei aš manau elementas su mažiausiu indeksą kaip "pirmasis". Tada 7 .. 0 15 .. 8 ir tt - logiškiausias bitų / baitų kad, nes noriu šiek tiek 0 mažiausiasis reikšminis bitas. Tai, kaip "Intel" procesoriais tai padaryti.
 
big-endian sistemos indikatoriniai taško svarbiausias baitas straipsnio pirmasis baitas). Norėdami rasti mažiausiai svarbus baitas turite žinoti žodį dydį.
Taip, sutiko. Esant mažai endian yra ne tas žodis dydis vis dar reikalingas?
std_logic_vector (7 downto 0) nereiškia, kad 7 bitų yra pirmasis tiek. Tai šiek tiek "į kairę". Aparatūros nerūpi "kairę" ar "teisingas", tai kodėl sako, kad 7 bitų yra pirmasis? Manau, viskas yra lengviau, jei aš manau elementas su mažiausiu indeksą kaip "pirmasis". Tada 7 .. 0 15 .. 8 ir tt - logiškiausias bitų / baitų kad, nes noriu šiek tiek 0 mažiausiasis reikšminis bitas. Tai, kaip "Intel" procesoriais tai padaryti.
Na, aš reiškė pasakyti, perskaičius šį užsakymą "(31 .. 24) (23 .. 16) (15 .. 08) (07 .. 0) gali būti paprasčiau, palyginti su, kad 1 (7 .. 0) (15 .. 8) ir tt ".... Tai endian pokytis baitų tvarka tik Vietoj to, tai gali būti lengvai (0 .. 7) (8 .. 15) ir tt Bet tai tiek, kad pokytis
 
Ačiū, dauguma prietaisų, kaip kai Ti DSP Aš dirbau, yra didelis endian tik. Tai, ką jie naudojami SPI, kitos komunikacijos ... Kas tai yra problema su-kad skaityti? VHDL rasti jokių problemų pereinant nuo Big \ Mažasis endian ....
 
Manau, ji yra nepriklausoma. Kai kurie gamintojai, kad standartas ir kai yra programuojami. FPGA nėra problema. Kadangi mes visada elgtis su bitų vektorių ir iš tikrųjų tai yra labai lengva. Tačiau, pavyzdžiui, 32 bitų procesorių, tai yra sunkus darbas, ji gali imtis daugiau mašinų ciklų gauti bitų lygio informaciją DWORD. Todėl jis gali padaryti ši konvencija galvos skausmas ....
 

Welcome to EDABoard.com

Sponsor

Back
Top