プロが教えるわが家の防犯対策術!

Lattice MachXO2 1200ZE Breakout Boardを使って、VHDLの勉強をしているのですが、内部クロックの設定の仕方がわかりません。どうやって設定して良いのか全くわからないため、困っています。
Lattice Diamondを使っており、Warningでクロックを設定してくださいと警告が出ます。
VHDLおよび、プログラムは初心者なので誰か教えていただけると助かります。

ちなみに、タイマーの作製を目標としてプログラムを組んでいます。

A 回答 (1件)

下記URLから見つけたソースです。


http://www.eewiki.net/display/LOGIC/Lattice%20Di …

これでLEDが約1Hzで点滅します。
設定可能な周波数も上記URLに乗っていますよ。
頑張って下さい。

-- Start of example source

LIBRARY ieee;
USE ieee.std_logic_1164.all;

LIBRARY lattice;
USE lattice.components.all;

LIBRARY machxo2;
USE machxo2.all;

ENTITY blinking_led IS
PORT(
led:BUFFERSTD_LOGIC);
END blinking_led;

ARCHITECTURE behavior of blinking_led IS
SIGNALclk:STD_LOGIC;

--internal osclator
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;

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

PROCESS(clk)
VARIABLEcount:INTEGER RANGE 0 TO 26_600_000;
BEGIN
IF (clk'EVENT AND clk = '1') THEN
IF (count < 26_600_000) THEN
count := count + 1;
ELSE
count := 0;
led <= NOT led;
END IF;
END IF;
end process;

end behavior;

--End of example source
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!