A2PDP11 (3) 起動シーケンスの観察
Tang Nano 9K を使って、DCJ11 の出力信号を観察してみます。
以下の回路で、DCJ11 の出力端子を 3.3V にレベル変換し、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 の立ち上がりでキャプチャします。
Capture Options で全ての信号を Add します。DAL は見やすくするため9 ビットごとに分けました。
INIT スイッチを押した時の信号を読み取ってみます。
STCL の立ち上がり後、各信号が変化しているのがわかります。
次回は、これを詳しく見ていきます。
この記事が気に入ったらサポートをしてみませんか?