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

User Tag List

Страница 1 из 7 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 62

Тема: ЮТ-88: Реализация на ПЛИС (DE1)

  1. #1
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ЮТ-88: Реализация на ПЛИС (DE1)

    В процессе создания Радио-86РК на ПЛИС я столкнулся с большим количеством вопросов из-за недостатка опыта. Кроме того, с июля по октябрь я не имел возможности этим заниматься из-за отсутствия свободного времени. Так что 3 недели назад, когда у меня наконец появилось свободное время, я решил отложить проект Радио-86РК и потренироваться на чем-то более простом. Отработать там некоторые решения и поэкспериментировать. В качестве кошки был выбран ЮТ-88, который очень хорошо документирован, позволяет собирать его поблочно и таким образом легче решать проблемы и видеть результат. Так как DE1 не имеет клавиатуры и достаточное количество индикаторов, то я быстренько спаял плату расширения и повесил ее на GPIO_1. Т.к. оставались свободные пины на плате расширения для возможного использования и экспериментов также были сделаны магнитофонный вход/выход, видео выход и пищалка. Из всего этого испытан был только магнитофонный выход. Остальное не проверялось и возможно не работает
    На данный момент компьютер прекрасно работает в минимальной конфигурации. Туда добавлен ПЗУ с арифметическими функциями. Кроме того, я прилепил еще одно ПЗУ со всеми 3 программами, чтобы не загружать их каждый раз (адреса 1000 - 13FF). Магнитофонный ввод/вывод сделан через аудио-разъемы на DE1 путем выдирания соответствующего блока из Вектора уважаемого svofski. Скорее всего выдрано и что-то лишнее, но работает отлично, поэтому разбираться детальнее буду позже.
    Дисплейный модуль работает, но есть шероховатости. Вывод сделан правильным VGA 800x600 60hz путем удвоения точек по вертикали и горизонтали. Из шероховатостей: очень небольшое количество снега из-за распределения приоритетов чтения экранного ОЗУ и неровный край белого у курсора и инвертированных символов. Пока глубоко с этими проблемами не разбирался, т.к. они не мешают.
    Клавиатура PS2 работает, но кривовато. Есть глюки, и пока не реализован РУС/ЛАТ, а также УС и СС. Я использовал PS2 core из сети. Возможно оно не очень удачное - попробую прикрутить от Вектора и посмотреть на разницу.
    В планах довести до ума клавиатуру (ну и дисплей), добавить индикацию 7-ми сегментных индикаторов с платы расширения в верхней части дисплея (на свободном поле) и использовать цифровую клавиатуру PS2 вместо кейпада на GPIO_1, чтобы желающим попробовать комп не надо было паять плату расширения. Ну и само собой добавить 64К ОЗУ и 256К квазидиск на SRAM.
    Пока так. Парочку фоток прилагаю.

    UPDATE: Проект полностью закончен. Ознакомиться можно на сайте проекта: http://ut88.hut1.ru.
    UPDATE #2: Так как выбранный бесплатный хостер вставляет рекламу так, что многие ссылки перестают работать, то теперь вся информация по этому проекту перемещена в мной созданный блог http://electronicsfun.net.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	21112010002_2.jpg 
Просмотров:	1063 
Размер:	41.7 Кб 
ID:	22398   Нажмите на изображение для увеличения. 

