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 作为 01 的转换,您可以使并发语句像:

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