Список разделов Flyback.org.ru » не HV » ПЛИС-ы
Тему сейчас просматривают - зарегистрированных: 0, скрытых: 0 и гостей: 0
Зарегестрированные - Нет
Ответить с цитатой

AlexDark
CyberGoth


На это вопрос скорее всего тоже никто не ответит - как отключить синтез RAM при сдвиговом регистре больше 3 триггеров, а то RAM снижает такт почти на 100мег.

Добавлено: Wed Jun 20, 2018 12:28 pm
Ответить с цитатой

Abramov
 


А чего констрейнить надо?
Подключение к пинам это констрейн.
Расположение модулей на кристалле можно ограничить какими-то зонами.

Есть временные констрейны:
Там надо написать, что есть системный клок, как минимум.
Можно задать допустимые задержки, грубо говоря, каких-то сигналов относительно клока.
Если,например, есть некий интерфейс, выходящий наружу, надо для линий данных задать подобный констрейн относительно тактового сигнала этого интерфейса.
Можно запретить оптимизацию задержек каких-то путей через set false path, если это не нужно. Но не обязательно.
Вообще, если не делать чего сверх оптимизированного и ресурсоёмкого, там не особо надо много настраивать.

А про RAM непонятно. Что, если больше 3-х, то RAM делает?? Я конечно не большой специалист, но RAM блоки большие и просто так три триггера из них не сделать. Собственно, если надо RAM, блок используется целиком, а размер можно обрезать. При этом остаток нельзя использовать. Можно RAM сделать из триггеров, это да. Может, кучка триггеров называется RAM, но физически это те же триггеры, при чём здесь быстродействие?

Добавлено: Tue Jun 26, 2018 2:00 am
Ответить с цитатой

AlexDark
CyberGoth


Констрейнить надо для таймквеста.

Физически - да, триггеры, но в синтезаторе RAM синтезируется в виде блока с контроллером, и вот это все снижает Fmax

Добавлено: Tue Jun 26, 2018 9:00 am
Ответить с цитатой

AlexDark
CyberGoth


без особой надежды на ответ, но спрошу.
Есть плиска, тактовая частота 400МГц, на вход приходят импульсы, после синхронизатора имеются импульсы длительностью в 1 такт. нужно сделать так. чтоб каждый приходящий такой импульс включал светодиод на 10мс. дальше светодиодов этот сигнал не идет. Делать ЖМ на 400МГц получается слишком жирно (надо конвейризировать счетчик, потому что он слишком длинный), поэтому хочу сделать с низкой частотой в мегагерц 10-20, синхронной с основным тактом. Каким образом засинхрить эти клокдомены? Или как сделать без синхронизации если это возможно.

Добавлено: Tue Oct 02, 2018 4:36 pm
Ответить с цитатой

Dizel
Хаотично добрый эльф


спаять триггер на логике и на нем сделать расширитель импульса ?

Добавлено: Tue Oct 02, 2018 6:14 pm
Ответить с цитатой

AlexDark
CyberGoth


Это резервный вариант)

Добавлено: Tue Oct 02, 2018 7:30 pm
Ответить с цитатой

Анна
 


Наверно записывать этот синхронизированный импульс в промежуточный триггер, который тактируется основной частотой 400мгц, и запрещает дальнейшую загрузку в себя (вешается по обратке с выхода). Дальше уже от этого триггера грузится сигнал "пуск ЖМ" по такту низкой частоты, и по концу отработки ЖМ выдается возвратная команда на тот пром.триггер на его сброс, чем подготавливает его к новому циклу. Возможно еще нужен второй пром. триггер на эту обратную команду, чтобы ее запихнуть в домен 400мгц.

Хотя может я и туплю Smile

Добавлено: Tue Oct 02, 2018 7:53 pm
Ответить с цитатой

Доктор Зло
 


--VHDL
-- Некрасиво, но табуляция пробелами не выводится
if rising_edge(clk) then
if strobe = '1' then
cntr1 <= "0000000000";
cntr2 <= "0000000000000";
led_out <= '0';
else -- if strobe = '0'
cntr1 <= cntr1 + 1;
if (cntr1 = "0000000000") and (cntr2(12) = '0') then
cntr2 <= cntr2 + 1;
end if;
led_out <= not cntr2(12);
end if; -- if strobe = '0'
end if -- if rising_edge(clk)


