User Tag List

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 42

Тема: Результаты сканирования шин Вектора

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    RS-триггер можно симулировать защелкой, но не надо так делать. В физической Альтере нет RS-триггеров. Есть блоки в которых реализуется небольшая табличка истинности + D-триггер с асинхронным сбросом (на самом деле конечно сложнее, но это вполне по-моему убедительная модель). Вся комбинаторика синтезируется через таблицы, результаты фиксируются в регистрах по клоку.

    В дополнение к тому, что сказал Hunta - x бывает используется как состояние при сравнении и в case, тогда x -- это "наплевать". Но это не то же самое, что состояние x в симуляции. В симуляции x -- это заразная неопределенность, эквивалент NaN в плавающей точке. Фраза "Если хотя бы один операнд равен х, то и результат всего выражения х" имеет смысл только в симуляции. Так же как 155ла3 не может иметь состояние "х", так не могут иметь состояние "х" и сигналы в Альтере.
    ...
    То, что Альтера всё делает на ячейках/таблицах - я давно понял. Соответственно, я понимаю, что в Альтере нет физически (принимающих участие в генерации схемы) ни каких логических элементов или регистров, триггеров, и прочего в классическом понимании как в обычных микросхемах. Вся логика на ячейках памяти и таблицах истинности. Может только в интерфейсной части, но нас это на данный момент не интересует. Это всё мне понятно.

    RS-триггер, уменя в принципе и есть D-триггер со сбросом, взят из примеров.

    С "х" понятно... отловить метастабильность используя "х" не получится, а жаль, такая идея пропала

    Вообще идея и логика ПЛИС мне стала понятна практически сразу.
    Она мне напомнила электронный конструктор, который был у меня в детстве. Он состоял из маленьких пластиковых кубиков, на которых сверху был нарисован элемент (резюк, кондёр, транзистор, ...), а по бокам контакты.
    Собираешь эти кубика в коробке, получаешь схему.
    Идея такая-же как и в верилоге/ПЛИС.
    Есть "модули" у них есть входные/выходные параметры - боковые контакты кубиков, заполнил модули функциями, накидал модули, проследил, чтобы "контакты" совпадали - и получил "схему".
    И по идее, что там в ПЛИСе негенерировалось внутри кубиков (модулей) - до лампочки, главное, что-бы "функция" правильно была написано. Такие себе "чёрные ящики" - не имеющие отношения к реальным микросхемам, т.к. вся логика функций генерируется на таблицах истинности в ячейках памяти.
    Как-то так... с моей точки зрения.
    Может это и не очень правильное сравнение, но у меня именно такие ассоциации.

    Если вернуться к сканированию.
    Не видел технического описания Альтеры на русском языке, на буржуйском могу только общий смысл и то со словарём
    Мне интересно, есть ли у М9К ресурс циклов чтения/записи ?
    Уперся на сканере в ситуацию, что нужно ловить "момент сбоя", и видеть, что ему предшествовало, а он (момент) может наступить когда угодно.
    Соответственно, нужно делать как в обычных логгерах - начинать сканировать заранее, и закольцевать буфер записи, в момент наступления события - разрывать кольцо, и будем иметь семплы предшествующие интересующему событию - увидим ситуацию приведшую к сбою.
    Но боюсь, что постоянная запись в М9К, в ожидании события, может сожрать ресурс циклов чтения/записи.
    М9К - т.к. на борде нет внешней SRAM/SDRAM.
    Так-что вопрос о наличии ресурса М9К, для меня - актуален.
    Последний раз редактировалось KTSerg; 09.04.2022 в 07:51.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Пример семплера (со скидкой на то, что я не вериложил годы и не проверял)
    Не надо так делать. Наличие элемента "И" порождает комбинаторный путь для потенциально метастабильного сигнала. Правильно так:

    Код:
    reg [1:0] sample;
    wire stable_input;
    ...
    always @(posedge clk)
    begin
      sample <= {sample[0], metastable_input};
    end
    
    assign stable_input = sample[1];  // пустышка чисто для наглядного оформления исходника; можно сразу использовать sample[1]

  4. #3

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sandro, так вроде просто задержка получается?
    Больше игр нет

  5. #4

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Sandro, так вроде просто задержка получается?
    А мне кажется, при логическом "И" - будет задержка переднего фронта, а спад - без задержки.
    Если сделать логическое "ИЛИ" - будет передний фронт вовремя, а спад с задержкой.
    Мне так кажется...

    С логическим "И" - для RAS/CAS подойдёт, т.к. актуален спад, а вот для "ЧТЗУ" задержка фронта может быть чревата последствиями, для него "ИЛИ" - безопаснее, т.к. фронт важен.

    Хотя могу и ошибаться.

    Вообще пока не могу понять как логическая операция может стать источником метастабильности...
    Или имеется в виду, что метастабильный параметр в выражении, может "без мыла" дальше пролезть...
    Последний раз редактировалось KTSerg; 10.04.2022 в 19:40.

  6. #5

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Вообще пока не могу понять как логическая операция может стать источником метастабильности...
    Или имеется в виду, что метастабильный параметр в выражении, может "без мыла" дальше пролезть...
    В моем варианте логическая операция между двумя регистрами. Метастабильный сигнал переписывается в регистр по клоку. Чем опасна операция "И" между двумя регистрами без дополнительных комментариев пока не понятно.

    - - - Добавлено - - -

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Не только. Это стандартная схема перевода сигнала из одного в другой тактовый домен. Так надо делать не только со внешними сигналами, но и со внутренними, которые идут между блоками с разным тактированием. А ещё, такая схема позволяет отлавливать перепад любой полярности, складывая по И оба регистра ((sample[1] & ~sample[0]) | (~sample[1] & sample[0])).
    Для перехода в другой клоковый домен понимаю, FIFO это хорошо. Для устранения метастабильного дребезга по-моему этого не будет достаточно.

    (про запись сдвига в одну строку итд поддерживаю)
    Больше игр нет

  7. #6
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    Не надо так делать. Наличие элемента "И" порождает комбинаторный путь для потенциально метастабильного сигнала.
    Если этот сигнал не является сигналом чувствительности другого always блока а используется внутри того же, то пофигу, это раз. Второе, лучше указывать полный вектор явно, чтобы потом не ловить граблей из-за обратного порядка или других проблем. Правильно писать вот так: sample[1:0] <= {sample[0], metastable_input}; Заодно синтезатор будет ругаться, если вдруг где-то ошибёшься с размерностью.
    Цитата Сообщение от svofski Посмотреть сообщение
    Sandro, так вроде просто задержка получается?
    Не только. Это стандартная схема перевода сигнала из одного в другой тактовый домен. Так надо делать не только со внешними сигналами, но и со внутренними, которые идут между блоками с разным тактированием. А ещё, такая схема позволяет отлавливать перепад любой полярности, складывая по И оба регистра ((sample[1] & ~sample[0]) | (~sample[1] & sample[0])).
    Цитата Сообщение от KTSerg Посмотреть сообщение
    Вообще пока не могу понять как логическая операция может стать источником метастабильности...
    Или имеется в виду, что метастабильный параметр в выражении, может "без мыла" дальше пролезть...
    Чтобы это понять, нужно почитать буквари на ПЛИС. И осознать тот факт, что фиттер будет располагать элементы там, где ему вздумается (кроме случаев ручного раскроя - да, ПЛИСоводы 80 уровня и в такое умеют). А значит, пути прохождения сигналов по интерконнекту могут настолько отличаться, что задержка распространения одного сигнала относительно другого породит иголку. Когда всякие новички пишут без познания дзена по строго синхронному дизайну а потом жалуются, что их проект работал, а после добавления ещё одного кусочка перестал работать или стал сбоить, но после добавления ещё одного опять стал вроде как работать - это оно и есть. И так делать не надо.
    Последний раз редактировалось HardWareMan; 10.04.2022 в 21:39.

  8. #7

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Если этот сигнал не является сигналом чувствительности другого always блока а используется внутри того же, то пофигу, это раз.
    Нихрена не пофигу. Метастабильность прекрасно распространяется сквозь комбинаторную логику. Особенно,через КМОП, поскольку она (почти) симметрична.

    Мне как-то реально пришлось разгребать последствия такого вот заблуждения, когда разработчик не защитил от метастабильности вход UART, "поскольку метастабильность бывает только из-за медленно меняющихся сигналов, а у меня там триггер Шмитта!" Цитата дословная, запомнил ниазусть. Разумеется, это чушь, а ошибка вылазила совсем в другом месте, на шин процессора сыпался мусор. Метастабильность просачивалась через автомат состояния предатчика в автомат управления шиной, и привет.

    Поэтому -- два триггера последовательно, стабильное значение брать с выхода второго. Выход первого нестабилен. Был бы он стабилен -- второй триггер был бы не нужен.

  9. #8

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,388
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,366
    Поблагодарили
    1,316 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    M9K - это SRAM

  10. #9

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    M9K - это SRAM
    Т.е. за ресурс циклов записи можно особо не беспокоиться?

  11. #10

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,388
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,366
    Поблагодарили
    1,316 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    За ресурс отдельно M9K я бы не беспокоился. Если поискать в даташитах, то возможно где-то есть официальная гарантированная длительность работы Циклона (десятки лет?).

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 10
    Последнее: 14.12.2016, 22:46
  2. Ответов: 4
    Последнее: 24.03.2016, 21:26
  3. Нагрузочная способность шин Z80
    от KeKc в разделе Для начинающих
    Ответов: 3
    Последнее: 06.06.2014, 18:52
  4. ламерский вопрос о временных диаграммах шин Z80
    от boo_boo в разделе Несортированное железо
    Ответов: 3
    Последнее: 30.01.2006, 13:14

Ваши права

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