Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Программируемая логика - это не так уж и сложно. Разберемся вместе.
MisterDi
Встал на лапы
Сообщения: 85
Зарегистрирован: Сб мар 13, 2010 13:52:10

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение MisterDi »

Спасибо, разобрлся уже несколько месяцев назад сам. Впрочем всё было на поверхности, стоило просто потратить час времени

Я в этом не сомневался, мое сообщение для тех, кто еще только собирается знакомится с Альтерой и этот вопрос встает в полный рост.
misterdi<@>i.ua
Аватара пользователя
wss60
Потрогал лапой паяльник
Сообщения: 350
Зарегистрирован: Пт сен 10, 2010 20:48:01
Откуда: Минск

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение wss60 »

Может, кто нибудь знает аналог счетчика CD4017 (К561ИЕ8) в quartus.
Пробовал переделать сдвиговый регистр, но он работает немного не правильно.
Вложения
wav.PNG
(11.15 КБ) 591 скачивание
dec.PNG
(30.77 КБ) 908 скачиваний
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение uldemir »

В приведённом вами даташите явно показано, что 4017 состоит из счетчика джонсона, а не просто сдвиговых регистров. Таким образом, там за такт перекидывается только один регистр, а не 2.

Хотя симуляция, и вправду, какая-то странная.
Аватара пользователя
wss60
Потрогал лапой паяльник
Сообщения: 350
Зарегистрирован: Пт сен 10, 2010 20:48:01
Откуда: Минск

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение wss60 »

Схема в даташите слишком замудреная, особенно если нужно расширить счетчик.
Подумал, что может есть готовое решение, оптимизированное под FPGA, но не нашел.
Не понятно, что не нравится симулятору – клок подается на все регистры одновременно!
В общем, остановился на таком варианте…
Вложения
dec2.PNG
(36.14 КБ) 900 скачиваний
Взявший Паяльник
Родился
Сообщения: 5
Зарегистрирован: Вт ноя 17, 2015 16:28:59

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Взявший Паяльник »

а как сам плис программировать какой нужен программатор?
prw07
Мучитель микросхем
Сообщения: 403
Зарегистрирован: Ср янв 26, 2011 17:00:30

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение prw07 »

Решил с целью повышения образованости поизучать ПЛИС. Ну и первый вопрос: зачем нужен редактор для xHDL, если все можно нарисовать в схемном редакторе?
Аватара пользователя
Vert Corbie
Родился
Сообщения: 9
Зарегистрирован: Пт мар 08, 2013 20:35:21

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Vert Corbie »

Добрый день коты. Изучаю vhdl. Столкнулся с такой проблемой.
Есть массив, допустим с именем pack_in из сигналов std_logic_vector (7 downto 0)
При попытке сравнить ячейку массива с числом в конструкции if

if (pack_in(7) = x"FF") then

компилятор ругается на эту строчку
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Грендайзер »

А Вы уверены, что компилятор именно на эту строку ругается? И если да, то точно ли у Вас имеется элемент массива под номером 7? И опять таки, если да, то какие у Вас там библиотеки подключены? И че вообще компилятор то пишет?
Аватара пользователя
Vert Corbie
Родился
Сообщения: 9
Зарегистрирован: Пт мар 08, 2013 20:35:21

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Vert Corbie »

Ругается точно на эту строчку. Если этот маленький блок if закоментить то компиляция проходит без ошибок.

if (pack_in(7) = х"FF") then
arp_flag <= '1';
end if;


Ошибку выдает - near text ""; exprcting ")" or ","

библиотеки
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.all;

Может быть запись сравнения с ячейкой как-то криво записана. Может вбще нельзя с ячейкой сравнивать, а надо перписать значение в отдельную переменную? И сравнивать с переменной. :shock:

Добавлено after 1 hour 33 minutes 3 seconds:
Вообщем действуя методом тыка :))) объявил x"FF" как переменную и сравнивал уже с ней
if (pack_in(7) = arp_ff) then
так проходит, что странно. По идее компилятор не должен видеть разницы в этих записях, однако видит
Chainik
Это не хвост, это антенна
Сообщения: 1430
Зарегистрирован: Ср янв 04, 2012 01:33:24

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Chainik »

Попробуйте закомментить строку USE ieee.numeric_std.all;
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Meteor »

Vert Corbie писал(а):библиотеки
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.all;

Тут может быть явный конфликт библиотек. В обычной жизни (особенно под квартус) достаточно всего двух:
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
logic_arith всегда конфликтовал с нумерик.
Так что оставьте только необходимые библиотеки
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
Vert Corbie
Родился
Сообщения: 9
Зарегистрирован: Пт мар 08, 2013 20:35:21

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Vert Corbie »

