aboutsummaryrefslogtreecommitdiff
path: root/basys3
diff options
context:
space:
mode:
Diffstat (limited to 'basys3')
-rw-r--r--basys3/basys3.srcs/ppu.vhd32
-rw-r--r--basys3/basys3.srcs/ppu_dispctl.vhd14
-rw-r--r--basys3/basys3.srcs/ppu_pceg.vhd29
-rw-r--r--basys3/basys3.srcs/ppu_sprite_bg.vhd2
-rw-r--r--basys3/basys3.srcs/ppu_sprite_fg.vhd23
-rw-r--r--basys3/basys3.srcs/sources_1/ip/ppu_bam/ppu_bam.xci36
-rw-r--r--basys3/basys3.srcs/sources_1/ip/ppu_dispctl_slbuf/ppu_dispctl_slbuf.xci32
-rw-r--r--basys3/basys3.srcs/sources_1/ip/ppu_tmm/ppu_tmm.xci32
-rw-r--r--basys3/basys3.srcs/top.vhd3
-rw-r--r--basys3/basys3.xpr22
-rw-r--r--basys3/ppu_tb_behav.wcfg234
11 files changed, 260 insertions, 199 deletions
diff --git a/basys3/basys3.srcs/ppu.vhd b/basys3/basys3.srcs/ppu.vhd
index e6f959d..3f92a7e 100644
--- a/basys3/basys3.srcs/ppu.vhd
+++ b/basys3/basys3.srcs/ppu.vhd
@@ -24,8 +24,7 @@ architecture Behavioral of ppu is
SPRITE_BG : out ppu_sprite_bg_pl_state := PL_BG_IDLE; -- sprite info fetch + sprite pixel fetch
SPRITE_FG : out ppu_sprite_fg_pl_state := PL_FG_IDLE; -- sprite pixel fetch
SPRITE_FG_HIT : out ppu_sprite_fg_hit_pl_state := PL_HIT_INACCURATE; -- foreground hit accuracy
- DONE : out std_logic; -- last pipeline stage done
- READY : out std_logic); -- rgb buffer propagation ready
+ DISPCTL_BWEN : out std_logic := '0'); -- display controller scanline buffer write enable
end component;
component ppu_addr_dec port( -- address decoder
WEN : in std_logic; -- EXT write enable
@@ -47,11 +46,8 @@ architecture Behavioral of ppu is
addra : in std_logic_vector(PPU_BAM_ADDR_WIDTH-1 downto 0);
dina : in std_logic_vector(PPU_BAM_DATA_WIDTH-1 downto 0);
clkb : in std_logic;
- rstb : in std_logic;
addrb : in std_logic_vector(PPU_BAM_ADDR_WIDTH-1 downto 0);
- doutb : out std_logic_vector(PPU_BAM_DATA_WIDTH-1 downto 0);
- rsta_busy : out std_logic;
- rstb_busy : out std_logic);
+ doutb : out std_logic_vector(PPU_BAM_DATA_WIDTH-1 downto 0));
end component;
component ppu_tmm port( -- TMM block memory
clka : in std_logic;
@@ -59,11 +55,8 @@ architecture Behavioral of ppu is
addra : in std_logic_vector(PPU_TMM_ADDR_WIDTH-1 downto 0);
dina : in std_logic_vector(PPU_TMM_DATA_WIDTH-1 downto 0);
clkb : in std_logic;
- rstb : in std_logic;
addrb : in std_logic_vector(PPU_TMM_ADDR_WIDTH-1 downto 0);
- doutb : out std_logic_vector(PPU_TMM_DATA_WIDTH-1 downto 0);
- rsta_busy : out std_logic;
- rstb_busy : out std_logic);
+ doutb : out std_logic_vector(PPU_TMM_DATA_WIDTH-1 downto 0));
end component;
component ppu_aux port(
CLK : in std_logic; -- system clock
@@ -155,7 +148,7 @@ architecture Behavioral of ppu is
X : out std_logic_vector(PPU_POS_H_WIDTH-1 downto 0); -- tiny screen pixel x
Y : out std_logic_vector(PPU_POS_V_WIDTH-1 downto 0); -- tiny screen pixel y
RI,GI,BI : in std_logic_vector(PPU_COLOR_OUTPUT_DEPTH-1 downto 0); -- color in
- PREADY : in std_logic; -- current pixel ready (pixel color is stable)
+ BWEN : in std_logic; -- scanline buffer write enable
RO,GO,BO : out std_logic_vector(PPU_COLOR_OUTPUT_DEPTH-1 downto 0); -- VGA color out
NVSYNC, NHSYNC : out std_logic; -- VGA sync out
@@ -165,10 +158,10 @@ architecture Behavioral of ppu is
-- signals
signal SYSCLK, SYSRST : std_logic; -- system clock and reset
- signal PL_DONE, PL_READY : std_logic; -- pipeline stages
signal PL_SPRITE_BG : ppu_sprite_bg_pl_state;
signal PL_SPRITE_FG : ppu_sprite_fg_pl_state;
signal PL_SPRITE_FG_HIT : ppu_sprite_fg_hit_pl_state;
+ signal PL_DISPCTL_BWEN : std_logic;
signal TMM_WEN, BAM_WEN, FAM_WEN, PAL_WEN, AUX_WEN : std_logic;
signal TMM_W_ADDR, TMM_R_ADDR : std_logic_vector(PPU_TMM_ADDR_WIDTH-1 downto 0); -- read/write TMM addr (dual port)
signal BAM_W_ADDR, BAM_R_ADDR : std_logic_vector(PPU_BAM_ADDR_WIDTH-1 downto 0); -- read/write BAM addr (dual port)
@@ -206,8 +199,7 @@ begin
SPRITE_FG => PL_SPRITE_FG,
SPRITE_BG => PL_SPRITE_BG,
SPRITE_FG_HIT => PL_SPRITE_FG_HIT,
- DONE => PL_DONE,
- READY => PL_READY);
+ DISPCTL_BWEN => PL_DISPCTL_BWEN);
address_decoder : component ppu_addr_dec port map(
WEN => WEN,
@@ -229,22 +221,16 @@ begin
addra => BAM_W_ADDR,
dina => DATA(PPU_BAM_DATA_WIDTH-1 downto 0),
clkb => SYSCLK,
- rstb => SYSRST,
addrb => BAM_R_ADDR,
- doutb => BAM_R_DATA,
- rsta_busy => open,
- rstb_busy => open);
+ doutb => BAM_R_DATA);
tilemap_memory : component ppu_tmm port map(
clka => SYSCLK,
wea => (others => TMM_WEN),
addra => TMM_W_ADDR,
dina => DATA(PPU_TMM_DATA_WIDTH-1 downto 0),
clkb => SYSCLK,
- rstb => SYSRST,
addrb => TMM_R_ADDR,
- doutb => TMM_R_DATA,
- rsta_busy => open,
- rstb_busy => open);
+ doutb => TMM_R_DATA);
aux : component ppu_aux port map(
CLK => SYSCLK,
@@ -328,7 +314,7 @@ begin
display_controller : component ppu_dispctl port map(
SYSCLK => SYSCLK,
RESET => SYSRST,
- PREADY => PL_READY,
+ BWEN => PL_DISPCTL_BWEN,
X => X,
Y => Y,
RI => UR,
diff --git a/basys3/basys3.srcs/ppu_dispctl.vhd b/basys3/basys3.srcs/ppu_dispctl.vhd
index ac8fbcf..1bff09d 100644
--- a/basys3/basys3.srcs/ppu_dispctl.vhd
+++ b/basys3/basys3.srcs/ppu_dispctl.vhd
@@ -11,7 +11,7 @@ entity ppu_dispctl is port(
X : out std_logic_vector(PPU_POS_H_WIDTH-1 downto 0); -- tiny screen pixel x
Y : out std_logic_vector(PPU_POS_V_WIDTH-1 downto 0); -- tiny screen pixel y
RI,GI,BI : in std_logic_vector(PPU_COLOR_OUTPUT_DEPTH-1 downto 0); -- color in
- PREADY : in std_logic; -- current pixel ready (pixel color is stable)
+ BWEN : in std_logic; -- scanline buffer write enable
RO,GO,BO : out std_logic_vector(PPU_COLOR_OUTPUT_DEPTH-1 downto 0); -- VGA color out
NVSYNC, NHSYNC : out std_logic; -- VGA sync out
@@ -32,11 +32,8 @@ architecture Behavioral of ppu_dispctl is
addra : in std_logic_vector(PPU_DISPCTL_SLBUF_ADDR_WIDTH-1 downto 0);
dina : in std_logic_vector(PPU_RGB_COLOR_OUTPUT_DEPTH-1 downto 0);
clkb : in std_logic;
- rstb : in std_logic;
addrb : in std_logic_vector(PPU_DISPCTL_SLBUF_ADDR_WIDTH-1 downto 0);
- doutb : out std_logic_vector(PPU_RGB_COLOR_OUTPUT_DEPTH-1 downto 0);
- rsta_busy : out std_logic;
- rstb_busy : out std_logic);
+ doutb : out std_logic_vector(PPU_RGB_COLOR_OUTPUT_DEPTH-1 downto 0));
end component;
signal NPIXCLK, TPIXCLK : std_logic;
signal NHCOUNT, NVCOUNT : unsigned(PPU_VGA_SIGNAL_PIXEL_WIDTH-1 downto 0) := (others => '0');
@@ -144,15 +141,12 @@ begin
scanline_buffer : component ppu_dispctl_slbuf port map(
clka => SYSCLK,
- wea => (others => PREADY),
+ wea => (others => BWEN),
addra => ADDR_I,
dina => DATA_I,
clkb => SYSCLK,
- rstb => RESET,
addrb => ADDR_O,
- doutb => DATA_O,
- rsta_busy => open,
- rstb_busy => open);
+ doutb => DATA_O);
pixel_clock: component ppu_dispctl_pixclk port map(
sysclk => SYSCLK,
diff --git a/basys3/basys3.srcs/ppu_pceg.vhd b/basys3/basys3.srcs/ppu_pceg.vhd
index e3c16e8..f87c60d 100644
--- a/basys3/basys3.srcs/ppu_pceg.vhd
+++ b/basys3/basys3.srcs/ppu_pceg.vhd
@@ -9,8 +9,7 @@ entity ppu_pceg is port(
SPRITE_BG : out ppu_sprite_bg_pl_state := PL_BG_IDLE; -- sprite info fetch + sprite pixel fetch
SPRITE_FG : out ppu_sprite_fg_pl_state := PL_FG_IDLE; -- sprite pixel fetch
SPRITE_FG_HIT : out ppu_sprite_fg_hit_pl_state := PL_HIT_INACCURATE; -- foreground hit accuracy
- DONE : out std_logic; -- last pipeline stage done
- READY : out std_logic); -- rgb buffer propagation ready
+ DISPCTL_BWEN : out std_logic := '0'); -- display controller scanline buffer write enable
end ppu_pceg;
architecture Behavioral of ppu_pceg is
@@ -24,38 +23,32 @@ begin
SPRITE_BG <= PL_BG_IDLE;
SPRITE_FG <= PL_FG_IDLE;
- DONE <= '0';
- READY <= '0';
+ DISPCTL_BWEN <= '0';
elsif falling_edge(CLK) then
case CLK_IDX is
when 0 =>
- DONE <= '0';
- READY <= '0';
+ DISPCTL_BWEN <= '0';
SPRITE_BG <= PL_BG_IDLE;
SPRITE_FG <= PL_FG_IDLE;
SPRITE_FG_HIT <= PL_HIT_INACCURATE;
when 1 =>
SPRITE_BG <= PL_BG_BAM_ADDR;
SPRITE_FG <= PL_FG_TMM_ADDR;
- when 3 =>
- SPRITE_BG <= PL_BG_IDLE;
- SPRITE_FG <= PL_FG_IDLE;
- when 4 =>
+ when 2 =>
SPRITE_BG <= PL_BG_BAM_DATA;
SPRITE_FG <= PL_FG_TMM_DATA;
- when 5 =>
+ when 3 =>
SPRITE_BG <= PL_BG_TMM_ADDR;
SPRITE_FG <= PL_FG_IDLE;
SPRITE_FG_HIT <= PL_HIT_ACCURATE;
- when 6 => null;
- when 7 =>
- SPRITE_BG <= PL_BG_IDLE;
- when 8 =>
- DONE <= '1';
+ when 4 =>
SPRITE_BG <= PL_BG_TMM_DATA;
- when 9 =>
+ when 5 =>
SPRITE_BG <= PL_BG_IDLE;
- READY <= '1';
+ when 6 =>
+ DISPCTL_BWEN <= '1';
+ when 7 =>
+ DISPCTL_BWEN <= '0';
when others => null;
end case;
diff --git a/basys3/basys3.srcs/ppu_sprite_bg.vhd b/basys3/basys3.srcs/ppu_sprite_bg.vhd
index ef8ffc8..9b6643e 100644
--- a/basys3/basys3.srcs/ppu_sprite_bg.vhd
+++ b/basys3/basys3.srcs/ppu_sprite_bg.vhd
@@ -114,7 +114,7 @@ begin
R_BAM_DATA <= (others => '0');
R_TMM_ADDR <= (others => '0');
R_TMM_DATA <= (others => '0');
- elsif rising_edge(CLK) then
+ elsif falling_edge(CLK) then
BAM_ADDR_EN <= true when PL_STAGE = PL_BG_BAM_ADDR else false;
TMM_ADDR_EN <= true when PL_STAGE = PL_BG_TMM_ADDR else false;
-- R_BAM_ADDR <= T_BAM_ADDR;
diff --git a/basys3/basys3.srcs/ppu_sprite_fg.vhd b/basys3/basys3.srcs/ppu_sprite_fg.vhd
index d6ffe16..9aabd88 100644
--- a/basys3/basys3.srcs/ppu_sprite_fg.vhd
+++ b/basys3/basys3.srcs/ppu_sprite_fg.vhd
@@ -83,6 +83,9 @@ architecture Behavioral of ppu_sprite_fg is
signal TILEMAP_WORD_OFFSET : integer := 0; -- word offset from tile start address in TMM
signal TMM_DATA_COL_IDX : std_logic_vector(PPU_PALETTE_COLOR_WIDTH-1 downto 0); -- color of palette
+
+ signal PL_STAGE_NOW : ppu_sprite_fg_pl_state;
+ signal PL_HIT_NOW : ppu_sprite_fg_hit_pl_state;
begin
-- FAM memory
FAM : component er_ram
@@ -134,10 +137,10 @@ begin
inaccurate_occlusion_shims: if IDX >= PPU_ACCURATE_FG_SPRITE_COUNT generate
-- state machine for synchronizing pipeline stages
begin
- HIT <= (SPRITE_ACTIVE) when PL_HIT = PL_HIT_INACCURATE else
- (SPRITE_ACTIVE and (or TMM_DATA_COL_IDX)) when PL_HIT = PL_HIT_ACCURATE else '0';
+ HIT <= (SPRITE_ACTIVE) when PL_HIT_NOW = PL_HIT_INACCURATE else
+ (SPRITE_ACTIVE and (or TMM_DATA_COL_IDX)) when PL_HIT_NOW = PL_HIT_ACCURATE else '0';
-- only fetch if OE is high, and during the second pipeline stage
- TMM_ADDR <= R_TMM_ADDR when OE = '1' and PL_STAGE = PL_FG_TMM_ADDR else (others => 'Z');
+ TMM_ADDR <= R_TMM_ADDR when OE = '1' and PL_STAGE_NOW = PL_FG_TMM_ADDR else (others => 'Z');
T_TMM_ADDR <= std_logic_vector(TILEMAP_WORD + to_unsigned(TILEMAP_WORD_OFFSET, PPU_TMM_ADDR_WIDTH)); -- TMM address
-- TMM DATA
@@ -149,6 +152,16 @@ begin
R_TMM_DATA(14 downto 12) when 4,
(others => '0') when others;
+ -- rising edge clock process (buffer pipeline stage)
+ process(CLK, RESET)
+ begin
+ if rising_edge(CLK) then
+ PL_HIT_NOW <= PL_HIT;
+ PL_STAGE_NOW <= PL_STAGE;
+ end if;
+ end process;
+
+ -- falling edge clock process (read buffered pipeline stage)
process(CLK, RESET)
begin
if RESET = '1' then
@@ -157,8 +170,8 @@ begin
R_TMM_DATA <= (others => '0');
elsif OE = '0' then
null; -- don't read/write if current sprite is not the top sprite
- elsif rising_edge(CLK) then
- case PL_STAGE is
+ elsif falling_edge(CLK) then
+ case PL_STAGE_NOW is
when PL_FG_TMM_ADDR =>
R_TMM_ADDR <= T_TMM_ADDR;
when PL_FG_TMM_DATA =>
diff --git a/basys3/basys3.srcs/sources_1/ip/ppu_bam/ppu_bam.xci b/basys3/basys3.srcs/sources_1/ip/ppu_bam/ppu_bam.xci
index c188e32..2241667 100644
--- a/basys3/basys3.srcs/sources_1/ip/ppu_bam/ppu_bam.xci
+++ b/basys3/basys3.srcs/sources_1/ip/ppu_bam/ppu_bam.xci
@@ -14,7 +14,7 @@
"Use_AXI_ID": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"AXI_ID_Width": [ { "value": "4", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ],
"Memory_Type": [ { "value": "Simple_Dual_Port_RAM", "value_src": "user", "resolve_type": "user", "usage": "all" } ],
- "PRIM_type_to_Implement": [ { "value": "BRAM", "resolve_type": "user", "usage": "all" } ],
+ "PRIM_type_to_Implement": [ { "value": "BRAM", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Enable_32bit_Address": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"ecctype": [ { "value": "No_ECC", "resolve_type": "user", "usage": "all" } ],
"ECC": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
@@ -44,24 +44,24 @@
"Register_PortA_Output_of_Memory_Primitives": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Register_PortA_Output_of_Memory_Core": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Use_REGCEA_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
- "Register_PortB_Output_of_Memory_Primitives": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Register_PortB_Output_of_Memory_Primitives": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"Register_PortB_Output_of_Memory_Core": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Use_REGCEB_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Use_REGCEB_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"register_porta_input_of_softecc": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"register_portb_output_of_softecc": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Pipeline_Stages": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Load_Init_File": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"Coe_File": [ { "value": "no_coe_file_loaded", "resolve_type": "user", "enabled": false, "usage": "all" } ],
- "Fill_Remaining_Memory_Locations": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Remaining_Memory_Locations": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
+ "Fill_Remaining_Memory_Locations": [ { "value": "true", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Remaining_Memory_Locations": [ { "value": "0", "resolve_type": "user", "usage": "all" } ],
"Use_RSTA_Pin": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Reset_Memory_Latch_A": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Reset_Priority_A": [ { "value": "CE", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Output_Reset_Value_A": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
- "Use_RSTB_Pin": [ { "value": "true", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Reset_Memory_Latch_B": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Reset_Priority_B": [ { "value": "CE", "resolve_type": "user", "usage": "all" } ],
- "Output_Reset_Value_B": [ { "value": "0", "resolve_type": "user", "usage": "all" } ],
+ "Use_RSTB_Pin": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Reset_Memory_Latch_B": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
+ "Reset_Priority_B": [ { "value": "CE", "resolve_type": "user", "enabled": false, "usage": "all" } ],
+ "Output_Reset_Value_B": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Reset_Type": [ { "value": "SYNC", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Additional_Inputs_for_Power_Estimation": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"Port_A_Clock": [ { "value": "100", "resolve_type": "user", "format": "long", "usage": "all" } ],
@@ -76,7 +76,7 @@
"use_bram_block": [ { "value": "Stand_Alone", "resolve_type": "user", "usage": "all" } ],
"MEM_FILE": [ { "value": "no_mem_loaded", "resolve_type": "user", "usage": "all" } ],
"CTRL_ECC_ALGO": [ { "value": "NONE", "resolve_type": "user", "usage": "all" } ],
- "EN_SAFETY_CKT": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "EN_SAFETY_CKT": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"READ_LATENCY_A": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ],
"READ_LATENCY_B": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ]
},
@@ -99,7 +99,7 @@
"C_LOAD_INIT_FILE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_INIT_FILE_NAME": [ { "value": "no_coe_file_loaded", "resolve_type": "generated", "usage": "all" } ],
"C_INIT_FILE": [ { "value": "ppu_bam.mem", "resolve_type": "generated", "usage": "all" } ],
- "C_USE_DEFAULT_DATA": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_USE_DEFAULT_DATA": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_DEFAULT_DATA": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ],
"C_HAS_RSTA": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_RST_PRIORITY_A": [ { "value": "CE", "resolve_type": "generated", "usage": "all" } ],
@@ -115,7 +115,7 @@
"C_WRITE_DEPTH_A": [ { "value": "1200", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_READ_DEPTH_A": [ { "value": "1200", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_ADDRA_WIDTH": [ { "value": "11", "resolve_type": "generated", "format": "long", "usage": "all" } ],
- "C_HAS_RSTB": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_HAS_RSTB": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_RST_PRIORITY_B": [ { "value": "CE", "resolve_type": "generated", "usage": "all" } ],
"C_RSTRAM_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_INITB_VAL": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ],
@@ -130,7 +130,7 @@
"C_READ_DEPTH_B": [ { "value": "1200", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_ADDRB_WIDTH": [ { "value": "11", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_HAS_MEM_OUTPUT_REGS_A": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
- "C_HAS_MEM_OUTPUT_REGS_B": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_HAS_MEM_OUTPUT_REGS_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_HAS_MUX_OUTPUT_REGS_A": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_HAS_MUX_OUTPUT_REGS_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_MUX_PIPELINE_STAGES": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
@@ -151,7 +151,7 @@
"C_EN_RDADDRB_CHG": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_EN_DEEPSLEEP_PIN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_EN_SHUTDOWN_PIN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
- "C_EN_SAFETY_CKT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_EN_SAFETY_CKT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_DISABLE_WARN_BHV_RANGE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_COUNT_36K_BRAM": [ { "value": "1", "resolve_type": "generated", "usage": "all" } ],
"C_COUNT_18K_BRAM": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ],
@@ -190,11 +190,8 @@
"addra": [ { "direction": "in", "size_left": "10", "size_right": "0", "driver_value": "0" } ],
"dina": [ { "direction": "in", "size_left": "14", "size_right": "0", "driver_value": "0" } ],
"clkb": [ { "direction": "in", "driver_value": "0" } ],
- "rstb": [ { "direction": "in", "driver_value": "0" } ],
"addrb": [ { "direction": "in", "size_left": "10", "size_right": "0", "driver_value": "0" } ],
- "doutb": [ { "direction": "out", "size_left": "14", "size_right": "0" } ],
- "rsta_busy": [ { "direction": "out" } ],
- "rstb_busy": [ { "direction": "out" } ]
+ "doutb": [ { "direction": "out", "size_left": "14", "size_right": "0" } ]
},
"interfaces": {
"CLK.ACLK": {
@@ -255,8 +252,7 @@
"port_maps": {
"ADDR": [ { "physical_name": "addrb" } ],
"CLK": [ { "physical_name": "clkb" } ],
- "DOUT": [ { "physical_name": "doutb" } ],
- "RST": [ { "physical_name": "rstb" } ]
+ "DOUT": [ { "physical_name": "doutb" } ]
}
}
},
diff --git a/basys3/basys3.srcs/sources_1/ip/ppu_dispctl_slbuf/ppu_dispctl_slbuf.xci b/basys3/basys3.srcs/sources_1/ip/ppu_dispctl_slbuf/ppu_dispctl_slbuf.xci
index 22b53c3..2a0ddf1 100644
--- a/basys3/basys3.srcs/sources_1/ip/ppu_dispctl_slbuf/ppu_dispctl_slbuf.xci
+++ b/basys3/basys3.srcs/sources_1/ip/ppu_dispctl_slbuf/ppu_dispctl_slbuf.xci
@@ -14,7 +14,7 @@
"Use_AXI_ID": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"AXI_ID_Width": [ { "value": "4", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ],
"Memory_Type": [ { "value": "Simple_Dual_Port_RAM", "value_src": "user", "resolve_type": "user", "usage": "all" } ],
- "PRIM_type_to_Implement": [ { "value": "BRAM", "resolve_type": "user", "usage": "all" } ],
+ "PRIM_type_to_Implement": [ { "value": "BRAM", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Enable_32bit_Address": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"ecctype": [ { "value": "No_ECC", "resolve_type": "user", "usage": "all" } ],
"ECC": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
@@ -44,24 +44,24 @@
"Register_PortA_Output_of_Memory_Primitives": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Register_PortA_Output_of_Memory_Core": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Use_REGCEA_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
- "Register_PortB_Output_of_Memory_Primitives": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Register_PortB_Output_of_Memory_Primitives": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"Register_PortB_Output_of_Memory_Core": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Use_REGCEB_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Use_REGCEB_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"register_porta_input_of_softecc": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"register_portb_output_of_softecc": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Pipeline_Stages": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Load_Init_File": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"Coe_File": [ { "value": "no_coe_file_loaded", "resolve_type": "user", "enabled": false, "usage": "all" } ],
- "Fill_Remaining_Memory_Locations": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Fill_Remaining_Memory_Locations": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"Remaining_Memory_Locations": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Use_RSTA_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Reset_Memory_Latch_A": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Reset_Priority_A": [ { "value": "CE", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Output_Reset_Value_A": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
- "Use_RSTB_Pin": [ { "value": "true", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Reset_Memory_Latch_B": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Reset_Priority_B": [ { "value": "CE", "resolve_type": "user", "usage": "all" } ],
- "Output_Reset_Value_B": [ { "value": "0", "resolve_type": "user", "usage": "all" } ],
+ "Use_RSTB_Pin": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Reset_Memory_Latch_B": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
+ "Reset_Priority_B": [ { "value": "CE", "resolve_type": "user", "enabled": false, "usage": "all" } ],
+ "Output_Reset_Value_B": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Reset_Type": [ { "value": "SYNC", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Additional_Inputs_for_Power_Estimation": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"Port_A_Clock": [ { "value": "100", "resolve_type": "user", "format": "long", "usage": "all" } ],
@@ -76,7 +76,7 @@
"use_bram_block": [ { "value": "Stand_Alone", "resolve_type": "user", "usage": "all" } ],
"MEM_FILE": [ { "value": "no_mem_loaded", "resolve_type": "user", "usage": "all" } ],
"CTRL_ECC_ALGO": [ { "value": "NONE", "resolve_type": "user", "usage": "all" } ],
- "EN_SAFETY_CKT": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "EN_SAFETY_CKT": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"READ_LATENCY_A": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ],
"READ_LATENCY_B": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ]
},
@@ -115,7 +115,7 @@
"C_WRITE_DEPTH_A": [ { "value": "640", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_READ_DEPTH_A": [ { "value": "640", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_ADDRA_WIDTH": [ { "value": "10", "resolve_type": "generated", "format": "long", "usage": "all" } ],
- "C_HAS_RSTB": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_HAS_RSTB": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_RST_PRIORITY_B": [ { "value": "CE", "resolve_type": "generated", "usage": "all" } ],
"C_RSTRAM_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_INITB_VAL": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ],
@@ -130,7 +130,7 @@
"C_READ_DEPTH_B": [ { "value": "640", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_ADDRB_WIDTH": [ { "value": "10", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_HAS_MEM_OUTPUT_REGS_A": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
- "C_HAS_MEM_OUTPUT_REGS_B": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_HAS_MEM_OUTPUT_REGS_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_HAS_MUX_OUTPUT_REGS_A": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_HAS_MUX_OUTPUT_REGS_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_MUX_PIPELINE_STAGES": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
@@ -151,7 +151,7 @@
"C_EN_RDADDRB_CHG": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_EN_DEEPSLEEP_PIN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_EN_SHUTDOWN_PIN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
- "C_EN_SAFETY_CKT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_EN_SAFETY_CKT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_DISABLE_WARN_BHV_RANGE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_COUNT_36K_BRAM": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ],
"C_COUNT_18K_BRAM": [ { "value": "1", "resolve_type": "generated", "usage": "all" } ],
@@ -190,11 +190,8 @@
"addra": [ { "direction": "in", "size_left": "9", "size_right": "0", "driver_value": "0" } ],
"dina": [ { "direction": "in", "size_left": "11", "size_right": "0", "driver_value": "0" } ],
"clkb": [ { "direction": "in", "driver_value": "0" } ],
- "rstb": [ { "direction": "in", "driver_value": "0" } ],
"addrb": [ { "direction": "in", "size_left": "9", "size_right": "0", "driver_value": "0" } ],
- "doutb": [ { "direction": "out", "size_left": "11", "size_right": "0" } ],
- "rsta_busy": [ { "direction": "out" } ],
- "rstb_busy": [ { "direction": "out" } ]
+ "doutb": [ { "direction": "out", "size_left": "11", "size_right": "0" } ]
},
"interfaces": {
"CLK.ACLK": {
@@ -255,8 +252,7 @@
"port_maps": {
"ADDR": [ { "physical_name": "addrb" } ],
"CLK": [ { "physical_name": "clkb" } ],
- "DOUT": [ { "physical_name": "doutb" } ],
- "RST": [ { "physical_name": "rstb" } ]
+ "DOUT": [ { "physical_name": "doutb" } ]
}
}
},
diff --git a/basys3/basys3.srcs/sources_1/ip/ppu_tmm/ppu_tmm.xci b/basys3/basys3.srcs/sources_1/ip/ppu_tmm/ppu_tmm.xci
index e08ff96..1e10591 100644
--- a/basys3/basys3.srcs/sources_1/ip/ppu_tmm/ppu_tmm.xci
+++ b/basys3/basys3.srcs/sources_1/ip/ppu_tmm/ppu_tmm.xci
@@ -14,7 +14,7 @@
"Use_AXI_ID": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"AXI_ID_Width": [ { "value": "4", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ],
"Memory_Type": [ { "value": "Simple_Dual_Port_RAM", "value_src": "user", "resolve_type": "user", "usage": "all" } ],
- "PRIM_type_to_Implement": [ { "value": "BRAM", "resolve_type": "user", "usage": "all" } ],
+ "PRIM_type_to_Implement": [ { "value": "BRAM", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Enable_32bit_Address": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"ecctype": [ { "value": "No_ECC", "resolve_type": "user", "usage": "all" } ],
"ECC": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
@@ -44,9 +44,9 @@
"Register_PortA_Output_of_Memory_Primitives": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Register_PortA_Output_of_Memory_Core": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Use_REGCEA_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
- "Register_PortB_Output_of_Memory_Primitives": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Register_PortB_Output_of_Memory_Core": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Use_REGCEB_Pin": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Register_PortB_Output_of_Memory_Primitives": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Register_PortB_Output_of_Memory_Core": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Use_REGCEB_Pin": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"register_porta_input_of_softecc": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"register_portb_output_of_softecc": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Pipeline_Stages": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
@@ -58,10 +58,10 @@
"Reset_Memory_Latch_A": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"Reset_Priority_A": [ { "value": "CE", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Output_Reset_Value_A": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
- "Use_RSTB_Pin": [ { "value": "true", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Reset_Memory_Latch_B": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
- "Reset_Priority_B": [ { "value": "CE", "resolve_type": "user", "usage": "all" } ],
- "Output_Reset_Value_B": [ { "value": "0", "resolve_type": "user", "usage": "all" } ],
+ "Use_RSTB_Pin": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "Reset_Memory_Latch_B": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
+ "Reset_Priority_B": [ { "value": "CE", "resolve_type": "user", "enabled": false, "usage": "all" } ],
+ "Output_Reset_Value_B": [ { "value": "0", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Reset_Type": [ { "value": "SYNC", "resolve_type": "user", "enabled": false, "usage": "all" } ],
"Additional_Inputs_for_Power_Estimation": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ],
"Port_A_Clock": [ { "value": "100", "resolve_type": "user", "format": "long", "usage": "all" } ],
@@ -76,7 +76,7 @@
"use_bram_block": [ { "value": "Stand_Alone", "resolve_type": "user", "usage": "all" } ],
"MEM_FILE": [ { "value": "no_mem_loaded", "resolve_type": "user", "usage": "all" } ],
"CTRL_ECC_ALGO": [ { "value": "NONE", "resolve_type": "user", "usage": "all" } ],
- "EN_SAFETY_CKT": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ],
+ "EN_SAFETY_CKT": [ { "value": "false", "resolve_type": "user", "format": "bool", "enabled": false, "usage": "all" } ],
"READ_LATENCY_A": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ],
"READ_LATENCY_B": [ { "value": "1", "resolve_type": "user", "format": "long", "enabled": false, "usage": "all" } ]
},
@@ -115,7 +115,7 @@
"C_WRITE_DEPTH_A": [ { "value": "53248", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_READ_DEPTH_A": [ { "value": "53248", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_ADDRA_WIDTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ],
- "C_HAS_RSTB": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_HAS_RSTB": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_RST_PRIORITY_B": [ { "value": "CE", "resolve_type": "generated", "usage": "all" } ],
"C_RSTRAM_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_INITB_VAL": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ],
@@ -130,7 +130,7 @@
"C_READ_DEPTH_B": [ { "value": "53248", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_ADDRB_WIDTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_HAS_MEM_OUTPUT_REGS_A": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
- "C_HAS_MEM_OUTPUT_REGS_B": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_HAS_MEM_OUTPUT_REGS_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_HAS_MUX_OUTPUT_REGS_A": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_HAS_MUX_OUTPUT_REGS_B": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_MUX_PIPELINE_STAGES": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
@@ -151,7 +151,7 @@
"C_EN_RDADDRB_CHG": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_EN_DEEPSLEEP_PIN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_EN_SHUTDOWN_PIN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
- "C_EN_SAFETY_CKT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ],
+ "C_EN_SAFETY_CKT": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_DISABLE_WARN_BHV_RANGE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ],
"C_COUNT_36K_BRAM": [ { "value": "19", "resolve_type": "generated", "usage": "all" } ],
"C_COUNT_18K_BRAM": [ { "value": "8", "resolve_type": "generated", "usage": "all" } ],
@@ -190,11 +190,8 @@
"addra": [ { "direction": "in", "size_left": "15", "size_right": "0", "driver_value": "0" } ],
"dina": [ { "direction": "in", "size_left": "14", "size_right": "0", "driver_value": "0" } ],
"clkb": [ { "direction": "in", "driver_value": "0" } ],
- "rstb": [ { "direction": "in", "driver_value": "0" } ],
"addrb": [ { "direction": "in", "size_left": "15", "size_right": "0", "driver_value": "0" } ],
- "doutb": [ { "direction": "out", "size_left": "14", "size_right": "0" } ],
- "rsta_busy": [ { "direction": "out" } ],
- "rstb_busy": [ { "direction": "out" } ]
+ "doutb": [ { "direction": "out", "size_left": "14", "size_right": "0" } ]
},
"interfaces": {
"CLK.ACLK": {
@@ -255,8 +252,7 @@
"port_maps": {
"ADDR": [ { "physical_name": "addrb" } ],
"CLK": [ { "physical_name": "clkb" } ],
- "DOUT": [ { "physical_name": "doutb" } ],
- "RST": [ { "physical_name": "rstb" } ]
+ "DOUT": [ { "physical_name": "doutb" } ]
}
}
},
diff --git a/basys3/basys3.srcs/top.vhd b/basys3/basys3.srcs/top.vhd
index cc98821..debd819 100644
--- a/basys3/basys3.srcs/top.vhd
+++ b/basys3/basys3.srcs/top.vhd
@@ -56,7 +56,8 @@ begin
DO => SPI_DATA,
WEN => PPU_WEN);
- DBG_LEDS_OUT <= SPI_DATA_ADDR when DBG_DISP_ADDR = '1' else SPI_DATA_DATA;
+ -- DBG_LEDS_OUT <= SPI_DATA_ADDR when DBG_DISP_ADDR = '1' else SPI_DATA_DATA;
+ DBG_LEDS_OUT <= (others => '0');
picture_processing_unit: component ppu port map(
CLK100 => SYSCLK,
diff --git a/basys3/basys3.xpr b/basys3/basys3.xpr
index c64023c..0bc96a1 100644
--- a/basys3/basys3.xpr
+++ b/basys3/basys3.xpr
@@ -60,20 +60,20 @@
<Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
<Option Name="EnableBDX" Val="FALSE"/>
<Option Name="DSABoardId" Val="basys3"/>
- <Option Name="WTXSimLaunchSim" Val="173"/>
+ <Option Name="WTXSimLaunchSim" Val="213"/>
<Option Name="WTModelSimLaunchSim" Val="0"/>
<Option Name="WTQuestaLaunchSim" Val="0"/>
<Option Name="WTIesLaunchSim" Val="0"/>
<Option Name="WTVcsLaunchSim" Val="0"/>
<Option Name="WTRivieraLaunchSim" Val="0"/>
<Option Name="WTActivehdlLaunchSim" Val="0"/>
- <Option Name="WTXSimExportSim" Val="7"/>
- <Option Name="WTModelSimExportSim" Val="7"/>
- <Option Name="WTQuestaExportSim" Val="7"/>
+ <Option Name="WTXSimExportSim" Val="11"/>
+ <Option Name="WTModelSimExportSim" Val="11"/>
+ <Option Name="WTQuestaExportSim" Val="11"/>
<Option Name="WTIesExportSim" Val="0"/>
- <Option Name="WTVcsExportSim" Val="7"/>
- <Option Name="WTRivieraExportSim" Val="7"/>
- <Option Name="WTActivehdlExportSim" Val="7"/>
+ <Option Name="WTVcsExportSim" Val="11"/>
+ <Option Name="WTRivieraExportSim" Val="11"/>
+ <Option Name="WTActivehdlExportSim" Val="11"/>
<Option Name="GenerateIPUpgradeLog" Val="TRUE"/>
<Option Name="XSimRadix" Val="hex"/>
<Option Name="XSimTimeUnit" Val="ns"/>
@@ -394,9 +394,7 @@
</Run>
<Run Id="synth_4" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="true" IncrementalCheckpoint="$PSRCDIR/utils_1/imports/synth_4/top.dcp" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/synth_4" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_4" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_4">
<Strategy Version="1" Minor="2">
- <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2022">
- <Desc>Vivado Synthesis Defaults</Desc>
- </StratHandle>
+ <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2022"/>
<Step Id="synth_design"/>
</Strategy>
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
@@ -474,9 +472,7 @@
</Run>
<Run Id="impl_4" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/impl_4" SynthRun="synth_4" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_4" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_4">
<Strategy Version="1" Minor="2">
- <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2022">
- <Desc>Default settings for Implementation.</Desc>
- </StratHandle>
+ <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2022"/>
<Step Id="init_design"/>
<Step Id="opt_design"/>
<Step Id="power_opt_design"/>
diff --git a/basys3/ppu_tb_behav.wcfg b/basys3/ppu_tb_behav.wcfg
index 9acf47e..df141cd 100644
--- a/basys3/ppu_tb_behav.wcfg
+++ b/basys3/ppu_tb_behav.wcfg
@@ -13,15 +13,15 @@
</db_ref>
</db_ref_list>
<zoom_setting>
- <ZoomStartTime time="0.000000 us"></ZoomStartTime>
- <ZoomEndTime time="2,716.000001 us"></ZoomEndTime>
- <Cursor1Time time="450.650000 us"></Cursor1Time>
+ <ZoomStartTime time="929,912.593 ns"></ZoomStartTime>
+ <ZoomEndTime time="931,046.594 ns"></ZoomEndTime>
+ <Cursor1Time time="930,263.593 ns"></Cursor1Time>
</zoom_setting>
<column_width_setting>
<NameColumnWidth column_width="257"></NameColumnWidth>
- <ValueColumnWidth column_width="194"></ValueColumnWidth>
+ <ValueColumnWidth column_width="186"></ValueColumnWidth>
</column_width_setting>
- <WVObjectSize size="9" />
+ <WVObjectSize size="10" />
<wvobject type="group" fp_name="group136">
<obj_property name="label">clks</obj_property>
<obj_property name="DisplayName">label</obj_property>
@@ -43,10 +43,7 @@
<wvobject type="group" fp_name="group150">
<obj_property name="label">ppu top</obj_property>
<obj_property name="DisplayName">label</obj_property>
- <wvobject type="logic" fp_name="/ppu_tb/uut/RESET">
- <obj_property name="ElementShortName">RESET</obj_property>
- <obj_property name="ObjectShortName">RESET</obj_property>
- </wvobject>
+ <obj_property name="isExpanded"></obj_property>
<wvobject type="logic" fp_name="/ppu_tb/uut/WEN">
<obj_property name="ElementShortName">WEN</obj_property>
<obj_property name="ObjectShortName">WEN</obj_property>
@@ -59,30 +56,6 @@
<obj_property name="ElementShortName">DATA[15:0]</obj_property>
<obj_property name="ObjectShortName">DATA[15:0]</obj_property>
</wvobject>
- <wvobject type="array" fp_name="/ppu_tb/uut/R">
- <obj_property name="ElementShortName">R[3:0]</obj_property>
- <obj_property name="ObjectShortName">R[3:0]</obj_property>
- </wvobject>
- <wvobject type="array" fp_name="/ppu_tb/uut/G">
- <obj_property name="ElementShortName">G[3:0]</obj_property>
- <obj_property name="ObjectShortName">G[3:0]</obj_property>
- </wvobject>
- <wvobject type="array" fp_name="/ppu_tb/uut/B">
- <obj_property name="ElementShortName">B[3:0]</obj_property>
- <obj_property name="ObjectShortName">B[3:0]</obj_property>
- </wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/VSYNC">
- <obj_property name="ElementShortName">VSYNC</obj_property>
- <obj_property name="ObjectShortName">VSYNC</obj_property>
- </wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/HSYNC">
- <obj_property name="ElementShortName">HSYNC</obj_property>
- <obj_property name="ObjectShortName">HSYNC</obj_property>
- </wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/VBLANK">
- <obj_property name="ElementShortName">VBLANK</obj_property>
- <obj_property name="ObjectShortName">VBLANK</obj_property>
- </wvobject>
<wvobject type="logic" fp_name="/ppu_tb/uut/SYSCLK">
<obj_property name="ElementShortName">SYSCLK</obj_property>
<obj_property name="ObjectShortName">SYSCLK</obj_property>
@@ -91,22 +64,6 @@
<obj_property name="ElementShortName">SYSRST</obj_property>
<obj_property name="ObjectShortName">SYSRST</obj_property>
</wvobject>
- <wvobject type="other" fp_name="/ppu_tb/uut/PL_SPRITE_FG">
- <obj_property name="ElementShortName">PL_SPRITE_FG</obj_property>
- <obj_property name="ObjectShortName">PL_SPRITE_FG</obj_property>
- </wvobject>
- <wvobject type="other" fp_name="/ppu_tb/uut/PL_SPRITE_BG">
- <obj_property name="ElementShortName">PL_SPRITE_BG</obj_property>
- <obj_property name="ObjectShortName">PL_SPRITE_BG</obj_property>
- </wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/PL_DONE">
- <obj_property name="ElementShortName">PL_DONE</obj_property>
- <obj_property name="ObjectShortName">PL_DONE</obj_property>
- </wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/PL_READY">
- <obj_property name="ElementShortName">PL_READY</obj_property>
- <obj_property name="ObjectShortName">PL_READY</obj_property>
- </wvobject>
<wvobject type="logic" fp_name="/ppu_tb/uut/TMM_WEN">
<obj_property name="ElementShortName">TMM_WEN</obj_property>
<obj_property name="ObjectShortName">TMM_WEN</obj_property>
@@ -211,22 +168,6 @@
<obj_property name="ElementShortName">FG_FETCH</obj_property>
<obj_property name="ObjectShortName">FG_FETCH</obj_property>
</wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/NVSYNC">
- <obj_property name="ElementShortName">NVSYNC</obj_property>
- <obj_property name="ObjectShortName">NVSYNC</obj_property>
- </wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/NHSYNC">
- <obj_property name="ElementShortName">NHSYNC</obj_property>
- <obj_property name="ObjectShortName">NHSYNC</obj_property>
- </wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/THBLANK">
- <obj_property name="ElementShortName">THBLANK</obj_property>
- <obj_property name="ObjectShortName">THBLANK</obj_property>
- </wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/TVBLANK">
- <obj_property name="ElementShortName">TVBLANK</obj_property>
- <obj_property name="ObjectShortName">TVBLANK</obj_property>
- </wvobject>
<wvobject type="logic" fp_name="/ppu_tb/uut/PCEG_RESET">
<obj_property name="ElementShortName">PCEG_RESET</obj_property>
<obj_property name="ObjectShortName">PCEG_RESET</obj_property>
@@ -235,6 +176,7 @@
<wvobject type="group" fp_name="group149">
<obj_property name="label">background sprite</obj_property>
<obj_property name="DisplayName">label</obj_property>
+ <obj_property name="isExpanded"></obj_property>
<wvobject type="logic" fp_name="/ppu_tb/uut/background_sprite/CLK">
<obj_property name="ElementShortName">CLK</obj_property>
<obj_property name="ObjectShortName">CLK</obj_property>
@@ -378,6 +320,7 @@
<wvobject type="group" fp_name="group142">
<obj_property name="label">display coordinates</obj_property>
<obj_property name="DisplayName">label</obj_property>
+ <obj_property name="isExpanded"></obj_property>
<wvobject type="array" fp_name="/ppu_tb/uut/display_controller/T_POS_X">
<obj_property name="ElementShortName">T_POS_X[8:0]</obj_property>
<obj_property name="ObjectShortName">T_POS_X[8:0]</obj_property>
@@ -446,6 +389,7 @@
<wvobject type="group" fp_name="group115">
<obj_property name="label">pipeline stages</obj_property>
<obj_property name="DisplayName">label</obj_property>
+ <obj_property name="isExpanded"></obj_property>
<wvobject type="logic" fp_name="/ppu_tb/uut/pipeline_clock_edge_generator/CLK">
<obj_property name="ElementShortName">CLK</obj_property>
<obj_property name="ObjectShortName">CLK</obj_property>
@@ -466,13 +410,9 @@
<obj_property name="ElementShortName">SPRITE_FG_HIT</obj_property>
<obj_property name="ObjectShortName">SPRITE_FG_HIT</obj_property>
</wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/pipeline_clock_edge_generator/DONE">
- <obj_property name="ElementShortName">DONE</obj_property>
- <obj_property name="ObjectShortName">DONE</obj_property>
- </wvobject>
- <wvobject type="logic" fp_name="/ppu_tb/uut/pipeline_clock_edge_generator/READY">
- <obj_property name="ElementShortName">READY</obj_property>
- <obj_property name="ObjectShortName">READY</obj_property>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/pipeline_clock_edge_generator/DISPCTL_BWEN">
+ <obj_property name="ElementShortName">DISPCTL_BWEN</obj_property>
+ <obj_property name="ObjectShortName">DISPCTL_BWEN</obj_property>
</wvobject>
<wvobject type="other" fp_name="/ppu_tb/uut/pipeline_clock_edge_generator/CLK_IDX_T">
<obj_property name="ElementShortName">CLK_IDX_T</obj_property>
@@ -581,6 +521,7 @@
<wvobject type="array" fp_name="/ppu_tb/uut/\foreground_sprites(0)\/foreground_sprite/CIDX">
<obj_property name="ElementShortName">CIDX[5:0]</obj_property>
<obj_property name="ObjectShortName">CIDX[5:0]</obj_property>
+ <obj_property name="isExpanded"></obj_property>
</wvobject>
<wvobject type="logic" fp_name="/ppu_tb/uut/\foreground_sprites(0)\/foreground_sprite/HIT">
<obj_property name="ElementShortName">HIT</obj_property>
@@ -733,6 +674,7 @@
<wvobject type="array" fp_name="/ppu_tb/uut/\foreground_sprites(16)\/foreground_sprite/CIDX">
<obj_property name="ElementShortName">CIDX[5:0]</obj_property>
<obj_property name="ObjectShortName">CIDX[5:0]</obj_property>
+ <obj_property name="isExpanded"></obj_property>
</wvobject>
<wvobject type="array" fp_name="/ppu_tb/uut/\foreground_sprites(16)\/foreground_sprite/R_TMM_ADDR">
<obj_property name="ElementShortName">R_TMM_ADDR[15:0]</obj_property>
@@ -864,4 +806,152 @@
<obj_property name="ObjectShortName">TMP_FG_EN[127:0]</obj_property>
</wvobject>
</wvobject>
+ <wvobject type="group" fp_name="group250">
+ <obj_property name="label">dispctl</obj_property>
+ <obj_property name="DisplayName">label</obj_property>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/SYSCLK">
+ <obj_property name="ElementShortName">SYSCLK</obj_property>
+ <obj_property name="ObjectShortName">SYSCLK</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/RESET">
+ <obj_property name="ElementShortName">RESET</obj_property>
+ <obj_property name="ObjectShortName">RESET</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/X">
+ <obj_property name="ElementShortName">X[8:0]</obj_property>
+ <obj_property name="ObjectShortName">X[8:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/Y">
+ <obj_property name="ElementShortName">Y[7:0]</obj_property>
+ <obj_property name="ObjectShortName">Y[7:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/RI">
+ <obj_property name="ElementShortName">RI[3:0]</obj_property>
+ <obj_property name="ObjectShortName">RI[3:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/GI">
+ <obj_property name="ElementShortName">GI[3:0]</obj_property>
+ <obj_property name="ObjectShortName">GI[3:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/BI">
+ <obj_property name="ElementShortName">BI[3:0]</obj_property>
+ <obj_property name="ObjectShortName">BI[3:0]</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/BWEN">
+ <obj_property name="ElementShortName">BWEN</obj_property>
+ <obj_property name="ObjectShortName">BWEN</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/RO">
+ <obj_property name="ElementShortName">RO[3:0]</obj_property>
+ <obj_property name="ObjectShortName">RO[3:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/GO">
+ <obj_property name="ElementShortName">GO[3:0]</obj_property>
+ <obj_property name="ObjectShortName">GO[3:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/BO">
+ <obj_property name="ElementShortName">BO[3:0]</obj_property>
+ <obj_property name="ObjectShortName">BO[3:0]</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/NVSYNC">
+ <obj_property name="ElementShortName">NVSYNC</obj_property>
+ <obj_property name="ObjectShortName">NVSYNC</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/NHSYNC">
+ <obj_property name="ElementShortName">NHSYNC</obj_property>
+ <obj_property name="ObjectShortName">NHSYNC</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/THBLANK">
+ <obj_property name="ElementShortName">THBLANK</obj_property>
+ <obj_property name="ObjectShortName">THBLANK</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/TVBLANK">
+ <obj_property name="ElementShortName">TVBLANK</obj_property>
+ <obj_property name="ObjectShortName">TVBLANK</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/ACTIVE">
+ <obj_property name="ElementShortName">ACTIVE</obj_property>
+ <obj_property name="ObjectShortName">ACTIVE</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/NPIXCLK">
+ <obj_property name="ElementShortName">NPIXCLK</obj_property>
+ <obj_property name="ObjectShortName">NPIXCLK</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/TPIXCLK">
+ <obj_property name="ElementShortName">TPIXCLK</obj_property>
+ <obj_property name="ObjectShortName">TPIXCLK</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/NHCOUNT">
+ <obj_property name="ElementShortName">NHCOUNT[18:0]</obj_property>
+ <obj_property name="ObjectShortName">NHCOUNT[18:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/NVCOUNT">
+ <obj_property name="ElementShortName">NVCOUNT[18:0]</obj_property>
+ <obj_property name="ObjectShortName">NVCOUNT[18:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/ADDR_I">
+ <obj_property name="ElementShortName">ADDR_I[9:0]</obj_property>
+ <obj_property name="ObjectShortName">ADDR_I[9:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/ADDR_O">
+ <obj_property name="ElementShortName">ADDR_O[9:0]</obj_property>
+ <obj_property name="ObjectShortName">ADDR_O[9:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/DATA_I">
+ <obj_property name="ElementShortName">DATA_I[11:0]</obj_property>
+ <obj_property name="ObjectShortName">DATA_I[11:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/DATA_O">
+ <obj_property name="ElementShortName">DATA_O[11:0]</obj_property>
+ <obj_property name="ObjectShortName">DATA_O[11:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/T_POS_X">
+ <obj_property name="ElementShortName">T_POS_X[8:0]</obj_property>
+ <obj_property name="ObjectShortName">T_POS_X[8:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/T_POS_Y">
+ <obj_property name="ElementShortName">T_POS_Y[7:0]</obj_property>
+ <obj_property name="ObjectShortName">T_POS_Y[7:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/U_POS_X">
+ <obj_property name="ElementShortName">U_POS_X[8:0]</obj_property>
+ <obj_property name="ObjectShortName">U_POS_X[8:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/U_POS_Y">
+ <obj_property name="ElementShortName">U_POS_Y[7:0]</obj_property>
+ <obj_property name="ObjectShortName">U_POS_Y[7:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/N_POS_X">
+ <obj_property name="ElementShortName">N_POS_X[9:0]</obj_property>
+ <obj_property name="ObjectShortName">N_POS_X[9:0]</obj_property>
+ </wvobject>
+ <wvobject type="array" fp_name="/ppu_tb/uut/display_controller/N_POS_Y">
+ <obj_property name="ElementShortName">N_POS_Y[8:0]</obj_property>
+ <obj_property name="ObjectShortName">N_POS_Y[8:0]</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/NACTIVE">
+ <obj_property name="ElementShortName">NACTIVE</obj_property>
+ <obj_property name="ObjectShortName">NACTIVE</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/NHACTIVE">
+ <obj_property name="ElementShortName">NHACTIVE</obj_property>
+ <obj_property name="ObjectShortName">NHACTIVE</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/NVACTIVE">
+ <obj_property name="ElementShortName">NVACTIVE</obj_property>
+ <obj_property name="ObjectShortName">NVACTIVE</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/TACTIVE">
+ <obj_property name="ElementShortName">TACTIVE</obj_property>
+ <obj_property name="ObjectShortName">TACTIVE</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/THACTIVE">
+ <obj_property name="ElementShortName">THACTIVE</obj_property>
+ <obj_property name="ObjectShortName">THACTIVE</obj_property>
+ </wvobject>
+ <wvobject type="logic" fp_name="/ppu_tb/uut/display_controller/TVACTIVE">
+ <obj_property name="ElementShortName">TVACTIVE</obj_property>
+ <obj_property name="ObjectShortName">TVACTIVE</obj_property>
+ </wvobject>
+ </wvobject>
</wave_config>