@@ -90,6 +90,8 @@ module axi_ada4355_if #(
90
90
localparam [ 7 :0 ] pattern_value = 8'hF0 ;
91
91
localparam [15 :0 ] expected_pattern_lane_0 = 16'h5554 ;
92
92
localparam [15 :0 ] expected_pattern_lane_1 = 16'hAAA8 ;
93
+ localparam [15 :0 ] lane_0_mask = 16'h5555 ;
94
+ localparam [15 :0 ] lane_1_mask = 16'hAAAA ;
93
95
94
96
wire clk_in_s;
95
97
wire out_ibufmrce_clock;
@@ -123,8 +125,8 @@ module axi_ada4355_if #(
123
125
reg [ 9 :0 ] serdes_reset = 10'b0000000110 ;
124
126
reg [ 1 :0 ] serdes_valid = 2'b00 ;
125
127
reg [ 1 :0 ] serdes_valid_d = 2'b00 ;
126
- reg [ 2 :0 ] shift_cnt = 3'd0 ;
127
- reg [ 4 :0 ] delay = 5'd0 ;
128
+ reg [ 2 :0 ] shift_cnt = 3'h0 ;
129
+ reg [ 4 :0 ] delay = 5'h0 ;
128
130
reg [15 :0 ] serdes_data;
129
131
reg [15 :0 ] serdes_data_d;
130
132
reg [ 7 :0 ] serdes_frame;
@@ -138,8 +140,6 @@ module axi_ada4355_if #(
138
140
reg frame_err_r;
139
141
reg data_err_lane_0_r;
140
142
reg data_err_lane_1_r;
141
- reg [15 :0 ] lane_0_mask = 16'h5555 ;
142
- reg [15 :0 ] lane_1_mask = 16'hAAAA ;
143
143
reg [15 :0 ] test_pattern;
144
144
145
145
IBUFGDS i_clk_in_ibuf (
@@ -254,10 +254,10 @@ module axi_ada4355_if #(
254
254
always @(posedge adc_clk_div or negedge sync_n) begin
255
255
if (~ sync_n) begin
256
256
serdes_reset <= 10'b0000000110 ;
257
- end else begin
258
- serdes_reset <= {serdes_reset[8 :0 ],1'b0 };
259
- end
257
+ end else begin
258
+ serdes_reset <= {serdes_reset[8 :0 ],1'b0 };
260
259
end
260
+ end
261
261
262
262
assign serdes_reset_s = serdes_reset[5 ];
263
263
assign serdes_reset_d = serdes_reset[9 ];
@@ -349,48 +349,47 @@ module axi_ada4355_if #(
349
349
frame_shifted <= serdes_frame;
350
350
end else begin
351
351
case (state)
352
- INIT : begin
353
- if (frame_shifted != pattern_value) begin
354
- state <= CNT_UPDATE;
355
- end else begin
356
- frame_shifted <= {serdes_frame, serdes_frame_d} >> shift_cnt;
357
- if (expected_pattern_lane_0 == (test_pattern & lane_0_mask)) begin
358
- data_err_lane_0_r <= 1'b0 ;
352
+ INIT : begin
353
+ if (frame_shifted != pattern_value) begin
354
+ state <= CNT_UPDATE;
359
355
end else begin
360
- data_err_lane_0_r <= 1'b1 ;
356
+ frame_shifted <= {serdes_frame, serdes_frame_d} >> shift_cnt;
357
+ if (expected_pattern_lane_0 == (test_pattern & lane_0_mask)) begin
358
+ data_err_lane_0_r <= 1'b0 ;
359
+ end else begin
360
+ data_err_lane_0_r <= 1'b1 ;
361
+ end
362
+ if (expected_pattern_lane_1 == (test_pattern & lane_1_mask)) begin
363
+ data_err_lane_1_r <= 1'b0 ;
364
+ end else begin
365
+ data_err_lane_1_r <= 1'b1 ;
366
+ end
367
+ state <= INIT;
361
368
end
362
- if (expected_pattern_lane_1 == (test_pattern & lane_1_mask)) begin
363
- data_err_lane_1_r <= 1'b0 ;
364
- end else begin
365
- data_err_lane_1_r <= 1'b1 ;
366
- end
367
- state <= INIT;
368
369
end
369
- end
370
- CNT_UPDATE : begin
371
- if (shift_cnt == 3'b111 ) begin
372
- frame_err_r <= 1'b1 ;
373
- state <= RESET;
370
+ CNT_UPDATE : begin
371
+ if (shift_cnt == 3'b111 ) begin
372
+ frame_err_r <= 1'b1 ;
373
+ state <= RESET;
374
+ end
375
+ else begin
376
+ frame_err_r <= 1'b0 ;
377
+ end
378
+ shift_cnt <= shift_cnt + 1 ;
379
+ state <= FRAME_SHIFTED;
374
380
end
375
- else begin
376
- frame_err_r <= 1'b0 ;
381
+ FRAME_SHIFTED : begin
382
+ frame_shifted <= {serdes_frame, serdes_frame_d} >> shift_cnt;
383
+ state <= INIT;
377
384
end
378
- shift_cnt <= shift_cnt + 1 ;
379
- state <= FRAME_SHIFTED;
380
- end
381
- FRAME_SHIFTED : begin
382
- frame_shifted <= {serdes_frame, serdes_frame_d} >> shift_cnt;
383
- state <= INIT;
384
- end
385
- RESET : begin
385
+ RESET : begin
386
386
shift_cnt <= 0 ;
387
387
state <= INIT;
388
388
frame_err_r <= 1'b0 ;
389
389
data_err_lane_0_r <= 1'b0 ;
390
390
data_err_lane_1_r <= 1'b0 ;
391
- end
392
- default :
393
- state <= INIT;
391
+ end
392
+ default : state <= INIT;
394
393
endcase
395
394
end
396
395
end
0 commit comments