Грендайзер писал(а):Попробуйте закомментить строку USE ieee.numeric_std.all;

Тогда я массивом не смогу пользоваться по идее.


Meteor писал(а):Тут может быть явный конфликт библиотек. В обычной жизни (особенно под квартус) достаточно всего двух:
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
logic_arith всегда конфликтовал с нумерик.
Так что оставьте только необходимые библиотеки


Ясно. Остальные библиотеки это для операции сложения std_logic_vector. Вроде как он почему-то не может складываться напрмую и надо конвертировать в integer, складывать и конвертировать обратно.

А по поводу ошибки. Обозначил нужное число за переменную, сравниваю с ней, вроде не ругается. :lol:
variable arp_ff: STD_LOGIC_VECTOR (7 downto 0):= x"FF";

Всем спасибо :beer:
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Грендайзер »

Тогда я массивом не смогу пользоваться по идее.

Только в том случае если Вы компилятор сами писали и накрутили с три хрена...
Аватара пользователя
alex38779
Потрогал лапой паяльник
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32
Контактная информация:

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение alex38779 »

Как можно создать массив данных, например коды для семисегментника?

Делаю так, но когда присваиваю выводам индикатора то тупо горят все сегменты. Если присваиваю просто значение, то горят как надо.:

reg [7:0] num1 [0:7];
initial
begin
num1[0] = 8'b10101010;
num1[1] = 8'b01000000;
end
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Meteor »

alex38779 писал(а):Как можно создать массив данных, например коды для семисегментника?

Я бы попробовал так
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Грендайзер »

Я бы попробовал так

Мсье знает толк в подколах :))
А если серьёзно, то когда я разбирался с верилогом, то поразился тому факту, что инициализация многомерных массивов, вообще говоря в стандарте как таковая не прописана. В качестве учебной задачи, хотел написать генератор синуса. Так вот если у вас там не какой то аппаратный блочёк типа блочной памяти или что то в этом духе, то способ его инициализации, будит сильно зависеть от средств синтеза. Тот же Synplify к примеру, инициализирует такие массивы с помощью текстового файлика (причём помоиму исключительно командой $readmemb). Для меня в своё время это показалось какой то дикостью. :dont_know: Это после VHDL, в котором работа с подобными вещами продумана достаточно хорошо, начиная с инициализации и заканчивая доступом к единичному элементу. Впрочем насколько я понял в SV этот недуг отсутствует.
Sebastyan
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Пн янв 01, 2018 09:05:17

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Sebastyan »

Подскажите пожалуйста:

1)Есть ли у ножек Cyclone 4 да и других моделях токо-ограничивающие резисторы и где вообще можно эту информацию увидеть ?
2)Где можно вообще посмотреть информацию, к каким ножкам подключать питание и прочую "обвязку", для работоспособности ПЛИС ?

Сильно пожалуйста не пинайте за вопросы, я совершенно не разбираюсь в этом ....
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Meteor »

Sebastyan писал(а):1)Есть ли у ножек Cyclone 4 да и других моделях токо-ограничивающие резисторы и где вообще можно эту информацию увидеть ?

Токоограничивающих резисторов нет, есть возможность при назначении вывода указать/выбрать максимальный ток. Но там есть нюансы связанны с максимальным током банка.
Sebastyan писал(а):2)Где можно вообще посмотреть информацию, к каким ножкам подключать питание и прочую "обвязку", для работоспособности ПЛИС ?

Саму информацию о назначении выводов можно смотреть тут, выбрав нужную ПЛИС.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Sebastyan
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Пн янв 01, 2018 09:05:17

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Sebastyan »

[uquote="Meteor",url="/forum/viewtopic.php?p=3453675#p3453675"]Токоограничивающих резисторов нет, есть возможность при назначении вывода указать/выбрать максимальный ток. Но там есть нюансы связанны с максимальным током банка.[/uquote]

Это в самом Квартусе ?
Если не сложно, не могли бы Вы в самых общих чертах подсказать пожалуйста, что за ньюанс такой связанный с максимальным током банка ?
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них

Сообщение Meteor »

Да, в самом квартусе, точнее в пинпланере.
Что касается ограничения по току, то допустим есть возможность указать максимальный ток одного вывода 24 мА. В банке, допустим 20 выводов, и вдруг нам захотелось каждому выводу назначить 24 мА. Получим 480мА. Ограничения самого банка при этом 200 мА, получается перебор.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Ответить

Вернуться в «ПЛИС»