User Tag List

Страница 56 из 273 ПерваяПервая ... 525354555657585960 ... ПоследняяПоследняя
Показано с 551 по 560 из 2727

Тема: Цифровая археология: 1801 и все-все-все

  1. #551

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Т.е. в самом исходнике на верилоге необходимо прямо расписать всё это побитно?
    Нет, на верилоге все правильно записано. И в схеме все правильно, тесты же процессор проходит. Необходимо расписать побитно на С, чтобы получить корректный результат. Такая параллельная запись, как на верилоге, прямо перенесенная на С в неизменном виде, не отображает функцию правильно.

    То есть, на С вычислять надо развернутый вариант, тогда будет правильный результат за один проход и нет обратной зависимости:
    Код:
    c[0] = (cl & oxy[0]) | (~cl & axy[0] & oxy[0]);
    c[1] = (c[0] & oxy[1]) | (~c[0] & axy[1] & oxy[1]);
    c[2] = (c[1] & oxy[2]) | (~c[1] & axy[2] & oxy[2]);
    ...
    c[14] = (c[13] & oxy[14]) | (~c[13] & axy[14] & oxy[14]);
    c[15] = (c[14] & oxy[15]) | (~c[14] & axy[15] & oxy[15]);
    Цитата Сообщение от gid Посмотреть сообщение
    то нужно знать начальное значение cpred
    Не нужно, cpred лучше вообще сократить, и вместо него использовать вектор {c[14:0], cl}. То есть - в любой момент времени значение cpred[0] равно cl, cpred[1] равно c[0] и так далее. Вместо cpred можно использовать cl и c[14:0] непосредственно.

  2. #552

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    То есть, на С вычислять надо развернутый вариант, тогда будет правильный результат за один проход и нет обратной зависимости
    А тут во второй строке вместо c[0] нужно подставлять значение c[0], вычисленное в первой строке, или предыдущее значение c[0], которое было до вычисления первой строки?

    Цитата Сообщение от Vslav Посмотреть сообщение
    То есть - в любой момент времени значение cpred[0] равно cl, cpred[1] равно c[0] и так далее. Вместо cpred можно использовать cl и c[14:0] непосредственно.
    т.е. если сперва вычислить с побитно, то потом cpred будет гарантированно таким {c[14:0], cl}?
    Просто далее cpred используется для вычисления f, а вычислять по отдельному биту - занятие трудоёмкое, лучше использовать логические операции над словами сразу.
    Последний раз редактировалось gid; 23.04.2015 в 09:36.

  3. #553

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    А тут во второй строке вместо c[0] нужно подставлять значение c[0], вычисленное в первой строке, или предыдущее значение c[0], которое было до вычисления первой строки?
    Это я привел сразу запись нужного алгоритма на Си, вычисление переменной с за один проход, соответственно надо подставлять вычисленное в предыдущей строке значение. По существу - этот код отображает распространение переноса в многоразрядном полном сумматоре.

    Цитата Сообщение от gid Посмотреть сообщение
    т.е. если сперва вычислить с побитно, то потом cpred будет гарантированно таким {c[14:0], cl}?
    Он всегда будет таким, в любой момент. Ведь функция никакая не вычисляется, это просто алиас на ту же самую переменную. На Си можно рассматривать как (опуская синтаксический вопрос скобок):

    Код:
    #define cpred[0] cl
    #define cpred[1] c[0]
    ...
    #define cpred[15] c[14]
    cpred - перенос с предыдущего разряда, используется в составе полного многоразрядного сумматора.

    Цитата Сообщение от gid Посмотреть сообщение
    Просто далее cpred используется для вычисления f, а вычислять по отдельному биту - занятие трудоёмкое, лучше использовать логические операции над словами сразу.
    Имхо, сначала надо корректно перенести реализацию на Си, в любом громоздком и некрасивом виде, заставить это работать, а потом уже можно заниматься оптимизациями. На этом этапе логические операции можно применять только если они эквивалентны операции над массивом бит и все изменения результирующих битов будут обработаны. То есть, как в рассматриваемом случае с c/cpred - изменение каждого бита требует перерасчета следующего, поэтому одной простой операцией над словом этот алгоритм не реализовать.

  4. #554

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Осознал и понял как оно там всё. С этим ясно, получилось такое:
    Код:
    	bool bAXY[16], bOXY[16], bC[16], bF[16], bH[16]; //битовые массивы
    	data2bita(oxy, bOXY, 16); //разворачиваем слово в битовый массив
    	data2bita(axy, bAXY, 16); //и это
    	data2bita(h, bH, 16); //и это тоже, их значения вычислены ранее
    	bool cn, cl = curr_reg.cl; //начальная инициализация C
    	for (int i = 0; i < 16; i++) //цикл по всем битам
    	{
    		bC[i] = cn = (cl || (!cl && bAXY[i])) && bOXY[i];	//вычисляем текущий бит C
    		bF[i] = curr_reg.alu_e ? bH[i] : !(cl ^ bH[i]);		//вычисляем текущий бит F
    		cl = cn; //следующий бит будет такой
    	}
    	WORD f; //F нам понадобится потом как слово
    	bita2data(f, bF, 16); //поэтому сворачиваем битовый массив обратно в слово
            //а С нам всё равно нужно только в виде отдельных битов потом
    Тут начал прикидывать как получившуюся модель использовать, и получается что и материнскую плату надо в таком же виде моделировать, всё вплоть до отдельных сигналов и проводников. Как-то очень низкоуровнево и муторно получается. Пока что-то нет идей как проверить работоспособность того, что наваялось, кроме как примерно таким же образом сконвертировать нужные кусочки из tbench.v

  5. #555

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    148
    Поблагодарили
    79 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    получается что и материнскую плату надо в таком же виде моделировать, всё вплоть до отдельных сигналов и проводников
    В принципе - для встраивания V-модели процессора в любой существующий эмулятор достаточно написать "прокси-адаптер", который будет преобразовывать циклы шины ( и другие сигналы ) на выходах V-модели в запросы API эмулятора.

    Мало того, можно использовать V-модель одновременно со старой абстрактной моделью того же процессора и на каждом шаге эмуляции автоматически сравнивать их поведение.

  6. #556

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

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

  8. #557

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Съемки всех интересных 1801ВП1 закончены.
    Все-все ВП1 от УКНЦ разве сфотканы?

  9. #558

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Все-все ВП1 от УКНЦ разве сфотканы?
    Угу, 055 полностью отреверсена, 120 векторизована и схема в пикаде проверяется и форматируется. 065 моделируется. Материалы на УКНЦ-шные ВП1 будут выложены по готовности.

  10. #559

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

    По умолчанию

    1801ВМ1Г, половинное разрешение (45МБ)
    1801ВМ1Г, полное рарешение (525МБ)

    Подставил слой металла ВМ1Г в дралоскоп под проект ВМ1А, слои металла полностью совпали. То есть - слои металла ВМ1А и ВМ1Г одинаковы. Возможно, будут отличия в схеме на уровне поликремния или диффузии - это визуально сложно обнаружить, но уже есть хороший шанс что процессоры отличаются только микропрограммой.

  11. #560

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    есть хороший шанс что процессоры отличаются только микропрограммой.
    Вот это было бы интересно.

    Если умножение сделано микропрограммно, то оно, наверное, весьма медленное.

Страница 56 из 273 ПерваяПервая ... 525354555657585960 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 28.06.2014, 17:50
  2. Микросхемы МПК 580,1801,1810 и другие...
    от Alex_Vac в разделе Барахолка (архив)
    Ответов: 44
    Последнее: 07.04.2012, 08:03
  3. ЦИФРОВАЯ МУЗЫКА НА ZX
    от AAA в разделе Музыка
    Ответов: 98
    Последнее: 18.09.2011, 22:33
  4. Учебный стенд УМПК-1801
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 12.05.2010, 16:52
  5. Цифровая музыка от Вадима Ермеева
    от zxmike в разделе Музыка
    Ответов: 2
    Последнее: 06.08.2007, 23:13

Метки этой темы

Ваши права

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