// // Copyright (c) 2026, Apollo Telephone Laboratories. // Provided under the BSD-3 clause. // `include "bus/ari.svh" // // Represents a ring of ARI segments which forms a single // bus channel. // // @clk_i: Clock input // @reset_i: Reset input // @tap_i: Segment taps // module ari_ring ( input wire clk_i, input wire reset_i, input AriFrame tap_i[0:ARI_SEGMENT_COUNT-1] ); // Segment feeders AriFrame seg3_feed; AriFrame seg2_feed; AriFrame seg1_feed; // Segment 0 ari_segment seg0 ( .clk_i(clk_i), .reset_i(reset_i), .ingress_i(seg3_feed), .tap_i(tap_i[0]), .egress_o(seg1_feed) ); // Segment 1 ari_segment seg1 ( .clk_i(clk_i), .reset_i(reset_i), .ingress_i(seg1_feed), .tap_i(tap_i[1]), .egress_o(seg2_feed) ); // Segment 2 ari_segment seg2 ( .clk_i(clk_i), .reset_i(reset_i), .ingress_i(seg2_feed), .tap_i(tap_i[2]), .egress_o(seg3_feed) ); endmodule