kproA_2007

ディジタル回路の設計と
CADによるシステム設計
FPGAによる演算制御システムの試作
指導教授:笠原宏
05IE063
05IE074
05IE089
05IE099
戸塚雄太
橋本将平
牧野政道
安田光
概要
1.ディジタル回路設計CADについて
 2.CADによる回路設計過程
 3.設計する演算制御システムについて
 4.まとめと今後の予定

1.ディジタル回路設計CADについて
研究の目的

ディジタルシステムの設計と開発
マイクロプロセッサの解析
 CADを用いた演算制御システムの設計

計画
解析
検討
設計
1.ディジタル回路設計CADについて
利用するCADシステム

CAD
コンピュータ上におけるソフトウェアを用いた
ディジタル回路の設計支援システム

設計ツール:
 Xilinx社
ISE Foundation 9.1i
 Mentor Graphics社 ModelSimXE 6.2c
 FPGAダウンロード基板(40万ゲート規模)
2.CADによる回路設計過程
設計過程




1.回路図やVerilog HDLによる回路設計
2.シミュレーションによる動作検証
3.FPGAにダウンロード
4.実動作の確認
FPGA:
ディジタル回路の設計図を送り込んで
シミュレーションを行うことができる基板
2.CADによる回路設計過程
例1:回路図による設計
ソフトで用意されている回路図から
4ビット加算器を作成
入力:A3~A0(非演算数4ビット)
B3~B0(演算数4ビット)
CI(桁上げ入力)
出力:S3~S0(和4ビット)
CO(桁上げ出力)
OFL(オーバーフロー)
4ビット加算器の回路図
2.CADによる回路設計過程
例2:記述言語による設計

Verilog HDL
ディジタル回路の設計用の
ハードウェア記述言語
Verilog HDLを用いて
例1と同じ4ビット加算器を作成
2.CADによる回路設計過程
シミュレーション

回路図から作成した回路のソフトウェアによる仮想
シミュレーションを実行した結果
入力A:1100
入力B:1000
桁上げ入力:なし
出力S:0100
桁上げ出力:あり
オーバーフロー:あり
2.CADによる回路設計過程
デモンストレーション

四則演算器
入力:2進数8ビット(スイッチによる)
出力:2進数16ビット(LED)

特徴:
・加算、減算、乗算、除算が可能
・LEDの2進数出力に加え出力を
16進表記に変換して7セグメント表示
3.設計する演算制御システムについて
設計する演算制御システム概要

データフロー型演算制御システム
・単一バス方式8ビット(固定長)
・ALUによる演算処理
・必要最低限の3つの汎用レジスタを実装

バスを利用した情報処理
・単一バスであるため、一度に複数のデータを
流すことは不可能
・バスへのデータ出力のたびに、他の機構から
の出力を許可しないシステム設計
ハイインピーダンス状態
3.設計する演算制御システムについて
構成図
3.設計する演算制御システムについて
各部説明表
項目
名称
機能
MDR
記憶データ用レジスタ
入出力データを一時保存するレジスタ
MAR
記憶番地用レジスタ
記憶番地を指定するレジスタ
PC
プログラムカウンタ
次の命令の番地を指定するレジスタ
ALU
算術論理演算装置
各演算処理を行う装置
Acc
アキュムレータ
演算結果を一時的に保存するレジスタ
一時保存レジスタ
演算数を一時保存するレジスタ
汎用レジスタ
命令を実行する為に使用するレジスタ
IR
命令用レジスタ
実行中の命令内容を保持するレジスタ
ID
デコーダ
命令を解析して受け渡す装置
Control
制御回路
バスの制御を行い命令を実行する装置
Temp
R0~R2
3.設計する演算制御システムについて
各種レジスタの設計

汎用レジスタ,MAR,MDR,IR,PC,Acc,Tempの設計

例:汎用レジスタR0の設計


クロック立ち下がり時に入力命令、
立ち上がり時に出力命令を検出
制御回路からの命令に従った
バスとのデータ入力と出力
他のレジスタも同様に設計
 PCは命令実行番地を格納
入力:clk(クロック)
r0in(レジスタへの入力命令)
命令に従い次の命令番地に
r0out(レジスタからの出力命令)
カウントアップ

入出力:bus(データバス入出力)
3.設計する演算制御システムについて
デコーダの設計

インストラクションデコーダの設計

IRから出力されたデータを解析

制御回路からの出力命令に従っ
て解析した命令やデータをバス
または制御回路へ出力
入力:clk(クロック)
idout(バスへの出力命令)
idoutc(制御回路への出力命令)
iline(IRからのデータ入力)
出力: cline(制御回路へのデータ出力)
bus(データバスへの出力)
3.設計する演算制御システムについて
ALUの設計

演算処理装置の設計



制御回路からの命令に従い
演算の種類を判定
Accから演算数data1、
Tempから非演算数data2を取得
制御回路からの命令に応じた演算
を行い、結果をAccへ出力
入力:data1(Accからのデータ入力)
data2(Tempからのデータ入力)
mode(制御回路からの命令入力)
出力: ans(Accへのデータ出力)
3.設計する演算制御システムについて
制御回路

主な動作手順
 IDにて解析された命令をもと

演算処理システムの中枢
 解析した命令を実行させるため
に、次のクロックの変化で各
機構へ出力する信号を作成
 命令がない場合、メモリから
命令を読み出すプロセス用
の信号を作成
 クロックの変化を確認し、作
成した信号を各機構へ出力
の信号を制御
 各機構を動作させる信号に変換、
出力する重要な部分
4.まとめと今後の展開
まとめと今後の展開
ディジタル回路設計CADの使用法を習得
データフロー型演算制御システムの基本設
計への適用
制御回路を除く演算制御システムの各機構
の設計と設置




今後
現在製作中のシステムの完成
 3バス方式による演算制御システムの設計
