如何在 package/package 主体声明后使用 "std_logic"?
How to use "std_logic" after package/package body declaration?
我正在尝试更好地使用 VHDL,因此我想尝试实现函数 "package ... is" 和 "package body ... is"。
当我这样做时,似乎 "std_logic" 在 GHDL 分析步骤中看不到 IEEEE 库的内容。
到目前为止,我尝试了其中包含和不包含代码的命令 -> 结果相同。
没有 "package" 行,它就像一个魅力......但我将无法按计划扩展它。
library IEEE;
use IEEE.std_logic_1164.all;
package run is
-- some package definitions
end run;
package body run is
-- the body
end run;
entity andfunc is
Port( A : in std_logic;
B : in std_logic;
C : out std_logic
);
end andfunc;
architecture Behavioral of andfunc is
begin
C <= A and B ;
end Behavioral;
具体错误信息为:
“[...] 错误:"std_logic"
没有声明
期待您的回答。
您的 std_logic_1164 导入属于包,并且在其主体中也可见。它在整个文件中是不可见的。在实体之前重复这些行,它将对实体及其体系结构可见。
library
和use
的范围(可见性)不是整个文件。在 package
之后,如果您仍然需要它们,则必须召回它们。为了工作你的代码应该是:
library IEEE;
use IEEE.std_logic_1164.all;
package run is
-- some package definitions
end run;
package body run is
-- the body
end run;
library IEEE;
use IEEE.std_logic_1164.all;
entity andfunc is
Port( A : in std_logic;
B : in std_logic;
C : out std_logic
);
end andfunc;
architecture Behavioral of andfunc is
begin
C <= A and B ;
end Behavioral;
我正在尝试更好地使用 VHDL,因此我想尝试实现函数 "package ... is" 和 "package body ... is"。 当我这样做时,似乎 "std_logic" 在 GHDL 分析步骤中看不到 IEEEE 库的内容。
到目前为止,我尝试了其中包含和不包含代码的命令 -> 结果相同。 没有 "package" 行,它就像一个魅力......但我将无法按计划扩展它。
library IEEE;
use IEEE.std_logic_1164.all;
package run is
-- some package definitions
end run;
package body run is
-- the body
end run;
entity andfunc is
Port( A : in std_logic;
B : in std_logic;
C : out std_logic
);
end andfunc;
architecture Behavioral of andfunc is
begin
C <= A and B ;
end Behavioral;
具体错误信息为: “[...] 错误:"std_logic"
没有声明期待您的回答。
您的 std_logic_1164 导入属于包,并且在其主体中也可见。它在整个文件中是不可见的。在实体之前重复这些行,它将对实体及其体系结构可见。
library
和use
的范围(可见性)不是整个文件。在 package
之后,如果您仍然需要它们,则必须召回它们。为了工作你的代码应该是:
library IEEE;
use IEEE.std_logic_1164.all;
package run is
-- some package definitions
end run;
package body run is
-- the body
end run;
library IEEE;
use IEEE.std_logic_1164.all;
entity andfunc is
Port( A : in std_logic;
B : in std_logic;
C : out std_logic
);
end andfunc;
architecture Behavioral of andfunc is
begin
C <= A and B ;
end Behavioral;