aboutsummaryrefslogtreecommitdiffstats
path: root/fpga/usrp3/top/x300/gen_ddrlvds_tb.v
diff options
context:
space:
mode:
Diffstat (limited to 'fpga/usrp3/top/x300/gen_ddrlvds_tb.v')
-rw-r--r--fpga/usrp3/top/x300/gen_ddrlvds_tb.v95
1 files changed, 48 insertions, 47 deletions
diff --git a/fpga/usrp3/top/x300/gen_ddrlvds_tb.v b/fpga/usrp3/top/x300/gen_ddrlvds_tb.v
index 0d6a14317..f511772a8 100644
--- a/fpga/usrp3/top/x300/gen_ddrlvds_tb.v
+++ b/fpga/usrp3/top/x300/gen_ddrlvds_tb.v
@@ -1,4 +1,4 @@
-`timescale 1ns/1ps
+`timescale 1ps/1ps
module gen_ddrlvds_tb();
@@ -6,19 +6,16 @@ module gen_ddrlvds_tb();
glbl glbl( );
reg clk = 1;
+ reg clk_2x = 1;
reg reset = 1;
- reg tx_strobe = 0;
+ reg sync_dacs_req = 0;
always #100 clk = ~clk;
- always #200 tx_strobe = ~tx_strobe;
+ always #50 clk_2x = ~clk_2x;
-
- initial $dumpfile("gen_ddrlvds_tb.vcd");
- initial $dumpvars(0,gen_ddrlvds_tb);
-
- wire [7:0] pins_p, pins_n;
- wire frame_p, frame_n;
- wire clk_p, clk_n;
+ 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;
@@ -26,45 +23,49 @@ module gen_ddrlvds_tb();
wire [15:0] q = {4'hB,count};
initial
- begin
- #10000 reset = 0;
- BURST(4);
- BURST(5);
- #2000;
- $finish;
- end
-
+ 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
-// tx_strobe <= 0;
- count <= 0;
- @(posedge clk);
- @(posedge clk);
- repeat(len)
- begin
- // tx_strobe <= 1;
- @(posedge clk);
- // tx_strobe <= 0;
- @(posedge clk);
- count <= count + 1;
- end
-// tx_strobe <= 0;
- @(posedge clk);
- @(posedge clk);
- @(posedge clk);
+ sync_dacs_req <= 1;
+ @ (posedge clk);
+ sync_dacs_req <= 0;
+ @ (posedge clk);
+ count <= count + 1;
end
- endtask // BURST
-
- gen_ddrlvds gen_ddrlvds
- (.rst(reset),
- .tx_clk_p(clk_p), .tx_clk_n(clk_n),
- .tx_frame_p(frame_p), .tx_frame_n(frame_n),
- .tx_d_p(pins_p), .tx_d_n(pins_n),
- .tx_clk(clk), .tx_strobe(tx_strobe),
- .i(i), .q(q)
- );
-
-
+ 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