Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

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

Пт окт 04, 2013 15:21:11

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

Корректно ли использовать логические операторы в VHDL , типо and , or , xor вне процесса. Компилируется то оно компилируется , а с задержками может быть беда ?

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

Пт окт 04, 2013 17:31:17

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

А так это нормальная практика, по моему. В процессе крутятся счетчики, а на выход идут результаты этих счетчиков через небольшую логику.

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

Пт окт 04, 2013 17:38:09

Спасибо.

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

Пт окт 04, 2013 22:13:17

Не в тему задержек. Если вдруг Вам приспичит проверять синтез в том же моделсиме, а проверяемая конструкция будет иметь вид
Код:
D1:name_component
PORT MAP(
clk=>clk,
A=> Ain,
B=>sign1 and sign2,
C=>sign3 or sign5,
D=>sign4 xor sign2 and sign5)

то данная конструкция не отработается, хотя среда проектирования (например квартус) ее вполне переварит.

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

Сб окт 05, 2013 14:01:57

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

Как можно вылечить данный недуг ?

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

Вт окт 15, 2013 14:17:39

Всем привет. Пишу код на 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, работает, что у меня неправильно не понимаю (((((

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

Вт окт 15, 2013 17:20:36

У меня так:
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 раз.

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

Вт окт 15, 2013 17:22:03

Это робит ? :))

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

Вт окт 15, 2013 17:24:56

Это из совершенно работоспособного проекта - измерение температуры далласовским 1-wire датчиком ds18x20/22
Последний раз редактировалось uldemir Вт окт 15, 2013 17:26:25, всего редактировалось 1 раз.

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

Вт окт 15, 2013 17:25:45

Спасибо.

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

Сб окт 19, 2013 12:11:39

Товарищи коты, такой вопрос. Впринципе знаю вхдл довольно неплохо (как мне казалось). Но тут наткнулся на вот такую дурацкую штуку а именно: есть 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? Есть конечно всякие операторы сдвигов и т.п. но что там компилятор наразводит реализуя их использовании я не знаю.... Вот может кто подскажет?

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

Сб окт 19, 2013 12:31:25

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

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

Пн окт 21, 2013 07:23:22

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

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

Пн окт 21, 2013 09:09:54

Вот в чём весь и прикол. ОТДЕЛАЕШЬСЯ один тактом.
Я раньше тоже не понимал. Тут 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, там про это написано.

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

Пн окт 21, 2013 09:13:55

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

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

Пн окт 21, 2013 09:16:31

Вот вырезки из книги.
Вложения
Снимок.PNG
(33.22 KiB) Скачиваний: 918
Снимок2.PNG
(72.78 KiB) Скачиваний: 561

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

Пн окт 21, 2013 09:28:30

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

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

Пн окт 21, 2013 09:29:29

:beer:

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

Чт ноя 07, 2013 16:14:23

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

Плис не новая, и в ней уже имеется прошивка. Я подкорректировал проект, и снова залил прошивку в плис. С тех пор она какую то бредятину показывать стала. (запрыгали сигналы на тех пинах, где их не должно быть, и все пины перепутались.) Хотя прошивка самой плисины работает как надо (правильно суммирует и подает в нужной последовательности импульсы)

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

Чт ноя 07, 2013 16:37:12

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