nedoPC.org

Community for electronics hobbyists, established in 2002
Last visit was: 31 Oct 2024 16:53
It is currently 31 Oct 2024 16:53



 [ 193 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8, 9, 10 ... 13  Next
Самодельный процессор nedoRISC-0 (NEDONAND) 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Далее по планам разработки плат на ближайшие дни:
- восьмибитный регистр-защёлка для построения регистров с прямыми и инверсными выходами NEDONAND-5 (2+1+8+16=27 ног);
- восемь мультиплексоров 2:1 с общим управлением NEDONAND-6 (2+1+16+8=27 ног);
- демультиплексор 1:8 распостраняющий единичку NEDONAND-7 (2+3+1+8=14 ног);
- мультиплексор 8:1 под названием NEDONAND-8 (2+3+8+1=14 ног);
- девятивходовый логический элемент AND под названием NEDONAND-9 (2+9+1=12 ног).

Планирую для начала построить версию которая щас есть в логисиме - только первая ступень конвейера (и только 16 байт ПЗУ).
Далее будет 128-байтовая версия (тоже память на диодах), и только потом полноценная версия с 2К на РФ2.

P.S. Вот так их можно тестировать, подключая поочерёдно в один 30-дырчатый разъём, с другой стороны которого будет большой PIC16:
Code:
    NN1  NN2  NN3    NN4   NN5  NN6  NN7  NN8  NN9  NN16
--------------------------------------------------------
 1) GND  GND  ---    GND   GND  GND  GND  GND  GND  GND
 2) O0   D1   ~Q0    D0    D0   O0   O0   I0   A    D0
 3) O1   ^C1  ~Q1    D1    D1   O1   O1   I1   B    D1
 4) O2   /R1  ~Q2    D2    D2   O2   O2   I2   C    D2
 5) A    Q1   ~Q3    D3    D3   O3   O3   I3   D    D3
 6) B    /Q1  IN     COUT  D4   O4   O4   I4   E    D4
 7) C    D2   ACT0   VOUT  D5   O5   O5   I5   F    D5
 8) H    ^C2  ACT1   /O0   D6   O6   O6   I6   G    D6
 9) L    /R2  /RESET /O1   D7   O7   O7   I7   H    D7
10) COUT Q2   CLK    /O2   STB  SEL  /ENO OUT  I    NC (/OE)
11) DOUT /Q2  NC     /ZERO NC   /SEL EN   NC   AND  NC (/CS)
12) VCC  VCC  VCC    VCC   VCC  VCC  VCC  VCC  VCC  VCC
13) ---  ---  GND    ---   ---  ---  GND  GND  ---  ---
14)                                  A0   A0        ~A0
15)           D0     O0    Q0   A0   A1   A1        ~A1
16)           D1     O1    /Q0  B0   A2   A2        ~A2
17)           D2     O2    Q1   A1                  ~A3
18)           D3     C     /Q1  B1
19)           D4     A0    Q2   A2
20)           D5     A1    /Q2  B2
21)           D6     A2    Q3   A3
22)           D7     A3    /Q3  B3
23)           D8     B0    Q4   A4
24)           D9     B1    /Q4  B4
25)           D10    B2    Q5   A5
26)           D11    B3    /Q5  B5
27)                        Q6   A6
28)                        /Q6  B6
29)                        Q7   A7
30)                        /Q7  B7

~ означает, что сигнал подключен проводом с бокового разъёма

P.P.S. Если любую плату NEDONAND повернуть к себе лицом и разъёмом вниз, то ноги будут нумероваться справа-налево...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


24 Feb 2016 23:12 WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Shaos wrote:
и только потом полноценная 2Кбайтная на РФ2...

Лучше на РТ, или какой там есть её аналог... РФ2 по скорости убивает всё быстродействие - я подсчитывал.
Весь смысл в быстродействующих NAND теряется.

_________________
iLavr


25 Feb 2016 01:27
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Ну тут сумматор подцеплен цепочкой - точно также убивает всю скорость - так что одно на другое и выходит...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


25 Feb 2016 05:59 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Shaos wrote:
Потестил на брэдборде - работает ;)

Image

P.S. Плюс к этому видео снял как оно светодиодами мигает, но это уже завтра...

P.P.S. По сути это аналог одного счётчика 74161 (с асинхронным сбросом) на рассыпухе ;)


А вот и видео :)



