Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
Набрался наглости и решил создать эту тему.
Корректно ли использовать логические операторы в VHDL , типо and , or , xor вне процесса. Компилируется то оно компилируется , а с задержками может быть беда ?
Корректно ли использовать логические операторы в VHDL , типо and , or , xor вне процесса. Компилируется то оно компилируется , а с задержками может быть беда ?
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
Если вы на этих and, or, xor не пытаетесь создать регистры, то не вижу смысла заботиться о задержках. Хотя, надо понимать, что задержки будут в любом случае и их величина зависеть будет от того, в сколько макроячеек (для CPLD) эта логика уложится. Если это критично - PostFit симуляция для проверки.
А так это нормальная практика, по моему. В процессе крутятся счетчики, а на выход идут результаты этих счетчиков через небольшую логику.
А так это нормальная практика, по моему. В процессе крутятся счетчики, а на выход идут результаты этих счетчиков через небольшую логику.
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
Спасибо.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
Не в тему задержек. Если вдруг Вам приспичит проверять синтез в том же моделсиме, а проверяемая конструкция будет иметь вид
то данная конструкция не отработается, хотя среда проектирования (например квартус) ее вполне переварит.
Код: Выделить всё
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... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
Всем привет. Почему моделирование прошивки в ISim , ISim больше 1.26 Us не позволяет. Останавливает моделирование.
Как можно вылечить данный недуг ?
Как можно вылечить данный недуг ?
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
Всем привет. Пишу код на VHDL по вычислению CRC8 принятых данных по rs232
Что неправильно в этой записи?
На сайте http://outputlogic.com/?page_id=27 сгенерировал vhdl код CRC8 для полинома 0x31, работает, что у меня неправильно не понимаю (((((
Код: Выделить всё
--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, работает, что у меня неправильно не понимаю (((((
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
У меня так:
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 с входными данными тоже
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 ) и прошивки на них
Это робит ? 
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
Это из совершенно работоспособного проекта - измерение температуры далласовским 1-wire датчиком ds18x20/22
Последний раз редактировалось uldemir Вт окт 15, 2013 17:26:25, всего редактировалось 1 раз.
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
Спасибо.
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
- Грендайзер
- Мучитель микросхем
- Сообщения: 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);
На такую запись компилятор ругается, присвоение векторов в заданном изначально направлении ему подавай!
Вот я и задумался, а как так сделать то, что б за один такт? Можно конечно написать : А(0) <= B(7), A(1) <= B(6)..... Можно и так A <= B(7) & B(6) & B(5)... Но эт хорошо, если битов 8 а если 128? Есть конечно всякие операторы сдвигов и т.п. но что там компилятор наразводит реализуя их использовании я не знаю.... Вот может кто подскажет?
В : std_logic_vectrjr(3 downto 0). И надо мне вот чё :
A(7 downto 0) <= B(0 to 7);
На такую запись компилятор ругается, присвоение векторов в заданном изначально направлении ему подавай!
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
for I in 7 downto 0 loop
A(I) <= B(7-I);
end 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 ) и прошивки на них
Вот в чём весь и прикол. ОТДЕЛАЕШЬСЯ один тактом.
Я раньше тоже не понимал. Тут for .... loop , это не тот for как допустим в си/с++ . В данном случаем компилятор VHDL из :
Сделает вот так:
Есть неплохая книжка. Называется FPGA Express, там про это написано.
Я раньше тоже не понимал. Тут 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 ) и прошивки на них
Вот вырезки из книги.
- Вложения
-
- Снимок.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 ) и прошивки на них

"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов
- WolfTheGrey
- Потрогал лапой паяльник
- Сообщения: 370
- Зарегистрирован: Вс май 06, 2012 09:58:33
- Откуда: Магадан
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
День добрый. Посоветуйте порядок действий перепрошивания плисины.
Плис не новая, и в ней уже имеется прошивка. Я подкорректировал проект, и снова залил прошивку в плис. С тех пор она какую то бредятину показывать стала. (запрыгали сигналы на тех пинах, где их не должно быть, и все пины перепутались.) Хотя прошивка самой плисины работает как надо (правильно суммирует и подает в нужной последовательности импульсы)
Плис не новая, и в ней уже имеется прошивка. Я подкорректировал проект, и снова залил прошивку в плис. С тех пор она какую то бредятину показывать стала. (запрыгали сигналы на тех пинах, где их не должно быть, и все пины перепутались.) Хотя прошивка самой плисины работает как надо (правильно суммирует и подает в нужной последовательности импульсы)
- dimitriy91
- Вымогатель припоя
- Сообщения: 619
- Зарегистрирован: Ср июн 08, 2011 15:37:56
- Откуда: ДВ
Re: Мелкие вопросы по ПЛИС ( FPGA/CPLD ) и прошивки на них
Начнём с того, что в ПЛИС прошивка храниться не может. А то, что пины не тезапрыгали, то надо в PlanAhead правильно всё указать. Какой производитель ПЛИС , хотя бы сказали ?! Я так понял речь идёт о старом стенде ?
"Ленивый человек в бесчестном покое сходен с неподвижною болотною водою, которая, кроме смраду и презренных гадин, ничего не производит". М.В. Ломоносов