User Tag List

Страница 70 из 221 ПерваяПервая ... 666768697071727374 ... ПоследняяПоследняя
Показано с 691 по 700 из 2727

Тема: Цифровая археология: 1801 и все-все-все

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

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

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Обычно у меня зимой время на подобную выкройку, когда скучно и грустно, темно на дворе и снеговики за окном. Кто же летом сидит за подобными вещами? Летом солнце, пляж, огород круглый год)
    Угу, осень пришла, ВМ2 сдвинулся
    "Всплыл" старый анекдот, стоят трое:
    Первый - Я люблю лето!
    Второй - А я люблю зиму!
    Третий - Идиоты! Нужно любить деньги, тогда можно себе устроить ЛЮБОЕ время года

    Цитата Сообщение от Titus Посмотреть сообщение
    Главное, ничего не изменять относительно оригинала до конца реверса. А уже потом перекраивать для своих мифических применений на частоте 100МГц.
    Угу, начнем с асинхронной модели. Схему добью, потом пусть пока отлежится, надо доразбирать микропрограмму ВМ1 и документацию закончить.

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

  3. #2

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,810
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    150
    Поблагодарили
    81 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CPP-модель процессора 1801ВМ1 перестаёт реагировать на тактовую частоту, если хотя бы один раз деактивировать сигнал RPLY между eval_p и eval_n, а как реагируют в такой ситуации родная модель на Verilog и оригинальный процессор ?
    Последний раз редактировалось Patron; 28.10.2015 в 21:44.

  4. #3

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    как реагируют в такой ситуации родная модель на Verilog и оригинальный процессор ?
    "Родную" модель Async (которая на латчах, асинхронная) я проверил:
    - активация RPLY по фронту и по срезу CLK
    - активация RPLY при высоком уровне CLK
    - активация RPLY при низком уровне CLK
    - деактивация RPLY по фронту и по срезу CLK

    - деактивация RPLY при высоком уровне CLK


    - деактивация RPLY при низком уровне CLK


    Во всех случаях заводской тест 401 успешно проходится.
    Для моделей Qsync/Wsync проверка RPLY не имеет смысла (хотя Qsync тоже немного погонял, все нормально работает) - в Qsync RPLY фиксируется по перепадам CLK (ответ и освобождение шины), в Wsync просто банально нет самого RPLY.

    Реальные схемы на ВМ1 обычно используют синхронизацию RPLY по какому-либо из фронтов (стоит триггер), потому что в ВМ1 есть ошибка. На модели эту ошибку воспроизвести не удалось, предполагаю что она имеет физическую природу - или метастабильность или разброс параметров конкретных транзисторов.

    ---------- Post added at 22:12 ---------- Previous post was at 21:47 ----------

    Немножко размышлений про возможную причину неработоспособности реального ВМ1 при несинхронизированном RPLY.

    Фрагмент схемы:


    RPLY_IN - это входной сигнал RPLY c внешнего вывода микросхемы. ~CLK - тактовый сигнал (с вывода микросхемы через буфер). Представим что на RPLY_IN и ~CLK на транзисторах T15949 и T15977 изменения сигналов происходят одновременно. В итоге на затворе T15981 может запомнится некоторое промежуточное значение (RPLY_IN переходит из одного значения в другое) - НЕ соответствующее строго какому-либо логическому уровню. На выходе Т15981 тоже может быть некоторое значение. Несмотря на то, что это значение "некоторое", дальнейшая схема все равно трактует его определенным образом (потому что есть усиление) - причем каждый транзистор может "трактовать" по-разному, в зависимости от порогового напряжения. Но даже, допустим, мы ближе к логическому нулю, и все работает одинаково. На затворе Т15981 происходит утечка (в неизвестную сторону - повышения или понижения заряда - зависит от конкретного экземпляра), и с ненормированного уровня она может произойти достаточно быстро, а не за гарантированые производителем 5мкс (полупериод от паспортных нижних 100 кГц), в итоге значение на выходе T15981 может изменится при низком ~CLK, на что схема логически не рассчитана - это состояние запоминания. Более того, из-за перекрестных помех там даже может возникнуть генерация, а не просто изменение значения.

  5. #4

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,451
    Спасибо Благодарностей отдано 
    1,740
    Спасибо Благодарностей получено 
    2,292
    Поблагодарили
    897 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    На затворе Т15981 происходит утечка (в неизвестную сторону - повышения или понижения заряда - зависит от конкретного экземпляра), и с ненормированного уровня она может произойти достаточно быстро, а не за гарантированые производителем 5мкс (полупериод от паспортных нижних 100 кГц)
    С чем связана такая быстрая утечка на затворах транзисторов того времени? Современные схемы вполне себе статические.

  6. #5

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    С чем связана такая быстрая утечка на затворах транзисторов того времени? Современные схемы вполне себе статические.
    Да, современные схемы банально имеют другую схемотехнику, уже в ВМ2 нет таких "триггеров" на затворах. В еще более современных - вся логика cинхронная, там вообще латчей может не быть - только флип-флопы. Ну и везде быстрый КМОП, тау метастабильности уменьшается на порядки, в новых ПЛИСах Альтера даже не особо педалирует эту тему.

    А утечка - можно предположить что связана с химической чистотой используемых материалов (примеси), культурой производства (чистотой реакторов) и дефектами решетки - технологии выращивания бездефектной подложки это сегодня вообще жутко тайное ноу-хау. Не, в основе старый добрый метод Чохральского, но там много тонкостей.

  7. #6

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,810
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    150
    Поблагодарили
    81 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Для моделей Qsync/Wsync проверка RPLY не имеет смысла (хотя Qsync тоже немного погонял, все нормально работает)
    Как выяснилось - проблема именно в CPP-версии модели Qsync. Если деактивировать сигнал RPLY между eval_p и eval_n - модель не снимает SYNC вплоть до установки DCLO.

    В Verilog-версии модели Qsync точно нет такой проблемы ?

  8. #7

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    В Verilog-версии модели Qsync точно нет такой проблемы ?
    Ну... Если ModelSim не шутит, то в модели QSync такой проблемы нету
    Еще раз снял диаграмму:


    Красным отмечено снятие RPLY при положительном значении CLC, через 2 нс после фронта.
    RPLY снимает (и управляет всеми другими внешними сигналами) специальный модуль, называется testbench (файл tbench.v), пишется для тестовых целей и является внешним по отношению к модели. То есть для модели это выглядит как внешнее воздействие, внутри она никак не меняется при тестировании. Заводской тест 401 проходит при любых комбинациях снятия RPLY.

    Там была другая проблема, при обращении к 1777хх были очень короткие импульсы DOUT - оно выходило по первому же RPLY, обнаруженному по фронту CLC. Это несовпадало с реальным процессором и я перекинул на второй RPLY на фронте CLC. Схему перепроверял на нескольких процессорах, она верная, поэтому списал на физическую задержку, то есть RPLY при обращении к внутренним регистрам не успевал на первый фронт CLC. Там есть коммент на тему:

    Код:
    assign dout_start = dout_req_rc & qbus_flag_rc & ~rply_ack[2]; // originally ~rply_ack[1]
    Все остальные циклы - DATI/DATO/DATIO/IAK сначала сверялись на модели Async с реальным процессором. Было достигнуто потактовое совпадение. Потом прошел тест 401, при этом симулятор показывает сколько времени модели затрачено на прохождение теста, ну скажем 544520 нс.

    Потом писалась модель Qsync, писалась она путем модификации Async, при этом на ней многократно в ходе разработки прогонялся тест 401 и сверялось в том числе затраченное время, оно должно полностью совпадать с моделью Async (544520нс). Ну и диаграммы тоже сравнивались, их длительности и моменты запуска полностью совпадали.

    Потом уже делалась WSync модификацией QSync, там уже времянка немного разошлась, шина же другая, но встроен специальный механизм для медленного режима, при его работе моменты запуска транзакций будут полностью совпадать как это делал бы процессор на родной частоте (до 5МГц). Эта задумка написана, но еще не проверялась - она должна работать в связке с дульным компенсатором эмулятором-замедлителем ВП1-037, которого пока нету.

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

    Давно не брал я в руки шашек смотрел в микроскоп
    Пока игрался с модулем и перетыкал микропроцессоры, определился самый слаборазгоняемый экземпляр 1801ВМ3, к тому же у него ножки немножко в процессе покоцались, пришлось его на мясо пустить открыть.



    Кристалл незначительно больше по площади чем 1801ВМ1 (на 20-25 процентов), но транзисторов по прикидкам должно быть тысяч 25, значит нормы уменьшили. И действительно - 3 мкм ширина затвора и проводников. У ВМ1 было 5 мкм, у ВМ2 - 4 мкм. Не великий прогресс за 8 лет, но то такое. Стекло на кристалле грязноватое, попробую спиртиком помыть и отфотать на увеличении x10. Но уже мелковато, как бы не пришлось снимать на x20 (а это за 400 снимков выйдет), и у меня уже 16ГБ памяти такую панораму собрать не хватает.

  9. #8

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,451
    Спасибо Благодарностей отдано 
    1,740
    Спасибо Благодарностей получено 
    2,292
    Поблагодарили
    897 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Кристалл незначительно больше по площади чем 1801ВМ1 (на 20-25 процентов), но транзисторов по прикидкам должно быть тысяч 25, значит нормы уменьшили.
    На картиночке качества несколько не хватает для понимания.
    По сравнению со стройными рядами элементов в ХМ1, выглядит хаотично)

  10. #9

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Как выяснилось - проблема именно в CPP-версии модели Qsync.
    Ну, я никогда и не утверждал, что CPP модель достоверно работает, она наоборот, в силу каких-то неясных для меня нюансов работает не так, как Verilog модель, хотя казалось бы, всё сделано точь-в-точь как в верилоге.

    Vslav, вот есть такая штука "always @(posedge pin_clk_p)", в ней регистр mjres меняет своё значение, допустим с 0 на 1.
    Как в таком случае должен выполняться "always @(posedge pin_clk_p or posedge mjres)"? Сперва часть кода в соответствии с "posedge pin_clk_p", как и для предыдущего alwaysа, а затем в этой же итерации - часть кода в соответствии с вновь возникшим "posedge mjres", затирая результаты выполнения этого alwaysа для "posedge pin_clk_p" или всё таки обрабатывать "posedge mjres" в следующей итерации?

  11. #10

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,810
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    150
    Поблагодарили
    81 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Если ModelSim не шутит, то в модели QSync такой проблемы нету
    Но есть проблема с запуском модели QSync под голым ModelSim ( без квартуса и альтеровских библиотек ) - во всяком случае с ModelSim SE 10.2c такое не получилось. Предлагаю попробовать поставить на виртуальную машину голый ModelSim, создать в нём родной проект, запустить симуляцию теста команд в модели QSync и выложить получившийся тестовый комплект.

Страница 70 из 221 ПерваяПервая ... 666768697071727374 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 28.06.2014, 17:50
  2. Микросхемы МПК 580,1801,1810 и другие...
    от Alex_Vac в разделе Барахолка (архив)
    Ответов: 44
    Последнее: 07.04.2012, 08:03
  3. ЦИФРОВАЯ МУЗЫКА НА ZX
    от AAA в разделе Музыка
    Ответов: 98
    Последнее: 18.09.2011, 22:33
  4. Учебный стенд УМПК-1801
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 12.05.2010, 16:52
  5. Цифровая музыка от Вадима Ермеева
    от zxmike в разделе Музыка
    Ответов: 2
    Последнее: 06.08.2007, 23:13

Метки этой темы

Ваши права

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