К580ВК38 и Proteus - нужна помощь

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

К580ВК38 и Proteus - нужна помощь

Post by Tronix »

Собрал тут платку такую небольшую на ВМ80 и К580ВК38:
photo_2023-02-21_12-53-47.jpg
Хотел отлаживать в Протеусе, но столкнулся с не пониманием, как правильно сэмулировать К580ВК38, потому что мне нужны сигналы /IOWR /IORD, /MEMW, /MEMR. В качестве IO у меня 8255, в качестве памяти - ROM и RAM.
Использую x80.dll r13 и 8255.dll откуда-то с этого форума.
Сделал как-то так:
vk.PNG
И оно даже как-то вроде бы и работает, но если поднять частоту F1 до 3 МГц, то протеус падает через некоторое время. А если и не падает, то сыплет ошибками о коллизиях на DB и D и люто, бешено тормозит.
Проект пока простой - просто четыре строчки на экран выводятся и потом счетчик бесконечно увеличивается.

Подскажите пожалуйста, как в Протеусе грамотно реализовать ВК38 или как получить сигналы с 8080 такие как /IOWR /IORD, /MEMW, /MEMR что бы при этом это не так люто тормозило и не сыпало ошибками о коллизиях?
Прикладываю проект от Proteus, прошивку и исходники.
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: К580ВК38 и Proteus - нужна помощь

Post by Lavr »

Tronix wrote:...как правильно сэмулировать К580ВК38, потому что мне нужны сигналы /IOWR /IORD, /MEMW, /MEMR.
Да вроде как вот так:

Image

Подробности мы обсуждали здесь:
viewtopic.php?p=97973#p97973

И библиотеки бери не какие-то, а последние версии вот здесь:
viewtopic.php?f=81&t=19632
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: К580ВК38 и Proteus - нужна помощь

Post by Tronix »

Вроде как-то так и сделано.
Темы видел.
Библиотеки из той темы.

Но, повторюсь с проблемой - оно "вроде как то работает", но - много сообщений о коллизиях на шине данных и внутренней и внешней, из-за чего в лог постоянно сыплют ошибками, из-за чего и так не быстрая симуляция начинает тормозить лютейше, а при определенных условиях и вовсе отваливаться.

Таких проблем нет на мемори-маппед устройствах ввода вывода, как например это сделано в Специалисте или Радио-86РК, проекты которых в Proteus тут есть на форуме. Но у меня порты IO используют IN и OUT инструкции, а значит хочется как-то по человечески получить сигналы /IOWR и /IORD с модели процессора 8080. И по человечески пока не получается.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: К580ВК38 и Proteus - нужна помощь

Post by Lavr »

Tronix wrote:Таких проблем нет на мемори-маппед устройствах ввода вывода, как например это сделано в Специалисте или Радио-86РК, проекты которых в Proteus тут есть на форуме. Но у меня порты IO используют IN и OUT инструкции, а значит хочется как-то по человечески получить сигналы /IOWR и /IORD с модели процессора 8080. И по человечески пока не получается.
А если проверить так: этот вариант ВК38 оставь как есть, но обратись к УВВ сигналами обращения к памяти?
Всё продолжится?
Как-то локализовать проблему надо: что вызывает конфликт, схема-то по сути лишь коммутатор сигналов
DBIN и /WR.

Я, к сожалению, ни разу не делал обращение к УВВ по IN и OUT с этой моделью по чисто историческим причинам. :-?


P.S. Обрати внимание вот на что: как-то так вышло, что изначально модель разработали как корпус
К580ВМ80, но с системой команд z80, и насколько я знаю, сигнал С1 для модели чисто фиктивный,
а все кишки модели привязаны к С2. Может STATUS неправильно фиксируется?
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: К580ВК38 и Proteus - нужна помощь

Post by Lavr »

Lavr wrote:Я, к сожалению, ни разу не делал обращение к УВВ по IN и OUT с этой моделью по чисто историческим причинам. :-?
Под руками был совсем недавний проект, я в нём использовал сигнал /INTA через STATUS 580BM80.
У меня всё работало...

Быстро переделал проект под 580ВК38(28) - тоже всё работает, никаких конфликтов нет.
Tst580ВК38.PNG
Выкладываю тебе проект с исходником и .dll процессора, которую я использую.
TestBK38.zip
Если не будет глюков, то работает он так: включаешь - моргают индикаторы, нажимаешь -->EI,
должен загореться индикатор на выводе INTE, после чего нажимаешь INT, индикаторы будут
моргать по другому, индикатор на выводе INTE погаснет.
Кнопка RETI возвращает всё в начальную позицию. Это был тест RST7 от резисторов на шине.


P.S. Но может так случиться, что у тебя глючит 74LS245 (см.здесь)
You do not have the required permissions to view the files attached to this post.
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: К580ВК38 и Proteus - нужна помощь

Post by Tronix »

Вообщем, пока спал подумал примерно то же самое - что надо просто выкинуть LS245.
Проснулся и увидел что у меня во-первых RAM подключена была к D, а не к DB. А во-вторых выкинул LS245 и подключил все RAM,ROM и PPI к D. Стало покомфортнее. Продолжаю вести наблюдение.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: К580ВК38 и Proteus - нужна помощь

Post by Lavr »

