User Tag List

Страница 132 из 191 ПерваяПервая ... 128129130131132133134135136 ... ПоследняяПоследняя
Показано с 1,311 по 1,320 из 1901

Тема: ПЛИС и всё что с ними связано

  1. #1311
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    780
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Заборол я квартуса с этим синхронным ROM - http://zx-pk.ru/threads/26944-mechta...l=1#post906882
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  2. #1312
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    780
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как в схемном вводе назначить аттрибуты примитивам и сигналам?
    Квартус требует D-триггеру и сигналам, идущим на его асинхронные установку и сброс назначить аттрибут KEEP... (банальная защита от дребезга - и вдруг споткнулся на ровном месте...)
    Последний раз редактировалось LeoN65816; 08.04.2017 в 21:36.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  3. #1313
    Member
    Регистрация
    24.03.2008
    Адрес
    г. Рыбинск
    Сообщений
    123
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, тоже не смог разобраться, как это сделать через диаграммы. В verilog я бы просто поставил /* synthesis keep */ или /* synthesis preserve */ или /* synthesis noprune */ по необходимости.
    Последний раз редактировалось UA3MQJ; 09.04.2017 в 22:27.

  4. #1314
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,428
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    450 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    LeoN65816, мне что-то такое ругательство не встречалось. Чаще всего всплывает "...in clock paths which may be acting as ripple and/or gated clocks..." что из другой оперы. Вы не могли бы показать скриншот или скопировать текст?

  5. #1315
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    780
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Столкнулся с этим в своих тестах/демах, повторил в отдельном проекте - https://yadi.sk/i/OEIF1g833Gp2Ny.
    Классическая схема устранения дребезга контактов. На входах кнопок nPB1 и nPB2 и сброса nRST (все с замыканием на землю, у nRST внешние кондер с пуллапом) включены внутренние пуллапы, триггер формирует положительный фронт для мегафункции 4-разрядный синхронный счетчик.
    Репорт говорит, что занято 4, а не 5 регистров - https://yadi.sk/i/xTwpoz1W3Gp2zc. Там же ворнинг, что этот триггер преобразован в эквивалентную схему-защелку.
    Хэлп по этому ворнингу - https://yadi.sk/i/UykelaMT3Gp3QY. Вот здесь об этом и говорит.
    И что интересно - кнопки работают, фантомный триггер создает положительный фронт (и глитчи иногда проскакивают). И тикает только младший разряд счетчика! Остальные молчат... (на выходе 4 светика для индикации)
    Последний раз редактировалось LeoN65816; 10.04.2017 в 11:55.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  6. #1316
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,428
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    450 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Собрал твою схему:

    Тоже преобразовано:

    Что сказал RTL:

    Счетчик:

    Ячейка триггера:

    Ячейка счетчика (один из 4х битов):

    Все верно, в RS цепочке регистр не используется, только LUT (или LAB). поэтому 4 регистра. Что касается антидребезга, то наверное действительно лучше собирать RS триггер на элементах и стробировать его вторым по тактовой частоте. Тогда ячейка будет использовать не только LUT, но и сам триггер.

  7. #1317
    Member
    Регистрация
    24.03.2008
    Адрес
    г. Рыбинск
    Сообщений
    123
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как у вас все сложно. Я делаю вот так:



    //трех битный буфер
    reg [2:0] gate_buff;

    always @ (posedge clk50M)
    gate_buff <= {gate_buff[1:0],~key0};

    //буфферизированное значение
    assign GATE_D = (gate_buff == 3'b111);

    //положительный фронт
    assign GATE_POSEDGE = (gate_buff == 3'b011);

    //отрицательный фронт
    assign GATE_NEGEDGE = (gate_buff == 3'b110);

    Потратится 3 ячейки на кнопку.
    зы. ПЛИС вообще лучше программировать в синхронные схемы. В принципе, то же самое можно сделать и схемой. Вход кнопки подаете на вход, какого-нибудь D триггера. На клок - системный клок. С его выхода на еще один такой же триггер. Этого достаточно. Далее логика: если получилось 10 (в первом 1, во втором 0), значит нажали. Получится строб. А подавать кнопки в асинхронные схемы, как и вообще всё асинхронное - не рекомендуется, как бы. Плохо влияет на качество синтеза, плохо анализируется синтезатором, работает в железе не стабильно.
    Последний раз редактировалось UA3MQJ; 10.04.2017 в 13:50.

  8. #1318
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,428
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    450 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от UA3MQJ Посмотреть сообщение
    зы. ПЛИС вообще лучше программировать в синхронные схемы. В принципе, то же самое можно сделать и схемой. Вход кнопки подаете на вход, какого-нибудь D триггера. На клок - системный клок. С его выхода на еще один такой же триггер. Этого достаточно. Далее логика: если получилось 10 (в первом 1, во втором 0), значит нажали. Получится строб. А подавать кнопки в асинхронные схемы, как и вообще всё асинхронное - не рекомендуется, как бы. Плохо влияет на качество синтеза, плохо анализируется синтезатором, работает в железе не стабильно.
    ИЧСХ, сам же предлагаешь комбинаторику мешать с выходом. Да и не даст надежности именно твой пример. Правильное решение для перекидной кнопки (а так же для 2х кнопок ВКЛ-ВЫКЛ) будет немного другим. Сначала перевод в тактовый домен (можно сказать семплирование) посредством все того же, например, трехбитного регистра сдвига. А затем переключение выходного триггера по состоянию (внутри синхронного always блока):
    if (gate_buff[2:0] == 3'h0) ClkReg <= 1'b1; else if (gate_buff[2:0] == 3'h7) ClkReg <= 1'b0;
    Схема будет похожа на те, что я приводил в разделе про Денди на FPGA.

  9. #1319
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    780
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    UA3MQJ, твой код прекрасно ловит и пропускает в систему дребезг контактов, но не устраняет!
    "Игра" с длиной сдвигового регистра и частотой сэмплирования не поможет, а наоборот, может привести к тому, что будет пропускаться событие нажатия/отпускания...

    Цитата Сообщение от UA3MQJ Посмотреть сообщение
    зы. ПЛИС вообще лучше программировать в синхронные схемы.
    Дык, я уже который раз подчеркиваю, что я всеми конечностями за это. И стараюсь делать именно синхронные схемы. Но в данном случае нужно перекидной кнопкой (переключателем) инкрементировать счетчик (или, допустим, делать шаг чего-то), и, IMHO, только асинхронный RS-триггер в таком включении позволяет гарантированно задавить дребезг...
    Я не всезнайка, может я ошибаюсь, может кто-то и подскажет другое решение, гарантирующее подавление дребезга.
    А может все же кто-нибудь подскажет, как в схематике назначать аттрибуты...
    Последний раз редактировалось LeoN65816; 10.04.2017 в 14:55.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  10. #1320
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,428
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    450 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    LeoN65816, встроенным примитивам, вроде, нельзя. Но ты всегда можешь создать свой примитив на верилоге или VHDL и кактус тебе услужливо создаст к нему схемный символ. С нужными атрибутами и прочим блекджеком.

Страница 132 из 191 ПерваяПервая ... 128129130131132133134135136 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ДВК (и всё, что с ними связано)
    от Grand в разделе ДВК, УКНЦ
    Ответов: 4539
    Последнее: 25.05.2024, 14:25
  2. Ответов: 1187
    Последнее: 22.12.2023, 20:53
  3. PAL/GAL и все что с ними связано.
    от Mick в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 487
    Последнее: 01.12.2023, 00:30
  4. SMUC на дискретах и ПЛИС
    от spensor в разделе Scorpion
    Ответов: 844
    Последнее: 15.05.2023, 12:31
  5. Вопрос по ПЛИС
    от Zloy в разделе Несортированное железо
    Ответов: 23
    Последнее: 17.10.2015, 17:12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •