Page 1 of 28

TS-Conf на ReVerSE-U16

PostPosted: Fri, 02.05.2014 22:58:38
by MVV
Image
Плата ReVerSE-U16 ориентированна на создание 16-разрядных SoC систем на микросхеме программируемой логики ПЛИС. Отлично подходит для домашнего обучения и позволяет полностью воссоздать множество ретро-компьютеров.
Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. В конфигурации ПЛИС реализуются почти все компоненты компьютера. Вне ПЛИС находятся только оперативная память, аппаратные интерфейсы для подключения клавиатуры, мыши, монитора, и других устройств.

Спецификация:

  • FPGA Cyclone IV EP4CE22E22C7N (supports Cyclone III EP3C5/10/16/25, Cyclone IV EP4CE6/10/15/22)
  • SDRAM 16MB x 16 bit (supports 4/16/32MB x 16 bit)
  • SPI FLASH 64Mb (supports 64/16/1Mb)
  • RTC DS1338Z + CR2032
  • HDMI for sound and video (DVI or HDMI Male to VGA HD-15 15Pin Male Adapter Cable Cord)
  • 10/100 Base-T Ethernet interface controller ENC424J600 with integrated MAC & PHY
  • Dual USB 2.0 Host / Slave controller VNC2 (2 x ports)
  • micro SD
  • JTAG
  • GPIO IO=4, IN=4 (uBUS+)
  • Power +5В 1A
  • PCB Size 70 х 56 mm

Это финальная версия платы ReVerSE-U16. Исправлена и доработана разводка. Расширен интерфейс uBus (GPIO IO=4, IN=4). Дополнительные сигнальные линии дают возможность увеличить скорость обмена преобразователя шины uBus-ZXBus, подключить различные платы расширения или устройства со SPI интерфейсом, к примеру - VS1053 Audio Codec, графический контроллер FT8xx...

Вид платы в корпусе:
Image

Адаптеры к плате для разработчиков конфигураций:

  • Stereo Audio выход
Image

  • Переходник HDMI2VGA для вывода изображения RGB(2:2:2) на VGA монитор
Image

  • V2Debug для программирования и отладки VNC2
Image
Подключается для удобства тем же шлейфом от USB-Blaster.

Поддержка проекта:

Также тема обсуждения: zx.pk.ru
Исходники и последняя версия конфигурации: репозитарий
Image Приобрести печатную плату для самостоятельной сборки, акриловый корпус или уже собранную можно написав автору на mvvproject@gmail.com

Установка TS-Conf:

  1. Скачать и записать в корень на microSD (FAT32) файлы roms/zxevo.rom и WildCommander (ссылка)
  2. Записать образы TRD, SCL, TAP, файлы поддерживающий WC...
  3. Скачать и установить FTDI - FT_Prog (ссылка) или аналогичную утилиту для программирования VNC2
  4. Скачать и установить Quartus Programmer (ссылка)
  5. Подключить к плате ReVerSE-U16 (далее по тексту плата) блок питания, светодиод на плате должен засветится
  6. Подключить программатор USB-Blaster и запрограммировать плату с помощью программы Quartus Programmer
  7. prg01.jpg
  8. prg02.jpg
  9. prg03.jpg
  10. prg04.jpg
  11. prg05.jpg
  12. Подключить к плате V2Debug Module и запрограммировать VNC2 с помощью программы FTDI - FT_Prog
  13. vnc01.jpg
  14. Отключить блок питания и V2Debug Module
  15. Подключить HDMI кабель, USB клавиатуру в нижний разъем USB и microSD
  16. Включить монитор и блок питания платы
  17. 20141015_122932.jpg
  18. Press ENTER to continue
  19. В Setup делаем нужные настройки и жмем F12
  20. Попадаем в TR-DOS, т.к. диска нет он подвис в его ожидании, можно нажать Break (левый Shift + Space), появится строка приглашения для ввода команд (RETURN выход в BASIC), но нам это сейчас не нужно?
  21. Жмем на левый Shift + F12, попадаем в WC (если не перенастраивали в Setup), можно нажать PrtScr для 49Hz
  22. Выбираем курсорными клавишами нужный образ TRD, SCL, TAP и жмем на нем Enter
  23. Монтируем его к примеру на Drive A, жмем Enter
  24. Жмем F12 (сброс), попадаем в TR-DOS. Если на диске есть boot, то он автоматически стартует. Или CAT и RUN "файл"
  25. При монтировании TAP, из BASIC набираем LOAD""...
  26. 20141018_103004.jpg