Tronix wrote:Проснулся и увидел что у меня во-первых RAM подключена была к D, а не к DB.
Я про тебя только недавно, примерно месяц назад, вспоминал вот именно в этом плане... :lol:
Что есть у нас такой Tronix, который любит всех озадачить каким-то хитрозадуманным вопросом. :roll:
Все недели три так гадают "по фотокарточке", выдвигают разные космологические теории... :-?
А в итоге Tronix пишет:"Да я просто забыл тут припаять вывод. Всем - спасибо, все - свободны!" :ebiggrin:


P.S. Если у тебя Proteus версии 7.7 и старше, и ты уверен, что всё делаешь правильно, то сообщения
о конфликтах в лог можно просто отключить. Где отключить, вроде как в хелп написано.
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: К580ВК38 и Proteus - нужна помощь

Post by Tronix »

В общем какими-то танцами с бубном удалось худо-бедно завершить написание прошивки для часиков в протеус, но с бесконечными тормозами, падениями симуляции, и не реальной скоростью с последующим пересчетом коэффециэнтов для реала.

Проц в реале у меня работает на 3 МГц (27 МГц кристал на ГФ24, максималка по интеловскому даташиту на него).
В протеусе запуск симуляции на такой частоте (3 МГц) - гарантированное падение симуляции на первых миллисекундах. Поэтому подавал на вход 8080 частоту 1.5 Мгц (в два раза ниже реальной) - в таком случае, если со схемы убрать вообще все кнопки-лампочки и прочее не нужно, отключить почти все визуальные инструменты, все резисторы перевести в "DIGITAL", использовать только примитивы типа "NOT", "NAND", а не их аналоги из блоков 74LS00, 74LS04 - то симуляция иногда все-же запускается, хотя и с дичайшими тормозами.

Проц, на C1 которого подается меандр 1.5 MHz:
8080.PNG
Блок-заменитель ВК38 выглядел в конечном счете так:
vk38.PNG
RAM-ROM:
ram_rom.PNG
Все библиотеки (x80.dll и 8255.dll) из темы "самописные DLL для протеус" последние на данный момент.
Так вот вопрос: Кто-то пробовал использовать x80.dll с частотой симуляции > 1.5 MHz? У вас все работает?
Просто например если сравнивать с 8048.dll, та нормально молотит на 12 MHz без проблем.

По поводу 8255.dll тоже есть различия с реалом. Например если порт A настроен как выход, некоторые его биты установлены в 1, при записи управляющего слова, которое скажем не трогает порт A, а меняет порт C на вход, то латчи в порту A сбрасываются - теряется ранее установленные биты на порту A - это на реале. В симуляции - не теряются.
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: К580ВК38 и Proteus - нужна помощь

Post by Lavr »

Tronix wrote:Так вот вопрос: Кто-то пробовал использовать x80.dll с частотой симуляции > 1.5 MHz? У вас все работает?.
Я чаще всего на 2 МГц и работаю, если только не надо что-то притормозить и посмотреть медленно.
Процессор и x80.dll не глючили никогда. Глючит чаще всего что-то постороннее.

P.S. Вот проект, где процессор и x80.dll - на 2.5 МГц, и всё работает, не глючит и не падает:
viewtopic.php?p=168068#p168068

P.P.S. И для тебя я выше проект выкладывал на 2.5 МГц. Что, глючит и падает? :roll:
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: К580ВК38 и Proteus - нужна помощь

Post by Tronix »

Lavr wrote:Я чаще всего на 2 МГц и работаю, если только не надо что-то притормозить и посмотреть медленно.
Процессор и x80.dll не глючили никогда. Глючит чаще всего что-то постороннее.
Ну хрен его знает тогда, я уже исключал 8255 из симуляции, всякие расширители i2c портов, и схема практически соответствовала вышеприведенным картинкам - то есть просто 8080 проц, схемка эмуляции ВК38 и RAM и ROM. - не повлияло на общее поведение и точно так же падала на частоте >1.5 MHz . Посторонним здесь, получается, оставалась только x80.dll.

Ну да и ладно, хоть и через костыли, тормоза и падения, но все-таки лучше, чем постоянно на программаторе перепрошивать EEPROM'ку. Так что спасибо авторам и за то, что есть.
photo_2023-02-23_15-07-07.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: К580ВК38 и Proteus - нужна помощь

Post by Lavr »

Tronix wrote: Посторонним здесь, получается, оставалась только x80.dll.
Видимо, ты не умеешь её готовить. гыгыгы :ebiggrin:
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: К580ВК38 и Proteus - нужна помощь

Post by Tronix »

Lavr wrote:
Tronix wrote: Посторонним здесь, получается, оставалась только x80.dll.
Видимо, ты не умеешь её готовить. гыгыгы :ebiggrin:
Скорее всего так. Ну да и ладно, проехали.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: К580ВК38 и Proteus - нужна помощь

Post by Lavr »

Tronix wrote:
Lavr wrote:
Tronix wrote: Посторонним здесь, получается, оставалась только x80.dll.
Видимо, ты не умеешь её готовить. гыгыгы :ebiggrin:
Скорее всего так. Ну да и ладно, проехали.
Да я просто на твои картинки смотрю - криво всё... но я помню, что ты начинал с 8086 и 580ВМ80 - тебе чЮжд... :lol:
iLavr