Важная информация

User Tag List

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

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

  1. #21
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    795
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    А этот дребезг на сигнале какое значение имеет: "0", "1", "х" или "z" ?
    Отличие дребезга от метастабильности в том, что дребезг -- это то 0 то 1 -- как на выходе металлических контактов, или при гонках в комбинаторной логике. А метастабильность -- это переходный процесс, когда мы на входе имеем не то 0, не то 1 и не можем решить. С чем именно мы тут имеем дело я не знаю, это легко может быть и то и другое сразу, но лучше считать, что это метастабильность. Значений x или z не существует в реальном железе. x может использоваться для обозначения неопределенности в симуляции. Все реальные сигналы 0, или 1. Для этой проблемы есть классическое решение -- добавление ТШ. Но если ТШ нет, то можно попробовать выкрутиться поджидая, пока сигнал не устаканится. То есть пока несколько чтений подряд не дадут одно значение.

    В обычном коде reg используется для регистров, а wire для комбинаторики. По клоку в reg записывается wire, или другой reg. Если придерживаться простых правил, то так всегда и будет. В Верилоге есть прорва оговорок и всяких не всегда, в них можно надолго погрязнуть и ничего полезного из этого не вынести. Этот язык правда древний, с ятями и твердыми знаками и самое смешное, что придуманный совсем не для того.
    Последний раз редактировалось svofski; 08.04.2022 в 16:19.
    Больше игр нет

  2. #22
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,998
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    А метастабильность -- это
    Пример.

    Для TTL логики то, что меньше (могу ошибится в числах, но не в этом суть) 0,4 вольт - это 0, а то, что больше 2.4 в - это 1. А вот всё то, что больше 0.4 и меньше 2.4 - это она самая, родимая.

    То есть если такой сигнал подать на вход логического элемента, скажем, НЕ - то на выходе может быть больше 2.4 В, а может быть меньше 0.4 В, а может плясать - то больше 2.4, то меньше 0,4. Всё зависит от входного значения и характеристик транзисторов внутри ЛЭ.

  3. #23
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    ... Значений x или z не существует в реальном железе. ... Все реальные сигналы 0, или 1. ...
    Но мы пока говорим о проекте на Альтере, и у меня срабатывает RS-триггер, на вход "С" которого заведён злополучный СБРОС.
    И я всё больше склоняюсь к мнению, что параллельно подключенный сканер не видит ни чего из-за того, что сканер мне показывает чисто двоичное состояние сигнала, а там ловлю метастабильность "х".
    Вот буквально на этой неделе штудировал (выдержки) :
    Verilog обрабатывает всего четыре значения переменной:
    1) “1” - логическая единица
    2) “0” - логический ноль
    3) “z” - состояние высокого импеданса
    4) “x” - неизвестное логическое состояние
    Далее:
    Если хотя бы один операнд равен х, то и результат всего выражения х.
    Далее:
    - переходы posedge: 0->1, 0->x, 0->z, x->1, z->1
    - переходы negedge: 1->0, 1->x, 1->z, x->0, z->0
    Значит, если представить себе ситуацию, что я ловлю на шине 0->х а потом обратно х->0 , то сканер ни чего мне не покажет, а RS-триггер честно отработает так как получит на управляющий вход последовательность posedge, negedge.

    Нужно детектор х-остояния придумать со счетчиком события, и смотреть, будут-ли сработки...
    Хотя скорее всего я ошибаюсь, и метастабильность тут ни при чём, и вообще выглядит она совсем по другому.
    Последний раз редактировалось KTSerg; 08.04.2022 в 19:59.

  4. #24
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,998
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Внутри возможны только 0 и 1, снаружи 0, 1 и z (только на выходном пине). x, по сути - когда нам наплевать на состоянии сигнала.

  5. #25
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    795
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    Пример семплера (со скидкой на то, что я не вериложил годы и не проверял)

    Код:
    reg [1:0] sample;
    always @(posedge clk) // все записи внутри этого блока происходят залпом параллельно по фронту clk
    begin
      sample[0] <= sample[1];             // переписали последний семпл в первый
      sample[1] <= metastable_input;  // сохранили текущее состояние в последний
    end
    
    wire stable_input <= sample[0] & sample[1];  // этот сигнал будет 1 когда два clk подряд на metastable_input будет 1
    Больше игр нет

  6. #26
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    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.

  7. #27
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    M9K - это SRAM

  8. #28
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  9. #29
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  10. #30
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    795
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В обычном Циклоне любого поколения по-моему нету вообще ничего энергонезависимого и ресурсоограниченного. В них все ячейки одного типа, просто в BRAM они организованы чтобы делать быструю память. И кстати иногда синтезатор задействует BRAM для совершенно небрамного вида исходников.

    Ограничение ресурса было в серии MaxII или как их там, которые ни рыба ни мясо — внутри больше похоже на FPGA, но при этом со встроенным загрузчиком. Маленькое но, которое не писали крупными буквами на рекламных проспектах: ресурс был на 100 (сто) перезаписей.

    Про кубики:

    Скрытый текст


    Электронные кубики это советский клон Gakken EX-System. У меня тоже такие были. Схемы из инструкции были интересные и работали хорошо и я его очень любил. Но в схемах при этом понимал мало, а сделать свою схему по книжке или еще откуда-нибудь в такой системе не сильно проще, чем вручную компилировать верилог в таблицы истинности и распихать по ячейкам в битстрим. Так что сравнение уместно. Хорошая идея для продвинутого хобби проекта — собрать верилог в кубики.

    Еще у меня был конструктор с пружинками, где кроме всего прочего были светодиод и фоторезистор. В качестве жестокой издевки предлагалось собрать "светотир", в котором пестик был бы с дохлой лампочкой от фонарика и непонятно из чего собранным коллиматором. Как же я обламывался. Все выпавшие из бабушкиных очков линзы были не той системы.

    Сейчас многие страдают мол вот было дааа, нонче то эх.. Но современная бредборда все равно лучше.
    [свернуть]
    Больше игр нет

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

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

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

Эту тему просматривают: 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

Ваши права

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