Maksimal mulig bredde for type "usignert"

S

shaiko

Guest
Er det en bredde grense for bredden på en "usignert" vektor type i VHDL?
 
Er det en bredde grense for bredden på en "usignert" vektor type i VHDL
typen UNSIGNED er array (naturlige utbredelsesområde) av STD_LOGIC;? Derfor tillatte bredde på en usignert er utvalget av Naturals som er 0-2147483647. Kevin Jennings
 
BTW, hvis du setter den til eneste bit lengde, vil den ha alle de egenskaper en "std logikk"?
 
BTW, hvis du setter den til eneste bit lengde, vil den ha alle de egenskaper en "std logikk"
Hvis av 'egenskaper' du mener kan de brukes på samme måte? så svaret er "nei". En bit av en type som er definert å være en rekke andre typer vil bli brukt i koden på en annen måte enn base typen selv. Noen eksempler: [syntaks = VHDL] signal xyz_vec: std_logic_vector (0 downto 0); signal xyz_bit: std_logic; begynne xyz_vec
 
Selv om jeg setter pris på en eksakt svar, jeg lurer på om tallene ovenfor tilgjengelig logikk celletall er av praktisk interesse. :)
 
Jeg lurer på om tallene ovenfor tilgjengelig logikk celletall er av praktisk interesse
Nei .. bare for generell kunnskap. Grensen for heltall (2 ^ 31-1), er imidlertid av en praktisk interesse. Jeg ser ingen gode grunner for inffering slik grense - spesielt med 64 bits systemer blir mer vanlig.
 
Nei .. bare for generell kunnskap. Grensen for heltall (2 ^ 31-1), er imidlertid av en praktisk interesse. Jeg ser ingen gode grunner for inffering slik grense -. Spesielt med 64 bits systemer blir mer vanlig
grensen ble etablert allerede da VHDL først ble definert og standardisert i 1987. Hvorfor språket ikke har utviklet seg til å omfatte større heltall jeg ikke kjenner (men det har blitt spurt mange ganger i flere fora). Men en mer praktisk spørsmål kan være, hva er det du planlegger å gjøre som ikke kan gjøres med signert / usignert som har mye større tallfestet grense av 2 ^ (2 ^ 31-1)? De første Ulempene jeg ser er: - Du kan ikke ha en eneste sløyfe variabel teller som går på at store (dvs. for i = 0 til 2 ^ 33 ...) - Du kan ikke sammenligne med en bokstavelig heltall som stor (dvs. hvis my_unsigned = 2 ^ 33 da ...) Det er bare å jobbe med stor signert / usignert med matematiske operasjoner, logiske operasjoner etc. er ikke et problem. Kevin Jennigns
 
Men et mer praktisk spørsmål kan være, hva er det du planlegger å gjøre som ikke kan gjøres med signert / usignert
Ingenting egentlig. Jeg har en regel - å bruke bare tall for tellere. Somtimes 2 ^ 32 - er bare ikke nok.
 
Jeg har en regel - å bruke bare tall for tellere. Somtimes 2 ^ 32 - er bare ikke nok
Hvorfor heltall for tellere.? Fordeler med å bruke usignerte som tellere: 1. Ingen størrelsesbegrensningen to. Wraps automatisk tre. Bedre størrelse kontroll. Hvis du tester et heltall teller for en verdi utenfor området, får du ingen advarsel eller feil. Du får bare en feilmelding hvis verdien går utenfor området i simuleringen. Hvis du tilordner et heltall teller fra et register med et visst antall bits, vil verktøyene ikke se noe problem hvis heltallet serien er for liten. I simulering, ikke antall bits i registeret ikke saken. Du vil bare se feilen i simuleringen hvis verdien er lagret i registeret er utenfor rekkevidde. Usignerte tellere har ikke disse problemene.
 

Welcome to EDABoard.com

Sponsor

Back
Top