User Tag List

Страница 17 из 81 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя
Показано с 161 по 170 из 803

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

  1. #161

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

    По умолчанию

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

    По поводу защёлок - надо смотреть каждый случай. Как уже сказали, она реализуема физически. Но! Может быть, что в математический и verilog-модели этот элемент будет вообще лишним. Либо же будет являться элементом памяти конечного автомата, а многие FPGA имеют для этих целей скоростную внутреннюю память.

  2. #162

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

    По умолчанию

    Почитал про Verilog. В общих чертах все понятно, и что такое always-блоки.
    Правда, пока не понял, как задавать такой блок И для спада CLK, и для фронта.
    И при этом, чтобы в блоке для фронта и спада делались разные действия.

  3. #163

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

    По умолчанию

    Если мне память не изменяет, то в списке событий блока можно просто указать сигнал, и тогда блок будет "выполняться" при каждом изменении сигнала. Но если надо для фронта и для спада делать разные действия, то должно быть два always-блока с posedge и negedge. Но как сейчас это согласуется с современными ПЛИС - надо поинтересоваться у знающих людей. На "циклоне" синтезировалось без проблем, и каких либо ухудшений по тактовым частотам или по неопределённым состояниям не видел.

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

    Опять же, FPGA - это синхронный дизайн. И идеальный путь, чтобы всё синхронизировалось по общему тактовому сигналу. Тогда минимум проблем будет.

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

    Titus(31.08.2024)

  4. #164

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Почитал про Verilog. В общих чертах все понятно, и что такое always-блоки.
    Правда, пока не понял, как задавать такой блок И для спада CLK, и для фронта.
    И при этом, чтобы в блоке для фронта и спада делались разные действия.
    always-блок не может работать по фронту и спаду от одного и того же сигнала (в данном случае CLK). Только либо по фронту либо только по спаду.
    https://www.asic-world.com/examples/...flip_flop.html

  5. #165

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

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    always-блок не может работать по фронту и спаду от одного и того же сигнала (в данном случае CLK). Только либо по фронту либо только по спаду.
    И реализовать мою задачу можно с помощью?..

  6. #166

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    И реализовать мою задачу можно с помощью?..
    Несколько не понял вопроса.
    155ТМ2 ни разу не работает по двум фронтам тактового сигнала и вроде на них собрано до фига и больше различных устройств. Я не вижу причин , которые однозначно не позволят реализовать "этот проект"

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

  8. #167

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

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    Несколько не понял вопроса.
    155ТМ2 ни разу не работает по двум фронтам тактового сигнала и вроде на них собрано до фига и больше различных устройств. Я не вижу причин , которые однозначно не позволят реализовать "этот проект"
    Разные действия, грубо говоря, означают разные логические функции. Следовательно должно быть два always блока.
    always @(posedge clk) begin ... end
    always @(negedge clk) begin ... end
    Опять же, как оно синтезируется в соверменных FPGA, с учётом упрощения логических блоков, о котором вы упоминали...

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

    Titus(31.08.2024)

  9. #168

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

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    Несколько не понял вопроса.
    155ТМ2 ни разу не работает по двум фронтам тактового сигнала и вроде на них собрано до фига и больше различных устройств. Я не вижу причин , которые однозначно не позволят реализовать "этот проект"
    Да все позволяет. Просто в одном блоке есть TM2, на которые заведен CLK, и есть TM2, на которые заведен /CLK. Удваивать частоту нельзя. Надо так и работать, чтобы часть триггеров по фронту переключалась, часть по спаду.

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

    Цитата Сообщение от aviator Посмотреть сообщение
    учётом упрощения логических блоков, о котором вы упоминали...
    Что за упрощение?

  10. #169

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Что за упрощение?
    Вот тут говорилось про отличия между поколениями Xilinx. Это уже мимо меня прошло.

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

    Titus(31.08.2024)

  11. #170

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

    По умолчанию

    Цитата Сообщение от aviator Посмотреть сообщение
    ... отвлечься от абстракций в виде электрических принципиальных схем на "рассыпухе", а вернуться к математическо-программистским корням, к дискретной математике и теории вычислительных процессов. А именно - к комбинаторике, графам, автоматам различных типов и их оптимизации. И вот это всё на Verilog перекладывается просто превосходно.... А оптимизацией синтезируемой логической схемы займётся софт.
    Полностью абстрагироваться от железа и полностью полагаться на оптимизацию софтом - большая ошибка. С таким подходом получаются огромные и тормозные реализации в FPGA. Я видел множество примеров функциональных блоков от той же фирмы Xilinx, где такое вот абстрактное программирование раздувало потребление ресурсов кристалла сверх всякой меры.

    Конечно, мышление в терминах логических схем плохо ложится на VHDL/Verilog. Но это объясняется тем, что VHDL/Verilog - это языки симуляции, а не описания логических схем. Их под роль описания приспособили насильно.

    Из своего опыта могу сказать, что наилучшие результаты дает нахождение некоторого компромисса. Мыслить по-прежнему в логике, регистрах и мультиплексорах. Лишь некоторые сложные узлы, вроде конечных автоматов со сложной диаграммой переходов, можно оставить на синтез и оптимизацию софту, а самому придумывать их именно в виде конечных автоматов, а не логических схем, и напрямую описывать как автоматы на Verilog/VHDL.

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

    Я в начале, как учился разработке на FPGA, пытался все делать в виде логических элементов, регистров и т.п., полностью на уровне схемы. Сделал себе VHDL-блоки для регистров, счетчиков и т.п. с настраиваемыми параметрами, а далее вставлял их в "схему", т.е. VHDL-элемент более высокого уровня. Такой подход работал, но позже я понял, что он неэффективный в плане удобства разработки. И стал уже напрямую не вставлять в схему счетчики, а писать для них "процессы" или даже вставлять реализацию счетчиков в другие процессы, которые еще чем-то занимались. Получал на выходе синтеза те же самые схемы, но более лаконично описанные.

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

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

    Цитата Сообщение от Titus Посмотреть сообщение
    Правда, пока не понял, как задавать такой блок И для спада CLK, и для фронта.
    И при этом, чтобы в блоке для фронта и спада делались разные действия.
    В твоем случае лучше всего иметь как минимум два разных always-блока, один для фронта, второй для спада. И выполнять в каждом из них соответствующие действия.

    В Verilog или VHDL можно создать always-блок (или процесс), запускающийся и по фронту, и по спаду, и вообще по произвольным событиям. Но такой блок может быть затруднителен для синтеза схемы. Одно маленькое отличие логики внутри блока - и потребление ресурсов кристалла возрастет десятикратно. И триггеры будут реализовываться не на встроенных в кристалл триггерах, а на комбинационных схемах с обратной связью. И тому подобные аномалии. Лучше всего иметь только always-блоки по фронту или спаду, и никаких других.
    Последний раз редактировалось Barmaley_m; 31.08.2024 в 21:17.

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

    AlexG(31.08.2024), Titus(31.08.2024)

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

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

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

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

Ваши права

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