Самодельный процессор nedoRISC-0 (NEDONAND)

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

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Самодельный процессор nedoRISC-0

Post by Lavr »

Shaos wrote:Пока решаю проблему непредвиденных самовозбудов заменой самодельных триггеров и регистров на библиотечные из логисима...
То есть - на библиотечные из логисима возбуда нет, а на самодельных - возбуд?

Ты, кстати, проверь триггер на макетке, прежде чем заказывать платки. Мой опыт на живых ЛА3 показывал, что триггеры, как их рисуют в книжке, получаются гавённенькие... :osad:
Может где и пути придется выровнять чтобы они приемлемо работали.
iLavr
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Lavr wrote:
Shaos wrote:Пока решаю проблему непредвиденных самовозбудов заменой самодельных триггеров и регистров на библиотечные из логисима...
То есть - на библиотечные из логисима возбуда нет, а на самодельных - возбуд?
Пока схемки были простые, вроде всё работало - как только оно стало более-менее запутанно - начались самовозбуды на самодельных триггерах...
Lavr wrote:Ты, кстати, проверь триггер на макетке, прежде чем заказывать платки. Мой опыт на живых ЛА3 показывал, что триггеры, как их рисуют в книжке, получаются гавённенькие... :osad:
Может где и пути придется выровнять чтобы они приемлемо работали.
Я поверял простой "transparent D-latch" из 4 NAND-ов на макетке - вроде работало:

Image

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

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Вот обновлённая версия, которая даже передачу управления по G=R делает ;)



P.S. По сути регистра G тут нету - есть PC (см. тут), запись в который есть просто установка сигнала LOAD непосредственно перед счётным импульсом и сброс после него (при этом младшие 8 битов в PC загружаются с выхода временного 8-битного регистра T, а старшие 3 - из младших трёх битов регистра F, который на схеме представлен просто как восемь D-триггеров со срабатыванием по уровню)...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Вот версия с полноценным 11-битным PC, A=n, R1=R2 (включая переход G=R с копированием 3 битов из F) и R=~R (это 128+64-10=182 штук опкодов или 71%):



Линк на архив с файлом для логисима:
http://nedopc.org/nedopc/files/logisim-nedonand.zip
Чтобы оно завелось надо кликнуть на вход /RESET чтобы там было "1"...

P.S. Интересно, что приведённая схема имеет больше возможностей, чем предоставляет система команд - например запись 7-битного числа в любой регистр или копирование с инверсией между любыми регистрами (система команд напомню разрешает запись числа только в A и копирование с инверсией только если источник и приёмник являются одним и тем же регистром)...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Пока имеем 93 отдельно стоящих NAND-гейтов, 12 полусумматоров (60 NAND-ов), 3 XOR-а (12 NAND-ов), демультиплексор 1:8 (32 NAND-а), 8 мультиплексоров 8:1 (8*24=192 NAND-а), 8 мультиплексоров 2:1 (8*4=32 NAND-а, но т.к. они подцеплены параллельно, то можно сократить на 7 гейтов т.е. 25 NAND-ов), 2 RS-триггера (2*2=4 NAND-а), 13 "навороченных" D-триггеров (13*18=234 NAND-а), 6 восьмибитных регистров (каждый из которых можно составить из 8 простых D-триггеров) и 8 отдельных простых D-триггеров ((6*8+8)*4=224 NAND-а) - всего 876 NAND-гейтов или 219 микросхем 74F00 (и это пока без АЛУ и конвейера)...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Shaos wrote:Вот версия с полноценным 11-битным PC, A=n, R1=R2 (включая переход G=R с копированием 3 битов из F) и R=~R (это 128+64-10=182 штук опкодов или 71%)
На самом деле этого уже достаточно, чтобы сделать что-то полезное - например написать HELLO на семисегментных индикаторах, подцепленных к регистрам A,B,C,D,E (младший бит - сегмент a, старший бит - десятичная точка):



Линк на архив с файлом для логисима:
http://nedopc.org/nedopc/files/logisim-nedonand.zip
Программу собственно всю видно - это только первые 12 байт ПЗУ.
Плюс я добавил шестнадцатиричных индикаторов чуть ниже ПЗУ для показа адреса (3 индикатора) и текущей инструкции (2 индикатора), а также четыре светодиода сверху для индикации текущего такта машинного цикла...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Shaos wrote:
Shaos wrote: P.P.S. В-принципе, можно уже нарисовать и заказать платки "слайсов", которые по приходу можно собрать и воткнуть в бредборду, на которой собрать это 4-битное АЛУ и погонять на разных скоростях, наблюдая за результатом по осциллографу, чтобы оценить пиковое быстродействие...
По-быстрому нарисовал в бесплатной версии Eagle v5 платку ALU-slice (см. eagle-nedonand.zip):