TS-Conf

Что на данный момент уже работает:
Loader - вывод информации, инициализация системы.
Звук - TurboSound, Soundrive, Beeper, MSX-MUSIC YM2413.
PS2 - Клавиатура, мышь
RTC - Загрузчик читает из DS1338 и делает инициализацию модуля mc146818a.
SD - Z-controller
SDRAM - 32MB
CPU - T80 CPU заменил ядро, т.к. в исходниках от dsp работало нестабильно в мультиколоре.
Video DAC - цвет 15bpp RGB(5:5:5)
RTC - сделана возможность установки даты и времени.
Keyboard - [F12]=Reset, [PrtScr]=Режим 49Hz/60Hz

TODO:
-Ваши предложения...
-UART
-WiFi - ESP8266
-Ogg Vorbis/MP3/AAC/WMA/FLAC/MIDI Audio Codec Chip - VS1053
+uBus - интерфейсная шина расширения (реализовано)
-CPU - замена на nZ80...
-2x CPU - nZ80@3.5MHz/7.0MHz/14MHz/42MHz
-640x480@60Hz Video Mode
+MSX-MUSIC - YM2413 (реализовано)
+Video-DAC - цвет 15bpp RGB(5:5:5) (реализовано)
+Keyboard - спец кнопки F2, F3, F12... перекинуть, чтобы не мешались в WC...
+RTC - сделать возможность записи в DS1338 (реализовано)
+Loader - поддержка FAT32. Не помешало бы меню, для возможности прошить плату (запись в M25P16) новой конфигурацией с SD Card и настройки RTC (время, дата)... (реализовано)

Re: TS-Conf на ReVerSE-U16

PostPosted: Fri, 02.05.2014 23:26:47
by TS-Labs
:agree:
Варианты:
1. Дождаться, когда я портирую конфу на U8. Плюсы: можно будет влет натянуть на U16, кроме того, я хочу не просто портировать влоб, а сразу делать запас для всяческих доработок (мегагерцы, расширенная графика). Минусы метода - долго ждать, хотя процесс идет.
2. Помочь в портировании (хотя я помню, что отказался в свое время). Что я бы хотел в плане помощи: перетащить на верилог все модули периферии (которые изначально не на верилоге) - сорри, но на вхдл я хоть и пишу кое-как, но поддерживать сорцы на нем бррр...
3. Если особо не стараться, можно просто проэмулировать пентевовскую драму на сдраме. Придется переделать модуль арбитра и рам-контроллера, потому что т80 работает совсем не так, как железный зетник. Минусы: для дальнейшего развития все равно придется делать то, чем я занимаюсь в п.1.
Ну и обязательно навести порядок с таймингами. :)

Re: TS-Conf на ReVerSE-U16

PostPosted: Fri, 02.05.2014 23:32:49
by TS-Labs
Что я сейчас делаю для на U8 (и это будет потом использовано для U16, ZX-Advance, TSXB):
- кеши для процессорных ядер,
- нексты на приемлимой частоте (для ц3 это 33МГц),
- ДМА бурстами,
- переделка TSU под сдраму,
- допиливание сдрам контроллера под умную работу с банками.
Z80 планируется гонять в 2-х режимах: 3.5МГц с классик таймингами и макс.частота в "однотактовом" режиме. 7 и 14 МГц фтопку ибо толку от них.

Re: TS-Conf на ReVerSE-U16

PostPosted: Thu, 29.05.2014 22:52:38
by MVV
Quartus почему-то не стал переваривать диф пару на пинах 144-143 для Cyclone 4, поменял местами пару с 113-112 стал ругаться уже на эту, т.е. для клока все прокатывает, для Cyclone 3 все было ОК.

