User Tag List

Страница 16 из 81 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя
Показано с 151 по 160 из 803

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

  1. #151

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    1)В современных плиса (я за ксайлинкс говорю/ у конкурента аналогично на 95% ) нет в чистом виде R/S-триггеров. НО D-триггер с R или S входом (асинхронные и синхронные относительно тактовой) есть и реализуемы. За другие виды триггеров вот так сходу не скажу - тк "по жизни" они в таком виде не требуются.
    В целом согласен. Но опять же, для триггеров в Spartan-6 можно использовать либо только R, либо только S, но не оба одновременно. В 7-й и более старших сериях Xilinx входы R и S только синхронные, асинхронных нет. Если сильно нужен именно асинхронный RS-триггер - то его можно реализовать на комбинационной логике и другими трюками. Но обычно есть другие, более красивые решения. Лучше искать их.
    Цитата Сообщение от AlexG Посмотреть сообщение
    Насколь мне видится R и S сигналы в данной схеме формируются полюбому с привязкой к CLK, а посему здесь говорить о метастабильности неуместно.
    Не факт. Если сигнал R снимается по нарастающему фронту CLK - то как раз и реализуются благоприятные условия для метастабильности. Быть может, лишь задержка комбинационной логики позволит избежать риска.
    Цитата Сообщение от AlexG Посмотреть сообщение
    ПС: блин щаз запугаем ТС и он сорвётся с крючка ;-)
    Пускай учится сразу делать эффективные и надежные схемы! Предупреждение о типичных ловушках сэкономит ему много времени на отладку. Другие люди набивали эти шишки на своем, а не чужом, опыте.
    Цитата Сообщение от AlexG Посмотреть сообщение
    ТС - я не настаиваю на то чтоб вы вписывались в плисы, однако этот мир (плис) по своему прекрасен
    Я скажу более. "Вписаться" в плисы - это значит развить у себя навыки создания эффективных и надежных цифровых схем. Те ограничения, которые вводятся последними поколениями ПЛИС - это результат опыта предыдущих десятилетий. Что, например, асинхронные RS-входы нужны только в плохо спроектированных схемах, а хорошие схемы используют другие, синхронные, решения. И ограничения на асинхронность позволяют не только улучшить проект, но и получить более емкую ПЛИС, на которой этот проект будет работать. А когда проект отлажен и хорошо работает на ПЛИС - то можно (если за это кто-то готов заплатить) задуматься о синтезе собственной заказной микросхемы на основе тех же исходников на Verilog или VHDL.

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

    Цитата Сообщение от AlexG Посмотреть сообщение
    Плат по типу Digilent Atlys надо ещё поискать (она кстати кажется на спартане6).
    Да, она на Spartan-6. Но для целей эмуляции Спектрума хорошо пойдут и актуальные платы от Digilent:
    - Basys 3. Там довольно большая Artix 7 FPGA, есть VGA-выход. Есть USB-интерфейс, но ему, скорее всего, потребуется современный 32-битный Softcore-процессор (не Z80). Но ресурсов там дофига, хватит и на 3 процессора. Цена 165$

    - Arty Z7. Чип Zynq 7000, встроенный двухъядерный процессор ARM, 650Мгц. Хорошо пойдет для обслуживания периферии типа USB-клавиатур, мышей и флешек. 512Мб динамической памяти. Есть HDMI- вход и выход. Через HDMI можно, наверно, и выход звука реализовать. Или PWM. Цена $249
    Цитата Сообщение от AlexG Посмотреть сообщение
    А плат со статической памятью вообще фиг найдёшь (конечно есть альтернативные решения).
    Статической памяти в самой ПЛИС наберется около мегабайта. Вполне достаточно для эмуляции Спектрума на частоте процессора в 50-100 МГц.

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

    Вот еще нашел плату: Alinx AX7035B. На борту Artix-7, HDMI In/Out, USB, Ethernet, 256Мб памяти. Цена - $132.
    Последний раз редактировалось Barmaley_m; 31.08.2024 в 02:26.

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

  3. #152

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

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Что значит "многопортовыми"? Параллельные регистры с несколькими триггерами?
    Нет, многопортовые - это вот:



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

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Пускай учится сразу делать эффективные и надежные схемы! Предупреждение о типичных ловушках сэкономит ему много времени на отладку. Другие люди набивали эти шишки на своем, а не чужом, опыте.
    Совершенно согласен.
    Лучше уже нацелиться на самые-самые ограничения для всех ПЛИС, но зато сделать хорошо компилируемую и стабильную схему. Но для этого эти комплексные ограничения надо все знать.

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

    Обозначение синхронного RS-триггера я нашел:



    А вот D-триггера, у которого есть еще синхронные RS-входы - нет.

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

    Кстати, можно сказать, что большинство RS-триггеров в Z80 фактически синхронные. Просто я рисовал - отдельно базовый RS-триггер, и отдельно 2И элементы на входе со входами CLK для синхронного переключения. Можно было это сразу упаковать в синхронный RS-триггер.

  4. #153

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Нет, многопортовые - это вот:
    А какова логика работы такого триггера?
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  5. #154

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от IanPo Посмотреть сообщение
    А какова логика работы такого триггера?
    Присоединяюсь. Мне из графического изображения непонятно, как он работает. Там по два входа D и C, но только один выход. Каким образом комбинируется информация в этом элементе схемы? Два триггера и логическая функция на их выходе? Или один триггер и логическая функция на его входе?

  6. #155

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

    По умолчанию

    Логика очень проста.
    При активном уровне на C0, данные с D0 защелкиваются на выходе.
    При активном уровне на C1, данные с D1 защелкиваются на выходе.

    И т.д. В схеме 4-х портовые триггеры даже есть.

  7. #156

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    При активном уровне на C0, данные с D0 защелкиваются на выходе.
    При активном уровне на C1, данные с D1 защелкиваются на выходе.
    А, так это еще и "прозрачный" триггер-защелка, у которого при активном уровне на C0 или C1 данные со входа на выход проходят постоянно?

    Регистры-защелки в FPGA имеются (в Spartan-6 - точно), но их использовать не рекомендуется, по тем же причинам, что асинхронные входы R/S.

    По твоему описанию логики работы, такой элемент реализуется в FPGA с помощью мультиплексора, логики и одного триггера. Мультиплексор пропускает на свой выход сигнал D0 или D1 в зависимости от состояния C0. Логический элемент "ИЛИ" объединяет C0 и C1 в сигнал разрешения записи в триггер. И, наконец, сам триггер (лучше всего D-типа, работающий от основной тактовой частоты). Получается синхронный элемент памяти, работающий близко к тому, что ты описал. Как его вписать в остальную схему, пойдет ли он там со своей синхронностью - это уже надо разбираться глубже.

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

    Titus(31.08.2024)

  8. #157

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

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    А, так это еще и "прозрачный" триггер-защелка, у которого при активном уровне на C0 или C1 данные со входа на выход проходят постоянно?
    Да

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

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Регистры-защелки в FPGA имеются (в Spartan-6 - точно), но их использовать не рекомендуется, по тем же причинам, что асинхронные входы R/S.
    Да, я уже отметил, что все триггеры работающие по уровню в для FPGA надо будет сначала переделать в работающие по фронту.

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

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    По твоему описанию логики работы, такой элемент реализуется в FPGA с помощью мультиплексора, логики и одного триггера.
    Да, я так примерно и представлял.

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

    Пробежался по текущей схеме, заменил RS-триггеры, у которых входы тактировались одинаковой полярностью (CLK или /CLK) на RCS-триггеры. А триггеры, у которых входы тактировались разными полярностями пока оставил как есть. Я думаю, самое главное, что в данной схеме все RS-входы в триггерах так или иначе синхронны с CLK или /CLK, поэтому проблем с синтезом у FPGA не будет.

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

    AlexG(31.08.2024), Barmaley_m(31.08.2024)

  9. #158

    Регистрация
    19.01.2009
    Адрес
    Белгород
    Сообщений
    385
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В силу смены работы писал на Verilog очень давно, но вставлю свои "5 копеек". Для обучения мне очень помогло отвлечься от абстракций в виде электрических принципиальных схем на "рассыпухе", а вернуться к математическо-программистским корням, к дискретной математике и теории вычислительных процессов. А именно - к комбинаторике, графам, автоматам различных типов и их оптимизации. И вот это всё на Verilog перекладывается просто превосходно. То есть, не надо заниматься "синтезом" из логических и прочих элементов, надо заниматься математическим описанием (и оптимизацией) того, что надо сделать. А синтезом займётся сама среда типа Quartus (в конторе были Альтеры в почёте). Например, не надо рисовать схему какого-либо узла Z80 из логических элементов, надо рисовать её в виде графа, описывающего автомат. Со входом, выходом, состояниями, памятью и т.п. И его математическо-текстового представления, если надо. И оптимизация тут будет - вычислительная, в первую очередь. А оптимизацией синтезируемой логической схемы займётся софт.
    Андрей, моё почтение! Реверс-инжиниринг процессора это титанические усилия. Пройти весь путь в обратном порядке: транзисторы -> логика -> математика...

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

    Titus(31.08.2024)

  10. #159

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

    По умолчанию

    Цитата Сообщение от aviator Посмотреть сообщение
    Например, не надо рисовать схему какого-либо узла Z80 из логических элементов, надо рисовать её в виде графа, описывающего автомат.
    Мне наиболее удобно привести схему сперва в классический логический вариант. Именно такую схему я могу быстро читать и понимать, когда она такая глобальная, как Z80. Ведь перевести на FPGA - это лишь попутная идея. Основная моя идея - это привести в наиболее понятный вид (логический), описать, найти нюансы, ошибки, особенности, понять принцип работы. А уже из этой точки можно и эмулятор потактовый делать, и FPGA, и т.д. Конечно я могу читать и понимать потранзисторную схему. Но уровень ориентирования в ней для меня гораздо ниже, чем в логической. Это все равно как сравнить си и ассемблер. Я вообще удивляюсь, как @Vslav переводил в Verilog транзисторные схемы сразу, минуя логический этап. Мне такое неудобно. Поэтому все делаю последовательно, как мне понятнее. Сперва транзисторная, потом логическая, потом причесывания и понимание. А потом уже куда угодно можно двигаться. Да и другим понятнее она.

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

    AlexG(31.08.2024), Barmaley_m(31.08.2024)

  11. #160

    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    974
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    164 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Логика очень проста.
    При активном уровне на C0, данные с D0 защелкиваются на выходе.
    При активном уровне на C1, данные с D1 защелкиваются на выходе.
    И т.д. В схеме 4-х портовые триггеры даже есть.
    Для RS/вот этих триггеров и ещё что там по схеме.
    И отслеживать "запрещённые входные комбинации":
    - либо гарантировать их отсутствие
    - либо отслеживать доп. логикой с выводом на "лампочка авария"
    - тд пт

    ПС:соглашусь: latch крайне не рекомендуется к употреблению, но в плисе он реализуем физически.

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

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

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

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

Похожие темы

  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

Ваши права

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