std_logic zu integer Konvertierung
Möchte ich meine konvertieren sys-clock (std_logic) in einen integer-Wert (sys_clk). Also ich verwende folgende libs:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
-- code example
sys_clk : INTEGER;
clk_clk : in std_logic;
wie kann ich umwandeln der clk_clk zu meinem sys_clk?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt die Konvertierung von
std_logic
als'0'
und'1'
zuinteger
als0
und1
können Sie machen übereinstimmenden Aussagen wie:oder
Außerdem gibt es einige syntax-Fehler in den Erklärungen.
sys_clk <= to_integer(unsigned("" & clk_clk));
?unsigned'
sosys_clk <= to_integer(unsigned'("" & clk_clk));
, da ohne die'
ModelSim generiert den Fehler: "die Zweideutige Art, in infix-Ausdruck; ieee.std_logic_1164.STD_LOGIC_VECTOR oder ieee.std_logic_1164.STD_ULOGIC_VECTOR.". Die anderen 2 Vorschläge in meiner Antwort auch funktionieren.Ich bin mir nicht sicher, was Sie im Sinn haben, sondern Umwandlung
std_logic
zuinteger
klingt eine schlechte Idee. Während Sie kann hierzu berate ich Sie sollte nicht tun.Brauchen Sie nicht zu konvertieren
sys_clk
integer hinzufügen oder test seinen Wert (ich kann mir nicht vorstellen, eine Nutzung zu tun).integer
oderunsigned
und es behandeln wie eine Zahl. Wenn Ihr nicht ein Zahl - dann nutzen Siestd_logic_vector
und versuchen Sie nicht, um es zu behandeln wie eine Zahl - weil es eben nicht! Ich denke, dass seine gut erklärt hierKönnte man auch schreiben, die Funktion selbst:
Dann würden Sie es verwenden, wie Sie verwenden to_integer() für std_logic_vectors
to_integer
dies bedeutet einestd_logic
könnte leicht interpretiert werden als eine ganze Zahl. Es ist eigentlich eine benutzerdefinierte Konvertierung. Und du bist tatsächlich der Reproduktion derconv_integer
Funktion, die bereits in derIEEE.std_logic_arith
Paket... link