File tree 3 files changed +12
-11
lines changed
common/logic/scaler/verilog
3 files changed +12
-11
lines changed Original file line number Diff line number Diff line change 22
22
*
23
23
* Author(s):
24
24
* Stefan Wallentowitz <[email protected] >
25
+
25
26
*/
26
27
27
28
module glip_tcp_toplevel
Original file line number Diff line number Diff line change @@ -41,17 +41,17 @@ module glip_downscale
41
41
output out_valid,
42
42
input out_ready);
43
43
44
- /* 0 when passthrough and 1 when emitting upper part */
44
+ /* 0 when passthrough and 1 when emitting lower part */
45
45
reg scale;
46
- /* Store upper part for emitting in second transfer */
47
- reg [OUT_SIZE- 1 :0 ] upper ;
46
+ /* Store lower part for emitting in second transfer */
47
+ reg [OUT_SIZE- 1 :0 ] lower ;
48
48
49
49
/* Ready during passthrough */
50
50
assign in_ready = ! scale & out_ready;
51
51
/* Valid during passthrough or second transfer */
52
- assign out_valid = scale ? 1 : in_valid;
53
- /* Passthrough in first and stored upper in second transfer */
54
- assign out_data = ! scale ? in_data[OUT_SIZE- 1 :0 ] : upper;
52
+ assign out_valid = scale | in_valid;
53
+ /* Passthrough in first and stored lower in second transfer */
54
+ assign out_data = scale ? lower : in_data[OUT_SIZE* 2 - 1 :OUT_SIZE];
55
55
56
56
always @(posedge clk) begin
57
57
if (rst) begin
@@ -65,7 +65,7 @@ module glip_downscale
65
65
66
66
always @(posedge clk) begin
67
67
if (in_valid & in_ready) begin
68
- upper <= in_data[OUT_SIZE* 2 - 1 :OUT_SIZE ];
68
+ lower <= in_data[OUT_SIZE- 1 :0 ];
69
69
end
70
70
end
71
71
Original file line number Diff line number Diff line change @@ -43,15 +43,15 @@ module glip_upscale
43
43
44
44
/* 0 while storing the first part and 1 when emitting */
45
45
reg scale;
46
- /* Store lower part for second cycle */
47
- reg [IN_SIZE- 1 :0 ] lower ;
46
+ /* Store upper part for second cycle */
47
+ reg [IN_SIZE- 1 :0 ] upper ;
48
48
49
49
/* Ready to store on first part and then passthrough in second */
50
50
assign in_ready = ! scale | out_ready;
51
51
/* Valid in second part */
52
52
assign out_valid = scale & in_valid;
53
53
/* Assemble data */
54
- assign out_data = { in_data, lower };
54
+ assign out_data = { upper, in_data };
55
55
56
56
always @(posedge clk) begin
57
57
if (rst) begin
@@ -65,7 +65,7 @@ module glip_upscale
65
65
66
66
always @(posedge clk) begin
67
67
if (in_valid & in_ready) begin
68
- lower <= in_data;
68
+ upper <= in_data;
69
69
end
70
70
end
71
71
endmodule // glip_upscale
You can’t perform that action at this time.
0 commit comments