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)は
このブログ(以下のリンク)からダウンロードできます
Readme.txtを読んで遊んで下さい












 

このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)