ошибке компиляции

O

Opel_Corsa

Guest
У меня есть код для FSM:

Код:

Библиотеки IEEE;

использование IEEE.std_logic_1164.all;

использование ieee.std_logic_arith.all;лицо ФШМ

порта (

ключ: в std_logic_vector (3 DOWNTO 0); - Кнопочные переключатели

Ю: В std_logic_vector (8 DOWNTO 0) - Авто-переключатели

ledg: из std_logic_vector (7 DOWNTO 0) - зеленый светодиод (вы можете использовать

- Для отображения текущего состояния)

lcd_rw: из std_logic; - R / W управляющий сигнал для ЖК

lcd_en: из std_logic; - обеспечения контроля сигнала для ЖК-дисплея

lcd_rs: из std_logic; - будь то отправка инструкций или характер

lcd_on: из std_logic; - используется для включения ЖК-дисплея

lcd_blon: из std_logic; - используется для включения подсветки

lcd_data: из std_logic_vector (7 DOWNTO 0)) - используется для передачи инструкций или символы

FSM конца;архитектура поведенческого из ФШМ

Тип state_type является (M, O, S, T, A);

Сигнал Y: state_type;

начинать

lcd_blon <= '1 '; - подсветка всегда включена

lcd_on <= '1 '; - LCD всегда на

lcd_en <= ключ (0) - подключение часы на ввод lcd_en

ledg (0) <= ключ (0); - Отправьте часы на зеленый свет, чтобы помочь в отладке

lcd_rw <= '0 '; - всегда письменной форме в ЖК[COLOR = Red] процесса (Key) [/ COLOR]

начинать

если (ключ (3) = '0 '), затем - сброс ЖК

lcd_rs <= '0 '; - Отправьте инструкции

lcd_data <= "00111000"; - подготовить ЖК

lcd_data <= "00111000";

lcd_data <= "00001100";

lcd_data <= "00000001";

lcd_data <= "00000110";

lcd_data <= "10000000";

ELSIF (ключ (3) = '1 '), то

lcd_rs <= '1 '; - отправить символы

если (Key (0) 'и ключевые события (0) = '1'), то

Y <= M;

У дела

при М => если (SW (0) = '0 '), то

Y <= O;

ELSIF (SW (0) = '1 '), то

Y <= A;

End If;

при O => Если (SW (0) = '0 '), то

Y <= S;

ELSIF (SW (0) = '1 '), то

Y <= M;

End If;

когда S =>, если (SW (0) = '0 '), то

Y <= T;

ELSIF (SW (0) = '1 '), то

Y <= O;

End If;

при Т => если (SW (0) = '0 '), то

Y <= A;

ELSIF (SW (0) = '1 '), то

Y <= S;

End If;

при A =>, если (SW (0) = '0 '), то

Y <= M;

ELSIF (SW (0) = '1 '), то

Y <= T;

End If;

конец делу;

End If;

End If;

конце процесса;с у выберите

lcd_data <= "01001101", когда М, - отображение М

"01101111", когда O, - отображение O

"01110011", когда село, - дисплей с

"01110100", когда T, - отображение T

"01100001", когда; - отображатьповеденческие конца;
 
Я думаю, что вы делаете RTL дизайн, верстка, предназначенных для синтеза и эта ошибка пришла из синтез инструмент, какой инструмент вы используете?
is being driven by a process
as well as a concurrent statement with select
and hence the issue.

Ваш lcd_data
везут на процессе,
а также одновременное заявление с выбора
и, следовательно, этому вопросу.Почему вы едете от 2 места?

Привет
Ajeetha, CVC
www.noveldv.com

 
Код:если (ключ (3) = '0 '), затем - сброс ЖК

lcd_rs <= '0 '; - Отправьте инструкции

lcd_data <= "00111000"; - подготовить ЖК

lcd_data <= "00111000";

lcd_data <= "00001100";

lcd_data <= "00000001";

lcd_data <= "00000110";

lcd_data <= "10000000";

 
Да, вы правы.Я сильно изменен мой код, и теперь он работает.спасибо!

 

Welcome to EDABoard.com

Sponsor

Back
Top