User Tag List

Показано с 1 по 10 из 803

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

Древовидный режим

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

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

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    у чипов DC год неделя, только британцы по своему выеживаются
    Вообще не понял, на что этот ответ)

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

    Еще несколько вопросов по vivad'е:

    1. Как компилировать проект без запуска симуляции, чтобы просто проверить на ошибки?
    2. Можно ли счетчику (регистру, вход которого соединен с выходом), не задавать никакого начального значения? Это используется в Z80, например, для выбора набора регистров, общий набор/альтернативный. Там абсолютно все равно, какой набор включен при старте процессора, т.к. наборы равнозначные. В vivad'е если такому регистру не установить начальное значение, то он всегда будет в неопределенном состоянии. Можно ли, чтобы при запуски в нем просто было случайное значение любое?
    3. По поводу встроенных в ПЛИС модулей памяти. Когда я пишу вот такой простейший модуль памяти:

    Код:
    module ram(
        input            clk,                           // Тактовый сигнал для синхронного чтения
        input  [7:0]     data_in,                       // Шина данных (8 бит) (ввод)
        output reg [7:0] data_out,                      // Шина данных (8 бит) (вывод)
        input  [15:0]    adr,                           // Шина адреса (16 бит)
        input            mreq,                          // Запрос доступа к памяти (на шине адреса установлен адрес для доступа к памяти)
    //  input            rd,                            // Запрос чтения памяти
        input            wr                             // Запрос записи в память
        );
        
        reg [7:0] ram [0:15];                           // ОЗУ на 16 байт
        
        initial $readmemh("ram_image.mem", ram);        // Загрузить дамп данных из файла в память
        
        always @(negedge clk)                           // Активность по отрицательному фронту clk
    	begin
            if (wr & mreq)                              // Если активны сигналы WR (запись) и MREQ (запрос памяти),
                ram[adr] <= data_in;                    // то записать байт в память по адресу adr
            else                                        // Всегда, когда не записи, идет чтение памяти
                data_out <= ram[adr];                   // то выдать байт из памяти по адресу adr на выходной регистр шины данных  
        end
        
    endmodule
    Из него получается вот такая схема:

    Скрытый текст

    [свернуть]


    Меня смущает, что RTL_RAM тактируется фронтом на входе WCLK, а сгенерированный регистр RTL_REG тактируется (но спадом). Тогда по логике, память работает по фронту CLK, а выходной регистр по спаду. Но это не соответствует моему коду. Почему так? Если у встроенной памяти есть на выходе защелка, зачем компилятор ставит дополнительную (RTL_REG)? И зачем тут вообще этот RTL_MUX?

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

    4. Да, и как запомнить положение и соотношение окон в проекте? А то каждый раз при запуске симуляции все сьезжает.
    5. И наконец снова не нарадуюсь, на сколько Vivado дружественней, чем ModelSim.
    6. Как настроить, чтобы при запуске симуляции она запускалась сразу на какое-то количество временных отрезков заданное мною, чтобы я сразу видел результат в окне. Да и как сделать, чтобы окно симулятора запомнило, какие сигналы я хочу смотреть, какие надо скрыть?
    Последний раз редактировалось Titus; 18.10.2024 в 18:52.

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

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

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

Ваши права

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