User Tag List

Страница 54 из 81 ПерваяПервая ... 505152535455565758 ... ПоследняяПоследняя
Показано с 531 по 540 из 803

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

  1. #531

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

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    лучше совмещать реализацию и симуляцию
    Что это означает?

  2. #532

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

    По умолчанию

    собственно сообщение 527.

    в module counter должен быть ТОЛЬКО синтезируемый код.
    а в module testbench всё что относится к тестированию.
    Собственно там так и сделано - норм.
    По module counter (в вивадо или алтера) можно посмотреть "схему" во что превращается описание. Какие есть возможности у других программ - я без понятия.

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

    Titus(15.10.2024)

  3. #533

    Регистрация
    12.12.2007
    Адрес
    Жлобин
    Сообщений
    47
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    79
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Да, оставлять можно только в '1', т.е. внешний инверсный уровень - это '0'.
    Иначе внутренние динамические латчи, сделанные за счет удержания заряда на емкостях затворов, разрядятся и все.
    Затворные емкости в любом случае разрядятся со временем, ибо существует ток утечки затворной емкости в нашем неидеальном мире И для чипов использующих динамические латчи в доках обычно прописывается минимально возможная частота клока, при которой динамические латчи работают без амнезии . Также возможны варианты построения ДФФ на паре SLATCH + DLATCH, в этом случае статический латч обычно идет первым в цепочке и сохраняет свое состояние при отсуствии клока очень продолжительное время, а следующий динамический латч повторяет входные данные с первого слатча.

  4. #534

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

    По умолчанию

    Пока никто не прояснил мои вопросы по ModelSim, спрошу еще по Verilog'у:
    Как обычно реализуют модули с двунаправленными шинами? Например, как шина данных на Z80?

  5. #535

    Регистрация
    12.12.2007
    Адрес
    Жлобин
    Сообщений
    47
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    79
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Пока никто не прояснил мои вопросы по ModelSim, спрошу еще по Verilog'у:
    Как обычно реализуют модули с двунаправленными шинами? Например, как шина данных на Z80?
    Если это внешняя двунаправленная шина то через примитив TRI.
    assign DATA[7:0] = ~RW ? DOR[7:0] : 8'hZZ;
    Также, драйвить шину могут несколько источников, необходимо разрулить доступ к шине без конфликтов в таком случае.

  6. #536

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

    По умолчанию

    Цитата Сообщение от and1981 Посмотреть сообщение
    Также, драйвить шину могут несколько источников, необходимо разрулить доступ к шине без конфликтов в таком случае.
    Как именно обычно это делают?

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

    Цитата Сообщение от and1981 Посмотреть сообщение
    Если это внешняя двунаправленная шина то через примитив TRI.
    В виде чего DATA обозначается в параметрах модуля? У него же только Input или Output параметры.

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

    Можно привести маленький пример модуля с двунаправленной шиной?

  7. #537

    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    403
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    66 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    В виде чего DATA обозначается в параметрах модуля? У него же только Input или Output параметры.
    Ещё есть Inout

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

    Titus(15.10.2024)

  8. #538

    Регистрация
    12.12.2007
    Адрес
    Жлобин
    Сообщений
    47
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    79
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    DATA объявляется так :
    inout[7:0] DATA;
    Вот наш с Оргом общий проект старого верилога 6502 https://github.com/andkorzh/OLD-Veri...log/Core6502.v
    Топ модуль содержит двунаправленную шину DATA[7:0].

    От конфликтов избавится можно путем разделения доступа с помощью комбинаторики, чтобы исключалась возможность одновременного присуствия двух и более драйверов на шине. Обычно процессоры в своей внутренней логике уже содержат подобные блокировки, и оно будет работать "из коробки" если точно повторять внутреннюю структуру чипа. Например декодер портов чтения, который имеет только одно значение на выходе и управляет загрузкой данных на шину из разных источников, это избавляет от этой проблемы полностью.
    Последний раз редактировалось and1981; 15.10.2024 в 12:36.

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

    Titus(15.10.2024)

  9. #539

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

    По умолчанию

    Цитата Сообщение от and1981 Посмотреть сообщение
    Обычно процессоры в своей внутренней логике уже содержат подобные блокировки, и оно будет работать "из коробки" если точно повторять внутреннюю структуру чипа.
    Как это делается в настоящих процессорах, я прекрасно знаю)
    Меня интересует именно Verilog описание версии, которая годится для FPGA. Т.е. без настоящих Z-состояний.

  10. #540

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

    По умолчанию

    module top(
    input clk,
    input rd,
    input wr,
    inout data
    );

    reg data_out;
    wire data_in;

    always @(posedge clk)
    if (wr)
    data_out = data_in;


    assign data = rd ? data_out : 1'bz;
    assign data_in = data;

    endmodule
    schematic.pdf

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

    module top(
    input clk,
    input csA,
    input csB,
    input dataA,
    input dataB,
    output data
    );

    reg data;

    always @(posedge clk)
    begin
    case ({csA,csB})
    2'b10: data = dataA;
    2'b01: data = dataB;
    2'b00: data = data;
    default: data = 1'b1;
    endcase
    end

    endmodule
    schematic1.pdf schematic2.pdf

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

    Ну или вот такое извр

    always @(posedge clk)
    begin
    data <= csA ? dataA : csB ? dataB : 1'bz;
    end
    schematic3.pdf schematic4.pdf

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

    Можно - но НЕ нужно использовать значение 1'bz внутри схемы.
    1'bz - это для ВНЕШНИХ буферов (физический вывод).
    ПС: примеры не самые изящные - айэмсорри (с)

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

    Titus(15.10.2024)

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

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

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

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

Ваши права

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