Четыре красных светодиода это 4 выхода считаемого адреса, а пятый жёлтый - это сигнал разрешения счётся для следующего каскада

P.S. Эта этажерка жрёт порядка 130 мА всё время...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


25 Feb 2016 07:22 WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Shaos wrote:
Ну тут сумматор подцеплен цепочкой - точно также убивает всю скорость - так что одно на другое и выходит...

Фигово... с Рф2 - и до 1МГц не разгонишься, выходит так.

_________________
iLavr


25 Feb 2016 07:45
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Lavr wrote:
Shaos wrote:
Ну тут сумматор подцеплен цепочкой - точно также убивает всю скорость - так что одно на другое и выходит...

Фигово... с Рф2 - и до 1МГц не разгонишься, выходит так.


ну оно по спецификации 450нс вроде как, а это 2.222 МГц - я хочу в пике разогнать этот недопроц до 1.666 МГц с РФ2 (частота кварца при этом должна быть 6.666 МГц)

не получится с РФ2 - поставлю 2716 поновее...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


25 Feb 2016 08:39 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Один товарищ решил покодить условные переходы и доказал, что их тут сильно не хватает:
https://hackaday.io/project/9795-nedonand-homebrew-computer/discussion-48545#j-discussions-title
В результате я придумал команду SKIP-IF-A-EQ-FF (пропустить следующую команду, если A=0xFF ; )
В этом случае переход если равно будет выглядеть так:
Code:
E=addr_neq
A=0x40 ; mask for flag Z
NAN F ; A=~(A&F)
SFF ; new magic command (if A=0xFF at this point then tested flag was 0)
G=E ; skip if equal (so jump if NOT equal)
; stay here if equal
A=addr_eq
G=A ; jump to addr_eq
addr_neq:

P.S. На самом деле можно и SKIP-IF-A-NEQ-FF завести, чтобы не городить лишние перескоки...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


25 Feb 2016 17:44 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Сегодня переместил NOP в 0x88, RET в 0x80, а 0xBE и 0xBF (места для G=F и G=~G) стали двумя новыми инструкциями:
0xBE SAEFF - Skip if A is Equal to FF
0xBF SANFF - Skip if A is Not equal to FF
которые заставляют процессор пропустить следующую инструкцию если регистр A равен 0xFF или не равен 0xFF соответственно

P.S. Ещё народ советует подменить на что-то полезное F=~F и F=G (например чтение-запись в ОЗУ?), но это потом...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


25 Feb 2016 19:17 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Уже черепов больше, чем у Зори:


You do not have the required permissions to view the files attached to this post.

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


25 Feb 2016 23:23 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
ой, на меня OSHPark подписался :o
https://twitter.com/oshpark
и полайкал несколько моих твитов (в частности про мой чип)

P.S. а потом ещё и в блоге своём про меня написали!
http://blog.oshpark.com/2016/02/27/nedonand-homebrew-computer/

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


26 Feb 2016 19:18 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Итак, очередная платка - по счёту пятая (NEDONAND-5) и это 8-разрядный регистр-защёлка с прозрачным стробированием (причём не только с прямыми выходами, но и с инверсными):



Вот авторазведёнка:



Только что заказал на OSHPark:

Image

Распиновка:
1.1) GND - земля
1.2) D0 - вход бит 0
1.3) D1 - вход бит 1
1.4) D2 - вход бит 2
1.5) D3 - вход бит 3
1.6) D4 - вход бит 4
1.7) D5 - вход бит 5
1.8) D6 - вход бит 6
1.9) D7 - вход бит 7
1.10) STB - строб записи (активный "1")
1.11) NC - не подключен
1.12) VCC - питание +5В
2.1) Q0 - выход сохранённый бит 0
2.2) /Q0 - выход инверсный сохранённый бит 0
2.3) Q1 - выход сохранённй бит 1
2.4) /Q1 - выход инверсный сохранённый бит 1
2.5) Q2 - выход сохранённый бит 2
2.6) /Q2 - выход инверсный сохранённый бит 2
2.7) Q3 - выход сохранённый бит 3
2.8) /Q3 - выход инверсный сохранённый бит 3
2.9) Q4 - выход сохранённый бит 4
2.10) /Q4 - выход инверсный сохранённый бит 4
2.11) Q5 - выход сохранённый бит 5
2.12) /Q5 - выход инверсный сохранённый бит 5
2.13) Q6 - выход сохранённый бит 6
2.14) /Q6 - выход инверсный сохранённый бит 6
2.15) Q7 - выход сохранённый бит 7
2.16) /Q7 - выход инверснй сохранённый бит 7

