Решетка Fpga Внутренние часы - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь настроить внутренний генератор решетки MachX03.Я прочитал Руководство по проектированию и использованию sXCLOCK PLL MachXO3 * и попытался использовать код vhdl, приведенный на стр. 31 документа, но продолжаю получать синтаксическую ошибку этой ошибки (VHDL-1261) рядом с КОМПОНЕНТОМ.Может кто-нибудь сказать мне, как я могу заставить часы работать, используя VHDL?вот код, который я пытаюсь использовать:

LIBRARY lattice;

library machXO3;
use machXO3.all;

COMPONENT OSCH
   GENERIC(
         NOM_FREQ: string := "53.20"); --53.20MHz, or can select other supported frequencies
   PORT(
         STDBY    : IN  STD_LOGIC;     --'0' OSC output is active, '1' OSC output off
         OSC      : OUT STD_LOGIC;     --the oscillator output
         SEDSTDBY : OUT STD_LOGIC);    --required only for simulation when using standby
END COMPONENT;


OSCInst0: OSCH
   GENERIC MAP (NOM_FREQ  => "53.20")
   PORT MAP (STDBY => '0', OSC => clk, SEDSTDBY => OPEN);

, а вот код, найденный в руководстве:

library machXO3;
use machXO3.all;

COMPONENT OSCH
-- synthesis translate_off
  GENERIC (NOM_FREQ: string := "2.56");
-- synthesis translate_on
  PORT (STDBY:INstd_logic;
          OSC:OUTstd_logic;
     SEDSTDBY:OUTstd_logic);
END COMPONENT;

  attribute NOM_FREQ : string;
  attribute NOM_FREQ of OSCinst0 : label is "2.56";

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

*http://www.latticesemi.com/view_document?document_id=50124

1 Ответ

0 голосов
/ 23 февраля 2019

Использовать внутренний Osc в основном используйте код в меню, упомянутом выше.чтобы получить простой рабочий ос, напишите следующее в vhdl.код устанавливает тактовую частоту 2,56 МГц, самую медленную, которую могут генерировать внутренние часы.самая высокая частота, которую может вывести внутренний генератор, составляет 133 МГц, см. стр. 30-20 документа http://www.latticesemi.com/view_document?document_id=50124

library  ieee;
use  ieee.std_logic_1164.all;

-- For Main Clock --
library machXO3l;
use machXO3l.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;
attribute NOM_FREQ : string;
attribute NOM_FREQ of OSCinst0 : label is "2.56";

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;
...