放課後の電子工作 HOME > Mandelbrot集合描画支援ハードウェア [ Pyxis ] > ハードウェア設計コンテスト 最終レポート [HTML版] > 2.システム概要

[ Pyxis ]
ハードウェア設計コンテスト
最終レポート

2.システム概要


表紙
目次

1. 製作の目的
1.1 対象
1.2 問題点
1.3 解決法
1.4 略記号について

2. システム概要
2.1 設計方針
2.2 システム的機能
2.3 動作の概要

3. システム設計
3.1 演算フローの検討
3.2 数値のデータ表現
3.3 式(1-5)の判定法

4. 機能ブロックの解説
4.1 システムブロック
4.2 加算・減算回路
4.3 乗算回路
4.4 Ox:Cx生成回路
4.5 Oy:Cy生成回路
4.6 Xx:Zx2−Zy2+Cx演算回路
4.7 Yy:2ZxZy+C演算回路
4.8 Rr:Zx2+Zy2演算回路
4.9 Cn:制御回路
4.10 回路図の構成

5. タイミング設計
5.1 タイムチャートの表記法
5.2 タイムチャート

6. 使用部品

7. 実装設計
7.1 基板
7.2 レイアウト

8. 製作

9. ハンドリングソフトウェア

10. 結果
10.1 実行時間
10.2 設計目標との対比

11. 終わりに

付録1 制御信号と出力条件
付録2 タイムチャート
付録3 部品表
付録4 部品レイアウト図 (約240KB)
付録5 回路階層と機能説明
付録6 全回路図 (約1.7MB)


HOME

Copyright 2003-2006
Chiaki Nakajima.
All rights reserved.

 

2.1 設計方針

 Pyxisの目的は,"M集合のCGを高速に作成する" ためのハードウエアです.これを第1目標として設計するわけですが,当時の状況などの制約事項を考慮し,次のように設計目標を定めました.
 (a)400×320ピクセル分を1分以内で描画できること.
 (b)IC代で2〜3万円が上限.
 (c)特殊な部品は使わない.
 (d)拡大描画に耐える十分な演算精度を持つ.
 (e)ホストの性能を期待しない.
 全般に最適なトレードオフを得るためには,システム全体の様々な問題に対し上記の条件のもとで,あたかも "ニュートン法を使って連立方程式を解く" ような設計をする必要があります.その "連立方程式" の最適解を目標としてPyxisを設計しました.

fig2-1

[図2-1]ホストとの接続形態

2.2 システム的機能

 図2-1にPyxisのホストとの接続形態を示します.
 Pyxisは8ビットCPUバスに直結され,単純なI/Oとして動作します.
 まず,ホストからは第1章で説明した4つのパラメータをPyxisの内部レジスタに設定します.
 (a)描画対象領域実軸原点:a(図1-1参照)
 (b)描画対象領域虚軸原点:b(図1-1参照)
 (c)ステップ:S(式(1-3)参照)
 (d)最大反復回数:NMAX
 そしてリセットレジスタをクリアすると,Pyxisは演算を開始します.
 この後ホスト側に必要な処理は,Pyxisから順次出力される全ピクセル分の演算結果Nx,yを読み出し,描画していくだけです.ホストの能力に依存せず高速な描画を実現するため,各ピクセルに対応するC,Cの計算など,演算にからむ処理はPyxis内部ですべて処理されます.ですから,機能的にはリスト1-1の描画部分(draw_pixel())を除いた,すべての処理を取り込んだものとなっています.

2.3 動作の概要

 前項の通り,Pyxisは機能的にリスト1-1をハードウエア化したものとなっています.ここではその動作について概略を説明します.

(1)処理の進み方
 処理はP0,0を開始点として,まずx方向に0からXMAX-1まで,さらにこれをy方向にYMAX-1まで順次進行していきます.この時ピクセル毎のCx,yは,C生成回路及びC生成回路にて処理の進行にあわせて計算されます.
 Pyxisはパイプラインにより2ピクセル分を同時に処理します(後述).x方向への処理進行において,まずP0,0とP1,0,次にP2,0とP3,0,・・・と2ピクセルずつ順次処理されていきます.この同時に処理される2ピクセルのことを以後ピクセルペアと呼び,xが偶数,奇数のピクセルをそれぞれP,Pで表すことにします.

(2)ピクセルペア毎の処理
 演算処理はピクセルペア毎に行われます.n=0から,式(1-1)の反復演算を実行していきます.
 その処理の中で,P,Pのそれぞれについて式(1-5)の成立がチェックされます.成立と判定された場合にはそのフラグが制御回路へ渡され,その時のnが結果レジスタLもしくはLへロードされます.当然,PとPが同時に成立するとは限りません.先に成立した方は,他方の処理が終了するまで待たされます.
 このようにして,P,Pの両方が式(1-5)成立と判定されるか,またはnがNMAX-1に到達するとそのピクセルペアの処理は終了となります.演算終了ステータスがセットされ,ホストに対して結果レジスタL,Lの読み出しが可能になったことを知らせます.演算終了ステータスは,Lレジスタの読み出しでクリアされます.

(3)1ピクセルペアの処理終了後
 演算終了ステータスがセットされた後,Pyxisは直ちに次のピクセルペアの処理を開始します.ホストの読み出しを待ちませんので,回路の動作効率を非常に高めることができます.
 しかし万一,ホストの処理が遅くて読み出しが間に合わない場合(すなわち,演算終了ステータスがセットされた状態で,処理中である次のピクセルペアP,Pのどちらかの演算が終了した場合)には,結果レジスタがオーバーライトされる直前の状態で回路全体が停止し,ホストの読み出しの完了を待つようになっています.これにより,ホストが遅くても演算結果を読み落とす心配はありません.

○ここまでで,Pyxis全体の構成及び動作の概略を説明しました.次の章では,具体的な回路の説明の前に必要となる,数値データの表現法などシステム全体に共通する基本的な重要要素について説明します.

△ページの先頭へ戻る