Design_BasicsDigial

☆デジタル回路

◆数値表現

_◇絶対値表示整数

※MSBにより、0は正数、1は負数のように数値の正負をあらわし、残りのビットで数値の大きさを表す

_◇2の補数表示整数
two’s compliment

※(2^N) + n の結果をNビットで表示する
正:0≦n<2^(N-1) 2^N項は桁あふれにより消滅し、|n|となる
負:-2^(N-1)≦n<0 2^(N-1) – |n|
⇒反転して1を足す

※負の2の補数表現も、反転して1を足せば絶対値となる

◆ド・モルガン則
de Morgan’s law

X~ + Y~ = (X*Y)~

X~ * Y~ = (X+Y)~

◆加算器

_◇半加算器
half adder
1ビットの加算器、下からの桁上げなし

C = X and Y
S = X xor Y

_◇全加算器
full adder

┌───┐       ┌─┐
X○─┤X C├───────┤O│
│   │ ┌───┐ │R├○CO
Y○─┤Y S├─┤X C├─┤ │
└───┘ │   │ └─┘
CI○───────┤Y S├────○S
└───┘

◆順序回路
sequential circuit

※状態(state)と呼ばれる変数を記憶する回路を持つ
※現在の状態からと入力の組み合わせから次の状態が決まる
※出力は状態と入力の組み合わせできまる。

※クロック信号⇒記憶の更新タイミング

◆ステートマシン

_◇ワンホット型ステートマシン
1ビット1状態、デコードの必要なし
⇒高速

☆参考

◎記号

10**12…T(テラ)
10**9 …G(ギガ)
10**6 …M(メガ)
10**3 …K(キロ)
10**-3…m(ミリ)
10**-6…μ(マイクロ)
10**-9…n(ナノ)
10**-12…p(ピコ)

◎ブール代数

◆ブール代数と各種定理
論理回路は,Analog信号を2値化することで,高速なSimulationが行えるように工夫されている.
このとき,設計/検証のよりどころになる基礎がブール代数.
なお,演算子の意味は以下の通り.

+ : 論理和
・ : 論理積 _ _
? : 排他的論理和 = A ? B = (A ・ B) + (A ・ B)
_
X : 否定
=
X : 二重否定

交換則: A + B = B + A

A ・ B = B ・ A

分配則: A ・ (B + C) = (A ・ B) + (A ・ C)

A + (B ・ C) = (A + B) ・ (A + C)

単位元: A + 0 = A

A ・ 1 = A
_
補 元: A + A = 1
_
A ・ A = 0

結合則: A + (B + C) = (A + B) + C

A ・ (B ・ C) = (A ・ B) ・ C

吸収則: A + (A ・ B) = A

A ・ (A + B) = A

巾等律: A + A = A

A ・ A = A

A + 1 = 1

A ・ 0 = 0
_
A + (A + B) = 1
_
A ・ (A ・ B) = 0
_ _ _ _
(A + B) ・ (A + B) = (A ・ B) + (A ・ B)
_ _ _ _
(A ・ B) + (A ・ B) = (A + B) ・ (A + B)

二重否定:
=
A = A

ド・モルガンの定理:
_____ _ _
(A + B) = A ・ B
_____ _ _
(A ・ B) = A + B

リードマラーの定理:

A ? B = B ? A
_
A ? B = A ? B
_
A ? B = A ? B
_____ _ _
A ? B = A ? B
_
A ? 1 = A

A ? 0 = A

(A ? B) ? C = A ? (B ? C)

