【问题标题】:Simulating a VHDL design using custom libraries使用自定义库模拟 VHDL 设计
【发布时间】:2017-01-31 00:14:15
【问题描述】:

我正在尝试制作一个简单的 VHDL 项目来刷新我的记忆。我正在使用一个文件 half_adder.vhd 来创建另一个我希望模拟的文件 full_adder.vhd。这些文件不在同一个项目中。我使用的是 Xilinx ISE 版本 14.7。

我的代码合成得非常好,并且通过了语法检查。我还可以创建 RTL 原理图。但是,每当我尝试为全加器创建测试平台时,都会收到以下错误消息:

错误:HDLParsers:3317 -“E:/workspaceXilinx/FullAdder/full_adder.vhd”第 23 行。 找不到库 half_adder。

错误:HDLParsers:3513 -“E:/workspaceXilinx/FullAdder/full_adder.vhd”第 24 行。 自设计单元以来,声明都不能在此范围内可见 half_adder 不是一个包。

我已将 half_adder.vhd 添加到 work 库中,所以我不确定为什么找不到该库。这是我正在使用的两个文件:

half_adder.vhd

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity half_adder is
    port(a, b: in STD_LOGIC;
            s, c: out STD_LOGIC);
end half_adder;

architecture Behavioral of half_adder is
begin
    s <= a xor b;
    c <= a and b;
end Behavioral;

full_adder.vhd

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

library half_adder;
use half_adder.all;

entity full_adder is
    port (a, b, cin: in STD_LOGIC;
            s, cout: out STD_LOGIC);
end full_adder;


architecture Behavioral of full_adder is
signal s1, c1, c2: STD_LOGIC:='0';
begin

    HA1: entity work.half_adder port map(a, b, s1, c1);
    HA2: entity work.half_adder port map(s1, cin, s, c2);
    cout <= c1 or c2;

end Behavioral;

【问题讨论】:

    标签: vhdl simulation xilinx


    【解决方案1】:

    work 库是指当前正在编译的库。如果您没有在设计工具中显式创建half_adder 库,它将不存在。您需要做的就是删除与half_adder 相关的libraryuse 子句;这不是必需的。

    【讨论】:

    • 感谢您的快速答复。
    猜你喜欢
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 2012-03-09
    相关资源
    最近更新 更多