我正在尝试使VHDL变得更好,因此我想尝试实现“ package ... is”和“ package body ... is”功能。 当我这样做时,似乎“ std_logic”在GHDL分析的步骤中看不到IEEEE库的内容。
到目前为止,我尝试了带有和不带有代码的命令->结果相同。 没有“ package”行,它会像一个魔咒一样工作……但是我无法像计划的那样扩展它。
[[Model]]
Model(parabolic)
[[Fit Statistics]]
# fitting method = leastsq
# function evals = 9
# data points = 18
# variables = 3
chi-square = 0.00298906
reduced chi-square = 1.9927e-04
Akaike info crit = -150.657052
Bayesian info crit = -147.985936
[[Variables]]
c: -0.02973853 +/- 0.01120090 (37.66%) (init = 0)
b: 3.67707491 +/- 0.08142567 (2.21%) (init = 2)
a: 7.51540814 +/- 0.12492370 (1.66%) (init = 1)
[[Correlations]] (unreported correlations are < 0.100)
C(b, a) = -0.972
C(c, b) = -0.891
C(c, a) = 0.785
特定的错误消息是: “ [...]错误:“ std_logic”没有声明
期待您的回答。
答案 0 :(得分:0)
您的std_logic_1164导入属于该软件包,并且在其主体中也可见。在整个文件中不可见。在实体之前重复这些行,它将对于实体及其体系结构可见。
答案 1 :(得分:0)
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;