diff options
author | Josh Blum <josh@joshknows.com> | 2010-04-16 09:42:46 +0000 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-04-16 09:42:46 +0000 |
commit | 835cb56ef820a69e1e6e0ccde7c5a0e78ca5ad25 (patch) | |
tree | 4fe48bdaf92311deedfbe1a5e77dd209468a2d7d /fpga/usrp2/timing/time_transfer_tb.v | |
parent | f1838b9284a124fcfb5996eaf1647a69b4473278 (diff) | |
parent | 067491b58676cbdaa754334949a8ffc2daf32979 (diff) | |
download | uhd-835cb56ef820a69e1e6e0ccde7c5a0e78ca5ad25.tar.gz uhd-835cb56ef820a69e1e6e0ccde7c5a0e78ca5ad25.tar.bz2 uhd-835cb56ef820a69e1e6e0ccde7c5a0e78ca5ad25.zip |
Merge branch 'master' of git@ettus.sourcerepo.com:ettus/uhdpriv into usrp_e
Conflicts:
.gitignore
Diffstat (limited to 'fpga/usrp2/timing/time_transfer_tb.v')
-rw-r--r-- | fpga/usrp2/timing/time_transfer_tb.v | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/fpga/usrp2/timing/time_transfer_tb.v b/fpga/usrp2/timing/time_transfer_tb.v new file mode 100644 index 000000000..2b75c60bd --- /dev/null +++ b/fpga/usrp2/timing/time_transfer_tb.v @@ -0,0 +1,50 @@ + +`timescale 1ns / 1ps + +module time_transfer_tb(); + + reg clk = 0, rst = 1; + always #5 clk = ~clk; + + initial + begin + @(negedge clk); + @(negedge clk); + rst <= 0; + end + + initial $dumpfile("time_transfer_tb.vcd"); + initial $dumpvars(0,time_transfer_tb); + + initial #100000000 $finish; + + wire exp_pps, pps, pps_rcv; + wire [31:0] master_clock_rcv; + reg [31:0] master_clock = 0; + reg [31:0] counter = 0; + + localparam PPS_PERIOD = 109; + always @(posedge clk) + if(counter == PPS_PERIOD) + counter <= 0; + else + counter <= counter + 1; + assign pps = (counter == (PPS_PERIOD-1)); + + always @(posedge clk) + master_clock <= master_clock + 1; + + time_sender time_sender + (.clk(clk),.rst(rst), + .master_clock(master_clock), + .pps(pps), + .exp_pps_out(exp_pps) ); + + time_receiver time_receiver + (.clk(clk),.rst(rst), + .master_clock(master_clock_rcv), + .pps(pps_rcv), + .exp_pps_in(exp_pps) ); + + wire [31:0] delta = master_clock - master_clock_rcv; +endmodule // time_transfer_tb |