Развёл автороутером (всё кроме цепей питания, которые нарисовал вручную):



И заказал на oshpark.com несколько штучек :)

Image

P.S. Распиновка:
1) GND
2) O0
3) O1
4) O2
5) A
6) B
7) C
8) H
9) L
10) COUT
11) DOUT
12) VCC
Вот и платки пришли :)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Re: Самодельный процессор nedoRISC-0

Post by jdigreze »

Шустро оно у вас там. Когда паять и тестировать планируешь?
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

jdigreze wrote:Шустро оно у вас там. Когда паять и тестировать планируешь?
Я им за скорость приплатил - потому и шустро ;)

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

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Shaos wrote:В логисиме ещё логировать можно выбранные сигналы в текстовой форме, правда не по времени, а по изменениям состояния этих сигналов...

P.S. По-быстрому нарисовал в бесплатной версии Eagle v5 платку с двумя "навороченными" D-триггерами (см. eagle-nedonand.zip):



Развёл автороутером (всё кроме цепей питания, которые нарисовал вручную) плюс полигон земли пришлёпал снизу:



И заказал на oshpark.com несколько штучек :)

Image

По сути это аналог 7474, но входы установки не выведены наружу как пины, а представлены кнопками S1 и S2:
1) GND
2) D1
3) ^C1
4) /R1
5) Q1
6) /Q1
7) D2
8) ^C2
9) /R2
10) Q2
11) /Q2
12) VCC
Тем временем пришёл второй набор платок:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Нарисовал в бесплатной версии Eagle v5.12 третью платку - 4 бита PC-счётчика (см. eagle-nedonand.zip):



Развёл автороутером - по традиции всё кроме цепей питания плюс полигон земли, ну и немного вручную подправил:



И немедленно заказал на oshpark.com 3 штуки :)

Image

Три платки NEDONAND-3 втыкаются друг в друга (и в каждую втыкаются пара платок NEDONAND-2), образуя 12-битный счётчик (в качестве адреса для ПЗУ программ будем использовать только 11 бит, а 12-й можно заюзать как признак переполнения счётчика).

JP1:
1) IN (на выходе OUT) - сигнал разрешения счёта
2) ACT0 - сигнал записи внешнего значения
3) ACT1 - сигнал записи инкрементированного значения
4) /RESET - общий сброс
5) CLK - тактовый сигнал
6) NC
7) VCC
8) GND

JP2:
1) D0 - внешний бит 0 для записи
2) D1 - внешний бит 1 для записи
3) D2 - внешний бит 2 для записи
4) D3 - внешний бит 3 для записи
5) D4 - используется в следующих платах
6) D5 - используется в следующих платах
7) D6 - используется в следующих платах
8) D7 - используется в следующих платах
9) D8 - используется в следующих платах
10) D9 - используется в следующих платах
11) D10 - используется в следующих платах
12) D11 - используется в следующих платах (тут будет всегда "0")
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Видимо для начала надо построить вариант без АЛУ (как просимулировано в Logisim) - и к нему уже буду прикручивать конвейер и АЛУ
Маленькие платки буду авто-разводить в бесплатной версии Eagle 5.12 (ограничение на размер 10x8 см и кол-во слоёв 2) т.к. это быстрее (в моей лицензионной версии нет автороутера)
Большие платки буду вручную разводить в опенсорцном PCB т.к. он не имеет ограничений на размер и не надо заморачиваться с предварительным рисованием схемы, как в Eagle
Производство платок буду заказывать через oshpark.com - они делают по 3 платки (или количество кратное 3) относительно быстро (10-15 дней от заказа до доставки) и относительно недорого ($5 за кв.дюйм для трёх плат)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Собрал первые две платки:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Самодельный процессор nedoRISC-0

Post by Lavr »

А они работают хоть? :roll: А то что-то ты долго развлекаешь нас эксгибиционизмом плат... :ebiggrin:
А мы мальчонки-то уже в возрасте... возбуждает это как-то не сильно.. :wink:
iLavr
User avatar
Shaos
Admin
Posts: 23990
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Самодельный процессор nedoRISC-0

Post by Shaos »

Проверил первую платку (1 бит АЛУ) - вроде работает как надо:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net