serdes_10to1_tx.sv (1184B)
1 `timescale 1ns / 1ps 2 3 module serdes_10to1_tx( 4 input clk, 5 input clkx5, 6 input reset, 7 output o_p, 8 output o_n, 9 input [9:0]i_data 10 ); 11 12 wire out, shift1, shift2; 13 14 OBUFDS bufds(.I(out), .O(o_p), .OB(o_n)); 15 16 OSERDESE2 #( 17 .DATA_RATE_OQ("DDR"), 18 .DATA_RATE_TQ("SDR"), 19 .DATA_WIDTH(10), 20 .TRISTATE_WIDTH(1), 21 .SERDES_MODE("MASTER") 22 )serdes_lo( 23 .CLK(clkx5), 24 .CLKDIV(clk), 25 .D1(i_data[0]), 26 .D2(i_data[1]), 27 .D3(i_data[2]), 28 .D4(i_data[3]), 29 .D5(i_data[4]), 30 .D6(i_data[5]), 31 .D7(i_data[6]), 32 .D8(i_data[7]), 33 .OCE(1), 34 .OFB(), 35 .OQ(out), 36 .RST(reset), 37 .SHIFTIN1(shift1), 38 .SHIFTIN2(shift2), 39 .SHIFTOUT1(), 40 .SHIFTOUT2(), 41 .TBYTEIN(0), 42 .TBYTEOUT(), 43 .TCE(0), 44 .TFB(), 45 .TQ(), 46 .T1(0), 47 .T2(0), 48 .T3(0), 49 .T4(0) 50 ); 51 52 OSERDESE2 #( 53 .DATA_RATE_OQ("DDR"), 54 .DATA_RATE_TQ("SDR"), 55 .DATA_WIDTH(10), 56 .TRISTATE_WIDTH(1), 57 .SERDES_MODE("SLAVE") 58 )serdes_hi( 59 .CLK(clkx5), 60 .CLKDIV(clk), 61 .D1(0), 62 .D2(0), 63 .D3(i_data[8]), 64 .D4(i_data[9]), 65 .D5(0), 66 .D6(0), 67 .D7(0), 68 .D8(0), 69 .OCE(1), 70 .OFB(), 71 .OQ(), 72 .RST(reset), 73 .SHIFTIN1(0), 74 .SHIFTIN2(0), 75 .SHIFTOUT1(shift1), 76 .SHIFTOUT2(shift2), 77 .TBYTEIN(0), 78 .TBYTEOUT(), 79 .TCE(0), 80 .TFB(), 81 .TQ(), 82 .T1(0), 83 .T2(0), 84 .T3(0), 85 .T4(0) 86 ); 87 88 endmodule