[an error occurred while processing this directive]
|
Что касается открытия проекта и выбора типа кристалла - тут я с Вами согласен. Про требования к памяти я уже писал - за переносимость с платформы на платформу (Java и Virtual Maсhine) заплатили объемом ОЗУ и скоростью.
Второе - почему в FPGA нельзя реализовать синхронный автомат ? Я чего-то не понял. Я импортировал синтезированную с VHDL машину состояний (т.е. создал свой собственный soft module) - все работало как надо. Привожу текст исходника. Устройство принимает асинхронный входной сигнал (inp) и генерирует синхронизированный с тактовой частотой (clk) одиночный импульс (front) длительностью в один период clk в момент обнаружения нарастающего фронта входного сигнала inp (классический автомат Мура).
library ieee;
use ieee.STD_logic_1164.ALL;
entity moore is
port(clk : in std_logic;
reset : in std_logic;
inp : in std_logic;
front : out std_logic
);
end moore;
architecture behavior of moore is
type state_type is (S0, S1, S2, S3);
signal curr_state, next_state : state_type;
begin
comb: process(reset, curr_state, inp)
begin
if reset = '0' then
-- curr_state <= S0;
next_state <= S0;
else
case curr_state is
when S0 =>
front <= '0';
if inp = '0' then
next_state <= S1;
end if;
when S1 =>
front <= '0';
if inp = '1' then
next_state <= S2;
end if;
when S2 =>
front <= '1';
if inp = '1' then
next_state <= S3;
else next_state <= S1;
end if;
when S3 =>
front <= '0';
if inp = '0' then
next_state <= S1;
end if;
end case;
end if;
end process comb;
sync: process(clk)
begin
if clk'event and clk='1' then
curr_state <= next_state;
end if;
end process sync;
end behavior;
E-mail: info@telesys.ru