Важная информация

User Tag List

Страница 10 из 48 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя
Показано с 91 по 100 из 472

Тема: Потактовый клон i8080 на FPGA/CPLD

  1. #91
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,412
    Спасибо Благодарностей отдано 
    322
    Спасибо Благодарностей получено 
    600
    Поблагодарили
    446 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Забавно получается - триггеры постоянно тактируются F2 (если ничего не напутано). Если остановится F2 в низком уровне - регистр инструкции все "забудет".
    Не зря я, значит, интуитивно "притормаживаю" ВМ80 в МХ2 на Ф1=0 и Ф2=1 на 1 такт, чтобы получить из 2,5МГц производительности 2МГц производительность (с джиттером на 1 такт частоты 2,5МГц).
    Цитата Сообщение от Bolt Посмотреть сообщение
    Тогда ищите precharge - шина в какой-то момент "заряжается", подключаясь напрямую к +5, может даже одновибратором, а потом нужные разряды разряжаются нижними транзисторами. Получается быстрее, чем тянуть её вверх подтяжками.
    А вот про пречердж как раз промелькивало в одной из русских внутренних блок-диаграмм. Вот, у соседей промелькнуло как-то (СЗМ - Схема Заряда Магистрали), кликабельно:


    Код:
    СФС  - Схема формирования сброса
    ВМД  - Внутренняя магистраль данных
    СЗМД - Схема заряда магистрали данных
    
    [БА - Буфер адреса]
    БА   - Буфер адреса
    СУпр - Схема управления буфером адреса
    
    [БД - Буфер данных]
    БД   - Буфер данных
    СУБД - Схема управления буфером данных
    
    [БРг - Блок регистров]
    СК   - Счетчик команд
    УС   - Указатель стека
    RA   - Регистр адреса
    I/D  - Схема инкремента и декремента
    М1,2 - 8ми разрядный мультиплексор
    М3   - 16ти разрядный мультиплексор
    
    [АЛУ - Арифметико-логическое устройство]
    Rn  - 8ми разрядный регистр
    КП  - Кодопреобразователь
    СМ  - Комбинационный сумматор
    А   - Аккумулятор
    F   - Регистр условий
    СДК - Схема десятичной коррекции
    
    [СУ - Схема управления]
    РК   - Регистр команд
    ПЛМn - Программируемая матрица декодера
    СВР  - Схема выборки регистра
    САП  - Схема анализа переходов
    СВС  - схема выдачи состояния
    СУМЦ - Схема управления машинными циклами
    СУМТ - Схема управления машинными тактами
    СУПР - Схема управления регистрами
    
    [CC - Схема cинхронизации]
    СФМТ - Схема формирования машинных тактов
    СФМЦ - Схема формирования машинных циклов
    СФС  - Схема формирования сигнала Sync
    
    [СУОИ - Схема управления обменом информации]
    САПР - Схема анализа прерываний
    САЗШ - Схема анализа захвата шины
    САГ  - Схема анализа готовности
    PS А вот и сам док, кому интересно. Страницы с 37 до 66. Попутно, там даны интересные блок-схемы других микросхем комплекта. Есть на что взглянуть.
    Последний раз редактировалось HardWareMan; 29.05.2014 в 17:34.

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

  3. #92
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    6 16-разрядных чётко видно, может ещё где запрятаны. BC DE HL PC SP что-то еще, на приведённой HardWareMan блок-схеме их 7. Там по два инвертора в кольце должно быть, по 4 транзистора на бит. На каждый 16-разрядный регистр по 32 коммутирующих транзистора (горизонтальные полисиликоновые проводники на фотографии, "перечёркивающие" блок регистров), подсоединяющие этот регистр к 32-проводной шине (прямой и инвертированный бит). С этой шины через схему чтения и два коммутатора (старший и младший байт) данные идут на 8-разрядную ШД. С 8-разрядной ШД через мощные драйверы (по 2 на бит, прямой/инверсный) и коммутаторы (также 2, для каждого байта свой) происходит запись, драйверы "передавливают" инверторы в нужное состояние.

    Сужу по Z80, здесь вроде такая же структура просматривается с поправкой на два напряжения питания. Если надо могу что-нибудь для наглядности нарисовать

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

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Да нормально там регистров
    Да, оказалось всего шесть 16-тиразрядных регистров, соединенных общей 16-битной шиной. Возможны побайтные чтение-запись со стороны общей шины 8-битной шины, а также 16-битное чтение-запись со стороны схемы инкремента-декремента. Как работает понятно, но там 1000+ транзисторов, это несколько вечеров рисовать.

  5. #94
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А надо ли это всё вырисовывать? Может потом? А пока 8 проводов ШД и 10 проводов управления, остальное - "чёрный ящик".

    ---------- Post added at 00:29 ---------- Previous post was at 00:23 ----------

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    А вот про пречердж как раз промелькивало в одной из русских внутренних блок-диаграмм. Вот, у соседей промелькнуло как-то (СЗМ - Схема Заряда Магистрали)
    То есть оно как бы к другому блоку относится? Но у регистров и правда на чтение только нижний транзистор. Хотя может и этот же precharge использоваться...

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

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    А надо ли это всё вырисовывать? Может потом? А пока 8 проводов ШД и 10 проводов управления, остальное - "чёрный ящик".
    Да, надо подумать как это сблокировать. Создать отдельный триггер как встроенный компонент, или, наконец, пришло время разобраться с поддержкой иерархии в PCAD. Ну а так "в лоб" я уже примерно треть блока регистров нарисовал. Дальше будет схема 16-битного инкремента-декремента и от нее и от блока регистров потянется уже управление к декодеру инструкций.

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

    По умолчанию

    Блок регистров, мултиплексор, буфер адреса, схема инкремента-декремента 16-битного значения. Реализация инкремента-декремента с частичным параллельным переносом, максимальная цепочка последжовательного переноса - 5 стадий. Любопытно что то что инкрементится/декрементится будет попутно попадать на выходы A15-A0. Посмотрим как INX/DCX сделаны, думаю что не на этой схеме, потому что нет выхода на флаги.
    Вложения Вложения
    • Тип файла: rar reg.rar (447.8 Кб, Просмотров: 176)

  8. #97
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,412
    Спасибо Благодарностей отдано 
    322
    Спасибо Благодарностей получено 
    600
    Поблагодарили
    446 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я думаю, что I/D сделан по подобию реверсивного 16ти битного счетчика. Схема простая и обкатанная.

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

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Я думаю, что I/D сделан по подобию реверсивного 16ти битного счетчика. Схема простая и обкатанная.
    Там не совсем счетчик, триггеров нет. Есть просто комбинационная схема +1/-1, и отдельный регистр. Полностью на параллельный перенос не пошли - транзисторы решили сэкономить, а на самом экономном полностью последовательном переносе. видимо. скорости не хватало. В итоге сделали компромисc - три стадии последовательного переноса, между ними параллельный. Гибрид, в-общем.

    Вчера, кажется нарыл, СФМЦ. Забавно, там самих триггеров нет, все на емкостях затворов построено. То есть, по F1 заряжаем затвор тразистора, его выход управляет через ключ включаемый по F2 затвором другого транзистора. Такой себе флип-флоп, всего 4 транзистора на стадию. А на традиционной схеме понадобилось бы 12 или даже более, учитывая входную функцию. Вот так сурово раньше транзисторные бюджеты экономили.
    Последний раз редактировалось Vslav; 04.06.2014 в 13:24.

  10. #99
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Есть провод, указывающий, какие биты опкода брать для получения номера регистра
    Код:
    assign w185 = ~(~(w[40] | w[45]) & (w210 | ~w[47]));
    куча инверсий упрощается до вполне понятной логики "A or B or C"
    Код:
    assign w185 = w[40] | w[45] | (w[47] & ~T2);
    Потом мультиплексор, но его выходы также инвертированы
    Код:
    assign w3[351] = w185 ? ~cmd[0] : ~cmd[3];
    assign w3[357] = w185 ? ~cmd[1] : ~cmd[4];
    assign w3[361] = w185 ? ~cmd[2] : ~cmd[5];
    Дальше бардак
    Код:
    assign w3[355] = ~(w3[357] | w3[361]);
    
    ...  (w3[351] | w3[355]) ... // это обращение к каким регистрам?
    ... ~(w3[351] | w3[355]) ...
    который с учётом инверсии выходов мультиплексора приводится к
    Код:
    assign w3[355] = (cmdmux1 & cmdmux2); // =1 при обращении к регистру 6 или 7 (SP/[HL]/A)
    
    ...  (~cmdmux0 | (cmdmux1 & cmdmux2)) ... // =1 - обращение к регистру 0 2 4 6 7 (B D H [HL] A)
    ... ~(~cmdmux0 | (cmdmux1 & cmdmux2)) ... // =1 - обращение к регистру 1 3 5 (C E L)
    или даже
    Код:
    (cmdmux[0]==0) | (cmdmux==7) // любой старший регистр или аккумулятор
    причём w3[355] больше нигде не используется, его можно убрать.

    Мне кажется в 580ВМ80 логику И-НЕ / ИЛИ-НЕ так же можно будет сильно упростить при переводе на HDL, а инкремент/декремент со всеми ускоренными переносами вообще привести к одной строчке
    Или оставлять как есть?

  11. #100
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,597
    Спасибо Благодарностей отдано 
    1,240
    Спасибо Благодарностей получено 
    1,803
    Поблагодарили
    693 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Поясню на примере, что можно упростить в Z80 для повышения наглядности.
    Это опять же Verilog-оподобный язык. Меня интересуют схемы)

Страница 10 из 48 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Комманды ассемблера/коды i8080/КР580ВМ80А
    от sergey2b в разделе Разное
    Ответов: 4
    Последнее: 29.11.2015, 14:01
  2. МикроСтеплер. Компилятор ЯП СТЕПЛЕР для i8080
    от Kakos_nonos в разделе Программирование
    Ответов: 8
    Последнее: 31.05.2013, 16:34
  3. Эмулятор i8080
    от Higgins в разделе Разное
    Ответов: 2
    Последнее: 20.05.2011, 11:43
  4. Использование FPGA и CPLD (ПЛИС и ПЛМ)
    от Mick в разделе Для начинающих
    Ответов: 69
    Последнее: 03.05.2006, 11:47

Ваши права

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