jesd204: Slightly rework sysref handling
For SYSREF handling there are now three possible modes. 1) Disabled. In this mode the LMFC is generated internally and all external SYSREF edges are ignored. This mode should be used for subclass 0 when no external sysref is available. 2) Continuous SYSREF. An external SYSREF signal is required and the LMFC is aligned to the SYSREF signal. The SYSREF signal is continuously monitored and if a edge unaligned to the previous edges is detected the LMFC is re-aligned to the new edge. 3) Oneshot SYSREF. Oneshot SYSREF mode is similar to continuous SYSREF mode except only the first edge is captured and all further edges are ignored, re-alignment will not happen. Both in continuous and oneshot signal at least one external sysref edge is required before an LMFC is generated. All events that require an LMFC will be delayed until a SYSREF edge has been captured. This is done to avoid accidental re-alignment. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>main
parent
bf88527119
commit
baa256e34c
|
@ -59,7 +59,7 @@ module jesd204_up_sysref (
|
||||||
|
|
||||||
output reg up_cfg_sysref_oneshot,
|
output reg up_cfg_sysref_oneshot,
|
||||||
output reg [7:0] up_cfg_lmfc_offset,
|
output reg [7:0] up_cfg_lmfc_offset,
|
||||||
output reg up_cfg_sysref_required,
|
output reg up_cfg_sysref_disable,
|
||||||
|
|
||||||
input core_event_sysref_alignment_error
|
input core_event_sysref_alignment_error
|
||||||
);
|
);
|
||||||
|
@ -70,7 +70,11 @@ wire up_status_sysref_captured;
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
case (up_raddr)
|
case (up_raddr)
|
||||||
/* JESD SYSREF configuraton */
|
/* JESD SYSREF configuraton */
|
||||||
12'h040: up_rdata <= {30'h00,up_cfg_sysref_required,up_cfg_sysref_oneshot};
|
12'h040: up_rdata <= {
|
||||||
|
/* 02-31 */ 30'h00, /* Reserved for future use */
|
||||||
|
/* 01 */ up_cfg_sysref_oneshot,
|
||||||
|
/* 00 */ up_cfg_sysref_disable
|
||||||
|
};
|
||||||
12'h041: up_rdata <= up_cfg_lmfc_offset;
|
12'h041: up_rdata <= up_cfg_lmfc_offset;
|
||||||
default: up_rdata <= 32'h00000000;
|
default: up_rdata <= 32'h00000000;
|
||||||
endcase
|
endcase
|
||||||
|
@ -80,13 +84,13 @@ always @(posedge up_clk) begin
|
||||||
if (up_reset == 1'b1) begin
|
if (up_reset == 1'b1) begin
|
||||||
up_cfg_sysref_oneshot <= 1'b0;
|
up_cfg_sysref_oneshot <= 1'b0;
|
||||||
up_cfg_lmfc_offset <= 'h00;
|
up_cfg_lmfc_offset <= 'h00;
|
||||||
up_cfg_sysref_required <= 1'b1;
|
up_cfg_sysref_disable <= 1'b0;
|
||||||
end else if (up_wreq == 1'b1 && up_cfg_is_writeable == 1'b1) begin
|
end else if (up_wreq == 1'b1 && up_cfg_is_writeable == 1'b1) begin
|
||||||
case (up_waddr)
|
case (up_waddr)
|
||||||
/* JESD SYSREF configuraton */
|
/* JESD SYSREF configuraton */
|
||||||
12'h040: begin
|
12'h040: begin
|
||||||
up_cfg_sysref_required <= up_wdata[1];
|
up_cfg_sysref_oneshot <= up_wdata[1];
|
||||||
up_cfg_sysref_oneshot <= up_wdata[0];
|
up_cfg_sysref_disable <= up_wdata[0];
|
||||||
end
|
end
|
||||||
12'h041: up_cfg_lmfc_offset <= up_wdata[7:0];
|
12'h041: up_cfg_lmfc_offset <= up_wdata[7:0];
|
||||||
endcase
|
endcase
|
||||||
|
|
|
@ -81,7 +81,7 @@ module axi_jesd204_rx #(
|
||||||
output core_cfg_disable_char_replacement,
|
output core_cfg_disable_char_replacement,
|
||||||
output [7:0] core_cfg_lmfc_offset,
|
output [7:0] core_cfg_lmfc_offset,
|
||||||
output core_cfg_sysref_oneshot,
|
output core_cfg_sysref_oneshot,
|
||||||
output core_cfg_sysref_required,
|
output core_cfg_sysref_disable,
|
||||||
output core_cfg_buffer_early_release,
|
output core_cfg_buffer_early_release,
|
||||||
output [7:0] core_cfg_buffer_delay,
|
output [7:0] core_cfg_buffer_delay,
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ wire [4:0] up_irq_trigger = 5'b00000;
|
||||||
|
|
||||||
wire up_cfg_is_writeable;
|
wire up_cfg_is_writeable;
|
||||||
wire up_cfg_sysref_oneshot;
|
wire up_cfg_sysref_oneshot;
|
||||||
wire up_cfg_sysref_required;
|
wire up_cfg_sysref_disable;
|
||||||
wire up_cfg_buffer_early_release;
|
wire up_cfg_buffer_early_release;
|
||||||
wire [7:0] up_cfg_buffer_delay;
|
wire [7:0] up_cfg_buffer_delay;
|
||||||
wire [7:0] up_cfg_lmfc_offset;
|
wire [7:0] up_cfg_lmfc_offset;
|
||||||
|
@ -195,14 +195,14 @@ jesd204_up_common #(
|
||||||
.core_cfg_disable_char_replacement(core_cfg_disable_char_replacement),
|
.core_cfg_disable_char_replacement(core_cfg_disable_char_replacement),
|
||||||
|
|
||||||
.up_extra_cfg({
|
.up_extra_cfg({
|
||||||
/* 18 */ up_cfg_sysref_required,
|
/* 18 */ up_cfg_sysref_disable,
|
||||||
/* 17 */ up_cfg_sysref_oneshot,
|
/* 17 */ up_cfg_sysref_oneshot,
|
||||||
/* 16 */ up_cfg_buffer_early_release,
|
/* 16 */ up_cfg_buffer_early_release,
|
||||||
/* 08-15 */ up_cfg_buffer_delay,
|
/* 08-15 */ up_cfg_buffer_delay,
|
||||||
/* 00-07 */ up_cfg_lmfc_offset
|
/* 00-07 */ up_cfg_lmfc_offset
|
||||||
}),
|
}),
|
||||||
.core_extra_cfg({
|
.core_extra_cfg({
|
||||||
/* 18 */ core_cfg_sysref_required,
|
/* 18 */ core_cfg_sysref_disable,
|
||||||
/* 17 */ core_cfg_sysref_oneshot,
|
/* 17 */ core_cfg_sysref_oneshot,
|
||||||
/* 16 */ core_cfg_buffer_early_release,
|
/* 16 */ core_cfg_buffer_early_release,
|
||||||
/* 08-15 */ core_cfg_buffer_delay,
|
/* 08-15 */ core_cfg_buffer_delay,
|
||||||
|
@ -227,7 +227,7 @@ jesd204_up_sysref i_up_sysref (
|
||||||
|
|
||||||
.up_cfg_lmfc_offset(up_cfg_lmfc_offset),
|
.up_cfg_lmfc_offset(up_cfg_lmfc_offset),
|
||||||
.up_cfg_sysref_oneshot(up_cfg_sysref_oneshot),
|
.up_cfg_sysref_oneshot(up_cfg_sysref_oneshot),
|
||||||
.up_cfg_sysref_required(up_cfg_sysref_required)
|
.up_cfg_sysref_disable(up_cfg_sysref_disable)
|
||||||
);
|
);
|
||||||
|
|
||||||
jesd204_up_rx #(
|
jesd204_up_rx #(
|
||||||
|
|
|
@ -80,7 +80,7 @@ adi_add_bus "rx_cfg" "master" \
|
||||||
{ "core_cfg_octets_per_frame" "octets_per_frame" } \
|
{ "core_cfg_octets_per_frame" "octets_per_frame" } \
|
||||||
{ "core_cfg_lmfc_offset" "lmfc_offset" } \
|
{ "core_cfg_lmfc_offset" "lmfc_offset" } \
|
||||||
{ "core_cfg_sysref_oneshot" "sysref_oneshot" } \
|
{ "core_cfg_sysref_oneshot" "sysref_oneshot" } \
|
||||||
{ "core_cfg_sysref_required" "sysref_required" } \
|
{ "core_cfg_sysref_disable" "sysref_disable" } \
|
||||||
{ "core_cfg_buffer_early_release" "buffer_early_release" } \
|
{ "core_cfg_buffer_early_release" "buffer_early_release" } \
|
||||||
{ "core_cfg_buffer_delay" "buffer_delay" } \
|
{ "core_cfg_buffer_delay" "buffer_delay" } \
|
||||||
{ "core_cfg_disable_char_replacement" "disable_char_replacement" } \
|
{ "core_cfg_disable_char_replacement" "disable_char_replacement" } \
|
||||||
|
|
|
@ -80,7 +80,7 @@ module axi_jesd204_tx #(
|
||||||
output [7:0] core_cfg_octets_per_frame,
|
output [7:0] core_cfg_octets_per_frame,
|
||||||
output [7:0] core_cfg_lmfc_offset,
|
output [7:0] core_cfg_lmfc_offset,
|
||||||
output core_cfg_sysref_oneshot,
|
output core_cfg_sysref_oneshot,
|
||||||
output core_cfg_sysref_required,
|
output core_cfg_sysref_disable,
|
||||||
output core_cfg_continuous_cgs,
|
output core_cfg_continuous_cgs,
|
||||||
output core_cfg_continuous_ilas,
|
output core_cfg_continuous_ilas,
|
||||||
output core_cfg_skip_ilas,
|
output core_cfg_skip_ilas,
|
||||||
|
@ -125,7 +125,7 @@ wire up_cfg_continuous_cgs;
|
||||||
wire [7:0] up_cfg_mframes_per_ilas;
|
wire [7:0] up_cfg_mframes_per_ilas;
|
||||||
wire [7:0] up_cfg_lmfc_offset;
|
wire [7:0] up_cfg_lmfc_offset;
|
||||||
wire up_cfg_sysref_oneshot;
|
wire up_cfg_sysref_oneshot;
|
||||||
wire up_cfg_sysref_required;
|
wire up_cfg_sysref_disable;
|
||||||
wire up_cfg_is_writeable;
|
wire up_cfg_is_writeable;
|
||||||
|
|
||||||
wire [4:0] up_irq_trigger;
|
wire [4:0] up_irq_trigger;
|
||||||
|
@ -216,7 +216,7 @@ jesd204_up_common #(
|
||||||
.core_cfg_disable_char_replacement(core_cfg_disable_char_replacement),
|
.core_cfg_disable_char_replacement(core_cfg_disable_char_replacement),
|
||||||
|
|
||||||
.up_extra_cfg({
|
.up_extra_cfg({
|
||||||
/* 20 */ up_cfg_sysref_required,
|
/* 20 */ up_cfg_sysref_disable,
|
||||||
/* 19 */ up_cfg_sysref_oneshot,
|
/* 19 */ up_cfg_sysref_oneshot,
|
||||||
/* 18 */ up_cfg_continuous_cgs,
|
/* 18 */ up_cfg_continuous_cgs,
|
||||||
/* 17 */ up_cfg_continuous_ilas,
|
/* 17 */ up_cfg_continuous_ilas,
|
||||||
|
@ -225,7 +225,7 @@ jesd204_up_common #(
|
||||||
/* 00-07 */ up_cfg_mframes_per_ilas
|
/* 00-07 */ up_cfg_mframes_per_ilas
|
||||||
}),
|
}),
|
||||||
.core_extra_cfg({
|
.core_extra_cfg({
|
||||||
/* 20 */ core_cfg_sysref_required,
|
/* 20 */ core_cfg_sysref_disable,
|
||||||
/* 19 */ core_cfg_sysref_oneshot,
|
/* 19 */ core_cfg_sysref_oneshot,
|
||||||
/* 18 */ core_cfg_continuous_cgs,
|
/* 18 */ core_cfg_continuous_cgs,
|
||||||
/* 17 */ core_cfg_continuous_ilas,
|
/* 17 */ core_cfg_continuous_ilas,
|
||||||
|
@ -244,7 +244,7 @@ jesd204_up_sysref i_up_sysref (
|
||||||
|
|
||||||
.up_cfg_lmfc_offset(up_cfg_lmfc_offset),
|
.up_cfg_lmfc_offset(up_cfg_lmfc_offset),
|
||||||
.up_cfg_sysref_oneshot(up_cfg_sysref_oneshot),
|
.up_cfg_sysref_oneshot(up_cfg_sysref_oneshot),
|
||||||
.up_cfg_sysref_required(up_cfg_sysref_required),
|
.up_cfg_sysref_disable(up_cfg_sysref_disable),
|
||||||
|
|
||||||
.up_raddr(up_raddr),
|
.up_raddr(up_raddr),
|
||||||
.up_rdata(up_rdata_sysref),
|
.up_rdata(up_rdata_sysref),
|
||||||
|
|
|
@ -78,7 +78,7 @@ adi_add_bus "tx_cfg" "master" \
|
||||||
{ "core_cfg_octets_per_frame" "octets_per_frame" } \
|
{ "core_cfg_octets_per_frame" "octets_per_frame" } \
|
||||||
{ "core_cfg_lmfc_offset" "lmfc_offset" } \
|
{ "core_cfg_lmfc_offset" "lmfc_offset" } \
|
||||||
{ "core_cfg_sysref_oneshot" "sysref_oneshot" } \
|
{ "core_cfg_sysref_oneshot" "sysref_oneshot" } \
|
||||||
{ "core_cfg_sysref_required" "sysref_required" } \
|
{ "core_cfg_sysref_disable" "sysref_disable" } \
|
||||||
{ "core_cfg_continuous_cgs" "continuous_cgs" } \
|
{ "core_cfg_continuous_cgs" "continuous_cgs" } \
|
||||||
{ "core_cfg_continuous_ilas" "continuous_ilas" } \
|
{ "core_cfg_continuous_ilas" "continuous_ilas" } \
|
||||||
{ "core_cfg_skip_ilas" "skip_ilas" } \
|
{ "core_cfg_skip_ilas" "skip_ilas" } \
|
||||||
|
|
|
@ -51,9 +51,8 @@ module jesd204_lmfc (
|
||||||
input [7:0] cfg_beats_per_multiframe,
|
input [7:0] cfg_beats_per_multiframe,
|
||||||
input [7:0] cfg_lmfc_offset,
|
input [7:0] cfg_lmfc_offset,
|
||||||
input cfg_sysref_oneshot,
|
input cfg_sysref_oneshot,
|
||||||
input cfg_sysref_required,
|
|
||||||
|
|
||||||
input clear_sysref_captured,
|
input clear_sysref_captured,
|
||||||
|
input cfg_sysref_disable,
|
||||||
|
|
||||||
output reg lmfc_edge,
|
output reg lmfc_edge,
|
||||||
output reg lmfc_clk,
|
output reg lmfc_clk,
|
||||||
|
@ -93,7 +92,7 @@ always @(posedge clk) begin
|
||||||
end
|
end
|
||||||
|
|
||||||
always @(posedge clk) begin
|
always @(posedge clk) begin
|
||||||
if (sysref_d3 == 1'b0 && sysref_d2 == 1'b1) begin
|
if (sysref_d3 == 1'b0 && sysref_d2 == 1'b1 && cfg_sysref_disable == 1'b0) begin
|
||||||
sysref_edge <= 1'b1;
|
sysref_edge <= 1'b1;
|
||||||
end else begin
|
end else begin
|
||||||
sysref_edge <= 1'b0;
|
sysref_edge <= 1'b0;
|
||||||
|
@ -129,8 +128,8 @@ end
|
||||||
|
|
||||||
always @(posedge clk) begin
|
always @(posedge clk) begin
|
||||||
if (reset == 1'b1) begin
|
if (reset == 1'b1) begin
|
||||||
lmfc_counter <= 'h00;
|
lmfc_counter <= 'h01;
|
||||||
lmfc_active <= ~cfg_sysref_required;
|
lmfc_active <= cfg_sysref_disable;
|
||||||
end else begin
|
end else begin
|
||||||
/*
|
/*
|
||||||
* In oneshot mode only the first occurence of the
|
* In oneshot mode only the first occurence of the
|
||||||
|
@ -155,7 +154,7 @@ always @(posedge clk) begin
|
||||||
* setting.
|
* setting.
|
||||||
*/
|
*/
|
||||||
sysref_alignment_error <= 1'b0;
|
sysref_alignment_error <= 1'b0;
|
||||||
if (sysref_edge == 1'b1 &&
|
if (sysref_edge == 1'b1 && lmfc_active == 1'b1 &&
|
||||||
lmfc_counter_next != cfg_lmfc_offset) begin
|
lmfc_counter_next != cfg_lmfc_offset) begin
|
||||||
sysref_alignment_error <= 1'b1;
|
sysref_alignment_error <= 1'b1;
|
||||||
end
|
end
|
||||||
|
|
|
@ -99,7 +99,7 @@ adi_add_bus "rx_cfg" "slave" \
|
||||||
{ "cfg_octets_per_frame" "octets_per_frame" } \
|
{ "cfg_octets_per_frame" "octets_per_frame" } \
|
||||||
{ "cfg_lmfc_offset" "lmfc_offset" } \
|
{ "cfg_lmfc_offset" "lmfc_offset" } \
|
||||||
{ "cfg_sysref_oneshot" "sysref_oneshot" } \
|
{ "cfg_sysref_oneshot" "sysref_oneshot" } \
|
||||||
{ "cfg_sysref_required" "sysref_required" } \
|
{ "cfg_sysref_disable" "sysref_disable" } \
|
||||||
{ "cfg_buffer_delay" "buffer_delay" } \
|
{ "cfg_buffer_delay" "buffer_delay" } \
|
||||||
{ "cfg_buffer_early_release" "buffer_early_release" } \
|
{ "cfg_buffer_early_release" "buffer_early_release" } \
|
||||||
{ "cfg_disable_char_replacement" "disable_char_replacement" } \
|
{ "cfg_disable_char_replacement" "disable_char_replacement" } \
|
||||||
|
|
|
@ -73,7 +73,7 @@ module jesd204_rx #(
|
||||||
input [7:0] cfg_beats_per_multiframe,
|
input [7:0] cfg_beats_per_multiframe,
|
||||||
input [7:0] cfg_octets_per_frame,
|
input [7:0] cfg_octets_per_frame,
|
||||||
input [7:0] cfg_lmfc_offset,
|
input [7:0] cfg_lmfc_offset,
|
||||||
input cfg_sysref_required,
|
input cfg_sysref_disable,
|
||||||
input cfg_sysref_oneshot,
|
input cfg_sysref_oneshot,
|
||||||
input cfg_buffer_early_release,
|
input cfg_buffer_early_release,
|
||||||
input [7:0] cfg_buffer_delay,
|
input [7:0] cfg_buffer_delay,
|
||||||
|
@ -213,7 +213,7 @@ jesd204_lmfc i_lmfc (
|
||||||
.cfg_beats_per_multiframe(cfg_beats_per_multiframe),
|
.cfg_beats_per_multiframe(cfg_beats_per_multiframe),
|
||||||
.cfg_lmfc_offset(cfg_lmfc_offset),
|
.cfg_lmfc_offset(cfg_lmfc_offset),
|
||||||
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
||||||
.cfg_sysref_required(cfg_sysref_required),
|
.cfg_sysref_disable(cfg_sysref_disable),
|
||||||
|
|
||||||
.sysref(sysref),
|
.sysref(sysref),
|
||||||
.lmfc_edge(lmfc_edge),
|
.lmfc_edge(lmfc_edge),
|
||||||
|
|
|
@ -61,7 +61,7 @@ adi_add_bus "rx_cfg" "master" \
|
||||||
{ "cfg_octets_per_frame" "octets_per_frame" } \
|
{ "cfg_octets_per_frame" "octets_per_frame" } \
|
||||||
{ "cfg_lmfc_offset" "lmfc_offset" } \
|
{ "cfg_lmfc_offset" "lmfc_offset" } \
|
||||||
{ "cfg_sysref_oneshot" "sysref_oneshot" } \
|
{ "cfg_sysref_oneshot" "sysref_oneshot" } \
|
||||||
{ "cfg_sysref_required" "sysref_required" } \
|
{ "cfg_sysref_disable" "sysref_disable" } \
|
||||||
{ "cfg_buffer_early_release" "buffer_early_release" } \
|
{ "cfg_buffer_early_release" "buffer_early_release" } \
|
||||||
}
|
}
|
||||||
adi_add_bus_clock "clk" "rx_cfg"
|
adi_add_bus_clock "clk" "rx_cfg"
|
||||||
|
|
|
@ -56,7 +56,7 @@ module jesd204_rx_static_config #(
|
||||||
output [7:0] cfg_octets_per_frame,
|
output [7:0] cfg_octets_per_frame,
|
||||||
output [7:0] cfg_lmfc_offset,
|
output [7:0] cfg_lmfc_offset,
|
||||||
output cfg_sysref_oneshot,
|
output cfg_sysref_oneshot,
|
||||||
output cfg_sysref_required,
|
output cfg_sysref_disable,
|
||||||
|
|
||||||
output [7:0] cfg_buffer_delay,
|
output [7:0] cfg_buffer_delay,
|
||||||
output cfg_buffer_early_release,
|
output cfg_buffer_early_release,
|
||||||
|
@ -68,7 +68,7 @@ assign cfg_beats_per_multiframe = (FRAMES_PER_MULTIFRAME * OCTETS_PER_FRAME / 4)
|
||||||
assign cfg_octets_per_frame = OCTETS_PER_FRAME - 1;
|
assign cfg_octets_per_frame = OCTETS_PER_FRAME - 1;
|
||||||
assign cfg_lmfc_offset = 3;
|
assign cfg_lmfc_offset = 3;
|
||||||
assign cfg_sysref_oneshot = 1'b0;
|
assign cfg_sysref_oneshot = 1'b0;
|
||||||
assign cfg_sysref_required = 1'b1;
|
assign cfg_sysref_disable = 1'b0;
|
||||||
assign cfg_buffer_delay = 'hb;
|
assign cfg_buffer_delay = 'hb;
|
||||||
assign cfg_buffer_early_release = BUFFER_EARLY_RELEASE;
|
assign cfg_buffer_early_release = BUFFER_EARLY_RELEASE;
|
||||||
assign cfg_lanes_disable = {NUM_LANES{1'b0}};
|
assign cfg_lanes_disable = {NUM_LANES{1'b0}};
|
||||||
|
|
|
@ -92,7 +92,7 @@ adi_add_bus "tx_cfg" "slave" \
|
||||||
{ "cfg_octets_per_frame" "octets_per_frame" } \
|
{ "cfg_octets_per_frame" "octets_per_frame" } \
|
||||||
{ "cfg_lmfc_offset" "lmfc_offset" } \
|
{ "cfg_lmfc_offset" "lmfc_offset" } \
|
||||||
{ "cfg_sysref_oneshot" "sysref_oneshot" } \
|
{ "cfg_sysref_oneshot" "sysref_oneshot" } \
|
||||||
{ "cfg_sysref_required" "sysref_required" } \
|
{ "cfg_sysref_disable" "sysref_disable" } \
|
||||||
{ "cfg_continuous_cgs" "continuous_cgs" } \
|
{ "cfg_continuous_cgs" "continuous_cgs" } \
|
||||||
{ "cfg_continuous_ilas" "continuous_ilas" } \
|
{ "cfg_continuous_ilas" "continuous_ilas" } \
|
||||||
{ "cfg_skip_ilas" "skip_ilas" } \
|
{ "cfg_skip_ilas" "skip_ilas" } \
|
||||||
|
|
|
@ -65,7 +65,7 @@ module jesd204_tx #(
|
||||||
input [7:0] cfg_octets_per_frame,
|
input [7:0] cfg_octets_per_frame,
|
||||||
input [7:0] cfg_lmfc_offset,
|
input [7:0] cfg_lmfc_offset,
|
||||||
input cfg_sysref_oneshot,
|
input cfg_sysref_oneshot,
|
||||||
input cfg_sysref_required,
|
input cfg_sysref_disable,
|
||||||
input cfg_continuous_cgs,
|
input cfg_continuous_cgs,
|
||||||
input cfg_continuous_ilas,
|
input cfg_continuous_ilas,
|
||||||
input cfg_skip_ilas,
|
input cfg_skip_ilas,
|
||||||
|
@ -123,7 +123,7 @@ jesd204_lmfc i_lmfc (
|
||||||
.cfg_beats_per_multiframe(cfg_beats_per_multiframe),
|
.cfg_beats_per_multiframe(cfg_beats_per_multiframe),
|
||||||
.cfg_lmfc_offset(cfg_lmfc_offset),
|
.cfg_lmfc_offset(cfg_lmfc_offset),
|
||||||
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
||||||
.cfg_sysref_required(cfg_sysref_required),
|
.cfg_sysref_disable(cfg_sysref_disable),
|
||||||
|
|
||||||
.sysref(sysref),
|
.sysref(sysref),
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ adi_add_bus "tx_cfg" "master" \
|
||||||
{ "cfg_octets_per_frame" "octets_per_frame" } \
|
{ "cfg_octets_per_frame" "octets_per_frame" } \
|
||||||
{ "cfg_lmfc_offset" "lmfc_offset" } \
|
{ "cfg_lmfc_offset" "lmfc_offset" } \
|
||||||
{ "cfg_sysref_oneshot" "sysref_oneshot" } \
|
{ "cfg_sysref_oneshot" "sysref_oneshot" } \
|
||||||
{ "cfg_sysref_required" "sysref_required" } \
|
{ "cfg_sysref_disable" "sysref_disable" } \
|
||||||
{ "cfg_continuous_cgs" "continuous_cgs" } \
|
{ "cfg_continuous_cgs" "continuous_cgs" } \
|
||||||
{ "cfg_continuous_ilas" "continuous_ilas" } \
|
{ "cfg_continuous_ilas" "continuous_ilas" } \
|
||||||
{ "cfg_skip_ilas" "skip_ilas" } \
|
{ "cfg_skip_ilas" "skip_ilas" } \
|
||||||
|
|
|
@ -59,7 +59,7 @@ module jesd204_tx_static_config #(
|
||||||
output [7:0] cfg_octets_per_frame,
|
output [7:0] cfg_octets_per_frame,
|
||||||
output [7:0] cfg_lmfc_offset,
|
output [7:0] cfg_lmfc_offset,
|
||||||
output cfg_sysref_oneshot,
|
output cfg_sysref_oneshot,
|
||||||
output cfg_sysref_required,
|
output cfg_sysref_disable,
|
||||||
output cfg_continuous_cgs,
|
output cfg_continuous_cgs,
|
||||||
output cfg_continuous_ilas,
|
output cfg_continuous_ilas,
|
||||||
output cfg_skip_ilas,
|
output cfg_skip_ilas,
|
||||||
|
@ -76,7 +76,7 @@ assign cfg_beats_per_multiframe = (FRAMES_PER_MULTIFRAME * OCTETS_PER_FRAME / 4)
|
||||||
assign cfg_octets_per_frame = OCTETS_PER_FRAME - 1;
|
assign cfg_octets_per_frame = OCTETS_PER_FRAME - 1;
|
||||||
assign cfg_lmfc_offset = 3;
|
assign cfg_lmfc_offset = 3;
|
||||||
assign cfg_sysref_oneshot = 1'b0;
|
assign cfg_sysref_oneshot = 1'b0;
|
||||||
assign cfg_sysref_required = 1'b1;
|
assign cfg_sysref_disable = 1'b0;
|
||||||
assign cfg_continuous_cgs = 1'b0;
|
assign cfg_continuous_cgs = 1'b0;
|
||||||
assign cfg_continuous_ilas = 1'b0;
|
assign cfg_continuous_ilas = 1'b0;
|
||||||
assign cfg_skip_ilas = 1'b0;
|
assign cfg_skip_ilas = 1'b0;
|
||||||
|
|
|
@ -136,7 +136,8 @@ module loopback_tb;
|
||||||
wire [7:0] tx_cfg_beats_per_multiframe;
|
wire [7:0] tx_cfg_beats_per_multiframe;
|
||||||
wire [7:0] tx_cfg_octets_per_frame;
|
wire [7:0] tx_cfg_octets_per_frame;
|
||||||
wire [7:0] tx_cfg_lmfc_offset;
|
wire [7:0] tx_cfg_lmfc_offset;
|
||||||
wire tx_cfg_sysref_required;
|
wire tx_cfg_sysref_disable;
|
||||||
|
wire tx_cfg_sysref_oneshot;
|
||||||
wire tx_cfg_continuous_cgs;
|
wire tx_cfg_continuous_cgs;
|
||||||
wire tx_cfg_continuous_ilas;
|
wire tx_cfg_continuous_ilas;
|
||||||
wire tx_cfg_skip_ilas;
|
wire tx_cfg_skip_ilas;
|
||||||
|
@ -160,7 +161,8 @@ module loopback_tb;
|
||||||
.cfg_beats_per_multiframe(tx_cfg_beats_per_multiframe),
|
.cfg_beats_per_multiframe(tx_cfg_beats_per_multiframe),
|
||||||
.cfg_octets_per_frame(tx_cfg_octets_per_frame),
|
.cfg_octets_per_frame(tx_cfg_octets_per_frame),
|
||||||
.cfg_lmfc_offset(tx_cfg_lmfc_offset),
|
.cfg_lmfc_offset(tx_cfg_lmfc_offset),
|
||||||
.cfg_sysref_required(tx_cfg_sysref_required),
|
.cfg_sysref_disable(tx_cfg_sysref_disable),
|
||||||
|
.cfg_sysref_oneshot(tx_cfg_sysref_oneshot),
|
||||||
.cfg_continuous_cgs(tx_cfg_continuous_cgs),
|
.cfg_continuous_cgs(tx_cfg_continuous_cgs),
|
||||||
.cfg_continuous_ilas(tx_cfg_continuous_ilas),
|
.cfg_continuous_ilas(tx_cfg_continuous_ilas),
|
||||||
.cfg_skip_ilas(tx_cfg_skip_ilas),
|
.cfg_skip_ilas(tx_cfg_skip_ilas),
|
||||||
|
@ -183,7 +185,8 @@ module loopback_tb;
|
||||||
.cfg_beats_per_multiframe(tx_cfg_beats_per_multiframe),
|
.cfg_beats_per_multiframe(tx_cfg_beats_per_multiframe),
|
||||||
.cfg_octets_per_frame(tx_cfg_octets_per_frame),
|
.cfg_octets_per_frame(tx_cfg_octets_per_frame),
|
||||||
.cfg_lmfc_offset(tx_cfg_lmfc_offset),
|
.cfg_lmfc_offset(tx_cfg_lmfc_offset),
|
||||||
.cfg_sysref_required(tx_cfg_sysref_required),
|
.cfg_sysref_disable(tx_cfg_sysref_disable),
|
||||||
|
.cfg_sysref_oneshot(tx_cfg_sysref_oneshot),
|
||||||
.cfg_continuous_cgs(tx_cfg_continuous_cgs),
|
.cfg_continuous_cgs(tx_cfg_continuous_cgs),
|
||||||
.cfg_continuous_ilas(tx_cfg_continuous_ilas),
|
.cfg_continuous_ilas(tx_cfg_continuous_ilas),
|
||||||
.cfg_skip_ilas(tx_cfg_skip_ilas),
|
.cfg_skip_ilas(tx_cfg_skip_ilas),
|
||||||
|
@ -211,7 +214,8 @@ module loopback_tb;
|
||||||
wire [7:0] rx_cfg_beats_per_multiframe;
|
wire [7:0] rx_cfg_beats_per_multiframe;
|
||||||
wire [7:0] rx_cfg_octets_per_frame;
|
wire [7:0] rx_cfg_octets_per_frame;
|
||||||
wire [7:0] rx_cfg_lmfc_offset;
|
wire [7:0] rx_cfg_lmfc_offset;
|
||||||
wire rx_sysref_required;
|
wire rx_sysref_disable;
|
||||||
|
wire rx_sysref_oneshot;
|
||||||
wire rx_cfg_disable_scrambler;
|
wire rx_cfg_disable_scrambler;
|
||||||
wire rx_cfg_disable_char_replacement;
|
wire rx_cfg_disable_char_replacement;
|
||||||
wire rx_cfg_buffer_early_release;
|
wire rx_cfg_buffer_early_release;
|
||||||
|
@ -232,7 +236,8 @@ module loopback_tb;
|
||||||
.cfg_beats_per_multiframe(rx_cfg_beats_per_multiframe),
|
.cfg_beats_per_multiframe(rx_cfg_beats_per_multiframe),
|
||||||
.cfg_octets_per_frame(rx_cfg_octets_per_frame),
|
.cfg_octets_per_frame(rx_cfg_octets_per_frame),
|
||||||
.cfg_lmfc_offset(rx_cfg_lmfc_offset),
|
.cfg_lmfc_offset(rx_cfg_lmfc_offset),
|
||||||
.cfg_sysref_required(rx_cfg_sysref_required),
|
.cfg_sysref_disable(rx_cfg_sysref_disable),
|
||||||
|
.cfg_sysref_oneshot(rx_cfg_sysref_oneshot),
|
||||||
.cfg_disable_scrambler(rx_cfg_disable_scrambler),
|
.cfg_disable_scrambler(rx_cfg_disable_scrambler),
|
||||||
.cfg_disable_char_replacement(rx_cfg_disable_char_replacement),
|
.cfg_disable_char_replacement(rx_cfg_disable_char_replacement),
|
||||||
.cfg_buffer_delay(rx_cfg_buffer_delay),
|
.cfg_buffer_delay(rx_cfg_buffer_delay),
|
||||||
|
@ -249,7 +254,8 @@ module loopback_tb;
|
||||||
.cfg_beats_per_multiframe(rx_cfg_beats_per_multiframe),
|
.cfg_beats_per_multiframe(rx_cfg_beats_per_multiframe),
|
||||||
.cfg_octets_per_frame(rx_cfg_octets_per_frame),
|
.cfg_octets_per_frame(rx_cfg_octets_per_frame),
|
||||||
.cfg_lmfc_offset(rx_cfg_lmfc_offset),
|
.cfg_lmfc_offset(rx_cfg_lmfc_offset),
|
||||||
.cfg_sysref_required(rx_cfg_sysref_required),
|
.cfg_sysref_disable(rx_cfg_sysref_disable),
|
||||||
|
.cfg_sysref_oneshot(rx_cfg_sysref_oneshot),
|
||||||
.cfg_disable_scrambler(rx_cfg_disable_scrambler),
|
.cfg_disable_scrambler(rx_cfg_disable_scrambler),
|
||||||
.cfg_disable_char_replacement(rx_cfg_disable_char_replacement),
|
.cfg_disable_char_replacement(rx_cfg_disable_char_replacement),
|
||||||
.cfg_buffer_delay(rx_cfg_buffer_delay),
|
.cfg_buffer_delay(rx_cfg_buffer_delay),
|
||||||
|
|
|
@ -138,7 +138,7 @@ module rx_tb;
|
||||||
wire [7:0] cfg_octets_per_frame;
|
wire [7:0] cfg_octets_per_frame;
|
||||||
wire [7:0] cfg_lmfc_offset;
|
wire [7:0] cfg_lmfc_offset;
|
||||||
wire cfg_sysref_oneshot;
|
wire cfg_sysref_oneshot;
|
||||||
wire cfg_sysref_required;
|
wire cfg_sysref_disable;
|
||||||
wire cfg_buffer_early_release;
|
wire cfg_buffer_early_release;
|
||||||
wire cfg_disable_scrambler;
|
wire cfg_disable_scrambler;
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ module rx_tb;
|
||||||
.cfg_octets_per_frame(cfg_octets_per_frame),
|
.cfg_octets_per_frame(cfg_octets_per_frame),
|
||||||
.cfg_lmfc_offset(cfg_lmfc_offset),
|
.cfg_lmfc_offset(cfg_lmfc_offset),
|
||||||
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
||||||
.cfg_sysref_required(cfg_sysref_required),
|
.cfg_sysref_disable(cfg_sysref_disable),
|
||||||
.cfg_disable_scrambler(tx_cfg_disable_scrambler),
|
.cfg_disable_scrambler(tx_cfg_disable_scrambler),
|
||||||
.cfg_buffer_early_release(rx_buffer_early_release)
|
.cfg_buffer_early_release(rx_buffer_early_release)
|
||||||
);
|
);
|
||||||
|
@ -170,7 +170,7 @@ module rx_tb;
|
||||||
.cfg_octets_per_frame(cfg_octets_per_frame),
|
.cfg_octets_per_frame(cfg_octets_per_frame),
|
||||||
.cfg_lmfc_offset(cfg_lmfc_offset),
|
.cfg_lmfc_offset(cfg_lmfc_offset),
|
||||||
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
||||||
.cfg_sysref_required(cfg_sysref_required),
|
.cfg_sysref_disable(cfg_sysref_disable),
|
||||||
.cfg_disable_scrambler(tx_cfg_disable_scrambler),
|
.cfg_disable_scrambler(tx_cfg_disable_scrambler),
|
||||||
.cfg_buffer_early_release(rx_buffer_early_release),
|
.cfg_buffer_early_release(rx_buffer_early_release),
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ module tx_tb;
|
||||||
wire [7:0] cfg_octets_per_frame;
|
wire [7:0] cfg_octets_per_frame;
|
||||||
wire [7:0] cfg_lmfc_offset;
|
wire [7:0] cfg_lmfc_offset;
|
||||||
wire cfg_sysref_oneshot;
|
wire cfg_sysref_oneshot;
|
||||||
wire cfg_sysref_required;
|
wire cfg_sysref_disable;
|
||||||
wire cfg_continuous_cgs;
|
wire cfg_continuous_cgs;
|
||||||
wire cfg_continuous_ilas;
|
wire cfg_continuous_ilas;
|
||||||
wire cfg_skip_ilas;
|
wire cfg_skip_ilas;
|
||||||
|
@ -106,7 +106,7 @@ module tx_tb;
|
||||||
.cfg_disable_char_replacement(cfg_disable_char_replacement),
|
.cfg_disable_char_replacement(cfg_disable_char_replacement),
|
||||||
.cfg_disable_scrambler(cfg_disable_scrambler),
|
.cfg_disable_scrambler(cfg_disable_scrambler),
|
||||||
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
||||||
.cfg_sysref_required(cfg_sysref_required),
|
.cfg_sysref_disable(cfg_sysref_disable),
|
||||||
|
|
||||||
.ilas_config_rd(tx_ilas_config_rd),
|
.ilas_config_rd(tx_ilas_config_rd),
|
||||||
.ilas_config_addr(tx_ilas_config_addr),
|
.ilas_config_addr(tx_ilas_config_addr),
|
||||||
|
@ -130,7 +130,7 @@ module tx_tb;
|
||||||
.cfg_disable_char_replacement(cfg_disable_char_replacement),
|
.cfg_disable_char_replacement(cfg_disable_char_replacement),
|
||||||
.cfg_disable_scrambler(cfg_disable_scrambler),
|
.cfg_disable_scrambler(cfg_disable_scrambler),
|
||||||
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
.cfg_sysref_oneshot(cfg_sysref_oneshot),
|
||||||
.cfg_sysref_required(cfg_sysref_required),
|
.cfg_sysref_disable(cfg_sysref_disable),
|
||||||
|
|
||||||
.ilas_config_rd(tx_ilas_config_rd),
|
.ilas_config_rd(tx_ilas_config_rd),
|
||||||
.ilas_config_addr(tx_ilas_config_addr),
|
.ilas_config_addr(tx_ilas_config_addr),
|
||||||
|
|
Loading…
Reference in New Issue