Refactored how the usrp2/firmware connects into the top-level built.
[debian/gnuradio] / usrp2 / fpga / models / serdes_model.v
1
2 module serdes_model
3   (input ser_tx_clk,
4    input ser_tkmsb,
5    input ser_tklsb,
6    input [15:0] ser_t,
7    
8    output ser_rx_clk,
9    output ser_rkmsb,
10    output ser_rklsb,
11    output [15:0] ser_r,
12    
13    input even,
14    input error);
15    
16    wire [15:0] ser_r_odd;
17    wire  ser_rklsb_odd, ser_rkmsb_odd;   
18    
19    reg [7:0] hold_dat;
20    reg       hold_k;
21    
22    always @(posedge ser_tx_clk) hold_k <= ser_tklsb;
23    always @(posedge ser_tx_clk) hold_dat <= ser_t[15:8];
24    assign    ser_rklsb_odd = hold_k;
25    assign    ser_rkmsb_odd = ser_tklsb;
26    assign    ser_r_odd = {ser_t[7:0], hold_dat};
27    
28    // Set outputs
29    assign    ser_rx_clk = ser_tx_clk;
30    assign    ser_rkmsb = even ? ser_tkmsb : ser_rkmsb_odd;
31    assign    ser_rklsb = even ? ser_tklsb : ser_rklsb_odd;
32    assign    ser_r = error ^ (even ? ser_t : ser_r_odd);
33    
34 endmodule // serdes_model