Гибрид 8085 и 6502 в FPGA

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

pvlad wrote:
Shaos wrote:
pvlad wrote: Я тут нашел еще один вариант. http://raxp.radioliga.com/zip/jtag.pdf - для творчества
вроде номера дырок не соответствуют с той стороны что в плату втыкаются
Думаю, это не столь важно. Можно распайку сделать так, как на Вашем "шнурочке". Теперь, как я понял, нужна программа iMPACT из Xilinx ISE Webpack. Сам пакет очень большой и мне не хочется его "тащить" - сам разработкой заниматься не буду. Если она у Вас есть - может где-то можно выложить?
возможно программа тянет за собой кучу библиотек - у меня самого только линуксовая версия - винды дома не держу

посмотрю что можно сделать
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:
pvlad wrote:Теперь, как я понял, нужна программа iMPACT из Xilinx ISE Webpack. Сам пакет очень большой и мне не хочется его "тащить" - сам разработкой заниматься не буду. Если она у Вас есть - может где-то можно выложить?
возможно программа тянет за собой кучу библиотек - у меня самого только линуксовая версия ....
при запуске из командной строки программы impact, запускаются _impact и impacthost, которые имеют следующие зависимости:

linux-gate.so.1 => (0xffffe000)
libImpactPlugin.so => not found
libImpactGuiDatabase.so => not found
libUtilities.so => not found
libPersonalityModule.so => not found
libTsd.so => not found
libParsers.so => not found
libStaticFileParsers.so => not found
libBs_Bitstream.so => not found
libCit_Core.so => not found
libXipc.so => not found
libGui_Gq.so => not found
libQt_Qt.so => not found
libPortability.so => not found
libThread.so => not found
libImpactBsdlParser.so => not found
libboost_regex-gcc-p-1_33_1.so.1.33.1 => not found
libGui_Gfq.so => not found
libTcl_Tcl.so => not found
libImpactBitReader.so => not found
libImpactModeInterface.so => not found
libImpactProcessor.so => not found
libImpactDevice.so => not found
libImpactCommunications.so => not found
libImpactAce.so => not found
libImpactCommUtility.so => not found
libImpactDeviceChain.so => not found
libImpactUtility.so => not found
libImpactBsOperations.so => not found
libImpactException.so => not found
libImpactJedecReader.so => not found
libImpactJedecParser.so => not found
libImpactJtpAPI.so => not found
libImpactPromParser.so => not found
libImpactConfigDataIO.so => not found
libImpactCdfParser.so => not found
libImpactSlaveSerial.so => not found
libImpactSMOperations.so => not found
libImpactSVFParser.so => not found
libImpactPdr.so => not found
libImpactConstraintsManager.so => not found
libPort_Std.so => not found
libPr_Logical.so => not found
libData2BRAMUtil.so => not found
libQt_Solutions.so => not found
libZlib.so => not found
libMiniZip.so => not found
libImpactKeyParser.so => not found
libImpactSpiOperations.so => not found
libImpactBpiOperations.so => not found
libImpactSigParser.so => not found
libImpactPFFInterface.so => not found
libstlport.so.5.1 => not found
libstdc++.so.6 => /usr/X11R6/lib/libstdc++.so.6 (0xb7f91000)
libm.so.6 => /lib/libm.so.6 (0xb7f6b000)
libgcc_s.so.1 => /usr/X11R6/lib/libgcc_s.so.1 (0xb7f60000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7f48000)
libc.so.6 => /lib/libc.so.6 (0xb7dfc000)
/lib/ld-linux.so.2 (0xb80a3000)

так что я думаю проще скачать всё (ну или диск у кого-то попросить с версией 10.1)
Я тут за главного - если что шлите мыло на me собака shaos точка net
pvlad
Novelist
Posts: 41
Joined: 13 Sep 2009 08:37
Location: Подмосковье

Post by pvlad »

Shaos wrote: так что я думаю проще скачать всё (ну или диск у кого-то попросить с версией 10.1)
Придется. Но, пока, это не главное.
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
pvlad
Novelist
Posts: 41
Joined: 13 Sep 2009 08:37
Location: Подмосковье

Post by pvlad »

С Новым Годом! Здоровья, успехов и удачи!
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

pvlad wrote:С Новым Годом! Здоровья, успехов и удачи!
угу - с новым!

у нас даже отдельный топик для пожеланий на новое десятилетие открыт :)

viewtopic.php?t=9211

и топик для технических мечтаний:

viewtopic.php?t=9206
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

