Vhdl 用于fpga仿真的有源hdl中的MachX03库错误

Vhdl 用于fpga仿真的有源hdl中的MachX03库错误,vhdl,lattice-diamond,active-hdl,Vhdl,Lattice Diamond,Active Hdl,编辑:我刚刚重新安装了lattice diamond和更新,Active hdl是自动安装的,但模拟仍然给我相同的错误。当我更改库machXO3时;使用machXO3.all;到machXO2图书馆;使用machXO2.all;它汇编了 我正试图为OSCH的一个简单实现编写一个测试台,但我无法让测试台工作 几个月前我设法让它工作了,但我把正在处理的文件弄丢了 这是我的vhdl代码: library ieee; use ieee.std_logic_1164.all; -- For Main

编辑:我刚刚重新安装了lattice diamond和更新,Active hdl是自动安装的,但模拟仍然给我相同的错误。当我更改库machXO3时;使用machXO3.all;到machXO2图书馆;使用machXO2.all;它汇编了

我正试图为OSCH的一个简单实现编写一个测试台,但我无法让测试台工作

几个月前我设法让它工作了,但我把正在处理的文件弄丢了

这是我的vhdl代码:

library  ieee;
use  ieee.std_logic_1164.all;

-- For Main Clock --
library machXO3;
use machXO3.all;
--------------------

entity Clock is
     port (stdby : in std_logic;
           osc_int: out std_logic
           );
end Clock;

architecture Clock_behav of Clock is

    COMPONENT OSCH
    -- synthesis translate_off
        GENERIC (NOM_FREQ: string := "2.56");
    -- synthesis translate_on
        PORT (STDBY : IN std_logic;
              OSC : OUT std_logic
                );
    END COMPONENT;

begin

    Clock: OSCH
    -- synthesis translate_off
    GENERIC MAP( NOM_FREQ => "2.56" )
    -- synthesis translate_on
    PORT MAP (  STDBY => stdby,
                OSC => osc_int
    );

end Clock_behav;

这是测试台,大部分由lattice diamond生成,我只添加了stdby查看C:\lscc\diamond\3.10\u x64\active hdl\vlib\,似乎没有machXO3库,但有machxo、machxo2和machxo3l库。改变machXO3库;使用machXO3.all;到machXO3l库;使用machXO3l.all;对测试台进行一些小的修改,一切似乎都很顺利

新试验台

——从源文件Clock.vhd创建的VHDL测试台——2019年2月22日星期五13:56:19
--
--注:
--1)此测试台模板是使用类型自动生成的
--被测装置端口的std_逻辑和std_逻辑向量。
--Lattice建议将这些类型始终用于顶层
--设计的I/O,以保证测试台将绑定
--正确使用计时(后路线)仿真模型。
--2)要将此模板用作测试台,请将文件名更改为任意
--选择扩展名为.vhd的名称,并使用“source->import”
--用于导入测试台的ispLEVER项目导航器中的菜单。
--然后编辑下面的用户定义部分,添加代码以生成
--刺激你的设计。
--3)如果存在Lattice FPGA库,VHDL仿真将产生错误
--设计中需要实例化GSR、PUR和
--TSALL和他们不在试验台上。有关更多信息,请参阅
--联机帮助的“如何”部分。
--
图书馆ieee;
使用ieee.std_logic_1164.ALL;
使用ieee.numeric_std.ALL;
实体测试台是
端部试验台;
测试台的架构行为是
组件时钟
港口(
stdby:标准逻辑中;
osc_int:输出标准逻辑
);
端部元件;
信号stdby:std_逻辑;
信号osc_int:标准逻辑;
恒定周期:时间:=20ns;
开始
--请检查并手动添加您的泛型子句
uut:时钟端口映射(
stdby=>stdby,
osc_int=>osc_int
);
--***试验台-用户定义部分***
tb:过程
开始

stdby您的模拟软件缺少
machXO3
库。您需要尝试模拟的组件的模拟模型,这不是vhdl语言的一部分,也不是随模拟器提供的。确保你有活动的HDL-Lattice版本,如果你的版本支持MachXO3系列。活动的HDL是与Lattice Diamond一起安装的,所以我认为它是Lattice版本。几个月前我就可以让它工作了,但我不记得怎么做了。是否有办法查看活动HDL的编译器以查看是否可以包含该库?您删除的问题似乎缺少clock.vhd中实例化OSCH的属性声明和规范。声明属性
属性NOM_FREQ:string指定时钟的属性
属性NOM_FREQ:标签为“133.0”(不清楚是否需要表14或表15的值)。
--synthesis\u translate\u off
保证在合成中不注意泛型(但用于模拟)。属性为[MachXO2系统时钟PLL设计和使用指南](www.latticesemi.com/dynamic/view_document.cfm?document_id=39080)第28页至第30页的内部振荡器(OSCH)。表14、15和属性声明和规范(应位于OSCH实例化的封闭声明区域中,OSCH是Clock in Clock.vhd中Clock_行为的体系结构声明部分)。此外,还可以查看问题中显示属性的位置,而不是您的答案。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;

ENTITY testbench IS
END testbench;

ARCHITECTURE behavior OF testbench IS 

    COMPONENT Clock
    PORT(
        stdby : IN std_logic;          
        osc_int : OUT std_logic
        );
    END COMPONENT;

    SIGNAL stdby :  std_logic;
    SIGNAL osc_int :  std_logic;

BEGIN

-- Please check and add your generic clause manually
    uut: Clock PORT MAP(
        stdby => stdby,
        osc_int => osc_int
    );
    stdby <= '0';

-- *** Test Bench - User Defined Section ***
   tb : PROCESS
   BEGIN
      --wait; -- will wait forever
   END PROCESS;
-- *** End Test Bench - User Defined Section ***

END;
# Error: COMP96_0059: Main.vhd : (5, 1): Library "machXO3" not found.
# Error: COMP96_0078: Main.vhd : (6, 5): Unknown identifier "machXO3".
# Compile Architecture "Clock_behav" of Entity "Clock"
# Error: COMP96_0056: Main.vhd : (15, 1): Cannot find referenced entity declaration "Clock".
# Compile failure 3 Errors 0 Warnings  Analysis time :  16.0 [ms]