400 MHz очень серьезная частота. Что за ПЛИС, если не секрет?

Добавлено: Tue Oct 02, 2018 8:26 pm
Ответить с цитатой

AlexDark
CyberGoth


4 циклон, я просто пишу код, чтоб максимальная частота держалась в районе 405-408МГц, в реальности скорее всего будет в районе 200, потому что разброс на входах сигналов скорее всего превысит 2.5нс, и будет в районе 3-4.

А можно закомментить код на VHDL или немного объяснить логику, а то я не совсем понимаю, что к чему. Строб - это какой сигнал?

Добавлено: Tue Oct 02, 2018 10:00 pm
Ответить с цитатой

Доктор Зло
 


strobe - тот самый однотактный сигнал, который надо расширить и увидеть светодиодом
led_out - выход на светодиод (1 - горит, 0 - не горит)
cntr1 - прореживающий счетчик
cntr2 - основной счетчик
Счетчик по разрядности разбит на два, чтобы работало быстрее
Для 10 мс требуется 4 млн циклов, это 22 разрядный счетчик, на 400 МГц работать не будет
Логический блок 4 циклона имеет (кажется) 6 входов, более ранние имели 4
Значит проверка 13-разрядного счетчика для счета по условию требует прохождения сигналов через 3-4 блока.
На 400 МГц не уверен, но на 250-300 будет работать

То же с комментами. Отступы сделать не могу, не получается

if rising_edge(clk) then
if strobe = '1' then -- по единичке автомат перезапускается
cntr1 <= "0000000000"; -- сброс прореживающего счетчика
cntr2 <= "0000000000000"; -- и основного счетчика
led_out <= '1'; -- правильнее даже так, уже можно сразу зажигать светодиод
else -- if strobe = '0' -- по нулю автомат работает
cntr1 <= cntr1 + 1; -- прореживающий счетчики считает постоянно
if (cntr1 = "0000000000") and (cntr2(12) = '0') then -- основной счетчик считает только в те моменты,
cntr2 <= cntr2 + 1; --когда обнуляется прореживающий, пока сам себя не запрет условием cntr2(12) = '1'
end if;
led_out <= not cntr2(12); -- ну а светодиод просто горит пока это не случится, а потом погаснет
end if; -- if strobe = '0'
end if -- if rising_edge(clk)

Добавлено: Tue Oct 02, 2018 11:33 pm
Ответить с цитатой

AlexDark
CyberGoth


Все, понял, спасибо. Красивое решение, сам не додумался.

По частоте - даже 2мкс счетчик работает близко к пределу по частоте.

Добавлено: Wed Oct 03, 2018 10:18 am
Ответить с цитатой

Vcoder
Магистр


Доктор Зло писал(а):
Некрасиво, но табуляция пробелами не выводится
Используй блок "Code", там пробелы и табы работают.

Добавлено: Wed Oct 03, 2018 6:55 pm
Ответить с цитатой

Электромонтёр
Экспериментатор


Народ, ткните мордой в простую и толковую книжку по верилогу с примерами устройств. Рисовать стало лениво, но простые модули на верилоге написал больше на основе примеров, чем с нуля.

Добавлено: Sun May 03, 2020 4:00 pm
Ответить с цитатой

Behram
 


Если совсем с нуля, то я бы начинал с «Цифровая схемотехника и архитектура компьютера» https://habr.com/ru/post/306982/ . Если в ней все понятно, то можно попробовать изучить "Логическое проектирование и верификация систем на SystemVerilog" https://dmkpress.com/catalog/electronics/cad/978-5-97060-619-3/

Добавлено: Sun May 03, 2020 4:11 pm
Ответить с цитатой

N1X
 


А чем марсоход не устраивает? Для старта вполне достаточно...

Добавлено: Sun May 03, 2020 5:54 pm
Ответить с цитатой

