![見出し画像](https://assets.st-note.com/production/uploads/images/138840962/rectangle_large_type_2_26aaf33c4a0aa3ddbf16b3ff8bcf7771.jpeg?width=1200)
Tang Nano 9K で Apple II を再現する(2)水平タイミング
第三章 Clock Generator and Horizontal Timing の後半
回路図 C-3 の水平信号生成部を video_address.sv として実装します。
`default_nettype none
module a2_video_address (
input wire ldps_n,
output wire h0,
output wire h1,
output wire h2,
output wire h3,
output wire h4,
output wire h5,
output wire hpe_n,
output wire va,
output wire vb,
output wire vc,
output wire v0,
output wire v1,
output wire v2,
output wire v3,
output wire v4,
output wire v5
);
// D14:74LS161
logic [3:0] d14_q;
logic d14_pen;
logic d14_rc;
always_ff@(posedge ldps_n) begin
if (!d14_pen) begin
d14_q <= 4'b0;
end else begin
d14_q <= d14_q + 1'b1;
d14_rc <= (d14_q == 4'b1110) ? 1 : 0;
end
end
assign d14_pen = d13_q[2];
// D13:74LS161
logic [3:0] d13_q;
logic d13_pen;
logic d13_rc;
logic d13_et;
always_ff@(posedge ldps_n) begin
if (!d13_pen) begin
d13_q <= {d13_q[3], 3'b100};
end else if (d13_et) begin
d13_q <= d13_q + 1'b1;
d13_rc <= (d13_q == 4'b1110) ? 1 : 0;
end
end
assign d13_pen = d13_q[2];
assign d13_et = d14_rc;
assign h0 = d14_q[0];
assign h1 = d14_q[1];
assign h2 = d14_q[2];
assign h3 = d14_q[3];
assign h4 = d13_q[0];
assign h5 = d13_q[1];
assign hpe_n = d13_q[2];
endmodule
`default_nettype wire
水平カウンタ h0-5 と hpe_n 信号が生成され、6502 CPU クロックが 1 ライン(6502 CPU クロックで 65サイクル)毎に、14MHz で 2 サイクル分伸長されるようになります。
![](https://assets.st-note.com/img/1714343757903-PLY2aWjuc6.png?width=1200)
なぜ、このようなクロック伸長が必要なのでしょうか?
カラーリファレンス信号は、正確に 3.579545 MHz でなければなりません。これはマスタークロック 14.31818 MHz の 4 分周で作られます。
一方、NTSC(RS-170A)の水平同期周波数は、15.734 kHz と規定されています。1 ラインの周期は、カラーリファレンス信号の 227.5 サイクル分となります。
3.579545 MHz ÷ 15.734 kHz = 227.5
そのため、カラーリファレンス信号の位相が 1 ライン毎に 180 度反転します。正しい色を出すためには、以下二つの方法が考えられます。
カラーデータの位相を、ライン毎にシフトする
水平同期周波数を少しずらし、カラーリファレンスの整数倍とする
Apple II では、2 の方法を使って、水平周期をカラーリファレンス信号の 228 サイクル分にしています。
この方法で、Woz は特許を取得しています。
参考文献
RS-170A NTSCビデオ信号タイミング規格の概要
http://elm-chan.org/docs/rs170a/spec_j.html
アナ ログ テ レビの規格(1) EIA RS170A, テレビジョン学会誌Vol. 44, No. 2(1990)
RS-170A は、Apple II の発売と同じ、1977 年に発表されていたんですね。
https://www.jstage.jst.go.jp/article/itej1978/44/2/44_2_169/_pdf
US Patent 4,136,359 https://patentimages.storage.googleapis.com/26/30/59/a8597088fcfe51/US4136359.pdf
特許1239788
https://www.j-platpat.inpit.go.jp/c1801/PU/JP-S58-046027/12/ja
この記事が気に入ったらサポートをしてみませんか?