module clock_multiplier_10x(refclk, clk);
integer period, first_half, second_half;
always @(posedge clk_) begin
clk_ = #first_half ~clk_;
always @(negedge clk_) begin
clk_ = #second_half ~clk_;
second_half = period - first_half;
always @(posedge refclk) begin
if(count < 2) count = count + 1;
period = ($time - old_time) / 10;
output [9:0] esr_mac_rxd0;
output [9:0] esr_mac_rxd1;
output [9:0] esr_mac_rxd2;
output [9:0] esr_mac_rxd3;
input [9:0] mac_esr_txd0;
input [9:0] mac_esr_txd1;
input [9:0] mac_esr_txd2;
input [9:0] mac_esr_txd3;
reg [3:0] xaui_count0, xaui_count1, xaui_count2, xaui_count3;
reg [3:0] xaui_serdes_count;
reg [9:0] mac_esr_tx0, mac_esr_tx1, mac_esr_tx2, mac_esr_tx3;
reg [9:0] esr_mac_rx_l0, esr_mac_rx_l1, esr_mac_rx_l2, esr_mac_rx_l3;
reg [9:0] esr_mac_rx0, esr_mac_rx1, esr_mac_rx2, esr_mac_rx3;
always @(posedge mac_clk) begin
mac_esr_tx0 <= mac_esr_txd0;
mac_esr_tx1 <= mac_esr_txd1;
mac_esr_tx2 <= mac_esr_txd2;
mac_esr_tx3 <= mac_esr_txd3;
always @(posedge mac_clk) begin
esr_mac_rxd0 <= esr_mac_rx_l0;
esr_mac_rxd1 <= esr_mac_rx_l1;
esr_mac_rxd2 <= esr_mac_rx_l2;
esr_mac_rxd3 <= esr_mac_rx_l3;
assign tx[0] = mac_esr_tx0[9 - xaui_serdes_count];
assign tx[1] = mac_esr_tx1[9 - xaui_serdes_count];
assign tx[2] = mac_esr_tx2[9 - xaui_serdes_count];
assign tx[3] = mac_esr_tx3[9 - xaui_serdes_count];
always @(posedge xaui_clk) begin
xaui_serdes_count <= (xaui_serdes_count + 1) % 10;
always @(negedge xaui_clk) begin
xaui_comma0[6:0] <= {xaui_comma0[5:0], XAUI_RX_P[0]};
xaui_comma1[6:0] <= {xaui_comma1[5:0], XAUI_RX_P[1]};
xaui_comma2[6:0] <= {xaui_comma2[5:0], XAUI_RX_P[2]};
xaui_comma3[6:0] <= {xaui_comma3[5:0], XAUI_RX_P[3]};
esr_mac_rx0[9 - xaui_count0] <= XAUI_RX_P[0];
esr_mac_rx1[9 - xaui_count1] <= XAUI_RX_P[1];
esr_mac_rx2[9 - xaui_count2] <= XAUI_RX_P[2];
esr_mac_rx3[9 - xaui_count3] <= XAUI_RX_P[3];
if(xaui_count0 == 9) esr_mac_rx_l0 <= {esr_mac_rx0[9:1],XAUI_RX_P[0]};
if(xaui_count1 == 9) esr_mac_rx_l1 <= {esr_mac_rx1[9:1],XAUI_RX_P[1]};
if(xaui_count2 == 9) esr_mac_rx_l2 <= {esr_mac_rx2[9:1],XAUI_RX_P[2]};
if(xaui_count3 == 9) esr_mac_rx_l3 <= {esr_mac_rx3[9:1],XAUI_RX_P[3]};
if(xaui_comma0 == 7'b0011111) begin
xaui_count0 <= (xaui_count0 + 1) % 10;
if(xaui_comma1 == 7'b0011111) begin
xaui_count1 <= (xaui_count1 + 1) % 10;
if(xaui_comma2 == 7'b0011111) begin
xaui_count2 <= (xaui_count2 + 1) % 10;
if(xaui_comma3 == 7'b0011111) begin
xaui_count3 <= (xaui_count3 + 1) % 10;