Электромонтёр
Экспериментатор


N1X писал(а):
А чем марсоход не устраивает? Для старта вполне достаточно...

Ну я как бы с марсохода и начал, не совсем всё очевидно, хотя ошибки вполне находятся, примеры компилируются и симулируются Smile Счётчики, дешифраторы, регистры, комбинаторная логика работают в симуляторе и в плисине. А вот сигма-дельта цап уже тупо из примера собирал, он меня зело порадовал - аналоговый сигнал после RC-фильтра на голову выше ШИМа.

Добавлено: Sun May 03, 2020 6:47 pm
Ответить с цитатой

N1X
 


Ну так примеры на начальном этапе, а дальше потихонечку по мере появления вопросов они гуглятся уже в других источниках, читаются статьи и т.д...

Добавлено: Sun May 03, 2020 9:08 pm
Ответить с цитатой

Электромонтёр
Экспериментатор


}{орошая, годная статья на хабре

Верилог буквально "на пальцах" - автор просто и понятно описал суть.

Добавлено: Tue May 05, 2020 6:46 pm
Ответить с цитатой

Behram
 


То же самое, что в книгах перечисленных выше не знаю

Добавлено: Tue May 05, 2020 7:24 pm
Ответить с цитатой

Ivani
 


Хочу попробовать поковырять ПЛИСы, из доступного на Али нашел EPM240T100C5N с комплектом для старта https://aliexpress.ru/item/1005001310801306.html и EPM3064ATC44 но тестовых плат под нее не нашел, она старее, содержит меньше элементов и стоит почти также как EPM240T100C5N.
Посоветуйте пожалуйста как начинать, может есть кучка простых примеров с разбором? Квартус 2 веб ставлю, более тормозного сайта и установщика не найти.

Добавлено: Tue Nov 24, 2020 10:38 pm
Ответить с цитатой

Электромонтёр
Экспериментатор


Я находил на торренитах восьмой и десятый квартус. У меня самодельная макетка под ЕРМ3064 сделанная в 2013 Smile К сожалению трассировка в лайауте давно проёбана... Но да, сейчас наверно лучше играться с ЕРМ240Т100 - ЕРМ3064 если только на первых порах руку набить.
Для МАХ3000 можно древний максплюс пользовать, но чтоб через юсббластер прошить нужен восьмой квартуспрограммер. Всё энто валяется на моём фтп

Добавлено: Wed Nov 25, 2020 5:46 am
Ответить с цитатой

N1X
 


Сейчас платка с четвертым циклоном и sdram копье стоит, лучше её вщять. Те же 3064 годятся под конкретный проект, ибо туда-сюда и ячейки закончились... для учебный проектов не гуд.

Добавлено: Wed Nov 25, 2020 7:18 am
Ответить с цитатой

Николай
 


А есть ли плисы в адекватных корпусах и не космическим числом выводов? 8...24 ноги и корпуса типа соика.
Делают же както китайцы всякие спецмикрухи на плисах

Добавлено: Wed Nov 25, 2020 8:53 am
Ответить с цитатой

Ivani
 


EPM3064ATC44 с 64мя макроячейками стоят порядка 80 р./шт., EPM240T100C5N с 240 макроячейками стоят около 90 р./шт., стартовый комплект EPM240T100C5N стоит от 640 р., Cyclone IV все стоит в несколько раз дороже и ячеек столько в обозримом будущем мне нафиг не нужно.

В первом проекте процом будет Атмега328, хочу всю мелкую логику упихать в плис и соединить с процом по и2ц.

Добавлено: Wed Nov 25, 2020 9:10 am
Ответить с цитатой

N1X
 


У lattice вроде что-то небольшое было, но один фиг там bga в основном...

Добавлено: Wed Nov 25, 2020 9:17 am
Список разделов Flyback.org.ru » не HV » ПЛИС-ы
На страницу Пред.  1, 2, 3, 4, 5  След.     Просмотр темы целиком



Лицензионное соглашение

(c)Flyback.org.ru
Российское общество любителей высоких напряжений.
Использование материалов с данного сайта и форума возможно только с разрешения администрации.