- Fixed 10GigE firmware communication issues and sequence errors for TX - Multiple changes to help ease timing closure - Cleaned up build scripts - Switched to Xilinx ISE 14.7 as the default build tool for X300 Original-commit: 64d71dcbc5fa6790385b288de25224d386b047b0
72 lines
1.4 KiB
Verilog
72 lines
1.4 KiB
Verilog
`timescale 1ps/1ps
|
|
|
|
module gen_ddrlvds_tb();
|
|
|
|
wire GSR, GTS;
|
|
glbl glbl( );
|
|
|
|
reg clk = 1;
|
|
reg clk_2x = 1;
|
|
reg reset = 1;
|
|
reg sync_dacs_req = 0;
|
|
|
|
always #100 clk = ~clk;
|
|
always #50 clk_2x = ~clk_2x;
|
|
|
|
wire [7:0] dac_pins_p, dac_pins_n;
|
|
wire dac_frame_p, dac_frame_n;
|
|
wire dac_clk_p, dac_clk_n;
|
|
|
|
reg [7:0] count;
|
|
|
|
wire [15:0] i = {4'hA,count};
|
|
wire [15:0] q = {4'hB,count};
|
|
|
|
initial
|
|
begin
|
|
#500 reset = 0;
|
|
@(posedge clk);
|
|
//#10
|
|
sync_dacs_req <= 1;
|
|
#200
|
|
sync_dacs_req <= 0;
|
|
|
|
// BURST (4);
|
|
// BURST (5);
|
|
#20000;
|
|
end
|
|
|
|
task BURST;
|
|
input [7:0] len;
|
|
begin
|
|
sync_dacs_req <= 0;
|
|
count <= 0;
|
|
@ (posedge clk);
|
|
@ (posedge clk);
|
|
repeat (len)
|
|
begin
|
|
sync_dacs_req <= 1;
|
|
@ (posedge clk);
|
|
sync_dacs_req <= 0;
|
|
@ (posedge clk);
|
|
count <= count + 1;
|
|
end
|
|
sync_dacs_req <= 0;
|
|
@ (posedge clk);
|
|
@ (posedge clk);
|
|
@ (posedge clk);
|
|
end
|
|
endtask //
|
|
|
|
gen_ddrlvds dut (
|
|
.reset(reset),
|
|
.tx_clk_2x_p(dac_clk_p), .tx_clk_2x_n(dac_clk_n),
|
|
.tx_frame_p(dac_frame_p), .tx_frame_n(dac_frame_n),
|
|
.tx_d_p(dac_pins_p), .tx_d_n(dac_pins_n),
|
|
.tx_clk_2x(clk_2x), .tx_clk_1x(clk),
|
|
.i(i), .q(q),
|
|
.sync_dacs(sync_dacs_req)
|
|
);
|
|
|
|
endmodule // gen_ddrlvds_tb
|