pvlad wrote:
Shaos wrote: так что я думаю проще скачать всё (ну или диск у кого-то попросить с версией 10.1)
Придется. Но, пока, это не главное.
Вот тут есть программка под линукс (с исходниками) для программирования спартанов: http://www.rogerstech.co.uk/xc3sprog/

P.S. Тут я смотрю по идее наш процессор можно затолкать в CPLD CoolRunner-II (вон PicoBlaze ведь затолкали)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:Вот тут есть программка под линукс (с исходниками) для программирования спартанов: http://www.rogerstech.co.uk/xc3sprog/
проверено на моей спартанской плате - работает!
Я тут за главного - если что шлите мыло на me собака shaos точка net
pvlad
Novelist
Posts: 41
Joined: 13 Sep 2009 08:37
Location: Подмосковье

Post by pvlad »

Shaos wrote: Вот тут есть программка под линукс (с исходниками) для программирования спартанов: http://www.rogerstech.co.uk/xc3sprog/
К сожалению, с Линуксом плохо дружу (как и подавляющее большинство). Ставить его только ради программатора - не очень рационально.
Shaos wrote: Тут я смотрю по идее наш процессор можно затолкать в CPLD CoolRunner-II (вон PicoBlaze ведь затолкали)
В настоящий момент, пока, плохо представляю, что мы будем, в конечном итоге, "заталкивать".
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

pvlad wrote:
Shaos wrote: Вот тут есть программка под линукс (с исходниками) для программирования спартанов: http://www.rogerstech.co.uk/xc3sprog/
К сожалению, с Линуксом плохо дружу (как и подавляющее большинство). Ставить его только ради программатора - не очень рационально.
По мне так нерационально ставить многогигобайтную среду разработки от Xilinx только ради программатора...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

pvlad wrote:
Shaos wrote: Тут я смотрю по идее наш процессор можно затолкать в CPLD CoolRunner-II (вон PicoBlaze ведь затолкали)
В настоящий момент, пока, плохо представляю, что мы будем, в конечном итоге, "заталкивать".
Наверное лучше пока остановится на спартане. Предположим что снаружи спартана имеется два пользовательских пзу с последовательным доступом SPI или I2C (на моей плате нету - надо будет цеплять) - одно с микрокодом проца и, возможно, неким описанием (или просто настройками) портов и эмулируемого железа (как например видео и звук), а второе с программой, которая при старте переписывается в озу (тоже внешнее - есть на плате) и запускается (хотя может быть имеет смысл объединить всё это в одном пзу, запретив юзеру менять управляющую часть прошивки, пока микросхема пзу остаётся в плате). Можно изначально ориентироваться на создание прошивки, эмулирующей Орион-128 с обычным 8080 или гибридным 8085/6502 процессором, а в будущем можно добавить прошивку чего-то c 6502, например VIC-20.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Решил объединить этот проект с другим своим проектом самодельного процессора:
viewtopic.php?t=9182
В том смысле, что микрокод будет строиться на основе системы команд nedoRISC-1 с дополнительными настроечными битами (попытаюсь уложиться микрокомандой в 32 бита)
Теперь в связи с тем, что микроядро этого процессора будет 16-битным, имело бы смысл добавить к гибриду третий виртуальный процессор, чтобы была возможность воспользоваться 16-битным аккумулятором :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
pvlad
Novelist
Posts: 41
Joined: 13 Sep 2009 08:37
Location: Подмосковье

Post by pvlad »

Shaos wrote:Решил объединить этот проект с другим своим проектом самодельного процессора:
viewtopic.php?t=9182
В том смысле, что микрокод будет строиться на основе системы команд nedoRISC-1 с дополнительными настроечными битами (попытаюсь уложиться микрокомандой в 32 бита)
Теперь в связи с тем, что микроядро этого процессора будет 16-битным, имело бы смысл добавить к гибриду третий виртуальный процессор, чтобы была возможность воспользоваться 16-битным аккумулятором :)
Ну, что-же, с Богом!
Если ты чего-то не знаешь, то это не значит, что этого не может быть.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

