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

User Tag List

Страница 42 из 48 ПерваяПервая ... 383940414243444546 ... ПоследняяПоследняя
Показано с 411 по 420 из 472

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

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

    По умолчанию

    Что в итоге получилось:
    - убрана зависимость от фазы F1
    - фаза F2 переведена на фронт, единая частота для всей системы
    - добавлена шина Wishbone
    - сохранение таймингов зависит от реализации внешней памяти. При чтении модель выставляет адрес на шину только в такте Т2, если память успевает выдать данные за такт то оригинальные таминги сохраняются. В моей примерной системе память регистровая, она умеет только за два такта, поэтому чтение всегда растянуто на один такт. При чтении используется бывший вход READY. При записи адрес выставляется также в такте Т2, но поскольку строб записи по факту будет в T3 тут не так критично. Торможение при записи (если вдруг внешний агент не готов) осуществляется общим разрешением клока (тот что был F2). Как ни странно, ресурсов это не забирает, что с разрешением, что без - практически одинаково
    - результаты на плате DE0 (Cyclone EP3C16F484C6) - 104МГц clock, 607 LUTs and 187 flip-flops без оптимизации по скорости
    - все это выложено в репозиторий

  2. #412
    Master
    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    828
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    108 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ОФФТОП
    planahead эта тоже полноценная среда разработки как ISE. По сути из planahead сделана VIVADO
    те сперва Foundation потом ISE потом Planahead потом VIVADO. В конторе используют и xil и alt "в параллель" - посему осведомлён в причудах и того и другого. VIVADO только с 7 семейства. Нынче "сделана" ISE 14.7 для виндовс 10 и спартан 6 онли.

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

    По умолчанию

    Как оно конвертировалось, с точки зрения абстрактной логики, картинка:

    Нажмите на изображение для увеличения. 

Название:	convert.jpg 
Просмотров:	356 
Размер:	20.2 Кб 
ID:	64092

    Весь процессор ВМ80 можно представить как схему состоящую из двух групп защелок (latch), первая группа срабатывает от фазы F1, вторая от фазы F2. Между группами защелок имеются наборы логики, часть логических функций формирует выходные сигналы. Можно переписать логику так что она будет зависеть только от выходов группы защелок F2, и свести ее к единому набору, а защелки группы F2 непосредственно присоединяются к выходам группы F1. Далее остается только заменить группы защелок на регистры (flip-flops). Регистры являются нативными базовыми элементами FPGA и предоставляют уже готовую реализацию. Как видно из картинки, в схеме остались только элементы, срабатывающие по фронту F2, соответственно все выходные сигналы будут тоже синхронизированы с фронтом F2, что нам и требовалось для системы в FPGA. Внутренняя же логика обработки процессора осталась практически той же самой, все такты T и циклы М неизменны, их отлично видно на симуляторе.

    Update: еще прикол в том что Wishbone достаточно простой, и почти совпадает с внешней шиной оригинального i8080 (если не цепляться к синхронности). В системе WB шину модели можно в пару строчек конвертировать в привычную шину.
    Последний раз редактировалось Vslav; 04.02.2018 в 11:49.

  4. #414
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,917
    Спасибо Благодарностей отдано 
    178
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Картинка для привлечения внимания
    Скажи, а ты 580ВМ1 не планируешь также разобрать на транзисторы, как ВМ80?
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  5. #415
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Update: еще прикол в том что Wishbone достаточно простой, и почти совпадает с внешней шиной оригинального i8080 (если не цепляться к синхронности). В системе WB шину модели можно в пару строчек конвертировать в привычную шину.
    С этого места поподробнее, я записываю
    В моей реализации Ориона, например, сигнал DSYN формируется как "cpu_rd or cpu_wr", а в оригинальной реализации - задержанный на 1 такт F2 сигнал SYNC от процессора.
    Глядя на сигналы и комментарии к ним, понимаю, что надо плясать от wb_tgc_o и wb_we_o, но что там ещё надо намешать - хз даже =/

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

    Цитата Сообщение от Mick Посмотреть сообщение
    Скажи, а ты 580ВМ1 не планируешь также разобрать на транзисторы, как ВМ80?
    А при реверсе сперва как раз на транзисторы и разбирается в любом случае
    Потом уже по схеме восстанавливается логика.
    "Байт-48"

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

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    Скажи, а ты 580ВМ1 не планируешь также разобрать на транзисторы, как ВМ80?
    Пока запланировано только фото. Я сейчас делаю новый микроскопный столик, моторизованный, двухкоординатный, с простеньким гониометром. Это упростит процесс фотографирования, как доделаю - отсниму кучку накопившихся микросхем.

  7. #417
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Пока запланировано только фото. Я сейчас делаю новый микроскопный столик, моторизованный, двухкоординатный, с простеньким гониометром. Это упростит процесс фотографирования, как доделаю - отсниму кучку накопившихся микросхем.
    Это хорошо, будет работы людям надолго
    Я вот думаю изучить топологию КМОП и прочие, что бы присоединиться к реверсу ВГ93, а то тема совсем заглохла =/
    "Байт-48"

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

    По умолчанию

    Цитата Сообщение от andreil Посмотреть сообщение
    С этого места поподробнее, я записываю
    В моей реализации Ориона, например, сигнал DSYNC формируется как "cpu_rd or cpu_wr", а в оригинальной реализации - задержанный на 1 такт F2 сигнал SYNC от процессора.
    На DSYN, фазы и прочее - забить. Можно использовать сигналы типа гангнам ВК28-стайл:
    Код:
    • nMEMRD = ~(wb_stb_o & ~wb_we_o & ~wb_tgc_o[1] & ~wb_tgc_o[4]);
    • nMEMWR = ~(wb_stb_o & wb_we_o & ~wb_tgc_o[1] & ~wb_tgc_o[4]);
    • nIORD = ~(wb_stb_o & ~wb_we_o & wb_tgc_o[1] & ~wb_tgc_o[4]);
    • nIOWR =~(wb_stb_o & wb_we_o & wb_tgc_o[1] & ~wb_tgc_o[4]);
    • nINTA = ~(wb_stb_o & wb_tgc_o[4]);
    Ну и wb_ack_i теперь заменяет бывший READY, подать туда постоянно высокий и получить обычный процессор с шиной ISA8
    Теги wb_tgc_o стабильны на протяжении всего цикла обмена и содержат всю информацию что выводил раньше ВМ80А при активном DSYN - M1, IO, stack, INTA и прочее. Убраны только ненужные подтверждения прерываний в момент останова, ну и защелка по DSYN теперь просто не нужна.

    Update: осталось еще клок-модератор прикрутить, чтобы оригинальный режим при низкой тактовой работал - то есть шина останется быстрая, а само ядро сможет жужжать медленно, хоть на родных 2.5МГц, не тормозя при этом остальную систему.
    Последний раз редактировалось Vslav; 04.02.2018 в 12:59.

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

    По умолчанию

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

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

    По умолчанию

    Поправил выход из режима halt по прерыванию. В книжке было написано что выход из halt только по сбросу, а реально оно должно выходить и по прерыванию. Я про это забыл, сегодня вот изучал исходники КСМ, увидел там инструкцию hlt, пришлось вносить правки в корку

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

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

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

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

Ваши права

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