std_logic 到整数转换
std_logic to integer conversion
我想将系统时钟 (std_logic) 转换为整数值 (sys_clk)。因此我使用以下库:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
-- code example
sys_clk : INTEGER;
clk_clk : in std_logic;
如何将 clk_clk 转换为我的 sys_clk?
谢谢
假设从 std_logic
作为 '0'
和 '1'
到 integer
作为 0
和 1
的转换,您可以使并发语句像:
sys_clk <= 1 when (clk_clk = '1') else 0;
或
sys_clk <= to_integer(unsigned'('0' & clk_clk));
此外,声明中存在一些语法错误。
我不确定您的想法,但是将 std_logic
转换为 integer
听起来不是个好主意。虽然你可以这样做,但我建议你不应该这样做。
您不需要将 sys_clk
转换为整数来添加或测试它的值(我无法想象这样做有什么用)。
你也可以自己写函数:
function to_integer( s : std_logic ) return natural is
begin
if s = '1' then
return 1;
else
return 0;
end if;
end function;
然后你会像使用 to_integer() 一样使用它 std_logic_vectors
我想将系统时钟 (std_logic) 转换为整数值 (sys_clk)。因此我使用以下库:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
-- code example
sys_clk : INTEGER;
clk_clk : in std_logic;
如何将 clk_clk 转换为我的 sys_clk?
谢谢
假设从 std_logic
作为 '0'
和 '1'
到 integer
作为 0
和 1
的转换,您可以使并发语句像:
sys_clk <= 1 when (clk_clk = '1') else 0;
或
sys_clk <= to_integer(unsigned'('0' & clk_clk));
此外,声明中存在一些语法错误。
我不确定您的想法,但是将 std_logic
转换为 integer
听起来不是个好主意。虽然你可以这样做,但我建议你不应该这样做。
您不需要将 sys_clk
转换为整数来添加或测试它的值(我无法想象这样做有什么用)。
你也可以自己写函数:
function to_integer( s : std_logic ) return natural is
begin
if s = '1' then
return 1;
else
return 0;
end if;
end function;
然后你会像使用 to_integer() 一样使用它 std_logic_vectors