Я пытаюсь написать асинхронную цифровую систему с очень быстрыми часами. Входы определяются двумя переключателями и кнопкой, позволяющей вводить входы. Каждый вход определяет, позволяет перейти в другое состояние. Я использовал внутренние часы B8 платы digilent basys2. Кажется, я правильно добрался до второго состояния, но я не могу добраться до других штатов. Поведенческое моделирование дало ожидаемые результаты. Вот моя реализация,Выполнение переходов состояний с использованием xilinx
entity states is
Port (X : in STD_LOGIC;
Y : in STD_LOGIC;
clock : in STD_LOGIC;
input : in STD_LOGIC);
end states;
architecture Behavioral of state is
signal FF : STD_LOGIC_VECTOR (2 downto 0):="000";
begin
process(clock)
begin
if(rising_edge(clock)) then
if(input='1') then
FF(0)<= (((FF(1)) and (FF(2)) and (not X) and Y) or (FF(0)));
FF(1)<= (((not FF(0)) and (not FF(1)) and (FF(2)) and X and (not Y));
FF(2)<= (((not FF(0)) and (not FF(1)) and (not FF(2)) and X and Y)
or ((not FF(0)) and (FF(1)) and (not FF(2)) and (not X) and (not Y)));
Z <= (((not FF(0)) and (FF(1)) and (FF(2)) and (not X) and Y) or (FF(0)));
end if;
end if;
end process;
end Behavioral;
А вот на плате назначения,
NET "clock" LOC = "B8" ;
NET "input" LOC = "C11" ;
NET "X" LOC = "L3" ;
NET "Y" LOC = "P11" ;
Почему моделирование дало ожидаемые результаты, но тесты на борту не было. Буду признателен за вашу помощь.
Нет выходов. Как вы можете сказать, работает ли это или нет? Поскольку нет выходных данных, синтезу разрешается обрезать все остальное, поскольку ничто в дизайне не может повлиять на какой-либо вывод. –
Кажется, что часть, которая показывает, что z - это результат не в коде выше. Как я писал ранее, я уверен, что моя симуляция правильная, но я не могу добраться до других состояний в board.I проверил таблицу истинности, которую я написал для этого дизайн, и он также дал результаты в моделировании. – Juwan
Ваш дизайн пропускает несколько основных схем для подготовки входных сигналов для использования в FSM. 1) вам необходимо синхронизировать все входы с рабочей областью тактовых импульсов. 2) вам нужно отлаживать сигналы от кнопок и переключаться, если плата не передает апробированные сигналы. Для получения дополнительной информации ознакомьтесь с документом схемы или картотекой вашей доски. 3) иногда входы должны генерировать стробированные сигналы (высокие для 1 цикла), если вам нужно дополнительное обнаружение края. Эти шаги в основном необходимы для всех контактов GPIO. Другой момент Xilinx не будет распознавать ваш FSM как statemachine, потому что это не типичный шаблон. – Paebbels