シャノン展開(シャノンの定理):
_
f(A, B, C, D, …) = {A ・ f(B, C, D, …)} + {A ・ f(B, C, D, …}

※これらは,論理圧縮/論理展開等におけるよりどころである.

※ド・モルガンの定理
論理演算で「和の否定は、否定の積」、「積の否定は、否定の和」を意味する。デジタル回路では非常によく使われる重要な定理。

◆項と必須項
必須項は,項の一種であり,以下の定義が存在する.

必須項: ブール代数式において,唯一出現する項
項  : 必須項以外の項

(例)
_
X = (A ・ S) + (B ・ S)

A,B : 必須項
S  : 項

一般に,十分に論理圧縮された式では,必須項のみとなり,言い換えると必須項は,論理を維持するためには,削除不可能な項となる.
ただし,ブール代数での表現に限界があるため,必ずしも項が存在するからと言って,論理圧縮が行えるとは限らない.特に,排他的論理和や選択については,項が存在してしまう.これを回避するためにリードマラーの定理が存在する.

◆論理圧縮手法
論理回路の開発/設計を行う際には,論理圧縮を行う必要が生じてくる.
論理圧縮を行わずに論理回路の開発/設計を行うと,冗長性(Renandancy)が大きくなり,回路規模が増大するばかりか,遅延量の増大,消費電力の増大,テスト性(Testerbility)の低下など,さまざまな問題を抱えることとなる.
現在では,HDL言語設計を行うと,論理圧縮はCAD Toolが行うこととなるが,まれに論理圧縮ミスが発生したり,所定の動作仕様(伝播遅延時間や回路規模等)を満足しないことも発生する.
この場合,開発/設計者が事前に論理圧縮や論理展開を行い,動作仕様を満足させる必要が生じる事もある.
代表的な論理圧縮には

1. ブール代数式による圧縮
2. カルノー図法による圧縮
3. クワイン・マクラスキー法による圧縮
4. PLA法による圧縮
5. BDD(2分決定木)による圧縮
6. 関数法による圧縮

があり,それぞれに長所短所がある.特に5.,6.は,Software的に処理し易い方法で,主にCAD Toolで使用されている.CAD Tool用の圧縮方法としては,他にEspresso等がある.

◆リメディ
通常は十分に論理圧縮を行うことが望ましいが,あえてRenandancyを設けて予想し得る問題を回避方法もある.
(例)
_
X = (A ・ S) + (B ・ S) + (A ・ B)

上記の式では,(A ・ B)は不要な式であり,これをリメディと呼んでいる.

◎誤り訂正符号
誤り訂正符号は、種々のものが考えられている。
ブロック符号、畳み込み符号ともに、ランダム誤りに適した符号とバースト誤りに適した符号がある。
ブロック符号では、ランダム誤り訂正のBCH符号、バースト誤り訂正のリードソロモン
符号がよく利用されている。
畳み込み符号では、復号にビタビ復号を行うことにより訂正能力が高められる。

ブロック符号
※ブロック符号(n,k)とは、情報長がk,全符号長がn,チェック符号長がn-k、η=k/nを符号化効率という⇒CRC符号など
ランダム誤り
ハミング符号
ゴーレイ符号
BCH符号
BCH符号(ビー・シー・エッチふごう)(BCH code)
Bose-Chaudhuri-Hocquenghem符号の略。
ハミング距離に基づいたブロック符号を一般化した符号であり、シフトレジスタによる線形演算で比較的容易に実現できる線形巡回符号の代表的なものである。
ランダムな誤りが生じる通信路におけるランダム誤り訂正に用いられる。

バースト誤り
ファイア符号
リードソロモン符号

畳み込み符号
ランダム誤り
自己直交符号
樹枝状符号
バースト誤り
ハーゲルバーガ
岩垂れなど

◎通信におけるS/N,C/N
電気通信分野では、処理対象の情報を信号 (Signal) と呼び、ノイズ (Noise) との量との比率 (S/N) によって通信の品質を表現する。これを信号電力対雑音電力比( S/N、SNR、SN比、エスエヌひ)といい、対数表現の dB(デシベル)で表す。S/Nが大きいほど通信品質が良好であることを示す。但し、実際の通信では無信号時には雑音のみ (N) であるが信号を受信した際には信号と雑音が重畳されている(すなわち S+N )であるため、測定値は (S+N)/N をもって表現することが多く、このため厳密には両者は区別される。例えば S/Nが 0dB(すなわち信号とノイズの電力が等しい)場合でも (S+N)/N は 6dB になるため、通信方式によっては情報伝達が可能である。S/N比などは厳密には間違い。これはS/Nという表記そのものが 比 を表しているため。比を使う場合はSN比と表記すべきである。

※ランダムノイズに対する平均化回数 n の効果
S/Nの改善
S/N = 20 log10 (√n)

※「信号」を搬送波電力とした搬送波電力対雑音電力比 (Carrier to Noise ratio) あるいは C/N (シーエヌ、CN比、CNR とも)と呼び、デジタル信号伝送では主にこちらが用いられる。