名前: 浜マイク 日時: 2003-01-08 22:32:25 IPアドレス: 43.232.131.*
>>14774 多分フォントはComputer Modernです。 下のようなファイルです。でも、ほかのファイルでも前はうまくいっていたのに、 うまくいかないようになっていました。 コンパイルの段階で狂うみたいです。 ROMからインストールしなおしても問題は解消されませんでした。 \documentclass{jsarticle} \title{順序回路メインレポート} \author{……} \begin{document} \maketitle \section{実験を始めるにあたって} この実験は簡単な演算回路を実際に設計・製作することで、順序回路の構成法を学ぶものである。実験において設計する順序回路の要求仕様は、4ビットの2数A、Bの足し算を行い、その結果を4ビットの数Cと比較し、その結果を(大/小/等しい)表示することである。各実験に従って段階的に完成させる。 \section{実験1:シフトレジスタの動作確認} \subsection{目的} シフトレジスタの動作確認をする。制御信号$S_1$、$S_0$によって動作がどのように変化するのかを見る。 \subsection{結果} 実験の結果を表1に示す。制御信号によってシフトレジスタの動作がロード、ホールド、右シフト、左シフトのそれぞれに切り替わることが分かった。また、右シフト、左シフトの際には、RIght Shift Serial Input(以後RSSI)、Left Shift Serial Input(以後LSSI)のON、OFFにしたがってそれぞれ、左、右から送られてくる信号の値を切り替えることが出来ることが分かった。つまりONのときは1が、OFFのときは0が送られてくるわけである。 \vspace{5cm} \section{実験2:シフトレジスタ間のデータ転送} \subsection{目的} 二つのレジスタ間で1ビットずつ、4ビットのデータを転送回路の作成を行う。 \subsection{結果} シフトレジスタ間のデータ転送回路を図2に示す。制御信号は共通であるので、右シフトを用いて転送する際には、$Q_D$とRSSIを、また左シフトを用いて転送する場合は$Q_A$とLSSIを接続すればよい。するをどちらの場合も4クロックで4ビットがすべて転送された。右シフトの場合は上位ビットから、左シフトの場合は下位ビットから1ビットずつ転送された。ビット直列加算は下位ビットから行われるため、下位ビットから転送すればよい、したがって$Q_A$とLSSIを接続するのが妥当といえる。 \vspace{20cm} \section{実験3:ビット直列加算回路} \subsection{目的} ビット直列加算回路を用いて、2つのシフトレジスタから送られてきたデータを1ビットずつ加算処理する。ただし、桁上げを考慮しなくてはならないため、桁上げを保持するために、Dフリップフロップを用いる。 \subsection{結果} ビット直列加算回路の回路図を図3に示す。下位ビットから加算する必要があるため、A出力にはシフトレジスタAの$Q_A$を、B出力にはシフトレジスタBの$Q_B$を接続した。また、加算回路の出力はシフトレジスタ$\Sigma$のLSSIに接続した。初めにReset信号でDフリップフロップの情報をクリアして、制御信号をロードして値をロードする。次にシフトを切り替えてクロックを押していくと、4クロックで加算が完了した。加算結果はシフトレジスタ$\Sigma$に転送され、表示されることが確認できた。 \vspace{8cm} \section{実験4:4ビット比較回路} \subsection{目的} シフトレジスタ$\Sigma$とシフトレジスタCの値をビットごとに比較し、結果を出力するような回路を作成する。 \subsection{結果} 4ビット比較回路を図4に示す。上位ビットから比較が行われるようにするため、比較回路の入力には$Q_D$を接続した。また、XとYの比較結果は表2のように出力された。 \vspace{7cm} シフトレジスタ$\Sigma$とシフトレジスタCの$Q_D$を比較回路に接続して、クロックをあたえると、加算途中の$Q_D$が比較され、また加算終了時は右シフトに切り替えることによって加算結果が上位ビットから比較されていった。その演算過程を表4にしめす。 \vspace{7cm} \section{実験5:演算処理の実行} \subsection{目的} これまでに作成された回路に適当な制御信号を与えると、データロード・加算・比較の1連の処理を行うことが出来る。シフトレジスタ、Dフリップフロップに必要な制御信号を表にし動作を行わせる。 \subsection{結果} 結果を表3に示す。シフトレジスタA・Bとシフトレジスタ$\Sigma$の制御信号は共通でよいが、シフトレジスタCはデータが加算されている途中でシフトされてはいけないので、ホールド状態にならなければならない。よって状態2〜5の間ではCのみ独立して制御信号をあたえた。(Dフリップフロップのクリアはクリア端子から行った。) \space{8cm} ここでは制御信号をすべて共通にすることを考える。$S_0$はA・B・$\Sigma$・Cともに同じであるから、そのままでよい。シフトレジスタCの$S_1$が、状態2〜10の間で0となるとうにすればよいので、$S_0$と$S_1$の論理積を新たに$S_1$と定義し、シフトレジスタCに加える。そうすれば状態2〜5の間はCの値はホールドされ、6〜9の間で右シフトされ比較が行われる。その補足回路を図5にしめす。 \vspace{6cm} \section{演算部と制御部の結合} \subsection{目的} 演算回路と制御回路を接続し、クロック入力により状態が遷移し加算・比較結果が出力できるようにする。 \subsection{結果} JKFFの$Q_3$が$S_1$に$Q_2$が$S_0$にそれぞれ対応しているので、$Q_3$、$Q_2$を$S_1$、$S_0$に接続する。はじめにクリア入力ですべてのFFの状態をクリアして、クロックを与えていく。入力として0100と1010を加え、比較対象として、1010をあたえた場合の状態の移り変わりを表5に示す。 \vspace{10cm} 状態3〜6で加算が行われ、6で4bit目が比較された。ここで$E_q =0$となったので、上位ビット優先比較回路によりシフトレジスタC、$\Sigma$には停止命令が入力され、次のクロックでホールドされた。これ以降はクロックを与えても比較結果は保持された。 \section{課題1} シフトレジスタA、Bに値をロードする際、リセット操作で値をゼロにしておかないと、正しい結果を得ることが出来ない。このことについて考えるために回路を変更して考えた。 シフトレジスタA、Bのリセット入力を$V_{cc}$にプルアップした。すると、ディップスイッチから値をロードし加算を行った結果、LSBがA、Bともに1の場合に加算結果のLSBが本来0であるはずでも1が出力された。 この理由について考察すると、Dフリップフロップに繰上りが誤って入力されたためだと考えられる。はじめシフトレジスタA、Bにはそれぞれ1010、1101が設定されており、新たに0001、0010を設定して加算を行う場合のリセットから加算までの動作を表6に示す。 \vspace{4cm} リセット動作により、Dフリップフロップに保持されていた桁上げ情報はいったんクリアされるが、シフトレジスタがクリアされないのでA、Bの出力は加算器に入力される。このときA、BのLSBがともに1であれば全加算器は桁上げを出力する。この桁上げが次のロード動作時のクロックによってDフリップフロップに保持される。これが1bit目の加算時に出力され、計算結果が誤って表示されるものと思われる。 リセット動作でシフトレジスタも一緒にクリアしておけば全加算器の出力すべて0になり、この問題は生じない。 \section{課題2} A+Bの結果がオーバーフローする場合にも正しく結果が表示されるように回路を変更する。 オーバーフローしたのかどうかは4bit目を加算した時点で繰上りがあるかどうかで判断できる。4bit目加算を行ったときに加算器の繰り上がりが1であればA+Bはオーバーフローしているということであるから、比較結果はA+B>Cとしなくてはならない。 これを実現するような回路を考える。まず、4bit目の加算が行われた後はシフトレジスタA、Bともに0となるので加算の繰り上がりは常に0となる。したがって繰り上がりが0のとき通常の比較を行うようにすれば4bit目の比較以外のときに誤動作を起こすことはない。 そこで繰り上がりが1であれば常に$A+B>C$となり、繰り上がりが0のとき通常の比較を行うように回路を変更する。繰り上がりをCとすると、図4のX入力($\Sigma Q_D$)はC=1であれば、常に1が入力されるようにする。これは論理和をとることで実現できる。 また、X入力を1にしただけでは$CD_Q$が1のときに$Eq$となり正しく比較されないのでY入力はC=1であれば常に0となるようにする。変更後の比較回路への入力は \[X=\Sigma Q_D +C\] \[Y=\overline{\overline{CQ_D}+C}\] となる。使用する、ICを少なくするためにすべてNORで構成すると、 \[X=\overline{\overline{\Sigma Q_D +C}}\] \[Y=\overline{\overline{CQ_D}+C}\] となり、2入力NORのICをひとつ使用するだけで目的の機能を追加することが出来る。このときの比較回路を図6にしめす。 \vspace{7cm} \section{課題3} 順序回路においては遅延時間が遅延時間を考慮に入れる必要がある、制御部 \end{document}
この書き込みへの返事: