N88-BASICでデジタル回路 (2回目)
2022/1/14(金)
N88-BASICでデジタル回路 (2回目)
1bit + 1bit = 2bits (2進数1桁同士の足し算)
を計算するデジタル回路(加算器)を考えます
1=true(真)、0=false(偽)
a + b = cd
0 0 00
0 1 01
1 0 01
1 1 10
d = a XOR b
c = a AND b
NOT、AND、OR、XOR素子を組合わせた回路を作ります
a,bが入力、c,dが出力です
NOTは1、0の反転
ANDは両方1の時のみ1
OR は両方0の時のみ0
XORは両方同じとき0違うとき1
です
2bits + 2bits = 3bits (2進数2桁同士の足し算)
を計算するデジタル回路(加算器)を考えます
a + b = cd
0 0 00
0 1 01
0 0 01
0 1 10
d = a XOR b
c = a AND b
これをもとに、筆算の要領で多桁の計算をします
(例) 11 + 11 = 110
1 c1
11 ab
+) 11 +) cd
------ ------
110 xyz
ab + cd = xyz
z = b XOR d '--- d1
c1 = b AND d
d2 = a XOR c
c2 = a AND c
y = d2 XOR c1 '--- d3
x = d2 AND c1 OR c2
NOT、AND、OR、XOR素子を組合わせた回路を作ります
a,b,c,dが入力、x,y,zが出力です
(この回路は最適なものではなく、試行錯誤適当に考えて
とりあえず動いたものです)
3bits + 3bits = 4bits (2進数3桁同士の足し算)
を計算するデジタル回路(加算器)を考えます
a + b = cd
0 0 00
0 1 01
0 0 01
0 1 10
d = a XOR b
c = a AND b
これをもとに、筆算の要領で多桁の計算をします
(例) 111 + 111 = 1110
11
111
+) 111
-------
1110
abc + def = wxyz
z = c XOR f '--- d1
c1 = c AND f
d2 = b XOR e
c2 = b AND e
y = c1 XOR d2 '--- d3
c3 = c1 AND d2 OR c2
d4 = a XOR d
c4 = a AND d
x = c3 XOR d4 '--- d5
w = c3 AND d4 OR c4
NOT、AND、OR、XOR素子を組合わせた回路を作ります
a,b,c,d,e,fが入力、w,x,y,zが出力です
(この回路は最適なものではなく、試行錯誤適当に考えて
とりあえず動いたものです)
ここでは、1:true(真)、0:false(偽)としていますが、
BASICでは、-1(すべてのbitが1):true、0:falseです
NL-BASICとblg~.zip(digi002.bas)は
このブログ(以下のリンク)からダウンロードできます
N88-BASICでデジタル回路 (2回目)
1bit + 1bit = 2bits (2進数1桁同士の足し算)
を計算するデジタル回路(加算器)を考えます
1=true(真)、0=false(偽)
a + b = cd
0 0 00
0 1 01
1 0 01
1 1 10
d = a XOR b
c = a AND b
NOT、AND、OR、XOR素子を組合わせた回路を作ります
a,bが入力、c,dが出力です
NOTは1、0の反転
ANDは両方1の時のみ1
OR は両方0の時のみ0
XORは両方同じとき0違うとき1
です
2bits + 2bits = 3bits (2進数2桁同士の足し算)
を計算するデジタル回路(加算器)を考えます
a + b = cd
0 0 00
0 1 01
0 0 01
0 1 10
d = a XOR b
c = a AND b
これをもとに、筆算の要領で多桁の計算をします
(例) 11 + 11 = 110
1 c1
11 ab
+) 11 +) cd
------ ------
110 xyz
ab + cd = xyz
z = b XOR d '--- d1
c1 = b AND d
d2 = a XOR c
c2 = a AND c
y = d2 XOR c1 '--- d3
x = d2 AND c1 OR c2
NOT、AND、OR、XOR素子を組合わせた回路を作ります
a,b,c,dが入力、x,y,zが出力です
(この回路は最適なものではなく、試行錯誤適当に考えて
とりあえず動いたものです)
3bits + 3bits = 4bits (2進数3桁同士の足し算)
を計算するデジタル回路(加算器)を考えます
a + b = cd
0 0 00
0 1 01
0 0 01
0 1 10
d = a XOR b
c = a AND b
これをもとに、筆算の要領で多桁の計算をします
(例) 111 + 111 = 1110
11
111
+) 111
-------
1110
abc + def = wxyz
z = c XOR f '--- d1
c1 = c AND f
d2 = b XOR e
c2 = b AND e
y = c1 XOR d2 '--- d3
c3 = c1 AND d2 OR c2
d4 = a XOR d
c4 = a AND d
x = c3 XOR d4 '--- d5
w = c3 AND d4 OR c4
NOT、AND、OR、XOR素子を組合わせた回路を作ります
a,b,c,d,e,fが入力、w,x,y,zが出力です
(この回路は最適なものではなく、試行錯誤適当に考えて
とりあえず動いたものです)
ここでは、1:true(真)、0:false(偽)としていますが、
BASICでは、-1(すべてのbitが1):true、0:falseです
NL-BASICとblg~.zip(digi002.bas)は
このブログ(以下のリンク)からダウンロードできます
Readme.txtを読んで遊んで下さい