[an error occurred while processing this directive]
|
Нельзя в ПЛИС делать логику сзади тригеров! И вообще все времянки надо делать как логический автомат. Доже простые. Например:
--формирование строба в один период clk
--по переднему фронту сигнала taktin
LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY work;
ENTITY rise_strob IS
port
(
clk : IN STD_LOGIC;
reset : IN STD_LOGIC;
taktin : IN STD_LOGIC;
strob : OUT STD_LOGIC
);
END rise_strob;
ARCHITECTURE a OF rise_strob IS
TYPE STATE_TYPE IS (s0, s1, s2, s3);
SIGNAL state : STATE_TYPE;
BEGIN
PROCESS (clk, reset)
BEGIN
IF reset = '1' THEN
state <= s0;
ELSIF (clk'EVENT AND clk = '1') THEN
CASE state IS
WHEN s0=>
IF taktin = '0' THEN
state <= s1;
ELSE
state <= s0;
END IF;
WHEN s1=>
IF taktin = '1' THEN
state <= s2;
ELSE
state <= s1;
END IF;
WHEN s2=>
state <= s3;
WHEN s3=>
state <= s3;
END CASE;
END IF;
END PROCESS;
PROCESS (state)
BEGIN
IF state = s2 THEN
strob <= '1';
ELSE
strob <= '0';
END IF;
END PROCESS;
END a;
E-mail: info@telesys.ru