Clip tests all passing
This commit is contained in:
parent
4cf0ea0067
commit
d71095a2a6
5 changed files with 465 additions and 447 deletions
|
|
@ -42,7 +42,7 @@
|
|||
<Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/>
|
||||
<Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
|
||||
<Option Name="EnableBDX" Val="FALSE"/>
|
||||
<Option Name="WTXSimLaunchSim" Val="119"/>
|
||||
<Option Name="WTXSimLaunchSim" Val="185"/>
|
||||
<Option Name="WTModelSimLaunchSim" Val="0"/>
|
||||
<Option Name="WTQuestaLaunchSim" Val="0"/>
|
||||
<Option Name="WTIesLaunchSim" Val="0"/>
|
||||
|
|
|
|||
|
|
@ -21,220 +21,262 @@
|
|||
|
||||
|
||||
module window_matcher(
|
||||
input clk,
|
||||
input rst,
|
||||
/* Pixel clock and synchronous, active-high reset */
|
||||
input clk, rst,
|
||||
|
||||
input in_blank,
|
||||
input in_hsync,
|
||||
input in_vsync,
|
||||
input [7:0] in_red,
|
||||
input [7:0] in_green,
|
||||
input [7:0] in_blue,
|
||||
/* Input pixel bus */
|
||||
input in_blank, in_hsync, in_vsync,
|
||||
input [7:0] in_red, [7:0] in_green, [7:0] in_blue,
|
||||
|
||||
output win_hsync,
|
||||
output win_vsync,
|
||||
output win_blank,
|
||||
/* Output pixel bus */
|
||||
output out_blank,
|
||||
output out_hsync, out_vsync,
|
||||
output [7:0] out_red, [7:0] out_green, [7:0] out_blue,
|
||||
|
||||
/* Overlay data IO */
|
||||
output win_hsync, win_vsync,
|
||||
output win_blank,
|
||||
output reg [11:0] win_w,
|
||||
output reg [11:0] win_h,
|
||||
output reg win_locked,
|
||||
input [7:0] win_red, [7:0] win_green, [7:0] win_blue,
|
||||
|
||||
output reg out_data_en,
|
||||
/* Extracted data output */
|
||||
output out_data_en,
|
||||
output reg out_data_valid,
|
||||
output reg [23:0] out_data,
|
||||
|
||||
output reg pattern_locked,
|
||||
output reg [11:0] pattern_w,
|
||||
output reg [11:0] pattern_h
|
||||
output [23:0] out_data
|
||||
);
|
||||
|
||||
assign out_blank = ~out_hsync;
|
||||
assign win_blank = ~win_hsync;
|
||||
|
||||
wire [23:0] in_pxd = {in_red, in_green, in_blue};
|
||||
wire [23:0] win_pxd = {win_red, win_green, win_blue};
|
||||
wire [23:0] out_pxd;
|
||||
assign {out_red, out_green, out_blue} = out_pxd;
|
||||
|
||||
reg [11:0] cur_x;
|
||||
reg [11:0] cur_y;
|
||||
reg [11:0] cur_x_sr [3:0];
|
||||
reg [11:0] marker_x;
|
||||
reg [11:0] marker_y;
|
||||
/* rx_x trails by 4 px in the first window row, since we cannot start counting before the marker was fully detected */
|
||||
reg [11:0] rx_x;
|
||||
reg [11:0] rx_y;
|
||||
wire [23:0] in_pxd = {in_red, in_green, in_blue};
|
||||
reg [11:0] in_pxd_match_sr;
|
||||
wire [3:0] in_pxd_match;
|
||||
reg last_hsync;
|
||||
reg last_vsync;
|
||||
wire in_pxd_pattern_match;
|
||||
reg pattern_found;
|
||||
reg pattern_rx;
|
||||
wire pattern_meta_rx;
|
||||
wire pattern_data_rx;
|
||||
wire [11:0] end_x;
|
||||
wire [11:0] end_y;
|
||||
reg win_hsync_int;
|
||||
reg win_vsync_int;
|
||||
|
||||
reg [23:0] pattern_meta [3:0];
|
||||
|
||||
localparam [23:0] PATTERN_0 = 24'h012345;
|
||||
localparam [23:0] PATTERN_1 = 24'h6789ab;
|
||||
localparam [23:0] PATTERN_2 = 24'hcdef42;
|
||||
localparam [23:0] PATTERN_3 = 24'h543210;
|
||||
localparam [23:0] MARKER_0 = 24'h012345;
|
||||
localparam [23:0] MARKER_1 = 24'h6789ab;
|
||||
localparam [23:0] MARKER_2 = 24'hcdef42;
|
||||
localparam [23:0] MARKER_3 = 24'h543210;
|
||||
|
||||
|
||||
assign in_pxd_match = {
|
||||
in_pxd == PATTERN_3,
|
||||
in_pxd == PATTERN_2,
|
||||
in_pxd == PATTERN_1,
|
||||
in_pxd == PATTERN_0
|
||||
wire [3:0] in_pxd_match = {
|
||||
in_pxd == MARKER_3,
|
||||
in_pxd == MARKER_2,
|
||||
in_pxd == MARKER_1,
|
||||
in_pxd == MARKER_0
|
||||
};
|
||||
|
||||
assign in_pxd_pattern_match =
|
||||
in_pxd_match_sr[2+0*4] == 1'b1
|
||||
&& in_pxd_match_sr[1+1*4] == 1'b1
|
||||
&& in_pxd_match_sr[0+2*4] == 1'b1
|
||||
&& in_pxd_match[3] == 1'b1
|
||||
&& in_blank == 1'b0;
|
||||
|
||||
assign pattern_meta_rx = pattern_rx && rx_x < 4 && rx_y == 0;
|
||||
assign pattern_data_rx = pattern_rx && !pattern_meta_rx;
|
||||
|
||||
assign end_x = marker_x + pattern_meta[2];
|
||||
assign end_y = marker_y + pattern_meta[3];
|
||||
|
||||
assign win_hsync = win_hsync_int && last_hsync && pattern_locked;
|
||||
assign win_vsync = win_vsync_int && last_hsync && pattern_locked;
|
||||
assign win_blank = !win_hsync;
|
||||
|
||||
|
||||
|
||||
reg [3:0] in_pxd_match_sr [2:0];
|
||||
wire in_pxd_pattern_match =
|
||||
in_pxd_match[3] == 1
|
||||
&& in_pxd_match_sr[2][0] == 1
|
||||
&& in_pxd_match_sr[1][1] == 1
|
||||
&& in_pxd_match_sr[0][2] == 1
|
||||
&& in_blank == 0;
|
||||
/* Window matching shift register */
|
||||
always @(posedge clk) begin
|
||||
if (rst) begin
|
||||
out_data <= 0;
|
||||
out_data_valid <= 0;
|
||||
out_data_en <= 0;
|
||||
win_hsync_int <= 0;
|
||||
win_vsync_int <= 0;
|
||||
cur_x = 0;
|
||||
cur_y = 0;
|
||||
cur_x_sr[0] <= 0;
|
||||
cur_x_sr[1] <= 0;
|
||||
cur_x_sr[2] <= 0;
|
||||
cur_x_sr[3] <= 0;
|
||||
marker_x <= 0;
|
||||
marker_y <= 0;
|
||||
pattern_w <= 0;
|
||||
pattern_h <= 0;
|
||||
rx_x <= 0;
|
||||
rx_y <= 0;
|
||||
last_hsync <= 0;
|
||||
last_vsync <= 0;
|
||||
in_pxd_match_sr <= 0;
|
||||
pattern_found <= 0;
|
||||
pattern_locked <= 0;
|
||||
pattern_rx <= 0;
|
||||
pattern_meta[0] <= 0;
|
||||
pattern_meta[1] <= 0;
|
||||
pattern_meta[2] <= 0;
|
||||
pattern_meta[3] <= 0;
|
||||
if (rst == 1) begin
|
||||
in_pxd_match_sr[0] <= 0;
|
||||
in_pxd_match_sr[1] <= 0;
|
||||
in_pxd_match_sr[2] <= 0;
|
||||
end else begin
|
||||
/* TODO add occlusion handling */
|
||||
|
||||
last_hsync <= in_hsync;
|
||||
last_vsync <= in_vsync;
|
||||
|
||||
if (last_vsync == 1'b1 && in_vsync == 1'b0) begin
|
||||
cur_y <= 0;
|
||||
rx_y <= 0;
|
||||
out_data_en <= 0;
|
||||
rx_x <= 0;
|
||||
rx_y <= 0;
|
||||
pattern_rx <= 0;
|
||||
win_vsync_int <= 0;
|
||||
|
||||
if (!pattern_found) begin
|
||||
pattern_locked <= 0;
|
||||
pattern_w = 0;
|
||||
pattern_h = 0;
|
||||
|
||||
marker_x <= 0;
|
||||
marker_y <= 0;
|
||||
pattern_meta[0] <= 0;
|
||||
pattern_meta[1] <= 0;
|
||||
pattern_meta[2] <= 0;
|
||||
pattern_meta[3] <= 0;
|
||||
|
||||
end else begin
|
||||
pattern_locked <= 1;
|
||||
pattern_w = pattern_meta[2];
|
||||
pattern_h = pattern_meta[3];
|
||||
end
|
||||
|
||||
pattern_found <= 0;
|
||||
end
|
||||
|
||||
out_data_valid <= 0;
|
||||
|
||||
if (in_blank == 1'b0) begin
|
||||
cur_x <= cur_x + 1;
|
||||
cur_x_sr[0] <= cur_x;
|
||||
cur_x_sr[1] <= cur_x_sr[0];
|
||||
cur_x_sr[2] <= cur_x_sr[1];
|
||||
cur_x_sr[3] <= cur_x_sr[2];
|
||||
|
||||
in_pxd_match_sr <= { in_pxd_match_sr[7:0], in_pxd_match };
|
||||
|
||||
if (in_pxd_pattern_match && !pattern_found) begin
|
||||
pattern_rx <= 1'b1;
|
||||
pattern_found <= 1'b1;
|
||||
win_hsync_int <= 1;
|
||||
marker_x <= cur_x_sr[3];
|
||||
marker_y <= cur_y;
|
||||
end
|
||||
|
||||
if (pattern_rx) begin
|
||||
rx_x <= rx_x+1;
|
||||
|
||||
if (pattern_meta_rx) begin
|
||||
case (rx_x)
|
||||
0: pattern_meta[0] = in_pxd;
|
||||
1: pattern_meta[1] = in_pxd;
|
||||
2: pattern_meta[2] = in_pxd;
|
||||
3: pattern_meta[3] = in_pxd;
|
||||
endcase
|
||||
end
|
||||
|
||||
if (pattern_data_rx && win_hsync_int && last_hsync) begin
|
||||
out_data <= in_pxd;
|
||||
out_data_valid <= 1'b1;
|
||||
out_data_en <= 1'b1;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (cur_x == marker_x && win_vsync_int) begin
|
||||
win_hsync_int <= 1;
|
||||
end
|
||||
|
||||
if (cur_x == end_x) begin
|
||||
win_hsync_int <= 0;
|
||||
end
|
||||
|
||||
if (cur_y == marker_y) begin
|
||||
win_vsync_int <= 1;
|
||||
end
|
||||
|
||||
if (cur_y == end_y) begin
|
||||
win_vsync_int <= 0;
|
||||
end
|
||||
|
||||
if (last_hsync == 1'b1 && in_hsync == 1'b0) begin
|
||||
cur_x <= 0;
|
||||
cur_x_sr[0] <= 0;
|
||||
cur_x_sr[1] <= 0;
|
||||
cur_x_sr[2] <= 0;
|
||||
cur_x_sr[3] <= 0;
|
||||
cur_y <= cur_y + 1;
|
||||
in_pxd_match_sr <= 0;
|
||||
win_hsync_int <= 0;
|
||||
|
||||
rx_x <= 0;
|
||||
|
||||
if (pattern_rx == 1'b1) begin
|
||||
rx_y <= rx_y+1;
|
||||
end
|
||||
end
|
||||
in_pxd_match_sr[0] <= in_pxd_match;
|
||||
in_pxd_match_sr[1] <= in_pxd_match_sr[0];
|
||||
in_pxd_match_sr[2] <= in_pxd_match_sr[1];
|
||||
end
|
||||
end
|
||||
|
||||
/* Window matching state machine */
|
||||
reg [11:0] scan_x;
|
||||
reg [11:0] scan_y;
|
||||
reg [11:0] window_x;
|
||||
reg [11:0] window_y;
|
||||
reg [11:0] win_w_int;
|
||||
reg [11:0] win_h_int;
|
||||
reg win_hsync_int, win_vsync_int;
|
||||
localparam ST_MAT_WAITING = 6'b000000,
|
||||
ST_MAT_RX0 = 6'b000001,
|
||||
ST_MAT_RX1 = 6'b000010,
|
||||
ST_MAT_RX2 = 6'b000100,
|
||||
ST_MAT_RX3 = 6'b001000,
|
||||
ST_MAT_MATCHED = 6'b010000,
|
||||
ST_MAT_DATA = 6'b100000;
|
||||
reg [5:0] matcher_state;
|
||||
wire matched = matcher_state[5];
|
||||
always @(posedge clk) begin
|
||||
if (rst == 1 || in_vsync == 0) begin
|
||||
matcher_state <= ST_MAT_WAITING;
|
||||
window_x <= 0;
|
||||
window_y <= 0;
|
||||
win_w_int <= 0;
|
||||
win_h_int <= 0;
|
||||
|
||||
end else begin
|
||||
case (matcher_state)
|
||||
ST_MAT_WAITING: begin
|
||||
if (in_pxd_pattern_match) begin
|
||||
matcher_state <= ST_MAT_RX0;
|
||||
window_x <= scan_x_reg[2];
|
||||
window_y <= scan_y;
|
||||
end
|
||||
end
|
||||
ST_MAT_RX0: begin
|
||||
matcher_state <= ST_MAT_RX1;
|
||||
end
|
||||
ST_MAT_RX1: begin
|
||||
matcher_state <= ST_MAT_RX2;
|
||||
end
|
||||
ST_MAT_RX2: begin
|
||||
matcher_state <= ST_MAT_RX3;
|
||||
win_w_int <= in_pxd;
|
||||
end
|
||||
ST_MAT_RX3: begin
|
||||
matcher_state <= ST_MAT_MATCHED;
|
||||
win_h_int <= in_pxd;
|
||||
end
|
||||
ST_MAT_MATCHED: begin
|
||||
matcher_state <= ST_MAT_DATA;
|
||||
win_hsync_int <= 1;
|
||||
out_data_valid <= 1;
|
||||
win_vsync_int <= 1;
|
||||
win_hsync_ctr <= 9;
|
||||
win_vsync_ctr <= 0;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
/* Pixel scan state machine */
|
||||
reg [11:0] scan_x_reg [3:0];
|
||||
reg in_hsync_reg;
|
||||
reg in_vsync_reg;
|
||||
reg [23:0] in_pxd_reg;
|
||||
|
||||
assign out_hsync = in_hsync_reg;
|
||||
assign out_vsync = in_vsync_reg;
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (rst == 1) begin
|
||||
scan_x <= 0;
|
||||
scan_x_reg[0] <= 0;
|
||||
scan_x_reg[1] <= 0;
|
||||
scan_x_reg[2] <= 0;
|
||||
scan_x_reg[3] <= 0;
|
||||
scan_y <= 0;
|
||||
in_hsync_reg <= 0;
|
||||
in_vsync_reg <= 0;
|
||||
in_pxd_reg <= 0;
|
||||
|
||||
end else begin
|
||||
in_hsync_reg <= in_hsync;
|
||||
in_vsync_reg <= in_vsync;
|
||||
in_pxd_reg <= in_pxd;
|
||||
scan_x_reg[0] <= scan_x;
|
||||
scan_x_reg[1] <= scan_x_reg[0];
|
||||
scan_x_reg[2] <= scan_x_reg[1];
|
||||
scan_x_reg[3] <= scan_x_reg[2];
|
||||
|
||||
if (in_hsync == 1) begin
|
||||
scan_x <= scan_x + 1;
|
||||
end
|
||||
|
||||
if (in_hsync_reg == 1 && in_hsync == 0) begin
|
||||
scan_y <= scan_y + 1;
|
||||
end
|
||||
|
||||
if (in_hsync_reg == 0 && in_hsync == 1) begin
|
||||
scan_x_reg[0] <= 0;
|
||||
scan_x_reg[1] <= 0;
|
||||
scan_x_reg[2] <= 0;
|
||||
scan_x_reg[3] <= 0;
|
||||
scan_x <= 0;
|
||||
end
|
||||
|
||||
if (in_vsync_reg == 1 && in_vsync == 0) begin
|
||||
scan_y <= 0;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
/* Match locking process */
|
||||
reg match_locked; /* Goes high after a frame with a marker has been fully received */
|
||||
always @(posedge clk) begin
|
||||
if (rst) begin
|
||||
match_locked <= 0;
|
||||
|
||||
end else begin
|
||||
if (in_vsync_reg == 1 && in_vsync == 0) begin
|
||||
match_locked <= matched;
|
||||
win_locked <= matched;
|
||||
win_w <= win_w_int;
|
||||
win_h <= win_h_int;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
/* Window sync generator */
|
||||
reg [11:0] win_hsync_ctr;
|
||||
reg [11:0] win_vsync_ctr;
|
||||
|
||||
assign win_hsync = win_hsync_int && match_locked;
|
||||
assign win_vsync = win_vsync_int && match_locked;
|
||||
always @(posedge clk) begin
|
||||
if (rst == 1) begin
|
||||
win_hsync_int <= 0;
|
||||
win_vsync_int <= 0;
|
||||
win_hsync_ctr <= 0;
|
||||
win_vsync_ctr <= 0;
|
||||
out_data_valid <= 0;
|
||||
|
||||
end else begin
|
||||
if (matcher_state == ST_MAT_DATA) begin
|
||||
/* hsync */
|
||||
if (scan_x == window_x && win_vsync_int == 1) begin
|
||||
win_hsync_int <= 1;
|
||||
win_hsync_ctr <= 1;
|
||||
out_data_valid <= 1;
|
||||
end
|
||||
|
||||
if (win_hsync_int == 1) begin
|
||||
win_hsync_ctr <= win_hsync_ctr + 1;
|
||||
end
|
||||
|
||||
if (win_hsync_ctr == win_w_int) begin
|
||||
win_hsync_int <= 0;
|
||||
out_data_valid <= 0;
|
||||
win_hsync_ctr <= 0;
|
||||
end
|
||||
|
||||
if (in_hsync_reg == 1 && in_hsync == 0) begin
|
||||
if (scan_y == window_y) begin
|
||||
win_vsync_int <= 1;
|
||||
win_vsync_ctr <= 0;
|
||||
end
|
||||
|
||||
win_vsync_ctr <= win_vsync_ctr + 1;
|
||||
end
|
||||
|
||||
if (win_vsync_ctr == win_h_int) begin
|
||||
win_vsync_int <= 0;
|
||||
end
|
||||
|
||||
if (in_vsync_reg == 1 && in_vsync == 0) begin
|
||||
win_vsync_ctr <= 0;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
/* Payload extractor */
|
||||
reg [23:0] in_pxd_last;
|
||||
always @(posedge clk) in_pxd_last <= rst ? 0 : in_pxd;
|
||||
|
||||
assign out_data_en = (matcher_state == ST_MAT_DATA);
|
||||
assign out_data = out_data_en ? in_pxd_last : 0;
|
||||
|
||||
/* Compositor */
|
||||
assign out_pxd = (win_hsync_int) ? in_pxd_reg : win_pxd;
|
||||
endmodule
|
||||
|
|
|
|||
|
|
@ -35,14 +35,14 @@ module window_matcher_tb();
|
|||
wire win_hsync;
|
||||
wire win_vsync;
|
||||
wire win_blank;
|
||||
|
||||
wire win_locked;
|
||||
wire [11:0] win_w;
|
||||
wire [11:0] win_h;
|
||||
|
||||
wire out_data_en;
|
||||
wire out_data_valid;
|
||||
wire [23:0] out_data;
|
||||
|
||||
wire pattern_locked;
|
||||
wire [11:0] pattern_w;
|
||||
wire [11:0] pattern_h;
|
||||
|
||||
localparam period = 4;
|
||||
|
||||
|
|
@ -89,14 +89,17 @@ module window_matcher_tb();
|
|||
.win_hsync(win_hsync),
|
||||
.win_vsync(win_vsync),
|
||||
.win_blank(win_blank),
|
||||
.win_locked(win_locked),
|
||||
.win_w(win_w),
|
||||
.win_h(win_h),
|
||||
|
||||
.out_data_en(out_data_en),
|
||||
.out_data_valid(out_data_valid),
|
||||
.out_data(out_data),
|
||||
|
||||
.pattern_locked(pattern_locked),
|
||||
.pattern_w(pattern_w),
|
||||
.pattern_h(pattern_h)
|
||||
|
||||
.win_red(8'haa),
|
||||
.win_green(8'haa),
|
||||
.win_blue(8'haa)
|
||||
);
|
||||
|
||||
endmodule
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "parental-cruise",
|
||||
"id": "peaceful-dream",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Window Matcher Testcase Generator"
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 67,
|
||||
"id": "leading-attachment",
|
||||
"id": "sustained-reservoir",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 93,
|
||||
"id": "involved-palmer",
|
||||
"id": "modular-partnership",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
@ -121,7 +121,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 87,
|
||||
"id": "enhanced-method",
|
||||
"id": "yellow-affiliate",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -149,7 +149,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 94,
|
||||
"id": "bibliographic-stockholm",
|
||||
"id": "quick-proposition",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
@ -173,7 +173,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 95,
|
||||
"id": "decent-offering",
|
||||
"id": "usual-flash",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -243,7 +243,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 54,
|
||||
"id": "together-tiger",
|
||||
"id": "surrounded-devon",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
@ -264,8 +264,8 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 73,
|
||||
"id": "executive-storage",
|
||||
"execution_count": 96,
|
||||
"id": "listed-addition",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -314,8 +314,8 @@
|
|||
" \n",
|
||||
" if (!(win_hsync == 0)) $finish;\n",
|
||||
" if (!(win_vsync == 0)) $finish;\n",
|
||||
" if (!(in_blank == 1 || pattern_w == 0)) $finish;\n",
|
||||
" if (!(in_blank == 1 || pattern_h == 0)) $finish;\n",
|
||||
" if (!(in_blank == 1 || win_w == 0)) $finish;\n",
|
||||
" if (!(in_blank == 1 || win_h == 0)) $finish;\n",
|
||||
" if (!(!out_data_valid || out_data_en)) $finish;\n",
|
||||
" if (read_pos > 1) begin\n",
|
||||
" if (!(out_data_valid == ( win_hsync_exp_last && ~win_header_last))) $finish;\n",
|
||||
|
|
@ -341,10 +341,10 @@
|
|||
" @(posedge clk);\n",
|
||||
"end\n",
|
||||
"\n",
|
||||
"if (!(pattern_locked == {{(win_w > 0)|int}})) $finish;\n",
|
||||
"if (!(win_locked == {{(win_w > 0)|int}})) $finish;\n",
|
||||
"\n",
|
||||
"if (!(pattern_w == {{win_w}})) $finish;\n",
|
||||
"if (!(pattern_h == {{win_h}})) $finish;\n",
|
||||
"if (!(win_w == {{win_w}})) $finish;\n",
|
||||
"if (!(win_h == {{win_h}})) $finish;\n",
|
||||
"\n",
|
||||
"for (read_pos=0; read_pos<{{fb_len}}; read_pos=read_pos+1) begin\n",
|
||||
" if (read_pos > 0) begin\n",
|
||||
|
|
@ -364,9 +364,9 @@
|
|||
" @(posedge clk);\n",
|
||||
"end\n",
|
||||
"\n",
|
||||
"if (!(pattern_locked == 0)) $finish;\n",
|
||||
"if (!(pattern_w == 0)) $finish;\n",
|
||||
"if (!(pattern_h == 0)) $finish;\n",
|
||||
"if (!(win_locked == 0)) $finish;\n",
|
||||
"if (!(win_w == 0)) $finish;\n",
|
||||
"if (!(win_h == 0)) $finish;\n",
|
||||
"\n",
|
||||
"/* End of generated test case {{name}} */\n",
|
||||
"'''\n",
|
||||
|
|
@ -390,7 +390,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"id": "naughty-kitchen",
|
||||
"id": "protected-bronze",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
@ -402,7 +402,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"id": "exposed-paste",
|
||||
"id": "unknown-framing",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -425,7 +425,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"id": "digital-carnival",
|
||||
"id": "political-blink",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -448,7 +448,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"id": "obvious-diagnosis",
|
||||
"id": "intelligent-locator",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -486,7 +486,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"id": "conservative-album",
|
||||
"id": "breeding-representation",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -526,7 +526,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"id": "excessive-equality",
|
||||
"id": "duplicate-riverside",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -566,7 +566,7 @@
|
|||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"id": "cheap-charleston",
|
||||
"id": "homeless-posting",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -11,272 +11,233 @@
|
|||
</db_ref>
|
||||
</db_ref_list>
|
||||
<zoom_setting>
|
||||
<ZoomStartTime time="1578610166fs"></ZoomStartTime>
|
||||
<ZoomEndTime time="1579130767fs"></ZoomEndTime>
|
||||
<Cursor1Time time="1579044000fs"></Cursor1Time>
|
||||
<ZoomStartTime time="379298750fs"></ZoomStartTime>
|
||||
<ZoomEndTime time="379559451fs"></ZoomEndTime>
|
||||
<Cursor1Time time="379516000fs"></Cursor1Time>
|
||||
</zoom_setting>
|
||||
<column_width_setting>
|
||||
<NameColumnWidth column_width="175"></NameColumnWidth>
|
||||
<ValueColumnWidth column_width="170"></ValueColumnWidth>
|
||||
<ValueColumnWidth column_width="166"></ValueColumnWidth>
|
||||
</column_width_setting>
|
||||
<WVObjectSize size="56" />
|
||||
<wvobject fp_name="/window_matcher_tb/clk" type="logic">
|
||||
<WVObjectSize size="50" />
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/clk" type="logic">
|
||||
<obj_property name="ElementShortName">clk</obj_property>
|
||||
<obj_property name="ObjectShortName">clk</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/rst" type="logic">
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/rst" type="logic">
|
||||
<obj_property name="ElementShortName">rst</obj_property>
|
||||
<obj_property name="ObjectShortName">rst</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/in_blank" type="logic">
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_blank" type="logic">
|
||||
<obj_property name="ElementShortName">in_blank</obj_property>
|
||||
<obj_property name="ObjectShortName">in_blank</obj_property>
|
||||
<obj_property name="CustomSignalColor">#00FFFF</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/in_hsync" type="logic">
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_hsync" type="logic">
|
||||
<obj_property name="ElementShortName">in_hsync</obj_property>
|
||||
<obj_property name="ObjectShortName">in_hsync</obj_property>
|
||||
<obj_property name="CustomSignalColor">#00FFFF</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/in_vsync" type="logic">
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_vsync" type="logic">
|
||||
<obj_property name="ElementShortName">in_vsync</obj_property>
|
||||
<obj_property name="ObjectShortName">in_vsync</obj_property>
|
||||
<obj_property name="CustomSignalColor">#00FFFF</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/in_red" type="array">
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_red" type="array">
|
||||
<obj_property name="ElementShortName">in_red[7:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_red[7:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/in_green" type="array">
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_green" type="array">
|
||||
<obj_property name="ElementShortName">in_green[7:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_green[7:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/in_blue" type="array">
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_blue" type="array">
|
||||
<obj_property name="ElementShortName">in_blue[7:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_blue[7:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_hsync" type="logic">
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/out_hsync" type="logic">
|
||||
<obj_property name="ElementShortName">out_hsync</obj_property>
|
||||
<obj_property name="ObjectShortName">out_hsync</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/out_vsync" type="logic">
|
||||
<obj_property name="ElementShortName">out_vsync</obj_property>
|
||||
<obj_property name="ObjectShortName">out_vsync</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/out_red" type="array">
|
||||
<obj_property name="ElementShortName">out_red[7:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">out_red[7:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/out_green" type="array">
|
||||
<obj_property name="ElementShortName">out_green[7:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">out_green[7:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/out_blue" type="array">
|
||||
<obj_property name="ElementShortName">out_blue[7:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">out_blue[7:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_hsync" type="logic">
|
||||
<obj_property name="ElementShortName">win_hsync</obj_property>
|
||||
<obj_property name="ObjectShortName">win_hsync</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_vsync" type="logic">
|
||||
<obj_property name="ElementShortName">win_vsync</obj_property>
|
||||
<obj_property name="ObjectShortName">win_vsync</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_blank" type="logic">
|
||||
<obj_property name="ElementShortName">win_blank</obj_property>
|
||||
<obj_property name="ObjectShortName">win_blank</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/out_data_en" type="logic">
|
||||
<obj_property name="ElementShortName">out_data_en</obj_property>
|
||||
<obj_property name="ObjectShortName">out_data_en</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFFF00</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/out_data_valid" type="logic">
|
||||
<obj_property name="ElementShortName">out_data_valid</obj_property>
|
||||
<obj_property name="ObjectShortName">out_data_valid</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFFF00</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/out_data" type="array">
|
||||
<obj_property name="ElementShortName">out_data[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">out_data[23:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFFF00</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/pattern_w" type="array">
|
||||
<obj_property name="ElementShortName">pattern_w[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_w[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/pattern_h" type="array">
|
||||
<obj_property name="ElementShortName">pattern_h[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_h[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/read_pos" type="array">
|
||||
<obj_property name="ElementShortName">read_pos[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">read_pos[31:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/period" type="array">
|
||||
<obj_property name="ElementShortName">period[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">period[31:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/expected_data" type="array">
|
||||
<obj_property name="ElementShortName">expected_data[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">expected_data[23:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/pattern_w" type="array">
|
||||
<obj_property name="ElementShortName">pattern_w[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_w[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/pattern_h" type="array">
|
||||
<obj_property name="ElementShortName">pattern_h[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_h[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/cur_x" type="array">
|
||||
<obj_property name="ElementShortName">cur_x[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">cur_x[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/cur_y" type="array">
|
||||
<obj_property name="ElementShortName">cur_y[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">cur_y[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/cur_x_sr" type="array">
|
||||
<obj_property name="ElementShortName">cur_x_sr[3:0][11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">cur_x_sr[3:0][11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
<obj_property name="isExpanded"></obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/marker_x" type="array">
|
||||
<obj_property name="ElementShortName">marker_x[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">marker_x[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/marker_y" type="array">
|
||||
<obj_property name="ElementShortName">marker_y[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">marker_y[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/rx_x" type="array">
|
||||
<obj_property name="ElementShortName">rx_x[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">rx_x[11:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/rx_y" type="array">
|
||||
<obj_property name="ElementShortName">rx_y[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">rx_y[11:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_pxd" type="array">
|
||||
<obj_property name="ElementShortName">in_pxd[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_pxd[23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_pxd_match_sr" type="array">
|
||||
<obj_property name="ElementShortName">in_pxd_match_sr[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_pxd_match_sr[11:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_pxd_match" type="array">
|
||||
<obj_property name="ElementShortName">in_pxd_match[3:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_pxd_match[3:0]</obj_property>
|
||||
<obj_property name="isExpanded"></obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/last_hsync" type="logic">
|
||||
<obj_property name="ElementShortName">last_hsync</obj_property>
|
||||
<obj_property name="ObjectShortName">last_hsync</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/last_vsync" type="logic">
|
||||
<obj_property name="ElementShortName">last_vsync</obj_property>
|
||||
<obj_property name="ObjectShortName">last_vsync</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_pxd_pattern_match" type="logic">
|
||||
<obj_property name="ElementShortName">in_pxd_pattern_match</obj_property>
|
||||
<obj_property name="ObjectShortName">in_pxd_pattern_match</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/pattern_found" type="logic">
|
||||
<obj_property name="ElementShortName">pattern_found</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_found</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/pattern_locked" type="logic">
|
||||
<obj_property name="ElementShortName">pattern_locked</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_locked</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/pattern_rx" type="logic">
|
||||
<obj_property name="ElementShortName">pattern_rx</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_rx</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/pattern_meta_rx" type="logic">
|
||||
<obj_property name="ElementShortName">pattern_meta_rx</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_meta_rx</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/pattern_data_rx" type="logic">
|
||||
<obj_property name="ElementShortName">pattern_data_rx</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_data_rx</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_hsync_int" type="logic">
|
||||
<obj_property name="ElementShortName">win_hsync_int</obj_property>
|
||||
<obj_property name="ObjectShortName">win_hsync_int</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_vsync_int" type="logic">
|
||||
<obj_property name="ElementShortName">win_vsync_int</obj_property>
|
||||
<obj_property name="ObjectShortName">win_vsync_int</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/end_x" type="array">
|
||||
<obj_property name="ElementShortName">end_x[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">end_x[11:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/end_y" type="array">
|
||||
<obj_property name="ElementShortName">end_y[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">end_y[11:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/pattern_meta" type="array">
|
||||
<obj_property name="ElementShortName">pattern_meta[3:0][23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">pattern_meta[3:0][23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/PATTERN_0" type="array">
|
||||
<obj_property name="ElementShortName">PATTERN_0[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">PATTERN_0[23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/PATTERN_1" type="array">
|
||||
<obj_property name="ElementShortName">PATTERN_1[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">PATTERN_1[23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/PATTERN_2" type="array">
|
||||
<obj_property name="ElementShortName">PATTERN_2[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">PATTERN_2[23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/PATTERN_3" type="array">
|
||||
<obj_property name="ElementShortName">PATTERN_3[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">PATTERN_3[23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/testcase_id" type="array">
|
||||
<obj_property name="ElementShortName">testcase_id[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">testcase_id[31:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#008000</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_hsync_exp" type="logic">
|
||||
<obj_property name="ElementShortName">win_hsync_exp</obj_property>
|
||||
<obj_property name="ObjectShortName">win_hsync_exp</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_vsync" type="logic">
|
||||
<obj_property name="ElementShortName">win_vsync</obj_property>
|
||||
<obj_property name="ObjectShortName">win_vsync</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFFF00</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_vsync_int" type="logic">
|
||||
<obj_property name="ElementShortName">win_vsync_int</obj_property>
|
||||
<obj_property name="ObjectShortName">win_vsync_int</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_vsync_exp" type="logic">
|
||||
<obj_property name="ElementShortName">win_vsync_exp</obj_property>
|
||||
<obj_property name="ObjectShortName">win_vsync_exp</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_header" type="logic">
|
||||
<obj_property name="ElementShortName">win_header</obj_property>
|
||||
<obj_property name="ObjectShortName">win_header</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/out_data_en" type="logic">
|
||||
<obj_property name="ElementShortName">out_data_en</obj_property>
|
||||
<obj_property name="ObjectShortName">out_data_en</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFA500</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_hsync_exp_last" type="logic">
|
||||
<obj_property name="ElementShortName">win_hsync_exp_last</obj_property>
|
||||
<obj_property name="ObjectShortName">win_hsync_exp_last</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/out_data_valid" type="logic">
|
||||
<obj_property name="ElementShortName">out_data_valid</obj_property>
|
||||
<obj_property name="ObjectShortName">out_data_valid</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFA500</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_vsync_exp_last" type="logic">
|
||||
<obj_property name="ElementShortName">win_vsync_exp_last</obj_property>
|
||||
<obj_property name="ObjectShortName">win_vsync_exp_last</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/out_data" type="array">
|
||||
<obj_property name="ElementShortName">out_data[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">out_data[23:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFA500</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_header_last" type="logic">
|
||||
<obj_property name="ElementShortName">win_header_last</obj_property>
|
||||
<obj_property name="ObjectShortName">win_header_last</obj_property>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_pxd" type="array">
|
||||
<obj_property name="ElementShortName">in_pxd[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_pxd[23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_pxd" type="array">
|
||||
<obj_property name="ElementShortName">win_pxd[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">win_pxd[23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/out_pxd" type="array">
|
||||
<obj_property name="ElementShortName">out_pxd[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">out_pxd[23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_pxd_match" type="array">
|
||||
<obj_property name="ElementShortName">in_pxd_match[3:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_pxd_match[3:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_pxd_match_sr" type="array">
|
||||
<obj_property name="ElementShortName">in_pxd_match_sr[2:0][3:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_pxd_match_sr[2:0][3:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_pxd_pattern_match" type="logic">
|
||||
<obj_property name="ElementShortName">in_pxd_pattern_match</obj_property>
|
||||
<obj_property name="ObjectShortName">in_pxd_pattern_match</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/scan_x" type="array">
|
||||
<obj_property name="ElementShortName">scan_x[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">scan_x[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/scan_y" type="array">
|
||||
<obj_property name="ElementShortName">scan_y[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">scan_y[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/window_x" type="array">
|
||||
<obj_property name="ElementShortName">window_x[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">window_x[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
<obj_property name="CustomSignalColor">#00FF7F</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/window_y" type="array">
|
||||
<obj_property name="ElementShortName">window_y[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">window_y[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
<obj_property name="CustomSignalColor">#00FF7F</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_w_int" type="array">
|
||||
<obj_property name="ElementShortName">win_w_int[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">win_w_int[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_h_int" type="array">
|
||||
<obj_property name="ElementShortName">win_h_int[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">win_h_int[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_w" type="array">
|
||||
<obj_property name="ElementShortName">win_w[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">win_w[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_h" type="array">
|
||||
<obj_property name="ElementShortName">win_h[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">win_h[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_hsync_ctr" type="array">
|
||||
<obj_property name="ElementShortName">win_hsync_ctr[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">win_hsync_ctr[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/win_vsync_ctr" type="array">
|
||||
<obj_property name="ElementShortName">win_vsync_ctr[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">win_vsync_ctr[11:0]</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/matcher_state" type="array">
|
||||
<obj_property name="ElementShortName">matcher_state[5:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">matcher_state[5:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/matched" type="logic">
|
||||
<obj_property name="ElementShortName">matched</obj_property>
|
||||
<obj_property name="ObjectShortName">matched</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/scan_x_reg" type="array">
|
||||
<obj_property name="ElementShortName">scan_x_reg[3:0][11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">scan_x_reg[3:0][11:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_hsync_reg" type="logic">
|
||||
<obj_property name="ElementShortName">in_hsync_reg</obj_property>
|
||||
<obj_property name="ObjectShortName">in_hsync_reg</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_vsync_reg" type="logic">
|
||||
<obj_property name="ElementShortName">in_vsync_reg</obj_property>
|
||||
<obj_property name="ObjectShortName">in_vsync_reg</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/in_pxd_reg" type="array">
|
||||
<obj_property name="ElementShortName">in_pxd_reg[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_pxd_reg[23:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/window_matcher_i/match_locked" type="logic">
|
||||
<obj_property name="ElementShortName">match_locked</obj_property>
|
||||
<obj_property name="ObjectShortName">match_locked</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/testcase_id" type="array">
|
||||
<obj_property name="ElementShortName">testcase_id[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">testcase_id[31:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/expected_data" type="array">
|
||||
<obj_property name="ElementShortName">expected_data[23:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">expected_data[23:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
|
|
@ -286,4 +247,16 @@
|
|||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/read_pos" type="array">
|
||||
<obj_property name="ElementShortName">read_pos[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">read_pos[31:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/window_matcher_tb/win_header" type="logic">
|
||||
<obj_property name="ElementShortName">win_header</obj_property>
|
||||
<obj_property name="ObjectShortName">win_header</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
</wave_config>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue