Sådan konverteres std_logic_vector til hexadecimal

E

EDA_hg81

Guest
Sådan konverteres std_logic_vector til hexadecimale?

Tak.

 
Hexadecimal er ikke en type som std_logic_vector.Hexadecimal er en repræsentation.Så kan du altid repræsentere std_logic_vector signal i form af Hex format.

Hvad vil du gøre nøjagtigt?

 
Jeg vil konvertere std_logic_vector at karakter.

Skal jeg konvertere std_logic_vector til hexadecimale først?

Følgende er min kode:

Code:

procedure hex2chr (variabel hex: i std_logic_vector (3 downto 0);

variable CHAR: ud karakter) er

begynd

tilfælde hex er

når "0000" => CHAR: ='0 ';

når "0001" => CHAR: ='1 ';

når "0010" => CHAR: ='2 ';

når "0011" => CHAR: ='3 ';

når "0100" => CHAR: ='4 ';

når "0101" => CHAR: ='5 ';

når "0110" => CHAR: ='6 ';

når "0111" => CHAR: ='7 ';

når "1000" => CHAR: ='8 ';

når "1001" => CHAR: ='9 ';

når "1010" => CHAR: = 'a';

når "1011" => Tegn: = 'b';

når "1100" => CHAR: = 'c';

når "1101" => Tegn: = 'd';

når "1110" => Tegn: = 'e';

når "1111" => Tegn: = 'f';

når andre =>

STYRKES (falsk) rapport "ingen hex karakter læse" Severity fiasko;

ende sag;

udgangen hex2chr;
 
karakter er en VHDL standard type, men det har ingen særlige formål i syntese,
er det hovedsagelig anvendes i text_io for simulation formål.Så hvad vil du gøre med CHAR output af proceduren?

 
Jeg gør et lukket kredsløb simulering.

Jeg ønsker at optage den feed-back std_logic_vector.

Tak.

 
Så du ønsker at udføre hexadecimale textio produktion.Dette bør arbejde.

 
Er du sikker?

udseende, den har fejl, holde viser "STYRKES (falsk) rapport" ingen hex karakter læse "Severity fiasko;"

hvorfor?

 
Tjek det her!

Code:

funktion to_hstring (værdi: STD_ULOGIC_VECTOR) hjemrejse STRING er

konstant ne: INTEGER: = (value'length 3) / 4;

variable pad: STD_ULOGIC_VECTOR (0 til (ne * 4 - value'length) - 1);

variable ivalue: STD_ULOGIC_VECTOR (0 ne * 4 - 1);

variablen resultat: STRING (1 ne);

variable quad: STD_ULOGIC_VECTOR (0 til 3);

begynd

hvis value'length <1 derefter

tilbagevenden NUS;

anden

hvis værdi (value'left) = 'Z' og derefter

pad: = (andre => 'Z');

anden

pad: = (andre =>'0 ');

udgangen, hvis;

ivalue: = pad & værdi;

for jeg i 0 til ne-1 loop

quad: = To_X01Z (ivalue (4 * I til 4 * i 3));

tilfælde quad er

når x "0" => resultat (i 1): ='0 ';

når x "1" => resultat (i 1): ='1 ';

når x "2" => resultat (i 1): ='2 ';

når x "3" => resultat (i 1): ='3 ';

når x "4" => resultat (i 1): ='4 ';

når x "5" => resultat (i 1): ='5 ';

når x "6" => resultat (i 1): ='6 ';

når x "7" => resultat (i 1): ='7 ';

når x "8" => resultat (i 1): ='8 ';

når x "9" => resultat (i 1): ='9 ';

når x "A" => resultat (i 1): = 'A';

når x "B" => resultat (i 1): = 'B';

når x "C" => resultat (i 1): = 'C';

når x "D" => resultat (i 1): = 'D';

når x "E" => resultat (i 1): = »E«;

når x "F" => resultat (i 1): = 'F';

når "ZZZZ" => resultat (i 1): = 'Z';

når andre => resultat (i 1): = 'X';

ende sag;

udgangen abonnentkredsløb;

tilbagevenden resultat;

udgangen, hvis;

End Function to_hstring;
 

Welcome to EDABoard.com

Sponsor

Back
Top