В связи с размножением процессоров предлагаю команду переключения процессора сделать 2-байтовой:
#CB #00 - переключает на "наш" процессор ("thumb" система команд nedoRISC-1 - стоит по умолчанию)
#CB #01 - переключает в режим 8080/8085
#CB #02 - переключает в режим 6502/65C02
Как видно процессоров может быть много - до 255 :)
P.S. Или как вариант - задавать коды процессоров в "читабельном" виде, как #CB 85 и #CB 65 и через флаг C передавать успешность переключения (0 - всё ОК, 1 - такой код в данной прошивке отсутствует)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote: Вот я и предлагаю 3 режима:
1) только порты ввода-вывода, память только внутренняя (в 40-ногом корпусе можем иметь до 5 портов (пятый не полный));
2) внешняя память допустима, но по мультиплексированной шине (в 40-ногом корпусе можем иметь 40-2-16-4=18 т.е. 2 порта или чуть больше);
3) внешняя память подключается по полной шине (в 40-ногом корпусе можем иметь 40-2-16-8-3=11 т.е. 1 порт и ещё чуть-чуть)
Режимы можно переключать через прошивку "микроконтроллера" (аналог прожигания "фьюзов" на современных микропроцессорах)
Shaos wrote: Пока прикидываю что влезет в DIP-40 шириной 0.6 дюймов (15 мм) - из спартанов это похоже только FPGA Spartan-3E в корпусе CP132 8x8 мм (вручную непаябельно):
XC3S100E-4CPG132C ($11.10) - 100K гейтов, max 83 I/O
XC3S250E-4CPG132C ($15.30) - 250K гейтов, max 92 I/O
XC3S500E-4CPG132C ($20.76) - 500K гейтов, max 92 I/O
Цены указаны по состоянию на сегодняшний день в digikey.com

Кроме спартана (который 3.3В) на этой платке будут регуляторы питания (спартану нужны три напряжения), пром для программирования FPGA, быстрое ОЗУ, S-Video (и возможно конвертер RGB->NTSC/PAL), стерео-коннектор для выхода стерео-звука (цап ненужен - шимом обойдёмся), возможно RS-232 разъём и соответствующий конвертер уровней (а надо ли?)

На плате будет несколько переключателей, с помощью которых можно будет настроить некоторые базовые варианты конфигурации (как например начальное состояние процессора, ширину шины, разделение выводов между шинами и вводом-выводом и т.д.) без перепрограммирования платы - это одна из важнейших особенностей - пользователь (продвинутый) должен иметь возможность просто взять эту DIP40 платку и воткнуть в свою схему без какого бы то нибыло программирования (но программирование также будет возможно при желании)
Shaos wrote: Наверное лучше пока остановится на спартане. Предположим что снаружи спартана имеется два пользовательских пзу с последовательным доступом SPI или I2C (на моей плате нету - надо будет цеплять) - одно с микрокодом проца и, возможно, неким описанием (или просто настройками) портов и эмулируемого железа (как например видео и звук), а второе с программой, которая при старте переписывается в озу (тоже внешнее - есть на плате) и запускается (хотя может быть имеет смысл объединить всё это в одном пзу, запретив юзеру менять управляющую часть прошивки, пока микросхема пзу остаётся в плате). Можно изначально ориентироваться на создание прошивки, эмулирующей Орион-128 с обычным 8080 или гибридным 8085/6502 процессором, а в будущем можно добавить прошивку чего-то c 6502, например VIC-20.
Нашёл подходящую платформу (спасибо рекламной заметке в последнем номере журнала "Nuts and Volts"): http://www.dlpdesign.com/dlp-hs-fpga2-v17.pdf



Xilinx XC3S400A-4FTG256C (на 400К гейтов, 56Кбит распределённого ОЗУ, 360Кбит блочного ОЗУ, 20 умножителей)
32M x 8 DDR2 SDRAM memory
SPI flash (для хранения прошивки FPGA)
66 MHz oscillator
USB (1.1 and 2.0)
внешнее питание от 3.6 до 6.0 вольт
размер платки 3.0x1.2 дюйма
50 пинов снизу (2 ряда по 25) и 26 сверху (с мелким шагом)

Правда она за 180 доллярей торгуется...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:Нашёл подходящую платформу (спасибо рекламной заметке в последнем номере журнала "Nuts and Volts"): http://www.dlpdesign.com/dlp-hs-fpga2-v17.pdf



Xilinx XC3S400A-4FTG256C (на 400К гейтов, 56Кбит распределённого ОЗУ, 360Кбит блочного ОЗУ, 20 умножителей)
32M x 8 DDR2 SDRAM memory
SPI flash (для хранения прошивки FPGA)
66 MHz oscillator
USB (1.1 and 2.0)
внешнее питание от 3.6 до 6.0 вольт
размер платки 3.0x1.2 дюйма
50 пинов снизу (2 ряда по 25) и 26 сверху (с мелким шагом)

Правда она за 180 доллярей торгуется...
Купил таки за $179.95 плюс таксы и пересылка...
Я тут за главного - если что шлите мыло на me собака shaos точка net