You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

109 lines
2.3 KiB

`timescale 10ns / 10ns
module test_top;
reg sys_clk;
reg rst_n;
wire core_board_debug_led;
reg spi2_cs_pin;
reg spi2_clk_pin;
reg spi2_tx_pin;
wire spi2_rx_pin;
wire sync_ttl_out1;
wire sync_ttl_out1_state_led;
wire sync_ttl_out2;
wire sync_ttl_out2_state_led;
wire sync_ttl_out3;
wire sync_ttl_out3_state_led;
wire sync_ttl_out4;
wire sync_ttl_out4_state_led;
initial begin
spi2_cs_pin = 1;
spi2_clk_pin = 1;
spi2_tx_pin = 1;
end
task spi_write_reg;
input [15:0] addr;
input [31:0] data;
integer i;
begin
addr[15] = 1;
spi2_cs_pin = 0;
#3000; // 100ns
for (i = 0; i < 48; i = i + 1) begin
spi2_clk_pin = 0;
if (i <= 15) spi2_tx_pin = addr[i];
else spi2_tx_pin = data[i-16];
#300;
spi2_clk_pin = 1;
#300;
end
spi2_clk_pin = 0;
#300;
spi2_clk_pin = 1;
#200;
spi2_cs_pin = 1;
spi2_tx_pin = 1;
#3000;
end
endtask
Top top_impl (
.ex_clk(sys_clk),
.ex_rst_n(rst_n),
.core_board_debug_led(core_board_debug_led),
.spi2_cs_pin (spi2_cs_pin),
.spi2_clk_pin(spi2_clk_pin),
.spi2_rx_pin (spi2_tx_pin),
.spi2_tx_pin (spi2_rx_pin),
.sync_ttl_out1(sync_ttl_out1),
.sync_ttl_out1_state_led(sync_ttl_out1_state_led),
.sync_ttl_out2(sync_ttl_out2),
.sync_ttl_out2_state_led(sync_ttl_out2_state_led),
.sync_ttl_out3(sync_ttl_out3),
.sync_ttl_out3_state_led(sync_ttl_out3_state_led),
.sync_ttl_out4(sync_ttl_out4),
.sync_ttl_out4_state_led(sync_ttl_out4_state_led)
);
initial begin
sys_clk = 0;
rst_n = 0;
#100;
rst_n = 1;
#1000;
spi_write_reg(16'h0020, 32'h00000001);
spi_write_reg(16'h0021, 32'h00000010);
spi_write_reg(16'h0022, 32'h00000100);
spi_write_reg(16'h0023, 32'h00001000);
spi_write_reg(16'h0020, 32'h00000002);
spi_write_reg(16'h0021, 32'h00000020);
spi_write_reg(16'h0022, 32'h00000200);
spi_write_reg(16'h0023, 32'h00002000);
spi_write_reg(16'h00030+6, 32'h12345678); // 写SignalGenerator——TIMECODE0
spi_write_reg(16'h00030+7, 32'h87654321); // 写SignalGenerator——TIMECODE0
#100000000;
$stop;
end
always #5 sys_clk = ~sys_clk; // 50MHZ时钟
endmodule