Error: Can't place differential I/O pins and/or associated SERDES transmitters or receivers -- location assignments are illegal
Error: Pin "HDMI_D[1]" with LVDS_E_3R I/O standard must be driven by the external clock output of an enhanced PLL
Info: Input port I of node "HDMI_D[1]~output_pseudo_diff" is driven by serializer0:inst6|altlvds_tx:ALTLVDS_TX_component|serializer0_lvds_tx:auto_generated|serializer0_ddio_out:ddio_out|wire_ddio_outa_dataout[1] which is DATAOUT output port of Double Data Rate I/O Output Circuitry type node serializer0:inst6|altlvds_tx:ALTLVDS_TX_component|serializer0_lvds_tx:auto_generated|serializer0_ddio_out:ddio_out|ddio_outa_1
Info: Input port I of node "HDMI_D[1]~output_pseudo_diff" is driven by serializer0:inst6|altlvds_tx:ALTLVDS_TX_component|serializer0_lvds_tx:auto_generated|serializer0_ddio_out:ddio_out|wire_ddio_outa_dataout[1] which is DATAOUT output port of Double Data Rate I/O Output Circuitry type node serializer0:inst6|altlvds_tx:ALTLVDS_TX_component|serializer0_lvds_tx:auto_generated|serializer0_ddio_out:ddio_out|ddio_outa_1
Error: Can't fit design in device
Error: Quartus II 64-Bit Fitter was unsuccessful. 3 errors, 6 warnings

Re: TS-Conf на ReVerSE-U16

PostPosted: Thu, 29.05.2014 23:37:34
by TS-Labs
Думаю потому что выходы PLL прибиты к конкретной PLL. Перекинь клок на другую PLL.
Хотя без дизайна я не понял для чего ты используешь эти лапы? Выход клока HDMI?

Re: TS-Conf на ReVerSE-U16

PostPosted: Sat, 31.05.2014 12:43:34
by MVV
Попытка побороть диф пару (PLL3_CLKOUTP/N) ни к чему пока не привела. Ради эксперимента собрал третью плату, запаял EP4CE22E22C7N (был заказан неделю назад, т.к. perestoronin на все почему-то забил). Вывод 143 (сигнал HDMI_D1N) решил пока не использовать, заработало и без него. Максимально что можно выжать это 640Mbps.

Re: TS-Conf на ReVerSE-U16

PostPosted: Sat, 31.05.2014 18:15:00
by TS-Labs
Замечательно, но все же. Выходы альтеры идут напрямую без драйверов?

Re: TS-Conf на ReVerSE-U16

PostPosted: Sat, 31.05.2014 19:57:28
by MVV
TS-Labs wrote:Замечательно, но все же. Выходы альтеры идут напрямую без драйверов?

