User Tag List

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 42

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

  1. #11

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

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    А зря. Всё твое сообщение можно свести к фразе "у меня ничего не работает, почему -- не знаю".
    Именно так... Самую суть узрел...

    Цель проекта на Альтере, изучить потенциальную возможность реализовать "в железе" идею подключения внешней ПЗУ к разъёму ВУ, используя минимальное количество простых цифровых микросхем логики, используя минимум регистров.
    Именно по этой причине, экспериментирую исключительно с wire и assign. Так как есть у меня предположение, что любое использование конструкций типа "if" - приведёт к использованию компараторов, а конструкции типа reg и always - будут добавлять в схему дополнительные корпуса регистров.

    Альтера 100% тут не виновата. Ищи ошибки в проекте.
    ...
    Конечно железо не может быть виновато (если оно исправно).
    Не может ошибаться тот кто слепо выполняет инструкции, даже если в результате выдаёт результат, не тот которого ждали. Ошибся тот кто написал инструкции.
    Последний раз редактировалось KTSerg; 07.04.2022 в 06:57.

  2. #12

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

    По умолчанию

    KTSerg, повторюсь, ситуация с нечетким срабатыванием похожа на то, с чем сталкивался svofski в шадке. Можно попробовать полечить примерно аналогичным антидребезгом для сигналов с ВУ - детект первого изменения + некоторая задержка.

  3. #13

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    KTSerg, повторюсь, ситуация с нечетким срабатыванием похожа на то, с чем сталкивался svofski в шадке. Можно попробовать полечить примерно аналогичным антидребезгом для сигналов с ВУ - детект первого изменения + некоторая задержка.
    Пытаюсь. Но попытка перейти (для эксперимента) на предварительную запись всех входных сигналов в регистры, а потом на синхронизацию всех процессов через always, приводили к запаздыванию формирования БЛК и хаотичному сбою записи в ОЗУ Вектора. Это проявлялось в рваной загрузочной сетке, отображаемой кусками. А на сканах видно, что отключение БЛК запаздывает, и успевает начаться CAS, а потом он обрывается запаздавшим отключением БЛК.
    Так-что изучаю.
    Скорее всего нужно частоту синхронизации процессов в разы увеличивать...

  4. #14

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Скорее всего нужно частоту синхронизации процессов в разы увеличивать
    В шадке 96 МГц, если не путаю

  5. #15

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    В шадке 96 МГц, если не путаю
    Тут всё от оптимальности схемы зависит.
    У меня и при 100МГц не поспевало
    Спад CAS-а на 40-50нс опережал появление фронта отключения БЛК.
    А БЛК отключается по результату анализа слова состояния процессора, т.е. во время строба состояния.
    Но оптимизацией я и не занимался, накидал в кучу, поправил имена шин/регистров и в путь...

  6. #16

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Спад CAS-а на 40-50нс опережал появление фронта отключения БЛК.
    А БЛК отключается по результату анализа слова состояния процессора, т.е. во время строба состояния.
    Такт проца со словом состояния предшествует тактам обращения к памяти и для меня странно, как может возникнуть описанная ситуация. Разве что обработка слова состояния очень-очень-очень долгая (по меркам ПЛИС на частоте 100 МГц).

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

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

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

  8. #17

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Цель проекта на Альтере, изучить потенциальную возможность реализовать "в железе" идею подключения внешней ПЗУ к разъёму ВУ, используя минимальное количество простых цифровых микросхем логики, используя минимум регистров.
    Это понятно. Но, если ты не понимаешь, как кормпилируется верилог, то хотя бы код выложи, чтобы тебе показали основные проблемы. Иначе абсолютно непонятно, что сделано не так.

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Именно по этой причине, экспериментирую исключительно с wire и assign. Так как есть у меня предположение, что любое использование конструкций типа "if" - приведёт к использованию компараторов, а конструкции типа reg и always - будут добавлять в схему дополнительные корпуса регистров.
    Это неверно. В обе стороны. Даже в три, поскольку wire и reg -- вообще объявления проводов, а не логические конструкции. Триггер на assign делается, но так писать не принято. Хотя у новичков получаются паразитные триггеры в assign, бывает такое. If без компаратора -- без проблем. always без триггера -- пожалуйста.
    Так что -- код в студию.

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Конечно железо не может быть виновато (если оно исправно).
    Не может ошибаться тот кто слепо выполняет инструкции, даже если в результате выдаёт результат, не тот которого ждали. Ошибся тот кто написал инструкции.
    Код -- это и есть инструкции. Компилятору. Выкладывай код.

    Если хочешь, чтобы тебе помогли -- выкладывай код, а не ной, что ничего не работает.

  9. #18

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

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    ... поскольку wire и reg -- вообще объявления проводов,
    ...
    Так что -- код в студию.
    ...
    А какой смысл выкладывать код, если оказывается, что reg - это объявление провода, а не переменной (регистра) как я раньше думал.
    После получения такой важной инфы, мне сначала нужно переосмыслить всю концепцию проекта...
    Снова начну гуглить...
    If без компаратора -- без проблем. always без триггера -- пожалуйста.
    Мне известен и понятен факт, что одинаковый результат можно получить разными средствами/инструментами, и пользуясь одним инструментом можно получать разные результаты.

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

    Был в моей жизни опыт сдачи контрольных работ по Прологу и Лиспу.
    Препод дал задание, по его словам задача решалась вложенными циклами (инструментом данного языка программирования) программой в четыре строки.
    Видя, что я не понимаю концепции, мне были даны готовые три строки, осталось дописать одну строку программы...
    Я так и не понял кода программы, и написал свой код на три десятка строк, без вложенных циклов... Так как мой код выдавал правильный результат, то зачет я получил, хотя и не проникся прелестью инструментария этих языков.
    Замечу, что данной историей я не горжусь. На месте препода, я бы в такой ситуации зачёт не поставил, так как контрольная была по программированию на Лиспе/Прологе (не помню уже точно которому из них), а не на линейном языке.
    [свернуть]
    Последний раз редактировалось KTSerg; 08.04.2022 в 06:59.

  10. #19

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    А какой смысл выкладывать код, если оказывается, что reg - это объявление провода, а не переменной (регистра) как я раньше думал.
    Память, то есть все регистры, работает по клоку. Клок в ПЛИС принято делать синхронным, один общий клок на весь проект. Никакие делители клоков как в традиционных схемах на 155ла3 недопустимы. Переходы между разными клоками возможны, но это боль. Лучше оставить это крутым профессионалам. Если есть входящие сигналы типа как у Вектора, мы их фактически семплируем. Отсюда всякий антидребезг.

    Что до регистров и проводов, то все просто на самом деле.

    Если есть описание процесса на клоке (always @(posedge или negedge)), присваивания внутри этого процесса происходят по тактирующему сигналу, или асинхронному сбросу. Левая часть оператора присваивания синтезируется в настоящий железный регистр, а на вход CLK и nRESET ему подводятся сигналы из списка чувствительности оператора always.

    Если сигнал объявлен как reg, но нету ни одного процесса, который бы его заклочил, получается, что и смысла превращать его в регистр нет. Правда, как упомянул Sandro, можно сделать защелку. Можно использовать always без клока для присваивания reg значения. Обычно в этом нет смысла, кроме может быть каких-то синтактических выкрутасов для совместимости.

    Есть еще интересный момент, который лично мне помог с интуицией. Все, что находится в правой части присваивания в блоках always @(posedge/negedge), суть комбинаторика. То, что большие и сложные многоэтажные выражения можно писать прямо внутри блока always, это для удобства. А так их можно смело описывать как wire и размещать снаружи.

    Во что именно синтезируются различные языковые конструкции - не так важно. Корни всего этого уходят в то, что изначально язык был предназначен не для описания синтезируемой логики, а для симуляции обычных схем. Чтобы не вляпыватся в ложных друзей лучше обходиться минимумом. Например, for не делает ничего напоминающего циклы в языках программирования.

    P.S. Когда я разбирался с ПЛИС много лет назад, мне не попалось нигде простого и четкого объяснения того, что же мы собственно делаем. Были хорошие ресурсы с примерами, но не то я невнимательно читал, не то там тоже этому не уделялось достаточно внимания, но все время складывалось такое ощущение, что мы как будто пишем обычную программу, только вот как-то не совсем, потом какой-то пыщ-пыщ и все мигает. Это не совсем отягощалось мутной терминологией типа "верилог исполняет этот оператор" -- очевидно, авторы таких текстов либо где-то в академически-симуляционных облаках, либо просто нихрена не понимают (не хочу никого обидеть -- очень может быть, что на самом деле понимают, но не понимают, что их читатели не понимают). Путаница с тем, что в вызывающей доверие литературе Верилог очень часто вообще не упоминается в контексте синтеза, нисколечко не помогала. Интересно, что большое количество людей умудряются пользоваться ПЛИС явно не осознавая нескольких простых вещей. Я сам умудрился сделать свой первый Понг на ощупь, совершенно не врубаясь в то, как это работает. Продравшись же через завесу липкой мути, оказалось, что по крайней мере в рамках вполне достаточных для хобби все просто и магии даже как то почти и нет.

    (На месте препода я бы тоже поставил зачет, потому что у него таких как ты было человек 30 небось)
    Больше игр нет

  11. #20

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

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    ... Если есть входящие сигналы типа как у Вектора, мы их фактически семплируем. Отсюда всякий антидребезг.
    ...
    Сейчас вопрос появился...
    А этот дребезг на сигнале какое значение имеет: "0", "1", "х" или "z" ?
    Если какой-то из двух последних, может в верилоге есть инструмент для их вылавливания на сигналах, где они не предусмотрены и замены их в потоке на значение из предыдущего семпла...

    А про определение reg... мне проще понять замечание, что не каждое объявление reg приводит к появлению регистра (т.к. можно что-то объявить, но использовать не стандартно, видимо это относится и к reg), чем высказывание, что wire и reg - объявление провода, т.к. последнее (с моей точки зрения) противоречит всем докам, что я прочитал про эту шнягу.
    Последний раз редактировалось KTSerg; 08.04.2022 в 15:50.

Страница 2 из 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

Ваши права

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