見出し画像

A2PDP11 (3) 起動シーケンスの観察

Tang Nano 9K を使って、DCJ11 の出力信号を観察してみます。
以下の回路で、DCJ11 の出力端子を 3.3V にレベル変換し、Tang Nano 9K につなぎます。

Tang Nano 9K 接続回路

物理制約ファイル (pins.cst)を作成します。
BANK 3 は 1.8V のため、IO_TYPE=LVCMOS33OD18 として、3.3V 信号を入力できるようにします。

//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
//All rights reserved. 
//File Title: Physical Constraints file
//Tool Version: V1.9.10 (64-bit)
//Part Number: GW1NR-LV9QN88PC6/I5
//Device: GW1NR-9
//Device Version: C
//Created Time: Sat 07 27 17:07:56 2024

IO_LOC "dir" 63; 
IO_PORT "dir" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;

// BANK 3
IO_LOC "strb_n" 86; 
IO_PORT "strb_n" IO_TYPE=LVCMOS33OD18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "sctl_n" 85; 
IO_PORT "sctl_n" IO_TYPE=LVCMOS33OD18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "clk" 84; 
IO_PORT "clk" IO_TYPE=LVCMOS33OD18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "bs[0]" 83; 
IO_PORT "bs[0]" IO_TYPE=LVCMOS33OD18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "bs[1]" 82; 
IO_PORT "bs[1]" IO_TYPE=LVCMOS33OD18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "map_n" 81; 
IO_PORT "map_n" IO_TYPE=LVCMOS33OD18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "abort_n" 80; 
IO_PORT "abort_n" IO_TYPE=LVCMOS33OD18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "dal[21]" 79; 
IO_PORT "dal[21]" IO_TYPE=LVCMOS33OD18 PULL_MODE=UP BANK_VCCIO=1.8;

// BANK 1 and 2
IO_LOC "dal[20]" 77; 
IO_PORT "dal[20]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[19]" 76; 
IO_PORT "dal[19]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[18]" 48; 
IO_PORT "dal[18]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[17]" 49; 
IO_PORT "dal[17]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[16]" 31; 
IO_PORT "dal[16]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "proc_n" 32; 
IO_PORT "proc_n" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;

IO_LOC "aio[0]" 38; 
IO_PORT "aio[0]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "aio[1]" 37; 
IO_PORT "aio[1]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "aio[2]" 36; 
IO_PORT "aio[2]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "aio[3]" 39; 
IO_PORT "aio[3]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[6]" 25; 
IO_PORT "dal[6]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[7]" 26; 
IO_PORT "dal[7]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[8]" 27; 
IO_PORT "dal[8]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[0]" 28; 
IO_PORT "dal[0]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[9]" 29; 
IO_PORT "dal[9]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[10]" 30; 
IO_PORT "dal[10]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[11]" 33; 
IO_PORT "dal[11]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[12]" 34;
IO_PORT "dal[12]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[13]" 40; 
IO_PORT "dal[13]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[14]" 35; 
IO_PORT "dal[14]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[15]" 41; 
IO_PORT "dal[15]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[1]" 42; 
IO_PORT "dal[1]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[2]" 51; 
IO_PORT "dal[2]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[3]" 53; 
IO_PORT "dal[3]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[4]" 54; 
IO_PORT "dal[4]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "dal[5]" 55; 
IO_PORT "dal[5]" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "bufctl_n" 56; 
IO_PORT "bufctl_n" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
IO_LOC "ale_n" 57; 
IO_PORT "ale_n" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;


top.sv を作成します。
GAO のサンプリングクロック sclk を、rPLL で CLK を2倍して作ります。

// DCJ11 TangNano interface
// 2024.07.29 nanja.info

`default_nettype none

module top ( 
    input wire [3:0] aio,
    input wire [1:0] bs,
    input wire [21:0] dal,
    input wire proc_n,
    input wire bufctl_n,
    input wire ale_n,
    input wire strb_n,
    input wire sctl_n,
    input wire map_n,
    input wire abort_n,
    input wire clk,
    output wire dir
);

assign dir = 1'b0;  // Read from DCJ11 DAL

logic sclk;
Gowin_rPLL u_rpll(
    .clkout(sclk),  //output clkout  36MHz
    .clkin(clk)     //input clkin    18MHz
);

endmodule

`default_nettype wire


GAO ファイル test2.rao を作成し、Trigger Options を設定します。
STCL の立ち上がりでキャプチャします。

Trigger Options


Capture Options で全ての信号を Add します。DAL は見やすくするため9 ビットごとに分けました。

Capture Options


INIT スイッチを押した時の信号を読み取ってみます。

INIT 後の出力信号

STCL の立ち上がり後、各信号が変化しているのがわかります。
次回は、これを詳しく見ていきます。

この記事が気に入ったらサポートをしてみませんか?