Название:	21112010003_3.jpg 
Просмотров:	1334 
Размер:	91.2 Кб 
ID:	22399  
    Последний раз редактировалось Santechnik; 31.03.2012 в 16:02.

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

  3. #2
    Veteran Аватар для sergey2b
    Регистрация
    18.04.2009
    Адрес
    Москва
    Сообщений
    1,607
    Спасибо Благодарностей отдано 
    165
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    12 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    выложите пожалуйста проект

  4. #3
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сергей, пока еще он слишком сырой для этого: достаточно большое количество лишнего кода, который я использовал для экспериментов, недостаток комментариев, некоторые места написаны "в лоб" и их хотелось бы "причесать" перед публикацией, пока еще плоховато работающая клава, только 5Кб памяти, необходимость пайки платы расширения для запуска. Да и svofski все же надо сначала спросить если он не против использования этих блоков от его Вектора в этом проекте.
    Я собираюсь опубликовать проект, но чуть позже. Может быть даже сразу как только до конца разберусь с клавиатурой.
    И еще - со мной можно на "ты"

  5. #4
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Santechnik, клёвая платка расширения получилась!
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  6. #5
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ewgeny7, спасибо Самому понравилась. Минимум усилий и имеем дополнительные 6 индикаторов, 16 кнопок и пищалку (может быть, если она работает ) Вполне пригодится и для других экспериментов

  7. #6
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как я могу быть против, если у меня русским по-английскому написано, что использовать можно и нужно везде, где только получится =)
    А я пока не разбирался и не читал - просто воткнул и работает Но здорово, что можно использовать, спасибо

    Проще всего не "выкладывать проект", а сразу хостить его там, откуда его заинтересованные люди смогут брать текущее состояние. Это на личное усмотрение автора, конечно.
    Без проблем. Расскажи как и сделаю. Или ссылку дай где почитать, как делать. Мне все равно как публиковать.

    P.S. Santechnik — отличный проект, так держать! =)
    Спасибо!

    Итак докладываю, что было сделано за неделю:
    1) Улучшил вывод на дисплей. Теперь курсор ровный и без мерцания. Так же убрал совсем снег при статической картинке. Мелкая казалось бы проблема, а пришлось переделать весь комп с начала. Все было из-за того, что все синхронизировалось по 16 Мгц, а дисплей по 20 Мгц. Так что перевел все на 20 сейчас. Заодно причесал код и добавил комментов. Зато урок - не мешать клоки Правда теперь почему-то возникла проблема с магнитофонным выходом - пока пришлось отключить, т.к. с ним вообще комп не пашет. Буду разбираться.
    2) Добавил вывод индикаторов на дисплей. Можно отключать выключателем на плате (SW[0]).
    3) Убрал глюки клавиатуры. Работает нормально. Русская раскладка, правда, сделана по подобию оригинала, т.е. Я=Q, Г=G и т.д. Мне удобно, потому что у меня клава PS/2 без русских букв, так что получается как транслатиница Но вообще в планах сделать второй режим - классический. Сейчас собираюсь сделать режим кейпада и тогда можно будет запускать проект на любой DE1 без пайки платы расширения.

    Теперь вопросы знатокам:

    1) При записи в ОЗУ дисплея (например при скроллинге) появляется снег. Это из-за того, что приоритет обращения к ОЗУ отдается процессору и дисплейный модуль не может прочитать. Если я правильно разобрался со схемой точно такое же поведение должно быть и у оригинала. Так?

    2) Курсор отображается на 1 позицию правее того места, куда ожидается ввод символа. В эмуляторе emu он выводится точно на месте вводимого символа. Как выводит реальный комп?

    А пока вот еще одна фотка:
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	28112010.jpg 
Просмотров:	807 
Размер:	85.3 Кб 
ID:	22566  
    Последний раз редактировалось Santechnik; 28.11.2010 в 13:18.

  8. #7
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Santechnik Посмотреть сообщение
    Правда теперь почему-то возникла проблема с магнитофонным выходом - пока пришлось отключить, т.к. с ним вообще комп не пашет.
    Проблема, скорее всего, не в магнитофонном выходе. Просто с ним fitter по другому раскладывает LE, и какие-то сигналы при новом раскладе "устаканиваются" не в той последовательности, которая тебя устраивает. При правильном дизайне не должно быть зависимости от времени распространения сигнала от выходов ко входам. Попробуй порисовать тайминги с учётом того, что сигналы могут меняться с разной скоростью в течение такта. И не забывай, что SRAM, например, асинхронный.

    Цитата Сообщение от Santechnik Посмотреть сообщение
    1) При записи в ОЗУ дисплея (например при скроллинге) появляется снег. Это из-за того, что приоритет обращения к ОЗУ отдается процессору и дисплейный модуль не может прочитать. Если я правильно разобрался со схемой точно такое же поведение должно быть и у оригинала. Так?
    Видимо так. По крайней мере, в схеме нет узла торможения процессора при коллизии с видеовыводом.

    Цитата Сообщение от Santechnik Посмотреть сообщение
    2) Курсор отображается на 1 позицию правее того места, куда ожидается ввод символа. В эмуляторе emu он выводится точно на месте вводимого символа. Как выводит реальный комп?
    Скорее всего также, как и у меня в эмуляторе. Сигнал инверсии идёт сразу с выхода ОЗУ, а точки шрифта задерживаются на один символ, т.к. нужно время на выборку из ПЗУ знакогенератора.
    Последний раз редактировалось b2m; 28.11.2010 в 13:52.

  9. #8
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Проблема, скорее всего, не в магнитофонном выходе. Просто с ним fitter по другому раскладывает LE, и какие-то сигналы при новом раскладе "устаканиваются" не в той последовательности, которая тебя устраивает.
    Что-то такое я уже начал подозревать, потому что в отключенном блоке всего несколько строк и они абсолютно прозрачны. А как его заставить раскладывать по другому?

  10. #9
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,114
    Спасибо Благодарностей отдано 
    791
    Спасибо Благодарностей получено 
    654
    Поблагодарили
    401 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вряд ли можно с уверенностью заставить раскладывать рыхлый проект каким-то определенным образом.

    Если есть еще какие-то части дизайна, которые рассчитывают на то, что два сигнала приходят в определенной последовательности, надо от таких мест избавиться и все всегда будет собираться одинаково исправно. Бывает, напишешь чего-нибудь эдакое, оно как будто работает. А потом оказывается, что работало все на гонках и при пересборке все распределилось иначе и не работает уже ничего.

    Еще может быть, что не все выходные сигналы в case-ах полностью определены -- это тоже, бывает, приводит к проблемам, которые поначалу хочется списать на судьбу и космические лучи.
    Больше игр нет

  11. #10
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Бывает, напишешь чего-нибудь эдакое, оно как будто работает. А потом оказывается, что работало все на гонках и при пересборке все распределилось иначе и не работает уже ничего.
    Это точно. Меняешь в одном месте, а не работает в другом.

    Цитата Сообщение от svofski Посмотреть сообщение
    тоже, бывает, приводит к проблемам, которые поначалу хочется списать на судьбу и космические лучи.
    И ведь понимаешь, что сам виноват, но сделать с этим чувством ничего не можешь

Страница 1 из 7 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Радио-86РК: Реализация компьютера на ПЛИС
    от Santechnik в разделе Радио-86РК
    Ответов: 162
    Последнее: 06.10.2018, 05:51
  2. Ответов: 65
    Последнее: 14.11.2014, 08:05
  3. реализация JavaScript-a на ZX-Spectrum-48k
    от bigral в разделе Программирование
    Ответов: 4
    Последнее: 10.01.2010, 12:02
  4. Лучшая реализация игры
    от Nerzool в разделе Игры
    Ответов: 19
    Последнее: 05.07.2007, 05:35

Ваши права

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