User Tag List

Страница 58 из 81 ПерваяПервая ... 545556575859606162 ... ПоследняяПоследняя
Показано с 571 по 580 из 803

Тема: Реверс-инжиниринг Z80

  1. #571

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

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    нукактотаконотожеможетчто тоделать.
    Пока мне нужно просто вьехать в тему. Такая структура не мешает мне потихоньку писать Z80. И смотреть, чего получается.

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

  3. #572

    Регистрация
    20.06.2014
    Адрес
    г. Чехов
    Сообщений
    56
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    30 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну раз топик превратился в "помоги Титусу освоить верилог" добавлю от себя:
    для простейшей симуляции можно вообще всё делать без always блоков, тупо соединяя вентили нетлистом. Сейчас сразу набегут сторонники православного синтеза, но таки наша утилита Deroute именно такой верилог и выгружает (модульный) - и запихать always блоки внутри DFF примитивов тоже можно.

    Пример модульного ядра SM83 из DMG SoC:
    https://github.com/emu-russia/dmgcpu...HDL/sm83/Top.v

    Оно вполне себе работает в икарусе и этого обычно достаточно для "понимания".



    P.S. Ещё рекомендую изучить гига-лики от Nintendo (лежат в открытом доступе как ни странно на archive.org) и посмотреть как делалось "по-взрослому", например исходники RСP от Nintendo 64. Ещё можно полазить по OpenCores и приуныть немного, хотя тоже полезно.
    Последний раз редактировалось org; 18.10.2024 в 23:27.

  4. #573

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

    По умолчанию

    Цитата Сообщение от org Посмотреть сообщение
    ля простейшей симуляции можно вообще всё делать без always блоков, тупо соединяя вентили нетлистом.
    Хоть я и начинающий вериложник, но у меня задача сразу делать красиво и правильно. Я имею в виду Z80. Только синхронная схема, все оптимально и красиво чтобы было.

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

    Цитата Сообщение от org Посмотреть сообщение
    OpenCores и приуныть немного
    Приуныть от чего?

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

    Цитата Сообщение от org Посмотреть сообщение
    рекомендую изучить гига-лики от Nintendo
    Лучше не выражаться сленгом, а давать конкретные ссылки с уточнениями.

  5. #574

    Регистрация
    20.06.2014
    Адрес
    г. Чехов
    Сообщений
    56
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    30 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Может так получиться что когда начнешь делать красиво и правильно, то что-то получится, но уже не z80.
    Ссылки которые можно давать я даю, которые нельзя я не даю, leak - сам понимаешь, гугли.
    На OpenCores много ядер и другого железа на верилоге, есть кстати и z80 сделанный по мотивам чипа, так что как минимум можно приуныть что уже всё сделано до нас.
    https://opencores.org/projects/a-z80

  6. #575
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    Ну да при цене плисы в несколько сотен уе делать такой генератор это "Не особая жесть".
    Параметры такого генератора даже на кварце будут так себе... да на таких частотах - ну его нафик

    Вот так с помощью не хитрых приспособлений буханка хлеба превращается в троллейбус (с)
    А оно стоит того чтоб экономить на нормальном генераторе частоты ??
    Эх... То, что я игрался на Arria2GX это было баловство "а что если". А вот генератор на инверторах ПЛИС я активно использовал (и видел как использовали другие) на FLEX и, особенно, на CPLD типа MAX7000/MAX3000. Можно было заводить схему на разных нестандартных частотах нативно.

  7. #576

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

    По умолчанию

    Цитата Сообщение от org Посмотреть сообщение
    Может так получиться что когда начнешь делать красиво и правильно, то что-то получится, но уже не z80.
    Я всегда стараюсь сохранить максимальную аутентичность оригиналу. Но, естественно, моделировать потранзисторную схему на Verilog'е.
    Раз правила хорошего тона для ПЛИС - это логика плюс триггеры по фронту, шины без Z состояний, значит перевожу Z80 в этот формат.

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

    Цитата Сообщение от org Посмотреть сообщение
    На OpenCores много ядер и другого железа на верилоге, есть кстати и z80 сделанный по мотивам чипа, так что как минимум можно приуныть что уже всё сделано до нас.
    Эти видел.
    Нет, до меня еще никто не делал логическую модель по точному реверсу.
    А даже если бы и сделали, мне все равно интересно сделать свою конфетку. Может она будет компактнее и быстрее. И точнее.

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

    Вообще, я смотрю, логическую схему с триггерами перевести на Verilog вообще не сложно. Гораздо проще, чем писать программный эмулятор.
    Но пока что в схеме есть узкие места, например, триггеры, работающие и по фронту и по спаду такта одновременно. Вот это надо сперва по умному переделать, а потом описывать.

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

    Для случая, когда длительность импульса ресета очень короткая (меньше 1 такта), есть участки схемы, которые поведут себя весьма косячно.
    Внутренний импульс RES всегда выравнивается на границу такта, поэтому самый короткий внешний импульс все равно будет равен 1 такту внутреннего RES.

    Смотрим на такой фрагмент схемы:


    Как видим, если RES равен 1 такту и совпал по времени с T3, то сначала RS-триггер перейдет в третье состояние, когда оба выхода равны нулю. А после одновременного снятия T3 и RES перейдет в неопределенное состояние вообще. Думаю, что с большей вероятностью пересилит правое плечо, т.к. там больше емкость затворов подключенных к нему транзисторов. Но все же.

    Этот пользователь поблагодарил Titus за это полезное сообщение:

    AlexG(19.10.2024)

  8. #577

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

    По умолчанию

    Я так понял, что чтобы в режиме Schematic все не перепутывалось друг с другом, надо помельче дробить модули?

  9. #578

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

    По умолчанию

    Еще обратил внимание, что в цикле чтения данных, который длится на один полутакт дольше, чем цикл чтения кода операции, реально данные все равно защелкиваются через тот же промежуток времени, что при чтении кода операции.
    Т.е. этот лишний продленный полутакт чтения непонятно зачем. Возможно, для совместимости с 8080?


  10. #579
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Еще обратил внимание, что в цикле чтения данных, который длится на один полутакт дольше, чем цикл чтения кода операции, реально данные все равно защелкиваются через тот же промежуток времени, что при чтении кода операции.
    Зависит от типа регистра: прозрачная защёлка или защёлка или тактируемый D-триггер.

  11. #580

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

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Зависит от типа регистра: прозрачная защёлка или защёлка или тактируемый D-триггер.
    Тут нет разницы, в чем защелкиваются данные.
    Я говорю о том, что не смотря на то, что длительность циклов обращения к внешней памяти для чтения опкода (1 такт) и данных (1.5 такта) - разная, внутренний цикл (внутри Z80) все равно остается одинаковым, и равен 1 такту. Поэтому увеличенный на 0.5 такта внешний цикл не играет никакой роли, все равно внутри процессора данные защелкиваются на 0.5 такта раньше, чем окончится внешний цикл.

    Меня интересует, зачем это сделано? Я думаю, что до совместимости с предыдущей линейкой (i8080). Иного обьяснения у меня нет.

Страница 58 из 81 ПерваяПервая ... 545556575859606162 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 1739
    Последнее: 09.01.2025, 10:55
  2. Ответов: 32
    Последнее: 18.12.2024, 18:19
  3. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  4. Реверс МК-92
    от Случайность в разделе Программируемые калькуляторы
    Ответов: 55
    Последнее: 24.04.2021, 23:47
  5. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46

Ваши права

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