P.S. Аналогичный функционал можно получить из 2 чипов 74175 (если нужны и прямые выходы, и инверсные) либо 74573 (если только прямые)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


26 Feb 2016 22:22 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Сегодня статистика такая:


You do not have the required permissions to view the files attached to this post.

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


26 Feb 2016 22:34 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Шестая плата NEDONAND-6, которая есть 8 мультиплексоров 2:1 с общим управлением (прямым и инверсным сигналом выбора):



Авторазведёнка:



Уже заказана на OSHPark:

Image

Распиновка:
Code:
1.1) GND - ground
1.2) O0 - output of multiplexer 0
1.3) O1 - output of multiplexer 1
1.4) O2 - output of multiplexer 2
1.5) O3 - output of multiplexer 3
1.6) O4 - output of multiplexer 4
1.7) O5 - output of multiplexer 5
1.8) O6 - output of multiplexer 6
1.9) O7 - output of multiplexer 7
1.10)SEL - straight select
1.11)/SEL - inverted select
1.12)VCC - power +5V

2.1) A0 - input A of multiplexer 0
2.2) B0 - input B of multiplexer 0
2.3) A1 - input A of multiplexer 1
2.4) B1 - input B of multiplexer 1
2.5) A2 - input A of multiplexer 2
2.6) B2 - input B of multiplexer 2
2.7) A3 - input A of multiplexer 3
2.8) B3 - input B of multiplexer 3
2.9) A4 - input A of multiplexer 4
2.10)B4 - input B of multiplexer 4
2.11)A5 - input A of multiplexer 5
2.12)B5 - input B of multiplexer 5
2.13)A6 - input A of multiplexer 6
2.14)B6 - input B of multiplexer 6
2.15)A7 - input A of multiplexer 7
2.16)B7 - input B of multiplexer 7


P.S. NEDONAND-6 можно подцепить к NEDONAND-5 и получить 8-битный регистр с управляемой инвертируемостью выходов - это пригодится например для регистра T (временный регистр, который хранит в себе значение в процессе копирования регистров - см. симуляцию в Logisim).

P.P.S. По сути эта платка работает как 2 чипа 74157

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


27 Feb 2016 18:16 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Седьмая плата NEDONAND-7, которая есть демультиплексор 1:8, но по сравнению с dmux8 из nedonand.circ для Logisim:



вход IN (щас он называется EN т.к. "enable") ещё инвертируется и выдаётся наружу (под названием /ENO) для каскадирования (из 2 плат без лишней обвязки можно получить 1:16):



Авторазведёнка:



Уже заказана на OSHPark:

Image

Распиновка:
Code:
1) GND - ground
2) O0 - output "1" if EN="1" and A=0
3) O1 - output "1" if EN="1" and A=1
4) O2 - output "1" if EN="1" and A=2
5) O3 - output "1" if EN="1" and A=3
6) O4 - output "1" if EN="1" and A=4
7) O5 - output "1" if EN="1" and A=5
8) O6 - output "1" if EN="1" and A=6
9) O7 - output "1" if EN="1" and A=7
10)/ENO - output of inverted EN
11)EN - enable input (must be "1" to demultiplex)
12)VCC - power +5V
13)GND - another ground
14)A0 - bit 0 of address
15)A1 - bit 1 of address
16)A2 - bit 2 of address

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


27 Feb 2016 22:49 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23385
Location: Silicon Valley
Восьмая плата NEDONAND-8, которая есть мультиплексор 8:1, повторяющий один в один схему mux8 из nedonand.circ для Logisim:



Выведены все сигналы на 16-ногий разъём (такой же как и у NEDONAND-7):



Авторазведёнка:



Уже заказана на OSHPark:

Image

Распиновка:
Code:
1) GND - ground
2) I0 - input if A=0
3) I1 - input if A=1
4) I2 - input if A=2
5) I3 - input if A=3
6) I4 - input if A=4
7) I5 - input if A=5
8) I6 - input if A=6
9) I7 - input if A=7
10)OUT - output of multiplexer
11)NC - not connected
12)VCC - power +5V
13)GND - another ground
14)A0 - bit 0 of address
15)A1 - bit 1 of address
16)A2 - bit 2 of address

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


27 Feb 2016 22:53 WWW
 [ 193 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8, 9, 10 ... 13  Next

Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.