User Tag List

Страница 112 из 174 ПерваяПервая ... 108109110111112113114115116 ... ПоследняяПоследняя
Показано с 1,111 по 1,120 из 1740

Тема: Реверс-инжиниринг УКНЦ (1515ХМ1&2, 1801ВП1, 1801ВМ2)

  1. #1111

    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    429
    Поблагодарили
    196 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, сложновато.
    Выкрутился по другому. Из ПП с помощью регистрового механизма записываю в ЦП по адресам o160000 и o160002 следующие значения: #100000 и #200, а тестовую программу с адреса o100000.
    Тест при моделировании проходит, а в железе нет. Буду разбираться. Хотя тесты регистрового механизма в ПП работают в железе.

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

  3. #1112

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ynicky Посмотреть сообщение
    Да, сложновато.
    Выкрутился по другому. Из ПП с помощью регистрового механизма записываю в ЦП по адресам o160000 и o160002 следующие значения: #100000 и #200, а тестовую программу с адреса o100000.
    Ну можно и так, хотя никакой сложности, по моему, нет. А что в железе конкретно не проходит? Регистр адреса планов там просто регистр, должен читаться и записываться через адрес 0176640. А вся работа происходит при чтении и записи регистра данных 0176642. В этом отличие от контроллера ПП.

  4. #1113

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

    По умолчанию PLM условных переходов

    Расшифровал PLM условных переходов.

    Вернее, написал программу, которая по матрице все расшифровала, а я уже потом вручную подписал мнемоники, соответствующие кодовым маскам.

    Условные обозначения:
    NA4, NA5 - пока что неведомый мне код режима.
    Ну а остальное все понятно - битовая маска кода операции, флаги и расшифровка мнемоники

    Код:
    NA4 = 1, NA5 = 1:
    
    0.000.x00.1xx			BR
    0.000.xx1.1xx   Z=1		BEQ, BLE
    x.000.x01.1xx   Z=1		BEQ, BLOS
    1.000.x11.0xx   C=0		BCC
    1.000.xx1.1xx   C=1		BCS, BLOS
    1.000.x00.0xx   N=0		BPL
    1.000.x00.1xx   N=1		BMI
    1.000.x10.0xx   V=0		BVC
    1.000.x10.1xx   V=1		BVS
    0.000.x10.0xx   V=1,N=1		BGE
    0.000.x10.0xx   V=0,N=0		BGE
    0.000.x1x.1xx   V=1,N=0		BLT, BLE
    0.000.x1x.1xx   V=0,N=1		BLT, BLE
    
    
    NA4 = 1:
    
    0.000.x01.0xx   Z=0,		BNE   
    1.000.x01.0xx   C=0,Z=0		BHI
    0.000.x11.0xx   V=1,Z=0,N=1	BGT
    0.000.x1x.0xx   V=0,Z=0,N=0	BGT, BGE
    
    
    NA4 = 0, NA5 = 1:
    
    BIT_13 | BIT_14 | BIT_15 = 1
    
    
    NA4 = 1, NA5 = 0:
    
    Z=0
    
    
    NA4 = 0, NA5 = 0:
    
    N=0

  5. #1114

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Не можно, а нужно обьеденить все три линии по OR. И выкинуть две строки в матрице.
    Это для FPGA оптимизирует синтезатор, а я программист и мне нравится оптимизированная логическая схема.
    Ты не видишь всей картины целиком, повторюсь - функция считается по вертикали (если смотреть на мою схему), даже с точки зрения эмулятора твоя "оптимизация" потребует лишней операции в программе. Твой дополнительный "if (rq & (0x7 << 3))" будет совсем не в тему (потому что он дублирует & при вычислении столбцов). Открой vm2_oplm.v, и посмотри как матрица описана и подумай как это оптимально сделать на Си, раз уж ты программист . И, тем более, про SSE2 я не просто так писал Всю эту матрицу ветвления можно чпокнуть целиком за 3-4 векторных инструкции x86.

    Цитата Сообщение от Titus Посмотреть сообщение
    а линии NA как расшифровываются? Как линии с неопознанной деятельностью?
    Next Address (Field).

    Цитата Сообщение от Titus Посмотреть сообщение
    Очевидно, нужно вызвать прерывание, переводящее процессор в режим USER.
    Или использовать инструкции "доступ к чужому пространству"

  6. #1115

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пока эта "схема не на транзисторах" не будет доказана хотя бы прохождением тестов - толку от неё никакого.
    Ибо нарисовать можно что угодно и отдельные части могут даже работать, а на интеграционных тестах всё полетит лесом.

  7. #1116

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот код матрицы на Verilog
    Код:
    module vm2_plb_model
    (
       input  [13:0] rq,
       output sp
    );
    wire [19:0] p;
    
    function cmp
    (
       input [13:0] ai,
       input [13:0] mi
    );
    begin
       casex(ai)
          mi:      cmp = 1'b1;
          default: cmp = 1'b0;
       endcase
    end
    endfunction
    
    assign p[0]    = cmp(rq[13:0], 14'b111x1xx0000100);
    assign p[1]    = cmp(rq[13:0], 14'bx1000xx00001x0);
    assign p[2]    = cmp(rq[13:0], 14'b110xxxx1000000);
    assign p[3]    = cmp(rq[13:0], 14'bx1101xx0000110);
    assign p[4]    = cmp(rq[13:0], 14'b11xx1xx1000101);
    assign p[5]    = cmp(rq[13:0], 14'b11xxxxx0000001);
    assign p[6]    = cmp(rq[13:0], 14'bx1x0xxx0000010);
    assign p[7]    = cmp(rq[13:0], 14'bx1x0x0x1000010);
    assign p[8]    = cmp(rq[13:0], 14'b11xx0xx1000100);
    assign p[9]    = cmp(rq[13:0], 14'b11xxx1x1000x11);
    assign p[10]   = cmp(rq[13:0], 14'b110x0xx0000100);
    assign p[11]   = cmp(rq[13:0], 14'b110x1xx00001x1);
    assign p[12]   = cmp(rq[13:0], 14'b11xxx0x1000110);
    assign p[13]   = cmp(rq[13:0], 14'b111x0xx00001x1);
    assign p[14]   = cmp(rq[13:0], 14'b111xxxx1000001);
    assign p[15]   = cmp(rq[13:0], 14'b10xxxx0xxxxxxx);
    assign p[16]   = cmp(rq[13:0], 14'b11x1xxx0000x11);
    assign p[17]   = cmp(rq[13:0], 14'b01x0xxxxxxxxxx);
    assign p[18]   = cmp(rq[13:0], 14'b11x1xxxx000011);
    assign p[19]   = cmp(rq[13:0], 14'b000xxxxxxxxxxx);
    
    assign sp = ~|p[19:0];
    endmodule
    Вот прототип функции на С без векторных инструкций:
    Код:
    #define cmp(x, value, mask) !((x) ^ (values)) & (mask)
    
    unsigned int vm2_plb(unsigned int rq)
    {
        return !(cmp(rq, 0b11101000000100, 0b11101001111111) ||
                 ...
                 cmp(rq, 0b11101000000100, 0b11101001111111));
    }
    Как только какой-то cmp() выдаст совпадение - вычисление прекратиться. При наличии SSE2 cmp() можно делать не 20 раз по 14 бит, а сразу вломить одним 512 битным.
    PS. Камрады, а вам не кажется что ВМ2 тут оффтопик? И потом - эти посты тут будет сложновато найти.
    Последний раз редактировалось Vslav; 19.09.2020 в 13:21.

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

    yu.zxpk(19.09.2020)

  8. #1117

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    PS. Камрады, а вам не кажется что ВМ2 тут оффтопик? И потом - эти посты тут будет сложновато найти.
    Можно переименовать тему в ХМ1515 и ВМ2)

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

    Цитата Сообщение от Vslav Посмотреть сообщение
    Ты не видишь всей картины целиком, повторюсь - функция считается по вертикали
    Я все прекрасно вижу)
    Ты смотришь глазами железячника, и даже советы твои по поводу SSE и сверх-широких операций идут с точки зрения железячника)

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

    Цитата Сообщение от Hunta Посмотреть сообщение
    Пока эта "схема не на транзисторах" не будет доказана хотя бы прохождением тестов - толку от неё никакого.
    Ибо нарисовать можно что угодно и отдельные части могут даже работать, а на интеграционных тестах всё полетит лесом.
    А это к чему фраза? )

  9. #1118

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Можно переименовать тему в ХМ1515 и ВМ2)
    И как это поможет с
    Цитата Сообщение от Vslav Посмотреть сообщение
    эти посты тут будет сложновато найти.
    Цитата Сообщение от Titus Посмотреть сообщение
    А это к чему фраза?
    К факту наличия доказательств корректности работы схемы "не в транзисторах"

    Результат работы Vslav очень просто пощупать и проверить. Как это сделать с твоей схемой - я пока не понимаю.

  10. #1119

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

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Как это сделать с твоей схемой - я пока не понимаю.
    Думаю, что варианта как минимум два. Когда схема будет дорисована и дооптимизирована, то:
    1. Реализовать ее в Verilog'e, как любит Vslav и Yniky.
    2. Написать по логической схеме эмулятор.

  11. #1120

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Написать по логической схеме эмулято
    Это не будет доказательством, ибо сначала надо будет доказать, что эмулятор написан именно по логической схеме, а не по тому, как автор эмулятора ей понял.

    Цитата Сообщение от Titus Посмотреть сообщение
    Реализовать ее в Verilog'e, как любит Vslav и Yniky.
    Уже есть. Поэтому совсем не понятно - кто будет ещё раз это делать?

Страница 112 из 174 ПерваяПервая ... 108109110111112113114115116 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 32
    Последнее: 18.12.2024, 18:19
  2. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  3. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46
  4. Куплю 1515ХМ1-6006, 1515ХМ1−6008
    от moxjemi в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 10.01.2012, 17:23
  5. 1801ВМ2 А и Б
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 03.05.2010, 11:51

Ваши права

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