Не понял вопрос, кто куда идет напрямую? Эт экзамен? Есть схема и мануал к камню, можешь глянуть. У тебя VGA в ундервафле как идет? Напрямую или через драйвера? Глянь.
Ты лучше скажи, кто шарит в VNC2? И может подсобить, а то через uBUS - PS/2 клаву юзаю в minimig без джойстиков :(.

Re: TS-Conf на ReVerSE-U16

PostPosted: Sat, 31.05.2014 20:43:03
by TS-Labs
Не экзамен, просто потестируй на китайском 5-метровом шнурке. Если все ок, вопросы снимаются.
Кто шарит в VNC2 не знаю.

Re: TS-Conf на ReVerSE-U16

PostPosted: Sat, 31.05.2014 20:44:20
by TS-Labs
MVV wrote:У тебя VGA в ундервафле как идет?

Через ВНЕЗАПНО ADV7125.

Re: TS-Conf на ReVerSE-U16

PostPosted: Sat, 31.05.2014 21:21:57
by MVV
TS-Labs wrote:просто потестируй на китайском 5-метровом шнурке. Если все ок, вопросы снимаются.

Работает на 2.0m Viewcon (VD165-2M). Других длинных шнурков нет, т.к. и смысла в них.
TS-Labs wrote:Кто шарит в VNC2 не знаю.

Эт плохо... Горе - огорчение...

Re: TS-Conf на ReVerSE-U16

PostPosted: Sat, 31.05.2014 23:58:20
by TS-Labs
MVV wrote:Что еще добавить

А что не так?

Re: TS-Conf на ReVerSE-U16

PostPosted: Sun, 01.06.2014 00:01:32
by TS-Labs
MVV wrote:http://www.wayengineer.com/digiasic-fpg ... p-160.html

Тормозные 50-ки, которые впрочем отлично и с запасом выгребают 108МГц. Быстрые на 140МГц.

Re: TS-Conf на ReVerSE-U16

PostPosted: Wed, 25.06.2014 08:26:54
by dsp
Спасибо авторам TS-Conf и ReVerSE за открытые проекты.
Запустил TS-Conf на Cyclone IV+ SDRAM (CPU на плисе, AVR контроллера нет).
Конфигурация: EP4CE15F17C8N + SDRAM: 256 Мбит (16M * 16 бит) + FLASH: 64Mbit (EPCS64). Прошивка(ROM) грузится в верхнюю память SDRAM (ReVerSE). Две SD карты, на одной ROM(SD 2GB, FAT16), на другой boot.$C (FAT32).
Все модули (моего ни одного нет) из проектов TS-Conf и ReVerSE (VHDL+Verilog) c небольшими изменениями. Мое изменение: начало цикла CPU смещено относительно начала цикла SDRAM. Все диски виртуальные (монтируются с SD карты или с PC через rs232mnt).
rs232mnt.exe:
было
ReadFile(hPort, uart_in_buf, fifo_free(fifo_in), &dwRead, NULL);
исправил
ReadFile(hPort, uart_in_buf, 7, &dwRead, NULL);

Обновил исходные файлы тестового проекта 2014_07_13 ZX_TWARM.RAR
- Добавил GS , F11-Reset GS (подключил SRAM IS61LV25616)
На 2GB SD карте, отформатированной FAT16, первый файл – zxevo.rom, второй - gs105a.rom

2014_07_09a ZX_TWARM.RAR
1) скачал (TS_Conf версия 1320fa411860 ) и обновил модули (в основном zint, video).
2) CACHE всегда включен для SDRAM которая является vROM. (zmem.v)
wire cache_hit_en = (cache_hit && (cache_en[win] || csvrom)) ;
3)F2 - 60Hz/49Hz; F4 - запретить/разрешить прерывания во время DMA;
F11 - не используется (GS - не подключен)

2014_07_02 ZX_TWARM.RAR:
1) Основное изменение для 14Mhz
wire dram_beg = (!cache_hit_en && ( memconf[3] ? 1'b1 : ramrd ) || ramwr) && zpos && ramreq_s_n;
Раньше на 14 МHz при записи CRAM затиралась память в окне 0.
memconf[3] – добавил для хоть начальной загрузки BOMBER EVOLUTION (сейчас выводит три надписи MUSGEN GROU, DELIRIUM TREMENS, presents, затем – белый экран). Вроде как на 14Mhz если в нулевом окне – RAM, то возможна запись и чтение вне зависимости от бита memconf[1]. Кто знает точно, пусть подскажет.
2) Добавил запись в CMOS (F12), параметры - в конфигурации (F12+Ctrl),
3) Звук – VS1053B (все c ReVerSE без GS) F11 – On/Off

Re: TS-Conf на ReVerSE-U16

PostPosted: Wed, 25.06.2014 10:01:31
by TS-Labs
Круто!
Софты работают?

Re: TS-Conf на ReVerSE-U16

