Перейти к содержанию
    

Простейшие схемы на ПЛИС не работают

Доброго времени суток! Исключительно для себя (в свободное время) решил попробовать создать простую комбинационную схему. На ПЛИС Cyclone 4 EP...C8 на отладочной плате (полное название в проекте), при работе в среде Quartus 18 конечная программа работает не как ожидается. Я не могу понять причину, схема простая и составлена верно, все предупреждения, насколько я понял незначительны. Файлы проекта прилагаю в архиве. Сверху проверка на неправильное подключение, снизу искомая комбинационная схема

 

Таблица истинности следующая (кнопки и светодиод)

X1 X2 X3 Y1                                         Из чего при загрузке в ПЛИС получаем                X1 X2 X3 Y1

0   0   0   0                                                                                                                           0   0   0   1

0   1   0   1                                                                                                                           0   1   0   1

1   1   0   1                                                                                                                           1   1   0   1

1   0   1   0                                                                                                                           1   0   1   1

Остальные комбинации нулевые                                                                                       Не все остальные комбинации нулевые

PRJ-QVR0 - Begin.7z

Изменено пользователем Fillya

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

252020976_.png.d11aaf4202090a0ea1f86ed634bf0bd3.png

У AND3(inst1) первый вход pin1, а второй ~pin1. Это всегда 0 - поэтому не имеет смысла, и значит у вас где-то ошибка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, adnega сказал:

252020976_.png.d11aaf4202090a0ea1f86ed634bf0bd3.png

У AND3(inst1) первый вход pin1, а второй ~pin1. Это всегда 0 - поэтому не имеет смысла, и значит у вас где-то ошибка.

Я вижу на схеме, что AND3 (Inst1) подключён первым выводом к pin_name1, а вторым к pin_name2 и боле нигде соединений, обозначенных точками, не наблюдается

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цитата

X1 X2 X3 Y1

0   1   0   1

1   1   0   1

Остальные комбинации нулевые

Y1 = (~X1 * X2 * ~X3) + (X1 * X2 * ~X3) - т.е. элемент ИЛИ у вас должен быть двухвходовый, а не трехвходовый.

и можно упростить до Y1 = X2 * ~X3.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Fillya сказал:

создать простую комбинационную схему. На ПЛИС

 

wire [2:0] X;

wire Y;

always @(X)

case(X)

 0 : Y = 1'b0;

 1 : Y = 1'b0;

 2 : Y = 1'b1;

 3 : Y = 1'b1;

 4 : Y = 1'b0;

 5 : Y = 1'b0;

 6 : Y = 1'b0;

 7 : Y = 1'b0;

endcase

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, adnega сказал:

252020976_.png.d11aaf4202090a0ea1f86ed634bf0bd3.png

У AND3(inst1) первый вход pin1, а второй ~pin1. Это всегда 0 - поэтому не имеет смысла, и значит у вас где-то ошибка.

 

 

2 часа назад, Ivanii сказал:

inst1

 

252020976.jpg

Да, увидел ошибку. Смотреть в этой программе явно нужно внимательней

2 часа назад, Plain сказал:

 


wire [2:0] X;

wire Y;

always @(X)

case(X)

 0 : Y = 1'b0;

 1 : Y = 1'b0;

 2 : Y = 1'b1;

 3 : Y = 1'b1;

 4 : Y = 1'b0;

 5 : Y = 1'b0;

 6 : Y = 1'b0;

 7 : Y = 1'b0;

endcase

 

Для языков рановато, сначала на основе графического редактора отработать пару программ без различных ошибок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, Fillya said:

X1 X2 X3 Y1                                       

0   0   0   0                                                                                                                          

0   1   0   1                                                                                                                          

1   1   0   1                                                                                                                        

1   0   1   0                                                                                                                          

Внимательный наплюдатель может заметить, что из таблицы истинности выплывает следующая функция для Y:

Y=X2

Не знаю какие танци с бубном Вы проводите, но в данном случае нужно или сделать адекватную таблицу входам (2 входа 1 выход - простой лог элемент), либо расширить текущую для больших значений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если можно описать схему на языке, то это и надо сделать.

Просто опишите таблицу в каком-либо виде. Не надо соревноваться с оптимизирующим синтезатором и вручную минимизировать логические функции. Синтезатор сделает это за вас и не хуже вас, поверьте. "Машина должна работать, человек -- думать". (девиз МежДелМаш)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Fillya сказал:

Для языков рановато, сначала на основе графического редактора отработать пару программ

Даже если применение лишь кнопки и светодиоды, всё равно языками сильно проще, а главное быстрее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Nick_K сказал:

Внимательный наплюдатель может заметить, что из таблицы истинности выплывает следующая функция для Y:

Требуется внимательность в квадрате, ибо таблица не полная, а

Цитата

Остальные комбинации нулевые

поэтому не Y = X2, а Y = X2 * ~X3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, adnega said:

Требуется внимательность в квадрате, ибо таблица не полная

Согласен. Просто на что было приведено пример - на то и ответил) Утром ещё не до конца подгрузилась внимательность)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...