mirror of
https://github.com/aap/pdp6.git
synced 2026-01-22 02:34:45 +00:00
136 lines
2.6 KiB
Verilog
136 lines
2.6 KiB
Verilog
`timescale 1ns/1ns
|
|
|
|
module clock(output reg clk);
|
|
initial
|
|
clk = 0;
|
|
always
|
|
#5 clk = ~clk;
|
|
endmodule
|
|
|
|
//`define TESTKEY pdp6.key_inst_stop
|
|
`define TESTKEY pdp6.key_read_in
|
|
//`define TESTKEY pdp6.key_start
|
|
//`define TESTKEY pdp6.key_exec
|
|
//`define TESTKEY pdp6.key_ex
|
|
//`define TESTKEY pdp6.key_dep
|
|
//`define TESTKEY pdp6.key_mem_cont
|
|
|
|
module test;
|
|
wire clk;
|
|
reg reset;
|
|
|
|
clock clock0(clk);
|
|
pdp6 pdp6(.clk(clk), .reset(reset));
|
|
|
|
initial
|
|
// #110000 $finish;
|
|
#20000 $finish;
|
|
|
|
initial begin
|
|
#100 `TESTKEY = 1;
|
|
#1000 `TESTKEY = 0;
|
|
|
|
// #3000 pdp6.key_dep = 1;
|
|
// #1000 pdp6.key_dep = 0;
|
|
|
|
// #3000 pdp6.key_inst_stop = 1;
|
|
// #1000 pdp6.key_inst_stop = 0;
|
|
end
|
|
|
|
/*
|
|
initial begin
|
|
#400 pdp6.apr0.pio = 7'b1111111;
|
|
pdp6.apr0.pih = 7'b0000100;
|
|
pdp6.apr0.pi_active = 1;
|
|
end
|
|
assign pdp6.apr0.iobus_pi_req = 7'b0010000;
|
|
*/
|
|
assign pdp6.apr0.iobus_pi_req = 0;
|
|
|
|
/* initial begin
|
|
#100;
|
|
pdp6.mem0_sw_single_step = 1;
|
|
#6000;
|
|
pdp6.mem0_sw_restart = 1;
|
|
end*/
|
|
|
|
initial begin
|
|
$dumpfile("dump.vcd");
|
|
$dumpvars();
|
|
|
|
reset = 0;
|
|
|
|
pdp6.key_start = 0;
|
|
pdp6.key_read_in = 0;
|
|
pdp6.key_mem_cont = 0;
|
|
pdp6.key_inst_cont = 0;
|
|
pdp6.key_mem_stop = 0;
|
|
pdp6.key_inst_stop = 0;
|
|
pdp6.key_exec = 0;
|
|
pdp6.key_io_reset = 0;
|
|
pdp6.key_dep = 0;
|
|
pdp6.key_dep_nxt = 0;
|
|
pdp6.key_ex = 0;
|
|
pdp6.key_ex_nxt = 0;
|
|
|
|
pdp6.sw_power = 0;
|
|
pdp6.sw_addr_stop = 0;
|
|
pdp6.sw_mem_disable = 0;
|
|
pdp6.sw_repeat = 0;
|
|
pdp6.sw_power = 0;
|
|
pdp6.datasw = 0;
|
|
pdp6.mas = 0;
|
|
|
|
pdp6.sw_rim_maint = 0;
|
|
pdp6.sw_repeat_bypass = 0;
|
|
pdp6.sw_art3_maint = 0;
|
|
pdp6.sw_sct_maint = 0;
|
|
pdp6.sw_split_cyc = 0;
|
|
|
|
pdp6.mem0_sw_single_step = 0;
|
|
pdp6.mem0_sw_restart = 0;
|
|
pdp6.fmem0.memsel_p0 = 0;
|
|
pdp6.fmem0.memsel_p1 = 0;
|
|
pdp6.fmem0.memsel_p2 = 0;
|
|
pdp6.fmem0.memsel_p3 = 0;
|
|
pdp6.fmem0.fmc_p0_sel = 1;
|
|
pdp6.fmem0.fmc_p1_sel = 0;
|
|
pdp6.fmem0.fmc_p2_sel = 0;
|
|
pdp6.fmem0.fmc_p3_sel = 0;
|
|
pdp6.mem0.memsel_p0 = 0;
|
|
pdp6.mem0.memsel_p1 = 0;
|
|
pdp6.mem0.memsel_p2 = 0;
|
|
pdp6.mem0.memsel_p3 = 0;
|
|
|
|
end
|
|
|
|
initial begin
|
|
#80 pdp6.apr0.pr = 8'o003;
|
|
pdp6.apr0.rlr = 8'o002;
|
|
//pdp6.apr0.ex_user = 1;
|
|
end
|
|
|
|
initial begin
|
|
#1 reset = 1;
|
|
#20 reset = 0;
|
|
|
|
pdp6.datasw = 36'o111777222666;
|
|
// pdp6.mas = 18'o010100;
|
|
// pdp6.mas = 18'o000004;
|
|
pdp6.mas = 18'o000020;
|
|
//pdp6.mas = 18'o777777;
|
|
|
|
pdp6.fmem0.ff['o0] = 36'o000000010000;
|
|
pdp6.fmem0.ff['o4] = 36'o000000010304;
|
|
pdp6.mem0.core['o4] = 36'o222333111666;
|
|
pdp6.mem0.core['o20] = 36'o200_024_000104;
|
|
pdp6.mem0.core['o10410] = 36'o000_000_000333;
|
|
end
|
|
|
|
initial begin
|
|
#25 pdp6.sw_power = 1;
|
|
#25 pdp6.sw_power = 0;
|
|
end
|
|
|
|
endmodule
|