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

Программируемая логика - это не так уж и сложно. Разберемся вместе.
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

Набрался наглости и решил создать эту тему.

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

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

Сообщение uldemir »

Если вы на этих and, or, xor не пытаетесь создать регистры, то не вижу смысла заботиться о задержках. Хотя, надо понимать, что задержки будут в любом случае и их величина зависеть будет от того, в сколько макроячеек (для CPLD) эта логика уложится. Если это критично - PostFit симуляция для проверки.

А так это нормальная практика, по моему. В процессе крутятся счетчики, а на выход идут результаты этих счетчиков через небольшую логику.
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

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

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

Сообщение Meteor »

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

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

D1:name_component
PORT MAP(
clk=>clk,
A=> Ain,
B=>sign1 and sign2,
C=>sign3 or sign5,
D=>sign4 xor sign2 and sign5)

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

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

Сообщение dimitriy91 »

Всем привет. Почему моделирование прошивки в ISim , ISim больше 1.26 Us не позволяет. Останавливает моделирование.

Как можно вылечить данный недуг ?
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

Всем привет. Пишу код на VHDL по вычислению CRC8 принятых данных по rs232

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

--g(x)=x^8+x^5+x^4+1
crc8 := crc8(6)&crc8(5)&(crc8(4) xor crc8(7))&(crc8(3) xor crc8(7))&crc8(2)&crc8(1)&crc8(0)&(crc8(7) xor rs232_rx);


Что неправильно в этой записи?

На сайте http://outputlogic.com/?page_id=27 сгенерировал vhdl код CRC8 для полинома 0x31, работает, что у меня неправильно не понимаю (((((
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

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

Сообщение uldemir »

У меня так:
crc <= (crc(0) xor datain) & crc (7 downto 5) & (crc(4) xor crc(0) xor datain) & (crc(3) xor crc(0) xor datain) & crc(2 downto 1);
Короче, там где XOR с последним битом, там еще нужен XOR с входными данными тоже
Последний раз редактировалось uldemir Вт окт 15, 2013 17:23:20, всего редактировалось 1 раз.
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

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

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

Сообщение uldemir »

Это из совершенно работоспособного проекта - измерение температуры далласовским 1-wire датчиком ds18x20/22
Последний раз редактировалось uldemir Вт окт 15, 2013 17:26:25, всего редактировалось 1 раз.
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

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

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

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

Товарищи коты, такой вопрос. Впринципе знаю вхдл довольно неплохо (как мне казалось). Но тут наткнулся на вот такую дурацкую штуку а именно: есть 2 вектора А : std_logic_vectrjr(7 downto 0) и
В : std_logic_vectrjr(3 downto 0). И надо мне вот чё :
A(7 downto 0) <= B(0 to 7);
На такую запись компилятор ругается, присвоение векторов в заданном изначально направлении ему подавай! :evil: Вот я и задумался, а как так сделать то, что б за один такт? Можно конечно написать : А(0) <= B(7), A(1) <= B(6)..... Можно и так A <= B(7) & B(6) & B(5)... Но эт хорошо, если битов 8 а если 128? Есть конечно всякие операторы сдвигов и т.п. но что там компилятор наразводит реализуя их использовании я не знаю.... Вот может кто подскажет?
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

for I in 7 downto 0 loop
A(I) <= B(7-I);
end loop;
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

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

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

Да, мысль не плохая... только вот одним тактом в данном случае не отделаешься....
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

Вот в чём весь и прикол. ОТДЕЛАЕШЬСЯ один тактом.
Я раньше тоже не понимал. Тут for .... loop , это не тот for как допустим в си/с++ . В данном случаем компилятор VHDL из :

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

for I in 7 downto 0 loop
A(I) <= B(7-I);
end loop;


Сделает вот так:

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

A(7) <= B(0);
A(6) <= B(1);
A(5) <= B(2);
A(4) <= B(3);
A(3) <= B(4);
A(2) <= B(5);
A(1) <= B(6);
A(0) <= B(7);


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

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

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

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

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

Сообщение dimitriy91 »

Вот вырезки из книги.
Вложения
Снимок.PNG
(33.22 КБ) 1345 скачиваний
Снимок2.PNG
(72.78 КБ) 929 скачиваний
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

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

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

Ну что ж, dimitriy91, ModelSim показал, что эту битву ты выиграл, НО ВОЙНА ЗА МНОЙ :)) Всё действительно нормально работает, просто loop использую только в TEST_BENCHах не особо замарачиваясь над тем как он там выполняется... Вообщем спасибо, теперь усвою :))
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

:beer:
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Аватара пользователя
WolfTheGrey
Потрогал лапой паяльник
Сообщения: 370
Зарегистрирован: Вс май 06, 2012 09:58:33
Откуда: Магадан

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

Сообщение WolfTheGrey »

День добрый. Посоветуйте порядок действий перепрошивания плисины.

Плис не новая, и в ней уже имеется прошивка. Я подкорректировал проект, и снова залил прошивку в плис. С тех пор она какую то бредятину показывать стала. (запрыгали сигналы на тех пинах, где их не должно быть, и все пины перепутались.) Хотя прошивка самой плисины работает как надо (правильно суммирует и подает в нужной последовательности импульсы)
Аватара пользователя
dimitriy91
Вымогатель припоя
Сообщения: 619
Зарегистрирован: Ср июн 08, 2011 15:37:56
Откуда: ДВ

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

Сообщение dimitriy91 »

Начнём с того, что в ПЛИС прошивка храниться не может. А то, что пины не тезапрыгали, то надо в PlanAhead правильно всё указать. Какой производитель ПЛИС , хотя бы сказали ?! Я так понял речь идёт о старом стенде ?
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Ответить

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