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

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

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

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

Здравствуйте, всех с праздником :beer:
Взялся тут за ниос, в связи с чем возник вопрос. Какие компоненты необходимы в системе, что бы произвести отладку проекта?
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

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

Сообщение uldemir »

Есть вопрос. Делаю дешифратор, но мне нужно один сегмент не выводить, т.е. пропустить:

Код: Выделить всё

vlamp1 <= not (digit_0 (6 downto 4) & digit_0 (2 downto 0)) when "0000",

Но проблема в том, что digit_0 определён как

Код: Выделить всё

constant digit_0:std_logic_vector := "0111111";

Получаю такое сообщение об ошибке:
ERROR:HDLParsers:807 - "C:/ISE/censored.vhd" Line 354. digit_0 can not be used with range downto.
Переопределять константы не хочется. Очень.
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

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

Сообщение РадиоЛоматель »

uldemir писал(а):vlamp1 <= not (digit_0 (6 downto 4) & digit_0 (2 downto 0)) when "0000",

vlamp1 <= not (digit_0 (4 to 6) & digit_0 (0 to 2)) when "0000"
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

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

Сообщение uldemir »

Не получается. при компиляции ругани нет, но на индикаторе каша.

Попробовал vlamp1 (5 downto 0) переопределить как vlamp1 (0 to 5) - всё-равно каша. Но в этом случае, уже сам не понимаю почему. Выводы то vlamp1(0) как был подключен к сегменту A - так и остался.
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

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

Сообщение РадиоЛоматель »

Если получается каша - то проще уже подсоединить все разряды по отдельности руками к промежуточной переменной, а к ней уже применить where. Благо, разрядов у вас всего 7 штук. Кажется, здесь уже обсуждалась похожая проблема, только для верилога.
То есть сделать как-то так:

Код: Выделить всё

tmp <=  (digit_0 (0) & digit_0 (1) & ...) 
vlamp1 <= not (tmp) when "0000"
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

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

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

uldemir писал(а):Не получается. при компиляции ругани нет, но на индикаторе каша.

А Вы в железе прям что ль отлаживаете? Может ноги попутали?
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

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

Сообщение uldemir »

Отлаживаюсь, да, в железе. Ноги не попутал. До этого всё работало правильно. Но тут мне понадобился еще один сигнал, и я решил его занять у одной цифры сегмент D. Так как это часы и в том разряде отображаться будут только цифры от 0 до 5, то я могу сегмент A соединить с сегментом D, и один ключ я могу использовать для своих нужд. Вот теперь и думаю, как эту дырку написать.
РадиоЛоматель писал(а):то проще уже подсоединить все разряды по отдельности
Да, мне пришла аналогичная мысль. И даже промежуточная переменная не нужна. Только будет несколько растянуто. Но, еще и хочется понять, почему так. Пока соединял так сигналы - всё получалось правильно. Я же так сдвиговые регистры делаю. Стоило с константой попробовать - фокус уже не проходит. Может описание константы другое нарисовать?

О, нашел! Действительно описание константы имело значение:
constant digit_0:std_logic_vector(6 downto 0) := "0111111"; -- работает
constant digit_0:std_logic_vector := "0111111"; -- не работает в данном конкретном случае...
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

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

Сообщение Meteor »

uldemir писал(а):Но проблема в том, что digit_0 определён как
Код:
constant digit_0:std_logic_vector := "0111111";

Получаю такое сообщение об ошибке:

Так может все гораздо банальнее? У Вас вектор размерностью 1(по коду представленному), объявите его

Код: Выделить всё

digit_0:std_logic_vector (6 downto 0):= "0111111"
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

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

Сообщение uldemir »

Да, именно так проблема и разрешилась. Смотреть предыдущее сообщение.
Но не доходит почему не было проблемы с тем описанием до этого? Другие разряды описанные как

Код: Выделить всё

           vlamp0   : out   STD_LOGIC_VECTOR (6 downto 0);
Нормально присваивалась эта константа с неправильным размером и всё отображалось правильно.

Код: Выделить всё

   vlamp0              <= not digit_0 when "0000",
Правильно, пока не начал добавлять (6 downto..). Пока не доходит мне этот нюанс. Если бы оно сразу выругалось или отображало бы не правильно - сразу заметил бы что пропустил в описании. Впредь буду осторожнее с этими вещами.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

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

Сообщение Meteor »

Я так понимаю, в том чтоб объявить вектор размерностью 1 единицу, никакой крамолы нет. А вот когда из этого вектора пытаются получить, с добавкой, вектор больше чем добавка+размерность вектора - все и рушится.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

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

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

Сообщение Meteor »

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

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

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

Здравствуйте коллеги. Такая тут история в общем... Надо на плисине сделать проектик. Вообщем то не сложный, но и времени мало да и зачем самому что то делать когда в ообщем... "Всё украдено до нас" (с). Так вот, по поводу "украдено" если бы я, разумеется чисто теоретически, захотел бы... как это - воспользоваться ниосом который ограничен временем, в полной мере без покупки лицензии :oops: Лазил тут по великому и ужасному rutreker но ничего не вышло, может кто поделится опытом в экспроприации. Да здравствует революция мирового пролитариата :beer: :kill:
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

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

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

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

пфффф... печалька :? Ну альтеровцев вроде на сайте полно, может у кого получилось
asda
Родился
Сообщения: 3
Зарегистрирован: Чт май 01, 2014 15:15:51

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

Сообщение asda »

ПОДСКАЖИТЕ! Как записать байт в ПЗУ из программы? :dont_know: Или другой способ, чтобы выкл-вкл устройства можно было обратиться к этому байту и он был сохранен? :beer:
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

CORE IP в помощь.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
MisterDi
Встал на лапы
Сообщения: 85
Зарегистрирован: Сб мар 13, 2010 13:52:10

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

Сообщение MisterDi »

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

самый простой путь - в файле sys_cpt.dll заменяются 3 байта. Для каждой версии - свои. Далее берется лицензионный файл и в нем после hostid= записывается МАС-адрес сетевой карты. Шаблон лицензионного файла или генератор можно найти на рутрекере, адреса по которым нужно менять байты - на электрониксе. Если нужно подробнее - в личку.
misterdi<@>i.ua
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

Народ, если кому то нужны небрендовые и брендовые стенды с плис, мк и тд , недорого - пишите в личку, договоримся.
Помимо этого есть еще масса других товаров, так же почти за даром!!!
Последний раз редактировалось dimitriy91 Вт авг 12, 2014 16:28:31, всего редактировалось 1 раз.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

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

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

MisterDi писал(а):Возможно и не актуально, но вопрос частый
как это - воспользоваться ниосом который ограничен временем, в полной мере без покупки лицензии

самый простой путь - в файле sys_cpt.dll заменяются 3 байта. Для каждой версии - свои. Далее берется лицензионный файл и в нем после hostid= записывается МАС-адрес сетевой карты. Шаблон лицензионного файла или генератор можно найти на рутрекере, адреса по которым нужно менять байты - на электрониксе. Если нужно подробнее - в личку.

Спасибо, разобрлся уже несколько месяцев назад сам. Впрочем всё было на поверхности, стоило просто потратить час времени. :))
PS
Надо признать что даже не самый навороченый ниос, куда проворнее басяцкого! Впрочем чего ещё от капиталистов ожидать :kill:
Ответить

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