PostPosted: Wed, 25.06.2014 10:39:54
by dsp
Загружаю на частоте 7Mhz, потом переключаю на 14Mhz (несли нужно).
На частоте 14Mhz с виртуального драйвера не грузится иногда. Статистику не собирал
То что запускалось.
-BEE.$c
-HB SerkaFox (TS-Conf).scl
-mindwarp.spg
-sprites.spg
-Tcircles.spg
-TSDemo.trd
-slideshow.scl
Видео без звука :
-binary.tgv
-rozen.tgv
-runningm.tgv
КЭШ помогает здорово, 14/7 Mhz - на мой взгляд разница не сильно заметная
Bomberman Evolution – не запускается (не знаю что такое функционал через RST и у меня нет AVR)
С виртуального драйвера (SD или через rs232mnt) запускал журналы
DEJAVUx.TRD, DEPTHx.TRD, Lighter x
Если нужна точная информация по отдельному софту то могу проверить
В TS-Conf SDK компилирую си файлы и запускаю через rs232mnt – это вот что меня интересовало. Пока сбоев не замечал при загрузке через rs232. Исходный rs232mnt.exe у меня посылал пакет на запрос иногда только через секунд 10. Поэтому я код для себя подправил.

Re: TS-Conf на ReVerSE-U16

PostPosted: Wed, 25.06.2014 10:52:55
by TS-Labs
dsp wrote:(не знаю что такое функционал через RST и у меня нет AVR)

На рст8 висит ожидание готовности ДМА (опрос статуса), к АВР отношения не имеет.
dsp wrote:Если нужна точная информация по отдельному софту то могу проверить

Ну в приципе я понял, что более-менее работает.
Поздравляю!

Re: TS-Conf на ReVerSE-U16

PostPosted: Wed, 25.06.2014 10:54:45
by dsp
Cпасибо!

Re: TS-Conf на ReVerSE-U16

PostPosted: Sun, 29.06.2014 11:37:05
by VBI
TS-Labs, вчера крутил в руках U8 и U16.
понравились обе!
всячески поддерживаю конфигурацию для этих машин.

Re: TS-Conf на ReVerSE-U16

PostPosted: Sun, 29.06.2014 20:26:46
by TS-Labs
Ага.

Re: TS-Conf на ReVerSE-U16

PostPosted: Mon, 30.06.2014 10:26:22
by VBI
MVV, сколько плат уже разошлось?

Re: TS-Conf на ReVerSE-U16

PostPosted: Mon, 30.06.2014 13:02:33
by MVV
VBI wrote:сколько плат уже разошлось?

Распространением плат занимается zorel http://zx-pk.ru/market/viewtopic.php?f=7&t=15
и perestoronin http://zx-pk.ru/market/viewtopic.php?f=7&t=1904

Re: TS-Conf на ReVerSE-U16

PostPosted: Mon, 30.06.2014 14:54:57
by EARL
Cебе взял U16 одну. Также есть и U8. Конфиги планируются под обе железке. Вопрос времени. Сейчас немного другим занят. Как разгребу, хотелось бы сделать порт конфы.

Re: TS-Conf на ReVerSE-U16

PostPosted: Thu, 03.07.2014 09:10:58
by TS-Labs
dsp, а под какую борду эта конфа? Конкретно интересует микруха сдрамы с А12 - чо за экзотика?

Re: TS-Conf на ReVerSE-U16

PostPosted: Fri, 04.07.2014 08:40:19
by dsp
Вначале делал на SDRAM : MT48LC16M16A2TG (ZR_Tech, ZR_Tech.pdf )
Потом перешел на SDRAM: HY57V641620ET (TWARM). При переходе на другую SDRAM все заработало сразу (только переобозначил выводы).
Bomber вылетает при втором RST8, когда работает DMA. В какой-то момент приходит сигнал прерывания, но подключено в окно 0 - ПЗУ а в прерывании идет обращение к подпрограмме по адресу 0005. Во время работы DMA (когда ROM подключено) не должно работать прерывание. Либо долго DMA работает или синхронизация нарушена что не попадает в окно между прерываниями, либо во время вызова RST8 прерывание должно быть запрещено или надо остановить z80 на время работы DMA
(еще не разбирался).
Есть еще DE-1 (Terasic, SDRAM 16x4, там A0-11 шина) с нее начинал и запускал проекты: Spectrum+ResiDOS, OneChipMSX, ZET. Но как то не понравилась из за больших размеров.