Компіляція помилку

O

Opel_Corsa

Guest
У мене є код для FSM:

Код:

бібліотека IEEE;

ieee.std_logic_1164.all використання;

ieee.std_logic_arith.all використання;особи ФШМ

порт (

ключ в std_logic_vector (3 downto 0); - перемикачі кнопки

SW: у std_logic_vector (8 downto 0); - перехід слайдів

ledg: з std_logic_vector (7 downto 0) - зелений світлодіод (ви можете використовувати

- Служить для відображення поточного стану)

lcd_rw: з std_logic; - R / W керуючий сигнал для LCD

lcd_en: з std_logic; - Включення сигналу керування для LCD

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,);

Сигнал Y: state_type;

починати

lcd_blon <= '1 '; - підсвічування завжди

lcd_on <= '1 '; - LCD завжди на

lcd_en <= ключ (0); - підключення годинник lcd_en введення

ledg (0) <= ключ (0); - відправити годинник на зелене світло, щоб допомогти вам налагодження

lcd_rw <= '0 '; - завжди письмовому вигляді LCD[Колір = червоний процесу] (ключ) [/ колір]

починати

якщо (ключ (3) = '0 '), потім - скидання LCD

lcd_rs <= '0 '; - відправити інструкції

lcd_data <= "00111000"; - підготувати LCD

lcd_data <= "00111000";

lcd_data <= "00001100";

lcd_data <= "00000001";

lcd_data <= "00000110";

lcd_data <= "10000000";

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

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

якщо (ключ (0) 'події і ключові (0) = '1'), то

у <= M;

У випадку

при M =>, якщо (SW (0) = '0 '), то

у <= O;

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

у <=;

кінець, якщо;

при а =>, якщо (SW (0) = '0 '), то

у <= с;

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

у <= M;

кінець, якщо;

, Коли S =>, якщо (SW (0) = '0 '), то

у <= т;

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

у <= O;

кінець, якщо;

при Т =>, якщо (SW (0) = '0 '), то

у <=;

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

у <= с;

кінець, якщо;

при а =>, якщо (SW (0) = '0 '), то

у <= M;

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

у <= т;

кінець, якщо;

кінець справі;

кінець, якщо;

кінець, якщо;

закінчення процесу;с у виберіть

lcd_data <= "01001101", коли M, - відображення M

"01101111", коли про, - висновок про

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

"01110100", коли т, - відображення т

"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

lcd_rs <= '0 '; - відправити інструкції

lcd_data <= "00111000"; - підготувати LCD

lcd_data <= "00111000";

lcd_data <= "00001100";

lcd_data <= "00000001";

lcd_data <= "00000110";

lcd_data <= "10000000";

 
так, ви обидва мали рацію.я сильно змінений свій код, і тепер вона працює.спасибі!

 

Welcome to EDABoard.com

Sponsor

Back
Top