User Tag List

Страница 15 из 81 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя
Показано с 141 по 150 из 803

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

  1. #141

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

    По умолчанию

    Согласен на 98%
    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Я не рекомендую подавать внешний тактовый сигнал с неизвестной скважностью на схему, часть триггеров которой срабатывает по нарастанию, а другая часть - по спаду. Почему?
    "здесь" - не стремятся добиться космических скоростей. Посему допустимо "подавать внешний тактовый сигнал с неизвестной скважностью". Главное обеспечить длительность любого полупериода больше чем минимальное время от Максимальной допустимой частоты модели. Это если не требуется использовать PLL (но я не помню требований к входной частоте для оного).
    Про похожесть ("сходство" Verilog и C - кажущееся) имеется ввиду сложность написание. Verilog и C одного уровня, а VHDL это уровень языка ADA (более строгое соответствие типов, постоянные преобразования типов, знаков итд).

    Для 7-семейства в systemveriloge (да и в vhdl) не требуется использовать инвертор (достаточно указывать по какому фронту "мы" работаем).

    И да, в клонах ZX есть режим турбо, который переключает на ходу тактовый сигнал.
    - - - Добавлено - - -

    Цитата Сообщение от Titus Посмотреть сообщение
    Я не сторонник в лоб переписывать с параллельного языка на последовательный. Понятно, что так можно получить наибольшую идентичность исходному коду, с меньшими шансами накосячить при оптимизации. Однако, на мой взгляд, это крайне расточительно в плане ресурсов.
    Я подразумевал о возможности. а так - да, временами может потребоваться много вспомогательной работы по созданию "рунтайма".
    ПС: к слову в виваде симулятор преобразуется *.v (любой hdl) в *.exe исполняемый файл , выводом является результат симуляции.
    Последний раз редактировалось AlexG; 30.08.2024 в 23:33.

  2. #142

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

    По умолчанию

    По поводу железа. Я рекомендую покупать готовые платы с FPGA и какой-то дополнительной периферией, и вести разработку на них, вплоть до интеграции таких плат в конечные продукты. Почему? Частоты, на которых работают FPGA (сотни МГц) требуют особых навыков разводки печатных плат. Также большинство актуальных чипов FPGA имеют BGA-корпус с несколькими сотнями выводов. Платы FPGA с какой-нибудь быстрой периферией (SDRAM- или DDR-память, HDMI, Gigabit Ethernet) используют 6 или 10 слоев с малыми допусками и контролем импеданса. Разводка "быстрых" связей требует размещения "змеек" для уравнивания задержки прохождения сигналов и других трюков. Дорого как производство таких плат, так и их монтаж. И с первого раза обычно не получается. Вручную припаять BGA-корпус с сеткой 0,5мм между выводами - тоже с первого раза не у всех получится. Поэтому покупка готовых плат за 250-500$ - вполне оправданное решение. Я, к примеру, использовал плату Digilent Atlys. К настоящему времени она уже устарела, но Спектрум (включая процессор) с HDMI- и звуковыми выходами на ней можно сделать аж на ура.
    Последний раз редактировалось Barmaley_m; 30.08.2024 в 23:42.

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

    Titus(31.08.2024)

  3. #143

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

    По умолчанию

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

  4. #144

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

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    Но блин, здесь много "любителей старины", которые крайне рачительны и 200-500$ это не хилая сумма.
    Дешевле не получится. Если делать самому и даже не брать во внимание трудозатраты на разработку своей платы FPGA - то производство 10-слойки и ее монтаж на паре-тройке плат-прототипов вряд ли станут меньше. А если еще учесть риск, что с первого раза не заработает - то вообще ой. И еще, там не все выводы равноправные. Чтобы сразу угадать, какие внешние устройства на какие выводы лучше разводить - это надо вкурить тонны документации и учесть множество вариантов, в идеале - сначала разработать большой проект на готовой плате и на этой основе понять, что нужно для своей платы. Поэтому 250-500$ для плат FPGA, по моему мнению - это дешевле, чем делать самому. Снижение цены достигается эффектом масштаба, величиной серии.
    Цитата Сообщение от AlexG Посмотреть сообщение
    Посему "народ" "перебивается" тем что по проще и подешевле.
    А какие тебе известны более дешевые варианты?
    Последний раз редактировалось Barmaley_m; 31.08.2024 в 00:03.

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

    Titus(31.08.2024)

  5. #145

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

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    ПС: к слову в виваде симулятор преобразуется *.v (любой hdl) в *.exe исполняемый файл , выводом является результат симуляции.
    Вивада - это что? Лучше пояснять термины, которые известны вериложцам)

  6. #146

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Вивада - это что?
    Наверно, имеется в виду Vivado Design Studio от Xilinx - среда разработки.

    Симуляторы Xilinx действительно переводят проект, состоящий из симуляционного скрипта (который подает на входы испытуемой схемы сигналы) и собственно схемы, в язык Си. Потом компилируют его компилятором GCC в .exe и исполняют. Тем самым достигается высокая производительность симуляции. Но я смотрел этот Си-код, он явно не предназначен для чтения человеком. Это просто код программы расчета результатов симуляции. Она всякий раз генерируется заново. Также я тихо подозреваю, что Си-код там не очень эффективный генерируется. Но за счет компиляции в нативный машинный код все равно достигается некоторая оптимизация.

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

    Titus(31.08.2024)

  7. #147

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

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Также у Spartan-6 были асинхронные R- или S-входы у триггеров, а у Artix-7 - только синхронные (по фронту тактовой частоты). На самом деле эти ограничения даже полезные, они повышают культуру разработки и ни в коей мере не ограничивают свободу разработчика, если только он немного по-другому решит задачу, которую ранее решал асинхронными входами.
    Т.е. я еще и должен подумать о том, чтобы избавиться от асинхронных R/S-триггеров, чтобы все было адаптировано под современные ПЛИС? Это жестко, т.к. процессор Z80 изобилует ими.
    Как схематически обозначаются синхронные R/S-триггеры и синхроные R/S входы на D-триггерах?

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

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Если внешней схеме требуется задержать работу процессора - то это следует делать не путем манипуляций с тактовой частотой, а другим способом. Сделать какой-нибудь сигнал типа WAIT, возможно - с более высоким приоритетом, который безусловно заставляет процессор в любом состоянии пропустить тактовый импульс.
    Это все хорошо, но никак не подходит к проекту Z80, который может быть вставлен в любую схему с CLK произвольной скважности. Поэтому даже и обсуждать нет смысла.

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

    Да, и как реализуются схемы с многопортовыми D-триггерами на ПЛИСах?

  8. #148

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

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    По поводу железа.
    Однако "мы" потихоньку скатываемся в оффтоп. да простит нас ТС.
    По теме плат - если честно, то современные отладки (особенно фирменные и современные и не важно кто алтера/ксайлинкс) все сплошь заточены под высокоскоростные интерфейсы (10/100/400Гбит) и память ДДР4 (а то и под ИИ). А "обвязка" оных не делается "на коленке в домашних условиях". Плат по типу Digilent Atlys надо ещё поискать (она кстати кажется на спартане6). А плат со статической памятью вообще фиг найдёшь (конечно есть альтернативные решения).
    Да и вообще ТС делает реверс Z80 в схему электрическую принципиальную - далее насколь я понимаю - делать 99,99% программную модель на Си (С++, алгол, бейсик, лисп ???).
    Можно посмотреть здесь https://shop.trenz-electronic.de/en/...c/AMD-Artix-7/
    Особенно меня впечатлил
    https://shop.trenz-electronic.de/en/...8-bit-computer
    и совсем по теме так это
    https://wiki.specnext.dev/Circuit_Diagrams
    есть ещё алишка-
    НО нынешняя ситуация в мире не сильно располагает к покупкам "там", да и финансы "поют романсы". Посему обхожусь тем чем богат (zedboard и ещё парочка других (промышленных) плат)

    ПС: Мои извинения для ТС - "скатился" до сленга. Vivado как было сказано выше - это среда разработки.
    По сути это огромный комплекс позволяющий делать с плисами что угодно (очень упрощённое описание):
    - реализовывать на hdl схемы
    - заниматься видео/аудио обработкой (цифровая обработка сигналов) в реалтайме.
    - цифровые радиоприёмники
    - в матлабе (устанавливается дополнительно) можно из функциональных квадратиков собирать выше упомянутые вещи
    - так же на Си (с небольшими нюансами) описывать схемы (Си -> VHDL/Verilog -> прошивка плисы)
    - тк в плисах (та да дам - есть софт и хард процессоры) - то можно писать программы для них (как бареметал, так и для линукса, который тоже крутится внутри плисы)
    - отдельные версии плис позволяют ИИ
    - симулятор того что написал на компе
    - отладка в реал тайме в плисе
    - онлайн менеджер документации
    - и ещё то что уже не помню.
    ПСПС: Справедливости ради у Альтеры есть аналогичное - но , я ранее говорил уже - крайне не удобное (не технологичное).

  9. #149

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Т.е. я еще и должен подумать о том, чтобы избавиться от асинхронных R/S-триггеров, чтобы все было адаптировано под современные ПЛИС? Это жестко, т.к. процессор Z80 изобилует ими.
    Жестко только на первый взгляд. Надо просто почесать голову и придумать решение без асинхронных RS-триггеров. На самом деле, асинхронные RS-триггеры - зло. Почему?

    При переходе сигнала R (для S рассуждения аналогичны) из неактивного в активный уровень проблем не возникает. Триггер просто сбрасывается, независимо от входов CLK и D. Однако переход R из активного в неактивный уровень должен быть обязательно согласован с тактовой частотой. В противном случае может возникнуть метастабильность. Если снятие R и фронт CLK приходят на триггер почти одновременно - то неизвестно, какой (из-за задержек разводки связей на чипе и т.п. эффектов) придет раньше. И если вход D=1, то R может быть снят как раз в тот короткий промежуток времени, когда информация с входа D проходит на выход триггера. И тогда триггер может остаться в промежуточном состоянии между 0 и 1 на длительное время (один-два такта, изредка более). При этом, до перехода триггера в какое-нибудь (заранее неизвестное!) стабильное состояние, схема, которая смотрит на его выход, может увидеть несколько переключений.

    Как лучше всего перевести схему с асинхронных на синхронные RS-триггеры - этот вопрос решается индивидуально в каждом конкретном случае. Если столкнешься с практическим примером, который трудно самому решить - приведи схему, попробуем покумекать вместе.
    Цитата Сообщение от Titus Посмотреть сообщение
    Как схематически обозначаются синхронные R/S-триггеры и синхроные R/S входы на D-триггерах?
    Это зависит от ГОСТов той страны, в которой ведется разработка. Иногда еще от "стандартов" фирмы-производителя FPGA. Конкретно у Xilinx приняты следующие обозначения:
    триггер с асинхронным сбросом - FDC, вход сброса - CLR
    триггер с синхронным сбросом - FDR, вход сброса - R
    триггер с асинхронной установкой - FDP, вход установки - PRE (от слова Preset)
    триггер с синхронной установкой - FDS, вход установки - S
    По ГОСТ 2.743-91, триггеры обозначаются символами T или TT. Вход установки - SET или S, сброс - RES или R (синхронность или асинхронность задается не буквами, а графическим "указателем свойства выводов").
    Цитата Сообщение от Titus Посмотреть сообщение
    Да, и как реализуются схемы с многопортовыми D-триггерами на ПЛИСах?
    Что значит "многопортовыми"? Параллельные регистры с несколькими триггерами? Просто задаешь входные и выходные шины данных для этих регистров в виде "векторных" сигналов на языке (Verilog/VHDL). Задаешь один "процесс", запускающийся по фронту тактовой частоты. Внутри процесса (и, возможно, блока if) одна команда - запись выходных сигналов регистра на его выход. Еще можно сделать регистру вход разрешения записи (CE) путем помещения в "процесс" команды IF, которая позволяет запись на выходы регистра только если CE='1'. Триггеры внутри FPGA имеют вход разрешения записи, им можно и нужно пользоваться.

    Для более подробной информации рекомендую документ Xilinx UG626 "Synthesis and Simulation Design Guide". Там глава 5 "Coding for FPGA Device Flow", подраздел "Registers in FPGA Design".

  10. #150

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Т.е. я еще и должен подумать о том, чтобы избавиться от асинхронных R/S-триггеров, чтобы все было адаптировано под современные ПЛИС? Это жестко, т.к. процессор Z80 изобилует ими.
    Как схематически обозначаются синхронные R/S-триггеры и синхроные R/S входы на D-триггерах?
    Это все хорошо, но никак не подходит к проекту Z80, который может быть вставлен в любую схему с CLK произвольной скважности. Поэтому даже и обсуждать нет смысла.
    Да, и как реализуются схемы с многопортовыми D-триггерами на ПЛИСах?
    1)В современных плиса (я за ксайлинкс говорю/ у конкурента аналогично на 95% ) нет в чистом виде R/S-триггеров. НО D-триггер с R или S входом (асинхронные и синхронные относительно тактовой) есть и реализуемы. За другие виды триггеров вот так сходу не скажу - тк "по жизни" они в таком виде не требуются.
    2) Про скважность я уже говорил - что можно, в плоть до отсутствия тактовой (статический уровень), есть ограничение на минимальное время полупериодов.
    3) про " многопортовыми D-триггерами" я не понял... Это когда 8 бит шина "стробируется" одним сигналом тактовым ? ну дык хоть 512 бит можно сделать, да ещё и сброс на них завести при желании.

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

    Насколь мне видится R и S сигналы в данной схеме формируются полюбому с привязкой к CLK, а посему здесь говорить о метастабильности неуместно. и в общем случае без разницы асинхр или синх будет триггер.
    ПС: блин щаз запугаем ТС и он сорвётся с крючка ;-)
    ТС - я не настаиваю на то чтоб вы вписывались в плисы, однако этот мир (плис) по своему прекрасен. и вовсе не обязательно всё знать - достаточно и 5% всего функционала (языка) использовать, чтоб творить "маленькие шедевры".

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

    Barmaley_m(31.08.2024)

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

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

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

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

Ваши права

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