基板担当報告書


課題一覧

  1. 課題1 LEDネオンサインの実装(1998年10月12日出題)
  2. 課題2 RS232C通信(1998年10月26日出題)
  3. 課題3 メモリ通信(1998年11月17日出題)
  4. 課題X 基板全体の実装(1998年12月7日出題)


作業内容

  1. 課題1 LEDネオンサイン(4bitグレイコードカウンタ)

  2. 課題2 RS232C通信

  3. 課題3 メモリ通信

  4. 課題X 基板全体の実装(残りの部分の実装)

各課題の結果(総括)

課題1 LEDネオンサイン(グレイコード)の実装

1998年10月23日に正常動作を確認。当初、動作不良が認められたが、
XILINXの不良がその原因であった(やるなXILINX!)。

課題2 RS232C通信

1998年11月30日にA班の菅原様のご協力(CADバイナリの提供)を受け、
受信成功(ホスト側のキー入力に対し、基板側でASCIIコードに対応する
LEDを点灯)を確認。同年12月22日に送受信成功を確認。

課題3 メモリ通信

1999年1月27日に送受信成功を確認。

課題X 基板全体の実装

1999年2月26日に基板の実装作業が一通り終了。同年3月8日、低周波に
対応すべく、クロック供給用外部基板を作成。同年3月14日現在、問題が
randomに生じるものの、何とか実用化に至る。しかし、最後もまたXILINXの
不良に直面した。XILINXが根性なしなのか、私が帯電質なのかは、永遠の
謎として残る(でも、決してあっしがXILINXを2個壊した訳ではないっす)。


外部仕様

1.アドレスデコーダ回路

CPUには、アドレスピンが17本(A1〜A17)、データピンが32本(D0〜D31)
存在する。また、RAMはコード領域とデータ領域が分離されている。以下に、
アドレスと領域の対応を示す。

if A17 = H then goto ROM;
else if (A17 = L and A16 = H) then goto Data_RAM;
else if (A17 = L and A16 = L) then goto Code_RAM;

また、データバスは32bitであるが、内部的には16bitであるため、データの
選択はBHEとBLE(いずれもlow active)を用いる。

if (A16 = H and BHE = L) then aquire(D16...D31 in Data_RAM);
else if (A16 = H and BLE = L) then aquire(D0...D15 in Data_RAM);
else if (A16 = L and BHE = L) then aquire(D16...D31 in Code_RAM);
else if (A16 = L and BLE = L) then aquire(D0...D15 in Code_RAM);

Data_RAM(Code_RAM)同士であれば、BHEとBLEを同時にLにして、32bitの
データを一気に読み込むことも可能である。

※上記の疑似コードを基板に実装した。具体的には、次の通り。

2.メモリマップ

前述のように、RAMはコード領域とデータ領域に分離されている。以下に、
データ領域のメモリマップを示す。0xFFF0以降がI/O領域であるのは、アドレス
デコーダ回路を簡略化するためである。

アドレス 用途
0x0000 - 0xFFEF RAM(自由に使用できる領域)
0xFFF0 USARTのdata register
0xFFF1 reserved
0xFFF2 USARTのcontrol/mode/status register
0xFFF3 - 0xFFFF reserved


3.シリアル通信のクロック選択回路

本ディップスイッチを用いて、多様な周波数を得ることができる。
ただし、1と2のみが有効(3〜8はNC)。

DS1 DS2 clk
ON(L) ON(L) 2分周
OFF(H) ON(L) 4分周
ON(L) OFF(H) 8分周
OFF(H) OFF(H) 16分周

4.9152MHzの水晶を挿入している場合、8分周が38400bps(614.4KHz)に相当。
# 同様に、16分周が19200bpsに相当。

※補足
DSは電源OFF時に切替えて頂きたい。電源ONの時に切替えると、CPUが誤動作
するものと考えられる。
# 切替時にハザードのようなものが生じるが、それを解消する機構は実装して
# いない。余談であるが、かつての改造X680x0は動作中にクロックの切替えが
# 出来ない仕様であったが、これも同じ理由であろう(「バッ活総集編」)。

4.クロック分周回路(外部基板)

本基板とCPU基板のディップスイッチを用いて、多様な周波数を得ることが
できる。ただし、1と2のみが有効(3〜8はNC)。

DS1 38400bps(614.4KHz)
DS2 2400bps(38.4KHz)

なお、DS1を選択した場合、メイン基板上のDSと併用することにより、
19200bps, 9600bps, 4800bps, 2400bpsを取り出すことが可能。

一方、DS2を選択した場合は、1200bps, 600bps, 300bps, 150bpsが可能。

※外部基板のインターフェースに関しての注意

外部基板から4本のジャンパー線が出ている。

線の色(場所) 信号
黒(クリスタル近く) GND
赤(クリスタル近く) Vcc
白(DS2) 38.4KHzのクロック
赤(DS1) 614.4KHzのクロック

これらをメイン基板上のクリスタルのソケットに接続して頂きたい。
Vccの線と614.4KHzの線が紛らわしいが、使用の際には御注意頂きたい。


謝辞

基板を担当するにあたって、私自身が経験不足であったため、様々な
方から助言を頂いた。特に、菅原様、平木研の皆様(tm様、田中様、新野様)
には、非常にお世話になった。この場を借りて、御礼申し上げたい。

Katsuhito Chiba
Department of Information Science, University of Tokyo

kchiba@is.s.u-tokyo.ac.jp