From 3a91813da7931da594df220a713a35cd4f070684 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20G=C3=A1lvez?= Date: Mon, 9 Apr 2018 17:25:52 +0200 Subject: [PATCH] Sync with Fredi's source 22/06/2017 Blitter work. --- FPGA_by_Fredi/DSP/DSP.vhd.bak | 79 -- FPGA_by_Fredi/FPGA_DATE.bsf | 2 +- FPGA_by_Fredi/FPGA_DATE.tdf | 10 +- ...d19.tdf => FPGA_DATE_lpm_constant_e19.tdf} | 6 +- ...i19.tdf => FPGA_DATE_lpm_constant_f19.tdf} | 6 +- FPGA_by_Fredi/FPGA_DATE_lpm_constant_g19.tdf | 30 + .../FalconIO_SDCard_IDE_CF.vhd | 92 ++- .../FalconIO_SDCard_IDE_CF/dcfifo1.vhd.bak | 202 ----- .../interrupt_handler.tdf.bak | 391 --------- FPGA_by_Fredi/PLLJ_PLLSPE_INFO.txt | 20 - FPGA_by_Fredi/UNUSED | 27 - .../lpm_ror128.inc} | 20 +- FPGA_by_Fredi/Video/BLITTER/lpm_ror128.qip | 5 + FPGA_by_Fredi/Video/BLITTER/lpm_ror128.tdf | 92 +++ FPGA_by_Fredi/Video/DDR_CTR.tdf.bak | 659 --------------- .../{lpm_fifoDZ.bsf => Doppelzeilen_Fifo.bsf} | 3 +- FPGA_by_Fredi/Video/Doppelzeilen_Fifo.inc | 27 + FPGA_by_Fredi/Video/Doppelzeilen_Fifo.qip | 5 + .../{lpm_fifoDZ.vhd => Doppelzeilen_Fifo.vhd} | 44 +- FPGA_by_Fredi/Video/UNUSED | 267 ------ FPGA_by_Fredi/Video/VIDEO_MOD_MUX_CLUTCTR.tdf | 480 +++++------ .../Video/VIDEO_MOD_MUX_CLUTCTR.tdf.bak | 482 +++++------ FPGA_by_Fredi/Video/Video.bdf | 767 ++++++++++-------- FPGA_by_Fredi/Video/altdpram0_wave0.jpg | Bin 125146 -> 0 bytes FPGA_by_Fredi/Video/altdpram0_wave1.jpg | Bin 171723 -> 0 bytes FPGA_by_Fredi/Video/altdpram0_waveforms.html | 16 - FPGA_by_Fredi/Video/altdpram1_wave0.jpg | Bin 151954 -> 0 bytes FPGA_by_Fredi/Video/altdpram1_wave1.jpg | Bin 203609 -> 0 bytes FPGA_by_Fredi/Video/altdpram1_waveforms.html | 16 - FPGA_by_Fredi/Video/altdpram2_wave0.jpg | Bin 152433 -> 0 bytes FPGA_by_Fredi/Video/altdpram2_wave1.jpg | Bin 204342 -> 0 bytes FPGA_by_Fredi/Video/altdpram2_waveforms.html | 16 - FPGA_by_Fredi/Video/lpm_compare1_wave0.jpg | Bin 30655 -> 0 bytes .../Video/lpm_compare1_waveforms.html | 13 - FPGA_by_Fredi/Video/lpm_fifoDZ_wave0.jpg | Bin 84085 -> 0 bytes FPGA_by_Fredi/Video/lpm_fifoDZ_waveforms.html | 13 - FPGA_by_Fredi/Video/lpm_fifo_dc0_wave0.jpg | Bin 114506 -> 0 bytes .../Video/lpm_fifo_dc0_waveforms.html | 13 - FPGA_by_Fredi/Video/shiftreg_dpz.bsf | 56 ++ FPGA_by_Fredi/Video/shiftreg_dpz.inc | 24 + .../{lpm_fifoDZ.qip => shiftreg_dpz.qip} | 8 +- FPGA_by_Fredi/Video/shiftreg_dpz.vhd | 125 +++ FPGA_by_Fredi/blitter.tdf | 532 ++++++------ FPGA_by_Fredi/blitter.tdf.bak | 534 ++++++------ FPGA_by_Fredi/blitter.tdf.pdf | Bin 78291 -> 0 bytes FPGA_by_Fredi/firebee1.bdf | 192 ++--- FPGA_by_Fredi/firebee1.done | 2 +- FPGA_by_Fredi/firebee1.fit.summary | 16 + FPGA_by_Fredi/firebee1.map.summary | 14 + FPGA_by_Fredi/firebee1.qsf | 73 +- FPGA_by_Fredi/firebee1.rbf | Bin 531802 -> 0 bytes FPGA_by_Fredi/firebee1.sof | Bin 0 -> 1171297 bytes FPGA_by_Fredi/firebee1.tan.summary | 276 +++++++ FPGA_by_Fredi/firebeei1.qws | 16 - FPGA_by_Fredi/lpm_mux0.s19 | 185 ----- FPGA_by_Fredi/serv_req_info.txt | 115 --- FPGA_by_Fredi/sopc_builder_log.txt | 0 FPGA_by_Fredi/undo_redo.txt | 12 - 58 files changed, 2380 insertions(+), 3603 deletions(-) delete mode 100644 FPGA_by_Fredi/DSP/DSP.vhd.bak rename FPGA_by_Fredi/{FPGA_DATE_lpm_constant_d19.tdf => FPGA_DATE_lpm_constant_e19.tdf} (87%) rename FPGA_by_Fredi/{FPGA_DATE_lpm_constant_i19.tdf => FPGA_DATE_lpm_constant_f19.tdf} (87%) create mode 100644 FPGA_by_Fredi/FPGA_DATE_lpm_constant_g19.tdf delete mode 100644 FPGA_by_Fredi/FalconIO_SDCard_IDE_CF/dcfifo1.vhd.bak delete mode 100644 FPGA_by_Fredi/Interrupt_Handler/interrupt_handler.tdf.bak delete mode 100644 FPGA_by_Fredi/PLLJ_PLLSPE_INFO.txt delete mode 100644 FPGA_by_Fredi/UNUSED rename FPGA_by_Fredi/Video/{lpm_fifoDZ.cmp => BLITTER/lpm_ror128.inc} (74%) create mode 100644 FPGA_by_Fredi/Video/BLITTER/lpm_ror128.qip create mode 100644 FPGA_by_Fredi/Video/BLITTER/lpm_ror128.tdf delete mode 100644 FPGA_by_Fredi/Video/DDR_CTR.tdf.bak rename FPGA_by_Fredi/Video/{lpm_fifoDZ.bsf => Doppelzeilen_Fifo.bsf} (93%) create mode 100644 FPGA_by_Fredi/Video/Doppelzeilen_Fifo.inc create mode 100644 FPGA_by_Fredi/Video/Doppelzeilen_Fifo.qip rename FPGA_by_Fredi/Video/{lpm_fifoDZ.vhd => Doppelzeilen_Fifo.vhd} (80%) delete mode 100644 FPGA_by_Fredi/Video/UNUSED delete mode 100644 FPGA_by_Fredi/Video/altdpram0_wave0.jpg delete mode 100644 FPGA_by_Fredi/Video/altdpram0_wave1.jpg delete mode 100644 FPGA_by_Fredi/Video/altdpram0_waveforms.html delete mode 100644 FPGA_by_Fredi/Video/altdpram1_wave0.jpg delete mode 100644 FPGA_by_Fredi/Video/altdpram1_wave1.jpg delete mode 100644 FPGA_by_Fredi/Video/altdpram1_waveforms.html delete mode 100644 FPGA_by_Fredi/Video/altdpram2_wave0.jpg delete mode 100644 FPGA_by_Fredi/Video/altdpram2_wave1.jpg delete mode 100644 FPGA_by_Fredi/Video/altdpram2_waveforms.html delete mode 100644 FPGA_by_Fredi/Video/lpm_compare1_wave0.jpg delete mode 100644 FPGA_by_Fredi/Video/lpm_compare1_waveforms.html delete mode 100644 FPGA_by_Fredi/Video/lpm_fifoDZ_wave0.jpg delete mode 100644 FPGA_by_Fredi/Video/lpm_fifoDZ_waveforms.html delete mode 100644 FPGA_by_Fredi/Video/lpm_fifo_dc0_wave0.jpg delete mode 100644 FPGA_by_Fredi/Video/lpm_fifo_dc0_waveforms.html create mode 100644 FPGA_by_Fredi/Video/shiftreg_dpz.bsf create mode 100644 FPGA_by_Fredi/Video/shiftreg_dpz.inc rename FPGA_by_Fredi/Video/{lpm_fifoDZ.qip => shiftreg_dpz.qip} (63%) create mode 100644 FPGA_by_Fredi/Video/shiftreg_dpz.vhd delete mode 100644 FPGA_by_Fredi/blitter.tdf.pdf create mode 100644 FPGA_by_Fredi/firebee1.fit.summary create mode 100644 FPGA_by_Fredi/firebee1.map.summary delete mode 100644 FPGA_by_Fredi/firebee1.rbf create mode 100644 FPGA_by_Fredi/firebee1.sof create mode 100644 FPGA_by_Fredi/firebee1.tan.summary delete mode 100644 FPGA_by_Fredi/firebeei1.qws delete mode 100644 FPGA_by_Fredi/lpm_mux0.s19 delete mode 100644 FPGA_by_Fredi/serv_req_info.txt delete mode 100644 FPGA_by_Fredi/sopc_builder_log.txt delete mode 100644 FPGA_by_Fredi/undo_redo.txt diff --git a/FPGA_by_Fredi/DSP/DSP.vhd.bak b/FPGA_by_Fredi/DSP/DSP.vhd.bak deleted file mode 100644 index 2d4811a..0000000 --- a/FPGA_by_Fredi/DSP/DSP.vhd.bak +++ /dev/null @@ -1,79 +0,0 @@ --- WARNING: Do NOT edit the input and output ports in this file in a text --- editor if you plan to continue editing the block that represents it in --- the Block Editor! File corruption is VERY likely to occur. - --- Copyright (C) 1991-2008 Altera Corporation --- Your use of Altera Corporation's design tools, logic functions --- and other software and tools, and its AMPP partner logic --- functions, and any output files from any of the foregoing --- (including device programming or simulation files), and any --- associated documentation or information are expressly subject --- to the terms and conditions of the Altera Program License --- Subscription Agreement, Altera MegaCore Function License --- Agreement, or other applicable license agreement, including, --- without limitation, that your use is for the sole purpose of --- programming logic devices manufactured by Altera and sold by --- Altera or its authorized distributors. Please refer to the --- applicable agreement for further details. - - --- Generated by Quartus II Version 8.1 (Build Build 163 10/28/2008) --- Created on Tue Sep 08 16:24:57 2009 - -LIBRARY ieee; -USE ieee.std_logic_1164.all; - - --- Entity Declaration - -ENTITY DSP IS - -- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE! - PORT - ( - CLK33M : IN STD_LOGIC; - MAIN_CLK : IN STD_LOGIC; - nFB_OE : IN STD_LOGIC; - nFB_WR : IN STD_LOGIC; - nFB_CS1 : IN STD_LOGIC; - nFB_CS2 : IN STD_LOGIC; - FB_SIZE0 : IN STD_LOGIC; - FB_SIZE1 : IN STD_LOGIC; - nFB_BURST : IN STD_LOGIC; - FB_ADR : IN STD_LOGIC_VECTOR(31 downto 0); - nRSTO : IN STD_LOGIC; - nFB_CS3 : IN STD_LOGIC; - nSRCS : OUT STD_LOGIC; - nSRBLE : OUT STD_LOGIC; - nSRBHE : OUT STD_LOGIC; - nSRWE : OUT STD_LOGIC; - nSROE : OUT STD_LOGIC; - DSP_INT : OUT STD_LOGIC; - DSP_TA : OUT STD_LOGIC; - FB_AD : INOUT STD_LOGIC_VECTOR(31 downto 0); - IO : INOUT STD_LOGIC_VECTOR(17 downto 0); - SRD : INOUT STD_LOGIC_VECTOR(15 downto 0) - ); - -- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! - -END DSP; - - --- Architecture Body - -ARCHITECTURE DSP_architecture OF DSP IS - - -BEGIN - nSRCS <= '0' when nFB_CS2 = '0' and FB_ADR(27 downto 24) = x"4" else '1'; --nFB_CS3; - nSRBHE <= '0' when FB_ADR(0 downto 0) = "0" else '1'; - nSRBLE <= '1' when FB_ADR(0 downto 0) = "0" and FB_SIZE1 = '0' and FB_SIZE0 = '1' else '0'; - nSRWE <= '0' when nFB_WR = '0' and nSRCS = '0' and MAIN_CLK = '0' else '1'; - nSROE <= '0' when nFB_OE = '0' and nSRCS = '0' else '1'; - DSP_INT <= '0'; - DSP_TA <= '0'; - IO(17 downto 0) <= FB_ADR(18 downto 1); - SRD(15 downto 0) <= FB_AD(31 downto 16) when nFB_WR = '0' and nSRCS = '0' else "ZZZZZZZZZZZZZZZZ"; - FB_AD(31 downto 16) <= SRD(15 downto 0) when nFB_OE = '0' and nSRCS = '0' else "ZZZZZZZZZZZZZZZZ"; - - -END DSP_architecture; diff --git a/FPGA_by_Fredi/FPGA_DATE.bsf b/FPGA_by_Fredi/FPGA_DATE.bsf index a6c809a..44e6599 100644 --- a/FPGA_by_Fredi/FPGA_DATE.bsf +++ b/FPGA_by_Fredi/FPGA_DATE.bsf @@ -31,7 +31,7 @@ applicable agreement for further details. (line (pt 88 24)(pt 72 24)(line_width 3)) ) (drawing - (text "402923543" (rect 27 18 72 30)(font "Arial" )) + (text "570826775" (rect 27 18 72 30)(font "Arial" )) (text "32" (rect 77 25 87 37)(font "Arial" )) (line (pt 16 16)(pt 72 16)(line_width 1)) (line (pt 72 16)(pt 72 32)(line_width 1)) diff --git a/FPGA_by_Fredi/FPGA_DATE.tdf b/FPGA_by_Fredi/FPGA_DATE.tdf index 49f319c..5a3bc40 100644 --- a/FPGA_by_Fredi/FPGA_DATE.tdf +++ b/FPGA_by_Fredi/FPGA_DATE.tdf @@ -33,7 +33,7 @@ --applicable agreement for further details. -- Clearbox generated function header -FUNCTION FPGA_DATE_lpm_constant_i19 () +FUNCTION FPGA_DATE_lpm_constant_f19 () RETURNS ( result[31..0]); @@ -46,11 +46,11 @@ SUBDESIGN FPGA_DATE VARIABLE - FPGA_DATE_lpm_constant_i19_component : FPGA_DATE_lpm_constant_i19; + FPGA_DATE_lpm_constant_f19_component : FPGA_DATE_lpm_constant_f19; BEGIN - result[31..0] = FPGA_DATE_lpm_constant_i19_component.result[31..0]; + result[31..0] = FPGA_DATE_lpm_constant_f19_component.result[31..0]; END; @@ -63,9 +63,9 @@ END; -- Retrieval info: PRIVATE: JTAG_ID STRING "NONE" -- Retrieval info: PRIVATE: Radix NUMERIC "16" -- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" --- Retrieval info: PRIVATE: Value NUMERIC "402923543" +-- Retrieval info: PRIVATE: Value NUMERIC "570826775" -- Retrieval info: PRIVATE: nBit NUMERIC "32" --- Retrieval info: CONSTANT: LPM_CVALUE NUMERIC "402923543" +-- Retrieval info: CONSTANT: LPM_CVALUE NUMERIC "570826775" -- Retrieval info: CONSTANT: LPM_HINT STRING "ENABLE_RUNTIME_MOD=NO" -- Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_CONSTANT" -- Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "32" diff --git a/FPGA_by_Fredi/FPGA_DATE_lpm_constant_d19.tdf b/FPGA_by_Fredi/FPGA_DATE_lpm_constant_e19.tdf similarity index 87% rename from FPGA_by_Fredi/FPGA_DATE_lpm_constant_d19.tdf rename to FPGA_by_Fredi/FPGA_DATE_lpm_constant_e19.tdf index a611f11..de971cf 100644 --- a/FPGA_by_Fredi/FPGA_DATE_lpm_constant_d19.tdf +++ b/FPGA_by_Fredi/FPGA_DATE_lpm_constant_e19.tdf @@ -1,4 +1,4 @@ ---lpm_constant CBX_AUTO_BLACKBOX="ALL" ENABLE_RUNTIME_MOD="NO" LPM_CVALUE=13042017 LPM_WIDTH=32 result +--lpm_constant CBX_AUTO_BLACKBOX="ALL" ENABLE_RUNTIME_MOD="NO" LPM_CVALUE=21062017 LPM_WIDTH=32 result --VERSION_BEGIN 9.1SP2 cbx_lpm_constant 2010:03:24:20:43:43:SJ cbx_mgl 2010:03:24:21:01:05:SJ VERSION_END @@ -19,12 +19,12 @@ --synthesis_resources = -SUBDESIGN FPGA_DATE_lpm_constant_d19 +SUBDESIGN FPGA_DATE_lpm_constant_e19 ( result[31..0] : output; ) BEGIN - result[] = B"00010011000001000010000000010111"; + result[] = B"00100001000001100010000000010111"; END; --VALID FILE diff --git a/FPGA_by_Fredi/FPGA_DATE_lpm_constant_i19.tdf b/FPGA_by_Fredi/FPGA_DATE_lpm_constant_f19.tdf similarity index 87% rename from FPGA_by_Fredi/FPGA_DATE_lpm_constant_i19.tdf rename to FPGA_by_Fredi/FPGA_DATE_lpm_constant_f19.tdf index 4ae1da6..025fbc8 100644 --- a/FPGA_by_Fredi/FPGA_DATE_lpm_constant_i19.tdf +++ b/FPGA_by_Fredi/FPGA_DATE_lpm_constant_f19.tdf @@ -1,4 +1,4 @@ ---lpm_constant CBX_AUTO_BLACKBOX="ALL" ENABLE_RUNTIME_MOD="NO" LPM_CVALUE=18042017 LPM_WIDTH=32 result +--lpm_constant CBX_AUTO_BLACKBOX="ALL" ENABLE_RUNTIME_MOD="NO" LPM_CVALUE=22062017 LPM_WIDTH=32 result --VERSION_BEGIN 9.1SP2 cbx_lpm_constant 2010:03:24:20:43:43:SJ cbx_mgl 2010:03:24:21:01:05:SJ VERSION_END @@ -19,12 +19,12 @@ --synthesis_resources = -SUBDESIGN FPGA_DATE_lpm_constant_i19 +SUBDESIGN FPGA_DATE_lpm_constant_f19 ( result[31..0] : output; ) BEGIN - result[] = B"00011000000001000010000000010111"; + result[] = B"00100010000001100010000000010111"; END; --VALID FILE diff --git a/FPGA_by_Fredi/FPGA_DATE_lpm_constant_g19.tdf b/FPGA_by_Fredi/FPGA_DATE_lpm_constant_g19.tdf new file mode 100644 index 0000000..55f9ec1 --- /dev/null +++ b/FPGA_by_Fredi/FPGA_DATE_lpm_constant_g19.tdf @@ -0,0 +1,30 @@ +--lpm_constant CBX_AUTO_BLACKBOX="ALL" ENABLE_RUNTIME_MOD="NO" LPM_CVALUE=05062017 LPM_WIDTH=32 result +--VERSION_BEGIN 9.1SP2 cbx_lpm_constant 2010:03:24:20:43:43:SJ cbx_mgl 2010:03:24:21:01:05:SJ VERSION_END + + +-- Copyright (C) 1991-2010 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + + + +--synthesis_resources = +SUBDESIGN FPGA_DATE_lpm_constant_g19 +( + result[31..0] : output; +) + +BEGIN + result[] = B"00000101000001100010000000010111"; +END; +--VALID FILE diff --git a/FPGA_by_Fredi/FalconIO_SDCard_IDE_CF/FalconIO_SDCard_IDE_CF.vhd b/FPGA_by_Fredi/FalconIO_SDCard_IDE_CF/FalconIO_SDCard_IDE_CF.vhd index 31728ca..7e5d3c9 100644 --- a/FPGA_by_Fredi/FalconIO_SDCard_IDE_CF/FalconIO_SDCard_IDE_CF.vhd +++ b/FPGA_by_Fredi/FalconIO_SDCard_IDE_CF/FalconIO_SDCard_IDE_CF.vhd @@ -184,10 +184,14 @@ signal TDO : STD_LOGIC; signal SNDCS : STD_LOGIC; signal SNDCS_I : STD_LOGIC; signal SNDIR_I : STD_LOGIC; -signal LP_DIR_X : STD_LOGIC; signal DA_OUT_X : STD_LOGIC_VECTOR(7 downto 0); signal LP_D_X : STD_LOGIC_VECTOR(7 downto 0); -signal nLP_STR : STD_LOGIC; +signal LP_STR_X : STD_LOGIC; +signal LP_STR_NS1 : STD_LOGIC; +signal LP_STR_NS0 : STD_LOGIC; +signal LP_DIR_X : STD_LOGIC; +signal LP_DIR_NS1 : STD_LOGIC; +signal LP_DIR_NS0 : STD_LOGIC; -- DMA SOUND signal dma_snd_cs : STD_LOGIC; signal sndmactl : STD_LOGIC_VECTOR(7 downto 0); @@ -298,8 +302,7 @@ FB_B1 <= '1' when FB_ADR(0) = '1' or BYT = '0' else '0'; FALCON_IO_TA <= '1' when ACIA_CS_I = '1' or DTACK_OUT_MFPn = '0' or DMA_MODUS_CS ='1' or dma_snd_cs = '1' or paddle_cs = '1' or DMA_ADR_CS = '1' or DMA_DIRM_CS = '1' or DMA_BYT_CNT_CS = '1' or FCF_CS = '1' or IDE_TA = '1' else '0'; --SNDCS = '1' or SUB_BUS <= '1' when nFB_WR = '1' and ROM_CS = '1' ELSE - '1' when IDE_CF_CS = '1' ELSE - '1' when nFB_CS3 = '0' ELSE '0'; + '1' when IDE_CF_CS = '1' ELSE '0'; -- DARF NICHT AKTIV SEIN BEI ZUGRIFF AUF DRIVE 0 UND 1 DA KOMMEN DIE DATEN DIREKT VOM FPGA nRP_UDS <= '0' when SUB_BUS = '1' and FB_B0 = '1' else '1'; nRP_LDS <= '0' when SUB_BUS = '1' and FB_B1 = '1' else '1'; @@ -325,6 +328,22 @@ SD_CDM_D1 <= 'Z'; ---------------------------------------------------------------------------- -- IDE ---------------------------------------------------------------------------- +IDE_RES <= not ACP_CONF(25) and nRSTO; -- !!!!ACHTUNG: RESET wenn 0!!!!!!!!!!!!!!! -- IDE_RES manuel oder weil nRSTO +IDE_CF_CS <= '1' when (nFB_CS1 = '0' OR nFB_CS3 = '0') and FB_ADR(23 downto 7) = x"1E000" else '0'; -- FFF0'0000-FFF0'007F +IDE_DRIVE0 <= '1' when (nFB_CS1 = '0' OR nFB_CS3 = '0') and FB_ADR(23 downto 0) = x"F00099" else '0'; -- FFF0'0099 (19+80!) +IDE_DRIVE1 <= '1' when (nFB_CS1 = '0' OR nFB_CS3 = '0') and FB_ADR(23 downto 0) = x"F000D9" else '0'; -- FFF0'00D9 (19+40+80!) +IDE_DCS <= '1' when FB_ALE = '1' and FB_ADR(31 downto 2) = x"3FFC0000" else -- FFF0'000x 0-3 + '1' when (nFB_CS1 = '0' OR nFB_CS3 = '0') and FB_ADR(23 downto 2) = x"3C0000" else -- FFF0'000x 0-3 + '1' when FB_ALE = '1' and FB_ADR(31 downto 2) = x"3FFC0010" else -- FFF0'004x 0-3 + '1' when (nFB_CS1 = '0' OR nFB_CS3 = '0') and FB_ADR(23 downto 2) = x"3C0010" else '0'; -- FFF0'004x 0-3 +nCF_CS0 <= FB_ADR(5) or (FB_ADR(6) xor (ACP_CONF(31) xnor HD_DD)); -- xxxx'xx00-1F +nCF_CS1 <= not FB_ADR(5) or (FB_ADR(6) xor (ACP_CONF(31) xnor HD_DD)); -- xxxx'xx20-3F +nIDE_CS0 <= FB_ADR(5) or (FB_ADR(6) xnor (ACP_CONF(30) xnor HD_DD)); -- xxxx'xx40-5F +nIDE_CS1 <= not FB_ADR(5) or (FB_ADR(6) xnor (ACP_CONF(30) xnor HD_DD)); -- xxxx'xx60-7F +nDREQ0 <= '1'; +FB_AD(23 downto 20) <= ACP_CONF(19 downto 16) when IDE_DRIVE0 = '1' and nFB_OE = '0' else "ZZZZ"; +FB_AD(23 downto 20) <= ACP_CONF(23 downto 20) when IDE_DRIVE1 = '1' and nFB_OE = '0' else "ZZZZ"; + CMD_REG: process(nRSTO, MAIN_CLK, CMD_STATE, NEXT_CMD_STATE) begin if nRSTO = '0' then @@ -336,7 +355,7 @@ CMD_REG: process(nRSTO, MAIN_CLK, CMD_STATE, NEXT_CMD_STATE) end if; end process CMD_REG; - CMD_DECODER: process(CMD_STATE, NEXT_CMD_STATE, nIDE_RD, nIDE_WR, IDE_RDY) + CMD_DECODER: process(CMD_STATE, NEXT_CMD_STATE, nIDE_RD, nIDE_WR, IDE_RDY,IDE_DCS, IDE_CF_CS, FB_ADR, ACP_CONF, nFB_WR, FB_SIZE0, FB_SIZE1) begin case CMD_STATE is when IDLE => @@ -453,23 +472,6 @@ CMD_REG: process(nRSTO, MAIN_CLK, CMD_STATE, NEXT_CMD_STATE) end if; end case; end process CMD_DECODER; - -IDE_RES <= not ACP_CONF(25) and nRSTO; -- !!!!ACHTUNG: RESET wenn 0!!!!!!!!!!!!!!! -- IDE_RES manuel oder weil nRSTO -IDE_CF_CS <= '1' when nFB_CS1 = '0' and FB_ADR(19 downto 7) = x"0" else '0'; -- FFF0'0000-FFF0'007F -IDE_DRIVE0 <= '1' when nFB_CS1 = '0' and FB_ADR(19 downto 0) = x"99" else '0'; -- FFF0'0099 (19+80!) -IDE_DRIVE1 <= '1' when nFB_CS1 = '0' and FB_ADR(19 downto 0) = x"D9" else '0'; -- FFF0'00D9 (19+40+80!) -IDE_DCS <= '1' when FB_ALE = '1' and FB_ADR(31 downto 2) = x"3FFC0000" else -- FFF0'000x 0-3 - '1' when nFB_CS1 = '0' and FB_ADR(19 downto 2) = x"0" else -- FFF0'000x 0-3 - '1' when FB_ALE = '1' and FB_ADR(31 downto 2) = x"3FFC0010" else -- FFF0'004x 0-3 - '1' when nFB_CS1 = '0' and FB_ADR(19 downto 2) = x"10" else '0'; -- FFF0'004x 0-3 -nCF_CS0 <= FB_ADR(5) or (FB_ADR(6) xor (ACP_CONF(31) xnor HD_DD)); -- xxxx'xx00-1F -nCF_CS1 <= not FB_ADR(5) or (FB_ADR(6) xor (ACP_CONF(31) xnor HD_DD)); -- xxxx'xx20-3F -nIDE_CS0 <= FB_ADR(5) or (FB_ADR(6) xnor (ACP_CONF(30) xnor HD_DD)); -- xxxx'xx40-5F -nIDE_CS1 <= not FB_ADR(5) or (FB_ADR(6) xnor (ACP_CONF(30) xnor HD_DD)); -- xxxx'xx60-7F -nDREQ0 <= '1'; -FB_AD(23 downto 20) <= ACP_CONF(19 downto 16) when IDE_DRIVE0 = '1' and nFB_OE = '0' else "ZZZZ"; -FB_AD(23 downto 20) <= ACP_CONF(23 downto 20) when IDE_DRIVE1 = '1' and nFB_OE = '0' else "ZZZZ"; - ----------------------------------------------------------------------------------------------------------------------------------------- -- ACSI, SCSI UND FLOPPY WD1772 ------------------------------------------------------------------------------------------------------------------------------------------- @@ -915,7 +917,7 @@ KEYB_RxD <= '0' when AMKB_REG(3) = '0' or PIC_AMKB_RX = '0' else '1'; -- TAST FB_AD(31 downto 24) <= DATA_OUT_ACIA_I when ACIA_CS_I = '1' and FB_ADR(2) = '0' and nFB_OE = '0' else DATA_OUT_ACIA_II when ACIA_CS_I = '1' and FB_ADR(2) = '1' and nFB_OE = '0' else "ZZZZZZZZ"; -- AMKB_TX: SPIKES AUSFILTERN und sychronisieren ------------------------------------------ - process(CLK2M, AMKB_RX, AMKB_REG) + process(CLK2M, AMKB_RX, AMKB_TX, AMKB_REG, CLK500k) begin if rising_edge(CLK500k) then AMKB_TX <= AMKB_TX_sync; @@ -995,7 +997,7 @@ MIDI_OLR <= MIDI_OUT; GPIP_IN(3) => BLITTER_INT OR DSP_INT, GPIP_IN(2) => not CTS, GPIP_IN(1) => not DCD, - GPIP_IN(0) => LP_BUSY, + GPIP_IN(0) => LP_BUSY XOR ACP_CONF(1), -- GPIP_OUT =>, -- Not used; all GPIPs are direction input. -- GPIP_EN =>, -- Not used; all GPIPs are direction input. -- Interrupt control: @@ -1032,7 +1034,8 @@ FB_AD(1 downto 0) <= "00" when MFP_INTACK = '1' and nFB_OE = '0' else "ZZ"; DINTn <= '0' when IDE_INT = '1' AND ACP_CONF(28) = '1' else '0' when FDINT = '1' else '0' when SCSI_INT = '1' AND ACP_CONF(27) = '1' else '1'; - ---------------------------------------------------------------------------- + +----------------------------------------------------------------------------- -- Sound ---------------------------------------------------------------------------- I_SOUND: WF2149IP_TOP_SOC @@ -1054,8 +1057,8 @@ DINTn <= '0' when IDE_INT = '1' AND ACP_CONF(28) = '1' else IO_A_IN => x"00", -- All port pins are dedicated outputs. IO_A_OUT(7) => nnIDE_RES, - IO_A_OUT(6) => LP_DIR_X, - IO_A_OUT(5) => nLP_STR, + IO_A_OUT(6) => LP_DIR_NS0, + IO_A_OUT(5) => LP_STR_NS0, IO_A_OUT(4) => DTR, IO_A_OUT(3) => RTS, -- IO_A_OUT(2) => FDD_D1SEL, @@ -1075,17 +1078,38 @@ SNDCS <= '1' when nFB_CS1 = '0' and FB_ADR(19 downto 2) = x"3E200" else '0'; -- SNDCS_I <= '1' when SNDCS = '1' and FB_ADR (1 downto 1) = "0" else '0'; SNDIR_I <= '1' when SNDCS = '1' and nFB_WR = '0' else '0'; FB_AD(31 downto 24) <= DA_OUT_X when SNDCS_I = '1' and nFB_OE = '0' else "ZZZZZZZZ"; -LP_D <= LP_D_X when LP_DIR_X = '0' else "ZZZZZZZZ"; -LP_DIR <= LP_DIR_X; -LP_STR <= not nLP_STR; - +LP_D <= LP_D_X when (LP_DIR_X = '0' OR ACP_CONF(2) = '0') else "ZZZZZZZZ"; +LP_STR <= LP_STR_X XOR ACP_CONF(0); +LP_DIR <= LP_DIR_X XOR ACP_CONF(3); +-- spikes weg ------------------------------------------ + process(CLK2M,LP_STR_NS1,LP_STR_NS0,LP_STR_X) + begin + if rising_edge(CLK2M) then + LP_STR_X <= (LP_STR_NS1 AND LP_STR_NS0) OR (LP_STR_X AND LP_STR_NS1); + LP_STR_NS1 <= LP_STR_NS0; + else + LP_STR_X <= LP_STR_X; + LP_STR_NS1 <= LP_STR_NS1; + end if; + END PROCESS; + + process(CLK2M,LP_DIR_NS1,LP_DIR_NS0,LP_DIR_X) + begin + if rising_edge(CLK2M) then + LP_DIR_X <= (LP_DIR_NS1 AND LP_DIR_NS0) OR (LP_DIR_X AND LP_DIR_NS1); + LP_DIR_NS1 <= LP_DIR_NS0; + else + LP_DIR_X <= LP_DIR_X; + LP_DIR_NS1 <= LP_DIR_NS1; + end if; + END PROCESS; ---------------------------------------------------------------------------- -- DMA Sound register ---------------------------------------------------------------------------- dma_snd_cs <= '1' when nFB_CS1 = '0' and FB_ADR(19 downto 6) = x"3E24" else '0'; -- F8900-F893F - process(nRSTO,MAIN_CLK,FB_ADR(5 downto 1), dma_snd_cs) + process(nRSTO,MAIN_CLK,FB_ADR(5 downto 1), dma_snd_cs, nFB_WR, FB_B1, sndmactl) begin if nRSTO = '0' THEN sndmactl <= x"00"; @@ -1097,7 +1121,7 @@ dma_snd_cs <= '1' when nFB_CS1 = '0' and FB_ADR(19 downto 6) = x"3E24" else '0'; END PROCESS; FB_AD(23 downto 16) <= sndmactl when dma_snd_cs = '1' and FB_ADR(5 downto 1) = x"0" and nFB_OE = '0' else "ZZZZZZZZ"; - process(nRSTO,MAIN_CLK,FB_ADR(5 downto 1), dma_snd_cs) + process(nRSTO,MAIN_CLK,FB_ADR(5 downto 1), dma_snd_cs, sndbashi) begin if nRSTO = '0' THEN sndbashi <= x"00"; @@ -1220,7 +1244,6 @@ FB_AD(23 downto 16) <= sndmode when dma_snd_cs = '1' and FB_ADR(5 downto 1) = x" ---------------------------------------------------------------------------- -- Paddle ---------------------------------------------------------------------------- - paddle_cs <= '1' when nFB_CS1 = '0' and FB_ADR(19 downto 6) = x"3E48" else '0'; -- F9200-F923F FB_AD(31 downto 16) <= x"bfff" when paddle_cs = '1' and FB_ADR(5 downto 1) = x"0" and nFB_OE = '0' else "ZZZZZZZZZZZZZZZZ"; @@ -1232,4 +1255,5 @@ FB_AD(31 downto 16) <= x"ffff" when paddle_cs = '1' and FB_ADR(5 downto 1) = x"B FB_AD(31 downto 16) <= x"0000" when paddle_cs = '1' and FB_ADR(5 downto 1) = x"10" and nFB_OE = '0' else "ZZZZZZZZZZZZZZZZ"; FB_AD(31 downto 16) <= x"0000" when paddle_cs = '1' and FB_ADR(5 downto 1) = x"11" and nFB_OE = '0' else "ZZZZZZZZZZZZZZZZ"; +--**************************************************************** END FalconIO_SDCard_IDE_CF_architecture; diff --git a/FPGA_by_Fredi/FalconIO_SDCard_IDE_CF/dcfifo1.vhd.bak b/FPGA_by_Fredi/FalconIO_SDCard_IDE_CF/dcfifo1.vhd.bak deleted file mode 100644 index e7c6ae6..0000000 --- a/FPGA_by_Fredi/FalconIO_SDCard_IDE_CF/dcfifo1.vhd.bak +++ /dev/null @@ -1,202 +0,0 @@ --- megafunction wizard: %LPM_FIFO+% --- GENERATION: STANDARD --- VERSION: WM1.0 --- MODULE: dcfifo_mixed_widths - --- ============================================================ --- File Name: dcfifo1.vhd --- Megafunction Name(s): --- dcfifo_mixed_widths --- --- Simulation Library Files(s): --- altera_mf --- ============================================================ --- ************************************************************ --- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! --- --- 9.1 Build 222 10/21/2009 SJ Web Edition --- ************************************************************ - - ---Copyright (C) 1991-2009 Altera Corporation ---Your use of Altera Corporation's design tools, logic functions ---and other software and tools, and its AMPP partner logic ---functions, and any output files from any of the foregoing ---(including device programming or simulation files), and any ---associated documentation or information are expressly subject ---to the terms and conditions of the Altera Program License ---Subscription Agreement, Altera MegaCore Function License ---Agreement, or other applicable license agreement, including, ---without limitation, that your use is for the sole purpose of ---programming logic devices manufactured by Altera and sold by ---Altera or its authorized distributors. Please refer to the ---applicable agreement for further details. - - -LIBRARY ieee; -USE ieee.std_logic_1164.all; - -LIBRARY altera_mf; -USE altera_mf.all; - -ENTITY dcfifo1 IS - PORT - ( - aclr : IN STD_LOGIC := '0'; - data : IN STD_LOGIC_VECTOR (15 DOWNTO 0); - rdclk : IN STD_LOGIC ; - rdreq : IN STD_LOGIC ; - wrclk : IN STD_LOGIC ; - wrreq : IN STD_LOGIC ; - q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); - wrusedw : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) - ); -END dcfifo1; - - -ARCHITECTURE SYN OF dcfifo1 IS - - SIGNAL sub_wire0 : STD_LOGIC_VECTOR (3 DOWNTO 0); - SIGNAL sub_wire1 : STD_LOGIC_VECTOR (7 DOWNTO 0); - - - - COMPONENT dcfifo_mixed_widths - GENERIC ( - intended_device_family : STRING; - lpm_numwords : NATURAL; - lpm_showahead : STRING; - lpm_type : STRING; - lpm_width : NATURAL; - lpm_widthu : NATURAL; - lpm_widthu_r : NATURAL; - lpm_width_r : NATURAL; - overflow_checking : STRING; - rdsync_delaypipe : NATURAL; - underflow_checking : STRING; - use_eab : STRING; - write_aclr_synch : STRING; - wrsync_delaypipe : NATURAL - ); - PORT ( - wrclk : IN STD_LOGIC ; - rdreq : IN STD_LOGIC ; - wrusedw : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); - aclr : IN STD_LOGIC ; - rdclk : IN STD_LOGIC ; - q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); - wrreq : IN STD_LOGIC ; - data : IN STD_LOGIC_VECTOR (15 DOWNTO 0) - ); - END COMPONENT; - -BEGIN - wrusedw <= sub_wire0(3 DOWNTO 0); - q <= sub_wire1(7 DOWNTO 0); - - dcfifo_mixed_widths_component : dcfifo_mixed_widths - GENERIC MAP ( - intended_device_family => "Cyclone III", - lpm_numwords => 16, - lpm_showahead => "OFF", - lpm_type => "dcfifo", - lpm_width => 16, - lpm_widthu => 4, - lpm_widthu_r => 5, - lpm_width_r => 8, - overflow_checking => "ON", - rdsync_delaypipe => 5, - underflow_checking => "ON", - use_eab => "ON", - write_aclr_synch => "OFF", - wrsync_delaypipe => 5 - ) - PORT MAP ( - wrclk => wrclk, - rdreq => rdreq, - aclr => aclr, - rdclk => rdclk, - wrreq => wrreq, - data => data, - wrusedw => sub_wire0, - q => sub_wire1 - ); - - - -END SYN; - --- ============================================================ --- CNX file retrieval info --- ============================================================ --- Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0" --- Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" --- Retrieval info: PRIVATE: AlmostFull NUMERIC "0" --- Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" --- Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" --- Retrieval info: PRIVATE: Clock NUMERIC "4" --- Retrieval info: PRIVATE: Depth NUMERIC "16" --- Retrieval info: PRIVATE: Empty NUMERIC "1" --- Retrieval info: PRIVATE: Full NUMERIC "1" --- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III" --- Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" --- Retrieval info: PRIVATE: LegacyRREQ NUMERIC "1" --- Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" --- Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "0" --- Retrieval info: PRIVATE: Optimize NUMERIC "1" --- Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" --- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" --- Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "0" --- Retrieval info: PRIVATE: UsedW NUMERIC "1" --- Retrieval info: PRIVATE: Width NUMERIC "16" --- Retrieval info: PRIVATE: dc_aclr NUMERIC "1" --- Retrieval info: PRIVATE: diff_widths NUMERIC "1" --- Retrieval info: PRIVATE: msb_usedw NUMERIC "0" --- Retrieval info: PRIVATE: output_width NUMERIC "8" --- Retrieval info: PRIVATE: rsEmpty NUMERIC "0" --- Retrieval info: PRIVATE: rsFull NUMERIC "0" --- Retrieval info: PRIVATE: rsUsedW NUMERIC "0" --- Retrieval info: PRIVATE: sc_aclr NUMERIC "0" --- Retrieval info: PRIVATE: sc_sclr NUMERIC "0" --- Retrieval info: PRIVATE: wsEmpty NUMERIC "0" --- Retrieval info: PRIVATE: wsFull NUMERIC "0" --- Retrieval info: PRIVATE: wsUsedW NUMERIC "1" --- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III" --- Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "16" --- Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "OFF" --- Retrieval info: CONSTANT: LPM_TYPE STRING "dcfifo" --- Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" --- Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "4" --- Retrieval info: CONSTANT: LPM_WIDTHU_R NUMERIC "5" --- Retrieval info: CONSTANT: LPM_WIDTH_R NUMERIC "8" --- Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "ON" --- Retrieval info: CONSTANT: RDSYNC_DELAYPIPE NUMERIC "5" --- Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "ON" --- Retrieval info: CONSTANT: USE_EAB STRING "ON" --- Retrieval info: CONSTANT: WRITE_ACLR_SYNCH STRING "OFF" --- Retrieval info: CONSTANT: WRSYNC_DELAYPIPE NUMERIC "5" --- Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT GND aclr --- Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] --- Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL q[7..0] --- Retrieval info: USED_PORT: rdclk 0 0 0 0 INPUT NODEFVAL rdclk --- Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq --- Retrieval info: USED_PORT: wrclk 0 0 0 0 INPUT NODEFVAL wrclk --- Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq --- Retrieval info: USED_PORT: wrusedw 0 0 4 0 OUTPUT NODEFVAL wrusedw[3..0] --- Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 --- Retrieval info: CONNECT: q 0 0 8 0 @q 0 0 8 0 --- Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 --- Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 --- Retrieval info: CONNECT: @rdclk 0 0 0 0 rdclk 0 0 0 0 --- Retrieval info: CONNECT: @wrclk 0 0 0 0 wrclk 0 0 0 0 --- Retrieval info: CONNECT: wrusedw 0 0 4 0 @wrusedw 0 0 4 0 --- Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 --- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all --- Retrieval info: GEN_FILE: TYPE_NORMAL dcfifo1.vhd TRUE --- Retrieval info: GEN_FILE: TYPE_NORMAL dcfifo1.inc FALSE --- Retrieval info: GEN_FILE: TYPE_NORMAL dcfifo1.cmp TRUE --- Retrieval info: GEN_FILE: TYPE_NORMAL dcfifo1.bsf TRUE --- Retrieval info: GEN_FILE: TYPE_NORMAL dcfifo1_inst.vhd FALSE --- Retrieval info: GEN_FILE: TYPE_NORMAL dcfifo1_waveforms.html FALSE --- Retrieval info: GEN_FILE: TYPE_NORMAL dcfifo1_wave*.jpg FALSE --- Retrieval info: LIB_FILE: altera_mf diff --git a/FPGA_by_Fredi/Interrupt_Handler/interrupt_handler.tdf.bak b/FPGA_by_Fredi/Interrupt_Handler/interrupt_handler.tdf.bak deleted file mode 100644 index 7e4aa32..0000000 --- a/FPGA_by_Fredi/Interrupt_Handler/interrupt_handler.tdf.bak +++ /dev/null @@ -1,391 +0,0 @@ -TITLE "INTERRUPT HANDLER UND C1287"; - --- CREATED BY FREDI ASCHWANDEN - -INCLUDE "lpm_bustri_LONG.inc"; -INCLUDE "lpm_bustri_BYT.inc"; - - --- Parameters Statement (optional) - --- {{ALTERA_PARAMETERS_BEGIN}} DO NOT REMOVE THIS LINE! --- {{ALTERA_PARAMETERS_END}} DO NOT REMOVE THIS LINE! - - --- Subdesign Section - -SUBDESIGN interrupt_handler -( - -- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE! - MAIN_CLK : INPUT; - nFB_WR : INPUT; - nFB_CS1 : INPUT; - nFB_CS2 : INPUT; - FB_SIZE0 : INPUT; - FB_SIZE1 : INPUT; - FB_ADR[31..0] : INPUT; - FPGA_DATE[31..0] : INPUT; - PIC_INT : INPUT; - E0_INT : INPUT; - DVI_INT : INPUT; - nPCI_INTA : INPUT; - nPCI_INTB : INPUT; - nPCI_INTC : INPUT; - nPCI_INTD : INPUT; - nMFP_INT : INPUT; - nFB_OE : INPUT; - DSP_INT : INPUT; - VSYNC : INPUT; - HSYNC : INPUT; - DMA_DRQ : INPUT; - nRSTO : INPUT; - nIRQ[7..2] : OUTPUT; - INT_HANDLER_TA : OUTPUT; - ACP_CONF[31..0] : OUTPUT; - TIN0 : OUTPUT; - FB_AD[31..0] : BIDIR; - -- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! -) - -VARIABLE - FB_B[3..0] :NODE; - INT_CTR[31..0] :DFFE; - INT_CTR_CS :NODE; - INT_LATCH[31..0] :DFF; - INT_LATCH_CS :NODE; - INT_CLEAR[31..0] :DFF; - INT_CLEAR_CS :NODE; - INT_IN[31..0] :NODE; - INT_ENA[31..0] :DFFE; - INT_ENA_CS :NODE; - INT_L[9..0] :DFF; - INT_LA[9..0][3..0] :DFF; - ACP_CONF[31..0] :DFFE; - ACP_CONF_CS :NODE; - FPGA_DATE_CS :NODE; - PSEUDO_BUS_ERROR :NODE; - UHR_AS :NODE; - UHR_DS :NODE; - RTC_ADR[5..0] :DFFE; - ACHTELSEKUNDEN[2..0] :DFFE; - WERTE[7..0][63..0] :DFFE; -- WERTE REGISTER 0-63 - PIC_INT_SYNC[2..0] :DFF; - INC_SEC :NODE; - INC_MIN :NODE; - INC_STD :NODE; - INC_TAG :NODE; - ANZAHL_TAGE_DES_MONATS[7..0]:NODE; - WINTERZEIT :NODE; - SOMMERZEIT :NODE; - INC_MONAT :NODE; - INC_JAHR :NODE; - UPDATE_ON :NODE; - -BEGIN --- BYT SELECT - FB_B0 = FB_SIZE1 & !FB_SIZE0 & !FB_ADR1 -- HWORD - # !FB_SIZE1 & FB_SIZE0 & !FB_ADR1 & !FB_ADR0 -- HHBYT - # !FB_SIZE1 & !FB_SIZE0 # FB_SIZE1 & FB_SIZE0; -- LONG UND LINE - FB_B1 = FB_SIZE1 & !FB_SIZE0 & !FB_ADR1 -- HWORD - # !FB_SIZE1 & FB_SIZE0 & !FB_ADR1 & FB_ADR0 -- HLBYT - # !FB_SIZE1 & !FB_SIZE0 # FB_SIZE1 & FB_SIZE0; -- LONG UND LINE - FB_B2 = FB_SIZE1 & !FB_SIZE0 & FB_ADR1 -- LWORD - # !FB_SIZE1 & FB_SIZE0 & FB_ADR1 & !FB_ADR0 -- LHBYT - # !FB_SIZE1 & !FB_SIZE0 # FB_SIZE1 & FB_SIZE0; -- LONG UND LINE - FB_B3 = FB_SIZE1 & !FB_SIZE0 & FB_ADR1 -- LWORD - # !FB_SIZE1 & FB_SIZE0 & FB_ADR1 & FB_ADR0 -- LLBYT - # !FB_SIZE1 & !FB_SIZE0 # FB_SIZE1 & FB_SIZE0; -- LONG UND LINE - --- INTERRUPT CONTROL REGISTER: BIT0=INT5 AUSLÖSEN, 1=INT7 AUSLÖSEN - INT_CTR[].CLK = MAIN_CLK; - INT_CTR_CS = !nFB_CS2 & FB_ADR[27..2]==H"4000"; -- $10000/4 - INT_CTR[] = FB_AD[]; - INT_CTR[31..24].ENA = INT_CTR_CS & FB_B0 & !nFB_WR; - INT_CTR[23..16].ENA = INT_CTR_CS & FB_B1 & !nFB_WR; - INT_CTR[15..8].ENA = INT_CTR_CS & FB_B2 & !nFB_WR; - INT_CTR[7..0].ENA = INT_CTR_CS & FB_B3 & !nFB_WR; --- INTERRUPT ENABLE REGISTER BIT31=INT7,30=INT6,29=INT5,28=INT4,27=INT3,26=INT2 - INT_ENA[].CLK = MAIN_CLK; - INT_ENA[].CLRN = nRSTO; - INT_ENA_CS = !nFB_CS2 & FB_ADR[27..2]==H"4001"; -- $10004/4 - INT_ENA[] = FB_AD[]; - INT_ENA[31..24].ENA = INT_ENA_CS & FB_B0 & !nFB_WR; - INT_ENA[23..16].ENA = INT_ENA_CS & FB_B1 & !nFB_WR; - INT_ENA[15..8].ENA = INT_ENA_CS & FB_B2 & !nFB_WR; - INT_ENA[7..0].ENA = INT_ENA_CS & FB_B3 & !nFB_WR; --- INTERRUPT CLEAR REGISTER WRITE ONLY 1=INTERRUPT CLEAR - INT_CLEAR[].CLK = MAIN_CLK; - INT_CLEAR_CS = !nFB_CS2 & FB_ADR[27..2]==H"4002"; -- $10008/4 - INT_CLEAR[31..24] = FB_AD[31..24] & INT_CLEAR_CS & FB_B0 & !nFB_WR; - INT_CLEAR[23..16] = FB_AD[23..16] & INT_CLEAR_CS & FB_B1 & !nFB_WR; - INT_CLEAR[15..8] = FB_AD[15..8] & INT_CLEAR_CS & FB_B2 & !nFB_WR; - INT_CLEAR[7..0] = FB_AD[7..0] & INT_CLEAR_CS & FB_B3 & !nFB_WR; --- INTERRUPT LATCH REGISTER READ ONLY - INT_LATCH_CS = !nFB_CS2 & FB_ADR[27..2]==H"4003"; -- $1000C/4 --- INTERRUPT - !nIRQ2 = HSYNC & INT_ENA[26]; - !nIRQ3 = INT_CTR0 & INT_ENA[27]; - !nIRQ4 = VSYNC & INT_ENA[28]; - !nIRQ5 = INT_LATCH[]!=H"00000000" & INT_ENA[29]; - !nIRQ6 = !nMFP_INT & INT_ENA[30]; - !nIRQ7 = PSEUDO_BUS_ERROR & INT_ENA[31]; - -PSEUDO_BUS_ERROR = !nFB_CS1 & (FB_ADR[19..4]==H"F8C8" -- SCC - # FB_ADR[19..4]==H"F8E0" -- VME --- # FB_ADR[19..4]==H"F920" -- PADDLE --- # FB_ADR[19..4]==H"F921" -- PADDLE --- # FB_ADR[19..4]==H"F922" -- PADDLE - # FB_ADR[19..4]==H"FFA8" -- MFP2 - # FB_ADR[19..4]==H"FFA9" -- MFP2 - # FB_ADR[19..4]==H"FFAA" -- MFP2 - # FB_ADR[19..4]==H"FFA8" -- MFP2 - # FB_ADR[19..8]==H"F87" -- TT SCSI - # FB_ADR[19..4]==H"FFC2" -- ST UHR - # FB_ADR[19..4]==H"FFC3" -- ST UHR --- # FB_ADR[19..4]==H"F890" -- DMA SOUND --- # FB_ADR[19..4]==H"F891" -- DMA SOUND --- # FB_ADR[19..4]==H"F892" -- DMA SOUND - ); --- IF VIDEO ADR CHANGE -TIN0 = !nFB_CS1 & FB_ADR[19..1]==H"7C100" & !nFB_WR; -- WRITE VIDEO BASE ADR HIGH 0xFFFF8201/2 - --- INTERRUPT LATCH - INT_L[].CLK = MAIN_CLK; - INT_L[].CLRN = nRSTO; - INT_L0 = PIC_INT & INT_ENA[0]; - INT_L1 = E0_INT & INT_ENA[1]; - INT_L2 = DVI_INT & INT_ENA[2]; - INT_L3 = !nPCI_INTA & INT_ENA[3]; - INT_L4 = !nPCI_INTB & INT_ENA[4]; - INT_L5 = !nPCI_INTC & INT_ENA[5]; - INT_L6 = !nPCI_INTD & INT_ENA[6]; - INT_L7 = DSP_INT & INT_ENA[7]; - INT_L8 = VSYNC & INT_ENA[8]; - INT_L9 = HSYNC & INT_ENA[9]; - - INT_LA[][].CLK = MAIN_CLK; - INT_LATCH[] = H"FFFFFFFF"; - INT_LATCH[].CLRN = !INT_CLEAR[] & nRSTO; - FOR I IN 0 TO 9 GENERATE - INT_LA[I][].CLRN = INT_ENA[I] & nRSTO; - INT_LA[I][] = INT_LA[I][]+1 & INT_L[I] & INT_LA[I][]<7 - # INT_LA[I][]-1 & !INT_L[I] & INT_LA[I][]>8 - # 15 & INT_L[I] & INT_LA[I][]>6 - # 0 & !INT_L[I] & INT_LA[I][]<9; - INT_LATCH[I].CLK = INT_LA[I][3]; - END GENERATE; - --- INT_IN - INT_IN0 = PIC_INT; - INT_IN1 = E0_INT; - INT_IN2 = DVI_INT; - INT_IN3 = !nPCI_INTA; - INT_IN4 = !nPCI_INTB; - INT_IN5 = !nPCI_INTC; - INT_IN6 = !nPCI_INTD; - INT_IN7 = DSP_INT; - INT_IN8 = VSYNC; - INT_IN9 = HSYNC; - INT_IN[25..10] = H"0"; - INT_IN26 = HSYNC; - INT_IN27 = INT_CTR0; - INT_IN28 = VSYNC; - INT_IN29 = INT_LATCH[]!=H"00000000"; - INT_IN30 = !nMFP_INT; - INT_IN31 = DMA_DRQ; ---*************************************************************************************** --- ACP CONFIG REGISTER: BIT 31-> 0=CF 1=IDE - ACP_CONF[].CLK = MAIN_CLK; - ACP_CONF_CS = !nFB_CS2 & FB_ADR[27..2]==H"10000"; -- $4'0000/4 - ACP_CONF[] = FB_AD[]; - ACP_CONF[31..24].ENA = ACP_CONF_CS & FB_B0 & !nFB_WR; - ACP_CONF[23..16].ENA = ACP_CONF_CS & FB_B1 & !nFB_WR; - ACP_CONF[15..8].ENA = ACP_CONF_CS & FB_B2 & !nFB_WR; - ACP_CONF[7..0].ENA = ACP_CONF_CS & FB_B3 & !nFB_WR; ---*************************************************************************************** --- FPGA DATE HEX (ddmmyyyy) - FPGA_DATE_CS = !nFB_CS2 & FB_ADR[27..2]==H"10040"; -- $4'0000/4 ---*************************************************************************************** - --------------------------------------------------------------- --- C1287 0=SEK 2=MIN 4=STD 6=WOCHENTAG 7=TAG 8=MONAT 9=JAHR ----------------------------------------------------------- - RTC_ADR[].CLK = MAIN_CLK; - RTC_ADR[] = FB_AD[21..16]; - UHR_AS = !nFB_CS1 & FB_ADR[19..1]==H"7C4B0" & FB_B1; -- FFFF8961 - UHR_DS = !nFB_CS1 & FB_ADR[19..1]==H"7C4B1" & FB_B3; -- FFFF8963 - RTC_ADR[].ENA = UHR_AS & !nFB_WR; - WERTE[][].CLK = MAIN_CLK; - WERTE[7..0][0] = FB_AD[23..16] & RTC_ADR[]==0 & UHR_DS & !nFB_WR; - WERTE[7..0][1] = FB_AD[23..16]; - WERTE[7..0][2] = FB_AD[23..16] & RTC_ADR[]==2 & UHR_DS & !nFB_WR; - WERTE[7..0][3] = FB_AD[23..16]; - WERTE[7..0][4] = FB_AD[23..16] & RTC_ADR[]==4 & UHR_DS & !nFB_WR; - WERTE[7..0][5] = FB_AD[23..16]; - WERTE[7..0][6] = FB_AD[23..16] & RTC_ADR[]==6 & UHR_DS & !nFB_WR; - WERTE[7..0][7] = FB_AD[23..16] & RTC_ADR[]==7 & UHR_DS & !nFB_WR; - WERTE[7..0][8] = FB_AD[23..16] & RTC_ADR[]==8 & UHR_DS & !nFB_WR; - WERTE[7..0][9] = FB_AD[23..16] & RTC_ADR[]==9 & UHR_DS & !nFB_WR; - FOR I IN 10 TO 63 GENERATE - WERTE[7..0][I] = FB_AD[23..16]; - END GENERATE; - FOR I IN 0 TO 63 GENERATE - WERTE[][I].ENA = RTC_ADR[]==I & UHR_DS & !nFB_WR; - END GENERATE; - PIC_INT_SYNC[].CLK = MAIN_CLK; - PIC_INT_SYNC[0] = PIC_INT; - PIC_INT_SYNC[1] = PIC_INT_SYNC[0]; - PIC_INT_SYNC[2] = !PIC_INT_SYNC[1] & PIC_INT_SYNC[0]; - UPDATE_ON = !WERTE[7][11]; - WERTE[6][10].CLRN = GND; -- KEIN UIP - UPDATE_ON = !WERTE[7][11]; -- UPDATE ON OFF - WERTE[2][11] = VCC; -- IMMER BINARY - WERTE[1][11] = VCC; -- IMMER 24H FORMAT - WERTE[0][11] = VCC; -- IMMER SOMMERZEITKORREKTUR - WERTE[7][13] = VCC; -- IMMER RICHTIG --- SOMMER WINTERZEIT: BIT 0 IM REGISTER D IST DIE INFORMATION OB SOMMERZEIT IST (BRAUCHT MAN FÜR RÜCKSCHALTUNG) - SOMMERZEIT = WERTE[][6]==1 & WERTE[][4]==1 & WERTE[][8]==4 & WERTE[][7]>23; --LETZTER SONNTAG IM APRIL - WERTE[0][13] = SOMMERZEIT; - WERTE[0][13].ENA = INC_STD & (SOMMERZEIT # WINTERZEIT); - WINTERZEIT = WERTE[][6]==1 & WERTE[][4]==1 & WERTE[][8]==10 & WERTE[][7]>24 & WERTE[0][13]; --LETZTER SONNTAG IM OKTOBER --- ACHTELSEKUNDEN - ACHTELSEKUNDEN[].CLK = MAIN_CLK; - ACHTELSEKUNDEN[] = ACHTELSEKUNDEN[]+1; - ACHTELSEKUNDEN[].ENA = PIC_INT_SYNC[2] & UPDATE_ON; --- SEKUNDEN - INC_SEC = ACHTELSEKUNDEN[]==7 & PIC_INT_SYNC[2] & UPDATE_ON; - WERTE[][0] = (WERTE[][0]+1) & WERTE[][0]!=59 & !(RTC_ADR[]==0 & UHR_DS & !nFB_WR); -- SEKUNDEN ZÄHLEN BIS 59 - WERTE[][0].ENA = INC_SEC & !(RTC_ADR[]==0 & UHR_DS & !nFB_WR); --- MINUTEN - INC_MIN = INC_SEC & WERTE[][0]==59; -- - WERTE[][2] = (WERTE[][2]+1) & WERTE[][2]!=59 & !(RTC_ADR[]==2 & UHR_DS & !nFB_WR); -- MINUTEN ZÄHLEN BIS 59 - WERTE[][2].ENA = INC_MIN & !(RTC_ADR[]==2 & UHR_DS & !nFB_WR); -- --- STUNDEN - INC_STD = INC_MIN & WERTE[][2]==59; - WERTE[][4] = (WERTE[][4]+1+(1 & SOMMERZEIT)) & WERTE[][4]!=23 & !(RTC_ADR[]==4 & UHR_DS & !nFB_WR); -- STUNDEN ZÄHLEN BIS 23 - WERTE[][4].ENA = INC_STD & !(WINTERZEIT & WERTE[0][12]) & !(RTC_ADR[]==4 & UHR_DS & !nFB_WR); -- EINE STUNDE AUSLASSEN WENN WINTERZEITUMSCHALTUNG UND NOCH SOMMERZEIT --- WOCHENTAG UND TAG - INC_TAG = INC_STD & WERTE[][2]==23; - WERTE[][6] = (WERTE[][6]+1) & WERTE[][6]!=7 & !(RTC_ADR[]==6 & UHR_DS & !nFB_WR) -- WOCHENTAG ZÄHLEN BIS 7 - # 1 & WERTE[][6]==7 & !(RTC_ADR[]==6 & UHR_DS & !nFB_WR); -- DANN BEI 1 WEITER - WERTE[][6].ENA = INC_TAG & !(RTC_ADR[]==6 & UHR_DS & !nFB_WR); - ANZAHL_TAGE_DES_MONATS[] = 31 & (WERTE[][8]==1 # WERTE[][8]==3 # WERTE[][8]==5 # WERTE[][8]==7 # WERTE[][8]==8 # WERTE[][8]==10 # WERTE[][8]==12) - # 30 & (WERTE[][8]==4 # WERTE[][8]==6 # WERTE[][8]==9 # WERTE[][8]==11) - # 29 & WERTE[][8]==2 & WERTE[1..0][9]==0 - # 28 & WERTE[][8]==2 & WERTE[1..0][9]!=0; - WERTE[][7] = (WERTE[][7]+1) & WERTE[][7]!=ANZAHL_TAGE_DES_MONATS[] & !(RTC_ADR[]==7 & UHR_DS & !nFB_WR) -- TAG ZÄHLEN BIS MONATSENDE - # 1 & WERTE[][7]==ANZAHL_TAGE_DES_MONATS[] & !(RTC_ADR[]==7 & UHR_DS & !nFB_WR); -- DANN BEI 1 WEITER - WERTE[][7].ENA = INC_TAG & !(RTC_ADR[]==7 & UHR_DS & !nFB_WR); -- --- MONATE - INC_MONAT = INC_TAG & WERTE[][7]==ANZAHL_TAGE_DES_MONATS[]; -- - WERTE[][8] = (WERTE[][8]+1) & WERTE[][8]!=12 & !(RTC_ADR[]==8 & UHR_DS & !nFB_WR) -- MONATE ZÄHLEN BIS 12 - # 1 & WERTE[][8]==12 & !(RTC_ADR[]==8 & UHR_DS & !nFB_WR); -- DANN BEI 1 WEITER - WERTE[][8].ENA = INC_MONAT & !(RTC_ADR[]==8 & UHR_DS & !nFB_WR); --- JAHR - INC_JAHR = INC_MONAT & WERTE[][8]==12; -- - WERTE[][9] = (WERTE[][9]+1) & WERTE[][9]!=99 & !(RTC_ADR[]==9 & UHR_DS & !nFB_WR); -- JAHRE ZÄHLEN BIS 99 - WERTE[][9].ENA = INC_JAHR & !(RTC_ADR[]==9 & UHR_DS & !nFB_WR); --- TRISTATE OUTPUT - - FB_AD[31..24] = lpm_bustri_BYT( - INT_CTR_CS & INT_CTR[31..24] - # INT_ENA_CS & INT_ENA[31..24] - # INT_LATCH_CS & INT_LATCH[31..24] - # INT_CLEAR_CS & INT_IN[31..24] - # ACP_CONF_CS & ACP_CONF[31..24] - # FPGA_DATE_CS & FPGA_DATE[31..24] - ,(INT_CTR_CS # INT_ENA_CS # INT_LATCH_CS # INT_CLEAR_CS # ACP_CONF_CS) & !nFB_OE); - FB_AD[23..16] = lpm_bustri_BYT( - WERTE[][0] & RTC_ADR[]==0 & UHR_DS - # WERTE[][1] & RTC_ADR[]==1 & UHR_DS - # WERTE[][2] & RTC_ADR[]==2 & UHR_DS - # WERTE[][3] & RTC_ADR[]==3 & UHR_DS - # WERTE[][4] & RTC_ADR[]==4 & UHR_DS - # WERTE[][5] & RTC_ADR[]==5 & UHR_DS - # WERTE[][6] & RTC_ADR[]==6 & UHR_DS - # WERTE[][7] & RTC_ADR[]==7 & UHR_DS - # WERTE[][8] & RTC_ADR[]==8 & UHR_DS - # WERTE[][9] & RTC_ADR[]==9 & UHR_DS - # WERTE[][10] & RTC_ADR[]==10 & UHR_DS - # WERTE[][11] & RTC_ADR[]==11 & UHR_DS - # WERTE[][12] & RTC_ADR[]==12 & UHR_DS - # WERTE[][13] & RTC_ADR[]==13 & UHR_DS - # WERTE[][14] & RTC_ADR[]==14 & UHR_DS - # WERTE[][15] & RTC_ADR[]==15 & UHR_DS - # WERTE[][16] & RTC_ADR[]==16 & UHR_DS - # WERTE[][17] & RTC_ADR[]==17 & UHR_DS - # WERTE[][18] & RTC_ADR[]==18 & UHR_DS - # WERTE[][19] & RTC_ADR[]==19 & UHR_DS - # WERTE[][20] & RTC_ADR[]==20 & UHR_DS - # WERTE[][21] & RTC_ADR[]==21 & UHR_DS - # WERTE[][22] & RTC_ADR[]==22 & UHR_DS - # WERTE[][23] & RTC_ADR[]==23 & UHR_DS - # WERTE[][24] & RTC_ADR[]==24 & UHR_DS - # WERTE[][25] & RTC_ADR[]==25 & UHR_DS - # WERTE[][26] & RTC_ADR[]==26 & UHR_DS - # WERTE[][27] & RTC_ADR[]==27 & UHR_DS - # WERTE[][28] & RTC_ADR[]==28 & UHR_DS - # WERTE[][29] & RTC_ADR[]==29 & UHR_DS - # WERTE[][30] & RTC_ADR[]==30 & UHR_DS - # WERTE[][31] & RTC_ADR[]==31 & UHR_DS - # WERTE[][32] & RTC_ADR[]==32 & UHR_DS - # WERTE[][33] & RTC_ADR[]==33 & UHR_DS - # WERTE[][34] & RTC_ADR[]==34 & UHR_DS - # WERTE[][35] & RTC_ADR[]==35 & UHR_DS - # WERTE[][36] & RTC_ADR[]==36 & UHR_DS - # WERTE[][37] & RTC_ADR[]==37 & UHR_DS - # WERTE[][38] & RTC_ADR[]==38 & UHR_DS - # WERTE[][39] & RTC_ADR[]==39 & UHR_DS - # WERTE[][40] & RTC_ADR[]==40 & UHR_DS - # WERTE[][41] & RTC_ADR[]==41 & UHR_DS - # WERTE[][42] & RTC_ADR[]==42 & UHR_DS - # WERTE[][43] & RTC_ADR[]==43 & UHR_DS - # WERTE[][44] & RTC_ADR[]==44 & UHR_DS - # WERTE[][45] & RTC_ADR[]==45 & UHR_DS - # WERTE[][46] & RTC_ADR[]==46 & UHR_DS - # WERTE[][47] & RTC_ADR[]==47 & UHR_DS - # WERTE[][48] & RTC_ADR[]==48 & UHR_DS - # WERTE[][49] & RTC_ADR[]==49 & UHR_DS - # WERTE[][50] & RTC_ADR[]==50 & UHR_DS - # WERTE[][51] & RTC_ADR[]==51 & UHR_DS - # WERTE[][52] & RTC_ADR[]==52 & UHR_DS - # WERTE[][53] & RTC_ADR[]==53 & UHR_DS - # WERTE[][54] & RTC_ADR[]==54 & UHR_DS - # WERTE[][55] & RTC_ADR[]==55 & UHR_DS - # WERTE[][56] & RTC_ADR[]==56 & UHR_DS - # WERTE[][57] & RTC_ADR[]==57 & UHR_DS - # WERTE[][58] & RTC_ADR[]==58 & UHR_DS - # WERTE[][59] & RTC_ADR[]==59 & UHR_DS - # WERTE[][60] & RTC_ADR[]==60 & UHR_DS - # WERTE[][61] & RTC_ADR[]==61 & UHR_DS - # WERTE[][62] & RTC_ADR[]==62 & UHR_DS - # WERTE[][63] & RTC_ADR[]==63 & UHR_DS - # (0,RTC_ADR[]) & UHR_AS - # INT_CTR_CS & INT_CTR[23..16] - # INT_ENA_CS & INT_ENA[23..16] - # INT_LATCH_CS & INT_LATCH[23..16] - # INT_CLEAR_CS & INT_IN[23..16] - # ACP_CONF_CS & ACP_CONF[23..16] - # FPGA_DATE_CS & FPGA_DATE[23..16] - ,(UHR_DS # UHR_AS # INT_CTR_CS # INT_ENA_CS # INT_LATCH_CS # INT_CLEAR_CS # ACP_CONF_CS) & !nFB_OE); - FB_AD[15..8] = lpm_bustri_BYT( - INT_CTR_CS & INT_CTR[15..8] - # INT_ENA_CS & INT_ENA[15..8] - # INT_LATCH_CS & INT_LATCH[15..8] - # INT_CLEAR_CS & INT_IN[15..8] - # ACP_CONF_CS & ACP_CONF[15..8] - # FPGA_DATE_CS & FPGA_DATE[15..8] - ,(INT_CTR_CS # INT_ENA_CS # INT_LATCH_CS # INT_CLEAR_CS # ACP_CONF_CS) & !nFB_OE); - FB_AD[7..0] = lpm_bustri_BYT( - INT_CTR_CS & INT_CTR[7..0] - # INT_ENA_CS & INT_ENA[7..0] - # INT_LATCH_CS & INT_LATCH[7..0] - # INT_CLEAR_CS & INT_IN[7..0] - # ACP_CONF_CS & ACP_CONF[7..0] - # FPGA_DATE_CS & FPGA_DATE[7..0] - ,(INT_CTR_CS # INT_ENA_CS # INT_LATCH_CS # INT_CLEAR_CS # ACP_CONF_CS) & !nFB_OE); - - INT_HANDLER_TA = INT_CTR_CS # INT_ENA_CS # INT_LATCH_CS # INT_CLEAR_CS; -END; - - diff --git a/FPGA_by_Fredi/PLLJ_PLLSPE_INFO.txt b/FPGA_by_Fredi/PLLJ_PLLSPE_INFO.txt deleted file mode 100644 index 797d4f8..0000000 --- a/FPGA_by_Fredi/PLLJ_PLLSPE_INFO.txt +++ /dev/null @@ -1,20 +0,0 @@ -PLL_Name altpll1:inst|altpll:altpll_component|altpll_3vp2:auto_generated|pll1 -PLLJITTER 36 -PLLSPEmax 84 -PLLSPEmin -53 - -PLL_Name altpll2:inst12|altpll:altpll_component|altpll_1r33:auto_generated|pll1 -PLLJITTER 43 -PLLSPEmax 84 -PLLSPEmin -53 - -PLL_Name altpll3:inst13|altpll:altpll_component|altpll_aus2:auto_generated|pll1 -PLLJITTER NA -PLLSPEmax 84 -PLLSPEmin -53 - -PLL_Name altpll4:inst22|altpll:altpll_component|altpll_r4n2:auto_generated|pll1 -PLLJITTER 31 -PLLSPEmax 84 -PLLSPEmin -53 - diff --git a/FPGA_by_Fredi/UNUSED b/FPGA_by_Fredi/UNUSED deleted file mode 100644 index 3a7d9e6..0000000 --- a/FPGA_by_Fredi/UNUSED +++ /dev/null @@ -1,27 +0,0 @@ - --- Clearbox generated Memory Initialization File (.mif) - -WIDTH=3; -DEPTH=16; - -ADDRESS_RADIX=HEX; -DATA_RADIX=HEX; - -CONTENT BEGIN - 00 : 7; - 01 : 6; - 02 : 5; - 03 : 4; - 04 : 3; - 05 : 2; - 06 : 1; - 07 : 0; - 08 : 7; - 09 : 6; - 0a : 5; - 0b : 4; - 0c : 3; - 0d : 2; - 0e : 1; - 0f : 0; -END; diff --git a/FPGA_by_Fredi/Video/lpm_fifoDZ.cmp b/FPGA_by_Fredi/Video/BLITTER/lpm_ror128.inc similarity index 74% rename from FPGA_by_Fredi/Video/lpm_fifoDZ.cmp rename to FPGA_by_Fredi/Video/BLITTER/lpm_ror128.inc index 153e7c2..5e2f10d 100644 --- a/FPGA_by_Fredi/Video/lpm_fifoDZ.cmp +++ b/FPGA_by_Fredi/Video/BLITTER/lpm_ror128.inc @@ -13,14 +13,12 @@ --applicable agreement for further details. -component lpm_fifoDZ - PORT - ( - aclr : IN STD_LOGIC ; - clock : IN STD_LOGIC ; - data : IN STD_LOGIC_VECTOR (127 DOWNTO 0); - rdreq : IN STD_LOGIC ; - wrreq : IN STD_LOGIC ; - q : OUT STD_LOGIC_VECTOR (127 DOWNTO 0) - ); -end component; +FUNCTION lpm_ror128 +( + data[127..0], + distance[6..0] +) + +RETURNS ( + result[127..0] +); diff --git a/FPGA_by_Fredi/Video/BLITTER/lpm_ror128.qip b/FPGA_by_Fredi/Video/BLITTER/lpm_ror128.qip new file mode 100644 index 0000000..0e3bd1b --- /dev/null +++ b/FPGA_by_Fredi/Video/BLITTER/lpm_ror128.qip @@ -0,0 +1,5 @@ +set_global_assignment -name IP_TOOL_NAME "LPM_CLSHIFT" +set_global_assignment -name IP_TOOL_VERSION "9.1" +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "lpm_ror128.tdf"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "lpm_ror128.inc"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "lpm_ror128.cmp"] diff --git a/FPGA_by_Fredi/Video/BLITTER/lpm_ror128.tdf b/FPGA_by_Fredi/Video/BLITTER/lpm_ror128.tdf new file mode 100644 index 0000000..4c6928a --- /dev/null +++ b/FPGA_by_Fredi/Video/BLITTER/lpm_ror128.tdf @@ -0,0 +1,92 @@ +-- megafunction wizard: %LPM_CLSHIFT% +-- GENERATION: STANDARD +-- VERSION: WM1.0 +-- MODULE: lpm_clshift + +-- ============================================================ +-- File Name: lpm_ror128.tdf +-- Megafunction Name(s): +-- lpm_clshift +-- +-- Simulation Library Files(s): +-- +-- ============================================================ +-- ************************************************************ +-- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +-- +-- 9.1 Build 350 03/24/2010 SP 2 SJ Web Edition +-- ************************************************************ + + +--Copyright (C) 1991-2010 Altera Corporation +--Your use of Altera Corporation's design tools, logic functions +--and other software and tools, and its AMPP partner logic +--functions, and any output files from any of the foregoing +--(including device programming or simulation files), and any +--associated documentation or information are expressly subject +--to the terms and conditions of the Altera Program License +--Subscription Agreement, Altera MegaCore Function License +--Agreement, or other applicable license agreement, including, +--without limitation, that your use is for the sole purpose of +--programming logic devices manufactured by Altera and sold by +--Altera or its authorized distributors. Please refer to the +--applicable agreement for further details. + +INCLUDE "lpm_clshift.inc"; + + + +SUBDESIGN lpm_ror128 +( + data[127..0] : INPUT; + distance[6..0] : INPUT; + result[127..0] : OUTPUT; +) + +VARIABLE + + lpm_clshift_component : lpm_clshift WITH ( + LPM_SHIFTTYPE = "ROTATE", + LPM_TYPE = "LPM_CLSHIFT", + LPM_WIDTH = 128, + LPM_WIDTHDIST = 7 + ); + +BEGIN + + result[127..0] = lpm_clshift_component.result[127..0]; + lpm_clshift_component.distance[6..0] = distance[6..0]; + lpm_clshift_component.direction = VCC; + lpm_clshift_component.data[127..0] = data[127..0]; +END; + + + +-- ============================================================ +-- CNX file retrieval info +-- ============================================================ +-- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III" +-- Retrieval info: PRIVATE: LPM_SHIFTTYPE NUMERIC "2" +-- Retrieval info: PRIVATE: LPM_WIDTH NUMERIC "128" +-- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" +-- Retrieval info: PRIVATE: lpm_width_varies NUMERIC "0" +-- Retrieval info: PRIVATE: lpm_widthdist NUMERIC "7" +-- Retrieval info: PRIVATE: lpm_widthdist_style NUMERIC "1" +-- Retrieval info: PRIVATE: port_direction NUMERIC "1" +-- Retrieval info: CONSTANT: LPM_SHIFTTYPE STRING "ROTATE" +-- Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_CLSHIFT" +-- Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "128" +-- Retrieval info: CONSTANT: LPM_WIDTHDIST NUMERIC "7" +-- Retrieval info: USED_PORT: data 0 0 128 0 INPUT NODEFVAL data[127..0] +-- Retrieval info: USED_PORT: distance 0 0 7 0 INPUT NODEFVAL distance[6..0] +-- Retrieval info: USED_PORT: result 0 0 128 0 OUTPUT NODEFVAL result[127..0] +-- Retrieval info: CONNECT: @distance 0 0 7 0 distance 0 0 7 0 +-- Retrieval info: CONNECT: @data 0 0 128 0 data 0 0 128 0 +-- Retrieval info: CONNECT: result 0 0 128 0 @result 0 0 128 0 +-- Retrieval info: CONNECT: @direction 0 0 0 0 VCC 0 0 0 0 +-- Retrieval info: LIBRARY: lpm lpm.lpm_components.all +-- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_ror128.tdf TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_ror128.inc TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_ror128.cmp TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_ror128.bsf FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_ror128_inst.tdf FALSE diff --git a/FPGA_by_Fredi/Video/DDR_CTR.tdf.bak b/FPGA_by_Fredi/Video/DDR_CTR.tdf.bak deleted file mode 100644 index c688f97..0000000 --- a/FPGA_by_Fredi/Video/DDR_CTR.tdf.bak +++ /dev/null @@ -1,659 +0,0 @@ -TITLE "DDR_CTR"; - --- CREATED BY FREDI ASCHWANDEN - -INCLUDE "lpm_bustri_BYT.inc"; - --- FIFO WATER MARK -CONSTANT FIFO_LWM = 0; -CONSTANT FIFO_MWM = 1000; -CONSTANT FIFO_HWM = 2000; - --- {{ALTERA_PARAMETERS_BEGIN}} DO NOT REMOVE THIS LINE! --- {{ALTERA_PARAMETERS_END}} DO NOT REMOVE THIS LINE! - -SUBDESIGN DDR_CTR -( - -- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE! - FB_ADR[31..0] : INPUT; - nFB_CS1 : INPUT; - nFB_CS2 : INPUT; - nFB_CS3 : INPUT; - nFB_OE : INPUT; - FB_SIZE0 : INPUT; - FB_SIZE1 : INPUT; - nRSTO : INPUT; - MAIN_CLK : INPUT; - FB_ALE : INPUT; - nFB_WR : INPUT; - DDR_SYNC_66M : INPUT; - CLR_FIFO : INPUT; - VIDEO_RAM_CTR[15..0] : INPUT; - BLITTER_ADR[31..0] : INPUT; - BLITTER_SIG : INPUT; - BLITTER_WR : INPUT; - DDRCLK0 : INPUT; - CLK33M : INPUT; - FIFO_MW[10..0] : INPUT; - VA[12..0] : OUTPUT; - nVWE : OUTPUT; - nVRAS : OUTPUT; - nVCS : OUTPUT; - VCKE : OUTPUT; - nVCAS : OUTPUT; - FB_LE[3..0] : OUTPUT; - FB_VDOE[3..0] : OUTPUT; - SR_FIFO_WRE : OUTPUT; - SR_DDR_FB : OUTPUT; - SR_DDR_WR : OUTPUT; - SR_DDRWR_D_SEL : OUTPUT; - SR_VDMP[7..0] : OUTPUT; - VIDEO_DDR_TA : OUTPUT; - SR_BLITTER_DACK : OUTPUT; - BA[1..0] : OUTPUT; - DDRWR_D_SEL1 : OUTPUT; - VDM_SEL[3..0] : OUTPUT; - FB_AD[31..0] : BIDIR; - -- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! -) - -VARIABLE - FB_REGDDR :MACHINE WITH STATES(FR_WAIT,FR_S0,FR_S1,FR_S2,FR_S3); - DDR_SM :MACHINE WITH STATES(DS_T1,DS_T2A,DS_T2B,DS_T3,DS_N5,DS_N6, DS_N7, DS_N8, -- START (NORMAL 8 CYCLES TOTAL = 60ns) - DS_C2,DS_C3,DS_C4, DS_C5, DS_C6, DS_C7, -- CONFIG - DS_T4R,DS_T5R, -- READ CPU UND BLITTER, - DS_T4W,DS_T5W,DS_T6W,DS_T7W,DS_T8W,DS_T9W, -- WRITE CPU UND BLITTER - DS_T4F,DS_T5F,DS_T6F,DS_T7F,DS_T8F,DS_T9F,DS_T10F, -- READ FIFO - DS_CB6, DS_CB8, -- CLOSE FIFO BANK - DS_R2,DS_R3,DS_R4, DS_R5, DS_R6); -- REFRESH 10X7.5NS=75NS - LINE :NODE; - FB_B[3..0] :NODE; - VCAS :NODE; - VRAS :NODE; - VWE :NODE; - VA_P[12..0] :DFF; - BA_P[1..0] :DFF; - VA_S[12..0] :DFF; - BA_S[1..0] :DFF; - MCS[1..0] :DFF; - CPU_DDR_SYNC :DFF; - DDR_SEL :NODE; - DDR_CS :DFFE; - DDR_CONFIG :NODE; - SR_DDR_WR :DFF; - SR_DDRWR_D_SEL :DFF; - SR_VDMP[7..0] :DFF; - CPU_ROW_ADR[12..0] :NODE; - CPU_BA[1..0] :NODE; - CPU_COL_ADR[9..0] :NODE; - CPU_SIG :NODE; - CPU_REQ :DFF; - CPU_AC :DFF; - BUS_CYC :DFF; - BUS_CYC_END :NODE; - BLITTER_REQ :DFF; - BLITTER_AC :DFF; - BLITTER_ROW_ADR[12..0] :NODE; - BLITTER_BA[1..0] :NODE; - BLITTER_COL_ADR[9..0] :NODE; - FIFO_REQ :DFF; - FIFO_AC :DFF; - FIFO_ROW_ADR[12..0] :NODE; - FIFO_BA[1..0] :NODE; - FIFO_COL_ADR[9..0] :NODE; - FIFO_ACTIVE :NODE; - CLR_FIFO_SYNC :DFF; - CLEAR_FIFO_CNT :DFF; - STOP :DFF; - SR_FIFO_WRE :DFF; - FIFO_BANK_OK :DFF; - FIFO_BANK_NOT_OK :NODE; - DDR_REFRESH_ON :NODE; - DDR_REFRESH_CNT[10..0] :DFF; - DDR_REFRESH_REQ :DFF; - DDR_REFRESH_SIG[3..0] :DFFE; - REFRESH_TIME :DFF; - VIDEO_BASE_L_D[7..0] :DFFE; - VIDEO_BASE_L :NODE; - VIDEO_BASE_M_D[7..0] :DFFE; - VIDEO_BASE_M :NODE; - VIDEO_BASE_H_D[7..0] :DFFE; - VIDEO_BASE_H :NODE; - VIDEO_BASE_X_D[2..0] :DFFE; - VIDEO_ADR_CNT[22..0] :DFFE; - VIDEO_CNT_L :NODE; - VIDEO_CNT_M :NODE; - VIDEO_CNT_H :NODE; - VIDEO_BASE_ADR[22..0] :NODE; - VIDEO_ACT_ADR[26..0] :NODE; - -BEGIN - LINE = FB_SIZE0 & FB_SIZE1; --- BYT SELECT - FB_B0 = FB_ADR[1..0]==0 -- ADR==0 - # FB_SIZE1 & FB_SIZE0 # !FB_SIZE1 & !FB_SIZE0; -- LONG UND LINE - FB_B1 = FB_ADR[1..0]==1 -- ADR==1 - # FB_SIZE1 & !FB_SIZE0 & !FB_ADR1 -- HIGH WORD - # FB_SIZE1 & FB_SIZE0 # !FB_SIZE1 & !FB_SIZE0; -- LONG UND LINE - FB_B2 = FB_ADR[1..0]==2 -- ADR==2 - # FB_SIZE1 & FB_SIZE0 # !FB_SIZE1 & !FB_SIZE0; -- LONG UND LINE - FB_B3 = FB_ADR[1..0]==3 -- ADR==3 - # FB_SIZE1 & !FB_SIZE0 & FB_ADR1 -- LOW WORD - # FB_SIZE1 & FB_SIZE0 # !FB_SIZE1 & !FB_SIZE0; -- LONG UND LINE --- CPU READ (REG DDR => CPU) AND WRITE (CPU => REG DDR) -------------------------------------------------- - FB_REGDDR.CLK = MAIN_CLK; - CASE FB_REGDDR IS - WHEN FR_WAIT => - FB_LE0 = !nFB_WR; - IF BUS_CYC # DDR_SEL & LINE & !nFB_WR THEN -- LOS WENN BEREIT ODER IMMER BEI LINE WRITE - FB_REGDDR = FR_S0; - ELSE - FB_REGDDR = FR_WAIT; - END IF; - WHEN FR_S0 => - IF DDR_CS THEN - FB_LE0 = !nFB_WR; - VIDEO_DDR_TA = VCC; - IF LINE THEN - FB_VDOE0 = !nFB_OE & !DDR_CONFIG; - FB_REGDDR = FR_S1; - ELSE - BUS_CYC_END = VCC; - FB_VDOE0 = !nFB_OE & !MAIN_CLK & !DDR_CONFIG; - FB_REGDDR = FR_WAIT; - END IF; - ELSE - FB_REGDDR = FR_WAIT; - END IF; - WHEN FR_S1 => - IF DDR_CS THEN - FB_VDOE1 = !nFB_OE & !DDR_CONFIG; - FB_LE1 = !nFB_WR; - VIDEO_DDR_TA = VCC; - FB_REGDDR = FR_S2; - ELSE - FB_REGDDR = FR_WAIT; - END IF; - WHEN FR_S2 => - IF DDR_CS THEN - FB_VDOE2 = !nFB_OE & !DDR_CONFIG; - FB_LE2 = !nFB_WR; - IF !BUS_CYC & LINE & !nFB_WR THEN -- BEI LINE WRITE EVT. WARTEN - FB_REGDDR = FR_S2; - ELSE - VIDEO_DDR_TA = VCC; - FB_REGDDR = FR_S3; - END IF; - ELSE - FB_REGDDR = FR_WAIT; - END IF; - WHEN FR_S3 => - IF DDR_CS THEN - FB_VDOE3 = !nFB_OE & !MAIN_CLK & !DDR_CONFIG; - FB_LE3 = !nFB_WR; - VIDEO_DDR_TA = VCC; - BUS_CYC_END = VCC; - FB_REGDDR = FR_WAIT; - ELSE - FB_REGDDR = FR_WAIT; - END IF; - END CASE; --- DDR STEUERUNG ----------------------------------------------------- --- VIDEO RAM CONTROL REGISTER (IST IN VIDEO_MUX_CTR) $F0000400: BIT 0: VCKE; 1: !nVCS ;2:REFRESH ON , (0=FIFO UND CNT CLEAR); 3: CONFIG; 8: FIFO_ACTIVE; - VCKE = VIDEO_RAM_CTR0; - nVCS = !VIDEO_RAM_CTR1; - DDR_REFRESH_ON = VIDEO_RAM_CTR2; - DDR_CONFIG = VIDEO_RAM_CTR3; - FIFO_ACTIVE = VIDEO_RAM_CTR8; --------------------------------- - CPU_ROW_ADR[] = FB_ADR[26..14]; - CPU_BA[] = FB_ADR[13..12]; - CPU_COL_ADR[] = FB_ADR[11..2]; - nVRAS = !VRAS; - nVCAS = !VCAS; - nVWE = !VWE; - SR_DDR_WR.CLK = DDRCLK0; - SR_DDRWR_D_SEL.CLK = DDRCLK0; - SR_VDMP[7..0].CLK = DDRCLK0; - SR_FIFO_WRE.CLK = DDRCLK0; - CPU_AC.CLK = DDRCLK0; - FIFO_AC.CLK = DDRCLK0; - BLITTER_AC.CLK = DDRCLK0; - DDRWR_D_SEL1 = BLITTER_AC; --- SELECT LOGIC - DDR_SEL = FB_ALE & FB_AD[31..30]==B"01"; - DDR_CS.CLK = MAIN_CLK; - DDR_CS.ENA = FB_ALE; - DDR_CS = DDR_SEL; --- WENN READ ODER WRITE B,W,L DDR SOFORT ANFORDERN, BEI WRITE LINE SPÄTER - CPU_SIG = DDR_SEL & (nFB_WR # !LINE) & !DDR_CONFIG -- NICHT LINE ODER READ SOFORT LOS WENN NICHT CONFIG - # DDR_SEL & DDR_CONFIG -- CONFIG SOFORT LOS - # FB_REGDDR==FR_S1 & !nFB_WR; -- LINE WRITE SPÄTER - CPU_REQ.CLK = DDR_SYNC_66M; - CPU_REQ = CPU_SIG - # CPU_REQ & FB_REGDDR!=FR_S1 & FB_REGDDR!=FR_S3 & !BUS_CYC_END & !BUS_CYC; -- HALTEN BUS CYC BEGONNEN ODER FERTIG - BUS_CYC.CLK = DDRCLK0; - BUS_CYC = BUS_CYC & !BUS_CYC_END; - -- STATE MACHINE SYNCHRONISIEREN ----------------- - MCS[].CLK = DDRCLK0; - MCS0 = MAIN_CLK; - MCS1 = MCS0; - CPU_DDR_SYNC.CLK = DDRCLK0; - CPU_DDR_SYNC = MCS[]==2 & VCKE & !nVCS; -- NUR 1 WENN EIN - --------------------------------------------------- - VA_S[].CLK = DDRCLK0; - BA_S[].CLK = DDRCLK0; - VA[] = VA_S[]; - BA[] = BA_S[]; - VA_P[].CLK = DDRCLK0; - BA_P[].CLK = DDRCLK0; --- DDR STATE MACHINE ----------------------------------------------- - DDR_SM.CLK = DDRCLK0; - CASE DDR_SM IS - WHEN DS_T1 => - IF DDR_REFRESH_REQ THEN - DDR_SM = DS_R2; - ELSE - IF CPU_DDR_SYNC THEN -- SYNCHRON UND EIN? - IF DDR_CONFIG THEN -- JA - DDR_SM = DS_C2; - ELSE - IF CPU_REQ THEN -- BEI WAIT UND LINE WRITE - VA_S[] = CPU_ROW_ADR[]; - BA_S[] = CPU_BA[]; - CPU_AC = VCC; - BUS_CYC = VCC; - DDR_SM = DS_T2B; - ELSE - IF FIFO_REQ # !BLITTER_REQ THEN -- FIFO IST DEFAULT - VA_P[] = FIFO_ROW_ADR[]; - BA_P[] = FIFO_BA[]; - FIFO_AC = VCC; -- VORBESETZEN - ELSE - VA_P[] = BLITTER_ROW_ADR[]; - BA_P[] = BLITTER_BA[]; - BLITTER_AC = VCC; -- VORBESETZEN - END IF; - DDR_SM = DS_T2A; - END IF; - END IF; - ELSE - DDR_SM = DS_T1; -- NEIN ->SYNCHRONISIEREN - END IF; - END IF; - - WHEN DS_T2A => -- SCHNELLZUGRIFF *** HIER IST PAGE IMMER NOT OK *** - IF DDR_SEL & (nFB_WR # !LINE) THEN - VRAS = VCC; - VA[] = FB_AD[26..14]; - BA[] = FB_AD[13..12]; - VA_S[10] = VCC; -- AUTO PRECHARGE DA NICHT FIFO PAGE - CPU_AC = VCC; - BUS_CYC = VCC; -- BUS CYCLUS LOSTRETEN - ELSE - VRAS = FIFO_AC & FIFO_REQ # BLITTER_AC & BLITTER_REQ; - VA[] = VA_P[]; - BA[] = BA_P[]; - VA_S[10] = !(FIFO_AC & FIFO_REQ); - FIFO_BANK_OK = FIFO_AC & FIFO_REQ; - FIFO_AC = FIFO_AC & FIFO_REQ; - BLITTER_AC = BLITTER_AC & BLITTER_REQ; - END IF; - DDR_SM = DS_T3; - - WHEN DS_T2B => - VRAS = VCC; - FIFO_BANK_NOT_OK = VCC; - CPU_AC = VCC; - BUS_CYC = VCC; -- BUS CYCLUS LOSTRETEN - DDR_SM = DS_T3; - - WHEN DS_T3 => - CPU_AC = CPU_AC; - FIFO_AC = FIFO_AC; - BLITTER_AC = BLITTER_AC; - VA_S[10] = VA_S[10]; -- AUTO PRECHARGE WENN NICHT FIFO PAGE - IF !nFB_WR & CPU_AC # BLITTER_WR & BLITTER_AC THEN - DDR_SM = DS_T4W; - ELSE - IF CPU_AC THEN -- CPU? - VA_S[9..0] = CPU_COL_ADR[]; - BA_S[] = CPU_BA[]; - DDR_SM = DS_T4R; - ELSE - IF FIFO_AC THEN -- FIFO? - VA_S[9..0] = FIFO_COL_ADR[]; - BA_S[] = FIFO_BA[]; - DDR_SM = DS_T4F; - ELSE - IF BLITTER_AC THEN - VA_S[9..0] = BLITTER_COL_ADR[]; - BA_S[] = BLITTER_BA[]; - DDR_SM = DS_T4R; - ELSE - DDR_SM = DS_N8; - END IF; - END IF; - END IF; - END IF; --- READ - WHEN DS_T4R => - CPU_AC = CPU_AC; - BLITTER_AC = BLITTER_AC; - VCAS = VCC; - SR_DDR_FB = CPU_AC; -- READ DATEN FÜR CPU - SR_BLITTER_DACK = BLITTER_AC; -- BLITTER DACK AND BLITTER LATCH DATEN - DDR_SM = DS_T5R; - - WHEN DS_T5R => - CPU_AC = CPU_AC; - BLITTER_AC = BLITTER_AC; - IF FIFO_REQ & FIFO_BANK_OK THEN -- FIFO READ EINSCHIEBEN WENN BANK OK - VA_S[9..0] = FIFO_COL_ADR[]; - VA_S[10] = GND; -- MANUEL PRECHARGE - BA_S[] = FIFO_BA[]; - DDR_SM = DS_T6F; - ELSE - VA_S[10] = VCC; -- ALLE PAGES SCHLIESSEN - DDR_SM = DS_CB6; - END IF; --- WRITE - WHEN DS_T4W => - CPU_AC = CPU_AC; - BLITTER_AC = BLITTER_AC; - SR_BLITTER_DACK = BLITTER_AC; -- BLITTER ACK AND BLITTER LATCH DATEN - VA_S[10] = VA_S[10]; -- AUTO PRECHARGE WENN NICHT FIFO PAGE - DDR_SM = DS_T5W; - - WHEN DS_T5W => - CPU_AC = CPU_AC; - BLITTER_AC = BLITTER_AC; - VA_S[9..0] = CPU_AC & CPU_COL_ADR[] - # BLITTER_AC & BLITTER_COL_ADR[]; - VA_S[10] = VA_S[10]; -- AUTO PRECHARGE WENN NICHT FIFO PAGE - BA_S[] = CPU_AC & CPU_BA[] - # BLITTER_AC & BLITTER_BA[]; - SR_VDMP[7..4] = FB_B[] # BLITTER_AC & B"1111"; -- BYTE ENABLE WRITE, BEI BLITTER IMMER LINE - SR_VDMP[3..0] = (LINE # BLITTER_AC) & B"1111"; -- LINE ENABLE WRITE, BEI BLITTER IMMER LINE - DDR_SM = DS_T6W; - - WHEN DS_T6W => - CPU_AC = CPU_AC; - BLITTER_AC = BLITTER_AC; - VCAS = VCC; - VWE = VCC; - SR_DDR_WR = VCC; -- WRITE COMMAND CPU UND BLITTER IF WRITER - SR_DDRWR_D_SEL = VCC; -- 2. HÄLFTE WRITE DATEN SELEKTIEREN - SR_VDMP[] = (LINE # BLITTER_AC) & B"11111111"; -- WENN LINE DANN ACTIV - DDR_SM = DS_T7W; - - WHEN DS_T7W => - CPU_AC = CPU_AC; - BLITTER_AC = BLITTER_AC; - SR_DDR_WR = VCC; -- WRITE COMMAND CPU UND BLITTER IF WRITE - SR_DDRWR_D_SEL = VCC; -- 2. HÄLFTE WRITE DATEN SELEKTIEREN - DDR_SM = DS_T8W; - - WHEN DS_T8W => - DDR_SM = DS_T9W; - - WHEN DS_T9W => - IF FIFO_REQ & FIFO_BANK_OK THEN - VA_S[9..0] = FIFO_COL_ADR[]; - VA_S[10] = GND; -- NON AUTO PRECHARGE - BA_S[] = FIFO_BA[]; - DDR_SM = DS_T6F; - ELSE - VA_S[10] = VCC; -- ALLE PAGES SCHLIESSEN - DDR_SM = DS_CB6; - END IF; --- FIFO READ - WHEN DS_T4F => - VCAS = VCC; - SR_FIFO_WRE = VCC; -- DATEN WRITE FIFO - DDR_SM = DS_T5F; - - WHEN DS_T5F => - IF FIFO_REQ THEN - IF VIDEO_ADR_CNT[7..0]==H"FF" THEN -- NEUE PAGE? - VA_S[10] = VCC; -- ALLE PAGES SCHLIESSEN - DDR_SM = DS_CB6; -- BANK SCHLIESSEN - ELSE - VA_S[9..0] = FIFO_COL_ADR[]+4; - VA_S[10] = GND; -- NON AUTO PRECHARGE - BA_S[] = FIFO_BA[]; - DDR_SM = DS_T6F; - END IF; - ELSE - VA_S[10] = VCC; -- ALLE PAGES SCHLIESSEN - DDR_SM = DS_CB6; -- NOCH OFFEN LASSEN - END IF; - - WHEN DS_T6F => - VCAS = VCC; - SR_FIFO_WRE = VCC; -- DATEN WRITE FIFO - DDR_SM = DS_T7F; - - WHEN DS_T7F => - IF CPU_REQ & FIFO_MW[]>FIFO_LWM THEN - VA_S[10] = VCC; -- ALLE PAGES SCHLIESEN - DDR_SM = DS_CB8; -- BANK SCHLIESSEN - ELSE - IF FIFO_REQ THEN - IF VIDEO_ADR_CNT[7..0]==H"FF" THEN -- NEUE PAGE? - VA_S[10] = VCC; -- ALLE PAGES SCHLIESSEN - DDR_SM = DS_CB8; -- BANK SCHLIESSEN - ELSE - VA_S[9..0] = FIFO_COL_ADR[]+4; - VA_S[10] = GND; -- NON AUTO PRECHARGE - BA_S[] = FIFO_BA[]; - DDR_SM = DS_T8F; - END IF; - ELSE - VA_S[10] = VCC; -- ALLE PAGES SCHLIESEN - DDR_SM = DS_CB8; -- BANK SCHLIESSEN - END IF; - END IF; - - WHEN DS_T8F => - VCAS = VCC; - SR_FIFO_WRE = VCC; -- DATEN WRITE FIFO - IF FIFO_MW[] - ELSE - DDR_SM = DS_T9F; - END IF; - - WHEN DS_T9F => - IF FIFO_REQ THEN - IF VIDEO_ADR_CNT[7..0]==H"FF" THEN -- NEUE PAGE? - VA_S[10] = VCC; -- ALLE BANKS SCHLIESEN - DDR_SM = DS_CB6; -- BANK SCHLIESSEN - ELSE - VA_P[9..0] = FIFO_COL_ADR[]+4; - VA_P[10] = GND; -- NON AUTO PRECHARGE - BA_P[] = FIFO_BA[]; - DDR_SM = DS_T10F; - END IF; - ELSE - VA_S[10] = VCC; -- ALLE BANKS SCHLIESEN - DDR_SM = DS_CB6; -- BANK SCHLIESSEN - END IF; - - WHEN DS_T10F => - IF DDR_SEL & (nFB_WR # !LINE) & FB_AD[13..12]!=FIFO_BA[] THEN - VRAS = VCC; - VA[] = FB_AD[26..14]; - BA[] = FB_AD[13..12]; - CPU_AC = VCC; - BUS_CYC = VCC; -- BUS CYCLUS LOSTRETEN - VA_S[10] = VCC; -- AUTO PRECHARGE DA NICHT FIFO BANK - DDR_SM = DS_T3; - ELSE - VCAS = VCC; - VA[] = VA_P[]; - BA[] = BA_P[]; - SR_FIFO_WRE = VCC; -- DATEN WRITE FIFO - DDR_SM = DS_T7F; - END IF; - --- CONFIG CYCLUS - WHEN DS_C2 => - DDR_SM = DS_C3; - WHEN DS_C3 => - BUS_CYC = CPU_REQ; - DDR_SM = DS_C4; - WHEN DS_C4 => - IF CPU_REQ THEN - DDR_SM = DS_C5; - ELSE - DDR_SM = DS_T1; - END IF; - WHEN DS_C5 => - DDR_SM = DS_C6; - WHEN DS_C6 => - VA_S[] = FB_AD[12..0]; - BA_S[] = FB_AD[14..13]; - DDR_SM = DS_C7; - WHEN DS_C7 => - VRAS = FB_AD18 & !nFB_WR & !FB_SIZE0 & !FB_SIZE1; -- NUR BEI LONG WRITE - VCAS = FB_AD17 & !nFB_WR & !FB_SIZE0 & !FB_SIZE1; -- NUR BEI LONG WRITE - VWE = FB_AD16 & !nFB_WR & !FB_SIZE0 & !FB_SIZE1; -- NUR BEI LONG WRITE - DDR_SM = DS_N8; --- CLOSE FIFO BANK - WHEN DS_CB6 => - FIFO_BANK_NOT_OK = VCC; -- AUF NOT OK - VRAS = VCC; -- BÄNKE SCHLIESSEN - VWE = VCC; - DDR_SM = DS_N7; - WHEN DS_CB8 => - FIFO_BANK_NOT_OK = VCC; -- AUF NOT OK - VRAS = VCC; -- BÄNKE SCHLIESSEN - VWE = VCC; - DDR_SM = DS_T1; --- REFRESH 70NS = 10 ZYCLEN - WHEN DS_R2 => - IF DDR_REFRESH_SIG[]==9 THEN -- EIN CYCLUS VORLAUF UM BANKS ZU SCHLIESSEN - VRAS = VCC; -- ALLE BANKS SCHLIESSEN - VWE = VCC; - VA[10] = VCC; - FIFO_BANK_NOT_OK = VCC; - DDR_SM = DS_R4; - ELSE - VCAS = VCC; - VRAS = VCC; - DDR_SM = DS_R3; - END IF; - WHEN DS_R3 => - DDR_SM = DS_R4; - WHEN DS_R4 => - DDR_SM = DS_R5; - WHEN DS_R5 => - DDR_SM = DS_R6; - WHEN DS_R6 => - DDR_SM = DS_N5; --- LEERSCHLAUFE - WHEN DS_N5 => - DDR_SM = DS_N6; - WHEN DS_N6 => - DDR_SM = DS_N7; - WHEN DS_N7 => - DDR_SM = DS_N8; - WHEN DS_N8 => - DDR_SM = DS_T1; - END CASE; - ---------------------------------------------------------------- --- BLITTER ---------------------- ------------------------------------------ - BLITTER_REQ.CLK = DDRCLK0; - BLITTER_REQ = BLITTER_SIG & !DDR_CONFIG & VCKE & !nVCS; - BLITTER_ROW_ADR[] = BLITTER_ADR[26..14]; - BLITTER_BA1 = BLITTER_ADR13; - BLITTER_BA0 = BLITTER_ADR12; - BLITTER_COL_ADR[] = BLITTER_ADR[11..2]; ------------------------------------------------------------------------------- --- FIFO --------------------------------- --------------------------------------------------------- - FIFO_REQ.CLK = DDRCLK0; - FIFO_REQ = (FIFO_MW[]2048 33MHz CLOCKS ------------------------------------------------------------------------------------------ - DDR_REFRESH_CNT[].CLK = CLK33M; - DDR_REFRESH_CNT[] = DDR_REFRESH_CNT[]+1; -- ZÄHLEN 0-2047 - REFRESH_TIME.CLK = DDRCLK0; - REFRESH_TIME = DDR_REFRESH_CNT[]==0 & !MAIN_CLK; -- SYNC - DDR_REFRESH_SIG[].CLK = DDRCLK0; - DDR_REFRESH_SIG[].ENA = REFRESH_TIME # DDR_SM==DS_R6; - DDR_REFRESH_SIG[] = REFRESH_TIME & 9 & DDR_REFRESH_ON & !DDR_CONFIG -- 9 STÜCK (8 REFRESH UND 1 ALS VORLAUF) - # !REFRESH_TIME & (DDR_REFRESH_SIG[]-1) & DDR_REFRESH_ON & !DDR_CONFIG; -- MINUS 1 WENN GEMACHT - DDR_REFRESH_REQ.CLK = DDRCLK0; - DDR_REFRESH_REQ = DDR_REFRESH_SIG[]!=0 & DDR_REFRESH_ON & !REFRESH_TIME & !DDR_CONFIG; ------------------------------------------------------------ --- VIDEO REGISTER ----------------------- ---------------------------------------------------------------------------------------------------------------------- - VIDEO_BASE_L_D[].CLK = MAIN_CLK; - VIDEO_BASE_L = !nFB_CS1 & FB_ADR[19..1]==H"7C106"; -- 820D/2 - VIDEO_BASE_L_D[] = FB_AD[23..16]; -- SORRY, NUR 16 BYT GRENZEN - VIDEO_BASE_L_D[].ENA = !nFB_WR & VIDEO_BASE_L & FB_B1; - - VIDEO_BASE_M_D[].CLK = MAIN_CLK; - VIDEO_BASE_M = !nFB_CS1 & FB_ADR[19..1]==H"7C101"; -- 8203/2 - VIDEO_BASE_M_D[] = FB_AD[23..16]; - VIDEO_BASE_M_D[].ENA = !nFB_WR & VIDEO_BASE_M & FB_B3; - - VIDEO_BASE_H_D[].CLK = MAIN_CLK; - VIDEO_BASE_H = !nFB_CS1 & FB_ADR[19..1]==H"7C100"; -- 8200-1/2 - VIDEO_BASE_H_D[] = FB_AD[23..16]; - VIDEO_BASE_H_D[].ENA = !nFB_WR & VIDEO_BASE_H & FB_B1; - VIDEO_BASE_X_D[].CLK = MAIN_CLK; - VIDEO_BASE_X_D[] = FB_AD[26..24]; - VIDEO_BASE_X_D[].ENA = !nFB_WR & VIDEO_BASE_H & FB_B0; - - VIDEO_CNT_L = !nFB_CS1 & FB_ADR[19..1]==H"7C104"; -- 8209/2 - VIDEO_CNT_M = !nFB_CS1 & FB_ADR[19..1]==H"7C103"; -- 8207/2 - VIDEO_CNT_H = !nFB_CS1 & FB_ADR[19..1]==H"7C102"; -- 8204,5/2 - - FB_AD[31..24] = lpm_bustri_BYT( - VIDEO_BASE_H & (0,VIDEO_BASE_X_D[]) - # VIDEO_CNT_H & (0,VIDEO_ACT_ADR[26..24]) - ,(VIDEO_BASE_H # VIDEO_CNT_H) & !nFB_OE); - - FB_AD[23..16] = lpm_bustri_BYT( - VIDEO_BASE_L & VIDEO_BASE_L_D[] - # VIDEO_BASE_M & VIDEO_BASE_M_D[] - # VIDEO_BASE_H & VIDEO_BASE_H_D[] - # VIDEO_CNT_L & VIDEO_ACT_ADR[7..0] - # VIDEO_CNT_M & VIDEO_ACT_ADR[15..8] - # VIDEO_CNT_H & VIDEO_ACT_ADR[23..16] - ,(VIDEO_BASE_L # VIDEO_BASE_M # VIDEO_BASE_H # VIDEO_CNT_L # VIDEO_CNT_M # VIDEO_CNT_H) & !nFB_OE); -END; - diff --git a/FPGA_by_Fredi/Video/lpm_fifoDZ.bsf b/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.bsf similarity index 93% rename from FPGA_by_Fredi/Video/lpm_fifoDZ.bsf rename to FPGA_by_Fredi/Video/Doppelzeilen_Fifo.bsf index 3c8cdfc..ba94be2 100644 --- a/FPGA_by_Fredi/Video/lpm_fifoDZ.bsf +++ b/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.bsf @@ -21,7 +21,7 @@ applicable agreement for further details. (header "symbol" (version "1.1")) (symbol (rect 0 0 160 144) - (text "lpm_fifoDZ" (rect 50 1 120 17)(font "Arial" (font_size 10))) + (text "Doppelzeilen_Fifo" (rect 29 1 149 17)(font "Arial" (font_size 10))) (text "inst" (rect 8 128 25 140)(font "Arial" )) (port (pt 0 32) @@ -66,7 +66,6 @@ applicable agreement for further details. (line (pt 160 32)(pt 144 32)(line_width 3)) ) (drawing - (text "(ack)" (rect 51 67 72 79)(font "Arial" )) (text "128 bits x 512 words" (rect 58 116 144 128)(font "Arial" )) (line (pt 16 16)(pt 144 16)(line_width 1)) (line (pt 144 16)(pt 144 128)(line_width 1)) diff --git a/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.inc b/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.inc new file mode 100644 index 0000000..8490f6b --- /dev/null +++ b/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.inc @@ -0,0 +1,27 @@ +--Copyright (C) 1991-2010 Altera Corporation +--Your use of Altera Corporation's design tools, logic functions +--and other software and tools, and its AMPP partner logic +--functions, and any output files from any of the foregoing +--(including device programming or simulation files), and any +--associated documentation or information are expressly subject +--to the terms and conditions of the Altera Program License +--Subscription Agreement, Altera MegaCore Function License +--Agreement, or other applicable license agreement, including, +--without limitation, that your use is for the sole purpose of +--programming logic devices manufactured by Altera and sold by +--Altera or its authorized distributors. Please refer to the +--applicable agreement for further details. + + +FUNCTION Doppelzeilen_Fifo +( + aclr, + clock, + data[127..0], + rdreq, + wrreq +) + +RETURNS ( + q[127..0] +); diff --git a/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.qip b/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.qip new file mode 100644 index 0000000..4cb4549 --- /dev/null +++ b/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.qip @@ -0,0 +1,5 @@ +set_global_assignment -name IP_TOOL_NAME "FIFO" +set_global_assignment -name IP_TOOL_VERSION "9.1" +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "Doppelzeilen_Fifo.vhd"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "Doppelzeilen_Fifo.bsf"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "Doppelzeilen_Fifo.inc"] diff --git a/FPGA_by_Fredi/Video/lpm_fifoDZ.vhd b/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.vhd similarity index 80% rename from FPGA_by_Fredi/Video/lpm_fifoDZ.vhd rename to FPGA_by_Fredi/Video/Doppelzeilen_Fifo.vhd index 55183b0..e8b0e82 100644 --- a/FPGA_by_Fredi/Video/lpm_fifoDZ.vhd +++ b/FPGA_by_Fredi/Video/Doppelzeilen_Fifo.vhd @@ -1,10 +1,10 @@ --- megafunction wizard: %LPM_FIFO+% +-- megafunction wizard: %FIFO% -- GENERATION: STANDARD -- VERSION: WM1.0 -- MODULE: scfifo -- ============================================================ --- File Name: lpm_fifoDZ.vhd +-- File Name: Doppelzeilen_Fifo.vhd -- Megafunction Name(s): -- scfifo -- @@ -39,7 +39,7 @@ USE ieee.std_logic_1164.all; LIBRARY altera_mf; USE altera_mf.all; -ENTITY lpm_fifoDZ IS +ENTITY Doppelzeilen_Fifo IS PORT ( aclr : IN STD_LOGIC ; @@ -49,10 +49,10 @@ ENTITY lpm_fifoDZ IS wrreq : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (127 DOWNTO 0) ); -END lpm_fifoDZ; +END Doppelzeilen_Fifo; -ARCHITECTURE SYN OF lpm_fifodz IS +ARCHITECTURE SYN OF doppelzeilen_fifo IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (127 DOWNTO 0); @@ -86,10 +86,10 @@ BEGIN scfifo_component : scfifo GENERIC MAP ( - add_ram_output_register => "OFF", + add_ram_output_register => "ON", intended_device_family => "Cyclone III", lpm_numwords => 512, - lpm_showahead => "ON", + lpm_showahead => "OFF", lpm_type => "scfifo", lpm_width => 128, lpm_widthu => 9, @@ -117,38 +117,38 @@ END SYN; -- Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" -- Retrieval info: PRIVATE: AlmostFull NUMERIC "0" -- Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" --- Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "1" +-- Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" -- Retrieval info: PRIVATE: Clock NUMERIC "0" -- Retrieval info: PRIVATE: Depth NUMERIC "512" -- Retrieval info: PRIVATE: Empty NUMERIC "0" -- Retrieval info: PRIVATE: Full NUMERIC "0" -- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III" -- Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" --- Retrieval info: PRIVATE: LegacyRREQ NUMERIC "0" +-- Retrieval info: PRIVATE: LegacyRREQ NUMERIC "1" -- Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" -- Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "1" --- Retrieval info: PRIVATE: Optimize NUMERIC "2" +-- Retrieval info: PRIVATE: Optimize NUMERIC "1" -- Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" -- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" -- Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "1" -- Retrieval info: PRIVATE: UsedW NUMERIC "0" -- Retrieval info: PRIVATE: Width NUMERIC "128" --- Retrieval info: PRIVATE: dc_aclr NUMERIC "0" +-- Retrieval info: PRIVATE: dc_aclr NUMERIC "1" -- Retrieval info: PRIVATE: diff_widths NUMERIC "0" -- Retrieval info: PRIVATE: msb_usedw NUMERIC "0" -- Retrieval info: PRIVATE: output_width NUMERIC "128" --- Retrieval info: PRIVATE: rsEmpty NUMERIC "1" +-- Retrieval info: PRIVATE: rsEmpty NUMERIC "0" -- Retrieval info: PRIVATE: rsFull NUMERIC "0" -- Retrieval info: PRIVATE: rsUsedW NUMERIC "0" -- Retrieval info: PRIVATE: sc_aclr NUMERIC "1" -- Retrieval info: PRIVATE: sc_sclr NUMERIC "0" -- Retrieval info: PRIVATE: wsEmpty NUMERIC "0" --- Retrieval info: PRIVATE: wsFull NUMERIC "1" +-- Retrieval info: PRIVATE: wsFull NUMERIC "0" -- Retrieval info: PRIVATE: wsUsedW NUMERIC "0" --- Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" +-- Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "ON" -- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III" -- Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "512" --- Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "ON" +-- Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "OFF" -- Retrieval info: CONSTANT: LPM_TYPE STRING "scfifo" -- Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "128" -- Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "9" @@ -168,11 +168,11 @@ END SYN; -- Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 -- Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 -- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all --- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_fifoDZ.vhd TRUE --- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_fifoDZ.inc FALSE --- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_fifoDZ.cmp TRUE --- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_fifoDZ.bsf TRUE FALSE --- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_fifoDZ_inst.vhd FALSE --- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_fifoDZ_waveforms.html TRUE --- Retrieval info: GEN_FILE: TYPE_NORMAL lpm_fifoDZ_wave*.jpg FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL Doppelzeilen_Fifo.vhd TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL Doppelzeilen_Fifo.inc TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL Doppelzeilen_Fifo.cmp FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL Doppelzeilen_Fifo.bsf TRUE FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL Doppelzeilen_Fifo_inst.vhd FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL Doppelzeilen_Fifo_waveforms.html FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL Doppelzeilen_Fifo_wave*.jpg FALSE -- Retrieval info: LIB_FILE: altera_mf diff --git a/FPGA_by_Fredi/Video/UNUSED b/FPGA_by_Fredi/Video/UNUSED deleted file mode 100644 index 12f424b..0000000 --- a/FPGA_by_Fredi/Video/UNUSED +++ /dev/null @@ -1,267 +0,0 @@ - --- Clearbox generated Memory Initialization File (.mif) - -WIDTH=6; -DEPTH=256; - -ADDRESS_RADIX=HEX; -DATA_RADIX=HEX; - -CONTENT BEGIN - 000 : 0F; - 001 : 0E; - 002 : 0D; - 003 : 0C; - 004 : 0B; - 005 : 0A; - 006 : 09; - 007 : 08; - 008 : 07; - 009 : 06; - 00a : 05; - 00b : 04; - 00c : 03; - 00d : 02; - 00e : 01; - 00f : 00; - 010 : 0F; - 011 : 0E; - 012 : 0D; - 013 : 0C; - 014 : 0B; - 015 : 0A; - 016 : 09; - 017 : 08; - 018 : 07; - 019 : 06; - 01a : 05; - 01b : 04; - 01c : 03; - 01d : 02; - 01e : 01; - 01f : 00; - 020 : 0F; - 021 : 0E; - 022 : 0D; - 023 : 0C; - 024 : 0B; - 025 : 0A; - 026 : 09; - 027 : 08; - 028 : 07; - 029 : 06; - 02a : 05; - 02b : 04; - 02c : 03; - 02d : 02; - 02e : 01; - 02f : 00; - 030 : 0F; - 031 : 0E; - 032 : 0D; - 033 : 0C; - 034 : 0B; - 035 : 0A; - 036 : 09; - 037 : 08; - 038 : 07; - 039 : 06; - 03a : 05; - 03b : 04; - 03c : 03; - 03d : 02; - 03e : 01; - 03f : 00; - 040 : 0F; - 041 : 0E; - 042 : 0D; - 043 : 0C; - 044 : 0B; - 045 : 0A; - 046 : 09; - 047 : 08; - 048 : 07; - 049 : 06; - 04a : 05; - 04b : 04; - 04c : 03; - 04d : 02; - 04e : 01; - 04f : 00; - 050 : 0F; - 051 : 0E; - 052 : 0D; - 053 : 0C; - 054 : 0B; - 055 : 0A; - 056 : 09; - 057 : 08; - 058 : 07; - 059 : 06; - 05a : 05; - 05b : 04; - 05c : 03; - 05d : 02; - 05e : 01; - 05f : 00; - 060 : 0F; - 061 : 0E; - 062 : 0D; - 063 : 0C; - 064 : 0B; - 065 : 0A; - 066 : 09; - 067 : 08; - 068 : 07; - 069 : 06; - 06a : 05; - 06b : 04; - 06c : 03; - 06d : 02; - 06e : 01; - 06f : 00; - 070 : 0F; - 071 : 0E; - 072 : 0D; - 073 : 0C; - 074 : 0B; - 075 : 0A; - 076 : 09; - 077 : 08; - 078 : 07; - 079 : 06; - 07a : 05; - 07b : 04; - 07c : 03; - 07d : 02; - 07e : 01; - 07f : 00; - 080 : 0F; - 081 : 0E; - 082 : 0D; - 083 : 0C; - 084 : 0B; - 085 : 0A; - 086 : 09; - 087 : 08; - 088 : 07; - 089 : 06; - 08a : 05; - 08b : 04; - 08c : 03; - 08d : 02; - 08e : 01; - 08f : 00; - 090 : 0F; - 091 : 0E; - 092 : 0D; - 093 : 0C; - 094 : 0B; - 095 : 0A; - 096 : 09; - 097 : 08; - 098 : 07; - 099 : 06; - 09a : 05; - 09b : 04; - 09c : 03; - 09d : 02; - 09e : 01; - 09f : 00; - 0a0 : 0F; - 0a1 : 0E; - 0a2 : 0D; - 0a3 : 0C; - 0a4 : 0B; - 0a5 : 0A; - 0a6 : 09; - 0a7 : 08; - 0a8 : 07; - 0a9 : 06; - 0aa : 05; - 0ab : 04; - 0ac : 03; - 0ad : 02; - 0ae : 01; - 0af : 00; - 0b0 : 0F; - 0b1 : 0E; - 0b2 : 0D; - 0b3 : 0C; - 0b4 : 0B; - 0b5 : 0A; - 0b6 : 09; - 0b7 : 08; - 0b8 : 07; - 0b9 : 06; - 0ba : 05; - 0bb : 04; - 0bc : 03; - 0bd : 02; - 0be : 01; - 0bf : 00; - 0c0 : 0F; - 0c1 : 0E; - 0c2 : 0D; - 0c3 : 0C; - 0c4 : 0B; - 0c5 : 0A; - 0c6 : 09; - 0c7 : 08; - 0c8 : 07; - 0c9 : 06; - 0ca : 05; - 0cb : 04; - 0cc : 03; - 0cd : 02; - 0ce : 01; - 0cf : 00; - 0d0 : 0F; - 0d1 : 0E; - 0d2 : 0D; - 0d3 : 0C; - 0d4 : 0B; - 0d5 : 0A; - 0d6 : 09; - 0d7 : 08; - 0d8 : 07; - 0d9 : 06; - 0da : 05; - 0db : 04; - 0dc : 03; - 0dd : 02; - 0de : 01; - 0df : 00; - 0e0 : 0F; - 0e1 : 0E; - 0e2 : 0D; - 0e3 : 0C; - 0e4 : 0B; - 0e5 : 0A; - 0e6 : 09; - 0e7 : 08; - 0e8 : 07; - 0e9 : 06; - 0ea : 05; - 0eb : 04; - 0ec : 03; - 0ed : 02; - 0ee : 01; - 0ef : 00; - 0f0 : 0F; - 0f1 : 0E; - 0f2 : 0D; - 0f3 : 0C; - 0f4 : 0B; - 0f5 : 0A; - 0f6 : 09; - 0f7 : 08; - 0f8 : 07; - 0f9 : 06; - 0fa : 05; - 0fb : 04; - 0fc : 03; - 0fd : 02; - 0fe : 01; - 0ff : 00; -END; diff --git a/FPGA_by_Fredi/Video/VIDEO_MOD_MUX_CLUTCTR.tdf b/FPGA_by_Fredi/Video/VIDEO_MOD_MUX_CLUTCTR.tdf index fc80715..f5588cf 100644 --- a/FPGA_by_Fredi/Video/VIDEO_MOD_MUX_CLUTCTR.tdf +++ b/FPGA_by_Fredi/Video/VIDEO_MOD_MUX_CLUTCTR.tdf @@ -59,6 +59,7 @@ SUBDESIGN VIDEO_MOD_MUX_CLUTCTR VR_WR : OUTPUT; VR_RD : OUTPUT; CLR_FIFO : OUTPUT; + DPZF_CLKENA: OUTPUT; FB_AD[31..0] : BIDIR; -- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! ) @@ -80,7 +81,7 @@ VARIABLE ST_CLUT :NODE; FB_B[3..0] :NODE; FB_16B[1..0] :NODE; - ST_SHIFT_MODE[1..0] :DFFE; + ST_SHIFT_MODE[2..0] :DFFE; ST_SHIFT_MODE_CS :NODE; FALCON_SHIFT_MODE[10..0] :DFFE; FALCON_SHIFT_MODE_CS :NODE; @@ -105,20 +106,19 @@ VARIABLE HSYNC_START :DFF; LAST :DFF; -- LETZTES PIXEL EINER ZEILE ERREICHT VSYNC :DFF; - VSYNC_START :DFFE; - VSYNC_I[2..0] :DFFE; + VSYNC_I[2..0] :DFF; nBLANK :DFF; DISP_ON :DFF; - DPO_ZL :DFFE; + DPO_ZL :DFF; DPO_ON :DFF; DPO_OFF :DFF; VDTRON :DFF; - VDO_ZL :DFFE; + VDO_ZL :DFF; VDO_ON :DFF; VDO_OFF :DFF; - VHCNT[11..0] :DFF; + VHCNT[12..0] :DFF; SUB_PIXEL_CNT[6..0] :DFFE; - VVCNT[10..0] :DFFE; + VVCNT[12..0] :DFFE; VERZ[2..0][9..0] :DFF; RAND[6..0] :DFF; RAND_ON :NODE; @@ -130,67 +130,63 @@ VARIABLE SYNC_PIX2 :DFF; CCSEL[2..0] :DFF; COLOR16 :NODE; - COLOR24 :NODE; --- ATARI RESOLUTION - ATARI_SYNC :NODE; - ATARI_HH[31..0] :DFFE; -- HORIZONTAL TIMING 640x480 - ATARI_HH_CS :NODE; - ATARI_VH[31..0] :DFFE; -- VERTIKAL TIMING 640x480 - ATARI_VH_CS :NODE; - ATARI_HL[31..0] :DFFE; -- HORIZONTAL TIMING 320x240 - ATARI_HL_CS :NODE; - ATARI_VL[31..0] :DFFE; -- VERTIKAL TIMING 320x240 - ATARI_VL_CS :NODE; + COLOR24 :NODE; -- IST ABER 32BIT BREIT + TE :NODE; -- HORIZONTAL - RAND_LINKS[11..0] :NODE; - HDIS_START[11..0] :NODE; - HDIS_END[11..0] :NODE; - RAND_RECHTS[11..0] :NODE; - HS_START[11..0] :NODE; - H_TOTAL[11..0] :NODE; - HDIS_LEN[11..0] :NODE; - MULF[5..0] :NODE; - VDL_HHT[11..0] :DFFE; + RAND_LINKS[12..0] :NODE; + HDIS_START[12..0] :NODE; + STARTP[12..0] :NODE; + HDIS_END[12..0] :NODE; + RAND_RECHTS[12..0] :NODE; + MULF[12..0] :NODE; + HS_START[12..0] :NODE; + H_TOTAL[12..0] :NODE; + HDIS_LEN[12..0] :NODE; + WPL[15..0] :NODE; + VDL_HHT[12..0] :DFFE; VDL_HHT_CS :NODE; - VDL_HBE[11..0] :DFFE; + VDL_HBE[12..0] :DFFE; VDL_HBE_CS :NODE; - VDL_HDB[11..0] :DFFE; + VDL_HDB[12..0] :DFFE; VDL_HDB_CS :NODE; - VDL_HDE[11..0] :DFFE; + VDL_HDE[12..0] :DFFE; VDL_HDE_CS :NODE; - VDL_HBB[11..0] :DFFE; + VDL_HBB[12..0] :DFFE; VDL_HBB_CS :NODE; - VDL_HSS[11..0] :DFFE; + VDL_HSS[12..0] :DFFE; VDL_HSS_CS :NODE; -- VERTIKAL - RAND_OBEN[10..0] :NODE; - VDIS_START[10..0] :NODE; - VDIS_END[10..0] :NODE; - RAND_UNTEN[10..0] :NODE; - VS_START[10..0] :NODE; - V_TOTAL[10..0] :NODE; + RAND_OBEN[12..0] :NODE; + VDIS_START[12..0] :NODE; + VDIS_END[12..0] :NODE; + RAND_UNTEN[12..0] :NODE; + VS_START[12..0] :NODE; + V_TOTAL[12..0] :NODE; FALCON_VIDEO :NODE; ST_VIDEO :NODE; INTER_ZEI :DFF; - DOP_ZEI :DFF; DOP_FIFO_CLR :DFF; - VDL_VBE[10..0] :DFFE; + VIDEL_CS :NODE; + VDL_VBE[12..0] :DFFE; VDL_VBE_CS :NODE; - VDL_VDB[10..0] :DFFE; + VDL_VDB[12..0] :DFFE; VDL_VDB_CS :NODE; - VDL_VDE[10..0] :DFFE; + VDL_VDE[12..0] :DFFE; VDL_VDE_CS :NODE; - VDL_VBB[10..0] :DFFE; + VDL_VBB[12..0] :DFFE; VDL_VBB_CS :NODE; - VDL_VSS[10..0] :DFFE; + VDL_VSS[12..0] :DFFE; VDL_VSS_CS :NODE; - VDL_VFT[10..0] :DFFE; + VDL_VFT[12..0] :DFFE; VDL_VFT_CS :NODE; - VDL_VCT[8..0] :DFFE; + VDL_VCT[12..0] :DFFE; VDL_VCT_CS :NODE; VDL_VMD[3..0] :DFFE; VDL_VMD_CS :NODE; + VDL_BPP_CS :NODE; + VDL_PH_CS :NODE; + VDL_PV_CS :NODE; BEGIN -- BYT SELECT 32 BIT @@ -207,6 +203,8 @@ BEGIN FB_16B0 = FB_ADR[0]==0; -- ADR==0 FB_16B1 = FB_ADR[0]==1 -- ADR==1 # !(!FB_SIZE1 & FB_SIZE0); -- NOT BYT +-- VIDEL CS + VIDEL_CS = !nFB_CS1 & FB_ADR[19..8]==H"F82"; -- FFF'F8200-FFF'F82FF -- ACP CLUT -- ACP_CLUT_CS = !nFB_CS2 & FB_ADR[27..10]==H"0"; -- 0-3FF/1024 ACP_CLUT_RD = ACP_CLUT_CS & !nFB_OE; @@ -226,11 +224,11 @@ BEGIN -- ST SHIFT MODE ST_SHIFT_MODE[].CLK = MAIN_CLK; ST_SHIFT_MODE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C130"; -- $F8260/2 - ST_SHIFT_MODE[] = FB_AD[25..24]; + ST_SHIFT_MODE[] = FB_AD[26..24]; ST_SHIFT_MODE[].ENA = ST_SHIFT_MODE_CS & !nFB_WR & FB_B0; - COLOR1 = ST_SHIFT_MODE[]==B"10" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- MONO - COLOR2 = ST_SHIFT_MODE[]==B"01" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- 4 FARBEN - COLOR4 = ST_SHIFT_MODE[]==B"00" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- 16 FARBEN + COLOR1 = ST_SHIFT_MODE[]==B"010" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- MONO + COLOR2 = ST_SHIFT_MODE[]==B"001" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- 4 FARBEN + COLOR4 = ST_SHIFT_MODE[]==B"000" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- 16 FARBEN -- FALCON SHIFT MODE FALCON_SHIFT_MODE[].CLK = MAIN_CLK; FALCON_SHIFT_MODE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C133"; -- $F8266/2 @@ -238,13 +236,13 @@ BEGIN FALCON_SHIFT_MODE[10..8].ENA = FALCON_SHIFT_MODE_CS & !nFB_WR & FB_B2; FALCON_SHIFT_MODE[7..0].ENA = FALCON_SHIFT_MODE_CS & !nFB_WR & FB_B3; CLUT_OFF[3..0] = FALCON_SHIFT_MODE[3..0] & COLOR4; - COLOR1 = FALCON_SHIFT_MODE10 & !COLOR16 & !COLOR8 & FALCON_VIDEO & !ACP_VIDEO_ON; - COLOR8 = FALCON_SHIFT_MODE4 & !COLOR16 & FALCON_VIDEO & !ACP_VIDEO_ON; - COLOR16 = FALCON_SHIFT_MODE8 & FALCON_VIDEO & !ACP_VIDEO_ON; - COLOR4 = !COLOR1 & !COLOR16 & !COLOR8 & FALCON_VIDEO & !ACP_VIDEO_ON; --- ACP VIDEO CONTROL BIT 0=ACP VIDEO ON, 1=POWER ON VIDEO DAC, 2=ACP 24BIT,3=ACP 16BIT,4=ACP 8BIT,5=ACP 1BIT, 6=FALCON SHIFT MODE;7=ST SHIFT MODE;9..8= VCLK FREQUENZ;15=-SYNC ALLOWED; 31..16=VIDEO_RAM_CTR,25=RANDFARBE EINSCHALTEN, 26=STANDARD ATARI SYNCS + COLOR1 = FALCON_SHIFT_MODE[] == H"400" & FALCON_VIDEO & !ACP_VIDEO_ON; + COLOR4 = FALCON_SHIFT_MODE[] == H"000" & FALCON_VIDEO & !ACP_VIDEO_ON; + COLOR8 = FALCON_SHIFT_MODE[] == H"010" & FALCON_VIDEO & !ACP_VIDEO_ON; + COLOR16 = FALCON_SHIFT_MODE[] == H"100" & FALCON_VIDEO & !ACP_VIDEO_ON; +-- ACP VIDEO CONTROL BIT 0=ACP VIDEO ON, 1=POWER ON VIDEO DAC, 2=ACP 24BIT,3=ACP 16BIT,4=ACP 8BIT,5=ACP 1BIT, 6=FALCON SHIFT MODE;7=ST SHIFT MODE;9..8= VCLK FREQUENZ;15=-SYNC ALLOWED; 31..16=VIDEO_RAM_CTR,25=RANDFARBE EINSCHALTEN ACP_VCTR[].CLK = MAIN_CLK; - ACP_VCTR_CS = !nFB_CS2 & FB_ADR[27..2]==H"100"; -- $400/4 + ACP_VCTR_CS = !nFB_CS2 & FB_ADR[27..2]==H"100"; -- $F000'0400 ACP_VCTR[31..8] = FB_AD[31..8]; ACP_VCTR[5..0] = FB_AD[5..0]; ACP_VCTR[31..24].ENA = ACP_VCTR_CS & FB_B0 & !nFB_WR; @@ -253,42 +251,8 @@ BEGIN ACP_VCTR[5..0].ENA = ACP_VCTR_CS & FB_B3 & !nFB_WR; ACP_VIDEO_ON = ACP_VCTR0; nPD_VGA = ACP_VCTR1; - -- ATARI MODUS - ATARI_SYNC = ACP_VCTR26; -- WENN 1 AUTOMATISCHE AUFLÖSUNG - -- HORIZONTAL TIMING 640x480 - ATARI_HH[].CLK = MAIN_CLK; - ATARI_HH_CS = !nFB_CS2 & FB_ADR[27..2]==H"104"; -- $410/4 - ATARI_HH[] = FB_AD[]; - ATARI_HH[31..24].ENA = ATARI_HH_CS & FB_B0 & !nFB_WR; - ATARI_HH[23..16].ENA = ATARI_HH_CS & FB_B1 & !nFB_WR; - ATARI_HH[15..8].ENA = ATARI_HH_CS & FB_B2 & !nFB_WR; - ATARI_HH[7..0].ENA = ATARI_HH_CS & FB_B3 & !nFB_WR; - -- VERTIKAL TIMING 640x480 - ATARI_VH[].CLK = MAIN_CLK; - ATARI_VH_CS = !nFB_CS2 & FB_ADR[27..2]==H"105"; -- $414/4 - ATARI_VH[] = FB_AD[]; - ATARI_VH[31..24].ENA = ATARI_VH_CS & FB_B0 & !nFB_WR; - ATARI_VH[23..16].ENA = ATARI_VH_CS & FB_B1 & !nFB_WR; - ATARI_VH[15..8].ENA = ATARI_VH_CS & FB_B2 & !nFB_WR; - ATARI_VH[7..0].ENA = ATARI_VH_CS & FB_B3 & !nFB_WR; - -- HORIZONTAL TIMING 320x240 - ATARI_HL[].CLK = MAIN_CLK; - ATARI_HL_CS = !nFB_CS2 & FB_ADR[27..2]==H"106"; -- $418/4 - ATARI_HL[] = FB_AD[]; - ATARI_HL[31..24].ENA = ATARI_HL_CS & FB_B0 & !nFB_WR; - ATARI_HL[23..16].ENA = ATARI_HL_CS & FB_B1 & !nFB_WR; - ATARI_HL[15..8].ENA = ATARI_HL_CS & FB_B2 & !nFB_WR; - ATARI_HL[7..0].ENA = ATARI_HL_CS & FB_B3 & !nFB_WR; - -- VERTIKAL TIMING 320x240 - ATARI_VL[].CLK = MAIN_CLK; - ATARI_VL_CS = !nFB_CS2 & FB_ADR[27..2]==H"107"; -- $41C/4 - ATARI_VL[] = FB_AD[]; - ATARI_VL[31..24].ENA = ATARI_VL_CS & FB_B0 & !nFB_WR; - ATARI_VL[23..16].ENA = ATARI_VL_CS & FB_B1 & !nFB_WR; - ATARI_VL[15..8].ENA = ATARI_VL_CS & FB_B2 & !nFB_WR; - ATARI_VL[7..0].ENA = ATARI_VL_CS & FB_B3 & !nFB_WR; -- VIDEO PLL CONFIG - VIDEO_PLL_CONFIG_CS = !nFB_CS2 & FB_ADR[27..9]==H"3" & FB_B0 & FB_B1; -- $(F)000'0600-7FF ->6/2 WORD RESP LONG ONLY + VIDEO_PLL_CONFIG_CS = !nFB_CS2 & FB_ADR[27..9]==H"3" & FB_B0 & FB_B1; -- $F000'0600-7FF ->6/2 WORD RESP LONG ONLY VR_WR.CLK = MAIN_CLK; VR_WR = VIDEO_PLL_CONFIG_CS & !nFB_WR & !VR_BUSY & !VR_WR; VR_RD = VIDEO_PLL_CONFIG_CS & nFB_WR & !VR_BUSY; @@ -299,7 +263,7 @@ BEGIN VR_FRQ[].ENA = VR_WR & FB_ADR[8..0]==H"04"; VR_FRQ[] = FB_AD[23..16]; -- VIDEO PLL RECONFIG - VIDEO_PLL_RECONFIG_CS = !nFB_CS2 & FB_ADR[27..0]==H"800" & FB_B0; -- $(F)000'0800 + VIDEO_PLL_RECONFIG_CS = !nFB_CS2 & FB_ADR[27..0]==H"800" & FB_B0; -- $F000'0800 VIDEO_RECONFIG.CLK = MAIN_CLK; VIDEO_RECONFIG = VIDEO_PLL_RECONFIG_CS & !nFB_WR & !VR_BUSY & !VIDEO_RECONFIG; ------------------------------------------------------------------------------------------------------------------------ @@ -313,11 +277,11 @@ BEGIN -- ST ODER FALCON SHIFT MODE SETZEN WENN WRITE X..SHIFT REGISTER ACP_VCTR7 = FALCON_SHIFT_MODE_CS & !nFB_WR & !ACP_VIDEO_ON; ACP_VCTR6 = ST_SHIFT_MODE_CS & !nFB_WR & !ACP_VIDEO_ON; - ACP_VCTR[7..6].ENA = FALCON_SHIFT_MODE_CS & !nFB_WR # ST_SHIFT_MODE_CS & !nFB_WR # ACP_VCTR_CS & FB_B3 & !nFB_WR & FB_AD0; + ACP_VCTR[7..6].ENA = (FALCON_SHIFT_MODE_CS # ST_SHIFT_MODE_CS) & !nFB_WR; FALCON_VIDEO = ACP_VCTR7; + ST_VIDEO = ACP_VCTR6 & !ACP_VCTR7; FALCON_CLUT = FALCON_VIDEO & !ACP_VIDEO_ON & !COLOR16; - ST_VIDEO = ACP_VCTR6; - ST_CLUT = ST_VIDEO & !ACP_VIDEO_ON & !FALCON_CLUT & !COLOR1; + ST_CLUT = ST_VIDEO & !ACP_VIDEO_ON & !COLOR1; CCSEL[].CLK = PIXEL_CLK; CCSEL[] = B"000" & ST_CLUT -- ONLY FOR INFORMATION # B"001" & FALCON_CLUT @@ -328,108 +292,112 @@ BEGIN -- DIVERSE (VIDEO)-REGISTER ---------------------------- -- RANDFARBE CCR[].CLK = MAIN_CLK; - CCR_CS = !nFB_CS2 & FB_ADR[27..2]==H"101"; -- $404/4 + CCR_CS = !nFB_CS2 & FB_ADR[27..2]==H"101"; -- $F004'0404/4 CCR[] = FB_AD[23..0]; CCR[23..16].ENA = CCR_CS & FB_B1 & !nFB_WR; CCR[15..8].ENA = CCR_CS & FB_B2 & !nFB_WR; CCR[7..0].ENA = CCR_CS & FB_B3 & !nFB_WR; --SYS CTR - SYS_CTR_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C003"; -- $8006/2 + SYS_CTR_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C003"; -- $FFFF'8006 SYS_CTR[].CLK = MAIN_CLK; SYS_CTR[6..0] = FB_AD[22..16]; SYS_CTR[6..0].ENA = SYS_CTR_CS & !nFB_WR & FB_B3; BLITTER_ON = SYS_CTR3; --VDL_LOF - VDL_LOF_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C107"; -- $820E/2 + VDL_LOF_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C107"; -- $F820E/2 VDL_LOF[].CLK = MAIN_CLK; VDL_LOF[] = FB_AD[31..16]; VDL_LOF[15..8].ENA = VDL_LOF_CS & !nFB_WR & FB_B2; VDL_LOF[7..0].ENA = VDL_LOF_CS & !nFB_WR & FB_B3; --VDL_LWD - VDL_LWD_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C108"; -- $8210/2 + VDL_LWD_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C108"; -- $F8210/2 VDL_LWD[].CLK = MAIN_CLK; VDL_LWD[] = FB_AD[31..16]; VDL_LWD[15..8].ENA = VDL_LWD_CS & !nFB_WR & FB_B0; VDL_LWD[7..0].ENA = VDL_LWD_CS & !nFB_WR & FB_B1; +-- DATEN AUFLÖSUNG + VDL_BPP_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C109"; -- $F8212: BITS PER PIXEL + VDL_PH_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C10A"; -- $F8214: BREITE IN PIXE + VDL_PV_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C10B"; -- $F8216: BREITE IN PIXE -- HORIZONTAL -- VDL_HHT VDL_HHT_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C141"; -- $8282/2 VDL_HHT[].CLK = MAIN_CLK; - VDL_HHT[] = FB_AD[27..16]; - VDL_HHT[11..8].ENA = VDL_HHT_CS & !nFB_WR & FB_B2; + VDL_HHT[] = FB_AD[28..16]; + VDL_HHT[12..8].ENA = VDL_HHT_CS & !nFB_WR & FB_B2; VDL_HHT[7..0].ENA = VDL_HHT_CS & !nFB_WR & FB_B3; -- VDL_HBE VDL_HBE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C143"; -- $8286/2 VDL_HBE[].CLK = MAIN_CLK; - VDL_HBE[] = FB_AD[27..16]; - VDL_HBE[11..8].ENA = VDL_HBE_CS & !nFB_WR & FB_B2; + VDL_HBE[] = FB_AD[28..16]; + VDL_HBE[12..8].ENA = VDL_HBE_CS & !nFB_WR & FB_B2; VDL_HBE[7..0].ENA = VDL_HBE_CS & !nFB_WR & FB_B3; -- VDL_HDB VDL_HDB_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C144"; -- $8288/2 VDL_HDB[].CLK = MAIN_CLK; - VDL_HDB[] = FB_AD[27..16]; - VDL_HDB[11..8].ENA = VDL_HDB_CS & !nFB_WR & FB_B0; + VDL_HDB[] = FB_AD[28..16]; + VDL_HDB[12..8].ENA = VDL_HDB_CS & !nFB_WR & FB_B0; VDL_HDB[7..0].ENA = VDL_HDB_CS & !nFB_WR & FB_B1; -- VDL_HDE VDL_HDE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C145"; -- $828A/2 VDL_HDE[].CLK = MAIN_CLK; - VDL_HDE[] = FB_AD[27..16]; - VDL_HDE[11..8].ENA = VDL_HDE_CS & !nFB_WR & FB_B2; + VDL_HDE[] = FB_AD[28..16]; + VDL_HDE[12..8].ENA = VDL_HDE_CS & !nFB_WR & FB_B2; VDL_HDE[7..0].ENA = VDL_HDE_CS & !nFB_WR & FB_B3; -- VDL_HBB VDL_HBB_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C142"; -- $8284/2 VDL_HBB[].CLK = MAIN_CLK; - VDL_HBB[] = FB_AD[27..16]; - VDL_HBB[11..8].ENA = VDL_HBB_CS & !nFB_WR & FB_B0; + VDL_HBB[] = FB_AD[28..16]; + VDL_HBB[12..8].ENA = VDL_HBB_CS & !nFB_WR & FB_B0; VDL_HBB[7..0].ENA = VDL_HBB_CS & !nFB_WR & FB_B1; -- VDL_HSS VDL_HSS_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C146"; -- $828C/2 VDL_HSS[].CLK = MAIN_CLK; - VDL_HSS[] = FB_AD[27..16]; - VDL_HSS[11..8].ENA = VDL_HSS_CS & !nFB_WR & FB_B0; + VDL_HSS[] = FB_AD[28..16]; + VDL_HSS[12..8].ENA = VDL_HSS_CS & !nFB_WR & FB_B0; VDL_HSS[7..0].ENA = VDL_HSS_CS & !nFB_WR & FB_B1; -- VERTIKAL -- VDL_VBE VDL_VBE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C153"; -- $82A6/2 VDL_VBE[].CLK = MAIN_CLK; - VDL_VBE[] = FB_AD[26..16]; - VDL_VBE[10..8].ENA = VDL_VBE_CS & !nFB_WR & FB_B2; + VDL_VBE[] = FB_AD[28..16]; + VDL_VBE[12..8].ENA = VDL_VBE_CS & !nFB_WR & FB_B2; VDL_VBE[7..0].ENA = VDL_VBE_CS & !nFB_WR & FB_B3; -- VDL_VDB VDL_VDB_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C154"; -- $82A8/2 VDL_VDB[].CLK = MAIN_CLK; - VDL_VDB[] = FB_AD[26..16]; - VDL_VDB[10..8].ENA = VDL_VDB_CS & !nFB_WR & FB_B0; + VDL_VDB[] = FB_AD[28..16]; + VDL_VDB[12..8].ENA = VDL_VDB_CS & !nFB_WR & FB_B0; VDL_VDB[7..0].ENA = VDL_VDB_CS & !nFB_WR & FB_B1; -- VDL_VDE VDL_VDE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C155"; -- $82AA/2 VDL_VDE[].CLK = MAIN_CLK; - VDL_VDE[] = FB_AD[26..16]; - VDL_VDE[10..8].ENA = VDL_VDE_CS & !nFB_WR & FB_B2; + VDL_VDE[] = FB_AD[28..16]; + VDL_VDE[12..8].ENA = VDL_VDE_CS & !nFB_WR & FB_B2; VDL_VDE[7..0].ENA = VDL_VDE_CS & !nFB_WR & FB_B3; -- VDL_VBB VDL_VBB_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C152"; -- $82A4/2 VDL_VBB[].CLK = MAIN_CLK; - VDL_VBB[] = FB_AD[26..16]; - VDL_VBB[10..8].ENA = VDL_VBB_CS & !nFB_WR & FB_B0; + VDL_VBB[] = FB_AD[28..16]; + VDL_VBB[12..8].ENA = VDL_VBB_CS & !nFB_WR & FB_B0; VDL_VBB[7..0].ENA = VDL_VBB_CS & !nFB_WR & FB_B1; -- VDL_VSS VDL_VSS_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C156"; -- $82AC/2 VDL_VSS[].CLK = MAIN_CLK; - VDL_VSS[] = FB_AD[26..16]; - VDL_VSS[10..8].ENA = VDL_VSS_CS & !nFB_WR & FB_B0; + VDL_VSS[] = FB_AD[28..16]; + VDL_VSS[12..8].ENA = VDL_VSS_CS & !nFB_WR & FB_B0; VDL_VSS[7..0].ENA = VDL_VSS_CS & !nFB_WR & FB_B1; -- VDL_VFT VDL_VFT_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C151"; -- $82A2/2 VDL_VFT[].CLK = MAIN_CLK; - VDL_VFT[] = FB_AD[26..16]; - VDL_VFT[10..8].ENA = VDL_VFT_CS & !nFB_WR & FB_B2; + VDL_VFT[] = FB_AD[28..16]; + VDL_VFT[12..8].ENA = VDL_VFT_CS & !nFB_WR & FB_B2; VDL_VFT[7..0].ENA = VDL_VFT_CS & !nFB_WR & FB_B3; -- VDL_VCT VDL_VCT_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C160"; -- $82C0/2 VDL_VCT[].CLK = MAIN_CLK; - VDL_VCT[] = FB_AD[24..16]; - VDL_VCT[8].ENA = VDL_VCT_CS & !nFB_WR & FB_B0; + VDL_VCT[] = FB_AD[28..16]; + VDL_VCT[12..8].ENA = VDL_VCT_CS & !nFB_WR & FB_B0; VDL_VCT[7..0].ENA = VDL_VCT_CS & !nFB_WR & FB_B1; -- VDL_VMD VDL_VMD_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C161"; -- $82C2/2 @@ -438,177 +406,152 @@ BEGIN VDL_VMD[3..0].ENA = VDL_VMD_CS & !nFB_WR & FB_B3; --- REGISTER OUT FB_AD[31..16] = lpm_bustri_WORD( - ST_SHIFT_MODE_CS & (0,ST_SHIFT_MODE[],B"00000000") + ST_SHIFT_MODE_CS & (B"00000",ST_SHIFT_MODE[],H"FF") # FALCON_SHIFT_MODE_CS & (0,FALCON_SHIFT_MODE[]) - # SYS_CTR_CS & (B"100000000",SYS_CTR[6..4],BLITTER_RUN,SYS_CTR[2..0]) - # VDL_LOF_CS & VDL_LOF[] - # VDL_LWD_CS & VDL_LWD[] - # VDL_HBE_CS & (0,VDL_HBE[]) - # VDL_HDB_CS & (0,VDL_HDB[]) - # VDL_HDE_CS & (0,VDL_HDE[]) - # VDL_HBB_CS & (0,VDL_HBB[]) - # VDL_HSS_CS & (0,VDL_HSS[]) - # VDL_HHT_CS & (0,VDL_HHT[]) - # VDL_VBE_CS & (0,VDL_VBE[]) - # VDL_VDB_CS & (0,VDL_VDB[]) - # VDL_VDE_CS & (0,VDL_VDE[]) - # VDL_VBB_CS & (0,VDL_VBB[]) - # VDL_VSS_CS & (0,VDL_VSS[]) - # VDL_VFT_CS & (0,VDL_VFT[]) - # VDL_VCT_CS & (0,VDL_VCT[]) - # VDL_VMD_CS & (0,VDL_VMD[]) - # ACP_VCTR_CS & ACP_VCTR[31..16] - # ATARI_HH_CS & ATARI_HH[31..16] - # ATARI_VH_CS & ATARI_VH[31..16] - # ATARI_HL_CS & ATARI_HL[31..16] - # ATARI_VL_CS & ATARI_VL[31..16] - # CCR_CS & (0,CCR[23..16]) - # VIDEO_PLL_CONFIG_CS & (0,VR_DOUT[]) - # VIDEO_PLL_RECONFIG_CS & (VR_BUSY,B"0000",VR_WR,VR_RD,VIDEO_RECONFIG,H"FA") - ,(ST_SHIFT_MODE_CS # FALCON_SHIFT_MODE_CS # ACP_VCTR_CS # CCR_CS # SYS_CTR_CS # VDL_LOF_CS # VDL_LWD_CS - # VDL_HBE_CS # VDL_HDB_CS # VDL_HDE_CS # VDL_HBB_CS # VDL_HSS_CS # VDL_HHT_CS - # ATARI_HH_CS # ATARI_VH_CS # ATARI_HL_CS # ATARI_VL_CS # VIDEO_PLL_CONFIG_CS # VIDEO_PLL_RECONFIG_CS - # VDL_VBE_CS # VDL_VDB_CS # VDL_VDE_CS # VDL_VBB_CS # VDL_VSS_CS # VDL_VFT_CS # VDL_VCT_CS # VDL_VMD_CS) & !nFB_OE); - + # SYS_CTR_CS & (B"100000000",SYS_CTR[6..4],BLITTER_RUN,SYS_CTR[2..0]) + # VDL_LOF_CS & VDL_LOF[] + # VDL_LWD_CS & WPL[] + # VDL_BPP_CS & (0 + (32 & COLOR24) + (16 & COLOR16) + (8 & COLOR8) + (4 & COLOR4) + (1 & COLOR1)) + # VDL_PH_CS & (0,HDIS_LEN[]) + # VDL_PV_CS & (0,(VDIS_END[] - VDIS_START[] + 1)) + # VDL_HBE_CS & (0,VDL_HBE[]) + # VDL_HDB_CS & (0,VDL_HDB[]) + # VDL_HDE_CS & (0,VDL_HDE[]) + # VDL_HBB_CS & (0,VDL_HBB[]) + # VDL_HSS_CS & (0,VDL_HSS[]) + # VDL_HHT_CS & (0,VDL_HHT[]) + # VDL_VBE_CS & (0,VDL_VBE[]) + # VDL_VDB_CS & (0,VDL_VDB[]) + # VDL_VDE_CS & (0,VDL_VDE[]) + # VDL_VBB_CS & (0,VDL_VBB[]) + # VDL_VSS_CS & (0,VDL_VSS[]) + # VDL_VFT_CS & (0,VDL_VFT[]) + # VDL_VCT_CS & (0,VDL_VCT[]) + # VDL_VMD_CS & (0,VDL_VMD[]) + # ACP_VCTR_CS & ACP_VCTR[31..16] + # CCR_CS & (0,CCR[23..16]) + # VIDEO_PLL_CONFIG_CS & (0,VR_DOUT[]) + # VIDEO_PLL_RECONFIG_CS & (VR_BUSY,B"0000",VR_WR,VR_RD,VIDEO_RECONFIG,H"FA") + ,(ACP_VCTR_CS # CCR_CS # VIDEO_PLL_CONFIG_CS # VIDEO_PLL_RECONFIG_CS # VIDEL_CS # SYS_CTR_CS) & !nFB_OE); FB_AD[15..0] = lpm_bustri_WORD( - ACP_VCTR_CS & ACP_VCTR[15..0] - # ATARI_HH_CS & ATARI_HH[15..0] - # ATARI_VH_CS & ATARI_VH[15..0] - # ATARI_HL_CS & ATARI_HL[15..0] - # ATARI_VL_CS & ATARI_VL[15..0] - # CCR_CS & CCR[15..0] - ,(ACP_VCTR_CS # CCR_CS # ATARI_HH_CS # ATARI_VH_CS # ATARI_HL_CS # ATARI_VL_CS ) & !nFB_OE); - - VIDEO_MOD_TA = CLUT_TA # ST_SHIFT_MODE_CS # FALCON_SHIFT_MODE_CS # ACP_VCTR_CS # SYS_CTR_CS # VDL_LOF_CS # VDL_LWD_CS - # VDL_HBE_CS # VDL_HDB_CS # VDL_HDE_CS # VDL_HBB_CS # VDL_HSS_CS # VDL_HHT_CS - # ATARI_HH_CS # ATARI_VH_CS # ATARI_HL_CS # ATARI_VL_CS - # VDL_VBE_CS # VDL_VDB_CS # VDL_VDE_CS # VDL_VBB_CS # VDL_VSS_CS # VDL_VFT_CS # VDL_VCT_CS # VDL_VMD_CS; - --- VIDEO AUSGABE SETZEN + ACP_VCTR_CS & ACP_VCTR[15..0] + # CCR_CS & CCR[15..0] + ,(ACP_VCTR_CS # CCR_CS) & !nFB_OE); + VIDEO_MOD_TA = CLUT_TA # ACP_VCTR_CS # SYS_CTR_CS # VIDEL_CS; +-- VIDEO AUSGABE SETZEN -------------------------------------------------------------- CLK17M.CLK = CLK33M; CLK17M = !CLK17M; CLK13M.CLK = CLK25M; CLK13M = !CLK13M; - PIXEL_CLK = CLK13M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & ( VDL_VMD2 & VDL_VCT2 # VDL_VCT0) - # CLK17M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & ( VDL_VMD2 & !VDL_VCT2 # VDL_VCT0) - # CLK25M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VMD2 & VDL_VCT2 & !VDL_VCT0 - # CLK33M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VMD2 & !VDL_VCT2 & !VDL_VCT0 - # CLK25M & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"00" - # CLK33M & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"01" - # CLK_VIDEO & ACP_VIDEO_ON & ACP_VCTR[9]; --------------------------------------------------------------- --- HORIZONTALE SYNC LÄNGE in PIXEL_CLK ----------------------------------------------------------------- + TE = VDL_VMD2 & !VDL_VCT0 # !VDL_VMD2 & VDL_VCT0; -- 1 WENN HALBE FREQUENZ UND 320*... (200.240.400.480) + PIXEL_CLK = CLK13M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & VDL_VCT2 & TE + # CLK17M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VCT2 & TE + # CLK25M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & VDL_VCT2 & !TE + # CLK33M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VCT2 & !TE + # CLK25M & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"00" + # CLK33M & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"01" + # CLK_VIDEO & ACP_VIDEO_ON & ACP_VCTR[9]; +-- HORIZONTALE SYNC LÄNGE in PIXEL_CLK ----------------------------------------------------- HSY_LEN[].CLK = MAIN_CLK; - HSY_LEN[] = 14 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & ( VDL_VMD2 & VDL_VCT2 # VDL_VCT0) - # 16 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & ( VDL_VMD2 & !VDL_VCT2 # VDL_VCT0) - # 28 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VMD2 & VDL_VCT2 & !VDL_VCT0 - # 32 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VMD2 & !VDL_VCT2 & !VDL_VCT0 - # 28 & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"00" - # 32 & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"01" - # 16 + (0,VR_FRQ[7..1]) & ACP_VIDEO_ON & ACP_VCTR[9]; -- hsync puls length in pixeln=frequenz/ = 500ns - - MULF[] = 2 & !ST_VIDEO & VDL_VMD2 -- MULTIPLIKATIONS FAKTOR - # 4 & !ST_VIDEO & !VDL_VMD2 - # 16 & ST_VIDEO & VDL_VMD2 - # 32 & ST_VIDEO & !VDL_VMD2; - - - HDIS_LEN[] = 320 & VDL_VMD2 -- BREITE IN PIXELN - # 640 & !VDL_VMD2; - --- DOPPELZEILENMODUS - DOP_ZEI.CLK = MAIN_CLK; - DOP_ZEI = VDL_VMD0 & ST_VIDEO; -- ZEILENVERDOPPELUNG EIN AUS + HSY_LEN[] = 19 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & VDL_VCT2 & TE + # 25 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VCT2 & TE + # 38 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & VDL_VCT2 & !TE + # 50 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VCT2 & !TE + # 38 & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"00" + # 50 & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"01" + # VR_FRQ[] & ACP_VIDEO_ON & ACP_VCTR[9]; -- hsync puls length in pixeln=frequenz/ = ca. 1us +-- MULTIPLIKATIONS FAKTOR ---------------------------------------- + MULF[] = 1 & !ST_VIDEO & ( TE # VDL_VCT0) + # 2 & !ST_VIDEO & !TE & !VDL_VCT0 + # 4 & ST_VIDEO & TE & VDL_VCT0 + # 8 & ST_VIDEO & ( TE & !VDL_VCT0 # !TE & VDL_VCT0) -- WENN ST_VIDEO VORTEILER *8 + # 16 & ST_VIDEO & !TE & !VDL_VCT0; + -- BREITE IN PIXELN ------------------------------------------------ + HDIS_LEN[] = 320 & TE & !ACP_VIDEO_ON + # 640 & !TE & !ACP_VIDEO_ON + # (HDIS_END[] - HDIS_START[] + 1) & ACP_VIDEO_ON; + WPL[] = VDL_LWD[] & !ACP_VIDEO_ON + # (0,HDIS_LEN[12..4]) & COLOR1 & ACP_VIDEO_ON + # (0,HDIS_LEN[12..1]) & COLOR8 & ACP_VIDEO_ON + # (0,HDIS_LEN[]) & COLOR16 & ACP_VIDEO_ON + # (0,HDIS_LEN[],B"0") & COLOR24 & ACP_VIDEO_ON; +-- DOPPELZEILENMODUS --------------------------------------------- INTER_ZEI.CLK = PIXEL_CLK; - INTER_ZEI = DOP_ZEI & VVCNT0!=VDIS_START0 & VVCNT[]!=0 & VHCNT[]<(HDIS_END[]-1) -- EINSCHIEBEZEILE AUF "DOPPEL" ZEILEN UND ZEILE NULL WEGEN SYNC - # DOP_ZEI & VVCNT0==VDIS_START0 & VVCNT[]!=0 & VHCNT[]>(HDIS_END[]-2); -- EINSCHIEBEZEILE AUF "NORMAL" ZEILEN UND ZEILE NULL WEGEN SYNC + INTER_ZEI = VDL_VMD0 & (FALCON_VIDEO # ST_VIDEO) & (VVCNT0!=VDIS_START0) & DPZF_CLKENA; -- EINSCHIEBEZEILE BEI UNGERADEN ZEILEN AB DISPLAY START UND NICHT AM ANFANG WEGEN DATATSHIFTOUT DOP_FIFO_CLR.CLK = PIXEL_CLK; - DOP_FIFO_CLR = INTER_ZEI & HSYNC_START # SYNC_PIX; -- DOPPELZEILENFIFO LÖSCHEN AM ENDE DER DOPPELZEILE UND BEI MAIN FIFO START - - RAND_LINKS[] = VDL_HBE[] & ACP_VIDEO_ON - # 21 & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # 42 & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # VDL_HBE[] * (0,MULF[5..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; -- - HDIS_START[] = VDL_HDB[] & ACP_VIDEO_ON - # RAND_LINKS[]+1 & !ACP_VIDEO_ON; -- - HDIS_END[] = VDL_HDE[] & ACP_VIDEO_ON - # RAND_LINKS[]+HDIS_LEN[] & !ACP_VIDEO_ON; -- - RAND_RECHTS[] = VDL_HBB[] & ACP_VIDEO_ON - # HDIS_END[]+1 & !ACP_VIDEO_ON; -- - HS_START[] = VDL_HSS[] & ACP_VIDEO_ON - # ATARI_HL[11..0] & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # ATARI_HH[11..0] & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # (VDL_HHT[]+1+VDL_HSS[]) * (0,MULF[5..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; -- - H_TOTAL[] = VDL_HHT[] & ACP_VIDEO_ON - # ATARI_HL[27..16] & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # ATARI_HH[27..16] & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # (VDL_HHT[]+2) * (0,MULF[]) & !ACP_VIDEO_ON & !ATARI_SYNC; -- - - RAND_OBEN[] = VDL_VBE[] & ACP_VIDEO_ON - # 31 & !ACP_VIDEO_ON & ATARI_SYNC - # (0,VDL_VBE[10..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; - VDIS_START[] = VDL_VDB[] & ACP_VIDEO_ON - # 32 & !ACP_VIDEO_ON & ATARI_SYNC - # (0,VDL_VDB[10..1])+1 & !ACP_VIDEO_ON & !ATARI_SYNC; - VDIS_END[] = VDL_VDE[] & ACP_VIDEO_ON - # 431 & !ACP_VIDEO_ON & ATARI_SYNC & ST_VIDEO - # 511 & !ACP_VIDEO_ON & ATARI_SYNC & !ST_VIDEO - # (0,VDL_VDE[10..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; - RAND_UNTEN[] = VDL_VBB[] & ACP_VIDEO_ON - # VDIS_END[]+1 & !ACP_VIDEO_ON & ATARI_SYNC - # (0,VDL_VBB[10..1])+1 & !ACP_VIDEO_ON & !ATARI_SYNC; - VS_START[] = VDL_VSS[] & ACP_VIDEO_ON - # ATARI_VL[10..0] & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # ATARI_VH[10..0] & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # (0,VDL_VSS[10..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; - V_TOTAL[] = VDL_VFT[] & ACP_VIDEO_ON - # ATARI_VL[26..16] & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # ATARI_VH[26..16] & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # (0,VDL_VFT[10..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; --- ZÄHLER + DOP_FIFO_CLR = INTER_ZEI & (VHCNT[]==HS_START[]); -- DOPPELZEILENFIFO LÖSCHEN AM ENDE DER UNGERADEN ZEILEN + DPZF_CLKENA = VVCNT[] > 4; -- FIFO DATASHIFTOUT UNTERBINDEN FÜR DOP.ZEI.FIFO +-- TIMING HORIZONTAL + STARTP[] = RAND_LINKS[] + RAND_RECHTS[] - HDIS_LEN[]; -- 2x MITTE SCREEN + RAND_LINKS[] = VDL_HBE[] & ACP_VIDEO_ON + # ((VDL_HBE[] + 1) * MULF[]) & !ACP_VIDEO_ON; -- + HDIS_START[] = VDL_HDB[] & ACP_VIDEO_ON + # ((RAND_LINKS[] + 1) & !VDL_VCT0) & !ACP_VIDEO_ON -- MONITOR GANZ RECHTS + # (((0,STARTP[12..1]) + 1) & VDL_VCT0) & !ACP_VIDEO_ON; -- RGB/TV EINMITTEN ZWISCHEN BLANKS + HDIS_END[] = VDL_HDE[] & ACP_VIDEO_ON + # (HDIS_START[] + HDIS_LEN[] - 1) & !ACP_VIDEO_ON; -- + RAND_RECHTS[] = VDL_HBB[] & ACP_VIDEO_ON + # ((VDL_HHT[] + 2 + VDL_HBB[]) * MULF[] + 1)& !ACP_VIDEO_ON; -- + HS_START[] = VDL_HSS[] & ACP_VIDEO_ON + # ((VDL_HHT[] + 2 + VDL_HSS[]) * MULF[] + 1)& !ACP_VIDEO_ON; -- + H_TOTAL[] = VDL_HHT[] & ACP_VIDEO_ON + # ((VDL_HHT[] + 2) * 2 * MULF[]) & !ACP_VIDEO_ON; -- +-- TIMING VERTICAL + RAND_OBEN[] = VDL_VBE[] & ACP_VIDEO_ON + # ((0,VDL_VBE[12..1]) & !VDL_VCT0) & !ACP_VIDEO_ON + # (VDL_VBE[] & VDL_VCT0) & !ACP_VIDEO_ON; + VDIS_START[] = VDL_VDB[] & ACP_VIDEO_ON + # (((0,VDL_VDB[12..1]) + 1) & !VDL_VCT0) & !ACP_VIDEO_ON + # (( VDL_VDB[] + 1) & VDL_VCT0) & !ACP_VIDEO_ON; + VDIS_END[] = VDL_VDE[] & ACP_VIDEO_ON + # ((0,VDL_VDE[12..1]) & !VDL_VCT0) & !ACP_VIDEO_ON + # ( VDL_VDE[] & VDL_VCT0) & !ACP_VIDEO_ON; + RAND_UNTEN[] = VDL_VBB[] & ACP_VIDEO_ON + # (((0,VDL_VBB[12..1]) + 1) & !VDL_VCT0) & !ACP_VIDEO_ON + # (( VDL_VBB[] + 1) & VDL_VCT0) & !ACP_VIDEO_ON; + VS_START[] = VDL_VSS[] & ACP_VIDEO_ON + # ((0,VDL_VSS[12..1]) & !VDL_VCT0) & !ACP_VIDEO_ON + # ( VDL_VSS[] & VDL_VCT0) & !ACP_VIDEO_ON; + V_TOTAL[] = VDL_VFT[] & ACP_VIDEO_ON + # (((0,VDL_VFT[12..1]) + 1) & !VDL_VCT0) & !ACP_VIDEO_ON + # ((VDL_VFT[] + 1) & VDL_VCT0) & !ACP_VIDEO_ON; +-- ZÄHLER --------------------------------------------------------------------------- LAST.CLK = PIXEL_CLK; - LAST = VHCNT[]==(H_TOTAL[]-2); + LAST = VHCNT[]==(H_TOTAL[] - 1); VHCNT[].CLK = PIXEL_CLK; VHCNT[] = (VHCNT[] + 1) & !LAST; VVCNT[].CLK = PIXEL_CLK; VVCNT[].ENA = LAST; - VVCNT[] = (VVCNT[] + 1) & (VVCNT[]!=V_TOTAL[]-1); + VVCNT[] = (VVCNT[] + 1) & (VVCNT[]!=V_TOTAL[]); -- DISPLAY ON OFF DPO_ZL.CLK = PIXEL_CLK; - DPO_ZL = (VVCNT[]>RAND_OBEN[]-1) & (VVCNT[]RAND_OBEN[]) & (VVCNT[]=(VDIS_START[]-1)) & (VVCNT[]=(VDIS_START[])) & (VVCNT[]<=VDIS_END[]); -- ON OFF VDTRON.CLK = PIXEL_CLK; VDTRON = VDTRON & !VDO_OFF # VDO_ON & VDO_ZL; -- VERZÖGERUNG UND SYNC HSYNC_START.CLK = PIXEL_CLK; - HSYNC_START = VHCNT[]==HS_START[]-3; + HSYNC_START = VHCNT[]==HS_START[] - 2; HSYNC_I[].CLK = PIXEL_CLK; HSYNC_I[] = HSY_LEN[] & HSYNC_START # (HSYNC_I[]-1) & !HSYNC_START & HSYNC_I[]!=0; - VSYNC_START.CLK = PIXEL_CLK; - VSYNC_START.ENA = LAST; - VSYNC_START = VVCNT[]==(VS_START[]-3); -- start am ende der Zeile vor dem vsync VSYNC_I[].CLK = PIXEL_CLK; - VSYNC_I[].ENA = LAST; -- start am ende der Zeile vor dem vsync - VSYNC_I[] = 3 & VSYNC_START -- 3 zeilen vsync length - # (VSYNC_I[]-1) & !VSYNC_START & VSYNC_I[]!=0; -- runterzählen bis 0 + VSYNC_I[] = VVCNT[12..1]==VS_START[12..1]; -- VSYNC BEI VS_START 2 ZEILEN LANG + VSYNC_I[].CLK = PIXEL_CLK; VERZ[][].CLK = PIXEL_CLK; VERZ[][1] = VERZ[][0]; VERZ[][2] = VERZ[][1]; @@ -620,11 +563,10 @@ BEGIN VERZ[][8] = VERZ[][7]; VERZ[][9] = VERZ[][8]; VERZ[0][0] = DISP_ON; --- VERZ[1][0] = HSYNC_I[]!=0; - VERZ[1][0] = (!ACP_VCTR15 # !VDL_VCT6) & HSYNC_I[]!=0 - # ACP_VCTR15 & VDL_VCT6 & HSYNC_I[]==0; -- NUR MÖGLICH WENN BEIDE - VERZ[2][0] = (!ACP_VCTR15 # !VDL_VCT5) & VSYNC_I[]!=0 - # ACP_VCTR15 & VDL_VCT5 & VSYNC_I[]==0; -- NUR MÖGLICH WENN BEIDE + VERZ[1][0] = !VDL_VCT6 & HSYNC_I[]!=0 + # VDL_VCT6 & HSYNC_I[]==0; + VERZ[2][0] = !VDL_VCT5 & VSYNC_I[]!=0 + # VDL_VCT5 & VSYNC_I[]==0; nBLANK.CLK = PIXEL_CLK; nBLANK = VERZ[0][8]; HSYNC.CLK = PIXEL_CLK; @@ -645,10 +587,10 @@ BEGIN ---------------------------------------------------------- CLR_FIFO.CLK = PIXEL_CLK; CLR_FIFO.ENA = LAST; - CLR_FIFO = VVCNT[]==V_TOTAL[]-2; -- IN LETZTER ZEILE LÖSCHEN + CLR_FIFO = VVCNT[]==(VDIS_END[] + 2); -- FIFO NACH ENDE ANZEIGE LÖSCHEN (GENUG FRÜH DAMIT ES GEFÜLLT WERDEN KANN BIS ZUR NEUEN ÜBERTRAGUNG) START_ZEILE.CLK = PIXEL_CLK; START_ZEILE.ENA = LAST; - START_ZEILE = VVCNT[]==0; -- ZEILE 1 + START_ZEILE = VVCNT[]==1; -- ZEILE 1 SYNC_PIX.CLK = PIXEL_CLK; SYNC_PIX = VHCNT[]==3 & START_ZEILE; -- SUB PIXEL ZÄHLER SYNCHRONISIEREN SYNC_PIX1.CLK = PIXEL_CLK; diff --git a/FPGA_by_Fredi/Video/VIDEO_MOD_MUX_CLUTCTR.tdf.bak b/FPGA_by_Fredi/Video/VIDEO_MOD_MUX_CLUTCTR.tdf.bak index 2a594ff..0ade395 100644 --- a/FPGA_by_Fredi/Video/VIDEO_MOD_MUX_CLUTCTR.tdf.bak +++ b/FPGA_by_Fredi/Video/VIDEO_MOD_MUX_CLUTCTR.tdf.bak @@ -59,6 +59,7 @@ SUBDESIGN VIDEO_MOD_MUX_CLUTCTR VR_WR : OUTPUT; VR_RD : OUTPUT; CLR_FIFO : OUTPUT; + DPZF_CLKENA: OUTPUT; FB_AD[31..0] : BIDIR; -- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! ) @@ -80,7 +81,7 @@ VARIABLE ST_CLUT :NODE; FB_B[3..0] :NODE; FB_16B[1..0] :NODE; - ST_SHIFT_MODE[1..0] :DFFE; + ST_SHIFT_MODE[2..0] :DFFE; ST_SHIFT_MODE_CS :NODE; FALCON_SHIFT_MODE[10..0] :DFFE; FALCON_SHIFT_MODE_CS :NODE; @@ -105,20 +106,19 @@ VARIABLE HSYNC_START :DFF; LAST :DFF; -- LETZTES PIXEL EINER ZEILE ERREICHT VSYNC :DFF; - VSYNC_START :DFFE; - VSYNC_I[2..0] :DFFE; + VSYNC_I[2..0] :DFF; nBLANK :DFF; DISP_ON :DFF; - DPO_ZL :DFFE; + DPO_ZL :DFF; DPO_ON :DFF; DPO_OFF :DFF; VDTRON :DFF; - VDO_ZL :DFFE; + VDO_ZL :DFF; VDO_ON :DFF; VDO_OFF :DFF; - VHCNT[11..0] :DFF; + VHCNT[12..0] :DFF; SUB_PIXEL_CNT[6..0] :DFFE; - VVCNT[10..0] :DFFE; + VVCNT[12..0] :DFFE; VERZ[2..0][9..0] :DFF; RAND[6..0] :DFF; RAND_ON :NODE; @@ -130,67 +130,63 @@ VARIABLE SYNC_PIX2 :DFF; CCSEL[2..0] :DFF; COLOR16 :NODE; - COLOR24 :NODE; --- ATARI RESOLUTION - ATARI_SYNC :NODE; - ATARI_HH[31..0] :DFFE; -- HORIZONTAL TIMING 640x480 - ATARI_HH_CS :NODE; - ATARI_VH[31..0] :DFFE; -- VERTIKAL TIMING 640x480 - ATARI_VH_CS :NODE; - ATARI_HL[31..0] :DFFE; -- HORIZONTAL TIMING 320x240 - ATARI_HL_CS :NODE; - ATARI_VL[31..0] :DFFE; -- VERTIKAL TIMING 320x240 - ATARI_VL_CS :NODE; + COLOR24 :NODE; -- IST ABER 32BIT BREIT + TE :NODE; -- HORIZONTAL - RAND_LINKS[11..0] :NODE; - HDIS_START[11..0] :NODE; - HDIS_END[11..0] :NODE; - RAND_RECHTS[11..0] :NODE; - HS_START[11..0] :NODE; - H_TOTAL[11..0] :NODE; - HDIS_LEN[11..0] :NODE; - MULF[5..0] :NODE; - VDL_HHT[11..0] :DFFE; + RAND_LINKS[12..0] :NODE; + HDIS_START[12..0] :NODE; + STARTP[12..0] :NODE; + HDIS_END[12..0] :NODE; + RAND_RECHTS[12..0] :NODE; + MULF[12..0] :NODE; + HS_START[12..0] :NODE; + H_TOTAL[12..0] :NODE; + HDIS_LEN[12..0] :NODE; + WPL[15..0] :NODE; + VDL_HHT[12..0] :DFFE; VDL_HHT_CS :NODE; - VDL_HBE[11..0] :DFFE; + VDL_HBE[12..0] :DFFE; VDL_HBE_CS :NODE; - VDL_HDB[11..0] :DFFE; + VDL_HDB[12..0] :DFFE; VDL_HDB_CS :NODE; - VDL_HDE[11..0] :DFFE; + VDL_HDE[12..0] :DFFE; VDL_HDE_CS :NODE; - VDL_HBB[11..0] :DFFE; + VDL_HBB[12..0] :DFFE; VDL_HBB_CS :NODE; - VDL_HSS[11..0] :DFFE; + VDL_HSS[12..0] :DFFE; VDL_HSS_CS :NODE; -- VERTIKAL - RAND_OBEN[10..0] :NODE; - VDIS_START[10..0] :NODE; - VDIS_END[10..0] :NODE; - RAND_UNTEN[10..0] :NODE; - VS_START[10..0] :NODE; - V_TOTAL[10..0] :NODE; + RAND_OBEN[12..0] :NODE; + VDIS_START[12..0] :NODE; + VDIS_END[12..0] :NODE; + RAND_UNTEN[12..0] :NODE; + VS_START[12..0] :NODE; + V_TOTAL[12..0] :NODE; FALCON_VIDEO :NODE; ST_VIDEO :NODE; INTER_ZEI :DFF; - DOP_ZEI :DFF; DOP_FIFO_CLR :DFF; - VDL_VBE[10..0] :DFFE; + VIDEL_CS :NODE; + VDL_VBE[12..0] :DFFE; VDL_VBE_CS :NODE; - VDL_VDB[10..0] :DFFE; + VDL_VDB[12..0] :DFFE; VDL_VDB_CS :NODE; - VDL_VDE[10..0] :DFFE; + VDL_VDE[12..0] :DFFE; VDL_VDE_CS :NODE; - VDL_VBB[10..0] :DFFE; + VDL_VBB[12..0] :DFFE; VDL_VBB_CS :NODE; - VDL_VSS[10..0] :DFFE; + VDL_VSS[12..0] :DFFE; VDL_VSS_CS :NODE; - VDL_VFT[10..0] :DFFE; + VDL_VFT[12..0] :DFFE; VDL_VFT_CS :NODE; - VDL_VCT[8..0] :DFFE; + VDL_VCT[12..0] :DFFE; VDL_VCT_CS :NODE; VDL_VMD[3..0] :DFFE; VDL_VMD_CS :NODE; + VDL_BPP_CS :NODE; + VDL_PH_CS :NODE; + VDL_PV_CS :NODE; BEGIN -- BYT SELECT 32 BIT @@ -207,6 +203,8 @@ BEGIN FB_16B0 = FB_ADR[0]==0; -- ADR==0 FB_16B1 = FB_ADR[0]==1 -- ADR==1 # !(!FB_SIZE1 & FB_SIZE0); -- NOT BYT +-- VIDEL CS + VIDEL_CS = !nFB_CS1 & FB_ADR[19..8]==H"F82"; -- FFF'F8200-FFF'F82FF -- ACP CLUT -- ACP_CLUT_CS = !nFB_CS2 & FB_ADR[27..10]==H"0"; -- 0-3FF/1024 ACP_CLUT_RD = ACP_CLUT_CS & !nFB_OE; @@ -226,11 +224,11 @@ BEGIN -- ST SHIFT MODE ST_SHIFT_MODE[].CLK = MAIN_CLK; ST_SHIFT_MODE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C130"; -- $F8260/2 - ST_SHIFT_MODE[] = FB_AD[25..24]; + ST_SHIFT_MODE[] = FB_AD[26..24]; ST_SHIFT_MODE[].ENA = ST_SHIFT_MODE_CS & !nFB_WR & FB_B0; - COLOR1 = ST_SHIFT_MODE[]==B"10" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- MONO - COLOR2 = ST_SHIFT_MODE[]==B"01" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- 4 FARBEN - COLOR4 = ST_SHIFT_MODE[]==B"00" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- 16 FARBEN + COLOR1 = ST_SHIFT_MODE[]==B"010" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- MONO + COLOR2 = ST_SHIFT_MODE[]==B"001" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- 4 FARBEN + COLOR4 = ST_SHIFT_MODE[]==B"000" & !COLOR8 & ST_VIDEO & !ACP_VIDEO_ON; -- 16 FARBEN -- FALCON SHIFT MODE FALCON_SHIFT_MODE[].CLK = MAIN_CLK; FALCON_SHIFT_MODE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C133"; -- $F8266/2 @@ -238,13 +236,13 @@ BEGIN FALCON_SHIFT_MODE[10..8].ENA = FALCON_SHIFT_MODE_CS & !nFB_WR & FB_B2; FALCON_SHIFT_MODE[7..0].ENA = FALCON_SHIFT_MODE_CS & !nFB_WR & FB_B3; CLUT_OFF[3..0] = FALCON_SHIFT_MODE[3..0] & COLOR4; - COLOR1 = FALCON_SHIFT_MODE10 & !COLOR16 & !COLOR8 & FALCON_VIDEO & !ACP_VIDEO_ON; - COLOR8 = FALCON_SHIFT_MODE4 & !COLOR16 & FALCON_VIDEO & !ACP_VIDEO_ON; - COLOR16 = FALCON_SHIFT_MODE8 & FALCON_VIDEO & !ACP_VIDEO_ON; - COLOR4 = !COLOR1 & !COLOR16 & !COLOR8 & FALCON_VIDEO & !ACP_VIDEO_ON; --- ACP VIDEO CONTROL BIT 0=ACP VIDEO ON, 1=POWER ON VIDEO DAC, 2=ACP 24BIT,3=ACP 16BIT,4=ACP 8BIT,5=ACP 1BIT, 6=FALCON SHIFT MODE;7=ST SHIFT MODE;9..8= VCLK FREQUENZ;15=-SYNC ALLOWED; 31..16=VIDEO_RAM_CTR,25=RANDFARBE EINSCHALTEN, 26=STANDARD ATARI SYNCS + COLOR1 = FALCON_SHIFT_MODE[] == H"400" & FALCON_VIDEO & !ACP_VIDEO_ON; + COLOR4 = FALCON_SHIFT_MODE[] == H"000" & FALCON_VIDEO & !ACP_VIDEO_ON; + COLOR8 = FALCON_SHIFT_MODE[] == H"010" & FALCON_VIDEO & !ACP_VIDEO_ON; + COLOR16 = FALCON_SHIFT_MODE[] == H"100" & FALCON_VIDEO & !ACP_VIDEO_ON; +-- ACP VIDEO CONTROL BIT 0=ACP VIDEO ON, 1=POWER ON VIDEO DAC, 2=ACP 24BIT,3=ACP 16BIT,4=ACP 8BIT,5=ACP 1BIT, 6=FALCON SHIFT MODE;7=ST SHIFT MODE;9..8= VCLK FREQUENZ;15=-SYNC ALLOWED; 31..16=VIDEO_RAM_CTR,25=RANDFARBE EINSCHALTEN ACP_VCTR[].CLK = MAIN_CLK; - ACP_VCTR_CS = !nFB_CS2 & FB_ADR[27..2]==H"100"; -- $400/4 + ACP_VCTR_CS = !nFB_CS2 & FB_ADR[27..2]==H"100"; -- $F000'0400 ACP_VCTR[31..8] = FB_AD[31..8]; ACP_VCTR[5..0] = FB_AD[5..0]; ACP_VCTR[31..24].ENA = ACP_VCTR_CS & FB_B0 & !nFB_WR; @@ -253,42 +251,8 @@ BEGIN ACP_VCTR[5..0].ENA = ACP_VCTR_CS & FB_B3 & !nFB_WR; ACP_VIDEO_ON = ACP_VCTR0; nPD_VGA = ACP_VCTR1; - -- ATARI MODUS - ATARI_SYNC = ACP_VCTR26; -- WENN 1 AUTOMATISCHE AUFLÖSUNG - -- HORIZONTAL TIMING 640x480 - ATARI_HH[].CLK = MAIN_CLK; - ATARI_HH_CS = !nFB_CS2 & FB_ADR[27..2]==H"104"; -- $410/4 - ATARI_HH[] = FB_AD[]; - ATARI_HH[31..24].ENA = ATARI_HH_CS & FB_B0 & !nFB_WR; - ATARI_HH[23..16].ENA = ATARI_HH_CS & FB_B1 & !nFB_WR; - ATARI_HH[15..8].ENA = ATARI_HH_CS & FB_B2 & !nFB_WR; - ATARI_HH[7..0].ENA = ATARI_HH_CS & FB_B3 & !nFB_WR; - -- VERTIKAL TIMING 640x480 - ATARI_VH[].CLK = MAIN_CLK; - ATARI_VH_CS = !nFB_CS2 & FB_ADR[27..2]==H"105"; -- $414/4 - ATARI_VH[] = FB_AD[]; - ATARI_VH[31..24].ENA = ATARI_VH_CS & FB_B0 & !nFB_WR; - ATARI_VH[23..16].ENA = ATARI_VH_CS & FB_B1 & !nFB_WR; - ATARI_VH[15..8].ENA = ATARI_VH_CS & FB_B2 & !nFB_WR; - ATARI_VH[7..0].ENA = ATARI_VH_CS & FB_B3 & !nFB_WR; - -- HORIZONTAL TIMING 320x240 - ATARI_HL[].CLK = MAIN_CLK; - ATARI_HL_CS = !nFB_CS2 & FB_ADR[27..2]==H"106"; -- $418/4 - ATARI_HL[] = FB_AD[]; - ATARI_HL[31..24].ENA = ATARI_HL_CS & FB_B0 & !nFB_WR; - ATARI_HL[23..16].ENA = ATARI_HL_CS & FB_B1 & !nFB_WR; - ATARI_HL[15..8].ENA = ATARI_HL_CS & FB_B2 & !nFB_WR; - ATARI_HL[7..0].ENA = ATARI_HL_CS & FB_B3 & !nFB_WR; - -- VERTIKAL TIMING 320x240 - ATARI_VL[].CLK = MAIN_CLK; - ATARI_VL_CS = !nFB_CS2 & FB_ADR[27..2]==H"107"; -- $41C/4 - ATARI_VL[] = FB_AD[]; - ATARI_VL[31..24].ENA = ATARI_VL_CS & FB_B0 & !nFB_WR; - ATARI_VL[23..16].ENA = ATARI_VL_CS & FB_B1 & !nFB_WR; - ATARI_VL[15..8].ENA = ATARI_VL_CS & FB_B2 & !nFB_WR; - ATARI_VL[7..0].ENA = ATARI_VL_CS & FB_B3 & !nFB_WR; -- VIDEO PLL CONFIG - VIDEO_PLL_CONFIG_CS = !nFB_CS2 & FB_ADR[27..9]==H"3" & FB_B0 & FB_B1; -- $(F)000'0600-7FF ->6/2 WORD RESP LONG ONLY + VIDEO_PLL_CONFIG_CS = !nFB_CS2 & FB_ADR[27..9]==H"3" & FB_B0 & FB_B1; -- $F000'0600-7FF ->6/2 WORD RESP LONG ONLY VR_WR.CLK = MAIN_CLK; VR_WR = VIDEO_PLL_CONFIG_CS & !nFB_WR & !VR_BUSY & !VR_WR; VR_RD = VIDEO_PLL_CONFIG_CS & nFB_WR & !VR_BUSY; @@ -299,7 +263,7 @@ BEGIN VR_FRQ[].ENA = VR_WR & FB_ADR[8..0]==H"04"; VR_FRQ[] = FB_AD[23..16]; -- VIDEO PLL RECONFIG - VIDEO_PLL_RECONFIG_CS = !nFB_CS2 & FB_ADR[27..0]==H"800" & FB_B0; -- $(F)000'0800 + VIDEO_PLL_RECONFIG_CS = !nFB_CS2 & FB_ADR[27..0]==H"800" & FB_B0; -- $F000'0800 VIDEO_RECONFIG.CLK = MAIN_CLK; VIDEO_RECONFIG = VIDEO_PLL_RECONFIG_CS & !nFB_WR & !VR_BUSY & !VIDEO_RECONFIG; ------------------------------------------------------------------------------------------------------------------------ @@ -313,11 +277,11 @@ BEGIN -- ST ODER FALCON SHIFT MODE SETZEN WENN WRITE X..SHIFT REGISTER ACP_VCTR7 = FALCON_SHIFT_MODE_CS & !nFB_WR & !ACP_VIDEO_ON; ACP_VCTR6 = ST_SHIFT_MODE_CS & !nFB_WR & !ACP_VIDEO_ON; - ACP_VCTR[7..6].ENA = FALCON_SHIFT_MODE_CS & !nFB_WR # ST_SHIFT_MODE_CS & !nFB_WR # ACP_VCTR_CS & FB_B3 & !nFB_WR & FB_AD0; + ACP_VCTR[7..6].ENA = (FALCON_SHIFT_MODE_CS # ST_SHIFT_MODE_CS) & !nFB_WR; FALCON_VIDEO = ACP_VCTR7; + ST_VIDEO = ACP_VCTR6 & !ACP_VCTR7; FALCON_CLUT = FALCON_VIDEO & !ACP_VIDEO_ON & !COLOR16; - ST_VIDEO = ACP_VCTR6; - ST_CLUT = ST_VIDEO & !ACP_VIDEO_ON & !FALCON_CLUT & !COLOR1; + ST_CLUT = ST_VIDEO & !ACP_VIDEO_ON & !COLOR1; CCSEL[].CLK = PIXEL_CLK; CCSEL[] = B"000" & ST_CLUT -- ONLY FOR INFORMATION # B"001" & FALCON_CLUT @@ -328,108 +292,112 @@ BEGIN -- DIVERSE (VIDEO)-REGISTER ---------------------------- -- RANDFARBE CCR[].CLK = MAIN_CLK; - CCR_CS = !nFB_CS2 & FB_ADR[27..2]==H"101"; -- $404/4 + CCR_CS = !nFB_CS2 & FB_ADR[27..2]==H"101"; -- $F004'0404/4 CCR[] = FB_AD[23..0]; CCR[23..16].ENA = CCR_CS & FB_B1 & !nFB_WR; CCR[15..8].ENA = CCR_CS & FB_B2 & !nFB_WR; CCR[7..0].ENA = CCR_CS & FB_B3 & !nFB_WR; --SYS CTR - SYS_CTR_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C003"; -- $8006/2 + SYS_CTR_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C003"; -- $FFFF'8006 SYS_CTR[].CLK = MAIN_CLK; SYS_CTR[6..0] = FB_AD[22..16]; SYS_CTR[6..0].ENA = SYS_CTR_CS & !nFB_WR & FB_B3; - BLITTER_ON = !SYS_CTR3; + BLITTER_ON = SYS_CTR3; --VDL_LOF - VDL_LOF_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C107"; -- $820E/2 + VDL_LOF_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C107"; -- $F820E/2 VDL_LOF[].CLK = MAIN_CLK; VDL_LOF[] = FB_AD[31..16]; VDL_LOF[15..8].ENA = VDL_LOF_CS & !nFB_WR & FB_B2; VDL_LOF[7..0].ENA = VDL_LOF_CS & !nFB_WR & FB_B3; --VDL_LWD - VDL_LWD_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C108"; -- $8210/2 + VDL_LWD_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C108"; -- $F8210/2 VDL_LWD[].CLK = MAIN_CLK; VDL_LWD[] = FB_AD[31..16]; VDL_LWD[15..8].ENA = VDL_LWD_CS & !nFB_WR & FB_B0; VDL_LWD[7..0].ENA = VDL_LWD_CS & !nFB_WR & FB_B1; +-- DATEN AUFLÖSUNG + VDL_BPP_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C109"; -- $F8212: BITS PER PIXEL + VDL_PH_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C10A"; -- $F8214: BREITE IN PIXE + VDL_PV_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C10B"; -- $F8216: BREITE IN PIXE -- HORIZONTAL -- VDL_HHT VDL_HHT_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C141"; -- $8282/2 VDL_HHT[].CLK = MAIN_CLK; - VDL_HHT[] = FB_AD[27..16]; - VDL_HHT[11..8].ENA = VDL_HHT_CS & !nFB_WR & FB_B2; + VDL_HHT[] = FB_AD[28..16]; + VDL_HHT[12..8].ENA = VDL_HHT_CS & !nFB_WR & FB_B2; VDL_HHT[7..0].ENA = VDL_HHT_CS & !nFB_WR & FB_B3; -- VDL_HBE VDL_HBE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C143"; -- $8286/2 VDL_HBE[].CLK = MAIN_CLK; - VDL_HBE[] = FB_AD[27..16]; - VDL_HBE[11..8].ENA = VDL_HBE_CS & !nFB_WR & FB_B2; + VDL_HBE[] = FB_AD[28..16]; + VDL_HBE[12..8].ENA = VDL_HBE_CS & !nFB_WR & FB_B2; VDL_HBE[7..0].ENA = VDL_HBE_CS & !nFB_WR & FB_B3; -- VDL_HDB VDL_HDB_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C144"; -- $8288/2 VDL_HDB[].CLK = MAIN_CLK; - VDL_HDB[] = FB_AD[27..16]; - VDL_HDB[11..8].ENA = VDL_HDB_CS & !nFB_WR & FB_B0; + VDL_HDB[] = FB_AD[28..16]; + VDL_HDB[12..8].ENA = VDL_HDB_CS & !nFB_WR & FB_B0; VDL_HDB[7..0].ENA = VDL_HDB_CS & !nFB_WR & FB_B1; -- VDL_HDE VDL_HDE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C145"; -- $828A/2 VDL_HDE[].CLK = MAIN_CLK; - VDL_HDE[] = FB_AD[27..16]; - VDL_HDE[11..8].ENA = VDL_HDE_CS & !nFB_WR & FB_B2; + VDL_HDE[] = FB_AD[28..16]; + VDL_HDE[12..8].ENA = VDL_HDE_CS & !nFB_WR & FB_B2; VDL_HDE[7..0].ENA = VDL_HDE_CS & !nFB_WR & FB_B3; -- VDL_HBB VDL_HBB_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C142"; -- $8284/2 VDL_HBB[].CLK = MAIN_CLK; - VDL_HBB[] = FB_AD[27..16]; - VDL_HBB[11..8].ENA = VDL_HBB_CS & !nFB_WR & FB_B0; + VDL_HBB[] = FB_AD[28..16]; + VDL_HBB[12..8].ENA = VDL_HBB_CS & !nFB_WR & FB_B0; VDL_HBB[7..0].ENA = VDL_HBB_CS & !nFB_WR & FB_B1; -- VDL_HSS VDL_HSS_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C146"; -- $828C/2 VDL_HSS[].CLK = MAIN_CLK; - VDL_HSS[] = FB_AD[27..16]; - VDL_HSS[11..8].ENA = VDL_HSS_CS & !nFB_WR & FB_B0; + VDL_HSS[] = FB_AD[28..16]; + VDL_HSS[12..8].ENA = VDL_HSS_CS & !nFB_WR & FB_B0; VDL_HSS[7..0].ENA = VDL_HSS_CS & !nFB_WR & FB_B1; -- VERTIKAL -- VDL_VBE VDL_VBE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C153"; -- $82A6/2 VDL_VBE[].CLK = MAIN_CLK; - VDL_VBE[] = FB_AD[26..16]; - VDL_VBE[10..8].ENA = VDL_VBE_CS & !nFB_WR & FB_B2; + VDL_VBE[] = FB_AD[28..16]; + VDL_VBE[12..8].ENA = VDL_VBE_CS & !nFB_WR & FB_B2; VDL_VBE[7..0].ENA = VDL_VBE_CS & !nFB_WR & FB_B3; -- VDL_VDB VDL_VDB_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C154"; -- $82A8/2 VDL_VDB[].CLK = MAIN_CLK; - VDL_VDB[] = FB_AD[26..16]; - VDL_VDB[10..8].ENA = VDL_VDB_CS & !nFB_WR & FB_B0; + VDL_VDB[] = FB_AD[28..16]; + VDL_VDB[12..8].ENA = VDL_VDB_CS & !nFB_WR & FB_B0; VDL_VDB[7..0].ENA = VDL_VDB_CS & !nFB_WR & FB_B1; -- VDL_VDE VDL_VDE_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C155"; -- $82AA/2 VDL_VDE[].CLK = MAIN_CLK; - VDL_VDE[] = FB_AD[26..16]; - VDL_VDE[10..8].ENA = VDL_VDE_CS & !nFB_WR & FB_B2; + VDL_VDE[] = FB_AD[28..16]; + VDL_VDE[12..8].ENA = VDL_VDE_CS & !nFB_WR & FB_B2; VDL_VDE[7..0].ENA = VDL_VDE_CS & !nFB_WR & FB_B3; -- VDL_VBB VDL_VBB_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C152"; -- $82A4/2 VDL_VBB[].CLK = MAIN_CLK; - VDL_VBB[] = FB_AD[26..16]; - VDL_VBB[10..8].ENA = VDL_VBB_CS & !nFB_WR & FB_B0; + VDL_VBB[] = FB_AD[28..16]; + VDL_VBB[12..8].ENA = VDL_VBB_CS & !nFB_WR & FB_B0; VDL_VBB[7..0].ENA = VDL_VBB_CS & !nFB_WR & FB_B1; -- VDL_VSS VDL_VSS_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C156"; -- $82AC/2 VDL_VSS[].CLK = MAIN_CLK; - VDL_VSS[] = FB_AD[26..16]; - VDL_VSS[10..8].ENA = VDL_VSS_CS & !nFB_WR & FB_B0; + VDL_VSS[] = FB_AD[28..16]; + VDL_VSS[12..8].ENA = VDL_VSS_CS & !nFB_WR & FB_B0; VDL_VSS[7..0].ENA = VDL_VSS_CS & !nFB_WR & FB_B1; -- VDL_VFT VDL_VFT_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C151"; -- $82A2/2 VDL_VFT[].CLK = MAIN_CLK; - VDL_VFT[] = FB_AD[26..16]; - VDL_VFT[10..8].ENA = VDL_VFT_CS & !nFB_WR & FB_B2; + VDL_VFT[] = FB_AD[28..16]; + VDL_VFT[12..8].ENA = VDL_VFT_CS & !nFB_WR & FB_B2; VDL_VFT[7..0].ENA = VDL_VFT_CS & !nFB_WR & FB_B3; -- VDL_VCT VDL_VCT_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C160"; -- $82C0/2 VDL_VCT[].CLK = MAIN_CLK; - VDL_VCT[] = FB_AD[24..16]; - VDL_VCT[8].ENA = VDL_VCT_CS & !nFB_WR & FB_B0; + VDL_VCT[] = FB_AD[28..16]; + VDL_VCT[12..8].ENA = VDL_VCT_CS & !nFB_WR & FB_B0; VDL_VCT[7..0].ENA = VDL_VCT_CS & !nFB_WR & FB_B1; -- VDL_VMD VDL_VMD_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C161"; -- $82C2/2 @@ -438,177 +406,152 @@ BEGIN VDL_VMD[3..0].ENA = VDL_VMD_CS & !nFB_WR & FB_B3; --- REGISTER OUT FB_AD[31..16] = lpm_bustri_WORD( - ST_SHIFT_MODE_CS & (0,ST_SHIFT_MODE[],B"00000000") + ST_SHIFT_MODE_CS & (B"00000",ST_SHIFT_MODE[],H"FF") # FALCON_SHIFT_MODE_CS & (0,FALCON_SHIFT_MODE[]) - # SYS_CTR_CS & (B"100000000",SYS_CTR[6..4],BLITTER_RUN,SYS_CTR[2..0]) - # VDL_LOF_CS & VDL_LOF[] - # VDL_LWD_CS & VDL_LWD[] - # VDL_HBE_CS & (0,VDL_HBE[]) - # VDL_HDB_CS & (0,VDL_HDB[]) - # VDL_HDE_CS & (0,VDL_HDE[]) - # VDL_HBB_CS & (0,VDL_HBB[]) - # VDL_HSS_CS & (0,VDL_HSS[]) - # VDL_HHT_CS & (0,VDL_HHT[]) - # VDL_VBE_CS & (0,VDL_VBE[]) - # VDL_VDB_CS & (0,VDL_VDB[]) - # VDL_VDE_CS & (0,VDL_VDE[]) - # VDL_VBB_CS & (0,VDL_VBB[]) - # VDL_VSS_CS & (0,VDL_VSS[]) - # VDL_VFT_CS & (0,VDL_VFT[]) - # VDL_VCT_CS & (0,VDL_VCT[]) - # VDL_VMD_CS & (0,VDL_VMD[]) - # ACP_VCTR_CS & ACP_VCTR[31..16] - # ATARI_HH_CS & ATARI_HH[31..16] - # ATARI_VH_CS & ATARI_VH[31..16] - # ATARI_HL_CS & ATARI_HL[31..16] - # ATARI_VL_CS & ATARI_VL[31..16] - # CCR_CS & (0,CCR[23..16]) - # VIDEO_PLL_CONFIG_CS & (0,VR_DOUT[]) - # VIDEO_PLL_RECONFIG_CS & (VR_BUSY,B"0000",VR_WR,VR_RD,VIDEO_RECONFIG,H"FA") - ,(ST_SHIFT_MODE_CS # FALCON_SHIFT_MODE_CS # ACP_VCTR_CS # CCR_CS # SYS_CTR_CS # VDL_LOF_CS # VDL_LWD_CS - # VDL_HBE_CS # VDL_HDB_CS # VDL_HDE_CS # VDL_HBB_CS # VDL_HSS_CS # VDL_HHT_CS - # ATARI_HH_CS # ATARI_VH_CS # ATARI_HL_CS # ATARI_VL_CS # VIDEO_PLL_CONFIG_CS # VIDEO_PLL_RECONFIG_CS - # VDL_VBE_CS # VDL_VDB_CS # VDL_VDE_CS # VDL_VBB_CS # VDL_VSS_CS # VDL_VFT_CS # VDL_VCT_CS # VDL_VMD_CS) & !nFB_OE); - + # SYS_CTR_CS & (B"100000000",SYS_CTR[6..4],BLITTER_RUN,SYS_CTR[2..0]) + # VDL_LOF_CS & VDL_LOF[] + # VDL_LWD_CS & WPL[] + # VDL_BPP_CS & (0 + (32 & COLOR24) + (16 & COLOR16) + (8 & COLOR8) + (4 & COLOR4) + (1 & COLOR1)) + # VDL_PH_CS & (0,HDIS_LEN[]) + # VDL_PV_CS & (0,(VDIS_END[] - VDIS_START[] + 1)) + # VDL_HBE_CS & (0,VDL_HBE[]) + # VDL_HDB_CS & (0,VDL_HDB[]) + # VDL_HDE_CS & (0,VDL_HDE[]) + # VDL_HBB_CS & (0,VDL_HBB[]) + # VDL_HSS_CS & (0,VDL_HSS[]) + # VDL_HHT_CS & (0,VDL_HHT[]) + # VDL_VBE_CS & (0,VDL_VBE[]) + # VDL_VDB_CS & (0,VDL_VDB[]) + # VDL_VDE_CS & (0,VDL_VDE[]) + # VDL_VBB_CS & (0,VDL_VBB[]) + # VDL_VSS_CS & (0,VDL_VSS[]) + # VDL_VFT_CS & (0,VDL_VFT[]) + # VDL_VCT_CS & (0,VDL_VCT[]) + # VDL_VMD_CS & (0,VDL_VMD[]) + # ACP_VCTR_CS & ACP_VCTR[31..16] + # CCR_CS & (0,CCR[23..16]) + # VIDEO_PLL_CONFIG_CS & (0,VR_DOUT[]) + # VIDEO_PLL_RECONFIG_CS & (VR_BUSY,B"0000",VR_WR,VR_RD,VIDEO_RECONFIG,H"FA") + ,(ACP_VCTR_CS # CCR_CS # VIDEO_PLL_CONFIG_CS # VIDEO_PLL_RECONFIG_CS # VIDEL_CS # SYS_CTR_CS) & !nFB_OE); FB_AD[15..0] = lpm_bustri_WORD( - ACP_VCTR_CS & ACP_VCTR[15..0] - # ATARI_HH_CS & ATARI_HH[15..0] - # ATARI_VH_CS & ATARI_VH[15..0] - # ATARI_HL_CS & ATARI_HL[15..0] - # ATARI_VL_CS & ATARI_VL[15..0] - # CCR_CS & CCR[15..0] - ,(ACP_VCTR_CS # CCR_CS # ATARI_HH_CS # ATARI_VH_CS # ATARI_HL_CS # ATARI_VL_CS ) & !nFB_OE); - - VIDEO_MOD_TA = CLUT_TA # ST_SHIFT_MODE_CS # FALCON_SHIFT_MODE_CS # ACP_VCTR_CS # SYS_CTR_CS # VDL_LOF_CS # VDL_LWD_CS - # VDL_HBE_CS # VDL_HDB_CS # VDL_HDE_CS # VDL_HBB_CS # VDL_HSS_CS # VDL_HHT_CS - # ATARI_HH_CS # ATARI_VH_CS # ATARI_HL_CS # ATARI_VL_CS - # VDL_VBE_CS # VDL_VDB_CS # VDL_VDE_CS # VDL_VBB_CS # VDL_VSS_CS # VDL_VFT_CS # VDL_VCT_CS # VDL_VMD_CS; - --- VIDEO AUSGABE SETZEN + ACP_VCTR_CS & ACP_VCTR[15..0] + # CCR_CS & CCR[15..0] + ,(ACP_VCTR_CS # CCR_CS) & !nFB_OE); + VIDEO_MOD_TA = CLUT_TA # ACP_VCTR_CS # SYS_CTR_CS # VIDEL_CS; +-- VIDEO AUSGABE SETZEN -------------------------------------------------------------- CLK17M.CLK = CLK33M; CLK17M = !CLK17M; CLK13M.CLK = CLK25M; CLK13M = !CLK13M; - PIXEL_CLK = CLK13M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & ( VDL_VMD2 & VDL_VCT2 # VDL_VCT0) - # CLK17M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & ( VDL_VMD2 & !VDL_VCT2 # VDL_VCT0) - # CLK25M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VMD2 & VDL_VCT2 & !VDL_VCT0 - # CLK33M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VMD2 & !VDL_VCT2 & !VDL_VCT0 - # CLK25M & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"00" - # CLK33M & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"01" - # CLK_VIDEO & ACP_VIDEO_ON & ACP_VCTR[9]; --------------------------------------------------------------- --- HORIZONTALE SYNC LÄNGE in PIXEL_CLK ----------------------------------------------------------------- + TE = VDL_VMD2 & !VDL_VCT0 # !VDL_VMD2 & VDL_VCT0; -- 1 WENN HALBE FREQUENZ UND 320*... (200.240.400.480) + PIXEL_CLK = CLK13M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & VDL_VCT2 & TE + # CLK17M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VCT2 & TE + # CLK25M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & VDL_VCT2 & !TE + # CLK33M & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VCT2 & !TE + # CLK25M & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"00" + # CLK33M & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"01" + # CLK_VIDEO & ACP_VIDEO_ON & ACP_VCTR[9]; +-- HORIZONTALE SYNC LÄNGE in PIXEL_CLK ----------------------------------------------------- HSY_LEN[].CLK = MAIN_CLK; - HSY_LEN[] = 14 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & ( VDL_VMD2 & VDL_VCT2 # VDL_VCT0) - # 16 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & ( VDL_VMD2 & !VDL_VCT2 # VDL_VCT0) - # 28 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VMD2 & VDL_VCT2 & !VDL_VCT0 - # 32 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VMD2 & !VDL_VCT2 & !VDL_VCT0 - # 28 & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"00" - # 32 & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"01" - # 16 + (0,VR_FRQ[7..1]) & ACP_VIDEO_ON & ACP_VCTR[9]; -- hsync puls length in pixeln=frequenz/ = 500ns - - MULF[] = 2 & !ST_VIDEO & VDL_VMD2 -- MULTIPLIKATIONS FAKTOR - # 4 & !ST_VIDEO & !VDL_VMD2 - # 16 & ST_VIDEO & VDL_VMD2 - # 32 & ST_VIDEO & !VDL_VMD2; - - - HDIS_LEN[] = 320 & VDL_VMD2 -- BREITE IN PIXELN - # 640 & !VDL_VMD2; - --- DOPPELZEILENMODUS - DOP_ZEI.CLK = MAIN_CLK; - DOP_ZEI = VDL_VMD0 & ST_VIDEO; -- ZEILENVERDOPPELUNG EIN AUS + HSY_LEN[] = 19 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & VDL_VCT2 & TE + # 25 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VCT2 & TE + # 38 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & VDL_VCT2 & !TE + # 50 & !ACP_VIDEO_ON & (FALCON_VIDEO # ST_VIDEO) & !VDL_VCT2 & !TE + # 38 & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"00" + # 50 & ACP_VIDEO_ON & ACP_VCTR[9..8]==B"01" + # VR_FRQ[] & ACP_VIDEO_ON & ACP_VCTR[9]; -- hsync puls length in pixeln=frequenz/ = ca. 1us +-- MULTIPLIKATIONS FAKTOR ---------------------------------------- + MULF[] = 1 & !ST_VIDEO & ( TE # VDL_VCT0) + # 2 & !ST_VIDEO & !TE & !VDL_VCT0 + # 4 & ST_VIDEO & TE & VDL_VCT0 + # 8 & ST_VIDEO & ( TE & !VDL_VCT0 # !TE & VDL_VCT0) -- WENN ST_VIDEO VORTEILER *8 + # 16 & ST_VIDEO & !TE & !VDL_VCT0; + -- BREITE IN PIXELN ------------------------------------------------ + HDIS_LEN[] = 320 & TE & !ACP_VIDEO_ON + # 640 & !TE & !ACP_VIDEO_ON + # (HDIS_END[] - HDIS_START[] + 1) & ACP_VIDEO_ON; + WPL[] = VDL_LWD[] & !ACP_VIDEO_ON + # (0,HDIS_LEN[12..4]) & COLOR1 & ACP_VIDEO_ON + # (0,HDIS_LEN[12..1]) & COLOR8 & ACP_VIDEO_ON + # (0,HDIS_LEN[]) & COLOR16 & ACP_VIDEO_ON + # (0,HDIS_LEN[],B"0") & COLOR24 & ACP_VIDEO_ON; +-- DOPPELZEILENMODUS --------------------------------------------- INTER_ZEI.CLK = PIXEL_CLK; - INTER_ZEI = DOP_ZEI & VVCNT0!=VDIS_START0 & VVCNT[]!=0 & VHCNT[]<(HDIS_END[]-1) -- EINSCHIEBEZEILE AUF "DOPPEL" ZEILEN UND ZEILE NULL WEGEN SYNC - # DOP_ZEI & VVCNT0==VDIS_START0 & VVCNT[]!=0 & VHCNT[]>(HDIS_END[]-2); -- EINSCHIEBEZEILE AUF "NORMAL" ZEILEN UND ZEILE NULL WEGEN SYNC + INTER_ZEI = VDL_VMD0 & (FALCON_VIDEO # ST_VIDEO) & (VVCNT0!=VDIS_START0) & DPZF_CLKENA; -- EINSCHIEBEZEILE BEI UNGERADEN ZEILEN AB DISPLAY START UND NICHT AM ANFANG WEGEN DATATSHIFTOUT DOP_FIFO_CLR.CLK = PIXEL_CLK; - DOP_FIFO_CLR = INTER_ZEI & HSYNC_START # SYNC_PIX; -- DOPPELZEILENFIFO LÖSCHEN AM ENDE DER DOPPELZEILE UND BEI MAIN FIFO START - - RAND_LINKS[] = VDL_HBE[] & ACP_VIDEO_ON - # 21 & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # 42 & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # VDL_HBE[] * (0,MULF[5..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; -- - HDIS_START[] = VDL_HDB[] & ACP_VIDEO_ON - # RAND_LINKS[]+1 & !ACP_VIDEO_ON; -- - HDIS_END[] = VDL_HDE[] & ACP_VIDEO_ON - # RAND_LINKS[]+HDIS_LEN[] & !ACP_VIDEO_ON; -- - RAND_RECHTS[] = VDL_HBB[] & ACP_VIDEO_ON - # HDIS_END[]+1 & !ACP_VIDEO_ON; -- - HS_START[] = VDL_HSS[] & ACP_VIDEO_ON - # ATARI_HL[11..0] & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # ATARI_HH[11..0] & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # (VDL_HHT[]+1+VDL_HSS[]) * (0,MULF[5..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; -- - H_TOTAL[] = VDL_HHT[] & ACP_VIDEO_ON - # ATARI_HL[27..16] & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # ATARI_HH[27..16] & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # (VDL_HHT[]+2) * (0,MULF[]) & !ACP_VIDEO_ON & !ATARI_SYNC; -- - - RAND_OBEN[] = VDL_VBE[] & ACP_VIDEO_ON - # 31 & !ACP_VIDEO_ON & ATARI_SYNC - # (0,VDL_VBE[10..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; - VDIS_START[] = VDL_VDB[] & ACP_VIDEO_ON - # 32 & !ACP_VIDEO_ON & ATARI_SYNC - # (0,VDL_VDB[10..1])+1 & !ACP_VIDEO_ON & !ATARI_SYNC; - VDIS_END[] = VDL_VDE[] & ACP_VIDEO_ON - # 431 & !ACP_VIDEO_ON & ATARI_SYNC & ST_VIDEO - # 511 & !ACP_VIDEO_ON & ATARI_SYNC & !ST_VIDEO - # (0,VDL_VDE[10..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; - RAND_UNTEN[] = VDL_VBB[] & ACP_VIDEO_ON - # VDIS_END[]+1 & !ACP_VIDEO_ON & ATARI_SYNC - # (0,VDL_VBB[10..1])+1 & !ACP_VIDEO_ON & !ATARI_SYNC; - VS_START[] = VDL_VSS[] & ACP_VIDEO_ON - # ATARI_VL[10..0] & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # ATARI_VH[10..0] & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # (0,VDL_VSS[10..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; - V_TOTAL[] = VDL_VFT[] & ACP_VIDEO_ON - # ATARI_VL[26..16] & !ACP_VIDEO_ON & ATARI_SYNC & VDL_VMD2 - # ATARI_VH[26..16] & !ACP_VIDEO_ON & ATARI_SYNC & !VDL_VMD2 - # (0,VDL_VFT[10..1]) & !ACP_VIDEO_ON & !ATARI_SYNC; --- ZÄHLER + DOP_FIFO_CLR = INTER_ZEI & (VHCNT[]==HS_START[]); -- DOPPELZEILENFIFO LÖSCHEN AM ENDE DER UNGERADEN ZEILEN + DPZF_CLKENA = VVCNT[] > 4; -- FIFO DATASHIFTOUT UNTERBINDEN FÜR DOP.ZEI.FIFO +-- TIMING HORIZONTAL + STARTP[] = RAND_LINKS[] + RAND_RECHTS[] - HDIS_LEN[]; -- 2x MITTE SCREEN + RAND_LINKS[] = VDL_HBE[] & ACP_VIDEO_ON + # ((VDL_HBE[] + 1) * MULF[]) & !ACP_VIDEO_ON; -- + HDIS_START[] = VDL_HDB[] & ACP_VIDEO_ON + # ((RAND_LINKS[] + 1) & !VDL_VCT0) & !ACP_VIDEO_ON -- MONITOR GANZ RECHTS + # (((0,STARTP[12..1]) + 1) & VDL_VCT0) & !ACP_VIDEO_ON; -- RGB/TV EINMITTEN ZWISCHEN BLANKS + HDIS_END[] = VDL_HDE[] & ACP_VIDEO_ON + # (HDIS_START[] + HDIS_LEN[] - 1) & !ACP_VIDEO_ON; -- + RAND_RECHTS[] = VDL_HBB[] & ACP_VIDEO_ON + # ((VDL_HHT[] + (2 & !ST_VIDEO) + VDL_HBB[]) * MULF[] + 1)& !ACP_VIDEO_ON; -- + HS_START[] = VDL_HSS[] & ACP_VIDEO_ON + # ((VDL_HHT[] + (2 & !ST_VIDEO) + VDL_HSS[]) * MULF[] + 1)& !ACP_VIDEO_ON; -- + H_TOTAL[] = VDL_HHT[] & ACP_VIDEO_ON + # ((VDL_HHT[] + 2) * 2 * MULF[]) & !ACP_VIDEO_ON; -- +-- TIMING VERTICAL + RAND_OBEN[] = VDL_VBE[] & ACP_VIDEO_ON + # ((0,VDL_VBE[12..1]) & !VDL_VCT0) & !ACP_VIDEO_ON + # (VDL_VBE[] & VDL_VCT0) & !ACP_VIDEO_ON; + VDIS_START[] = VDL_VDB[] & ACP_VIDEO_ON + # (((0,VDL_VDB[12..1]) + 1) & !VDL_VCT0) & !ACP_VIDEO_ON + # (( VDL_VDB[] + 1) & VDL_VCT0) & !ACP_VIDEO_ON; + VDIS_END[] = VDL_VDE[] & ACP_VIDEO_ON + # ((0,VDL_VDE[12..1]) & !VDL_VCT0) & !ACP_VIDEO_ON + # ( VDL_VDE[] & VDL_VCT0) & !ACP_VIDEO_ON; + RAND_UNTEN[] = VDL_VBB[] & ACP_VIDEO_ON + # (((0,VDL_VBB[12..1]) + 1) & !VDL_VCT0) & !ACP_VIDEO_ON + # (( VDL_VBB[] + 1) & VDL_VCT0) & !ACP_VIDEO_ON; + VS_START[] = VDL_VSS[] & ACP_VIDEO_ON + # ((0,VDL_VSS[12..1]) & !VDL_VCT0) & !ACP_VIDEO_ON + # ( VDL_VSS[] & VDL_VCT0) & !ACP_VIDEO_ON; + V_TOTAL[] = VDL_VFT[] & ACP_VIDEO_ON + # (((0,VDL_VFT[12..1]) + 1) & !VDL_VCT0) & !ACP_VIDEO_ON + # ((VDL_VFT[] + 1) & VDL_VCT0) & !ACP_VIDEO_ON; +-- ZÄHLER --------------------------------------------------------------------------- LAST.CLK = PIXEL_CLK; - LAST = VHCNT[]==(H_TOTAL[]-2); + LAST = VHCNT[]==(H_TOTAL[] - 1); VHCNT[].CLK = PIXEL_CLK; VHCNT[] = (VHCNT[] + 1) & !LAST; VVCNT[].CLK = PIXEL_CLK; VVCNT[].ENA = LAST; - VVCNT[] = (VVCNT[] + 1) & (VVCNT[]!=V_TOTAL[]-1); + VVCNT[] = (VVCNT[] + 1) & (VVCNT[]!=V_TOTAL[]); -- DISPLAY ON OFF DPO_ZL.CLK = PIXEL_CLK; - DPO_ZL = (VVCNT[]>RAND_OBEN[]-1) & (VVCNT[]RAND_OBEN[]) & (VVCNT[]=(VDIS_START[]-1)) & (VVCNT[]=(VDIS_START[])) & (VVCNT[]<=VDIS_END[]); -- ON OFF VDTRON.CLK = PIXEL_CLK; VDTRON = VDTRON & !VDO_OFF # VDO_ON & VDO_ZL; -- VERZÖGERUNG UND SYNC HSYNC_START.CLK = PIXEL_CLK; - HSYNC_START = VHCNT[]==HS_START[]-3; + HSYNC_START = VHCNT[]==HS_START[] - 2; HSYNC_I[].CLK = PIXEL_CLK; HSYNC_I[] = HSY_LEN[] & HSYNC_START # (HSYNC_I[]-1) & !HSYNC_START & HSYNC_I[]!=0; - VSYNC_START.CLK = PIXEL_CLK; - VSYNC_START.ENA = LAST; - VSYNC_START = VVCNT[]==(VS_START[]-3); -- start am ende der Zeile vor dem vsync VSYNC_I[].CLK = PIXEL_CLK; - VSYNC_I[].ENA = LAST; -- start am ende der Zeile vor dem vsync - VSYNC_I[] = 3 & VSYNC_START -- 3 zeilen vsync length - # (VSYNC_I[]-1) & !VSYNC_START & VSYNC_I[]!=0; -- runterzählen bis 0 + VSYNC_I[] = VVCNT[12..1]==VS_START[12..1]; -- VSYNC BEI VS_START 2 ZEILEN LANG + VSYNC_I[].CLK = PIXEL_CLK; VERZ[][].CLK = PIXEL_CLK; VERZ[][1] = VERZ[][0]; VERZ[][2] = VERZ[][1]; @@ -620,11 +563,10 @@ BEGIN VERZ[][8] = VERZ[][7]; VERZ[][9] = VERZ[][8]; VERZ[0][0] = DISP_ON; --- VERZ[1][0] = HSYNC_I[]!=0; - VERZ[1][0] = (!ACP_VCTR15 # !VDL_VCT6) & HSYNC_I[]!=0 - # ACP_VCTR15 & VDL_VCT6 & HSYNC_I[]==0; -- NUR MÖGLICH WENN BEIDE - VERZ[2][0] = (!ACP_VCTR15 # !VDL_VCT5) & VSYNC_I[]!=0 - # ACP_VCTR15 & VDL_VCT5 & VSYNC_I[]==0; -- NUR MÖGLICH WENN BEIDE + VERZ[1][0] = !VDL_VCT6 & HSYNC_I[]!=0 + # VDL_VCT6 & HSYNC_I[]==0; + VERZ[2][0] = !VDL_VCT5 & VSYNC_I[]!=0 + # VDL_VCT5 & VSYNC_I[]==0; nBLANK.CLK = PIXEL_CLK; nBLANK = VERZ[0][8]; HSYNC.CLK = PIXEL_CLK; @@ -645,10 +587,10 @@ BEGIN ---------------------------------------------------------- CLR_FIFO.CLK = PIXEL_CLK; CLR_FIFO.ENA = LAST; - CLR_FIFO = VVCNT[]==V_TOTAL[]-2; -- IN LETZTER ZEILE LÖSCHEN + CLR_FIFO = VVCNT[]==(VDIS_END[] + 2); -- FIFO NACH ENDE ANZEIGE LÖSCHEN (GENUG FRÜH DAMIT ES GEFÜLLT WERDEN KANN BIS ZUR NEUEN ÜBERTRAGUNG) START_ZEILE.CLK = PIXEL_CLK; START_ZEILE.ENA = LAST; - START_ZEILE = VVCNT[]==0; -- ZEILE 1 + START_ZEILE = VVCNT[]==1; -- ZEILE 1 SYNC_PIX.CLK = PIXEL_CLK; SYNC_PIX = VHCNT[]==3 & START_ZEILE; -- SUB PIXEL ZÄHLER SYNCHRONISIEREN SYNC_PIX1.CLK = PIXEL_CLK; diff --git a/FPGA_by_Fredi/Video/Video.bdf b/FPGA_by_Fredi/Video/Video.bdf index 0df55be..8b108ab 100644 --- a/FPGA_by_Fredi/Video/Video.bdf +++ b/FPGA_by_Fredi/Video/Video.bdf @@ -6594,64 +6594,6 @@ applicable agreement for further details. (line (pt 80 296)(pt 96 288)(line_width 1)) ) ) -(symbol - (rect 2072 1176 2232 1320) - (text "lpm_fifoDZ" (rect 50 1 120 17)(font "Arial" (font_size 10))) - (text "inst63" (rect 8 128 37 140)(font "Arial" )) - (port - (pt 0 32) - (input) - (text "data[127..0]" (rect 0 0 67 14)(font "Arial" (font_size 8))) - (text "data[127..0]" (rect 20 26 87 40)(font "Arial" (font_size 8))) - (line (pt 0 32)(pt 16 32)(line_width 3)) - ) - (port - (pt 0 56) - (input) - (text "wrreq" (rect 0 0 35 14)(font "Arial" (font_size 8))) - (text "wrreq" (rect 20 50 55 64)(font "Arial" (font_size 8))) - (line (pt 0 56)(pt 16 56)(line_width 1)) - ) - (port - (pt 0 72) - (input) - (text "rdreq" (rect 0 0 30 14)(font "Arial" (font_size 8))) - (text "rdreq" (rect 20 66 50 80)(font "Arial" (font_size 8))) - (line (pt 0 72)(pt 16 72)(line_width 1)) - ) - (port - (pt 0 96) - (input) - (text "clock" (rect 0 0 29 14)(font "Arial" (font_size 8))) - (text "clock" (rect 26 90 55 104)(font "Arial" (font_size 8))) - (line (pt 0 96)(pt 16 96)(line_width 1)) - ) - (port - (pt 0 120) - (input) - (text "aclr" (rect 0 0 21 14)(font "Arial" (font_size 8))) - (text "aclr" (rect 20 114 41 128)(font "Arial" (font_size 8))) - (line (pt 0 120)(pt 16 120)(line_width 1)) - ) - (port - (pt 160 32) - (output) - (text "q[127..0]" (rect 0 0 49 14)(font "Arial" (font_size 8))) - (text "q[127..0]" (rect 99 26 148 40)(font "Arial" (font_size 8))) - (line (pt 160 32)(pt 144 32)(line_width 3)) - ) - (drawing - (text "(ack)" (rect 51 67 75 79)(font "Arial" )) - (text "128 bits x 512 words" (rect 58 116 159 128)(font "Arial" )) - (line (pt 16 16)(pt 144 16)(line_width 1)) - (line (pt 144 16)(pt 144 128)(line_width 1)) - (line (pt 144 128)(pt 16 128)(line_width 1)) - (line (pt 16 128)(pt 16 16)(line_width 1)) - (line (pt 16 108)(pt 144 108)(line_width 1)) - (line (pt 16 90)(pt 22 96)(line_width 1)) - (line (pt 22 96)(pt 16 102)(line_width 1)) - ) -) (symbol (rect 1712 1328 1872 1496) (text "lpm_fifo_dc0" (rect 44 1 128 17)(font "Arial" (font_size 10))) @@ -6726,253 +6668,144 @@ applicable agreement for further details. (line (pt 22 120)(pt 16 126)(line_width 1)) ) ) -(block - (rect 1664 1664 2016 2600) - (text "VIDEO_MOD_MUX_CLUTCTR" (rect 5 5 170 19)(font "Arial" (font_size 8))) (text "VIDEO_MOD_MUX_CLUTCTR" (rect 5 922 154 934)(font "Arial" )) (block_io "nRSTO" (input)) - (block_io "MAIN_CLK" (input)) - (block_io "nFB_CS1" (input)) - (block_io "nFB_CS2" (input)) - (block_io "nFB_CS3" (input)) - (block_io "nFB_WR" (input)) - (block_io "nFB_OE" (input)) - (block_io "FB_SIZE0" (input)) - (block_io "FB_SIZE1" (input)) - (block_io "nFB_BURST" (input)) - (block_io "FB_ADR[31..0]" (input)) - (block_io "CLK33M" (input)) - (block_io "CLK25M" (input)) - (block_io "BLITTER_RUN" (input)) - (block_io "CLK_VIDEO" (input)) - (block_io "VR_D[8..0]" (input)) - (block_io "VR_BUSY" (input)) - (block_io "COLOR8" (output)) - (block_io "ACP_CLUT_RD" (output)) - (block_io "COLOR1" (output)) - (block_io "FALCON_CLUT_RDH" (output)) - (block_io "FALCON_CLUT_RDL" (output)) - (block_io "FALCON_CLUT_WR[3..0]" (output)) - (block_io "ST_CLUT_RD" (output)) - (block_io "ST_CLUT_WR[1..0]" (output)) - (block_io "CLUT_MUX_ADR[3..0]" (output)) - (block_io "HSYNC" (output)) - (block_io "VSYNC" (output)) - (block_io "nBLANK" (output)) - (block_io "nSYNC" (output)) - (block_io "nPD_VGA" (output)) - (block_io "FIFO_RDE" (output)) - (block_io "COLOR2" (output)) - (block_io "COLOR4" (output)) - (block_io "PIXEL_CLK" (output)) - (block_io "CLUT_OFF[3..0]" (output)) - (block_io "BLITTER_ON" (output)) - (block_io "VIDEO_RAM_CTR[15..0]" (output)) - (block_io "VIDEO_MOD_TA" (output)) - (block_io "CCR[23..0]" (output)) - (block_io "CCSEL[2..0]" (output)) - (block_io "ACP_CLUT_WR[3..0]" (output)) - (block_io "INTER_ZEI" (output)) - (block_io "DOP_FIFO_CLR" (output)) - (block_io "VIDEO_RECONFIG" (output)) - (block_io "VR_WR" (output)) - (block_io "VR_RD" (output)) - (block_io "CLR_FIFO" (output)) - (block_io "FB_AD[31..0]" (bidir)) - (mapper - (pt 352 72) - (bidir) - ) - (mapper - (pt 0 272) - (bidir) - ) - (mapper +(symbol + (rect 1656 1216 1720 1296) + (text "DFF" (rect 1 0 19 10)(font "Arial" (font_size 6))) + (text "inst101" (rect 3 68 38 80)(font "Arial" )) + (port + (pt 32 80) + (input) + (text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) + (text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) + (line (pt 32 80)(pt 32 76)(line_width 1)) + ) + (port + (pt 0 40) + (input) + (text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) + (text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) + (line (pt 0 40)(pt 12 40)(line_width 1)) + ) + (port + (pt 0 24) + (input) + (text "D" (rect 14 20 19 32)(font "Courier New" (bold))) + (text "D" (rect 14 20 19 32)(font "Courier New" (bold))) + (line (pt 0 24)(pt 12 24)(line_width 1)) + ) + (port + (pt 32 0) + (input) + (text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) + (text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) + (line (pt 32 4)(pt 32 0)(line_width 1)) + ) + (port + (pt 64 24) + (output) + (text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) + (text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) + (line (pt 52 24)(pt 64 24)(line_width 1)) + ) + (drawing + (line (pt 12 12)(pt 52 12)(line_width 1)) + (line (pt 12 68)(pt 52 68)(line_width 1)) + (line (pt 52 68)(pt 52 12)(line_width 1)) + (line (pt 12 68)(pt 12 12)(line_width 1)) + (line (pt 19 40)(pt 12 47)(line_width 1)) + (line (pt 12 32)(pt 20 40)(line_width 1)) + (circle (rect 28 4 36 12)(line_width 1)) + (circle (rect 28 68 36 76)(line_width 1)) + ) +) +(symbol + (rect 2072 1176 2232 1320) + (text "Doppelzeilen_Fifo" (rect 29 1 149 17)(font "Arial" (font_size 10))) + (text "inst98" (rect 8 128 37 140)(font "Arial" )) + (port + (pt 0 32) + (input) + (text "data[127..0]" (rect 0 0 67 14)(font "Arial" (font_size 8))) + (text "data[127..0]" (rect 20 26 87 40)(font "Arial" (font_size 8))) + (line (pt 0 32)(pt 16 32)(line_width 3)) + ) + (port (pt 0 56) - (bidir) - ) - (mapper - (pt 0 80) - (bidir) - ) - (mapper - (pt 0 296) - (bidir) - ) - (mapper - (pt 0 104) - (bidir) - ) - (mapper - (pt 0 128) - (bidir) - ) - (mapper - (pt 0 152) - (bidir) - ) - (mapper - (pt 0 176) - (bidir) - ) - (mapper - (pt 0 248) - (bidir) - ) - (mapper - (pt 0 200) - (bidir) - ) - (mapper - (pt 0 224) - (bidir) - ) - (mapper - (pt 0 520) - (bidir) - ) - (mapper - (pt 0 544) - (bidir) - ) - (mapper - (pt 0 880) - (bidir) - ) - (mapper - (pt 352 600) - (bidir) - ) - (mapper - (pt 352 624) - (bidir) - ) - (mapper - (pt 352 648) - (bidir) - ) - (mapper - (pt 352 672) - (bidir) - ) - (mapper - (pt 352 696) - (bidir) - ) - (mapper - (pt 352 720) - (bidir) - ) - (mapper - (pt 352 840) - (bidir) - ) - (mapper - (pt 352 472) - (bidir) - ) - (mapper - (pt 352 448) - (bidir) - ) - (mapper - (pt 352 528) - (bidir) - ) - (mapper - (pt 352 320) - (bidir) - ) - (mapper - (pt 352 576) - (bidir) - ) - (mapper - (pt 352 400) - (bidir) - ) - (mapper - (pt 352 376) - (bidir) - ) - (mapper - (pt 352 352) - (bidir) - ) - (mapper - (pt 352 504) - (bidir) - ) - (mapper - (pt 352 296) - (bidir) - ) - (mapper - (pt 352 424) - (bidir) - ) - (mapper - (pt 352 552) - (bidir) - ) - (mapper - (pt 352 752) - (bidir) - ) - (mapper - (pt 352 776) - (bidir) - ) - (mapper - (pt 352 872) - (bidir) - ) - (mapper - (pt 0 496) - (bidir) - ) - (mapper - (pt 352 88) - (bidir) - ) - (mapper - (pt 352 264) - (bidir) - ) - (mapper - (pt 352 248) - (bidir) - ) - (mapper - (pt 352 232) - (bidir) - ) - (mapper - (pt 352 216) - (bidir) - ) - (mapper - (pt 352 136) - (bidir) - ) - (mapper - (pt 352 40) - (bidir) - ) - (mapper - (pt 352 152) - (bidir) - ) - (mapper - (pt 0 472) - (bidir) - ) - (mapper - (pt 0 456) - (bidir) - ) - (mapper - (pt 352 104) - (bidir) - ) + (input) + (text "wrreq" (rect 0 0 35 14)(font "Arial" (font_size 8))) + (text "wrreq" (rect 20 50 55 64)(font "Arial" (font_size 8))) + (line (pt 0 56)(pt 16 56)(line_width 1)) + ) + (port + (pt 0 72) + (input) + (text "rdreq" (rect 0 0 30 14)(font "Arial" (font_size 8))) + (text "rdreq" (rect 20 66 50 80)(font "Arial" (font_size 8))) + (line (pt 0 72)(pt 16 72)(line_width 1)) + ) + (port + (pt 0 96) + (input) + (text "clock" (rect 0 0 29 14)(font "Arial" (font_size 8))) + (text "clock" (rect 26 90 55 104)(font "Arial" (font_size 8))) + (line (pt 0 96)(pt 16 96)(line_width 1)) + ) + (port + (pt 0 120) + (input) + (text "aclr" (rect 0 0 21 14)(font "Arial" (font_size 8))) + (text "aclr" (rect 20 114 41 128)(font "Arial" (font_size 8))) + (line (pt 0 120)(pt 16 120)(line_width 1)) + ) + (port + (pt 160 32) + (output) + (text "q[127..0]" (rect 0 0 49 14)(font "Arial" (font_size 8))) + (text "q[127..0]" (rect 99 26 148 40)(font "Arial" (font_size 8))) + (line (pt 160 32)(pt 144 32)(line_width 3)) + ) + (drawing + (text "128 bits x 512 words" (rect 58 116 159 128)(font "Arial" )) + (line (pt 16 16)(pt 144 16)(line_width 1)) + (line (pt 144 16)(pt 144 128)(line_width 1)) + (line (pt 144 128)(pt 16 128)(line_width 1)) + (line (pt 16 128)(pt 16 16)(line_width 1)) + (line (pt 16 108)(pt 144 108)(line_width 1)) + (line (pt 16 90)(pt 22 96)(line_width 1)) + (line (pt 22 96)(pt 16 102)(line_width 1)) + ) +) +(symbol + (rect 1856 1208 1920 1256) + (text "AND2" (rect 1 0 25 10)(font "Arial" (font_size 6))) + (text "inst99" (rect 3 37 32 49)(font "Arial" )) + (port + (pt 0 16) + (input) + (text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) + (text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) + (line (pt 0 16)(pt 14 16)(line_width 1)) + ) + (port + (pt 0 32) + (input) + (text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) + (text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) + (line (pt 0 32)(pt 14 32)(line_width 1)) + ) + (port + (pt 64 24) + (output) + (text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) + (text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) + (line (pt 42 24)(pt 64 24)(line_width 1)) + ) + (drawing + (line (pt 14 12)(pt 30 12)(line_width 1)) + (line (pt 14 37)(pt 31 37)(line_width 1)) + (line (pt 14 12)(pt 14 37)(line_width 1)) + (arc (pt 31 37)(pt 30 12)(rect 18 12 43 37)(line_width 1)) + ) ) (block (rect 296 1872 560 2536) @@ -7300,6 +7133,259 @@ applicable agreement for further details. (bidir) ) ) +(block + (rect 1664 1664 2016 2600) + (text "VIDEO_MOD_MUX_CLUTCTR" (rect 5 5 170 19)(font "Arial" (font_size 8))) (text "VIDEO_MOD_MUX_CLUTCTR" (rect 5 922 154 934)(font "Arial" )) (block_io "nRSTO" (input)) + (block_io "MAIN_CLK" (input)) + (block_io "nFB_CS1" (input)) + (block_io "nFB_CS2" (input)) + (block_io "nFB_CS3" (input)) + (block_io "nFB_WR" (input)) + (block_io "nFB_OE" (input)) + (block_io "FB_SIZE0" (input)) + (block_io "FB_SIZE1" (input)) + (block_io "nFB_BURST" (input)) + (block_io "FB_ADR[31..0]" (input)) + (block_io "CLK33M" (input)) + (block_io "CLK25M" (input)) + (block_io "BLITTER_RUN" (input)) + (block_io "CLK_VIDEO" (input)) + (block_io "VR_D[8..0]" (input)) + (block_io "VR_BUSY" (input)) + (block_io "COLOR8" (output)) + (block_io "ACP_CLUT_RD" (output)) + (block_io "COLOR1" (output)) + (block_io "FALCON_CLUT_RDH" (output)) + (block_io "FALCON_CLUT_RDL" (output)) + (block_io "FALCON_CLUT_WR[3..0]" (output)) + (block_io "ST_CLUT_RD" (output)) + (block_io "ST_CLUT_WR[1..0]" (output)) + (block_io "CLUT_MUX_ADR[3..0]" (output)) + (block_io "HSYNC" (output)) + (block_io "VSYNC" (output)) + (block_io "nBLANK" (output)) + (block_io "nSYNC" (output)) + (block_io "nPD_VGA" (output)) + (block_io "FIFO_RDE" (output)) + (block_io "COLOR2" (output)) + (block_io "COLOR4" (output)) + (block_io "PIXEL_CLK" (output)) + (block_io "CLUT_OFF[3..0]" (output)) + (block_io "BLITTER_ON" (output)) + (block_io "VIDEO_RAM_CTR[15..0]" (output)) + (block_io "VIDEO_MOD_TA" (output)) + (block_io "CCR[23..0]" (output)) + (block_io "CCSEL[2..0]" (output)) + (block_io "ACP_CLUT_WR[3..0]" (output)) + (block_io "INTER_ZEI" (output)) + (block_io "DOP_FIFO_CLR" (output)) + (block_io "VIDEO_RECONFIG" (output)) + (block_io "VR_WR" (output)) + (block_io "VR_RD" (output)) + (block_io "CLR_FIFO" (output)) + (block_io "DPZF_CLKENA" (output)) + (block_io "FB_AD[31..0]" (bidir)) + (mapper + (pt 352 72) + (bidir) + ) + (mapper + (pt 0 272) + (bidir) + ) + (mapper + (pt 0 56) + (bidir) + ) + (mapper + (pt 0 80) + (bidir) + ) + (mapper + (pt 0 296) + (bidir) + ) + (mapper + (pt 0 104) + (bidir) + ) + (mapper + (pt 0 128) + (bidir) + ) + (mapper + (pt 0 152) + (bidir) + ) + (mapper + (pt 0 176) + (bidir) + ) + (mapper + (pt 0 248) + (bidir) + ) + (mapper + (pt 0 200) + (bidir) + ) + (mapper + (pt 0 224) + (bidir) + ) + (mapper + (pt 0 520) + (bidir) + ) + (mapper + (pt 0 544) + (bidir) + ) + (mapper + (pt 0 880) + (bidir) + ) + (mapper + (pt 352 600) + (bidir) + ) + (mapper + (pt 352 624) + (bidir) + ) + (mapper + (pt 352 648) + (bidir) + ) + (mapper + (pt 352 672) + (bidir) + ) + (mapper + (pt 352 696) + (bidir) + ) + (mapper + (pt 352 720) + (bidir) + ) + (mapper + (pt 352 840) + (bidir) + ) + (mapper + (pt 352 472) + (bidir) + ) + (mapper + (pt 352 448) + (bidir) + ) + (mapper + (pt 352 528) + (bidir) + ) + (mapper + (pt 352 320) + (bidir) + ) + (mapper + (pt 352 576) + (bidir) + ) + (mapper + (pt 352 400) + (bidir) + ) + (mapper + (pt 352 376) + (bidir) + ) + (mapper + (pt 352 352) + (bidir) + ) + (mapper + (pt 352 504) + (bidir) + ) + (mapper + (pt 352 296) + (bidir) + ) + (mapper + (pt 352 424) + (bidir) + ) + (mapper + (pt 352 552) + (bidir) + ) + (mapper + (pt 352 752) + (bidir) + ) + (mapper + (pt 352 776) + (bidir) + ) + (mapper + (pt 352 872) + (bidir) + ) + (mapper + (pt 0 496) + (bidir) + ) + (mapper + (pt 352 88) + (bidir) + ) + (mapper + (pt 352 264) + (bidir) + ) + (mapper + (pt 352 248) + (bidir) + ) + (mapper + (pt 352 232) + (bidir) + ) + (mapper + (pt 352 216) + (bidir) + ) + (mapper + (pt 352 136) + (bidir) + ) + (mapper + (pt 352 40) + (bidir) + ) + (mapper + (pt 352 152) + (bidir) + ) + (mapper + (pt 0 472) + (bidir) + ) + (mapper + (pt 0 456) + (bidir) + ) + (mapper + (pt 352 104) + (bidir) + ) + (mapper + (pt 352 800) + (bidir) + ) +) (connector (text "CLUT_ADR0" (rect 2786 1272 2849 1284)(font "Arial" )) (pt 2776 1288) @@ -8629,11 +8715,6 @@ applicable agreement for further details. (pt 2512 1568) (pt 2512 1728) ) -(connector - (text "PIXEL_CLK" (rect 1634 1432 1690 1444)(font "Arial" )) - (pt 1640 1448) - (pt 1712 1448) -) (connector (text "PIXEL_CLK" (rect 1938 1424 1994 1436)(font "Arial" )) (pt 1928 1440) @@ -10289,22 +10370,6 @@ applicable agreement for further details. (pt 1800 1160) (bus) ) -(connector - (pt 1608 1432) - (pt 1608 1232) -) -(connector - (pt 1600 1432) - (pt 1608 1432) -) -(connector - (pt 1608 1432) - (pt 1712 1432) -) -(connector - (pt 1608 1232) - (pt 2072 1232) -) (connector (pt 2072 1248) (pt 1944 1248) @@ -10591,6 +10656,57 @@ applicable agreement for further details. (pt 848 2744) (pt 928 2744) ) +(connector + (pt 1920 1232) + (pt 2072 1232) +) +(connector + (pt 1608 1432) + (pt 1608 1240) +) +(connector + (pt 1608 1240) + (pt 1656 1240) +) +(connector + (pt 1624 1256) + (pt 1656 1256) +) +(connector + (pt 1624 1448) + (pt 1624 1256) +) +(connector + (pt 1600 1432) + (pt 1608 1432) +) +(connector + (pt 1608 1432) + (pt 1712 1432) +) +(connector + (pt 1608 1448) + (pt 1624 1448) +) +(connector + (text "PIXEL_CLK" (rect 1634 1432 1690 1444)(font "Arial" )) + (pt 1624 1448) + (pt 1712 1448) +) +(connector + (pt 1720 1240) + (pt 1856 1240) +) +(connector + (text "DPZF_CLKENA" (rect 1754 1208 1833 1220)(font "Arial" )) + (pt 1856 1224) + (pt 1744 1224) +) +(connector + (text "DPZF_CLKENA" (rect 2026 2448 2105 2460)(font "Arial" )) + (pt 2128 2464) + (pt 2016 2464) +) (junction (pt 2984 1688)) (junction (pt 792 1192)) (junction (pt 792 1312)) @@ -10615,3 +10731,4 @@ applicable agreement for further details. (junction (pt 3232 3024)) (junction (pt 1968 1424)) (junction (pt 1608 1432)) +(junction (pt 1624 1448)) diff --git a/FPGA_by_Fredi/Video/altdpram0_wave0.jpg b/FPGA_by_Fredi/Video/altdpram0_wave0.jpg deleted file mode 100644 index cccdde749490246198f99aafbea75cceba7d2e54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125146 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�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�R9 ju_F6_a7hA+#LuS4^tU#uf - -Sample Waveforms for altdpram0.vhd - - -

Sample behavioral waveforms for design file altdpram0.vhd

-

The following waveforms show the behavior of altsyncram megafunction for the chosen set of parameters in design altdpram0.vhd. For the purpose of this simulation, the contents of the memory at the start of the sample waveforms is assumed to be ( 7, 6, 5, 4, ...). The design altdpram0.vhd has two read/write ports. Read/write port A has 16 words of 3 bits each and Read/write port B has 16 words of 3 bits each. The output of the read/write port A is registered by clock_a. The output of the read/write port B is registered by clock_b.

-
-

Fig. 1 : Wave showing read operation.

-

The above waveform shows the behavior of the design under normal read conditions. The read happens at the rising edge of the enabled clock cycle. The output from the RAM is undefined until after the first rising edge of the read clock. The clock enable on the read side input registers are disabled. The clock enable on the output registers are disabled.

-
-

Fig. 2 : Waveform showing write operation

-

The above waveform shows the behavior of the design under normal write conditions. The write cycle is assumed to be from the rising edge of the enabled clock in which wren is high till the rising edge of the next clock cycle. In BIDIR_DUAL_PORT mode, when the write happens at the same address as the one being read in the other port, the read output is unknown. Actual write into the RAM happens at the rising edge of the write clock. The clock enable on the write side input registers are disabled. The clock enable on the output registers are disabled. For the A port, When a write happens, the output of the port is the old data at the address. For the B port, When a write happens, the output of the port is the old data at the address.

-

- - diff --git a/FPGA_by_Fredi/Video/altdpram1_wave0.jpg b/FPGA_by_Fredi/Video/altdpram1_wave0.jpg deleted file mode 100644 index 3ab5c5fe19f01eb340d6df91c2896dfc076fd396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151954 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

UnoWp^Os)H0cAtL+tcURWA< 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

{>`jBnk)Ji|4%m^^6RF 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 - -Sample Waveforms for altdpram1.vhd - - -

Sample behavioral waveforms for design file altdpram1.vhd

-

The following waveforms show the behavior of altsyncram megafunction for the chosen set of parameters in design altdpram1.vhd. For the purpose of this simulation, the contents of the memory at the start of the sample waveforms is assumed to be ( 0F, 0E, 0D, 0C, ...). The design altdpram1.vhd has two read/write ports. Read/write port A has 256 words of 6 bits each and Read/write port B has 256 words of 6 bits each. The output of the read/write port A is registered by clock_a. The output of the read/write port B is registered by clock_b.

-
-

Fig. 1 : Wave showing read operation.

-

The above waveform shows the behavior of the design under normal read conditions. The read happens at the rising edge of the enabled clock cycle. The output from the RAM is undefined until after the first rising edge of the read clock. The clock enable on the read side input registers are disabled. The clock enable on the output registers are disabled.

-
-

Fig. 2 : Waveform showing write operation

-

The above waveform shows the behavior of the design under normal write conditions. The write cycle is assumed to be from the rising edge of the enabled clock in which wren is high till the rising edge of the next clock cycle. In BIDIR_DUAL_PORT mode, when the write happens at the same address as the one being read in the other port, the read output is unknown. Actual write into the RAM happens at the rising edge of the write clock. The clock enable on the write side input registers are disabled. The clock enable on the output registers are disabled. For the A port, When a write happens, the output of the port is the old data at the address. For the B port, When a write happens, the output of the port is the old data at the address.

-

- - diff --git a/FPGA_by_Fredi/Video/altdpram2_wave0.jpg b/FPGA_by_Fredi/Video/altdpram2_wave0.jpg deleted file mode 100644 index 2da3c66f2450140f8cb2079c878a855df0aac9f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152433 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 iRh^4Ss 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 diff --git a/FPGA_by_Fredi/Video/altdpram2_wave1.jpg b/FPGA_by_Fredi/Video/altdpram2_wave1.jpg deleted file mode 100644 index 829d237506008ec048dc1e0f05655395d4f65a68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204342 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

UnoWp^Os)H0cAtL+tcURWA< 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

Sample behavioral waveforms for design file altdpram2.vhd

-

The following waveforms show the behavior of altsyncram megafunction for the chosen set of parameters in design altdpram2.vhd. For the purpose of this simulation, the contents of the memory at the start of the sample waveforms is assumed to be ( F0, F1, F2, F3, ...). The design altdpram2.vhd has two read/write ports. Read/write port A has 256 words of 8 bits each and Read/write port B has 256 words of 8 bits each. The output of the read/write port A is registered by clock_a. The output of the read/write port B is registered by clock_b.

-
-

Fig. 1 : Wave showing read operation.

-

The above waveform shows the behavior of the design under normal read conditions. The read happens at the rising edge of the enabled clock cycle. The output from the RAM is undefined until after the first rising edge of the read clock. The clock enable on the read side input registers are disabled. The clock enable on the output registers are disabled.

-
-

Fig. 2 : Waveform showing write operation

-

The above waveform shows the behavior of the design under normal write conditions. The write cycle is assumed to be from the rising edge of the enabled clock in which wren is high till the rising edge of the next clock cycle. In BIDIR_DUAL_PORT mode, when the write happens at the same address as the one being read in the other port, the read output is unknown. Actual write into the RAM happens at the rising edge of the write clock. The clock enable on the write side input registers are disabled. The clock enable on the output registers are disabled. For the A port, When a write happens, the output of the port is the old data at the address. For the B port, When a write happens, the output of the port is the old data at the address.

-

- - diff --git a/FPGA_by_Fredi/Video/lpm_compare1_wave0.jpg b/FPGA_by_Fredi/Video/lpm_compare1_wave0.jpg deleted file mode 100644 index 0fbc2520920965bc5935785c577e0ab2e3ee623e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30655 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 diff --git a/FPGA_by_Fredi/Video/lpm_compare1_waveforms.html b/FPGA_by_Fredi/Video/lpm_compare1_waveforms.html deleted file mode 100644 index e8242d9..0000000 --- a/FPGA_by_Fredi/Video/lpm_compare1_waveforms.html +++ /dev/null @@ -1,13 +0,0 @@ - - -Sample Waveforms for lpm_compare1.vhd - - -

Sample behavioral waveforms for design file lpm_compare1.vhd

-

The following waveforms show the behavior of lpm_comparator megafunction for the chosen set of parameters in design lpm_compare1.vhd. The design lpm_compare1.vhd is 11 bit UNSIGNED comparator.

-
-

Fig. 1 : Wave showing comparator operation.

-

-

- - diff --git a/FPGA_by_Fredi/Video/lpm_fifoDZ_wave0.jpg b/FPGA_by_Fredi/Video/lpm_fifoDZ_wave0.jpg deleted file mode 100644 index 6bb604e1627fc0a6d3b800d4ff0674ba1d2356a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84085 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 diff --git a/FPGA_by_Fredi/Video/lpm_fifoDZ_waveforms.html b/FPGA_by_Fredi/Video/lpm_fifoDZ_waveforms.html deleted file mode 100644 index 956161a..0000000 --- a/FPGA_by_Fredi/Video/lpm_fifoDZ_waveforms.html +++ /dev/null @@ -1,13 +0,0 @@ - - -Sample Waveforms for "lpm_fifoDZ.vhd" - - -

Sample behavioral waveforms for design file "lpm_fifoDZ.vhd"

-

The following waveforms show the behavior of scfifo megafunction for the chosen set of parameters in design "lpm_fifoDZ.vhd". The design "lpm_fifoDZ.vhd" has a depth of 512 words of 128 bits each. The fifo is in show-ahead synchronous mode. The data becomes available before 'rdreq' is asserted; 'rdreq' acts as a read acknowledge.

-
-

Fig. 1 : Wave showing read and write operation.

-

The above waveform shows the behavior of the design under normal read and write conditions with aclr .

-

- - diff --git a/FPGA_by_Fredi/Video/lpm_fifo_dc0_wave0.jpg b/FPGA_by_Fredi/Video/lpm_fifo_dc0_wave0.jpg deleted file mode 100644 index c26a8bd21f38b82963184f94d8cd444d91554a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114506 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 DLMQw4 diff --git a/FPGA_by_Fredi/Video/lpm_fifo_dc0_waveforms.html b/FPGA_by_Fredi/Video/lpm_fifo_dc0_waveforms.html deleted file mode 100644 index 20c4da2..0000000 --- a/FPGA_by_Fredi/Video/lpm_fifo_dc0_waveforms.html +++ /dev/null @@ -1,13 +0,0 @@ - - -Sample Waveforms for "lpm_fifo_dc0.vhd" - - -

Sample behavioral waveforms for design file "lpm_fifo_dc0.vhd"

-

The following waveforms show the behavior of dcfifo megafunction for the chosen set of parameters in design "lpm_fifo_dc0.vhd". The design "lpm_fifo_dc0.vhd" has a depth of 2048 words of 128 bits each. The fifo is in legacy synchronous mode. The data becomes available after 'rdreq' is asserted; 'rdreq' acts as a read request.

-
-

Fig. 1 : Wave showing read and write operation.

-

The above waveform shows the behavior of the design under normal read and write conditions with aclr .

-

- - diff --git a/FPGA_by_Fredi/Video/shiftreg_dpz.bsf b/FPGA_by_Fredi/Video/shiftreg_dpz.bsf new file mode 100644 index 0000000..aab135b --- /dev/null +++ b/FPGA_by_Fredi/Video/shiftreg_dpz.bsf @@ -0,0 +1,56 @@ +/* +WARNING: Do NOT edit the input and output ports in this file in a text +editor if you plan to continue editing the block that represents it in +the Block Editor! File corruption is VERY likely to occur. +*/ +/* +Copyright (C) 1991-2010 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. +*/ +(header "symbol" (version "1.1")) +(symbol + (rect 0 0 144 80) + (text "shiftreg_dpz" (rect 37 1 119 17)(font "Arial" (font_size 10))) + (text "inst" (rect 8 64 25 76)(font "Arial" )) + (port + (pt 0 32) + (input) + (text "clock" (rect 0 0 29 14)(font "Arial" (font_size 8))) + (text "clock" (rect 26 26 49 39)(font "Arial" (font_size 8))) + (line (pt 0 32)(pt 16 32)(line_width 1)) + ) + (port + (pt 0 48) + (input) + (text "shiftin" (rect 0 0 34 14)(font "Arial" (font_size 8))) + (text "shiftin" (rect 20 42 48 55)(font "Arial" (font_size 8))) + (line (pt 0 48)(pt 16 48)(line_width 1)) + ) + (port + (pt 144 48) + (output) + (text "shiftout" (rect 0 0 42 14)(font "Arial" (font_size 8))) + (text "shiftout" (rect 89 42 123 55)(font "Arial" (font_size 8))) + (line (pt 144 48)(pt 128 48)(line_width 1)) + ) + (drawing + (text "right shift" (rect 88 17 128 29)(font "Arial" )) + (line (pt 16 16)(pt 128 16)(line_width 1)) + (line (pt 128 16)(pt 128 64)(line_width 1)) + (line (pt 128 64)(pt 16 64)(line_width 1)) + (line (pt 16 64)(pt 16 16)(line_width 1)) + (line (pt 16 26)(pt 22 32)(line_width 1)) + (line (pt 22 32)(pt 16 38)(line_width 1)) + ) +) diff --git a/FPGA_by_Fredi/Video/shiftreg_dpz.inc b/FPGA_by_Fredi/Video/shiftreg_dpz.inc new file mode 100644 index 0000000..e9502e6 --- /dev/null +++ b/FPGA_by_Fredi/Video/shiftreg_dpz.inc @@ -0,0 +1,24 @@ +--Copyright (C) 1991-2010 Altera Corporation +--Your use of Altera Corporation's design tools, logic functions +--and other software and tools, and its AMPP partner logic +--functions, and any output files from any of the foregoing +--(including device programming or simulation files), and any +--associated documentation or information are expressly subject +--to the terms and conditions of the Altera Program License +--Subscription Agreement, Altera MegaCore Function License +--Agreement, or other applicable license agreement, including, +--without limitation, that your use is for the sole purpose of +--programming logic devices manufactured by Altera and sold by +--Altera or its authorized distributors. Please refer to the +--applicable agreement for further details. + + +FUNCTION shiftreg_dpz +( + clock, + shiftin +) + +RETURNS ( + shiftout +); diff --git a/FPGA_by_Fredi/Video/lpm_fifoDZ.qip b/FPGA_by_Fredi/Video/shiftreg_dpz.qip similarity index 63% rename from FPGA_by_Fredi/Video/lpm_fifoDZ.qip rename to FPGA_by_Fredi/Video/shiftreg_dpz.qip index 5444627..dc996ca 100644 --- a/FPGA_by_Fredi/Video/lpm_fifoDZ.qip +++ b/FPGA_by_Fredi/Video/shiftreg_dpz.qip @@ -1,5 +1,5 @@ -set_global_assignment -name IP_TOOL_NAME "LPM_FIFO+" +set_global_assignment -name IP_TOOL_NAME "LPM_SHIFTREG" set_global_assignment -name IP_TOOL_VERSION "9.1" -set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "lpm_fifoDZ.vhd"] -set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "lpm_fifoDZ.bsf"] -set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "lpm_fifoDZ.cmp"] +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "shiftreg_dpz.vhd"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "shiftreg_dpz.bsf"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "shiftreg_dpz.inc"] diff --git a/FPGA_by_Fredi/Video/shiftreg_dpz.vhd b/FPGA_by_Fredi/Video/shiftreg_dpz.vhd new file mode 100644 index 0000000..8037081 --- /dev/null +++ b/FPGA_by_Fredi/Video/shiftreg_dpz.vhd @@ -0,0 +1,125 @@ +-- megafunction wizard: %LPM_SHIFTREG% +-- GENERATION: STANDARD +-- VERSION: WM1.0 +-- MODULE: lpm_shiftreg + +-- ============================================================ +-- File Name: shiftreg_dpz.vhd +-- Megafunction Name(s): +-- lpm_shiftreg +-- +-- Simulation Library Files(s): +-- lpm +-- ============================================================ +-- ************************************************************ +-- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +-- +-- 9.1 Build 350 03/24/2010 SP 2 SJ Web Edition +-- ************************************************************ + + +--Copyright (C) 1991-2010 Altera Corporation +--Your use of Altera Corporation's design tools, logic functions +--and other software and tools, and its AMPP partner logic +--functions, and any output files from any of the foregoing +--(including device programming or simulation files), and any +--associated documentation or information are expressly subject +--to the terms and conditions of the Altera Program License +--Subscription Agreement, Altera MegaCore Function License +--Agreement, or other applicable license agreement, including, +--without limitation, that your use is for the sole purpose of +--programming logic devices manufactured by Altera and sold by +--Altera or its authorized distributors. Please refer to the +--applicable agreement for further details. + + +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY lpm; +USE lpm.all; + +ENTITY shiftreg_dpz IS + PORT + ( + clock : IN STD_LOGIC ; + shiftin : IN STD_LOGIC ; + shiftout : OUT STD_LOGIC + ); +END shiftreg_dpz; + + +ARCHITECTURE SYN OF shiftreg_dpz IS + + SIGNAL sub_wire0 : STD_LOGIC ; + + + + COMPONENT lpm_shiftreg + GENERIC ( + lpm_direction : STRING; + lpm_type : STRING; + lpm_width : NATURAL + ); + PORT ( + clock : IN STD_LOGIC ; + shiftout : OUT STD_LOGIC ; + shiftin : IN STD_LOGIC + ); + END COMPONENT; + +BEGIN + shiftout <= sub_wire0; + + lpm_shiftreg_component : lpm_shiftreg + GENERIC MAP ( + lpm_direction => "RIGHT", + lpm_type => "LPM_SHIFTREG", + lpm_width => 3 + ) + PORT MAP ( + clock => clock, + shiftin => shiftin, + shiftout => sub_wire0 + ); + + + +END SYN; + +-- ============================================================ +-- CNX file retrieval info +-- ============================================================ +-- Retrieval info: PRIVATE: ACLR NUMERIC "0" +-- Retrieval info: PRIVATE: ALOAD NUMERIC "0" +-- Retrieval info: PRIVATE: ASET NUMERIC "0" +-- Retrieval info: PRIVATE: ASET_ALL1 NUMERIC "1" +-- Retrieval info: PRIVATE: CLK_EN NUMERIC "0" +-- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III" +-- Retrieval info: PRIVATE: LeftShift NUMERIC "0" +-- Retrieval info: PRIVATE: ParallelDataInput NUMERIC "0" +-- Retrieval info: PRIVATE: Q_OUT NUMERIC "0" +-- Retrieval info: PRIVATE: SCLR NUMERIC "0" +-- Retrieval info: PRIVATE: SLOAD NUMERIC "0" +-- Retrieval info: PRIVATE: SSET NUMERIC "0" +-- Retrieval info: PRIVATE: SSET_ALL1 NUMERIC "1" +-- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" +-- Retrieval info: PRIVATE: SerialShiftInput NUMERIC "1" +-- Retrieval info: PRIVATE: SerialShiftOutput NUMERIC "1" +-- Retrieval info: PRIVATE: nBit NUMERIC "3" +-- Retrieval info: CONSTANT: LPM_DIRECTION STRING "RIGHT" +-- Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_SHIFTREG" +-- Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "3" +-- Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL clock +-- Retrieval info: USED_PORT: shiftin 0 0 0 0 INPUT NODEFVAL shiftin +-- Retrieval info: USED_PORT: shiftout 0 0 0 0 OUTPUT NODEFVAL shiftout +-- Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 +-- Retrieval info: CONNECT: @shiftin 0 0 0 0 shiftin 0 0 0 0 +-- Retrieval info: CONNECT: shiftout 0 0 0 0 @shiftout 0 0 0 0 +-- Retrieval info: LIBRARY: lpm lpm.lpm_components.all +-- Retrieval info: GEN_FILE: TYPE_NORMAL shiftreg_dpz.vhd TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL shiftreg_dpz.inc TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL shiftreg_dpz.cmp FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL shiftreg_dpz.bsf TRUE FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL shiftreg_dpz_inst.vhd FALSE +-- Retrieval info: LIB_FILE: lpm diff --git a/FPGA_by_Fredi/blitter.tdf b/FPGA_by_Fredi/blitter.tdf index 740423e..46f027c 100644 --- a/FPGA_by_Fredi/blitter.tdf +++ b/FPGA_by_Fredi/blitter.tdf @@ -23,6 +23,8 @@ INCLUDE "lpm_bustri_WORD.inc"; INCLUDE "VIDEO/BLITTER/lpm_clshift384.INC"; INCLUDE "VIDEO/BLITTER/altsyncram0.INC"; INCLUDE "VIDEO/BLITTER/lpm_clshift144.inc"; +INCLUDE "VIDEO/BLITTER/lpm_ror128.inc"; + --CONSTANT BL_SKEW_LF = 255; @@ -71,66 +73,70 @@ SUBDESIGN BLITTER VARIABLE BYT :NODE; - LONGLINE :NODE; - W_ADR[18..0] :NODE; FB_16B[1..0] :NODE; - W_A1 :DFFE; BLITTER_CS :NODE; BL_HRAM_CS :NODE; + DP_RAM_CS :NODE; BL_HRAM_BE[1..0] :NODE; BL_HRAM_OUT[15..0] :NODE; BL_DPRAM_OUT[15..0] :NODE; BL_SRC_X_INC_CS :NODE; BL_SRC_X_INC[15..0] :DFFE; - SRC_XINC_NODE[31..0] :NODE; + SRC_ADR_INC[31..0] :NODE; + SRC_XINC32[31..0] :NODE; BL_SRC_Y_INC_CS :NODE; BL_SRC_Y_INC[15..0] :DFFE; - SRC_YINC_NODE[31..0] :NODE; + SRC_YINC32[31..0] :NODE; BL_ENDMASK1_CS :NODE; BL_ENDMASK1[15..0] :DFFE; BL_ENDMASK2_CS :NODE; BL_ENDMASK2[15..0] :DFFE; BL_ENDMASK3_CS :NODE; BL_ENDMASK3[15..0] :DFFE; + BL_ENDMASK0[15..0] :NODE; + BL_ENDMASKF[15..0] :NODE; + BL_ENDMASKL[15..0] :NODE; + BL_ENDMASKR[15..0] :NODE; BL_SRC_ADRH_CS :NODE; BL_SRC_ADRL_CS :NODE; BL_SRC_ADR[31..0] :DFFE; + SRC_OLD[27..0] :DFFE; SRC_IADRH_CS :NODE; SRC_IADRL_CS :NODE; SRC_IADR[31..0] :DFF; - SRC_IADR_CLR :NODE; - SIINC :NODE; - SRC_ADR_NODE[31..0] :NODE; + SRC_IADR_CLR :DFF; + SRC_ADR32[31..0] :NODE; BL_DST_X_INC_CS :NODE; BL_DST_X_INC[15..0] :DFFE; - DST_XINC_NODE[31..0] :NODE; + DST_ADR_INC[31..0] :NODE; + DST_XINC32[31..0] :NODE; BL_DST_Y_INC_CS :NODE; BL_DST_Y_INC[15..0] :DFFE; - DST_YINC_NODE[31..0] :NODE; + DST_YINC32[31..0] :NODE; BL_DST_ADRH_CS :NODE; BL_DST_ADRL_CS :NODE; BL_DST_ADR[31..0] :DFFE; DST_IADRH_CS :NODE; DST_IADRL_CS :NODE; DST_IADR[31..0] :DFF; - DST_IADR_CLR :NODE; - DST_ADR_NODE[31..0] :NODE; - DIINC :NODE; + DST_IADR_CLR :DFF; + DST_ADR32[31..0] :NODE; BL_X_CNT_CS :NODE; BL_X_CNT[15..0] :DFFE; - X_CNT_NODE[15..0] :NODE; + X_CNT16[15..0] :NODE; BL_Y_CNT_CS :NODE; BL_Y_CNT[15..0] :DFFE; BL_HOP_CS :NODE; BL_HOP[7..0] :DFFE; BL_OP[7..0] :DFFE; BL_LN_CS :NODE; - LN7CLR :NODE; + BL_LN_WR :NODE; + LN7_CLR :NODE; BL_LN[7..0] :DFFE; BL_SKEW[7..0] :DFFE; -- barell shifter DIST_RIGHT[8..0] :NODE; - BL_BS_SKEW[7..0] :NODE; + BS_SKEW[7..0] :NODE; BL_BSIN[383..0] :NODE; BL_BSOUT[383..0] :NODE; SHIFT_DIR :NODE; @@ -145,15 +151,17 @@ VARIABLE WREN_B :NODE; -- WR ENA HALFTONE RAM X_INDEX_CS :NODE; X_INDEX[15..0] :DFF; -- LAUFZEIGER X COUNT - X_INDEX_CLR :NODE; + X_INDEX_CLR :DFF; -- X INDEX LÖSCHEN CPU WRITE + X_INDEX_CLR_DIR :NODE; -- X INDEX LÖSCHEN STATE MACHINE + DST_X_INC[15..0] :NODE; -- ANZAHL WORTE PRO DURCHLAUF + X_CNT_T[15..0] :NODE; Y_INDEX_CS :NODE; Y_INDEX[15..0] :DFF; -- LAUFZEIGER Y COUNT - Y_INDEX_CLR :NODE; + Y_INDEX_CLR :DFF; LINE_NR[3..0] :NODE; - XIINC :NODE; -- INC INDEX SPALTE + SDXINC :DFF; -- INC INDEX SPALTE YIINC :NODE; -- INC INDEX ZEILE - ZIINC :NODE; -- INC ADRESSEN ZEILENUMBRUCH - ZYINC :NODE; -- KORREKTUR ADRESSEN WENN FERTIG + ZAINC :NODE; -- INC ADRESSEN ZEILENUMBRUCH HOP_OUT[127..0] :NODE; OP_OUT[127..0] :NODE; ENDMASK1_SHIFT[7..0] :NODE; @@ -162,24 +170,22 @@ VARIABLE ENDMASK12_OUT[143..0] :NODE; ENDMASK23_IN[143..0] :NODE; ENDMASK23_OUT[143..0] :NODE; - ENDMASK123[127..0] :NODE; - ENDMASKEND[15..0] :NODE; - SRC_DDR_ADR[31..0] :NODE; - DST_DDR_ADR[31..0] :NODE; - BLITTER_REQ :DFF; + ENDMASKM_IN[127..0] :NODE; + ENDMASKM_OUT[127..0] :NODE; + ROR_CNT[8..0] :NODE; + ENDMASK123[127..0] :DFF; + ENDMASKEND[31..0] :NODE; + BLITTER_SIG :DFF; + BLITTER_REQ :NODE; + BL_START :DFF; + BL_NOTRUN :NODE; -- MAIN STATE MACHINE - BL_SM :MACHINE WITH STATES(START,NEW_LINE,NEW_LINEW,RDSRC0,RDSRC1,RDSRC2,RDDST,WRDSTW1,WRDST,TESTZEILENENDE,TESTFERTIG,FERTIG); + BL_SM :MACHINE WITH STATES(START,NEW_LINE,RDSRC3,RDSRC2,RDSRC1,RDDST,WRDSTW,WRDST,TESTZEILENENDE,TESTFERTIG,FERTIG); BEGIN -- BYT UND WORD SELECT 16 BIT BYT = !FB_SIZE1 & FB_SIZE0; - LONGLINE = !FB_SIZE1 & !FB_SIZE0 # FB_SIZE1 & FB_SIZE0; -- LONG OR LINE - W_A1.CLK = MAIN_CLK; - W_A1.ENA = FB_ALE # BLITTER_TA & LONGLINE; - W_A1 = FB_ADR[1] & FB_ALE # BLITTER_TA & LONGLINE; -- A1 HOCHZÄHLEN BEI LONG UND LINE WEGEN BURST - W_ADR[18..1] = FB_ADR[19..2]; - W_ADR0 = W_A1; FB_16B0 = FB_ADR[0]==0; -- wenn ADR==0 FB_16B1 = FB_ADR[0]==1 # !BYT; -- wenn ADR==1 or NOT BYT -- BLITTER CS @@ -191,156 +197,229 @@ BEGIN BL_HRAM_BE1 = BL_HRAM_CS & FB_16B0; BL_HRAM_BE0 = BL_HRAM_CS & FB_16B1; WREN_B = B"0"; - LINE_NR[] = ((Y_INDEX[3..0] & !BL_DST_Y_INC15) # (!Y_INDEX[3..0] & BL_DST_Y_INC15)); - (BL_DPRAM_OUT[],BL_HRAM_OUT[]) = altsyncram0(W_ADR[3..0],LINE_NR[],BL_HRAM_BE[],MAIN_CLK,DDRCLK0,FB_AD[31..16],FB_AD[31..16],BL_HRAM_CS & !nFB_WR,WREN_B); + LINE_NR[] = BL_LN[3..0] + ((Y_INDEX[3..0] & !BL_DST_X_INC15) - (Y_INDEX[3..0] & BL_DST_X_INC15)); + (BL_DPRAM_OUT[],BL_HRAM_OUT[]) = altsyncram0(FB_ADR[4..1],LINE_NR[],BL_HRAM_BE[],MAIN_CLK,DDRCLK0,FB_AD[31..16],FB_AD[31..16],BL_HRAM_CS & !nFB_WR,WREN_B); + DP_RAM_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C528"; -- $F8A50.w -- SRC X INC BL_SRC_X_INC[].CLK = MAIN_CLK; - BL_SRC_X_INC[] = FB_AD[31..16]; - BL_SRC_X_INC_CS = !nFB_CS1 & W_ADR[]==H"7C510"; -- $F8A20.w + BL_SRC_X_INC[15..1] = FB_AD[31..17]; + BL_SRC_X_INC0 = GND; + BL_SRC_X_INC_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C510"); -- $F8A20.w BL_SRC_X_INC[15..8].ENA = BL_SRC_X_INC_CS & !nFB_WR & FB_16B0; BL_SRC_X_INC[7..0].ENA = BL_SRC_X_INC_CS & !nFB_WR & FB_16B1; - SRC_XINC_NODE[] = (H"FFFF0000" & BL_SRC_X_INC15) # (H"0000",BL_SRC_X_INC[]); -- ERWEITERN AUF 32 BIT + SRC_XINC32[15..0] = BL_SRC_X_INC[]; -- ERWEITERN AUF 32 BIT + SRC_XINC32[31..16] = H"FFFF" & BL_SRC_X_INC15; -- ERWEITERN AUF 32 BIT -- SRC Y INC BL_SRC_Y_INC[].CLK = MAIN_CLK; - BL_SRC_Y_INC[] = FB_AD[31..16]; - BL_SRC_Y_INC_CS = !nFB_CS1 & W_ADR[]==H"7C511"; -- $F8A22.w + BL_SRC_Y_INC[15..1] = FB_AD[31..17]; + BL_SRC_Y_INC0 = GND; + BL_SRC_Y_INC_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C511"); -- $F8A22.w BL_SRC_Y_INC[15..8].ENA = BL_SRC_Y_INC_CS & !nFB_WR & FB_16B0; BL_SRC_Y_INC[7..0].ENA = BL_SRC_Y_INC_CS & !nFB_WR & FB_16B1; - SRC_YINC_NODE[] = (H"FFFF0000" & BL_SRC_Y_INC15) # (H"0000",BL_SRC_Y_INC[]); -- ERWEITERN AUF 32 BIT + SRC_YINC32[15..0] = BL_SRC_Y_INC[]; -- ERWEITERN AUF 32 BIT + SRC_YINC32[31..16] = H"FFFF" & BL_SRC_Y_INC15; -- ERWEITERN AUF 32 BIT -- SRC ADR HIGH BL_SRC_ADR[].CLK = MAIN_CLK; BL_SRC_ADR[31..16] = FB_AD[31..16]; - BL_SRC_ADRH_CS = !nFB_CS1 & W_ADR[]==H"7C512"; -- $F8A24.w + BL_SRC_ADRH_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C512"); -- $F8A24.w BL_SRC_ADR[31..24].ENA = BL_SRC_ADRH_CS & !nFB_WR & FB_16B0; BL_SRC_ADR[23..16].ENA = BL_SRC_ADRH_CS & !nFB_WR & FB_16B1; -- SRC ADR LOW BL_SRC_ADR[].CLK = MAIN_CLK; - BL_SRC_ADR[15..0] = FB_AD[31..16]; - BL_SRC_ADRL_CS = !nFB_CS1 & W_ADR[]==H"7C513"; -- $F8A26.w + BL_SRC_ADR[15..1] = FB_AD[31..17]; + BL_SRC_ADR0 = GND; + BL_SRC_ADRL_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C513"); -- $F8A26.w BL_SRC_ADR[15..8].ENA = BL_SRC_ADRL_CS & !nFB_WR & FB_16B0; BL_SRC_ADR[7..0].ENA = BL_SRC_ADRL_CS & !nFB_WR & FB_16B1; SRC_IADR[].CLK = DDRCLK0; - SRC_IADRH_CS = !nFB_CS1 & W_ADR[]==H"7C520"; -- $F8A40.w - SRC_IADRL_CS = !nFB_CS1 & W_ADR[]==H"7C521"; -- $F8A42.w + SRC_IADRH_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C520"); -- $F8A40.w + SRC_IADRL_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C521"); -- $F8A42.w + SRC_IADR_CLR.CLK = MAIN_CLK; SRC_IADR_CLR = (BL_SRC_ADRL_CS # BL_SRC_ADRH_CS) & !nFB_WR; -- LÖSCHEN BEI WRITE - SRC_IADR[] = (SRC_IADR[] + (((8 * SRC_XINC_NODE[]) & SIINC) + (SRC_YINC_NODE[] & ZYINC) + ((((0,BL_X_CNT[]) - (0,X_INDEX[]) - 8) * SRC_XINC_NODE[]) & ZIINC)) & SRC_READ) & !SRC_IADR_CLR; - SRC_ADR_NODE[] = BL_SRC_ADR[] + SRC_IADR[]; -- ZUGRIFFSADRESSE THEORETISCH + SRC_IADR[] = (((SRC_IADR[] + (SRC_ADR_INC[] & SDXINC)) & !ZAINC) + ((((((0,BL_X_CNT[]) - 1) * SRC_XINC32[]) + SRC_YINC32[]) * (0,Y_INDEX[])) & ZAINC)) & SRC_READ & !SRC_IADR_CLR; + SRC_ADR32[] = BL_SRC_ADR[] + SRC_IADR[]; -- ZUGRIFFSADRESSE THEORETISCH -- ENDMASK 1 BL_ENDMASK1[].CLK = MAIN_CLK; BL_ENDMASK1[] = FB_AD[31..16]; - BL_ENDMASK1_CS = !nFB_CS1 & W_ADR[]==H"7C514"; -- $F8A28.w + BL_ENDMASK1_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C514"); -- $F8A28.w BL_ENDMASK1[15..8].ENA = BL_ENDMASK1_CS & !nFB_WR & FB_16B0; BL_ENDMASK1[7..0].ENA = BL_ENDMASK1_CS & !nFB_WR & FB_16B1; -- ENDMASK 2 BL_ENDMASK2[].CLK = MAIN_CLK; BL_ENDMASK2[] = FB_AD[31..16]; - BL_ENDMASK2_CS = !nFB_CS1 & W_ADR[]==H"7C515"; -- $F8A2A.w + BL_ENDMASK2_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C515"); -- $F8A2A.w BL_ENDMASK2[15..8].ENA = BL_ENDMASK2_CS & !nFB_WR & FB_16B0; BL_ENDMASK2[7..0].ENA = BL_ENDMASK2_CS & !nFB_WR & FB_16B1; -- ENDMASK 3 BL_ENDMASK3[].CLK = MAIN_CLK; BL_ENDMASK3[] = FB_AD[31..16]; - BL_ENDMASK3_CS = !nFB_CS1 & W_ADR[]==H"7C516"; -- $F8A2C.w + BL_ENDMASK3_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C516"); -- $F8A2C.w BL_ENDMASK3[15..8].ENA = BL_ENDMASK3_CS & !nFB_WR & FB_16B0; BL_ENDMASK3[7..0].ENA = BL_ENDMASK3_CS & !nFB_WR & FB_16B1; -- DST X INC BL_DST_X_INC[].CLK = MAIN_CLK; - BL_DST_X_INC[] = FB_AD[31..16]; - BL_DST_X_INC_CS = !nFB_CS1 & W_ADR[]==H"7C517"; -- $F8A2E.w + BL_DST_X_INC[15..1] = FB_AD[31..17]; + BL_DST_X_INC0 = GND; + BL_DST_X_INC_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C517"); -- $F8A2E.w BL_DST_X_INC[15..8].ENA = BL_DST_X_INC_CS & !nFB_WR & FB_16B0; BL_DST_X_INC[7..0].ENA = BL_DST_X_INC_CS & !nFB_WR & FB_16B1; - DST_XINC_NODE[] = (H"FFFF0000" & BL_DST_X_INC15) # (H"0000",BL_DST_X_INC[]); -- ERWEITERN AUF 32 BIT + DST_XINC32[15..0] = BL_DST_X_INC[]; -- ERWEITERN AUF 32 BIT + DST_XINC32[31..16] = H"FFFF" & BL_DST_X_INC15; -- ERWEITERN AUF 32 BIT -- DST Y INC BL_DST_Y_INC[].CLK = MAIN_CLK; - BL_DST_Y_INC[] = FB_AD[31..16]; - BL_DST_Y_INC_CS = !nFB_CS1 & W_ADR[]==H"7C518"; -- $F8A30.w + BL_DST_Y_INC[15..1] = FB_AD[31..17]; + BL_DST_Y_INC0 = GND; + BL_DST_Y_INC_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C518"); -- $F8A30.w BL_DST_Y_INC[15..8].ENA = BL_DST_Y_INC_CS & !nFB_WR & FB_16B0; BL_DST_Y_INC[7..0].ENA = BL_DST_Y_INC_CS & !nFB_WR & FB_16B1; - DST_YINC_NODE[] = (H"FFFF0000" & BL_DST_Y_INC15) # (H"0000",BL_DST_Y_INC[]); -- ERWEITERN AUF 32 BIT + DST_YINC32[15..0] = BL_DST_Y_INC[]; -- ERWEITERN AUF 32 BIT + DST_YINC32[31..16] = H"FFFF" & BL_DST_Y_INC15; -- ERWEITERN AUF 32 BIT -- DST ADR HIGH BL_DST_ADR[].CLK = MAIN_CLK; BL_DST_ADR[31..16] = FB_AD[31..16]; - BL_DST_ADRH_CS = !nFB_CS1 & W_ADR[]==H"7C519"; -- $F8A32.w + BL_DST_ADRH_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C519"); -- $F8A32.w BL_DST_ADR[31..24].ENA = BL_DST_ADRH_CS & !nFB_WR & FB_16B0; BL_DST_ADR[23..16].ENA = BL_DST_ADRH_CS & !nFB_WR & FB_16B1; -- DST ADR LOW BL_DST_ADR[].CLK = MAIN_CLK; - BL_DST_ADR[15..0] = FB_AD[31..16]; - BL_DST_ADRL_CS = !nFB_CS1 & W_ADR[]==H"7C51A"; -- $F8A34.w + BL_DST_ADR[15..1] = FB_AD[31..17]; + BL_DST_ADR0 = GND; + BL_DST_ADRL_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C51A"); -- $F8A34.w BL_DST_ADR[15..8].ENA = BL_DST_ADRL_CS & !nFB_WR & FB_16B0; BL_DST_ADR[7..0].ENA = BL_DST_ADRL_CS & !nFB_WR & FB_16B1; DST_IADR[].CLK = DDRCLK0; - DST_IADRH_CS = !nFB_CS1 & W_ADR[]==H"7C522"; -- $F8A44.w - DST_IADRL_CS = !nFB_CS1 & W_ADR[]==H"7C523"; -- $F8A46.w - DST_IADR_CLR = (BL_DST_ADRL_CS # BL_DST_ADRH_CS) & !nFB_WR; -- LÖSCHEN BEI WRITE - DST_IADR[] = (DST_IADR[] + ((8 * DST_XINC_NODE[]) & DIINC) + (DST_YINC_NODE[] & ZYINC) + ((((0,BL_X_CNT[]) - (0,X_INDEX[])) * DST_XINC_NODE[]) & ZIINC)) & !DST_IADR_CLR; - DST_ADR_NODE[] = BL_DST_ADR[] + DST_IADR[]; -- ZUGRIFFSADRESSE THEORETISCH + DST_IADRH_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C522"); -- $F8A44.w + DST_IADRL_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C523"); -- $F8A46.w + DST_IADR_CLR.CLK = MAIN_CLK; + DST_IADR_CLR = (BL_DST_ADRL_CS # BL_DST_ADRH_CS) & !nFB_WR; -- LÖSCHEN BEI WRITE + DST_IADR[] = (((DST_IADR[] + (DST_ADR_INC[] & SDXINC)) & !ZAINC) + ((((((0,BL_X_CNT[]) - 1) * DST_XINC32[]) + DST_YINC32[]) * (0,Y_INDEX[])) & ZAINC)) & !DST_IADR_CLR; + DST_ADR32[] = BL_DST_ADR[] + DST_IADR[]; -- ZUGRIFFSADRESSE THEORETISCH -- X COUNT BL_X_CNT[].CLK = MAIN_CLK; BL_X_CNT[] = FB_AD[31..16]; - BL_X_CNT_CS = !nFB_CS1 & W_ADR[]==H"7C51B"; -- $F8A36.w + BL_X_CNT_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C51B"); -- $F8A36.w BL_X_CNT[15..8].ENA = BL_X_CNT_CS & !nFB_WR & FB_16B0; BL_X_CNT[7..0].ENA = BL_X_CNT_CS & !nFB_WR & FB_16B1; X_INDEX[].CLK = DDRCLK0; - X_INDEX_CS = !nFB_CS1 & W_ADR[]==H"7C524"; -- $F8A48.w - X_INDEX_CLR = BL_X_CNT_CS & !nFB_WR; -- LÖSCHEN BEI WRITE - X_INDEX[] = (X_INDEX[] + (8 & XIINC) + ((BL_X_CNT[] - X_INDEX[]) & ZIINC)) & !X_INDEX_CLR; - X_CNT_NODE[] = X_INDEX[] - ((0,DST_ADR_NODE[3..1]) & (X_INDEX[]!=0));-- EFFEKTIV GELESENE + X_INDEX_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C524"); -- $F8A48.w + X_INDEX_CLR.CLK = MAIN_CLK; + X_INDEX_CLR = BL_X_CNT_CS & !nFB_WR; -- LÖSCHEN BEI WRITE + X_INDEX[] = ((X_INDEX[] & !ZAINC) + (DST_X_INC[] & SDXINC) + (BL_X_CNT[] & ZAINC)) & !X_INDEX_CLR & !X_INDEX_CLR_DIR; + X_CNT16[] = X_INDEX[] - (X_CNT_T[] & (X_INDEX[]!=0)); -- EFFEKTIV geschrieben +-- SCHRITTWEITEN BEI PALLETTENMOD + IF (BL_SRC_X_INC[] != BL_DST_X_INC[]) # (BL_X_CNT[] < 4) THEN + DST_X_INC[] = 1; + X_CNT_T[] = 0; + SRC_ADR_INC[] = SRC_XINC32[]; -- SRC X INC + DST_ADR_INC[] = DST_XINC32[]; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"0002" THEN + DST_X_INC[] = 8; + X_CNT_T[] = (0,DST_ADR32[3..1]); + SRC_ADR_INC[] = 16; -- SRC X INC + DST_ADR_INC[] = 16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"FFFE" THEN + DST_X_INC[] = 8; + X_CNT_T[] = 7 - (0,DST_ADR32[3..1]); + SRC_ADR_INC[] = -16; -- SRC X INC + DST_ADR_INC[] = -16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"0004" THEN + DST_X_INC[] = 4; + X_CNT_T[] = (0,DST_ADR32[3..2]); + SRC_ADR_INC[] = 16; -- SRC X INC + DST_ADR_INC[] = 16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"FFFC" THEN + DST_X_INC[] = 4; + X_CNT_T[] = 3 - (0,DST_ADR32[3..2]); + SRC_ADR_INC[] = -16; -- SRC X INC + DST_ADR_INC[] = -16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"0008" THEN + DST_X_INC[] = 2; + X_CNT_T[] = (0,DST_ADR32[3]); + SRC_ADR_INC[] = 16; -- SRC X INC + DST_ADR_INC[] = 16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"FFF8" THEN + DST_X_INC[] = 2; + X_CNT_T[] = 1 - (0,DST_ADR32[3]); + SRC_ADR_INC[] = -16; -- SRC X INC + DST_ADR_INC[] = -16; -- DST X INC + ELSE + DST_X_INC[] = 1; + X_CNT_T[] = 0; + SRC_ADR_INC[] = SRC_XINC32[]; -- SRC X INC + DST_ADR_INC[] = DST_XINC32[]; -- DST X INC + END IF; + END IF; + END IF; + END IF; + END IF; + END IF; + END IF; -- Y COUNT BL_Y_CNT[].CLK = MAIN_CLK; BL_Y_CNT[] = FB_AD[31..16]; - BL_Y_CNT_CS = !nFB_CS1 & W_ADR[]==H"7C51C"; -- $F8A38.w + BL_Y_CNT_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C51C"; -- $F8A38.w BL_Y_CNT[15..8].ENA = BL_Y_CNT_CS & !nFB_WR & FB_16B0; BL_Y_CNT[7..0].ENA = BL_Y_CNT_CS & !nFB_WR & FB_16B1; Y_INDEX[].CLK = DDRCLK0; - Y_INDEX_CS = !nFB_CS1 & W_ADR[]==H"7C525"; -- $F8A4A.w - Y_INDEX_CLR = BL_Y_CNT_CS & !nFB_WR; -- LÖSCHEN BEI WRITE + Y_INDEX_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C525"; -- $F8A4A.w + Y_INDEX_CLR.CLK = MAIN_CLK; + Y_INDEX_CLR = BL_Y_CNT_CS & !nFB_WR; -- LÖSCHEN BEI WRITE Y_INDEX[] = (Y_INDEX[] + (1 & YIINC)) & !Y_INDEX_CLR; -- HOP LOGIC BL_HOP[].CLK = MAIN_CLK; BL_HOP[] = FB_AD[31..24]; - BL_HOP_CS = !nFB_CS1 & W_ADR[]==H"7C51D"; -- $F8A3A.w - BL_HOP[7..0].ENA = BL_HOP_CS & !nFB_WR & FB_16B0; -- $F8A3A + BL_HOP_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C51D"; -- $F8A3A.w + BL_HOP[7..0].ENA = BL_HOP_CS & !nFB_WR & FB_16B0; -- $F8A3A -- OP LOGIC BL_OP[].CLK = MAIN_CLK; BL_OP[] = FB_AD[23..16]; - BL_OP[7..0].ENA = BL_HOP_CS & !nFB_WR & FB_16B1; -- $F8A3B + BL_OP[7..0].ENA = BL_HOP_CS & !nFB_WR & FB_16B1; -- $F8A3B -- LINE NUMBER BYT BL_LN[].CLK = MAIN_CLK; - BL_LN[6..0] = FB_AD[30..24]; - BL_LN7 = FB_AD31 & !LN7CLR; -- BUSY HOG UND SMUDGE - BL_LN_CS = !nFB_CS1 & W_ADR[]==H"7C51E"; -- $F8A3C.w - BL_LN[].ENA = BL_LN_CS & !nFB_WR & FB_16B0; -- $F8A3C - BL_LN7.ENA = LN7CLR; + BL_LN_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C51E"); -- $F8A3C.w + BL_LN_WR = BL_LN_CS & !nFB_WR & FB_16B0; -- $F8A3C WRITE SIGNAL + BL_LN[6..0] = FB_AD[30..24]; -- HOG UND SMUDGE + BL_LN[6..0].ENA = BL_LN_WR; -- $F8A3C + BL_LN7.ENA = BL_LN_WR # LN7_CLR; -- $F8A3C + BL_LN7 = FB_AD31 & BLITTER_ON & (BL_X_CNT[] > X_CNT16[]) & (BL_Y_CNT[] > Y_INDEX[]) & !LN7_CLR; -- BUSY + BL_START.CLK = MAIN_CLK; + BL_START = BL_LN7 & !BL_LN_CS & BLITTER_ON & (BL_X_CNT[] > X_CNT16[]) & (BL_Y_CNT[] > Y_INDEX[]) & !LN7_CLR; -- SKEW BYT BL_SKEW[].CLK = MAIN_CLK; BL_SKEW[] = FB_AD[23..16]; - BL_SKEW[].ENA = BL_LN_CS & !nFB_WR & FB_16B1; -- $F8A3D + BL_SKEW[].ENA = BL_LN_CS & !nFB_WR & FB_16B1; -- $F8A3D --- REGISTER OUT FB_AD[31..16] = lpm_bustri_WORD( BL_HRAM_CS & BL_DPRAM_OUT[] # BL_SRC_X_INC_CS & BL_SRC_X_INC[] # BL_SRC_Y_INC_CS & BL_SRC_Y_INC[] - # BL_SRC_ADRH_CS & SRC_ADR_NODE[31..16] - # BL_SRC_ADRL_CS & SRC_ADR_NODE[15..0] + # BL_SRC_ADRH_CS & SRC_ADR32[31..16] + # BL_SRC_ADRL_CS & SRC_ADR32[15..0] # BL_ENDMASK1_CS & BL_ENDMASK1[] # BL_ENDMASK2_CS & BL_ENDMASK2[] # BL_ENDMASK3_CS & BL_ENDMASK3[] # BL_DST_X_INC_CS & BL_DST_X_INC[] # BL_DST_Y_INC_CS & BL_DST_Y_INC[] - # BL_DST_ADRH_CS & DST_ADR_NODE[31..16] - # BL_DST_ADRL_CS & DST_ADR_NODE[15..0] + # BL_DST_ADRH_CS & DST_ADR32[31..16] + # BL_DST_ADRL_CS & DST_ADR32[15..0] # BL_X_CNT_CS & (BL_X_CNT[]-X_INDEX[]) # BL_Y_CNT_CS & (BL_Y_CNT[]-Y_INDEX[]) # BL_HOP_CS & (BL_HOP[],BL_OP[]) - # BL_LN_CS & (BL_LN[7..4],Y_INDEX[3..0],BL_SKEW[]) + # BL_LN_CS & (BL_LN7 # !BL_NOTRUN,BL_LN[6..0],BL_SKEW[]) # SRC_IADRH_CS & SRC_IADR[31..16] # SRC_IADRL_CS & SRC_IADR[15..0] # DST_IADRH_CS & DST_IADR[31..16] # DST_IADRL_CS & DST_IADR[15..0] # X_INDEX_CS & X_INDEX[] # Y_INDEX_CS & Y_INDEX[] - ,BLITTER_CS & !nFB_OE); -- FFFF8A00-7F + # DP_RAM_CS & BL_HRAM_OUT[] + ,BLITTER_CS & !nFB_OE); -- FFFF8A00-7F -------------------------------------------------------------------------------------- -- SRC BUFFER LADEN BL_SRC_BUF1[].CLK = DDRCLK0; @@ -355,34 +434,11 @@ BEGIN BL_SRC_BUF3[127..64].ENA = BLITTER_DACK1 & BL_READ_SRC; BL_SRC_BUF3[63..0].ENA = BLITTER_DACK0 & BL_READ_SRC; BL_SRC_BUF3[] = BL_SRC_BUF2[]; - -- ZUORDNUNG --------- + -- ZUORDNUNG --------------------------------------------------- IF BL_SRC_X_INC15 THEN -- WENN NEGATIV -> REIHENFOLGE KEHREN - CASE BL_HOP[7..4] IS -- SPIEGELN? - WHEN H"0" => -- LINE WEISE - BL_BSIN[127..0] = BL_SRC_BUF3[]; - BL_BSIN[255..128] = BL_SRC_BUF2[]; - BL_BSIN[383..256] = BL_SRC_BUF1[]; - WHEN H"1" => --- BIT WEISE - BL_BSIN[0..127] = BL_SRC_BUF3[]; - BL_BSIN[128..255] = BL_SRC_BUF2[]; - BL_BSIN[256..383] = BL_SRC_BUF1[]; - WHEN H"2" => -- BYT WEISE - BL_BSIN[127..0] = (BL_SRC_BUF3[7..0],BL_SRC_BUF3[15..8],BL_SRC_BUF3[23..16],BL_SRC_BUF3[31..24],BL_SRC_BUF3[39..32],BL_SRC_BUF3[47..40],BL_SRC_BUF3[55..48],BL_SRC_BUF3[63..56],BL_SRC_BUF3[71..64],BL_SRC_BUF3[79..72],BL_SRC_BUF3[87..80],BL_SRC_BUF3[95..88],BL_SRC_BUF3[103..96],BL_SRC_BUF3[111..104],BL_SRC_BUF3[119..112],BL_SRC_BUF3[127..120]); - BL_BSIN[255..128] = (BL_SRC_BUF2[7..0],BL_SRC_BUF2[15..8],BL_SRC_BUF2[23..16],BL_SRC_BUF2[31..24],BL_SRC_BUF2[39..32],BL_SRC_BUF2[47..40],BL_SRC_BUF2[55..48],BL_SRC_BUF2[63..56],BL_SRC_BUF2[71..64],BL_SRC_BUF2[79..72],BL_SRC_BUF2[87..80],BL_SRC_BUF2[95..88],BL_SRC_BUF2[103..96],BL_SRC_BUF2[111..104],BL_SRC_BUF2[119..112],BL_SRC_BUF2[127..120]); - BL_BSIN[383..256] = (BL_SRC_BUF1[7..0],BL_SRC_BUF1[15..8],BL_SRC_BUF1[23..16],BL_SRC_BUF1[31..24],BL_SRC_BUF1[39..32],BL_SRC_BUF1[47..40],BL_SRC_BUF1[55..48],BL_SRC_BUF1[63..56],BL_SRC_BUF1[71..64],BL_SRC_BUF1[79..72],BL_SRC_BUF1[87..80],BL_SRC_BUF1[95..88],BL_SRC_BUF1[103..96],BL_SRC_BUF1[111..104],BL_SRC_BUF1[119..112],BL_SRC_BUF1[127..120]); - WHEN H"3" => -- WORD WEISE - BL_BSIN[127..0] = (BL_SRC_BUF3[15..0],BL_SRC_BUF3[31..16],BL_SRC_BUF3[47..32],BL_SRC_BUF3[63..48],BL_SRC_BUF3[79..64],BL_SRC_BUF3[95..80],BL_SRC_BUF3[111..96],BL_SRC_BUF3[127..112]); - BL_BSIN[255..128] = (BL_SRC_BUF2[15..0],BL_SRC_BUF2[31..16],BL_SRC_BUF2[47..32],BL_SRC_BUF2[63..48],BL_SRC_BUF2[79..64],BL_SRC_BUF2[95..80],BL_SRC_BUF2[111..96],BL_SRC_BUF2[127..112]); - BL_BSIN[383..256] = (BL_SRC_BUF1[15..0],BL_SRC_BUF1[31..16],BL_SRC_BUF1[47..32],BL_SRC_BUF1[63..48],BL_SRC_BUF1[79..64],BL_SRC_BUF1[95..80],BL_SRC_BUF1[111..96],BL_SRC_BUF1[127..112]); - WHEN H"4" => -- LONG WEISE - BL_BSIN[127..0] = (BL_SRC_BUF3[31..0],BL_SRC_BUF3[63..32],BL_SRC_BUF3[95..64],BL_SRC_BUF3[127..96]); - BL_BSIN[255..128] = (BL_SRC_BUF2[31..0],BL_SRC_BUF2[63..32],BL_SRC_BUF2[95..64],BL_SRC_BUF2[127..96]); - BL_BSIN[383..256] = (BL_SRC_BUF1[31..0],BL_SRC_BUF1[63..32],BL_SRC_BUF1[95..64],BL_SRC_BUF1[127..96]); - WHEN OTHERS => -- LINE WEISE - BL_BSIN[127..0] = BL_SRC_BUF3[]; - BL_BSIN[255..128] = BL_SRC_BUF2[]; - BL_BSIN[383..256] = BL_SRC_BUF1[]; - END CASE; + BL_BSIN[127..0] = BL_SRC_BUF3[]; + BL_BSIN[255..128] = BL_SRC_BUF2[]; + BL_BSIN[383..256] = BL_SRC_BUF1[]; ELSE -- SONST NORMAL BEI VORWÄRTS BL_BSIN[127..0] = BL_SRC_BUF1[]; BL_BSIN[255..128] = BL_SRC_BUF2[]; @@ -395,16 +451,16 @@ BEGIN BL_DST_BUFRD[] = (VDP_IN[],VDP_IN[]); -- barell shift ***************************************************************************** -- SOURCE SHIFT RIGHT = LPM_CSHIFT RIGTH ;SKEW SHIFT: IF FXRS==0 THEN RIGHT ELSE LEFT - DIST_RIGHT[] = (16 * ((0,DST_ADR_NODE[3..1]) - (0,SRC_ADR_NODE[3..1]))) + (!BL_SKEW7 & (0,BL_SKEW[3..0])) - (BL_SKEW7 & (0,BL_SKEW[3..0])); - IF DIST_RIGHT8 == 0 THEN - BL_BS_SKEW[] = DIST_RIGHT[7..0]; -- LPM SHIFT RIGHT - SHIFT_DIR = VCC; -- DIR = RIGHT - else - BL_BS_SKEW[] = !DIST_RIGHT[7..0] + 1; -- LPM SHIFT LEFT + DIST_RIGHT[] = (16 * ((0,DST_ADR32[3..1]) - (0,SRC_ADR32[3..1]))) + (!BL_SKEW7 & (0,BL_SKEW[3..0])) - (BL_SKEW7 & (0,BL_SKEW[3..0])); + IF DIST_RIGHT8 THEN + BS_SKEW[] = 0 - DIST_RIGHT[7..0]; -- LPM SHIFT LEFT SHIFT_DIR = GND; -- DIR = LEFT + else + BS_SKEW[] = DIST_RIGHT[7..0]; -- LPM SHIFT RIGHT + SHIFT_DIR = VCC; -- DIR = RIGHT end if; -- barell shifter: direction 0=links 1=rechts IN BEZUG AUF ausgabewert! - BL_BSOUT[] = lpm_clshift384(BL_BSIN[], SHIFT_DIR , BL_BS_SKEW[]); -- wir brauchen 128bit + BL_BSOUT[] = lpm_clshift384(BL_BSIN[], SHIFT_DIR , BS_SKEW[]); -- wir brauchen 128bit -- HOP *************************************************************************************** CASE BL_HOP[1..0] IS WHEN H"0" => @@ -423,47 +479,47 @@ BEGIN OP_OUT[] = H"0"; SRC_READ = B"0"; WHEN H"1" => - OP_OUT[] = HOP_OUT[] & BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] AND BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"2" => - OP_OUT[] = HOP_OUT[] & !BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] AND !BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"3" => OP_OUT[] = HOP_OUT[]; - SRC_READ = BL_HOP1 # BL_HOP0; + SRC_READ = BL_HOP1; WHEN H"4" => - OP_OUT[] = !HOP_OUT[] & BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] AND BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"5" => OP_OUT[] = BL_DST_BUFRD[]; SRC_READ = B"0"; WHEN H"6" => - OP_OUT[] = HOP_OUT[] $ BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] XOR BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"7" => - OP_OUT[] = HOP_OUT[] # BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] OR BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"8" => - OP_OUT[] = !HOP_OUT[] & !BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] AND !BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"9" => - OP_OUT[] = !HOP_OUT[] $ BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] XOR BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"A" => OP_OUT[] = !BL_DST_BUFRD[]; SRC_READ = B"0"; WHEN H"B" => - OP_OUT[] = HOP_OUT[] # !BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] OR !BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"C" => OP_OUT[] = !HOP_OUT[]; - SRC_READ = BL_HOP1 # BL_HOP0; + SRC_READ = BL_HOP1; WHEN H"D" => - OP_OUT[] = !HOP_OUT[] # BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] OR BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"E" => - OP_OUT[] = !HOP_OUT[] # !BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] OR !BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN OTHERS => -- 12345678901234567890123456789012 OP_OUT[] = H"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"; @@ -472,145 +528,167 @@ BEGIN ------------ ENDMASKEN SETZEN ****************************************************************************** ENDMASK1_SHIFT[3..0] = 0; ENDMASK2_SHIFT[3..0] = 0; + ENDMASKEND[] = DST_ADR32[] + (0,(BL_X_CNT[] - X_INDEX[]) - 1) * DST_XINC32[]; IF BL_DST_X_INC15 THEN ---------------------------- RÜCKWÄRTS X_INC NEGATIV - IF X_INDEX[]==0 THEN -- ENDE? - ENDMASK2_SHIFT[7..4] = 9 - (0,(DST_ADR_NODE[3..1])) + (8 & (DST_ADR_NODE[3..1]==0)); -- JA ENDMASK 3 SETZEN + IF X_INDEX[] == 0 THEN -- ENDE? + ENDMASK2_SHIFT[7..4] = 8 - (0,(DST_ADR32[3..1])); -- JA ENDMASK 3 SETZEN ELSE ENDMASK2_SHIFT[7..4] = 0; -- NEIN -> ENDMASK 3 AUF ENDMASK2 SETZEN END IF; - IF BL_X_CNT[]<=(X_CNT_NODE[] + 8) THEN -- SCHON ZEILENANFANG? - ENDMASKEND[] = X_INDEX[] - BL_X_CNT[] + (0,(DST_ADR_NODE[3..1])); - ENDMASK2_SHIFT[7..4] = 1 + (0,(ENDMASKEND[3..1])); -- JA: ENDMASK 3 SETZEN + IF (X_CNT16[] + DST_X_INC[]) >= BL_X_CNT[] THEN -- SCHON ZEILENENDE? + ENDMASK1_SHIFT[7..4] = 1 + (0,(ENDMASKEND[3..1])); -- JA -> ENDMASK 1 SETZEN ELSE ENDMASK1_SHIFT[7..4] = 0; -- NEIN -> ENDMASK 3 AUF ENDMASK2 SETZEN END IF; - ELSE ------------------------------------------- VORWÄRTS X_INC POSITIV - IF X_INDEX[]==0 THEN -- ANFANG? - ENDMASK1_SHIFT[7..4] = 1 + (0,(DST_ADR_NODE[3..1])); -- JA -> ENDMASK 1 SETZEN + ELSE ------------------------------------------- VORWÄRTS X_INC POSITIV (immer bei memcopy) + IF X_INDEX[] == 0 THEN -- ANFANG? + ENDMASK1_SHIFT[7..4] = 1 + (0,(DST_ADR32[3..1])); -- JA -> ENDMASK 1 SETZEN ELSE ENDMASK1_SHIFT[7..4] = 0; -- NEIN->ENDMASK1 AUF ENDMASK2 SETZEN END IF; - IF BL_X_CNT[]<=(X_CNT_NODE[] + 8) THEN -- SCHON ZEILENENDE? - ENDMASKEND[] = X_CNT_NODE[] + 8 - BL_X_CNT[]; - ENDMASK2_SHIFT[7..4] = 1 + ENDMASKEND[3..0]; -- JA: ENDMASK 3 SETZEN + IF (X_CNT16[] + DST_X_INC[]) >= BL_X_CNT[] THEN -- SCHON ZEILENENDE? + ENDMASK2_SHIFT[7..4] = 8 - (0,(ENDMASKEND[3..1])); -- JA: ENDMASK 3 SETZEN ELSE ENDMASK2_SHIFT[7..4] = 0; -- NOCH NICHT AKTIV->ENDMASK 3 AUF ENDMASK2 SETZEN END IF; END IF; -- ENDMASKEN -- barell shifter 144 bit, direction 0 = links 1 = rechts --- 1234567890123456789012345678 - ENDMASK12_IN[] = (BL_ENDMASK1[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + BL_ENDMASK0[] = 0; + BL_ENDMASKF[] = -1; + BL_ENDMASKL[] = BL_ENDMASK1[] & !BL_DST_X_INC15 # BL_ENDMASK3[] & BL_DST_X_INC15; + BL_ENDMASKR[] = BL_ENDMASK3[] & !BL_DST_X_INC15 # BL_ENDMASK1[] & BL_DST_X_INC15; + CASE DST_X_INC[] IS + WHEN 8 => -- INC 2 + ENDMASK12_IN[] = (BL_ENDMASKL[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + ENDMASKM_IN[] = (BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[]); + ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASKR[]); + WHEN 4 => -- INC 4 + ENDMASK12_IN[] = (BL_ENDMASKL[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + ENDMASKM_IN[] = (BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASKF[],BL_ENDMASK0[]); + ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASKR[]); + WHEN 2 => -- INC 8 + ENDMASK12_IN[] = (BL_ENDMASKL[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + ENDMASKM_IN[] = (BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[]); + ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASKR[]); + WHEN OTHERS => + ENDMASK12_IN[] = (BL_ENDMASKL[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + ENDMASKM_IN[] = (BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[]); + ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASKR[]); + END CASE; ENDMASK12_OUT[] = lpm_clshift144(ENDMASK12_IN[],1,ENDMASK1_SHIFT[]); -- IMMER rechts SCHIEBEN - ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK3[]); ENDMASK23_OUT[] = lpm_clshift144(ENDMASK23_IN[],0,ENDMASK2_SHIFT[]); -- IMMER LINKS SCHIEBEN - ENDMASK123[] = ENDMASK12_OUT[127..0] & ENDMASK23_OUT[143..16]; + ROR_CNT[] = 16 * (0,DST_ADR32[3..1]); + ENDMASKM_OUT[] = lpm_ror128(ENDMASKM_IN[],ROR_CNT[6..0]); + ENDMASK123[].CLK = DDRCLK0; + ENDMASK123[] = ENDMASK12_OUT[127..0] & ENDMASK23_OUT[143..16] & ENDMASKM_OUT[]; BLITTER_DOUT[] = ((ENDMASK123[] & OP_OUT[]) # (!ENDMASK123[] & BL_DST_BUFRD[])); - NOT_DST_READ = ((BL_OP[3..0]==H"0") # (BL_OP[3..0]==H"3") # (BL_OP[3..0]==H"C") # (BL_OP[3..0]==H"F")) & (ENDMASK123[]==H"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); + NOT_DST_READ = ((BL_OP[3..0] == H"0") # (BL_OP[3..0] == H"3") # (BL_OP[3..0] == H"C") # (BL_OP[3..0] == H"F")) & (ENDMASK123[] == H"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); -- STATE MACHINE **********************************************************************************---------------------------12345678901234567890123456789012 BLITTER_RUN = BLITTER_ON; -- BLITTER IST DA! BLITTER_ADR[3..0] = H"0"; -- IMMER LINE - SRC_DDR_ADR[] = (SRC_ADR_NODE[] - (0,(16 & BL_SRC_X_INC15))); -- WENN RÜCKWÄRTS NEXT ADRESS SRC - DST_DDR_ADR[] = (DST_ADR_NODE[] - (0,(16 & BL_DST_X_INC15))); -- WENN RÜCKWÄRTS NEXT ADRESS DST - BLITTER_REQ.CLK = DDRCLK0; - BLITTER_SIG = BLITTER_REQ & BLITTER_DACK[]==H"0"; + BLITTER_SIG.CLK = DDRCLK0; + BLITTER_SIG = BLITTER_REQ & !BLITTER_DACK0 & !BLITTER_DACK1; -- BLITTER MAIN STATE MACHINE ----------------------------------------------- BL_SM.CLK = DDRCLK0; + SRC_OLD[].CLK = DDRCLK0; + SRC_OLD[] = SRC_ADR32[31..4]; + SDXINC.CLK = DDRCLK0; CASE BL_SM IS WHEN START => ------------------------- START - IF BLITTER_ON & BL_LN7 & ((BL_X_CNT[] - X_CNT_NODE[])>0) & ((BL_Y_CNT[] - Y_INDEX[]) > 0) THEN - BL_SM = NEW_LINE; + BL_NOTRUN = VCC; -- BLITTER NOT RUN + IF BLITTER_ON & BL_START & (BL_X_CNT[] > X_CNT16[]) & (BL_Y_CNT[] > Y_INDEX[]) THEN -- STARTEN? + BL_SM = NEW_LINE; -- JA START ELSE - BL_SM = START; + BL_SM = START; -- NICHT STARTEN END IF; WHEN NEW_LINE => ----------------------- NEU LINIE - X_INDEX_CLR = VCC; -- LÖSCHEN - BL_SM = RDSRC0; - WHEN RDSRC0 => ------------------------ READ SRC1 - IF SRC_READ THEN - BLITTER_ADR[31..4] = SRC_DDR_ADR[31..4] - 1; - BLITTER_REQ = VCC; - BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 - IF BLITTER_DACK0 THEN - BL_SM = RDSRC2; - ELSE - BL_SM = RDSRC1; - END IF; + X_INDEX_CLR_DIR = VCC; -- JA -> X INDEX LÖSCHEN FÜR START LINE + IF SRC_READ THEN -- SOURCE READ NÖTIG? + BL_SM = RDSRC3; -- JA ELSE - BL_SM = RDDST; + BL_SM = RDDST; -- NEIN -> DIREKT ZU READ DEST END IF; - WHEN RDSRC1 => ------------------------ READ SRC1 - IF SRC_READ THEN - BLITTER_ADR[31..4] = SRC_DDR_ADR[31..4]; - BLITTER_REQ = VCC; - BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 - IF BLITTER_DACK0 THEN - SIINC = VCC; -- INC SRC ADR - BL_SM = RDSRC2; - ELSE - BL_SM = RDSRC1; - END IF; - ELSE - BL_SM = RDDST; + WHEN RDSRC3 => ------------------------ READ SRC3 + BLITTER_ADR[31..4] = SRC_ADR32[31..4] - 1 + (2 & BL_SRC_X_INC15); + BLITTER_REQ = VCC; + BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 + IF BLITTER_DACK0 THEN + BL_SM = RDSRC2; + ELSE + BL_SM = RDSRC3; END IF; - WHEN RDSRC2 => ------------------------ READ SRC2 - IF SRC_READ THEN - BLITTER_ADR[31..4] = SRC_DDR_ADR[31..4]; - BLITTER_REQ = VCC; - BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 - IF BLITTER_DACK0 THEN - SIINC = VCC; -- INC SRC ADR - BL_SM = RDDST; - ELSE - BL_SM = RDSRC2; - END IF; - ELSE - BL_SM = RDDST; + WHEN RDSRC2 => ------------------------- READ SRC2 + BLITTER_ADR[31..4] = SRC_ADR32[31..4]; + BLITTER_REQ = VCC; + BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 + IF BLITTER_DACK0 THEN + BL_SM = RDSRC1; + ELSE + BL_SM = RDSRC2; END IF; - WHEN RDDST => ----------------------- READ DEST + WHEN RDSRC1 => ------------------------ READ SRC1 + BLITTER_ADR[31..4] = SRC_ADR32[31..4] + 1 - (2 & BL_SRC_X_INC15); + BLITTER_REQ = VCC; + BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 + SRC_OLD[].ENA = VCC; + IF BLITTER_DACK0 THEN + BL_SM = RDDST; + ELSE + BL_SM = RDSRC1; + END IF; + WHEN RDDST => ------------------------ READ DEST + BLITTER_ADR[31..4] = DST_ADR32[31..4]; IF NOT_DST_READ THEN - BL_SM = WRDSTW1; + BL_SM = WRDSTW; ELSE - BLITTER_ADR[31..4] = DST_DDR_ADR[31..4]; BLITTER_REQ = VCC; BL_READ_DST = VCC; IF BLITTER_DACK0 THEN - BL_SM = WRDSTW1; + BL_SM = WRDSTW; ELSE BL_SM = RDDST; END IF; END IF; - WHEN WRDSTW1 => ------------------- WRITE DEST WAIT AUF ERGEBNIS + WHEN WRDSTW => ------------------------ KURZ WARTEN AUF ERGEBNIS + BLITTER_ADR[31..4] = DST_ADR32[31..4]; BL_SM = WRDST; - WHEN WRDST => ------------------- WRITE DEST - BLITTER_ADR[31..4] = DST_DDR_ADR[31..4]; + WHEN WRDST => ------------------------- WRITE DEST + BLITTER_ADR[31..4] = DST_ADR32[31..4]; BLITTER_WR = VCC; BLITTER_REQ = VCC; + SDXINC = BLITTER_DACK2; -- INCCREMENT SRC, DST, X_INDEX IF BLITTER_DACK0 THEN - XIINC = VCC; -- INC X_INDEX - DIINC = VCC; -- INC DEST ADR BL_SM = TESTZEILENENDE; ELSE BL_SM = WRDST; END IF; WHEN TESTZEILENENDE => ----------------- ZEILENDE? - IF X_CNT_NODE[] >= BL_X_CNT[] THEN -- SCHON ZEILENENDE? - YIINC = VCC; -- JA -> INC Y-INDEX UND ZEILE SRC UND DEST - BL_SM = TESTFERTIG; -- -> + IF X_CNT16[] >= BL_X_CNT[] THEN -- SCHON ZEILENENDE? + YIINC = VCC; -- JA -> INC Y-INDEX + BL_SM = TESTFERTIG; -- => TEST OB FERTIG ELSE - BL_SM = RDSRC2; -- NEIN NEXT + IF !SRC_READ THEN -- KEIN SOURCE READ? + BL_SM = RDDST; -- JA => LESEN UNNÖTIG -> + ELSE + IF SRC_ADR32[31..4] == SRC_OLD[] THEN -- ADRESSE IMMER NOCH IN DER LINE? + BL_SM = RDDST; -- DATEN SIND GÜLTIG -> READ DEST + ELSE + BL_SM = RDSRC1; -- SONST NEXT SRC + END IF; + END IF; END IF; WHEN TESTFERTIG => --------------------- TEST AUF FERTIG - ZIINC = VCC; -- INC ADRESSEN ZEILENUMBRUCH - IF Y_INDEX[] >= BL_Y_CNT[] THEN -- LETZTE ZEILE? - BL_SM = FERTIG; -- JA --> + ZAINC = VCC; -- ZEILENENDE: INC SRC UND DST ADRESSEN + IF Y_INDEX[] >= BL_Y_CNT[] THEN -- LETZTE ZEILE? + BL_SM = FERTIG; -- JA => FERTIG ELSE - ZYINC = VCC; -- YINC ADDIEREN ZEILENENDE - BL_SM = NEW_LINE; -- NEIN NEXT -> + BL_SM = NEW_LINE; -- NEIN => NEXT LINE END IF; WHEN FERTIG => -------------------------- FERTIG - BLITTER_INT = VCC; -- BLITTER INTERRUPT - LN7CLR = VCC; -- BUSY BIT LÖSCHEN - IF BL_LN7==0 THEN -- WARTEN BIS GELÖSCHT (GEHT NUR MIT 33MHz) + BL_NOTRUN = VCC; -- BLITTER NOT RUN + BLITTER_INT = VCC; -- BLITTER INTERRUPT + LN7_CLR = VCC; -- BUSY BIT LÖSCHEN + IF (BL_LN7 == 0) & (BL_START == 0) THEN -- WARTEN BIS GELÖSCHT (SYNC MIT 33MHz) BL_SM = START; ELSE BL_SM = FERTIG; diff --git a/FPGA_by_Fredi/blitter.tdf.bak b/FPGA_by_Fredi/blitter.tdf.bak index 8669470..3da6541 100644 --- a/FPGA_by_Fredi/blitter.tdf.bak +++ b/FPGA_by_Fredi/blitter.tdf.bak @@ -23,6 +23,8 @@ INCLUDE "lpm_bustri_WORD.inc"; INCLUDE "VIDEO/BLITTER/lpm_clshift384.INC"; INCLUDE "VIDEO/BLITTER/altsyncram0.INC"; INCLUDE "VIDEO/BLITTER/lpm_clshift144.inc"; +INCLUDE "VIDEO/BLITTER/lpm_ror128.inc"; + --CONSTANT BL_SKEW_LF = 255; @@ -71,66 +73,70 @@ SUBDESIGN BLITTER VARIABLE BYT :NODE; - LONGLINE :NODE; - W_ADR[18..0] :NODE; FB_16B[1..0] :NODE; - W_A1 :DFFE; BLITTER_CS :NODE; BL_HRAM_CS :NODE; + DP_RAM_CS :NODE; BL_HRAM_BE[1..0] :NODE; BL_HRAM_OUT[15..0] :NODE; BL_DPRAM_OUT[15..0] :NODE; BL_SRC_X_INC_CS :NODE; BL_SRC_X_INC[15..0] :DFFE; - SRC_XINC_NODE[31..0] :NODE; + SRC_ADR_INC[31..0] :NODE; + SRC_XINC32[31..0] :NODE; BL_SRC_Y_INC_CS :NODE; BL_SRC_Y_INC[15..0] :DFFE; - SRC_YINC_NODE[31..0] :NODE; + SRC_YINC32[31..0] :NODE; BL_ENDMASK1_CS :NODE; BL_ENDMASK1[15..0] :DFFE; BL_ENDMASK2_CS :NODE; BL_ENDMASK2[15..0] :DFFE; BL_ENDMASK3_CS :NODE; BL_ENDMASK3[15..0] :DFFE; + BL_ENDMASK0[15..0] :NODE; + BL_ENDMASKF[15..0] :NODE; + BL_ENDMASKL[15..0] :NODE; + BL_ENDMASKR[15..0] :NODE; BL_SRC_ADRH_CS :NODE; BL_SRC_ADRL_CS :NODE; BL_SRC_ADR[31..0] :DFFE; + SRC_OLD[27..0] :DFFE; SRC_IADRH_CS :NODE; SRC_IADRL_CS :NODE; SRC_IADR[31..0] :DFF; - SRC_IADR_CLR :NODE; - SIINC :NODE; - SRC_ADR_NODE[31..0] :NODE; + SRC_IADR_CLR :DFF; + SRC_ADR32[31..0] :NODE; BL_DST_X_INC_CS :NODE; BL_DST_X_INC[15..0] :DFFE; - DST_XINC_NODE[31..0] :NODE; + DST_ADR_INC[31..0] :NODE; + DST_XINC32[31..0] :NODE; BL_DST_Y_INC_CS :NODE; BL_DST_Y_INC[15..0] :DFFE; - DST_YINC_NODE[31..0] :NODE; + DST_YINC32[31..0] :NODE; BL_DST_ADRH_CS :NODE; BL_DST_ADRL_CS :NODE; BL_DST_ADR[31..0] :DFFE; DST_IADRH_CS :NODE; DST_IADRL_CS :NODE; DST_IADR[31..0] :DFF; - DST_IADR_CLR :NODE; - DST_ADR_NODE[31..0] :NODE; - DIINC :NODE; + DST_IADR_CLR :DFF; + DST_ADR32[31..0] :NODE; BL_X_CNT_CS :NODE; BL_X_CNT[15..0] :DFFE; - X_CNT_NODE[15..0] :NODE; + X_CNT16[15..0] :NODE; BL_Y_CNT_CS :NODE; BL_Y_CNT[15..0] :DFFE; BL_HOP_CS :NODE; BL_HOP[7..0] :DFFE; BL_OP[7..0] :DFFE; BL_LN_CS :NODE; - LN7CLR :NODE; + BL_LN_WR :NODE; + LN7_CLR :NODE; BL_LN[7..0] :DFFE; BL_SKEW[7..0] :DFFE; -- barell shifter DIST_RIGHT[8..0] :NODE; - BL_BS_SKEW[7..0] :NODE; + BS_SKEW[7..0] :NODE; BL_BSIN[383..0] :NODE; BL_BSOUT[383..0] :NODE; SHIFT_DIR :NODE; @@ -145,15 +151,17 @@ VARIABLE WREN_B :NODE; -- WR ENA HALFTONE RAM X_INDEX_CS :NODE; X_INDEX[15..0] :DFF; -- LAUFZEIGER X COUNT - X_INDEX_CLR :NODE; + X_INDEX_CLR :DFF; -- X INDEX LÖSCHEN CPU WRITE + X_INDEX_CLR_DIR :NODE; -- X INDEX LÖSCHEN STATE MACHINE + DST_X_INC[15..0] :NODE; -- ANZAHL WORTE PRO DURCHLAUF + X_CNT_T[15..0] :NODE; Y_INDEX_CS :NODE; Y_INDEX[15..0] :DFF; -- LAUFZEIGER Y COUNT - Y_INDEX_CLR :NODE; + Y_INDEX_CLR :DFF; LINE_NR[3..0] :NODE; - XIINC :NODE; -- INC INDEX SPALTE + SDXINC :DFF; -- INC INDEX SPALTE YIINC :NODE; -- INC INDEX ZEILE - ZIINC :NODE; -- INC ADRESSEN ZEILENUMBRUCH - ZYINC :NODE; -- KORREKTUR ADRESSEN WENN FERTIG + ZAINC :NODE; -- INC ADRESSEN ZEILENUMBRUCH HOP_OUT[127..0] :NODE; OP_OUT[127..0] :NODE; ENDMASK1_SHIFT[7..0] :NODE; @@ -162,24 +170,22 @@ VARIABLE ENDMASK12_OUT[143..0] :NODE; ENDMASK23_IN[143..0] :NODE; ENDMASK23_OUT[143..0] :NODE; - ENDMASK123[127..0] :NODE; - ENDMASKEND[15..0] :NODE; - SRC_DDR_ADR[31..0] :NODE; - DST_DDR_ADR[31..0] :NODE; - BLITTER_REQ :DFF; + ENDMASKM_IN[127..0] :NODE; + ENDMASKM_OUT[127..0] :NODE; + ROR_CNT[8..0] :NODE; + ENDMASK123[127..0] :DFF; + ENDMASKEND[31..0] :NODE; + BLITTER_SIG :DFF; + BLITTER_REQ :NODE; + BL_START :DFF; + BL_NOTRUN :NODE; -- MAIN STATE MACHINE - BL_SM :MACHINE WITH STATES(START,NEW_LINE,NEW_LINEW,RDSRC0,RDSRC1,RDSRC2,RDDST,WRDSTW1,WRDSTW2,WRDST,TESTZEILENENDE,TESTFERTIG,FERTIG); + BL_SM :MACHINE WITH STATES(START,NEW_LINE,RDSRC3,RDSRC2,RDSRC1,RDDST,WRDSTW,WRDST,TESTZEILENENDE,TESTFERTIG,FERTIG); BEGIN -- BYT UND WORD SELECT 16 BIT BYT = !FB_SIZE1 & FB_SIZE0; - LONGLINE = !FB_SIZE1 & !FB_SIZE0 # FB_SIZE1 & FB_SIZE0; -- LONG OR LINE - W_A1.CLK = MAIN_CLK; - W_A1.ENA = FB_ALE # BLITTER_TA & LONGLINE; - W_A1 = FB_ADR[1] & FB_ALE # BLITTER_TA & LONGLINE; -- A1 HOCHZÄHLEN BEI LONG UND LINE WEGEN BURST - W_ADR[18..1] = FB_ADR[19..2]; - W_ADR0 = W_A1; FB_16B0 = FB_ADR[0]==0; -- wenn ADR==0 FB_16B1 = FB_ADR[0]==1 # !BYT; -- wenn ADR==1 or NOT BYT -- BLITTER CS @@ -191,156 +197,229 @@ BEGIN BL_HRAM_BE1 = BL_HRAM_CS & FB_16B0; BL_HRAM_BE0 = BL_HRAM_CS & FB_16B1; WREN_B = B"0"; - LINE_NR[] = ((Y_INDEX[3..0] & !BL_DST_Y_INC15) # (!Y_INDEX[3..0] & BL_DST_Y_INC15)); - (BL_DPRAM_OUT[],BL_HRAM_OUT[]) = altsyncram0(W_ADR[3..0],LINE_NR[],BL_HRAM_BE[],MAIN_CLK,DDRCLK0,FB_AD[31..16],FB_AD[31..16],BL_HRAM_CS & !nFB_WR,WREN_B); + LINE_NR[] = BL_LN[3..0] + ((Y_INDEX[3..0] & !BL_DST_X_INC15) - (Y_INDEX[3..0] & BL_DST_X_INC15)); + (BL_DPRAM_OUT[],BL_HRAM_OUT[]) = altsyncram0(FB_ADR[4..1],LINE_NR[],BL_HRAM_BE[],MAIN_CLK,DDRCLK0,FB_AD[31..16],FB_AD[31..16],BL_HRAM_CS & !nFB_WR,WREN_B); + DP_RAM_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C528"; -- $F8A50.w -- SRC X INC BL_SRC_X_INC[].CLK = MAIN_CLK; - BL_SRC_X_INC[] = FB_AD[31..16]; - BL_SRC_X_INC_CS = !nFB_CS1 & W_ADR[]==H"7C510"; -- $F8A20.w + BL_SRC_X_INC[15..1] = FB_AD[31..17]; + BL_SRC_X_INC0 = GND; + BL_SRC_X_INC_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C510"); -- $F8A20.w BL_SRC_X_INC[15..8].ENA = BL_SRC_X_INC_CS & !nFB_WR & FB_16B0; BL_SRC_X_INC[7..0].ENA = BL_SRC_X_INC_CS & !nFB_WR & FB_16B1; - SRC_XINC_NODE[] = (H"FFFF0000" & BL_SRC_X_INC15) # (H"0000",BL_SRC_X_INC[]); -- ERWEITERN AUF 32 BIT + SRC_XINC32[15..0] = BL_SRC_X_INC[]; -- ERWEITERN AUF 32 BIT + SRC_XINC32[31..16] = H"FFFF" & BL_SRC_X_INC15; -- ERWEITERN AUF 32 BIT -- SRC Y INC BL_SRC_Y_INC[].CLK = MAIN_CLK; - BL_SRC_Y_INC[] = FB_AD[31..16]; - BL_SRC_Y_INC_CS = !nFB_CS1 & W_ADR[]==H"7C511"; -- $F8A22.w + BL_SRC_Y_INC[15..1] = FB_AD[31..17]; + BL_SRC_Y_INC0 = GND; + BL_SRC_Y_INC_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C511"); -- $F8A22.w BL_SRC_Y_INC[15..8].ENA = BL_SRC_Y_INC_CS & !nFB_WR & FB_16B0; BL_SRC_Y_INC[7..0].ENA = BL_SRC_Y_INC_CS & !nFB_WR & FB_16B1; - SRC_YINC_NODE[] = (H"FFFF0000" & BL_SRC_Y_INC15) # (H"0000",BL_SRC_Y_INC[]); -- ERWEITERN AUF 32 BIT + SRC_YINC32[15..0] = BL_SRC_Y_INC[]; -- ERWEITERN AUF 32 BIT + SRC_YINC32[31..16] = H"FFFF" & BL_SRC_Y_INC15; -- ERWEITERN AUF 32 BIT -- SRC ADR HIGH BL_SRC_ADR[].CLK = MAIN_CLK; BL_SRC_ADR[31..16] = FB_AD[31..16]; - BL_SRC_ADRH_CS = !nFB_CS1 & W_ADR[]==H"7C512"; -- $F8A24.w + BL_SRC_ADRH_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C512"); -- $F8A24.w BL_SRC_ADR[31..24].ENA = BL_SRC_ADRH_CS & !nFB_WR & FB_16B0; BL_SRC_ADR[23..16].ENA = BL_SRC_ADRH_CS & !nFB_WR & FB_16B1; -- SRC ADR LOW BL_SRC_ADR[].CLK = MAIN_CLK; - BL_SRC_ADR[15..0] = FB_AD[31..16]; - BL_SRC_ADRL_CS = !nFB_CS1 & W_ADR[]==H"7C513"; -- $F8A26.w + BL_SRC_ADR[15..1] = FB_AD[31..17]; + BL_SRC_ADR0 = GND; + BL_SRC_ADRL_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C513"); -- $F8A26.w BL_SRC_ADR[15..8].ENA = BL_SRC_ADRL_CS & !nFB_WR & FB_16B0; BL_SRC_ADR[7..0].ENA = BL_SRC_ADRL_CS & !nFB_WR & FB_16B1; SRC_IADR[].CLK = DDRCLK0; - SRC_IADRH_CS = !nFB_CS1 & W_ADR[]==H"7C520"; -- $F8A40.w - SRC_IADRL_CS = !nFB_CS1 & W_ADR[]==H"7C521"; -- $F8A42.w + SRC_IADRH_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C520"); -- $F8A40.w + SRC_IADRL_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C521"); -- $F8A42.w + SRC_IADR_CLR.CLK = MAIN_CLK; SRC_IADR_CLR = (BL_SRC_ADRL_CS # BL_SRC_ADRH_CS) & !nFB_WR; -- LÖSCHEN BEI WRITE - SRC_IADR[] = (SRC_IADR[] + (((8 * SRC_XINC_NODE[]) & SIINC) + (SRC_YINC_NODE[] & ZYINC) + ((((0,BL_X_CNT[]) - (0,X_INDEX[]) - 8) * SRC_XINC_NODE[]) & ZIINC)) & SRC_READ) & !SRC_IADR_CLR; - SRC_ADR_NODE[] = BL_SRC_ADR[] + SRC_IADR[]; -- ZUGRIFFSADRESSE THEORETISCH + SRC_IADR[] = (((SRC_IADR[] + (SRC_ADR_INC[] & SDXINC)) & !ZAINC) + ((((((0,BL_X_CNT[]) - 1) * SRC_XINC32[]) + SRC_YINC32[]) * (0,Y_INDEX[])) & ZAINC)) & SRC_READ & !SRC_IADR_CLR; + SRC_ADR32[] = BL_SRC_ADR[] + SRC_IADR[]; -- ZUGRIFFSADRESSE THEORETISCH -- ENDMASK 1 BL_ENDMASK1[].CLK = MAIN_CLK; BL_ENDMASK1[] = FB_AD[31..16]; - BL_ENDMASK1_CS = !nFB_CS1 & W_ADR[]==H"7C514"; -- $F8A28.w + BL_ENDMASK1_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C514"); -- $F8A28.w BL_ENDMASK1[15..8].ENA = BL_ENDMASK1_CS & !nFB_WR & FB_16B0; BL_ENDMASK1[7..0].ENA = BL_ENDMASK1_CS & !nFB_WR & FB_16B1; -- ENDMASK 2 BL_ENDMASK2[].CLK = MAIN_CLK; BL_ENDMASK2[] = FB_AD[31..16]; - BL_ENDMASK2_CS = !nFB_CS1 & W_ADR[]==H"7C515"; -- $F8A2A.w + BL_ENDMASK2_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C515"); -- $F8A2A.w BL_ENDMASK2[15..8].ENA = BL_ENDMASK2_CS & !nFB_WR & FB_16B0; BL_ENDMASK2[7..0].ENA = BL_ENDMASK2_CS & !nFB_WR & FB_16B1; -- ENDMASK 3 BL_ENDMASK3[].CLK = MAIN_CLK; BL_ENDMASK3[] = FB_AD[31..16]; - BL_ENDMASK3_CS = !nFB_CS1 & W_ADR[]==H"7C516"; -- $F8A2C.w + BL_ENDMASK3_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C516"); -- $F8A2C.w BL_ENDMASK3[15..8].ENA = BL_ENDMASK3_CS & !nFB_WR & FB_16B0; BL_ENDMASK3[7..0].ENA = BL_ENDMASK3_CS & !nFB_WR & FB_16B1; -- DST X INC BL_DST_X_INC[].CLK = MAIN_CLK; - BL_DST_X_INC[] = FB_AD[31..16]; - BL_DST_X_INC_CS = !nFB_CS1 & W_ADR[]==H"7C517"; -- $F8A2E.w + BL_DST_X_INC[15..1] = FB_AD[31..17]; + BL_DST_X_INC0 = GND; + BL_DST_X_INC_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C517"); -- $F8A2E.w BL_DST_X_INC[15..8].ENA = BL_DST_X_INC_CS & !nFB_WR & FB_16B0; BL_DST_X_INC[7..0].ENA = BL_DST_X_INC_CS & !nFB_WR & FB_16B1; - DST_XINC_NODE[] = (H"FFFF0000" & BL_DST_X_INC15) # (H"0000",BL_DST_X_INC[]); -- ERWEITERN AUF 32 BIT + DST_XINC32[15..0] = BL_DST_X_INC[]; -- ERWEITERN AUF 32 BIT + DST_XINC32[31..16] = H"FFFF" & BL_DST_X_INC15; -- ERWEITERN AUF 32 BIT -- DST Y INC BL_DST_Y_INC[].CLK = MAIN_CLK; - BL_DST_Y_INC[] = FB_AD[31..16]; - BL_DST_Y_INC_CS = !nFB_CS1 & W_ADR[]==H"7C518"; -- $F8A30.w + BL_DST_Y_INC[15..1] = FB_AD[31..17]; + BL_DST_Y_INC0 = GND; + BL_DST_Y_INC_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C518"); -- $F8A30.w BL_DST_Y_INC[15..8].ENA = BL_DST_Y_INC_CS & !nFB_WR & FB_16B0; BL_DST_Y_INC[7..0].ENA = BL_DST_Y_INC_CS & !nFB_WR & FB_16B1; - DST_YINC_NODE[] = (H"FFFF0000" & BL_DST_Y_INC15) # (H"0000",BL_DST_Y_INC[]); -- ERWEITERN AUF 32 BIT + DST_YINC32[15..0] = BL_DST_Y_INC[]; -- ERWEITERN AUF 32 BIT + DST_YINC32[31..16] = H"FFFF" & BL_DST_Y_INC15; -- ERWEITERN AUF 32 BIT -- DST ADR HIGH BL_DST_ADR[].CLK = MAIN_CLK; BL_DST_ADR[31..16] = FB_AD[31..16]; - BL_DST_ADRH_CS = !nFB_CS1 & W_ADR[]==H"7C519"; -- $F8A32.w + BL_DST_ADRH_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C519"); -- $F8A32.w BL_DST_ADR[31..24].ENA = BL_DST_ADRH_CS & !nFB_WR & FB_16B0; BL_DST_ADR[23..16].ENA = BL_DST_ADRH_CS & !nFB_WR & FB_16B1; -- DST ADR LOW BL_DST_ADR[].CLK = MAIN_CLK; - BL_DST_ADR[15..0] = FB_AD[31..16]; - BL_DST_ADRL_CS = !nFB_CS1 & W_ADR[]==H"7C51A"; -- $F8A34.w + BL_DST_ADR[15..1] = FB_AD[31..17]; + BL_DST_ADR0 = GND; + BL_DST_ADRL_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C51A"); -- $F8A34.w BL_DST_ADR[15..8].ENA = BL_DST_ADRL_CS & !nFB_WR & FB_16B0; BL_DST_ADR[7..0].ENA = BL_DST_ADRL_CS & !nFB_WR & FB_16B1; DST_IADR[].CLK = DDRCLK0; - DST_IADRH_CS = !nFB_CS1 & W_ADR[]==H"7C522"; -- $F8A44.w - DST_IADRL_CS = !nFB_CS1 & W_ADR[]==H"7C523"; -- $F8A46.w - DST_IADR_CLR = (BL_DST_ADRL_CS # BL_DST_ADRH_CS) & !nFB_WR; -- LÖSCHEN BEI WRITE - DST_IADR[] = (DST_IADR[] + ((8 * DST_XINC_NODE[]) & DIINC) + (DST_YINC_NODE[] & ZYINC) + ((((0,BL_X_CNT[]) - (0,X_INDEX[])) * DST_XINC_NODE[]) & ZIINC)) & !DST_IADR_CLR; - DST_ADR_NODE[] = BL_DST_ADR[] + DST_IADR[]; -- ZUGRIFFSADRESSE THEORETISCH + DST_IADRH_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C522"); -- $F8A44.w + DST_IADRL_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C523"); -- $F8A46.w + DST_IADR_CLR.CLK = MAIN_CLK; + DST_IADR_CLR = (BL_DST_ADRL_CS # BL_DST_ADRH_CS) & !nFB_WR; -- LÖSCHEN BEI WRITE + DST_IADR[] = (((DST_IADR[] + (DST_ADR_INC[] & SDXINC)) & !ZAINC) + ((((((0,BL_X_CNT[]) - 1) * DST_XINC32[]) + DST_YINC32[]) * (0,Y_INDEX[])) & ZAINC)) & !DST_IADR_CLR; + DST_ADR32[] = BL_DST_ADR[] + DST_IADR[]; -- ZUGRIFFSADRESSE THEORETISCH -- X COUNT BL_X_CNT[].CLK = MAIN_CLK; BL_X_CNT[] = FB_AD[31..16]; - BL_X_CNT_CS = !nFB_CS1 & W_ADR[]==H"7C51B"; -- $F8A36.w + BL_X_CNT_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C51B"); -- $F8A36.w BL_X_CNT[15..8].ENA = BL_X_CNT_CS & !nFB_WR & FB_16B0; BL_X_CNT[7..0].ENA = BL_X_CNT_CS & !nFB_WR & FB_16B1; X_INDEX[].CLK = DDRCLK0; - X_INDEX_CS = !nFB_CS1 & W_ADR[]==H"7C524"; -- $F8A48.w - X_INDEX_CLR = BL_X_CNT_CS & !nFB_WR; -- LÖSCHEN BEI WRITE - X_INDEX[] = (X_INDEX[] + (8 & XIINC) + ((BL_X_CNT[] - X_INDEX[]) & ZIINC)) & !X_INDEX_CLR; - X_CNT_NODE[] = X_INDEX[] - ((0,DST_ADR_NODE[3..1]) & (X_INDEX[]!=0));-- EFFEKTIV GELESENE + X_INDEX_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C524"); -- $F8A48.w + X_INDEX_CLR.CLK = MAIN_CLK; + X_INDEX_CLR = BL_X_CNT_CS & !nFB_WR; -- LÖSCHEN BEI WRITE + X_INDEX[] = ((X_INDEX[] & !ZAINC) + (DST_X_INC[] & SDXINC) + (BL_X_CNT[] & ZAINC)) & !X_INDEX_CLR & !X_INDEX_CLR_DIR; + X_CNT16[] = X_INDEX[] - (X_CNT_T[] & (X_INDEX[]!=0)); -- EFFEKTIV geschrieben +-- SCHRITTWEITEN BEI PALLETTENMOD + IF (BL_SRC_X_INC[] != BL_DST_X_INC[]) # (BL_X_CNT[] < 8) THEN + DST_X_INC[] = 1; + X_CNT_T[] = 0; + SRC_ADR_INC[] = SRC_XINC32[]; -- SRC X INC + DST_ADR_INC[] = DST_XINC32[]; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"0002" THEN + DST_X_INC[] = 8; + X_CNT_T[] = (0,DST_ADR32[3..1]); + SRC_ADR_INC[] = 16; -- SRC X INC + DST_ADR_INC[] = 16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"FFFE" THEN + DST_X_INC[] = 8; + X_CNT_T[] = 7 - (0,DST_ADR32[3..1]); + SRC_ADR_INC[] = -16; -- SRC X INC + DST_ADR_INC[] = -16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"0004" THEN + DST_X_INC[] = 4; + X_CNT_T[] = (0,DST_ADR32[3..2]); + SRC_ADR_INC[] = 16; -- SRC X INC + DST_ADR_INC[] = 16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"FFFC" THEN + DST_X_INC[] = 4; + X_CNT_T[] = 3 - (0,DST_ADR32[3..2]); + SRC_ADR_INC[] = -16; -- SRC X INC + DST_ADR_INC[] = -16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"0008" THEN + DST_X_INC[] = 2; + X_CNT_T[] = (0,DST_ADR32[3]); + SRC_ADR_INC[] = 16; -- SRC X INC + DST_ADR_INC[] = 16; -- DST X INC + ELSE + IF BL_SRC_X_INC[] == H"FFF8" THEN + DST_X_INC[] = 2; + X_CNT_T[] = 1 - (0,DST_ADR32[3]); + SRC_ADR_INC[] = -16; -- SRC X INC + DST_ADR_INC[] = -16; -- DST X INC + ELSE + DST_X_INC[] = 1; + X_CNT_T[] = 0; + SRC_ADR_INC[] = SRC_XINC32[]; -- SRC X INC + DST_ADR_INC[] = DST_XINC32[]; -- DST X INC + END IF; + END IF; + END IF; + END IF; + END IF; + END IF; + END IF; -- Y COUNT BL_Y_CNT[].CLK = MAIN_CLK; BL_Y_CNT[] = FB_AD[31..16]; - BL_Y_CNT_CS = !nFB_CS1 & W_ADR[]==H"7C51C"; -- $F8A38.w + BL_Y_CNT_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C51C"; -- $F8A38.w BL_Y_CNT[15..8].ENA = BL_Y_CNT_CS & !nFB_WR & FB_16B0; BL_Y_CNT[7..0].ENA = BL_Y_CNT_CS & !nFB_WR & FB_16B1; Y_INDEX[].CLK = DDRCLK0; - Y_INDEX_CS = !nFB_CS1 & W_ADR[]==H"7C525"; -- $F8A4A.w - Y_INDEX_CLR = BL_Y_CNT_CS & !nFB_WR; -- LÖSCHEN BEI WRITE + Y_INDEX_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C525"; -- $F8A4A.w + Y_INDEX_CLR.CLK = MAIN_CLK; + Y_INDEX_CLR = BL_Y_CNT_CS & !nFB_WR; -- LÖSCHEN BEI WRITE Y_INDEX[] = (Y_INDEX[] + (1 & YIINC)) & !Y_INDEX_CLR; -- HOP LOGIC BL_HOP[].CLK = MAIN_CLK; BL_HOP[] = FB_AD[31..24]; - BL_HOP_CS = !nFB_CS1 & W_ADR[]==H"7C51D"; -- $F8A3A.w - BL_HOP[7..0].ENA = BL_HOP_CS & !nFB_WR & FB_16B0; -- $F8A3A + BL_HOP_CS = !nFB_CS1 & FB_ADR[19..1]==H"7C51D"; -- $F8A3A.w + BL_HOP[7..0].ENA = BL_HOP_CS & !nFB_WR & FB_16B0; -- $F8A3A -- OP LOGIC BL_OP[].CLK = MAIN_CLK; BL_OP[] = FB_AD[23..16]; - BL_OP[7..0].ENA = BL_HOP_CS & !nFB_WR & FB_16B1; -- $F8A3B + BL_OP[7..0].ENA = BL_HOP_CS & !nFB_WR & FB_16B1; -- $F8A3B -- LINE NUMBER BYT BL_LN[].CLK = MAIN_CLK; - BL_LN[6..0] = FB_AD[30..24]; - BL_LN7 = FB_AD31 & !LN7CLR; -- BUSY HOG UND SMUDGE - BL_LN_CS = !nFB_CS1 & W_ADR[]==H"7C51E"; -- $F8A3C.w - BL_LN[].ENA = BL_LN_CS & !nFB_WR & FB_16B0; -- $F8A3C - BL_LN7.ENA = LN7CLR; + BL_LN_CS = !nFB_CS1 & (FB_ADR[19..1] == H"7C51E"); -- $F8A3C.w + BL_LN_WR = BL_LN_CS & !nFB_WR & FB_16B0; -- $F8A3C WRITE SIGNAL + BL_LN[6..0] = FB_AD[30..24]; -- HOG UND SMUDGE + BL_LN[6..0].ENA = BL_LN_WR; -- $F8A3C + BL_LN7.ENA = BL_LN_WR # LN7_CLR; -- $F8A3C + BL_LN7 = FB_AD31 & BLITTER_ON & (BL_X_CNT[] > X_CNT16[]) & (BL_Y_CNT[] > Y_INDEX[]) & !LN7_CLR; -- BUSY + BL_START.CLK = MAIN_CLK; + BL_START = BL_LN7 & !BL_LN_CS & BLITTER_ON & (BL_X_CNT[] > X_CNT16[]) & (BL_Y_CNT[] > Y_INDEX[]) & !LN7_CLR; -- SKEW BYT BL_SKEW[].CLK = MAIN_CLK; BL_SKEW[] = FB_AD[23..16]; - BL_SKEW[].ENA = BL_LN_CS & !nFB_WR & FB_16B1; -- $F8A3D + BL_SKEW[].ENA = BL_LN_CS & !nFB_WR & FB_16B1; -- $F8A3D --- REGISTER OUT FB_AD[31..16] = lpm_bustri_WORD( BL_HRAM_CS & BL_DPRAM_OUT[] # BL_SRC_X_INC_CS & BL_SRC_X_INC[] # BL_SRC_Y_INC_CS & BL_SRC_Y_INC[] - # BL_SRC_ADRH_CS & SRC_ADR_NODE[31..16] - # BL_SRC_ADRL_CS & SRC_ADR_NODE[15..0] + # BL_SRC_ADRH_CS & SRC_ADR32[31..16] + # BL_SRC_ADRL_CS & SRC_ADR32[15..0] # BL_ENDMASK1_CS & BL_ENDMASK1[] # BL_ENDMASK2_CS & BL_ENDMASK2[] # BL_ENDMASK3_CS & BL_ENDMASK3[] # BL_DST_X_INC_CS & BL_DST_X_INC[] # BL_DST_Y_INC_CS & BL_DST_Y_INC[] - # BL_DST_ADRH_CS & DST_ADR_NODE[31..16] - # BL_DST_ADRL_CS & DST_ADR_NODE[15..0] + # BL_DST_ADRH_CS & DST_ADR32[31..16] + # BL_DST_ADRL_CS & DST_ADR32[15..0] # BL_X_CNT_CS & (BL_X_CNT[]-X_INDEX[]) # BL_Y_CNT_CS & (BL_Y_CNT[]-Y_INDEX[]) # BL_HOP_CS & (BL_HOP[],BL_OP[]) - # BL_LN_CS & (BL_LN[7..4],Y_INDEX[3..0],BL_SKEW[]) + # BL_LN_CS & (BL_LN7 # !BL_NOTRUN,BL_LN[6..0],BL_SKEW[]) # SRC_IADRH_CS & SRC_IADR[31..16] # SRC_IADRL_CS & SRC_IADR[15..0] # DST_IADRH_CS & DST_IADR[31..16] # DST_IADRL_CS & DST_IADR[15..0] # X_INDEX_CS & X_INDEX[] # Y_INDEX_CS & Y_INDEX[] - ,BLITTER_CS & !nFB_OE); -- FFFF8A00-7F + # DP_RAM_CS & BL_HRAM_OUT[] + ,BLITTER_CS & !nFB_OE); -- FFFF8A00-7F -------------------------------------------------------------------------------------- -- SRC BUFFER LADEN BL_SRC_BUF1[].CLK = DDRCLK0; @@ -355,34 +434,11 @@ BEGIN BL_SRC_BUF3[127..64].ENA = BLITTER_DACK1 & BL_READ_SRC; BL_SRC_BUF3[63..0].ENA = BLITTER_DACK0 & BL_READ_SRC; BL_SRC_BUF3[] = BL_SRC_BUF2[]; - -- ZUORDNUNG --------- + -- ZUORDNUNG --------------------------------------------------- IF BL_SRC_X_INC15 THEN -- WENN NEGATIV -> REIHENFOLGE KEHREN - CASE BL_HOP[7..4] IS -- SPIEGELN? - WHEN H"0" => -- LINE WEISE - BL_BSIN[127..0] = BL_SRC_BUF3[]; - BL_BSIN[255..128] = BL_SRC_BUF2[]; - BL_BSIN[383..256] = BL_SRC_BUF1[]; - WHEN H"1" => --- BIT WEISE - BL_BSIN[0..127] = BL_SRC_BUF3[]; - BL_BSIN[128..255] = BL_SRC_BUF2[]; - BL_BSIN[256..383] = BL_SRC_BUF1[]; - WHEN H"2" => -- BYT WEISE - BL_BSIN[127..0] = (BL_SRC_BUF3[7..0],BL_SRC_BUF3[15..8],BL_SRC_BUF3[23..16],BL_SRC_BUF3[31..24],BL_SRC_BUF3[39..32],BL_SRC_BUF3[47..40],BL_SRC_BUF3[55..48],BL_SRC_BUF3[63..56],BL_SRC_BUF3[71..64],BL_SRC_BUF3[79..72],BL_SRC_BUF3[87..80],BL_SRC_BUF3[95..88],BL_SRC_BUF3[103..96],BL_SRC_BUF3[111..104],BL_SRC_BUF3[119..112],BL_SRC_BUF3[127..120]); - BL_BSIN[255..128] = (BL_SRC_BUF2[7..0],BL_SRC_BUF2[15..8],BL_SRC_BUF2[23..16],BL_SRC_BUF2[31..24],BL_SRC_BUF2[39..32],BL_SRC_BUF2[47..40],BL_SRC_BUF2[55..48],BL_SRC_BUF2[63..56],BL_SRC_BUF2[71..64],BL_SRC_BUF2[79..72],BL_SRC_BUF2[87..80],BL_SRC_BUF2[95..88],BL_SRC_BUF2[103..96],BL_SRC_BUF2[111..104],BL_SRC_BUF2[119..112],BL_SRC_BUF2[127..120]); - BL_BSIN[383..256] = (BL_SRC_BUF1[7..0],BL_SRC_BUF1[15..8],BL_SRC_BUF1[23..16],BL_SRC_BUF1[31..24],BL_SRC_BUF1[39..32],BL_SRC_BUF1[47..40],BL_SRC_BUF1[55..48],BL_SRC_BUF1[63..56],BL_SRC_BUF1[71..64],BL_SRC_BUF1[79..72],BL_SRC_BUF1[87..80],BL_SRC_BUF1[95..88],BL_SRC_BUF1[103..96],BL_SRC_BUF1[111..104],BL_SRC_BUF1[119..112],BL_SRC_BUF1[127..120]); - WHEN H"3" => -- WORD WEISE - BL_BSIN[127..0] = (BL_SRC_BUF3[15..0],BL_SRC_BUF3[31..16],BL_SRC_BUF3[47..32],BL_SRC_BUF3[63..48],BL_SRC_BUF3[79..64],BL_SRC_BUF3[95..80],BL_SRC_BUF3[111..96],BL_SRC_BUF3[127..112]); - BL_BSIN[255..128] = (BL_SRC_BUF2[15..0],BL_SRC_BUF2[31..16],BL_SRC_BUF2[47..32],BL_SRC_BUF2[63..48],BL_SRC_BUF2[79..64],BL_SRC_BUF2[95..80],BL_SRC_BUF2[111..96],BL_SRC_BUF2[127..112]); - BL_BSIN[383..256] = (BL_SRC_BUF1[15..0],BL_SRC_BUF1[31..16],BL_SRC_BUF1[47..32],BL_SRC_BUF1[63..48],BL_SRC_BUF1[79..64],BL_SRC_BUF1[95..80],BL_SRC_BUF1[111..96],BL_SRC_BUF1[127..112]); - WHEN H"4" => -- LONG WEISE - BL_BSIN[127..0] = (BL_SRC_BUF3[31..0],BL_SRC_BUF3[63..32],BL_SRC_BUF3[95..64],BL_SRC_BUF3[127..96]); - BL_BSIN[255..128] = (BL_SRC_BUF2[31..0],BL_SRC_BUF2[63..32],BL_SRC_BUF2[95..64],BL_SRC_BUF2[127..96]); - BL_BSIN[383..256] = (BL_SRC_BUF1[31..0],BL_SRC_BUF1[63..32],BL_SRC_BUF1[95..64],BL_SRC_BUF1[127..96]); - WHEN OTHERS => -- LINE WEISE - BL_BSIN[127..0] = BL_SRC_BUF3[]; - BL_BSIN[255..128] = BL_SRC_BUF2[]; - BL_BSIN[383..256] = BL_SRC_BUF1[]; - END CASE; + BL_BSIN[127..0] = BL_SRC_BUF3[]; + BL_BSIN[255..128] = BL_SRC_BUF2[]; + BL_BSIN[383..256] = BL_SRC_BUF1[]; ELSE -- SONST NORMAL BEI VORWÄRTS BL_BSIN[127..0] = BL_SRC_BUF1[]; BL_BSIN[255..128] = BL_SRC_BUF2[]; @@ -395,16 +451,16 @@ BEGIN BL_DST_BUFRD[] = (VDP_IN[],VDP_IN[]); -- barell shift ***************************************************************************** -- SOURCE SHIFT RIGHT = LPM_CSHIFT RIGTH ;SKEW SHIFT: IF FXRS==0 THEN RIGHT ELSE LEFT - DIST_RIGHT[] = (16 * ((0,DST_ADR_NODE[3..1]) - (0,SRC_ADR_NODE[3..1]))) + (!BL_SKEW7 & (0,BL_SKEW[3..0])) - (BL_SKEW7 & (0,BL_SKEW[3..0])); - IF DIST_RIGHT8 == 0 THEN - BL_BS_SKEW[] = DIST_RIGHT[7..0]; -- LPM SHIFT RIGHT - SHIFT_DIR = VCC; -- DIR = RIGHT - else - BL_BS_SKEW[] = !DIST_RIGHT[7..0] + 1; -- LPM SHIFT LEFT + DIST_RIGHT[] = (16 * ((0,DST_ADR32[3..1]) - (0,SRC_ADR32[3..1]))) + (!BL_SKEW7 & (0,BL_SKEW[3..0])) - (BL_SKEW7 & (0,BL_SKEW[3..0])); + IF DIST_RIGHT8 THEN + BS_SKEW[] = 0 - DIST_RIGHT[7..0]; -- LPM SHIFT LEFT SHIFT_DIR = GND; -- DIR = LEFT + else + BS_SKEW[] = DIST_RIGHT[7..0]; -- LPM SHIFT RIGHT + SHIFT_DIR = VCC; -- DIR = RIGHT end if; -- barell shifter: direction 0=links 1=rechts IN BEZUG AUF ausgabewert! - BL_BSOUT[] = lpm_clshift384(BL_BSIN[], SHIFT_DIR , BL_BS_SKEW[]); -- wir brauchen 128bit + BL_BSOUT[] = lpm_clshift384(BL_BSIN[], SHIFT_DIR , BS_SKEW[]); -- wir brauchen 128bit -- HOP *************************************************************************************** CASE BL_HOP[1..0] IS WHEN H"0" => @@ -423,47 +479,47 @@ BEGIN OP_OUT[] = H"0"; SRC_READ = B"0"; WHEN H"1" => - OP_OUT[] = HOP_OUT[] & BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] AND BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"2" => - OP_OUT[] = HOP_OUT[] & !BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] AND !BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"3" => OP_OUT[] = HOP_OUT[]; - SRC_READ = BL_HOP1 # BL_HOP0; + SRC_READ = BL_HOP1; WHEN H"4" => - OP_OUT[] = !HOP_OUT[] & BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] AND BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"5" => OP_OUT[] = BL_DST_BUFRD[]; SRC_READ = B"0"; WHEN H"6" => - OP_OUT[] = HOP_OUT[] $ BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] XOR BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"7" => - OP_OUT[] = HOP_OUT[] # BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] OR BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"8" => - OP_OUT[] = !HOP_OUT[] & !BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] AND !BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"9" => - OP_OUT[] = !HOP_OUT[] $ BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] XOR BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"A" => OP_OUT[] = !BL_DST_BUFRD[]; SRC_READ = B"0"; WHEN H"B" => - OP_OUT[] = HOP_OUT[] # !BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = HOP_OUT[] OR !BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"C" => OP_OUT[] = !HOP_OUT[]; - SRC_READ = BL_HOP1 # BL_HOP0; + SRC_READ = BL_HOP1; WHEN H"D" => - OP_OUT[] = !HOP_OUT[] # BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] OR BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN H"E" => - OP_OUT[] = !HOP_OUT[] # !BL_DST_BUFRD[]; - SRC_READ = BL_HOP1 # BL_HOP0; + OP_OUT[] = !HOP_OUT[] OR !BL_DST_BUFRD[]; + SRC_READ = BL_HOP1; WHEN OTHERS => -- 12345678901234567890123456789012 OP_OUT[] = H"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"; @@ -472,147 +528,167 @@ BEGIN ------------ ENDMASKEN SETZEN ****************************************************************************** ENDMASK1_SHIFT[3..0] = 0; ENDMASK2_SHIFT[3..0] = 0; + ENDMASKEND[] = DST_ADR32[] + (0,(BL_X_CNT[] - X_INDEX[]) - 1) * DST_XINC32[]; IF BL_DST_X_INC15 THEN ---------------------------- RÜCKWÄRTS X_INC NEGATIV - IF X_INDEX[]==0 THEN -- ENDE? - ENDMASK2_SHIFT[7..4] = 9 - (0,(DST_ADR_NODE[3..1])) + (8 & (DST_ADR_NODE[3..1]==0)); -- JA ENDMASK 3 SETZEN + IF X_INDEX[] == 0 THEN -- ENDE? + ENDMASK2_SHIFT[7..4] = 8 - (0,(DST_ADR32[3..1])); -- JA ENDMASK 3 SETZEN ELSE ENDMASK2_SHIFT[7..4] = 0; -- NEIN -> ENDMASK 3 AUF ENDMASK2 SETZEN END IF; - IF BL_X_CNT[]<=(X_CNT_NODE[] + 8) THEN -- SCHON ZEILENANFANG? - ENDMASKEND[] = X_INDEX[] - BL_X_CNT[] + (0,(DST_ADR_NODE[3..1])); - ENDMASK2_SHIFT[7..4] = 1 + (0,(ENDMASKEND[3..1])); -- JA: ENDMASK 3 SETZEN + IF (X_CNT16[] + DST_X_INC[]) >= BL_X_CNT[] THEN -- SCHON ZEILENENDE? + ENDMASK1_SHIFT[7..4] = 1 + (0,(ENDMASKEND[3..1])); -- JA -> ENDMASK 1 SETZEN ELSE ENDMASK1_SHIFT[7..4] = 0; -- NEIN -> ENDMASK 3 AUF ENDMASK2 SETZEN END IF; - ELSE ------------------------------------------- VORWÄRTS X_INC POSITIV - IF X_INDEX[]==0 THEN -- ANFANG? - ENDMASK1_SHIFT[7..4] = 1 + (0,(DST_ADR_NODE[3..1])); -- JA -> ENDMASK 1 SETZEN + ELSE ------------------------------------------- VORWÄRTS X_INC POSITIV (immer bei memcopy) + IF X_INDEX[] == 0 THEN -- ANFANG? + ENDMASK1_SHIFT[7..4] = 1 + (0,(DST_ADR32[3..1])); -- JA -> ENDMASK 1 SETZEN ELSE ENDMASK1_SHIFT[7..4] = 0; -- NEIN->ENDMASK1 AUF ENDMASK2 SETZEN END IF; - IF BL_X_CNT[]<=(X_CNT_NODE[] + 8) THEN -- SCHON ZEILENENDE? - ENDMASKEND[] = X_CNT_NODE[] + 8 - BL_X_CNT[]; - ENDMASK2_SHIFT[7..4] = 1 + ENDMASKEND[3..0]; -- JA: ENDMASK 3 SETZEN + IF (X_CNT16[] + DST_X_INC[]) >= BL_X_CNT[] THEN -- SCHON ZEILENENDE? + ENDMASK2_SHIFT[7..4] = 8 - (0,(ENDMASKEND[3..1])); -- JA: ENDMASK 3 SETZEN ELSE ENDMASK2_SHIFT[7..4] = 0; -- NOCH NICHT AKTIV->ENDMASK 3 AUF ENDMASK2 SETZEN END IF; END IF; -- ENDMASKEN -- barell shifter 144 bit, direction 0 = links 1 = rechts --- 1234567890123456789012345678 - ENDMASK12_IN[] = (BL_ENDMASK1[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + BL_ENDMASK0[] = 0; + BL_ENDMASKF[] = -1; + BL_ENDMASKL[] = BL_ENDMASK1[] & !BL_DST_X_INC15 # BL_ENDMASK3[] & BL_DST_X_INC15; + BL_ENDMASKR[] = BL_ENDMASK3[] & !BL_DST_X_INC15 # BL_ENDMASK1[] & BL_DST_X_INC15; + CASE DST_X_INC[] IS + WHEN 8 => -- INC 2 + ENDMASK12_IN[] = (BL_ENDMASKL[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + ENDMASKM_IN[] = (BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[],BL_ENDMASKF[]); + ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASKR[]); + WHEN 4 => -- INC 4 + ENDMASK12_IN[] = (BL_ENDMASKL[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + ENDMASKM_IN[] = (BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASKF[],BL_ENDMASK0[]); + ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASKR[]); + WHEN 2 => -- INC 8 + ENDMASK12_IN[] = (BL_ENDMASKL[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + ENDMASKM_IN[] = (BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[]); + ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASKR[]); + WHEN OTHERS => + ENDMASK12_IN[] = (BL_ENDMASKL[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[]); + ENDMASKM_IN[] = (BL_ENDMASKF[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[],BL_ENDMASK0[]); + ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASKR[]); + END CASE; ENDMASK12_OUT[] = lpm_clshift144(ENDMASK12_IN[],1,ENDMASK1_SHIFT[]); -- IMMER rechts SCHIEBEN - ENDMASK23_IN[] = (BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK2[],BL_ENDMASK3[]); ENDMASK23_OUT[] = lpm_clshift144(ENDMASK23_IN[],0,ENDMASK2_SHIFT[]); -- IMMER LINKS SCHIEBEN - ENDMASK123[] = ENDMASK12_OUT[127..0] & ENDMASK23_OUT[143..16]; + ROR_CNT[] = 16 * (0,DST_ADR32[3..1]); + ENDMASKM_OUT[] = lpm_ror128(ENDMASKM_IN[],ROR_CNT[6..0]); + ENDMASK123[].CLK = DDRCLK0; + ENDMASK123[] = ENDMASK12_OUT[127..0] & ENDMASK23_OUT[143..16] & ENDMASKM_OUT[]; BLITTER_DOUT[] = ((ENDMASK123[] & OP_OUT[]) # (!ENDMASK123[] & BL_DST_BUFRD[])); - NOT_DST_READ = ((BL_OP[3..0]==H"0") # (BL_OP[3..0]==H"3") # (BL_OP[3..0]==H"C") # (BL_OP[3..0]==H"F")) & (ENDMASK123[]==H"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); + NOT_DST_READ = ((BL_OP[3..0] == H"0") # (BL_OP[3..0] == H"3") # (BL_OP[3..0] == H"C") # (BL_OP[3..0] == H"F")) & (ENDMASK123[] == H"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); -- STATE MACHINE **********************************************************************************---------------------------12345678901234567890123456789012 BLITTER_RUN = BLITTER_ON; -- BLITTER IST DA! BLITTER_ADR[3..0] = H"0"; -- IMMER LINE - SRC_DDR_ADR[] = (SRC_ADR_NODE[] - (0,(16 & BL_SRC_X_INC15))); -- WENN RÜCKWÄRTS NEXT ADRESS SRC - DST_DDR_ADR[] = (DST_ADR_NODE[] - (0,(16 & BL_DST_X_INC15))); -- WENN RÜCKWÄRTS NEXT ADRESS DST - BLITTER_REQ.CLK = DDRCLK0; - BLITTER_SIG = BLITTER_REQ & BLITTER_DACK[]==H"0"; + BLITTER_SIG.CLK = DDRCLK0; + BLITTER_SIG = BLITTER_REQ & !BLITTER_DACK0 & !BLITTER_DACK1; -- BLITTER MAIN STATE MACHINE ----------------------------------------------- BL_SM.CLK = DDRCLK0; + SRC_OLD[].CLK = DDRCLK0; + SRC_OLD[] = SRC_ADR32[31..4]; + SDXINC.CLK = DDRCLK0; CASE BL_SM IS WHEN START => ------------------------- START - IF BLITTER_ON & BL_LN7 & ((BL_X_CNT[] - X_CNT_NODE[])>0) & ((BL_Y_CNT[] - Y_INDEX[]) > 0) THEN - BL_SM = NEW_LINE; + BL_NOTRUN = VCC; -- BLITTER NOT RUN + IF BLITTER_ON & BL_START & (BL_X_CNT[] > X_CNT16[]) & (BL_Y_CNT[] > Y_INDEX[]) THEN -- STARTEN? + BL_SM = NEW_LINE; -- JA START ELSE - BL_SM = START; + BL_SM = START; -- NICHT STARTEN END IF; WHEN NEW_LINE => ----------------------- NEU LINIE - X_INDEX_CLR = VCC; -- LÖSCHEN - BL_SM = RDSRC0; - WHEN RDSRC0 => ------------------------ READ SRC1 - IF SRC_READ THEN - BLITTER_ADR[31..4] = SRC_DDR_ADR[31..4] - 1; - BLITTER_REQ = VCC; - BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 - IF BLITTER_DACK0 THEN - BL_SM = RDSRC2; - ELSE - BL_SM = RDSRC1; - END IF; + X_INDEX_CLR_DIR = VCC; -- JA -> X INDEX LÖSCHEN FÜR START LINE + IF SRC_READ THEN -- SOURCE READ NÖTIG? + BL_SM = RDSRC3; -- JA ELSE - BL_SM = RDDST; + BL_SM = RDDST; -- NEIN -> DIREKT ZU READ DEST END IF; - WHEN RDSRC1 => ------------------------ READ SRC1 - IF SRC_READ THEN - BLITTER_ADR[31..4] = SRC_DDR_ADR[31..4]; - BLITTER_REQ = VCC; - BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 - IF BLITTER_DACK0 THEN - SIINC = VCC; -- INC SRC ADR - BL_SM = RDSRC2; - ELSE - BL_SM = RDSRC1; - END IF; - ELSE - BL_SM = RDDST; + WHEN RDSRC3 => ------------------------ READ SRC3 + BLITTER_ADR[31..4] = SRC_ADR32[31..4] - 1 + (2 & BL_SRC_X_INC15); + BLITTER_REQ = VCC; + BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 + IF BLITTER_DACK0 THEN + BL_SM = RDSRC2; + ELSE + BL_SM = RDSRC3; END IF; - WHEN RDSRC2 => ------------------------ READ SRC2 - IF SRC_READ THEN - BLITTER_ADR[31..4] = SRC_DDR_ADR[31..4]; - BLITTER_REQ = VCC; - BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 - IF BLITTER_DACK0 THEN - SIINC = VCC; -- INC SRC ADR - BL_SM = RDDST; - ELSE - BL_SM = RDSRC2; - END IF; - ELSE - BL_SM = RDDST; + WHEN RDSRC2 => ------------------------- READ SRC2 + BLITTER_ADR[31..4] = SRC_ADR32[31..4]; + BLITTER_REQ = VCC; + BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 + IF BLITTER_DACK0 THEN + BL_SM = RDSRC1; + ELSE + BL_SM = RDSRC2; END IF; - WHEN RDDST => ----------------------- READ DEST + WHEN RDSRC1 => ------------------------ READ SRC1 + BLITTER_ADR[31..4] = SRC_ADR32[31..4] + 1 - (2 & BL_SRC_X_INC15); + BLITTER_REQ = VCC; + BL_READ_SRC = VCC; -- LATCH UND SB1->SB2 + SRC_OLD[].ENA = VCC; + IF BLITTER_DACK0 THEN + BL_SM = RDDST; + ELSE + BL_SM = RDSRC1; + END IF; + WHEN RDDST => ------------------------ READ DEST + BLITTER_ADR[31..4] = DST_ADR32[31..4]; IF NOT_DST_READ THEN - BL_SM = WRDSTW1; + BL_SM = WRDSTW; ELSE - BLITTER_ADR[31..4] = DST_DDR_ADR[31..4]; BLITTER_REQ = VCC; BL_READ_DST = VCC; IF BLITTER_DACK0 THEN - BL_SM = WRDSTW1; + BL_SM = WRDSTW; ELSE BL_SM = RDDST; END IF; END IF; - WHEN WRDSTW1 => ------------------- WRITE DEST WAIT AUF ERGEBNIS - BL_SM = WRDSTW2; - WHEN WRDSTW2 => ------------------- WRITE DEST WAIT AUF ERGEBNIS + WHEN WRDSTW => ------------------------ KURZ WARTEN AUF ERGEBNIS + BLITTER_ADR[31..4] = DST_ADR32[31..4]; BL_SM = WRDST; - WHEN WRDST => ------------------- WRITE DEST - BLITTER_ADR[31..4] = DST_DDR_ADR[31..4]; + WHEN WRDST => ------------------------- WRITE DEST + BLITTER_ADR[31..4] = DST_ADR32[31..4]; BLITTER_WR = VCC; BLITTER_REQ = VCC; + SDXINC = BLITTER_DACK2; -- INCCREMENT SRC, DST, X_INDEX IF BLITTER_DACK0 THEN - XIINC = VCC; -- INC X_INDEX - DIINC = VCC; -- INC DEST ADR BL_SM = TESTZEILENENDE; ELSE BL_SM = WRDST; END IF; WHEN TESTZEILENENDE => ----------------- ZEILENDE? - IF X_CNT_NODE[] >= BL_X_CNT[] THEN -- SCHON ZEILENENDE? - YIINC = VCC; -- JA -> INC Y-INDEX UND ZEILE SRC UND DEST - BL_SM = TESTFERTIG; -- -> + IF X_CNT16[] >= BL_X_CNT[] THEN -- SCHON ZEILENENDE? + YIINC = VCC; -- JA -> INC Y-INDEX + BL_SM = TESTFERTIG; -- => TEST OB FERTIG ELSE - BL_SM = RDSRC2; -- NEIN NEXT + IF !SRC_READ THEN -- KEIN SOURCE READ? + BL_SM = RDDST; -- JA => LESEN UNNÖTIG -> + ELSE + IF SRC_ADR32[31..4] == SRC_OLD[] THEN -- ADRESSE IMMER NOCH IN DER LINE? + BL_SM = RDDST; -- DATEN SIND GÜLTIG -> READ DEST + ELSE + BL_SM = RDSRC1; -- SONST NEXT SRC + END IF; + END IF; END IF; WHEN TESTFERTIG => --------------------- TEST AUF FERTIG - ZIINC = VCC; -- INC ADRESSEN ZEILENUMBRUCH - IF Y_INDEX[] >= BL_Y_CNT[] THEN -- LETZTE ZEILE? - BL_SM = FERTIG; -- JA --> + ZAINC = VCC; -- ZEILENENDE: INC SRC UND DST ADRESSEN + IF Y_INDEX[] >= BL_Y_CNT[] THEN -- LETZTE ZEILE? + BL_SM = FERTIG; -- JA => FERTIG ELSE - ZYINC = VCC; -- YINC ADDIEREN ZEILENENDE - BL_SM = NEW_LINE; -- NEIN NEXT -> + BL_SM = NEW_LINE; -- NEIN => NEXT LINE END IF; WHEN FERTIG => -------------------------- FERTIG - BLITTER_INT = VCC; -- BLITTER INTERRUPT - LN7CLR = VCC; -- BUSY BIT LÖSCHEN - IF BL_LN7==0 THEN -- WARTEN BIS GELÖSCHT (GEHT NUR MIT 33MHz) + BL_NOTRUN = VCC; -- BLITTER NOT RUN + BLITTER_INT = VCC; -- BLITTER INTERRUPT + LN7_CLR = VCC; -- BUSY BIT LÖSCHEN + IF (BL_LN7 == 0) & (BL_START == 0) THEN -- WARTEN BIS GELÖSCHT (SYNC MIT 33MHz) BL_SM = START; ELSE BL_SM = FERTIG; diff --git a/FPGA_by_Fredi/blitter.tdf.pdf b/FPGA_by_Fredi/blitter.tdf.pdf deleted file mode 100644 index eb1e459adaab8cfb4205ae37e5c0f28f3276762a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78291 zcmd42WmsIzwl0dhdvGT}pmBG1x8T;nX@XmD*We!9-3byLg1dVH1PvNoPLq6Vt?#V0 z_qqGr=l;0ePfu#rtQup~7^B{*XVwdiii8vsD>DZY&EQdN9uhkTISV<+)EY@Z0H9!H z4>WPK@&uZbvjP;zxp~-lSphP7+*}3#WpZ{dfaISVfD$=3K!co{o0E%I zNC*jNZ~h{O{Qvrc1z`TTQi ztgNi;T>oCj&c*TX_Wg;&Kl>s%JDOP80v%sMrw)!9IR`I5*8UxcoE_{Gay5V&2;@x8 z4t55(EGwZWAS%Tw$pM$QiQJXpoQ67#qGzZvygCb+%1m5CV0om>y>ZE_xP zTv=IpS-~3BK+Y!4KynsvGe@93*pYvktOj%fxj32uoxomKaRiyE1D*8%;5kJO&;YtS zgF8yPJ4>to?#uBqx4@&60)hK;{0_v6Jpgg=Jy;~z4d9IV-)(%U_{VGn+FLkVlC$%? zv;jz2**XIq$pKQfV5=m6X5c~p4uB)j#16?lbH~6SVYMmg!$NiH4bY;j0u2&_d~;Sv zr#7C)^^IOSPe!ylv&S3yCK~y;ZR+*P$CD9S#BU$3b9l!nX4NFCh(I?H!=l1T*~>p91l;LAI6WKUDy z)^2>ZrPH*C7E+gU88Z}W`;~GL%WSXB56Y?^yX{48ywG&`b$b|Tjn7c-&Ew1Q&gUcB zgxYy;q^CuD*~4vQ?e<9I$}dAYlJU;A8h%ZilZosY`jW~k7Y(35!TL#`i`|$?o&15S zVI1FBaO2PFl+Mn%tIroz_Jf|ccKq!izASGQ@$1IgK)L%_meCv=1tG#il<$-CpH3{N zK!bU)0O#*3XoT2Pr_}cM#N=e1rD(sHXTLkIpZM0T^Fy263`&-}t)&u5U04f8?mrjN zKfhN<%32(9UhioC)z37Sx1c@u_P%4~6{>}2_PhmvY|YbK(Y%}i`j|^uGnb?n!p`Nr zUNc!4l2`kAL3vsDyRt{f*s@m^3HFWkvH`cKvntVS3m=cH?5ZzEh)}inWBO^uzhuF= zWuV1s4>U0oAwUs$qiRMZ@&dBgE$ zeBUjNbYR;|_sZ(oz~%TG-8vmuUt8is9G<(3lhKUpb14vmvk#BF?BiMg3n00n?8Uc^1+ftkigUC2Y0D9}3A%0Ju6On9mepmuI0 zC!{bWnJG{VTV?4_W`#_gB!ZGTL+%#G<$y2impFjwRULf*+8Hd=x5x%~_T& z`yL4m%NOG=DGOt{$H_FZbofinpX?%PyMv)yX8go^t#_sZSRmSXl>m96!6nOLB#LVH zF|IB?`W0eG`&Ste9^ZTcSm23D421P(xgj!3WH->LZ)a-r%HtY9@8CB2t`!vhG;^!GV3&?oaskh?UnFc*qnRg(oz;y-@jX!nKlDN=dpi+E#a;w9? zC7c`uy|^Qg2h2rYTqdp$4BS>GVh4+Q%Z!=mHs`8rQbFUQ33*rN1Q}Zr^y%1P1~B5 z@U7L02(GKtrhDbG?GX>q1=$(v`m|!4yTahACgo=fWlCeV2MQYDV%eYVuwyM3SJG0H zt5{ol+20Z9Y@}yf!^HC>Gl^V(_%OkulwpSUkz=BT^APNRG>(s^hX`qxfrJpQLG?rJ z8iKfiIeg%)gfsSi9$4)ic~bCAg+~{Cx2Pik!|UAT&_%w<)LtMb#NS89&Tsm@51gzv z?plbj0!4xj%|EbpuX3*4{86vmP?2gx3*CCZ;Bt8k#&zeUsbWvQ#1fUWL5l6G92adM z$2Uplt`2sH%mhfC2NB}cF$5-oTtRV87OE#vqP9HX?YBXS>mWS8;PY3ChTng*`w_hE zYDS+Va+sNsfMdMo8B`^tfL3vHD6}<4Ijaklf8A+isr%8x&a*geErv>0RE6Iruw_@Z zawk$$KA*1LIH7Mm3;VtPUKco%b|Q!NVwZ&5^JIN=&PeS1?@?PsPmk5`MPw%|+a6>t zcTaU;ge>Cv`>&SHwSFx3f`dp$4#bFgMK{P=TrgrH??$eW-&BE#lUJ4Z%l9m^Og6H45n1i!!s42SNxs( zRNkul5$G?@MN@~&H8;aCg}XU^MCb|o9=|S2yOd1ea2eTm>c{+JLj|IDdSU`&tNo0C z8&3GxUChgiLwOwE{;3zH#L>xf#;jL((puTFF;JR~-E^~AJVsddqlWuURUeUQAT5uk zA8N(MoK#)+a)!F9e4u^8_zVWkh2U2n=3v{8Nwy{@JfuF6^Us;6E%}aTrhA;q zQfNnr5KaKgcq5M1Jf_pOIO4L%V?%tw`nJp*G@}!;scp`d_!>wH#V-@Bd1mnG-|#X{ zubtZ>uGQH(yDi(1VN>(%U1?=@b-czHtYuTpJ|gUb$2Hnby}||`;}gfb`6kZj15C+z z8_q-7l=|||`oi^=k?$XA9J{!5JUm`Ctv<8|UEtt+Wy(Pjgjbfj8m-;q;C;t`5fKw@ zn6!y{3Z2)V@j8+n>Y9qwD3W*C7dExGC5z%|tWg_3KRJjOF5EbVhk1xtp^nLEa}Pfa znhUk&5?bgp4HSZ}RKg%}^lABqvZa~!1>UYa;RDO_`@ZQ3$Wep%2l^p1-DD69&)#-@ zLfROlEBf{8sSb$?=~<+$%f!PXnptu6CIGT*%si;J50#WT}wsx73Lc4Vy+N0rqE z--jn?Ff1kWI$RDOX~lFBdR(Ff5fMf{DcWy6L_bMEVu;{BJ0WD(ld(2eKw?&>ctQtV zWDw~a?U_oa1-1chclRmmQUEvdbX2ic(2;l;zSxdmC3N$UiR4=NG&^Sc=00Ch?v~IH z5=sS{KeO-$J^~gN&Ak99w4W0dqsnDk-LFV7~pTseO@-2(%FBg5lJiD89Q3d zaxMr7O3@R4K)Gp?z<*$S?W;OxR>rW!QZcH89lEug5v@9MdsxP5)LxYrZ{Ovj*)_2h zxK97=hmMyQqcuGo@x_i`S^-gwDr}R*{dF0Gy~?JB%%MmjwWbL#7y<+SKa zEq`j`dn70vLhyok3Of(1LLUeg|}vLLSC zX%}AJKxAoSrjB^bPp?e_BA!genMW6*jI$xKKeV0!q(ZN5obb(VQ8QYiZ~2};RbJmt zvw0Z}YP32xpeMtib(eFw*5W+3{S2Y9q98lK&M!FOE0q^yx{%_Ka1ph{RV#nm@+XL^ zXD@MsEd16lDSW|MShj7(*%zFRFgISh5R9GCP|=U{k2fcU)Ipza!m4^A2Qy9(sn;-= z?q&RE5Cxv+`gg9`6SZ9Y?P9ARtJts#%THucbmbD!p!}yPj5znaRB$Uza6qNkntfGM zs%a^<;cA(E%_M~-j5(Jhi4Q#abE!c$zMTp~{LW#Mi!_SoB`n4S0isBQfesSqoRaiz zjHd+do0$H`(2J#?2#ZAsYd+k(q1j4b*ex(26ukcw#Gzjz-+~rpLzGlddlexutM*X} zXH=GImyy3YKo&L7Kmj~_Q8Ed`IvT4@>MzFy{;glI3m~hcd?*n!AuQ6pyN$eu;qb1l zc)RE8C;EB1SFqL_A4wD37v>Fp!gS@72w(!RL%gkIJ`!e8bf0s&GNB+cEX89xU~RZ6 zi5P4kD)FRIK(?Kx(<-;#hlNPoeTw2B)b6nH&!rY3CrE`;>D@3g+d$=mb?&H0WW6@X11%Yb!{ zZ#+6)hJ=kclhL4vAKZU!z2I(wyOjApulNQ4m;RF23T;7J6E~>q=koD!9VoFi6Wd_yS>p z*gw*ZZX+XRGi2PJGh6AMeR`SS=cTJ=o5Y~*W%1>bLY;ckFZ%VV;MuDMJ33Z$#lP?s zvRW`OQa1u}(3{tob|0?78L_;NgWqD?Z-LZ8f=M$l^1ZaaTwn1FsWn09uA^4nF=ceV z@VmID%&PLp6J}D9Zi!`Nowca^Lgvth1!B#(65Yd;dkQM0;pjuz zHU@*KZ#25@O?)VJ`<`?ATp^ zApx=3_~p1{XBFesMKFaJ&6=M{1;~;V}gxb5WlYNIUd$^A%VhI&Nd8yY{t(r>fsA9)kk2 z_KiX?%Rb~}Qi|=KYt|_4L(|p(^bOxFCv*wix~}{8%cW#ArJcfW+^y3ri;5S@8;?RR z;n)4+H$uW@4DItC50kXs+~qPN!}86h>GdCaQi05N15+;6+u#gT{H($3L_KPSb` z4T{e-X&gq5zMY$nEY104yOy-H2*`34?E7Hf;ND*fH`J*#%dh=Nb9& zLw7ZrVZM0Xf!^tS<})W&&#w1oW2&H!9L!YTb837_MrX9PQ!oKtDwcA8rTz4Z#SNbg z`j#{kEFHmlNP8N>yF==s>$G#yVVhc|VI;xkkKVHl1E)kDLsBXOCpGIz{$d6eToofgKxL3n#_Vm@XnPT?yT1Ilbi?z*%Bl0Ct2A+QO%+FrJGC> z=xOKvDGLb{VTBnQEbW0l`=sZGNE@XVG(_Dv!h5Xa53%nSaU!XGU$^EDF*LF;$9p;v zqlYlW+!T}-*zY2-5|?ACzOn_X>qB*&Ei)43CqoSeb|JJgU{>aCB-K4A+`@U`xhLT| z_w(<$6^i>rr@Xz0kKPR3*dp+yOD#vI6=7^d&{Er&vEv=ne+8FWCLt5XH%spT0by}0 z83V?FOi^-w^&t%Os^M*mVeZ9xh?t5T#&uEjSc+_jP}wHP@ooN9VxCqG2im(&ggiMY zuu9?NSdHBDVK6zsU&qlUg)mAqfc@*PI1@Vkq@jsKP>ls5v8t$cdmtp~2O(&*I9nLv z2Q+T@7V%6 z7YS&jtVU3wa$HboKJbf=qugRpOf&KUH9Pbue~Dt*yulK+vo2QC!3Rs?CjonhCs5>u zAx{J%BC7d9vj%DX{NW=#nY)MJtDaTuZU%yN(I0VPx6|69G(;2_!h0z={@F8yHcyB6 zUy!)pPOg(0^_%yB0;{2LOnL0(Bo0dLk|=*c#4N0Hy=uhaA%&?*@2!ig{lKRapL_?D z(b^NZ<`7mlv>3KIB7o&m?|#SUpt8Q1(a>&AMf@F}$%O-=0K!mSCs{aGLB$CB2{>^9 zSFrSgW9RHU(23G31~%&|otN?6&^tE4j8z_ z+f58c9^MDELYBct&Xj)EP&2O;mK0~RRCXG%q`4&d+~JmlO`cInCfHp#|5Z=ISF07h z^B;w~Kh`w_%(v%~>QQf)4`=8PGS8?aSe0~#5bM^0*O|?J^gFnyS!e=2=kmno@Qef_ zmaNhB4wSo%n{|!bH2Wx0=kP8c+C`jYv^|q!rgT+#QS?9&<{@2}heNBtsOF8#VWh|1 z#2t&_Lj@1i9lA?ncGS-b;%G$HA4%)t?e1&KnZBEp8&b z+6p_NS1Wq&G6L;UoHWBNbMA|gLvC{B4PS$|3#sL%4imQ@Lgb_#k7{JjKNPixo=+#I z;5O`{{?Z{nw+Xg+2M)*XDL5RfM2I1*0+*>Mdl-|g+Zj;lzu4ChCY@hn&d>5>^`t|! z&KrslHfBOIA;C<>8zXTfpRn%;CgO`wy$Ex0h`7bF)TqOp1dD=Nz65>1gCj)SvxC;1 zj)tm~(9ko}MA|?S(epB~npJ~REZgXxiV7GCF4PaERqxhL1LFyJy1Y5ju`x91${yub zF-*?~3o|_nBzE?JVs;ya$Cut_I~p|pRIz|gPntd;Z@wE@vb>mr>> zK^}nkEIYS20f%SsC!zyS_3OWbt=!-Ni2Ilyy~8 z6v2|P3C_olIVChz5?+J!BicHKFl)u}b^$+obFO`PRar6_F?}1I8W?$JYycl5nEDk4 zz0a0W0?!e1*J(%WQX{$cIzN1=5We-3ZP!L~D#Nzz74+2qVYj$8<7``ebLNw^{01 z3%vf{^Cy|vk&bU)JAdWC$!YJ-x$zj{n!nv%sI|=6c*{0aZ5CQ?{fv*v-P{{WH96$h z5)D~2v^F+jWGy%o@M@z-LPYNPaE(9_!|%%#x$CSN#0QM9Vj)!)-veo?V#>;{LK zO1eK_T$DCj>I6T%g`G$`J{vvH73gLM&n=4w%s1a&Rp2!Tom083bT?*vYNZc$B;MUu z`P5+idVxml-NA<%2GfITK_E#Z&g%tMksWVbQW!^ETE%^RvOi*Jb;ndj7~Dq~gA~Le zhp}hbhNMdRV|9ni1wXVIy5kN&W}#)vB8MnzQW9IV3Cf?r6Af1nZm9!%-b?xS6~}M! zwDl)%-z%W=Ei}&aie_Q+RH>uuX>~gRy%y`dUn?7rP!o0Ib#jI>ZJxNvqqX*@X6~3o zLi3T>Cg7noX@-ZTEtlaeVi>pGc{dMBj7C8ru0%+W7BIoeGw$gx{55hVLEE>m*;Dl9 zggvYni(m_D`auRrO&7uk?&@BxQ$^PJ^=e&%^t>de33xC!42cN4pV8Si!@X>eJuXUi zh;LNM?U`Z%mRd&#Rt$`2aa#{ZSdGT~C!7!blwqsB8SrG3ZnEjgQ+-IPYY;5` zhS7*Wj9~c{9|4H#@R7{njU+seYH@yG0c<|B5hZQOJVn1N44;lyfS@(~o-sz)ppq&} zCuh&VO0S{T-cP4m?=00)3us!0G}6p5jnlL$@uFOa9Yi9QAt_tGY|l7Ucke80Y-o>r za~nHXpNkdiI0A=pC215{WGNKI@YLegEI(G)!tAMYLQ_jNR^@z=pv|y=&m9xG(|mL# zPEgus%r9bJWr-D05JN-qCD_6^KR8E<{4f#pQ5<=~AKN)e_CTIl`%wRk9W{^$1sLz$ z@5*S%*<`|WYg|((x=H&qeH6Dj)@Kk6^|_3jEyfz1oOj(vGX?ifGi&=WN)CE4ybI{* z0A9Q-TG7%%pb{;N>EffiVzTcVjD6j-Tr$~n{5B@dSxsehSxg;hz73acs(GuBhcq^4 zfVYyYC{SmE^?AlVuQH>X=^);U9x5ydLbCXmyUUNiV=#A~qnJ_gI}d_LH79~f^`1_; z5qbw33T3=C@hrBWdcBA)&0TWcEqSOW)nk6A^p4sOFACWKM$4@IRyqh;2VBt5l0tA)6`wgFlFBCxhy+^+h#Oh$Z}%HZJ%juFS#cj5 zjP-NmC64TvCUF#TTa1s_+EwMdVFPnYcT>q=5~%L<)&I-~5pt1_JG;gt~jK;$cc1Kn8P2S%(mEo5PU;`@{Fi*AT7+}p{zgBgma9h)p zm$O0oN_VfWg9l&z<111}hw%2uA+JO+={JQr! zCqWA~)#Ccy1iUD;GOXILq*Aq0&78ow=3iwBZ@#_$$aq8kk&(wr?l3cF9FZ6Sru{7} z$RqfV8$n<(F{7wFaKJb*kiA zr>ZP^-AnFmxS1MzTBoT1Er%j?`1cGBxFmjaZQrZs05BplD1+f0MGq5ddgmt+~p?aE7bvB@hXx(uNaNfX@!Pet~ zvs|xRHrO6E_7*Id&jq9S?=uuU@oD->&56R4zx+ZZe;TjYObF*&LPFDpAn|^G_zVdr z5IzZ}qBuGKJ{kXul=Ax!{pDPpo0pUAA50Z?Fel_6hwU#cg@2vggNX?$isY<9LVtCC zVPgEFrI?8m@Z~@spsuVUBdW_N1GIGoI$N2U{66NF06LjDS~)m_9LYKUurPj0e(3<_ z0a!UYIg4AGID*Lp00oo3%B-wB0BtLCXG-=P!N0a{j3o%wPFO`9;@D8LSm7{pI(k^v@Q* zEoK2zGT6yE!TtW&1}?p@CG5de1~8)o>;ijHdnc=Z-mANqI==+v#ed*P{3B?;z4~_+ z$BS$K<@Mh|P%^Ot{@39V12aAJm{@tpnb^P=E^c0OZgw_<7gB}A3n>K&AnIiHLiPaH zf@vBi4l+P13rp}V8!r;zMaj#vm###ylN~JPCH`Q}$ZLQoKmwowPy?6%OaW#9GmtIF9(=X4GXa;WJEnB)R*05||0tw81gM}QN+3Fr#62RK=|1DqU8%zyxA zfU~6|5d7B-1aJj-0v$p0znuamkO0}qIewFD{^rh?SpDVBe`dCpri8SN8lyN^w-wOw zKl1uFvF3MNen0x}@|um6PHcwplG2Mhk({T&^C*Zd6- z!~o)8P>=*j0i*#k09k+>Kpvm~Py{FelmW`-;JFBNvT_20hAJ2~)Bzd*O@J0a8=wPt z3(y6_h>0B-7Mx7%%>m%01q={QHeh5ibp(TgE%2T5pOWJXp8YP`0Gw-@BOD0)XyjwkCG}hENvZj z17nvxm|Y66cd;`C8);?nH!OSM*Znrd;idG)kiP)V!PdnI@ZJUJ^g3@R_cx&Y z8&6h^8|nAnLG5pkU)X(rC8Qb;((eren1RX4g7m@^CI5TN7X<#Ro~fDap@E}~H&DL!vy3pX#95BRSR0)HjS>lp8PW=NNelw= zZ9o7*UDz}#BuqDuqv})yC4wymi4u;JAuKN@z>l!mPee?iIjA2Fg%C?{YKUpPH^GA= zft~KTqwMm~t zq65>qk%&Kw92}7_XJ4SJ=c&?(pqURkNNmXCBg@PiF zA`A0({R5TJ$}%W&NV106rrZlApYjtf9$<%qnQ?%!OvM2u#s}iou()!;s+fuJjZxM%LY#cV_&VsE+3(!FBL57u}^JbUJj3_UPO$Bvny zl14E7xoWgQy!;^eQSjaQ1&JxIuxJqPT|81Q(HB7uzVjAD zCm!!#>fjIQ`_Uh&jsjU;)E^qg+y9lP#dsvT2|Y5qZ%w~Hk8wEDC;HSbcC~Cppx3a% zN;n7mZQ#{2ZgD&l#LNJH*U#^FI-kY2=Cfe=M|)LPLp1F(1@>r4N57m6uTJ*<@C@Ih zOFzBsy!DQzqeRPibJhG?S58^`~Rv2_aAGS))UaEL%8m^ZFf^h~ZYE zT1^V~q>?vfS{+`y&Dv7zpb z>B?9CibOgTxjcf`7F9?ETE zDwxKeIdPjQI-?{CKQEaR0 z#;RJz!)W7syl^W)c=;NBSF#2eB9@<4&_$Vhqn9yq=aO5Nze;CqmMq+|#z5OhD>vV^ zykb2u7u-(1^TJ#@!N6k8w&z0A*en<;JlCFbpw$i%khc~6Taa?A^#q$!Wu@GWC7W*$} zE3)Xe?{nwi&E)20M76pr_!|$M*ByiiKxKyBx%b1jp0gwVrF!=|A2v6=_kJ~sEh$81@_OZnV8bW< z?xVW1bZp<|*IwJc-PN$QdzEh2U^=~cH}X!L_kaVNFW6GFbr_5W=1aW<0kQ5$Q+6F# zHB{|P-o>Pmu4o;(zd-Kg_q=b;*ON(-25D+4JsP=H$>0Z$vhT5UM8|bHOa_V#i}S0| z#Kv-9%A_c7W2YPyzYXvCDewo4@wAsCX9SQex?W}*#v59)t#yC7q zE0RpTkFrzH*afwl6>Qh$^7l`s?OHJNs1!rM{hJQI_5QS;5y*PwvSI= z?cMY$DEiyBP`vXuvut@hD#_?P#tXX*Nu(xSQ8}KewNE9e`GqX#&C*h3()~(wec^8B z_6{Trft{jc8&jFwvbA)N^Qh20m!}@8oIGd9??Uvxm8d*LVz=ZwH}WffwJW%7r;wxW zD|%Fe0tkbgZ?$D)8lY_52%86;2XhVyu9V<`VgV%!auU*4ncDE4B#VbuQ%N|~(HthT zVTfc|4EJ%L)qJ-WN%}h4e^}g_sC3zCYS?MxVSb=)p>BMrA2Hb|bjF<0s$TbFdi~=m ziivW;UVRWzvqlY$d$1e=-8pvHhmOeyF-7K55T;gtGr7SG=`%%j-=eZE+&`I zmxl3YwXeN6ru)W14@fYnTp)yz4zU?ZtRN_d&Wj71OALeP=VEl}C>NoP1swAqEvpkd z`F>459I<@Lk={z{4CZ~vlN%&4VvT_ifi|JbY4In zC6Z}3vz7*qM4V(qLom<;z2>Nn!wQOl!89B@X)$jAOHV-qD_Sa_-Y0wmpK~W`Rs5&Z z#7|0oAMVfBPwze4-51l?E!NMyHa1QKZKQb{@{f*=7U`$TQo~LOE}jk5xcN)H`1cL& zH3YQdpT4SZ^DR-(d2Mf>`dqIIx5=olLz>YMtfbX7*I#6Gn#x@!2c?GnA~F@c4;?qy z<23FPSxMRw4~@Rm&pO?WDfYc-3j38IcpvZkt%oYVSt1w|gBla2Te-aZ3a5j2*~$LK zQ**nFV2LIo5AW8_kb~FrERjk6p?E-Hg-ei2gp-Qd;l3>GtlWa80#Qz%h*-$W;OiYP z(XQ0!3XiY4<#s?xFmwt!VY}(q$pVw!1nDSSQqE;3h1gobjYH0=YxnFgkF*L$!b2lo z`w$TavSUT-`JSp2vpi+ooS}ruzjE)?E=qi6y~~7gOux5xfzRmwX|nS}Ys&>~FE} z+aH6ja7jGfc=mXvRGlA`iI@hyFqO6#=w8%9kc>>w8o!#A4rr*e*Z3AP=_65sck7$ggh z!XcaJy!S39l_5RjdP_M}CJPp2^)_x4Rw-Lo-5Yg-*77pWxuQ~}-hXlSmOA`0OcZ^y zwTSqJdXIt~hx?wA>WG#UtOB4LDExMFn+>_(o z&Q?1cH9}=j)_930uSVxgUdoW4Ki>Z3e@PlzAJPX?rSgKRDQ&OPIkk9Tuxip95rZSupan0lG2sp+L-LtnSW zEtuE&aBEw{JGCcOZ!#f^Pkf;6L7lo76+fI3qF&L2F|ntI!JJF=Ra(|Gl zOI5`cwpesyYaBbpHm%7|n;G&MdA0mLp#xs=^mt*T_;&CI`WJT!WKU^KA)I5HXhs;e zq_m=Kb44kESg%bzPdHLJM%xZ0b9>JpKJDA%B?7TT7o}9QtT_}&G=sOsvKqSCJQPXcCO`7V zEf`O@=(zBQo<6A4${naBkm)cq3iwT#kWNW9`7GKo({#4Xt{(ta_>rt!<@h z8dtugrPbvoD~Q+H!Ud=GqpACMU^{F696GmNOoidP=gJ7I?++U48O?d5FnkselYgpp zI387*tfg|#R)YQT+espVDvsVnYs5aCmGSbUSyX~dqbEkR5gLvaP)+)AN( zKC`9qBb&EV8iPE4&WA+>7tnge-VnATyS;M${B(zSwilOxi$B%8H*Woyw+fRHzQHbM z!S3vu8kj!%Is-j)tU7bb4lW&=sLA?lT1I$#;*Qn*2K2%BsPQl$#sF8rZOXYen9O49}(Ti79 zS+Zfh!%R6Ff1WA&(Jw&^NKzSEna`A>(N-x)(JRukWsW@PK^$X4@z5USVeaPET!PS4 z!LNn5X|=+N6R%5Q$_yoce2lBz>8M_n^sbd_WuE>!6*b-HB%8&E<<8L3MPNQuE0eC% zQ4|C|+;WtV^3OZ(hEs~_%TE8QpB)aOQU$2gF>ZwnXfX2c!fX4I_?x6;x+;4DP$u2X z5is67Xe;WLka!;=eW#`ier*Q-R`@ZI*8EBVQ`rpUUerS2wE&@KEJ5h4n~9_KX)??; zwo=fMhV_K*ZI1Ft#Vh~k96A`dXuSsSh0sWM2cYd^U*uoJu!Lik=iUMHoVhAh3^I!+#^x^253UH&sIGpd zMa#qZzO%m_2-qpe)0Ya3!bv;`U%(T5ewh9#pZzgjXrJZ7e2<+v20v59*=i&IpfCSY zfht)Xrh$WhQfx67|L)Wm7T>kECuSJX@~b1j{XG%Tge5HQlnVU& zPf+LSc9H>f!_*@yS@wB$UK?C4B^)3MSt2p^X&ZaiTZ+t6CUa7}CvUo0^Yp z3rtW*LoBwekQ$FZkTzW_7Ml>bcViqCB0Sg>7TK4VYbT>DmG}zfKBWZRB}LlKay)y> z<5E1+*lGKCOEC&(dLF3tb=YrSext$E%7XvWH6C!@LYCfaRV$4AlWk4{}u6QZ-dtF9ZJ1t9|*WW&(JmjN?OEEKRsOmqg*RB?q->k%iIm z*v)sR0cGS+Lsiglrf#b{Wa3@N^U(+57QuH1Svw`OZ>FZ%>YdowZi3|ln{VTiT(L8J zgI&kQjGwpbHIXmH48Q47v&;^wAGog*G8#0#o#soh6!b$R9y$a?^x!3BkIDj;!Y1bf z#%d0vzjxozkir3QAMFlh+oIj?_w(kTcIZlxtfs|$)E779bbp#mJ8@+I2M-~+a-ASA zQG{Z%8Rz9m3|W#06OtTvw;oaSgMLIbZ@DN2eb_x0X4-$V8Q=Jg!}Bc512sX$n7HG9 zOR41|(r0tg`}5g_dI3Mmb6jm4WVG2P?)BXlWq_#1Bua%3j3$6gz`MIS_n;A>IlPg# zN=-BWSoVm}8Cx^cEP-81}g5)VJNj+4uV+nm5!|mqX zppZp-_`d#gcMFv()#}5~V0mDhGBW&#TXI^xvb$D7<&62c4JF+m9EC#eS#yFfP%?Cw z?5Dn`|5NzSkVJG~49hywE=H%;7s6VQeUBo{PnZ)4oWbI`^c93tqO#8ecIewND?TynoqF>@V| z{GyT)dOkK?Q&S*grZ9p}83h@_8Ac-H)NM}T9uzH@y=7roXZeAaF~zF#gMAgkEofKR zX+iPZS7OA==Ic+wz9%uoe(d|t83IAn@L%b^uLlxc6e(x0xfPs(pppIOnzal)$j1VT z^%pB)@97epC&l4R@aiYv1H@F;J0gYn9L{NFvGTKViE&b;e|}9QR1}^UdSbZ8EI(rU zB|P!ktEoTqvJ2?`4ew{Mm$~)X1qsL3SOuo*FE`z$uv9-W3acgXfxe*Cd9JwjIJAwnq$%?1lgY#pYKbvGozvz;u5ug)h((~qPA=xaF~Wd6O>-R=nuipojA3; zG9yZ-+A-Md64d2POgsy=-ovtQZy@U z?e09iFpj<%yL%SKTU-O4QjQW!o2~hX)QIhl68{d5 zoy&!5VZ@9q(5s7$)2}vcCk?;MZKhaMs5p4V<;iBGvU%_H z)+&`tkw&L#f<* zk#||m#~s&J#LIbV<}*AxYV=E=q1=vVp)>1XGh7|R=Rc&?BH)q~26 z(7llnrHQw=pFd0y8oF4kAItSIh->AJA!5qE%@`c7TCg-OSl^tS)_b4z6m-KZyqkFY zge}+%L~crGWel)9nwfkq!U4zi-3RJoo%7yjOxf3E#}~*WKK&A;+ajzByJqr6dU8VnB<32z zuy2~V7(5Mbp7ySTDeoR1e@Vwm%vCo|4)a?aQ4giu&zPK%q3xm;wg~e%-u37UPS;EB z7hQ5xa`7e%8a?vLXNW4ydlulAMn)iA0;Sm75ood~2N>Q|YRUx|@ephw?u3 z<6>fVB2|iECY6b+Dk5g*9qw-HOvutOg`ypo*}N$kXUEB5YmzW%F?$-`p%Az-n{2hy zTlhhJz{ZXUq#@$OZSCcC(VOB+UPb2p^3bD{$2rV~{O#ff;lnEF>{locDTT^4jTsd^ zwLpnO9ea5AF%qeG9%2qUdPe!cX#pAPh;yV11h0U5_=se+H!MxiLHu>^jI+K3y4|tmG512mrw;BS*%Pa!90Z^P8M|`5f7XL_s{HG}W4Sc+mPo_bo!75iesjGf~=j z#n2+t)Rz`TW#Pwg8|;puk(RDF@l;bTSV|O@yqWo!+9m{AA$9IMde}))yl^XFS4)U~ ztI6waHeY2I#5C%!Z-BLuvy78bCRV=0?co{+)#pBvwh4I?EpH3EBuqA*%3?A-n(OpK zo5YaT9MAHCBTR8brMNh;h*SY%T#~ymQ}hkXv-{=w3{abv17Vns`!F{1%j&QF0=-AP zH?k4BBZD-wbm^fE>Qe7bd<ITr_&kk^ z#!;u_h_Emz(ThuT=@Eiuxav~3O<+o9g!I37`|7ATw`I?6+}+*X-6dE8K|-(~!JVMN zt#N{T(BMvRclY4#?oM!AVob#)wx`;SV0?{PNOSb`m|zuJ6B2>{B*R5FG9HseXpQlk8_m$ ziziA~$I+wa>-(>F@oPn5$>g5x>(R_o0^zxWc}Y_}&GvHa40LpKLF38|58(;du~w!R zL2FQx3mdJp>x0aaFmaQW!z_>W%r*Pxv#DkEwVHXl|7LvrEn+4D1O;<$7o!=vG-3|+6_V_l2M;O?d5fMkGvtq z@zC4eJ#^hZ96-0k9oaj0n%liP>_h#0Hi)~ov)~X*IR8zlW4VoE)w}m7AeQEri1X!j zeB>$o;OuR1SFGhF%^l1L2`|f;>}AX0_g0QJ++ZluypNjH7X^}e8;{H3dbXmw z_v-4*3D!RY%^VPPG6eD6;39Wq(a&hV6DkVm3M5BkHM{m;=%yRTDhbIBE3)>}^$-4{ z(B@?nmPn(aQ|u#^6|mdvJ;{r_b)Q8Q7H_X)GiKs5>;uM18x|>ECX%`spX}~EvY(?D z^N)VficYAfw41!=wmU=I|8?%v}9ps zIY;CwJVVdTZxo{Jp|M=-TwKaXWh18HpG>gv53@X&y^|^J0i35iaXdbu8{YceUvKwL z6Yb%k-Z^9lI~DK*r4B!xqS*@h`{jHLdzVh^o0m}&Pk8-hHMW}d$?f20+(pSkTqCjZ zj=r&)(wtcvh_bKBMMpJ(9KV9z zGAALW3z~enOgS!1g(cuO$6EOir4tn!DTLIYG0MBO-L$*! za5=zbGlf%t$kuM)Oy>O_`X0jQx0submqIJcs*Yv2!(*24>Foljkar12wkL*;u*QWXr5CF!OqTB1nB4*b+RLiG!s@RZpKA zwGkXFoUvB^B6jqcyIZCsME8TWVol)K24T{}h6U)8rUI?lz>{naUopT*4|S7JSQ%BP zl2o12U15xM)IT^nI3!JCBsOb;>Avhx={QgICh49j76!oT)VCEWAeR!rA*|$7%EKzi zyQot}KSuDb`qBZ}EtKv4tf&R+?R$Bdq~vZh?qxh3uW(^&{f7lxWv*amo}`eg z#%7`xHsn-FZ>hHIRn$i}!qj&=7r`@(YAF*;A*GrGDo-I%Z`99u$L#}`k%Il4Sx5yV zPAW#9$_y+%sO;<{HER}+C=40oFQPGWkRH$L&Ka5H8guTj=zLpbMK7uQ)xO2M7NIS9 zbX`!ea2($Gxv`?w?d5sy08TFTvTVT*)s8G)={pZEts>)6?+C0Lh2j?eyaR#L$oPSM zR08*R@96RRI^Qg$e7a7s(C`O_ejc;%PWLr{jwl@~9b1M0 zYL@F{6{jQrC!uSNLO{pG7x2GHeX3Kf)KcBVJ_&e_a^WovVe@eGW&Ft4hK7S~lT57l z99W)eEg0T2WDAH*ELEtnNC7ZC%*^r^Y7?l!oaDMYPZ$JYM%2Kx+~tpb9UIseYZVb~ zV`^Jd3jZh*a?dIe!g%!GTu^##{r#&k=&!Dyzeee?vw_>vKK^^I9xo@j@93|KQGh=m z5O)CJpI=Y_0LU}|Isky!0RaCF{ww&?GsdH!)_baffom=U0H9GI@}1l{N|JF}QVR%u zOGun#fS$qj=iPrjAc23re*bI9zkdE#eqY<0|6=z~kMrw9w*R-|)Lt8@{+g!t-wadx z(`WS`^WOfWv-K}={;P5IUl;5C$4P3(I+kTrb#_m!Z5sqYU!8VAa~x86nlsp+)iJ4W zE2|motm07@_RNOPNk)->>Rh$I{QG^p%!aUH7Udr#ayjAFLw;+ zINxhwwmolFdAm%mK3$KFHa4w_Je-=|ttons;N^Kg^);#A^p)I|63I3;y<8^=e(e)I z4{L1te3I&5T65#=aUHr#+Tt=#Z2zAAder-_lh|He+2vW3wNYX}YiRq9_j}L_pKx<6{*Z>WI%%W`KD+5Wb6S@b9Y&Y zo&TaB|D66^Wic>~d-w3c^yPk-xTP*~dAXu3l3DX)D=wkwwAJN)}#uRZyI9dASki!-Ep-3 zXhbZD4?d3~R4+LFg4c`Dp$cDx4x7|J&U)}rxBZCGRT$v?cp;H|<41poj{Oi9;>pLz zObUNF)|B0){W-Sd@pPr|V#QeXj&%h3hI;UlRDK{bZ|iV!QFFkFYkRo_uCjdNPPC=| z!G#31zcD^drQGv1S8cMtpW1X@)xVqP0bNb`f7nWvf!JBwkdT1_-64l=9F z8sceHmX#uo$<7(%C10IL1ComLjEJT4+gap{>|Wpj>(_HnLTJ47VS;{by54wBEjwa$f8@KH-eut5HfSV z{LW3PxWsY9BG+EQpcT;$V(F;Ms&Ej7Ol|#j!vI9}lVK?PEr=c^6*5sf(?F~3k+DTx zWt)I4T+X(yBBc3Wk7wdKDv5>940Lt4DPf4H1S?fc*m@yulrA^u2SXBb>K;6xQ{0ksKx{&fAQ6e8HIK|%pnmp~@% z$1NTvR<_ehnX%I<85;}@h4_}3l|o8_jF1Og0)57ZPe`KH?)DSw=O=FXRIIu6A3IO` zHRm^voL-L5CC5w7Gbl|B>>3@9w|p#L*7_O*C2ulF%a%)2k!QSwAnqkZAr2&TxeHNS zaPUNaZ@q57YxMuvzzx!T|7peS&6WFAZqRo$ua>13IZ?~1WiKrlMm(9X^k5I9M6m1+49UC?vpL^;%MDkEUe-jB0i1(pzbGdIE@fy2d|TdW}YfKa#k6>b7|cfY+;f z$^*n=hfzj&6WIDI!oHl@uPz{enb!M-PMMJhz}8RzvLs{SngP+X_k0lXq6A9mr6k(R zRsX10Cp6N0Fk-p0dgHzBB^DsXrY*C}2s%3;POF4OR_HcJ9d*_^w;0A!6A$QUT>^2i zg!hr!0N4S60T_Hq5{uBz_`}fiD?_ABc9RwDn0yEP#gASqf}c8?c@uCB-B^gW)*V}F zn%0Xt7TjgT+)v@mPO1Mga$>Hmn17qyZg>33=o8}|%nkz$l)JI$9=5loE1^6DB~M?Ws?#Gt_sfkI%I+G~?PpEgt}KD? z{Iod9@Tqgm;Eb~O4Col5((Ab;cP{Tdndd7HU!vz9b&oS-xNMhqadt7cKx{OvCl6P+QXi>%j$eM; zNJ~sBF2G{D;-{QmEKE0?*Kv*?6-EKJNB?#P9)VU{w{yp*&*z`{yFM$ze!0mQ1|#{r z;}yw?ge9FC0MCB082qOGjLpKxNK-AnBj^d!*>KqOPJ zj_faN1*igMooofP5Y!X921!(}D<~$qB~@m8>DD~D>G)BS@jTD15g?f0yf?s*I<^)5Y~IbP$Iaik z1(o66Yi4#piQ6wdZZQ9cOAKD8-=-8%4Hem}cbwup7p5MhD?RDcb@(_At2=&6 zP7Xt_z>fk0zbn+Td~hbnFVaAd(2(oeb~66F7MD`lYSIP6vLaFWq=#ggGvP z2b+NHzi1tt@tCtuAO{-Q7P)%!yusJDsMLNbYPWaiosJV^i4q^T;tVnVm(OfI>KIBA z+o>UJP8AM%>>dIG>igz{?ex(4a6foh-|WYWV)=xAfpke+QckW$gVU=7pWw8=S|a#k@#_-YPh@-vzv5W+_wrw6}eA)>*P#q=Gy{8me;Y zsT=Va(}?DUcgHSItqiOP!Knc00lzJBd0-}r@mMhgQj|d6(Xbh%*mRaG-hId@4uV}( zs!+_^%11;#y&vD}aSp;D^yD&;uU!0!UZO`DKDV*)FeT`A-lF@pn*b%ax90|Xj0o+j z=f)I8FIhGR!T_83kFTvWUjxuYA*Y07!X1k7fyfE%08S6ncI%9TNRcA8R>QzKst3Dv zBj`=g*oMJFoPb+}uxP6%AuQCU!GoOqR1W)I=rJb3Fki+dL;xek5Y?X}bQy=_W%IF` zGkVoue?q)Ubl$bY@)*Jd({H4W1Z0!>52s$KHC+C>yxSQ%?$DmTs0`Qm0H`TyD5hZ}m)D(i>-sg{R z;S&V=7N;X!TfM~kE}6$oOGF3{;&u5$;;|~tquuma>?u(#ZO`n3Y z^XCqMxMB_YrT2HWtQ5Ab$DzWwT{+{H;VGv{d05CkR#-Z(85U>R7pKdol3ANOVOX3a z7a<0vYs`b22(PZP=id64FS=Dci^sU+<-T_QmUg6G_TN^((K4oj9Gwh3@q_{eJ~$*o~02|e|z6I;VtN?%pf z0f-Kcdqo_8&={=u!_X>Zgi^Rl{twfheR5~SY9o-?bNxJ2?1$I#T~<2O-*^#QEbk0P zqw1@67Q42Fk6x&2j6JMLEqD zx{{V{fg}&0Vi4`sYG~9O82w3?Gv0D?{6mX^{L%uddPa&!BBftCEX-z>x!B!CVublr zD-pkybXh@-D_g5%Pqi_?(Vti2N$w)(;{~SduXeXGdS-|Uh~>@<+_~SAmQ)^u*(t+> zT9U@!Xv-)?g8`SN%g8#&GsAKg_9Aq;K*tJb)p%sFlFnBb2EZw$OZt<|eh{|7Km2>w zI2dl9!}ZU!sWFr*zgbBR+%9-JhTGk>@Rn)n7PE8Oi{7V|m`S&3j2HiYz|LJ2wE8B8 zp?U0Qyh81IVaLow0(g23zM$K^;H?fG{gQ>uOtCMSZcar^woubFT-=dtCJ|2TXNdyf z>&cgl*D(Hb1YA`X9r^G7j^7Vg6X`3_v-Mvt;P8dEmN*W2qM8W|H$6n3_Zgtgd%QF< zpXO{TeV;NmwYuxSO-$nPt`%AG`lb*G&Y8|?41~@VlVBKLQLqB{}H45M1fsiFNz^EICzMyz>(m|k~~_G!LwvO zvA24_M4b83rax;0P3Y8sqyNnS*Ia|*Y^vtrrnqClTnD+kDwRAO^n)B-)gb;)tT!=S z6fn#2cl4~-oIphH*Zk|V?yk_hJr)uEnu`Bb*b3q;Ir1pDZ zQOek3oH-FP!3N3Q3~yc|m7ItKVT?+2@(}nxB{-v!o~Up-^rjp1Ud>2;iDa-{(8tvf z57cR`hC{@5%hb9@YK0 zoz=wbcHzuUjEX9O!K(GI{;Rzc+xgFd0Hu-zztQ{=o-l!yZTiQp8a%!lf_S_1*l$+d zX}2>^M=cu)VDcxaC1$;88sj%%g5C<3&r$ZfkpA;^aIQ{YX$UTm)I?`a2FhS8J4-+m z!{}rF11iRlXvMaFfE~ctY4qwUAwszHG33Gf)#`QQnpyYstJqYN3c?`ijpM0AH{7ti zxx5KsAFq7EbEwS1H#CsqH6BJa``D7nbW1J&CXkgULnRLhXHO(O#@1*J`In#|x}LJ5 z1v)hA?VId1plaE2w=VLGN?I753-*}Gum6pHk;z~5RWbifpE}2AT}>(y1Ep|5k|)c; z<9JOV_6Af0reEL&rmt!!Ri=E^HkRNb5nEO`C!8ztoDIhW^pL!46`c2WWM;*ENDT2Y zR{Ay1`iACbAI>_mpAo?dnwjTuw2wu3-j$g@Zwbi2QTgh!Z2x_Rt<+z+2?nbhnfq(R z6ea*SBmR;n5gopVqYGPKPr#D-avt}XY*Ozg_jJrV8LivAC|#5Y4s*6dK6QA#z%v_= zz|2l228qF0qSC1Nag#?Sr=nV_iJ?RPN#>PuYM0qk{#0l;dQrmKp^yw;3r91WoDdQ` z22kL{LX^O)`5c|0;Z4w z{cj3m5E8YS0iRB-Wf3oC#SmXTJWe};G-9b#vs^l4xHG(Vxl@@Jx5i{AT)|-pWBF3d zXpzX6@1L@nnGf(AE_g{yaGnLOS(c+DIP*>@h>_JpNKa&Uwzv4!Kq=ecJ_rl4V>(d1B1P=Ze} zn-~Z9%?bD+BU8+xlLN84=6==iG472OL4n_EDxn06*&itXDpdPq0kBXV_3A`BQw@v9 z+$IrS^#i8{=y{A8P1*w&BJsflIDa#D+PKkkJ(^@aITLdJmcIRku(f^di_lFCj4BF^ z)F#7|LiJLB0#_6&KfD3gRJc?h_$7EQ9FDrRHr8~uq52VF2k%HGW>vyq60T~%URO78I1NQ+*Y$Yr(0)r69cjWN^Xa_O2mVJd>LtSfH6AbSTr zC64i*Mqb-<(lUtYbdv&NSE;rHiZvS1Maf_11UXhH*`N6^lw3&+AVC2=DvvNH>ymRu z^eYG+D;woQ{X29*LmD(!cy|1;tbCd17li^#e49l`3njwi@t>Y|!0ms?2yl4LQ8Ci2RU{XEHY44w6pP;J{>(j5leL6ZEyrC6xfG!vYl`y`;6+5)`Pwz z)_T1xl*ba@opZ3}V)o>vE5#%Q*y!dSt$uzV`7%JVAR8)XYL75>b~Z7&uv{^%CtQt< zZEu;#JG1L1JrL!PU5_LFEdo=6AdYT)>q|HX0aMY1g4D4c2^0m1N^LZAFGDEu72>NRk^e}IL0n@Z-Ng0O!nvU+DBxyI2T|- z)f2*S1g2B31Esg`wZV5*HMw8f!N8+fH1GME+jC+1TekbNUvk_b!O8_~(B((l%DQ_y zeUE!TDf|Ahbv=aLGc9e_Xu;`(1GjG}tRA;Od8eHk1eUsBP6}nSRP>CN8p1?yA?}(X z!;G~Uju`T|VpsYZ>W=#u-3Ozg5b`)2lqdYtJVW?G2rry`0HPA;QmoUW0aC56L%2~} z2O`c^=QEO&pTZrp8&NKF)!pMPI4Fi)YcrO1!C3V;j_fqHN@d{KCBazu6oTVW4RDd) z5$Uz63paEp1D$Y*dcA~ymlmyC;v1Vuhacib>20$$8s&X$8LeMfM=-4weh>?71PM2{ zP=6ivZe$s;u7~>2Uw;8`AQfRb4OJTM`{6 zckb7#pyhk0p~gZC1I9*;l_f!?Iz)Ayd+9>8Ici6h#Zw669j<%{iiLPg#S+!=^9W79 zTA1IIyq%pyV|+Sd)*NV&4#q|RUnl~golKv)(B@ z&$?tiI%?p(a4%k4QHn#BnlG?#@9mWj=@`S>Nse-pH=;b~;k|##TKRcb8^N=F-QAWF zgjxoddK?E6q3V`fWw zt6j2u0k&l6p+-DcscN_iA9THzC1l``PV*&{d|L8G1$&5V)rtdW33-u(%Qo!PZ+Ji%eUT?+C!Wp6y;{#jL)=$SeQ<8y5S^YV&m)RiC)> zxm}B|ny1}FK8f*w*eqx89qh6pa55>OKN@9=v$Zyz&XV1J@Je>bS5?4Wc_H00A+E9S zzr+6Zz|z+FE|g55kDnAd3(}*}Db$@?J3(;X z%Gee$?*O7Y7ZZ2X?n?jZPhWS54?I}L*@HkrEmm$bdHvFN%-rCzOu{Ri4CdRIxtn+8 zkY8n)3o}d69fKGVsBvI^Q9BwC+RL62LKj1terU*pHUB&DR|)ybsv(cZ%k_dGk4~tq z@Q5>)Hfpm>ape40>G~hwqMLP{sX$9bl#nNXzoO+aaD?MDa8x1_=ccq^+ zj3>qjI1gx^Ui!?`{%V)pi_bs-hf>Ts=lc6awI!dY4Em)*HE%0*iEV99J*zqSCrzE- zwxY^dn;_rb%2*HbgTk%keM-m1B*lCzBbQYCu%SO&ROYlJFwsYe@Lt?#w8ubvYfplh zcYwXahUNf9LM;0pY8bw)1X%%AEYw+X^srBUcDAUxw0EA1gpOV2Aq!W>$?>6cMu*p< ztR6V;HrB%0S?@He?OK`qbc$blwvqMXq<)E|(IOcg*o6~Gxit80ZbgHKS}OblY>}Ja z`T*LGURA=CvWodH@~Rw{=Ug0vS}cz@hZ%lz8~(wowt(v zK1Z(({#WRa7lO&a1T{VR-5)!i+|=HIuFMffqw8U{JN*;s6sz??eD=re$riSnD0d9y zL>JS$z_d|m9-XM9nl5HUjz@-V_hkRv@4PCkO#L4GmQ&uI*Dt}gr;-0i>Fd)PGEk`v22y^*S8$?`|vh*LiY(?xp$9y(|CB$NG z@K?Ll|J98vk3A1#sO#)@UR*W#BFF3Dal^A_>lCzoG-1*|@wPp^6` zuRgA`mNlk`Hs6n`ca1E+Bv~t8RnV1 zzO&3)wAFq2I1tTn&&J!q)JcL@+WSG*dD;5N7r%FLm6+kBR%In_Bgoln7iJQX*WvpC#Nb_-1l70L}a9+Ph`p zrhzbPHS+3M^fc&35mT|tZ0Do}kyGv_*EKQwO5<_a$AlyZdEH6o!^<7${y}gN^&yGp z=Kb9G@h+7K&9hfB1)+g8+wJ-FD(%WIH0zhE6UQZ9ye|i?MGwcVD1!Hk%FXmWtE(+M zCZaf#qkao7JtDI1FJI}NBH|D#8q)io*p8mqJ}=rWU5TtTuZ-Fy)_xRDT_p;936dxr zCSg0!*lz3EBJKsAbtNy1pGtctj+9L%5C`t*A-(KckJg>01&u#$d*KYdB+$Q1W>z0} zt4-bwEULep4IU}ltUB^OT&;}mxon;cUGI#xxnDhSD%S4DWeeXDPKH0Q56dhrwbVWY z9Q2+$(Mf5A@XE3~>GYJ%+Z;l6;o$M$0DwSGXwZH8AuP1F(wR)VGoU;HQ=?C?T%qG; z4j4AfKv~7dfd~kSHAT~NnH^!!Iqe&O_nlBuN%)0~&`wzf2@!X7UN1r;=?t^w)8xV0 za2l^(Gbzf@bQ7xl*o?J0u|b=A>q!5s6k;QLp3*|M|5zHibA4(*zVe(y_E?A|%G}fa zNfbt~P7r%FZi6@1%)Y5kR5(tAS#M=3DEHQmUZLxJxqLRItw^B1rvl5ldhR=pmyX4Y z^@sOx>C433Qgtaa<}a(FqGs{SWa@Xq0x^o_KUsTjPPRYI41XI4Iu^5Og0`t6U21un zU2;nH4MO(zUg>3q{5LtfBrQ!<96Up;18_jcMx8-v^NiIiOkpTL{1Ohkw?yLPHm$|uuBm)>Y zl2Nute`9S&LemB1P@Be==Cg`Pqs0YgRa#jq0X}P)*>Hnq0duaXpo|j9_V_tO7iXB9 z>3C=q~OCWkZkmBrcZE?D)ReT|qVi&+K=z z%%X(IU#!$aUesT#!j@^AlyRM&J_wq(Y05b*DI^2MExIBWB*09Gs@=W`h4=l9{`SDn zmlV*ZT$lZZ?E-~pB)Tg!6UCf*OaE6L#>E(m2S*~J$OmyEZ)s6!@weWtfp6-y5kW?g zSapKW>x9EJfh32{=X?2M<=5RKNJE%{kXzq=fwsRHUm-ketg|YXP`#y1n1Y2C1+)rP z`0H&E^QBVS8{p?me+%IDUcy{#(W0Fp60KOVHYi%K33HiJ;Vu=f;Ox5Sj)_hL0Q46r zu0C``B6y+RN)vg$VPhZ;1Dy(cZ0|*>!6GLdXt_nKS$X89QMwrN=Bh4J+g-^D-m}P#S}Wy^Ze}1uAOV!f-A9|w#1FG(8w>Ic z&F#rCNy=>^u^>$u!UpNGwxPz)@gq^{Vg)~~%1*>*|BkHtjni&}OZt6dwXDeuM11!> z_m;$>iyBA7mX>6Mod*^){VbH@eS5JnWAg*?m z-j4|cg3Zn28*`mgc@ojMjosW^ReCS&ko33>=iCb2cun;XLCqtC`7$|X+v^X7Pre*? zpXj}GLiC{TV`4n3@dEVHsxGOIeHF2OUk65j-@bga|LFC;&nbtUz3_AuecK}K44R5s z0J3}qDDLPU4iNj4UYb@C8ttqvn2UHA$1;(>mzldwOSS)If5DMx)e)ifgNEa0^M2TX z3{(#==o?9j&3nppurHLRoF{P z<}bRgf+Yi3wWR75YP1UbFm-oDGc}KL5bhHW(rz4~&@(QuKfV`bx=)MW)G2%xt7k*e zW$m@mvm_0A;!Veo^lTM7Hcn>+L+jEQW-6T?fR?`R(9-u-m3V?HI5RmT_5%`HIz-(l zFV>BqCSnJRu0A5y+e}14JcksxLbaCU9@8-w`t@s)IRWdKZyB!zXv zeRafZo7^sq(;N`6P}Z&&c*T?A2F&Yo+TDA+*b{qu>j$4#$0?oGLfiU#OkF0mvb|sr zg6e&soqs=#gv&&3E|f11mkUL3ib2_%fcSJuK6mgUv;rRo_wlfNGrpo>KL!)4q~|n~ ztN;3dZ3GLYs`6u3M{zaL$|{yV5gkbu^|Kc5A2amXzh4IYN3#P?;@pF2=N ztBBmR@Tr@`d;#S7Y+F&}`mV-MgE@_0s|#$iPhp_E9PAg07&bs_Krzo*vlZ2ycU&Ih zq#o{${Y_LLI~Tt&$oGvv)Ts7Zf+#_z z@5w*{2^6<8?btn5NOp6b<(6F|#JoqPPlX>$G(z_A$$EYxp&2As$F*9Rh*9SuL-@1% zd~jKDj+x960kp4k!FY0H$#8h0te3ekBoBu8+M6_ZRvR8qe{F zfrvpS21VwN>Gft?m@`|Q-I{Pt+bWLpH%WW}ZRj#|&yIA`Q`)<*&3yITrFH@6w(uUh z@D%08VyT~D&P$!oIL8$&wmbI<3#Y>RB5noaUx=V=(B_;u;?7f)x7NKtucG$}wh2kz z1x8##C~l+nmsGRiN;9IKzjIip{VLs>3&(a{m#=vnat%}4r<*|Gt%N|K#VmFEcKto~ zr<1mJp87A2)~1mUi?h!{?40kdwbC|h(t#H^2?xeem;u$u_MPw+1Y5s_f3{Hd7p_{a zUTYcP-C+E#A9X%HUFGPqmm3B&P@90@>q4?Q-Kbsf8df;zK zl7F!dou=U7hWAjkT%9J%rBr=OG>V!;LZelj zS&Z1sS6m&ADVM_lt13tTxAJ5Z40HHCY2Q@5obmCl>6X^)n-ag&>ljzR&AC(2rs46; zdY&;sPNv9Bq$qI(PO(%LwX!ur=v6=~l05~K_&yoKExI6@xI#?3ssmLs0;d=Ze{@1K zN39X~RlfY z&x!W!dh#%yy>ce+-*?x1uv*?DgyMJfg6uk33)0z*2-%+&%}K^jFmQu;%PtJ*pGd=; zTb7JZ=9kJLhKGq4ujN!t_f{*E8m-zD7o9r4cew!{o;3rnUgAhM^&Gg~J2a$$AaI56Pr2mpO64oJ~Y z51CL)r};W1bhms4=v$I-d1U!rSj>K@cs>(VT|cCvFv-uRiAzgPutKXKj3 z4aKk8`~`dK>p<1lS*$G;`4PD&%%$4E@_@Fd6+!!@)z)iga46}zm<;Uf_zv7q=AIq; zs)9Aa)nAyLkteP&Br^?#Kk5K2@Ms#`o|R$HCMCVmal7oYMBjWZV*rjpP2H#|?O=k{ z8}ZwnR6m9?3Kae^?+geGbjVVI(3&KONqmEe4P_W__m zI05?vqLCl(BgM(X6{t@FX$9j^-A%vNZo$tERKe$l=!bHZJ()Ro*_CxI*j|90&mLz+ z*|0hQjhF3{jbKFjh-e`%NH;*)HGqtc7z$d{0CtEr3?CR#f|3j2JLt9TG8-G~8_ta1 z4A+st6!{Ox=NjO0DVAW4-UKRtcuUxzP8`t}1xvV9Z+-)lWL77XkZM8XYN6U zC}@NRV_oSL>wtLHo+^lftW^qLr#4)+C%e_rh1FT3z}$%6{IJ&-97j_2M_=)2Boqg2 z!4otdf#tu4V_EXr8Pra(Jy37sCwtEVQ@4@jBRtf~*bY)Ta9J3T>0=MvpuGW)gX~}k zGE!dhaafMAm%Sk<QG;sD=;cd(#^clqU9Z%|RLzM+_ZWw7HFnlBW(gjL!mJdOgM;k)lN zGTYnT@SH$Y2y`NqMev=*87<+HovNe_PY55I{s9;YFBo8~!Vdm_<7)#66M`t|_pl>J zgX4XFJTvtu5x&-aA~lp>rO@B;4IgPdUw|VRMF50j}ryD)Mn<*5& zC3Hq&+YB5Yhjwh9MZq;+Y|e^!NE9!SV*(^g7zd|4q^jAQcN)X0>kGDP;A}SlpNypu zT1odSDl@aAKFrkhXDFu4p|`lP#ECPnM{4QLYGYOjS>;x|#uz4GR9$<+09IFW<4R%$ zr!S}5P@nOW`l3Ind=|)w*6ezEWGX$7a8xa;?s6n_b;TWR??C*?mjzS(G>X8S0lA{DL&@YkenTus$MckxyvlZTeSbNH;-WnuMX}v0S ze*spPKN%R!RmZlqxp)cxB8tvFOcvhFX1zy?*|jSorDVjqAe4SV?@JnR1`TyC2Gl-A z&8l0a2=^q?832t)oi3ysf^}){*m%SR6R78ZWDG*5OPHZle${kI#~<3{`tUyL0&w6o z|8f5Zf;pvikyNu}a=XnT$)vb)nuS+; z!5x71dk%8N8OC_Ixi(|P0#F8|80nkHlC4Lc3#cwoeoIO2AC%pKCffu11O3bem%dQ&H&#y5n zA7l`e*c!`14R5 z?$khEsX@9RquGi0^TdHIny;AzjCl_7xvf<$GU?VkkMY11a|!K-_yya^x-ru)8gonU z2{+z@Uu5+}6u$L>R5S=%9zj>6cu`$7Ua&RMu;{`k1Cv5qh?SylIr1=G2p3%HVBIjFJG>cTX)lIE^K23Zd8#u7h>m=xb)s!9l) zbJR`?*ZU|Qkhp-(+T_ql$o$n|MH!`Bve=9pH%5u7~5 z+X$bz=T3CG@J(=(ohAW+#LMyPfV%VDeD_OEndXqag#n-5OQeLkF~_|e2P&YGb&pPT zT-p^6s_DW*qJh6tqjBPBG1>Z!es>&X&^MuG__P%Qob9Rp!M@1IW*4S@z&dX3?fJ%F zCyDF`B)>qOBwX)-+=|!EyTetbomC4flG_GGkJcR~XXh;w0~vH3HYvp6D>F8361XD1 z05li55BuZ{w=KS_jIV;CyUq3$g%Gh2356{0v|`q(lpR&upEnrYnC0*%`_%BR<>OhJ zFW8-xy_afC*y_RMv7V1n=et74U!niFo;_1lsnh)WWk!Pgvyq!l0&Wn^mt$T$>1Yl6 z5pZjE7ZS)DXU&*HG7BRNU|7q%ffs!8rECP>k*Ip)LCV|P`2Yim&yZkFpAldp4KH^NeNU1s|3rBx%1^(T4RzOk7xMaU4iA%l)+g)ZXPBzo@Cq%xG? z!)|qd6^))3)YQ+h3+h>1F#sjJ#)D{S6V38d4w>%6<*u7^7PJ@goqIZa`v6vZd=AJQq$J=*sB!5Ha8*N@Tz*xfh-Pn#P|lWoled<2|J?WEox?(D zW*PmlO_!ESRZ}@T_lj7*xk5mBXmi2j(;@cJtMdwYYVongLS2I&58J~hY)M_d5({hX><(hctf4wdVd zu_kk*cXy8tE@{HMTf+pS(oanMZs_ji;ZMf@k2no55)`aJ^FH8z@%9!#b!@@9FuEZ) z!QI^@!9BPWG!Wbg?iy_4uE8O=1&82nK?A|v-Cgq!Ip@54uGFnp^;f;BsY&*xm|3%? zSNHdQ-So1YCFe~M#h0e%hgKvljuQXe+T!D+_b^*QqQ+;qbs*V>+2HX6Kf6e8+L#(z zt}6r;SYw#veZs{`9JGAgw9yB6+2>ItSv79xO=nJMY>=Ortmw`N#M%54Bm_y3I6yMYX}1W4b?~)C(Es6bqG1 z;D^;s3!ReHqbz|c?c?i}apufUZ9-IOq4ks8u6e}G*&~#}jz(eKhYn#=O@vK6QdkEN zBP_ecpdrpWPZP8-E)*_!!UL2nxjb-_avG<9sWnDfGhewVi?|^M!&21W;qziN$ZTFcps#$3I zxmJLKaqAQbjkpR))1$|s^)f_R>V3548xh5A^qOB3+un;^PA5TeLYbZtGtX@t9E^ZC z6;t94f{(_9&Wp}p{H5{+aP}lxuZh_t&|YjRnV1d1A}`7gokW93t0XEjUUGO)?gBX~ z@kkcR&8KYo`5PlZLZ^^o`Yl0H(V7LC#9ZoQXV$%O-{CO;Dmy_Tp($S&TpMUaLCglS z0NV09S8TQjSVezH)LJD-7r~J2GVuY;^r4vsZQ-RuPEeSNr(Qed8MhvB`>43(0XB3Q zg8m{lVFF?kFi5hFSn23lq!?nhIhFH}*sAtnJZ* zn-`nc#c>J~x8F-q-{I{Mje8uDNX%BWG)$pByEse{1i&y!B+Idj5WJMoRzLbfQEB~A z0E8*c4p*vzIfQj3Bc+Zqk)Rr>axP4LFGB!2s|V28r^H{Luq)7Qwe2!cX6|Bx&ocX1 z5=89uM-_iw9`(YSvFt1dkL6GNS9OE&iS9l`jibHKkn=*Jhdj38t5^ zs*JJdIK$ug>)k*2D|8shWjNI3REUtbcN15cF$6>2I7DmCSg$^x1~6D`HxlYT4S`b( z$b&J2J$g)iPeVqodMNrxfdYfa@Hx00K%GNQlMl6`n&ubfMZBT0Q`kQr>9>{GO8rkY!iK9C5)@G@4;NA z-Wf0v&=&A=t5P9>Iumx0CrTw$%%P3GeV(>*%@4YPcz)1OYv@L01(RYQx~in3alxFt zw%=cTO=gYc@D=-mM*s(IQygSUR%f047k~+X%z$D4<7b5E_*DQN0Srw48Z=;h}kA4HqniY(gd0Ri<>zOL4QH(Yv{Q#5^)G)9T-w2IMK6EH-o@DL}~7! z2iPu@^BZ<-s}omQQrDk{bW*%GbMMhfDE>)MB+8W(v95#l4H*o8kH36On9f1G$m)39 zxckd2p+MNTCw!E<*7%DBc0J3$zmP!SGe81klnp+cz_d=pu+O2;XwT{a09Rt$-gx3! zhAi?I{_&30ci-Q%{Dx63XGn}ysAnOKr15!NXag>^jlFlCa#qkkIl5Iy#~|op0tT8g zVg5LkE(#Y2crl1vyOtBmSS^9o7uNyYkf(H&50(Tk@pTH?rHt5*Pkiatbg@)_-R>PZ zhZIF<1i?K%Tgq*t=Cw#vs~?T4Q`OrTLBOj7zCZ6a6Fx#m zB#cq5jCY@rU%gWAZ1C0d>`4d$lt$vyP;jQmAESxi-~CJUjz?{2&q>{r+tEzASKKG8 z(cVmVG0NsCTnj9Z92)_0MW%`AlX#?=&7%448;Y+li{UdrPDq!_>K@uB6A8=q>=8g#ktgqK;C1n?<|PC!t& z8}t`NOF;SRPf``|L$Qy*VTv%6MU`Uml=?HS#UO)`Y*tdBzLLl3e3N@AWDBThTl#j8 z@;ziTsSi7#$kv`B@t2P`{W7^;XImIHGTmI(++%}YMCLcO?*vS!=Ea1*h@5}9;5S{u zE_OKitT3jsZK`Me*sl7soVQ7=$L>-%5}5 zJ7xMYLnGh)c}*B>tYa50h*0(^WB4iJcr+J~1 z3{&eky<3cZ;XiRhB)x@}S#w{BPdB}SJO!sy!;GGxQ1guZrKoLkQv9Q+i2`!b8$J^D1(lrkl`MZ9&S%`U;c&t$-Fn^321@`H+2Rr?_yq0#5gF_ zDf0qfhHm&AA4=cC;p-KU`8fsT0ft8~4HzA;-2ne+if@KgP__f&=0(-qbOL<&X2Aj* zF6TdVZY`%`^p&Q0%n3;K--9I4iB9-E^6Y312wu7K<1m=qQeo!>@eq|JH2yC-bP@|; zBIjV^eF5fgOJzO^+h!cE+WzaVlmj3OdJ}lJn!3-UB*Gn&&Cj~EFsdGi7p-7a{eBg5wQMEfY->1O5oUD!Wnkk*H*uyGa!#g*Xx{b zPS+)gV3s=QP*K-lSNafT>I+_&o?mG;3EHx@Qey8g_5BV;{s7WMu)rTul~58QWG>tfewa+<2(JyJgrGTn`&lO;*lz9QV!}%LWIQA99Z|CO%~b$A2UQ( zeT942+0-XR$boE;@yn%nJ-#>1xL#&DGR7loZ-SjaDqeJT+3OIDW#A?C10tek0TNna zI3V=CtS1)3lox*-^2Z-n$p!u;LHlijuUZZ^sY#7wscC?qE#PLo)G`I33$1!l8(~5& z2YV>m$F3|zkpnhcwE!n|c!!#JtZPy)5-=F01gR`CCKXpUYB6GrzMIsfX2tP^-7nLm zK4=&~v+9@P=#=2s}g7Tu%(P-oML9m};y!I%P|5hE#r&)77oa7fC8QO#f8%L(<)PbG*16{AGz=>(*G|JdgzY`-DQq7WZW=7 zZFO>SfUbccwNuv~H-sd+#}94HIEfTfC8wU3Qa1}`<%#vkeNp|@Z)Ft`$aWKhK(Hi| zj7BMxB4H*!-cuT;!2i*qO&H@T0UbJ2llt%M4SAJZ^#x{40$mdDpSIYTe#a`6p!S6- zxhW)p4b1{eLV{lQa#fo#>Llp}#2K_9)w6mv#>t!7>wBY=l0o-S6aR&zIdbLZB@&#Z zB7yOBlLn?-O3N{by?ze%2cG&(fu=k)DZqR!{Zsqcy`=`*3chD46Fqah%kETI!qytN zS?T3O=IW1MhUJ6J&jH8{UX+K`7ygNRGyJ&p8%-aFWV>AKJV&s6eIJKCaHV*)v6W;hBOc2Ae9_s979AkR$=^$7+Hnq&*ne3qcQjX^Q}HBBpfCf)|0Q

C1YdW~;`jz-lG4(_Bx{$BKwnkk!u@N{0oDa*<0y7zdJ$*$c@@=&ucdzK* zLD8c?9gM5S(bCrRYtGy*1#v9TlW3R(g$j>a6oZA6?n>ehW5lvx9VDysNQDuMfA%uQ znEbgvh9Bb#02+bPng;aB!eQVCRDSHm-!x9)I%uG@(A-Rni6#4B*!?(P4}8zck|Vu% zw8cqP)`dBLkGQ!ZqC{;I%d{L3YZ?yc*K)n%3<#AmX1<)*;<5e$c;VX~CugCMSQEdP zUR3DDEkK2i7;gB5W7dUzH#UN1{_HqQYxUUyNPZGfY4&=vLI<)$L4MMBQ>V0-w@iBr zIt8;ty`Wh5+X);=GV5Pzbs;Qm-yOZ|eZt>u7u;~h^1K)p(u<(D>4<%>WpGa3>f8kK zOgUa~N&g>2XdFO<#`$j|bPMI0MTW%*9^dLBc4Nv-79J-TNBVJ{-xh#pn=*#2(vMXY zwoNmyYs!G6y<%|MFM^I_6z&&D@?uud_Cc>8qvUv3)8&{m1RYFd2O%ZYWIANVkFp+$2vB6SKV+}P`=Z+bO5|L9~#BfoB@uovM~|*8$g>0?bA`aZXB#W80HNT!pc4;{vtU8#K#BFn31XY zSc`#x(^VuUVdYr?6sF;;ybzz6Yh8uaKY&DhD_`vIoJNVDs>YQJpH4$;vg;XAM2oNN zVJl6GjcIuLtmzokP$-eb89Uvlg!EZF()`L;o+_Hojt}^dO44g6kX^nVw1g*op#~}^ zka}ST(lLM%4cu1kG*+1|=oOGU_=_vE{lk?Fzlh+68Z3@0QU{HB+h-5x*18LBg+mJ= ztRcd$6G45SCwXVvAb#w=!JFzyym_>*_t8n__zp>!1RM&%DtgV{0gu_`LHQC1E_Q%%75h~9ibiQ8AbfcELZi3>aZfY4YN@xI!A;lA=q zY(Z>rclC8LVv2#iCcAJ;ass3*4n-*m)?@63_T~T+3q?f71xi6~*FLmM={8Tdm8wgE>z;Q563b89(6>SczV6w;vIs zEBvT7|L9kwa@iAA{d?K)BkMvN&C14#1lpns9|&Qj~xl5XZmNl9i&)cB%j$2vf#`@JMUPEG#C1fQpW{ z#xMfcmA`^M{aYDVA$V;A?Lt;Z2Iiaya^tR_2tqxlY%}j3sU`dNBx4N^Nu6fV-L-8x zk7j1bU=7dmHZvdjfo{v&%9{K7X6`t0JV;+a>tQH%xbn}v3_y%^WdBSS{L$#-MmU~+ z(tMb*Tm@YmGqo6d`HKh*DAD#|`;yr1V)1?{Q`#oZ)W{N$+_g{Z{v|3PBD-;1`%jZ5MvGBQN-=$C2Ik=tYEPO@qZYTL^s^a%!Ui1A`ypW(YpX)7$ z;g{!L+luA(rTBtU1FoLZ1w8?_W}DwM5k-yrM~Q5vW!KjYifygWtJ@Y0vSfYZdcPkc z=kjerp6^+>mTY$YrMs_KqEmjWuvf^Ow-U5F4m$1Kqe}h|TH?Qg1G=z3rKMGJEEhOE z>GfkKybWeAaD1h55>rikCbvlgi5A-w4YAk5tHM8pGciSKV&W&QCppPdTQu!BX>7O7oWZ55|^Px1cn|3oR+JId`a4ii5_iE z`;WbNkmnM<2E2V78_~5{;X^IIyU4)-YNVNeFR|5G_p2}6JzfvC3$S?}9W@_Y{%*Yy z;MHjqo7a8XOIGx8mK=GT@pXPsFU4lI!9d;G^WxXBkSZ6_!#93vd1+m`!CB|T7E__J zXee#8SxpFjD0GMbVN~Ic$Bv75(Jah+k=OxVaqAK$`&6~Q?U~Z#7oEdz{_-(vlx9DBkhGei;8E#Y6>Q=g=kHW zhvHh822W(qH{!f1D0706gY#Bc+=32lWshAScnU9?1yc`5w(?qm{!Hbf@IO&IM@1tB zqh-%q;~ujq&B!Kvz?as80tog`iv7PByFwKAiZyvv9yi!vk=hugnb#TUkIbmcO@wc}2bHxcP~7*Zc1-fpU6 z+|iBsx7ki&)0s=Ql1fyFEWnI4`&UaUcR6$W6dk82rSbDsGH*>>uJsTzW*{n6O= zDh(}PSKY*OY($(~g^&57=WS9YAD%{ejIPyOu0 zy6kD~yky(kHNOV&4hnBFs=~a>wr^#(Pi^0(b@vzlN_$fExEvgJmf4F&-D7k&>`E_) z<=0J$??;t6C*t+Y%&7Of@~jO?-l1;8L7bOfCs~HC5SAJIw1yR8(eV2wPy@n&u>hOLN>zsoEJ}#%MPb zi|l_V%uBWL!%iYFsC~f@q`OXFYBp>bG>AZKe%>^Y(=6vA5{ejv_?Z?((q}BZA3v;! z;0<;E<4WHR(kk0G{+?1iV@hl~(Ax3U^gG@OnVi)F!3a@ws=G?G7DX+_WE?~JHJOQo z%_wR=(xe~9_4Kd$taA*fPu2%bq;*OSYdTbVO-bP+2Rl@ZG}}alXfL71bHyC_rzv5n zT`2}{5LzWcMQ$=fjP*#)J`N2)GQKv zPJoOJ7-z|dEKG8QdFHi?-q-4>7+ool-F}qz(Hw?5+_{Z-HZcjuocS4A!aVoMuZrN< z7#IBJ@h3SC`s4R9p@OIWwf38ZfbTgNB#$Qu7n#>4+45kY2R?)06CUQ)8br1mjJ~7K z+fCYseWIGx+&29v%Un``&lO6b_U%gI2KQ^7uF6N3|)86FF{(ovFdaKDofrh1_vz7Mp3^n z_B*l7nq1oR?0>b-jhE^AvF&T)7%lX%aoLVMn^xQV)s@7}Il9XO%jFg?1l?mY7;9IL zQlIau&3@=dhsSxr4CQq>H7yfCqrSB{9HgIUOX(n$vWiGa>o@ZP>(XzG-$}QLc^JHt z_7gE+wey&VGhoG2R_S2Cat8}Sv~qsU^PON1W}=WtAS;hB#~VY{7ZXwZzIJ$Q z%AIU>?%CZqljvjis6FHkH}t9*&6KBnVbx9_cbGYFEn$yvI(1Y_--6dscKlrwN*7)c zDjYAYl#*zftd?M5Lk9W8W&jy1zZvVDzJoY4F-nmXfupi_58U^Kn)7!M^@l@C4_Yg~ zGp4coZ0(R(^Pc*qrI7uw#2eJbO#SkMhJE>Y1)vaDs0INWR@sHib~S`0LzH8HPpTOA zG*-H!O$@6vQD;-!7IWC`QzDZQoZUFGJ#qd7A48&6@#6UAq~UL0YY10#=a zU)Ma0-q7r{*4d)hbT}-hLAt+9_S<^wJIA^QX0&|N*l+JO{E)_Ot|*CLTj~u+H+J%V zKnwX4AMFh(o$t&S&&WpLWZd@ql+}RlBUWXpM+;E}WMlyw;Q=aZWT(pAR%lwR*W_=I zb=;s~YdKHfiOV!$_nYJ24AS3)P&C>;>%@)8o^yOSc}Tc6l6i2JZp*7}&`dEsdmyv1 z!+aB1dvToCtLHh!kI2aQTty|TCk(hpa~Szz zg16FcfG7!;NB$1ub-J5#-v|CCTWR@?3-;8Cac%H2`O~=zJVOj72->G6uqJ|?5y~Ot zd-#N}L=EcxQqXZ4$4TnRfP3R0(0D+@son9I&5^tY^>cz(p`;p5n&7mD8CltvcJ6SD z5rH=q{uow6gX8^_K|d$E@Z&V7?i8Iox^5beNRSkzpY?GAS8KR-`c@K|NHoInFC~Wp zFHp^o6^qg4`M8{^73~8q#yfBLxYE-HX9RBspoUVsK!IcI&{J}mC9lKrzHFi*JV9Kp z8&YlXk91TQSb(VSL~>9?4A2t8Jo3L1@18X-xe?1Ca94N*+1K>Hb3m|~VIWMX*Z_{x zgH;XO&%5Bz{lw+#*@fM?tE%JU-pp84tjeDPquco7=5HmJntzuM7oZ*oavyBBV7%x5 zJQUHcF_C!aO4snva*0vPK;qk7elJT{<22$&l*7b3z;VzlZ&v6N0KF{xyJ);?%!YAA zXXg^N*J;XfCNnT7eW^|?TqsYP^fr*0TVLV%mB|@;`62AcQ{1*sP~*N%`|p}gos;#^ zSPZW(2Qz{vLr_DFKA=sV&oJ0&r#yOsM|o0{g&Asa8Qu$b$Rn-47e)mOm{1C>XB#Jj zC#_bBO#HU`vmos+n4s6KX<$LLWa>`rK!Eh|S{QtnitUsqtVE9>%(CL5lJ_$VQfPhd zKzC()v3xaDZrcbp~;0Cq5!z$NKebtlX+ z1otq|omEg(FzV&ofDuuEyDA=75w57)j}C9J?V+&_7DqD$SR?3d}pPFh`O3y*{H7mA)17{tT zx3^ZGb{H#bGa9MZC3cWPW->5eJh9wAo*4Yc6T2HYh_5@-h~v*8K87q3J~Fi&A4V>$ zl9GZAW?};%#$)O#bgDa4#7u=VGl~7cH*uRZU_m+{%!kipfgP@_@SAMGKhM) zmg8Yxw!#d2L&|1a8&)TNoT`_43*%Oh{*?vNFB;uM>s(nmX68t%)- zfFOJW3~1CupQpXb3+$tWD_6>)rQZbV0_>`2TrwM{f=?Q<@G7?E1zK1N0|9{T2Hz1l z4d}ETQ!=5>ssYaojW2J+Jx!vI-~9Vvl*=f-1<#{#t_LvNrf8EBjM~8uZH~=O^WN=$ zhG7YBF_=fDEJ00di)<`xjxuWpESKByi zgbMa_KKNQ4x&=h)XfFY5NIM{!8LONZ8CjCBE%?^5CZHUcuw`7SKNC8+P-mu@aNiC0djDPoSBP7xSNcoo7grDIcGQ zadzsbY$tlveXJ{v9s_bsn(rhtEEcit=N{S?t_q3TtVrG(`)$c_K(8b8p=;V?ZF@xv zc@|U16SV;m!ueJ(FnPur-OOvH=VKO8pdHM@&rR@#a43fl%&BMea~57vYfA>yrIKhA zA+dS-7OJqGr@OoOBq(k3p@iH?tyn7e4haYmcZbg3T?|4RT#n|M3z$~^)!fzvMW`;(z1N?=&5_sIo!ozPqIqL}LveA_kF}wP+%!#NpO+*wS|P#r9C&;(Ua?!e$m?78yQx+)NTluvDEJ0xOxMZHEAde zAtZ@V`uoNLnZ?3H7!l{#X3AL>Fl*_BG^MVTbHBQ4Y8`A%q%w+1od#p!Pa$;UVxe0> zU$z-uJSj389ji@PiX16Sh6)#;QyN@3(rZ3R(bd&&MUn z?avK;{{qK_Jrs@L4RgPLtqQDcZM!5}Opn}gE2bKmp|S~fg2cA8gcJyc18Xw?VEgth zS`4@LEn2;tC>#SoHb`Nj_m&ZfNf&1{_iEXZSf#bwh72x?(hYV9VdW8YR})K2Wf=PM zowmpVN+Ff*BpI2q+Kko*j7!WxicT49~ zEd10y=))UE<79fcFWX4P-UAUv;b4+b>YvVH(8c`gVg~k5;%4#GZYg%XXEK>q83hT$0r1QQz@$uSg@8AM1UI zOw7+F(mta7qcgQ%xPK7G^S?E#)b7EJU{0iU@**s2?MQ`9+8}Lshua7MqbSH%G9ltD zLpzt)Cgnzs=V1lnEQ6@CZ_hAb0J!&bN|9OT<4RC!>mocFKw}PVQso_r(3@y-^l^%j zRT&#^)>fDHc`oVzJj|mXyNh z7a{eySBQ5}Zhg2K!Loflud723rsicmwDgNLBtVU+mp=wN4C0?zNex16couN+&Je+` z!%U1dYc1-@VEt8;mHtpY-A7JVy43{i7kN#_mM`A~MVmUBZU8PrhaKjxH}?{X_Tpkk z;Ad^t;|!!I#DexOD~J4sh~ChAbN*e&Ye~Gy?D__#-r<*5HlJk^lYdz+bHW!@uT)L% zEf;KVrj;{e;n_zXz2`nkaeQm}!WEU`dp}$GJ7%oo_W@te`+N1VZ7kS)cnEZ(yufcN ziONap;c2iydgSP5%GK8(OKeR>>Zp!$FB<3}f}*m$4L2j$IF+B-Zt?9yt@v$8j83R#*Mry5)&$_mr9f`TA^0(v9hSpP?ESM^ z8}EmZR0#|sgAYnd_Q7w5xP+sHk`6hindt~$+f^3z@j8qd7;faPa;q}C-@q9WddX%@ z7+zKXB$}2%*Kjkt>r(r|G93yrf2StBjD1w*bEvZr`QQ^?#Fx`R^%YiQrp^@_aFZYL z{>FZ#Yz+e~sTlpzwL5BZ|3IWd6 zO?(-mwKofKJXXR5N^;z)27|_?Bz(l*lCV0tNi(>B9D-@qZ_J`<=NGRIuz|-sTNWpy zPxyD%&ivOZFi42$F%_)_00RmF1EKN7zf|Hoh7ac(q(E9|w!lMj;9q+ufzrVh{uy0o&rZ76i+T&tbJ*ACiOdN$+c!omKU9 z<_B!e4;cSxYNmSzi?~rrUrz^a668seg1}-Gzf|i`Y>oD%C=Prnz7{*XDb&4E4bd}( zj(iTJpN5@Ydjsrftk7eFK1cIKbDhf$OV6{J8Ie&f{XdO4Y|K~Ho)p3 zjL;*$pu}0F7jHtU*Zv*9E>=TA?}m!KXK`2>(|S@Mb3)d@4t?A8S3PXa5^ew^zC)Hm z(0{Xyog$0HMR^ZWr&3J^Mu2ujkW4JLtL-rpV7wmhIP;z(W=Z!2atY!(qKaJ^q5w zvaM!!pk45C4U~W?r2?unBw$h-cxzQZ*DqtpBM)JsvS&_h0Kv2S14tx{td|2KQff)3ZlLw~94N%ri787RJfW$n8&DVW8#e zaSQxyMf0TCj4e8BPjHk3BqU%jHb(!|UL-44Z-;l_h1>eN$Pf)oq}r5sk;gX{OmQHJ ze9mhtETJ6zBfDQO+oyOfZJ2*n&5M2NWSjZ*Yf*fSKy+M} zu-b};It$zXf$P0y%@zx*;`Hzr@AHMY2SDpRlVY!;Oyp?sX;&!c7O}@2GvZAZZ88~_^hFK54xncd)&+8VIQr9%Z|Mfudzu)wM zTWStOqMtw1Ivb7AT1-Qw66Ff*C1|%4KAqV2hp5_9?Im)}Yu(tX+_LE$uu7~1HUgZ{ zd&D|Hr@RK!S!bVeCf?55gemtM|N4(AC(CU`nMUp6J!G~X`1T<}B8|gsZdB`N|F#DW zq2oaQz@?OnNKHs|>~9-yEkyY$w4YbN&z)2qBim__q4}`N6}X#S(UBkQa_c zC0Sc*>+ml=s@eZEWXURaN-9EiDn>3~b?KcbCx$_(sxsllcNr+rIBKmFP~2Th1o$$LzeX|k~>-;NWBVHd-Y!U9C=*!y)XhykrXqUl%GhkIfO^G zus%RXd?|KczqcC{x!*<%yzb&3hss$Xe>b?cM~kQoHCU$+R?{&-&-%ZQkrD?!PgsQ; zbrz=a<&veqCD}B=YKVbwl?X@J@Gi6DGLhj)62*R-^HzO;rh!2F?*;tmZw~6o!6^OV ztfp2MsSiAPui_QQbZ)Hv8?~ocr5%94k8UV6zT07OcXaHcag%7?s)&5M?%Da?x4Uiv z*@+VupAat2%J$IIFEr})zedXQQ~C9=#Ku}vNlAXx4=?D;cal^GT9PL6YM;@FsH7-} zdUG5?qu!n`=#}LX=$vvF=30ac^Bs@>F7&psI_U(sNEG|um%~ocz&C^Fp!n5oVK@j! z3ewHipx?*3&l{)7uBe}*RnBiraK3CE~qv&s+z$t(U{En)a@|Ch9Ql9z+M~pKc;{>y_7Et+3r7sPJ+xj3G4O zG&?*ah)c<>6X71#;(Ytj;P>(J!Mpru82e(W`~><4{FeixeUz%G zTneAb=7FzvsIY=aJ}(_{bvQfj)Q7Yf#jjKi@aZ2HCo8>mhRIANZZG@Wnix0yf0{s}%@+gS;<`Z2j_QZPdQ6UoQ+Ru;UbjmDd0V0TV!iG>iTBLcUNnn|^AsDYd$R?Bf6Y3)rzF6n|C)8% zCF1DW+I*&ULM^^=Zb|+5>E)VXDA~y*W76!wS}Htvb0<$iSwl3{oE zw799juT3G%Bv=;4ET={SAkWSWEct*`Q4_sHN}Y#EQ7Gd0rrgd;?H;UZ>Yv|5vsJ8E z8cqE2Wk!5ei}BE+Kp?pxux{Wc9uYF9UXEmJV6Gol2tok-<-||nSc#G#k~0If5sMOa z`L5`ZpZfPq{#S%P3hA&1kcvz547OVOUuB70=ZXBbe(-U9ED4JE%)yHv)dBpjrW~Se z90}$<#HGU;6C(Ez9`HGd#EnKC(N;x&70K%gZ?h|nEV7m$c*JsA26wJI1m{}mXM?zal}tE1{Z;}@(;2f9is6>!@hQ$tR0Ta@vTO8!YoG_jI48f zaVMA_IBqQR*HM^%))kz^3GPJSvf9Qz+iWv%ami2fUDyV3*AH&^)UV_g=F_SHtTt~d zoLWyxfh8XmM7jwr5>vmx-jd%}9uxM~#`tjgLDqpu5`dfdu?f3^#sl$7cWL zE6IQra`l)!fk-S&?AAt!{Fc`Yw9o~qn?$5jgd{R;Cw35}Qn|^Z7uIqhNH~U;@oj-bhy5Ek{cZzv^t*l0DPCsi8qiNHrLGvQD+zYHFh_p zm`Z_Il|*$X0hFc)$k6-u8E2=$gTUPou!PUl8Bv_6@TVJ@8SuUk+kw$IGGq~a(Je^Q zZOogV+p3ygt~;$qM(ON_*i|amRv>%^@XdqC56eVNI=mumZ4?OAX?tDLJ3yE2h!4`> zq@zL~q$e!Xm}k8!a3o+2sn;kucUBvcvcXJgQ%aLYZD*rh37&FouJ8^~KlKRy;Qvs8 zr}uL)Ukm+>st}f>&-&W(leO4uZ-_LBTZ0kH;HHrZd2R|Jcs){}3!Ha($UvMD5;Iiy zn3eC=CV}O^)2s62{!18+M+@n$=^I$i{$~-IsyDi#E+g+ zt)C}i3?oV&4Hbvh!FGsGi|BD*yL?!kSoRlj^Gpky9>h!!H+Q}QVyFR|M1 z)$f0NCOSz7ZvFKBTxRb}nUC~?vsIOLMQ=CmbZ7mvA;)+&sh^L3cr7;~W9^s!0JH%4 zej%2@`!s@(!oB=%woz}WROPTN8qK;YUbPQh`0uY>^eU8W-4ns`H2c6|1;AdIC9Eb* zL(GH152ANHZZT33t#*w7fx8N1W!|;q)f3- zoRyB1*U`wF z(;i!1`}5l2NTK%hb=iW`+2LLT>Tto_^D6<%(KrE)zRM}Wr?pPAooHs}G z#2Sk<=KBjh=2ZC^m`RtNv1@QeLRXDwoBbNsw>R>h&o=@)ia5zWX7NX(za7xu_AS&4 z{Pt1wtDPJC(pM+ky4bx8$K`OHx3qyAD~&_eGnVzd6Hq=XPw-SZeiU#+v-FhsbFFD84pGKq;-V4j!7tmx|C*I0*38|Bu2R+cP2DHXViP!gX#ytiLK zYPRajKWdUcKRa|-=+7ZhnB4Yiw0(B;tz2(L=B{s+ugzVzU1|j$ z_T~a?D|Y7!ly#b~%nJ7Et#LmteAJmgLY;D2a%aq=+e{JdD@d8Os_*u&t%MDTgzbQV z(4mD$^2F>&743deTVZ@w@Lgezck{C{OQRd?jc|Bro*utnE(L=ZLDRFh@?qPLtt$7| zd5&2Za9q|L9NUjm;f0?wP-^RCzx4^rE^sdpx%qh^>=rc>;5CV58eM;W zgq#zwc9r)UMK|mxf#uz;=Dd${>CF}OQ5h&qxET?BhJ?eWFfbR)NfgLwvCTHQASotM zwYIWEDw(yZ|4odmYO|M(kBt430UF&8+gDoi01B=QGE~}qbxVD%q2mNCBurQplXBJd z)z|DOep}8TIp{v`a7)`6HgRZ>9$6G{Zxv0i?ycG9Gd`=!2(fGyu(rJ6Vt4M$Y|q-b zxwG=zSN8MsQWZ&*61!5ohL+^@+sDcyq2lJhul-6@Ku-! zQaKKckLaM><%3b`f-C6)eVYe?g$xNG?2-_<`?0tSPdzs!fvpwW))2g)AF;Dcd8?DM zl9jLg8+r1+#{}l3T%e-7GG@$UvAMsCaHaLukr86tB%m~HkrwOn1bfLyD?yxXA>#Wk zXG6k&jhfTGNTYD^7MT((Xd))6Il%a&m6`5(#LZ*YXnCj-dAqYw-y002uZa&K8DIiI z2#E(FDGbx06F)#Nq5m2}xt9{6DI3D?fS8<=E_xOo9WuWI4N|MI>m*k1oiN=h!8iR7 z$Hp6D7~_Et=xBXYh}cl>KU#9g&>Z400+w9fxu!AQ8HzV=!-lxP)wIm2Y5|*H#G^1j zLAVFybXc%^Hh@z6fqZJT@*x^~a8;6WzC-&6bIIoGLT8?g z3c~|aOWhr0# zVEFI%dZ-0I_S3G?-0WoF=8i4e1o02ga!Bsgg3vq9VP1bv$cAF5s1o5K{Al!05~GKG zUMMQauz8aZ_``>JGYj!9S=2{+K+hbxT_EK!c>W`mk$Hurwh-zZc;oFRjttk&)#-aT z4e4993Pt-}7Y3s8h>m4-t&-)wdN;e`rjPi3k^uq=uwp_-_~?wTqy|Vq`dC^#ATde8 z$j%riFI6ci7ScjrlezwWde4TK_+)F(xON$L(ca~ptFBL5Wib^$RlXPse?1c+Bir%i zK^i7qW}>8|vc-u@y9f+x73*EbdULpVt!9Zb{7v8GlCEwIp`4Tr7s(T>KGeJxk@OsU z4Uc>MA(T+~EtsESb5gWTd!Qfu7!xKy2h{a=1*=~tOheH7XbdRQcF(0Z{ATl8v;I}k z_ru4}=1FsIcBFHw!N#J9@F)>u5*;3%5+dSD)iIUnfkR%)`&+(ITLSSjRwF7XiQ)nJ z$G5Zy=|CMN{dosTZ;J*3ckUxXw*x8LAYDm@1}6+yi1tx=EgC^63gJ_=YYTa_cbNRO z2=r@>qeS~1;NZ(wghpYF_MMm$**iqzM3$)lGu~yO^%ew&39a%l>nf;#2w5D&bsGclWGq zwk&LREa&#d?~8)dlYO_LrUNs&%$qV2>B}|9Bc(y_dU?-eMlW-$VJa8j$^c6U(+BR+ zCl1)ku1-e0ylaK-k!Ys@d4~l1vfqJb0+W1I1cC&i+lCfID_=PqX#Kg7fpqMl2X}kq zquElN)Su?)eQqE@;%6mx!Z1tGIP+t(h`NE?;oHusYq&5j#RY!jH z__BrunX77y8>}P@<8P|0+B8-lW_gH&V@FdJR`z|;i#?>onlf5_*8_cGb|(BH zi3v0U%lUBkFjpW^n^6%bUoTRWllKZs_tv`Ed}Fdxsrph!@~vjjYXCu0ljTAS+l;Ts z4in$!Ez&+x+l_Q{2w9;x22;PO3-g_9>b6)~dr`;Du{v@c`0rQwmXTHrIQWk}RbqEg zFsx7LxpAYZNo^-q?Hz&~^5>XGEA(4$cP}q@tM8g?@KLOhVl4W2S#%!l=FKJ^lEsfq zQbIy{S2G{K$B-!Le!=OS=Va7XoQ}~#E-ZJqDjhEl$6B6s&RKGEWesE&s7gS_CQAU| zxKNg2pOfU4MK$|SbG=^GlB+?_ zYza9-uR38qqMqIPlP>8sjMz@oV1n&C27TyhZK)r$cU~pkEzkx5cTMQH+OC{XLSNa= zUTt}oo2ptHfn7Z_6bWXCB1&YV4^0A0R89T}mgP{I@{Lmo+JB$^p-U|u3cGe)?KisqKiB(wKKoi(#JCRHN`+NAaHZvn`jJZsWd z&dPXw*6^B*Nnk|6nWCRPE+Z^I^nz#Nc^1~Hz{EG3N96i;7j5NiiH2OfBN>bn|#K$z_1}Hp^Q~69i4ww$6=P$os0Ag-iCq9eOeN1Xb zilW@_7w1P8IXFq*)ukqI>OzPVsm*s4cC0nUt2@QYcO63&7gXNL^Si)yzt8KQL=6CZ zn79a^23f*42E2i{lG6Z zCkrs3rMB4aE~ZWgwsozYEt6c~DLCuNb; zZhG#-jJ+Xj`6w~znAqX~*`}FCz#L+!H5r^j%_HO@&1Nx>Y^%mmjQ4A{+u21gu0YJsSU2Er}MdK z_4mwax|Rrw@MEZ#h2FPQh&AF4V1iOlrgMDPg z`>c-gnX1>9K71H<71lOD{%div+K`B$UIDtk)8%&U#QHfHq`6>?VjEK77>4y!;*6Hl zBE>C2GhD3f>UP5$%(wqES*Td_8d8>#0O7|mX$6j%9rP3@n(E$TU7c+jYq|O*y=0rl z<|-w<{5lA!%gt3M7O-=p;T+ml#K&d^%Z6Y8o$7>j5jX zOlk=@9)TW+o*Oe3K9Oet&?}4##NK+jy;Tbjr03QLJABcpwn z`#0~$b2%z;cnq6RVd=_#N_6((bIyP@!runO;82oEAF+kIM5Kr)Q93D6UV^xjg)BaV z6kf}J4`+Oi4umMV_7^dB)5XBo-Y;mqzrV0lQ`W2)ByFSly^yXN(%hSP5EeY!U)!}} zIt2$PLdOz);^GhPsR-^T;Skny@ka{Tpq+$LLEb98$14*=vqQxdo>h&KY+LD}UK@D+ zLC=O)dtBGb>H3M5xF9Bx4$v01F*|*aZf<9aI?zQ+vLZ3oVc=)@$_=uakqS3__A{HM zHxO1R?+4g3o^{@244O=#X}k)~$x)y$w)&TXm8AaFTO zENl*C{fh9#paapH#B^J>qN5@I;0ek>#&c)(b_ag=;swt~K)jIMVqd7$iqt`byjjkeP z&Kb|?$L)T8*oi_`7v{}8`(q{h`9R*DWL4)R`5yrGnEK3d zv(b8~giMx!UtaxN^%JZEwjg{P)aY9hcEB3Nvq_PIIMF&9INp7TJfi_=K@UELorVgw zci7_|>LYWY{{yo9Alnf;DeHD>dR3v3G^UvcIyIRfZy30AqXWGys|p9{Ti*+ikeb9G z>iJMjB9sFKL5mg)oEC3lTumY&b$)G}_VJfVwTdh)HBQsr8{C=ih1?mlk68Fep_SSA zMAtvEzLjHNe&$}Nlp9wG67?+5gITW&AQG*VnjcH;YoSFmT~J4bdP zGQeR<z=e+6i~-l`tsa6F!3o|5o9j+CKvm&-Sr#q-1D#RFSqb4=hPh-=cS7YILm3 z(zA*fX=$@}L#_Q~Z?3)tD?O2axk03YV@2WmLxy#b=)<4yXvGcElhh;f<4aV`&X*0g z4to4FNqYse(9qr7bMk<8@K>?Xh*o1ED_V0qlb^j~dI$aDV}>|3&eVHeAx6XXfsGExnk_2e82-4MgZdbJxx+0e%0J^534b=3K%x)!2Mj+{3_*(MfK5=z z&i;AfZ0Zbk>MXx+Pg@Ul&{?K|oNiT#1&f9|=3RP3FJwE=_lA#BU>qNi%ILr$l<|ke z9!H{CrmUZPt;k;J&=n-xD^sGqx<6EkKSr2E<*&6BU!X;gKU_M3p2kTy%NqIx$jH6> zfZR1qq_+5Pjr5gvIp^5x7*QjwyAS$tGw~JhE`0(bv#v1GUaRWq$9OXMp6XlG*x8Od zOrXpBiB_hA5E78O@8B$o&qVO-^R7wl*M3S~9s1{>L>nLC0CE+KGk6q@Nx*^hzJ0pB zsJWgfz`|dG8b}=DvXRkf(xk-xdrVi?F>gkFK#aQom9L@c!$%EInxq3_VI@g?^7i?N z+$bIX)@$2INl|>=@L5rOaoZBLe*1SLRyFpz{l6E0`9b}Wa|GG7V zrpp$KP>xBv;+6oP2psswZe9?cyHQF2c_{>7{&Bb27y@1R|JGj=v3AU=*tD%NuS~DZ zWUnWzwPL6;TIVNwz(^zh8R`FBdIlBm(kob_n^E~*^>dkY%+u~5FyG>@kPfK-+8r#H zp50Z~`|Q(Ot_*SiX#uxNpPZLYhcho90Srg0BafJx8~kFgH1l|Muw-hsVVpNvg^mHT zopHKX`ii<(V_)Vyic4`+^IGGf256=1{e*%oV=SH?&pYFD(^hWZDC4phj=IrJ5(R90mFBujU4&v{jSuj|9Jo$POGzBt1hAyoiKDKz#kV8`l z&PwuK0ALxcM&;`#;9esE5E$xAMU<}!?p(l@W*SpxoZ579dpwN}5;CkRk0gI=5M(jh z{7$y6;P zDF7E_uS^coTD)hMA|!9nOX7AJwjzoGk3KE&gM7rF1Z(wlM)U_jUCAcON^M~qqw<#{ zM*w2%`$vqyBpjfVNoux;59@!4u~$FN?2EcEN;+_i5EC>;gREy!%NcnL;Q4uwRFUz` zi9+-q!)-odH4-dVVRzY-bGcUxl@8^KfHf58Kav1Ek_apM-K3KybijmAM*h~)Sjiuh ze}<|sj$7=z4{xT9v~Rjn6#m$OmC0Nr7?&AyiLa3XQZ=ZgdKIS znI0#u85IqtpUe0o`s0%)Du8_6@2!;)gn-Fm%$nW!4@5IL$ds{1h5idkF*yX4E?odf z%5;s&gZ1KQIvnb>Jy1tR!GT0q5V*r%iSsVK0$-H}fKBIl5#uzTpt|ZY$+53pDD9dO} zj%o@b0=ZLUq@dr){;5Ax{jzRuZNkrLD4{s8`4NeJi`o)%1}iP2Zkq zSLOkL^|u&}-^DogA7UIc>JN3j-NtB+;lidVOfr^9eTe4pjNo$rach!c*^E{Hz1d`_ zbaa_K$?9Sd0yZ=E-E{h^0b3v_LG88m{svV$l?vgo-5?M#DFj+ayv#_ds>vy2z%kHL zk=FWpO`ON7oj1PONhy9uv?~J%@ML8L8b;FJpnOCnnFzSU*Hop4(7c!xzhfJ`M_bw% z*tz}U2!Xt(mON~qP5W;$u)$`wm)BVrXH}dp;ah=lzS|wN{rnf$4BIOxW%y`s7fQY* z&Np&8=Z}>dyM-TAnM8WEkB#i6_4s>n(9)pUsXR#A#3Mt^qV@`Z_9?E9I$cxQ0D?fy z!hZ#U1oqRp8XM`r8xns|w09C=CcG|`c1%(j7DSIWd1ksCJT4WdDABz0gX)24IPv~m zCE8lR`j)Lp_S; zd5FqAJwSGQ$5c%D%_nSs1rXv+*c$gft(Em$b0;Qgh}=mqA^MSdx*v;8Ca66D-B3E2N*hi-7t4^QxM5Bw3xczB3Rv2tT|un zz58o58(?XXf5Qo811p)T8DAEerPFtz<2%<|Q`cM8fuEIT+t_X|?0~UZ{+mnKTX=H`{nh{B5{%^yM!2xOE7Jz5 z!@$w5EG%{f7wf28S&O(+jnnG-PWEPe!t8k2+o+!-;B}J(TXe1sY#Aez68~ zrKx>DPTpI1Q^?IO7^S$d7P6qCod7g|J_3gmA1Nn!uU$%^kCglx?uHbM=6Fy-s;(~EZXi27bqi3CMx8c zzGs!0Uh@(tmwC6jVQzaFueDx;`hXP1LFqQbV3HLsV69Si6aaCuplaY1g&v$E{`aeU z;j+t2ryM0zI?Kv2x>hq>XUAqA;p4P7s=@<@RJpi?QUw+TngkvN0tNa6@&)Pwj*WEh zmGh+>e|_B&xID4R!-&12m(19WN06SrchdO|2XqF4j!6pz$P9u(a1oUlk~E&XlUatFNw;*pM0QefdtZWAw4G_WcV2_ zbsEU8+s7Hk`SC*=D44z^1J*h-feGIvkd*6myodr`1y{V?#{#v7rmeX&JN+x`p)pU9 z0k7{Xij0A`ZZ#**Qzx_WODiUBk0W0D8rFX5M_ZPJ^$#1f5$Y%lSUV_|FmL;a01J=* z)F)>CRT+7&RLlX26p=??SjEj|Ivx+W1jnse*U@zMN!L7ML?!;-L>7U{zon`ew7W)vBBy)QvTd$cUO_R$%07y^ z`n(W#h6~$UF@7h4MXqapX3k`{Zn+*Y0rO(Aq*QZ48F3rOBL1*x62a1tydCAHss!%? zC=_D{JXb_pd{u_Afps4-7_ffrd481iGu`_;R`d6RS|IX3(-ktP! zm(~Bu(Z~4zouiNO-#Pji{|Amf#{bIE_x{Fzwox(uA36F=0UUiXFQeL@jw0sQU3yo$ zR4JBX1&Mwp(1cd~j1eAEq9_^qrN%?@>vj5tdr4E#giE3AIOAv8q3J|w$hwaU5Th+= z6$W!p&9vfrt2(hM#rlKI znUT5oJ}Q4a7Uj}b#=h&`Rlt4qh?yF^W~`Jw9~Xn#+ga159VU36_Z+JaQg!6+&Wk;_ zWyH4?q1#+f*yvKoxSyYRcIxM%o+HVZxSyvS=RaD@yWJ;wLfNHh;!QPxWzV_IKdtx0 zdyb!81a6y_3kGMdK5up=?ve?&mmZBIEggEUUd3}T#op0{)0_zCvv3}Lx}V`0Q$fV; z>V}tk+~GNxo2!#rN@V3Ev)HS%L}5a0KThipOooMPbHA_8aE|Nh=GEp6T>{C$rMR=z zw%Cdumk~cN0&8#cG8nF-%g3dzeG$gWYZ<%CE*C8{U~P6kdEwQ=o? zQuU?XpKD)kh?`Fe^N$$j6W0?^!lmRd-dd@~D!>CH-Uv8kK~aEcfmnf%7Hutz-{&LK{XG&f9jU24z z^-c`fw@+a_8D?=ER&*IuS@z&Zu;z9+C&Ks70i_|$35}_JGDFiITE2j(dO`81My%7U zK;)(Ayb~XfUpHnx;UvAcf^O6FWoyo|o^%p>wG6S8uo3iYGk9{KPQY$A-RhpZBdkVz z+2grx4kC4z_bpFYkJh8Ofi4||FQsQjHE`#j;-T+EG^s17;a{#ni@ibi^OSMXuj`bN zI6fKo0J%F>RNNr_Xjetu(hHKLb_@7aXn{J2U#guk`;Icn-U zJ36c8igTEy_&`Z^L{H7aD|c2zZpxylk%|fN8@j)7J#2rB!P8innDvgRC5V2bz0J}GZ;#hp|9EJC^VF& z1pJ}FawfZM%octDaxE|CP!_t)R#H9Xr-<#&L1^MR;8&?Bp1d`XbKrBHmx^`!?!wX3nzvoEU|DK73_-|6`%qAd@jW7>p8nSf&=U~SjcgpT zvETPTd{>^NX0Z{6|1JlLk#Joa+t!PvOeU4*+#;|*9nUStO1tmKVYf-JHs=!d@@VpT%rd9Kb@jz6iFI)#;zKCG7M#ikQE(D5@AKg! zo@N4!WH#{eOg0`H$RZi$x2KrAJy7-umbCl*Dfz{_RVuw%rL<`)|9v%<5UmJ+&*tXm z+~c&l=ON3c7BL?4CjZ+7I3%oR>eK)Qk4=7B%|ZJrf?jvU?8KDndVh*C zd}hoHT#sNYg@W?@{p^d%99{WWhx7&iaa=iyWsLwm0~M+dZ>ai^R}*0-b=#&7_5_!rkp3oF8-oS_^SQuiQFuSS$n=^V$xdSgydm z3{Lemp)=M$#d-Q{q&XU{rI;mWoN`{p7h#UOolT+edAgoCErwilA&y@6H6Rz(pbw8{ zqx>KWqaxH?L^tYV-G#j{EBhp+(z(0bYqhoH_ZV0((-P43i81_Tt~^)YqZU(-&~IAs z<2wvkGV>8zv1}?4TcMWUXZ_g5i*L?_Q$1&DINV8DWwXRkX2^0Rv~1!0{Mt2qk%XBM z*^Wcsrw!3_p99zk4(2oN2QA-NU zg+vn39_Nt=TJa~S=&AZ^tzG&+jrXolo;{(x)P1!R*0n>q0tosK&cx57Nbd_!o}0ja ztG>NoU!!4@f6EMI%3I+7ZPA>0DM^qa(0`#VPtuEjD8Ry-y0cx*Y((eB(gSmTw3LHS zyR`jF017C~Z^33?HWCxda(T_uC6s4?sC zi|Td-p@fq{W$IRptZlUD%Wpi1NGTfCn{UI&mjK#@=A~KhlGTh0i?&VuOThDe-5LRj<=X{b#8|0-BU+?q7G*^$7dcD+m5N{I+)GZy` z6n!i1T#{CXnmybR)x#jUTD7R5M~70lnT%WQjMNlHPe=93;XCn8I`rG^pOiv8m3-HK zwCukY(E59?Td>S(N+&-^+rO~yJsIR(WM0rJsj0@fqKT&) z{1ffC*j`50C@{~71EiACKM-VkkrGG%*6>2y4fLRRWF_~5KaL{g99It-RUpn`M>=4~i7Tv*U7=YW`$E(5wogWaPHn=W4S)T#K zP+VRN&n-o}2}3)QY|kI}8a9ltMyLz@5^79;0PjOvJp|!*eq#nG?wo*cWe<3kQ&;NW^!Ah+ayc3sXs_2fIPcVg zhbvT!nS2mBTKm2OGqE5h;M{Z#Z*r1)LLTTFo@`*cQ6rfC9nwo#l><2^R`maJre1hz|PyXN)jC+hY%b`^5G7pg$lYN@6~c4kchfF zn~WHrM^LbF(&)6|Csz36xtNXMlz=XN0)a0v!d%b zP21Q`H?6PUsIzS&7gapCs=E?-hq1M73IympG8t2dF@jtlEVaP+Uv|fYI|_i0gFAY^ zJY}EFxhPbw-0HZ`YjNM{g>rXm-c-VgCVL4*U8v72uYjm3B>lwNER1d359TUzvm?DC zNw4?d#(RYEH{W|O)PClfqsH=Zs9U#s;DlxQG4#DWk@WM*c=L8vQ&qDSxV_C1YuarE zyUS?+2H;HhDq|q!ZLe>Ro3eectjjpst}Vi(f=d(^;*Velw)ExwPIbGf+O|gzvIA+uy;vrx zWox)5)~|UaB{gMg$-u**U~^wHcjS~I(ka3jTRoFC20%fIb-FxNo}$bC=}+ZM$?rQq zoI`B3AKZ+Vwx3V*lY5q(He7t5gbJ*O^cNBI6obn4zVgH2C<(|`KPK4gT~cyYa`w+f zzU_r59eQ#4Ybpn}#MrItw>&k|u!xt`3LElxZDCqEAR{rHsVsPm7Mjf=Jxbt=7N?)O zhb!WB|ExkIVjA(4oCb19n1GJx;L`VVkaAb4xn@w}EGSV@P#(yyE8=M^g?r>ou#<|M zIY^7bAt2LeiQ!|f7W!p^9k7+x6e+9CxRbWZftF8qK;}_C?%Akr1$-Gmh9k$NA;*me zMz5ee&!Hrcn1TLkXyBjwbwB)KdRmHB2MdiWitc@h8)MHtHhm9Hi`+O(77B_M9gR6pXi^i!IuV<<&R9lNwwV|DL zyv~Y6m={K!^r)B3scX>emJg@5{@grXr7ddzEtHA6ebk6yU|wDCpR^yO%eDsjEbta` z&!i<5&$VoWO$mSl+Qtpu%8VTj&4j;{i!@P90{QzRFA{)tuwPZ z;ukJ(%KUK9S9}}{I#&XV=+6x6vp0R7QoSX?x#}&aNk3F(8a|jcBU=)i*+cLCmY8>5 z&qTtXs1e~MT-uk>$%mw-8y!VT1Wou$w8iiG zi%ATLU zfhyOpjy4_bxpK*2TIWIPUZqm_2CBdHkl{WGovBWEmI6l zI1hzR8nj8>m4(W4a4?+ub8X-MoVP>nrzl*=N|F%g$&@s)f7hdo^&gFG*r zS@5R9+j62zyUx>(){-$3yOaLNsX4S}fI-p_B8+P$iOU3t(fqusaid#&(nd7RL*RUiF^{4R>`c?cK^EKfm)!-Kz3bHK1X zZ^1EExzm@V{o?eBFJq4CfFnFzf4wgwY+NP)>ptRaQG>=oGyBcBRAtD2Y^%0&b};c& zjv=+ooHwL?s!^zk6sPifmQBMK@=AZz{UlCrfL({anq7VS@QuB`k11oK?iy1j+1`GI zhN;_N6dACN07$y{kf=%$=zSxZ1lqPSu}A@sk#LPXsmyk)rWI|kQvb7_xY##LT#Po} zpSVX~MnNkmP`L{`ONSQkt742{-BnSxi*sh}f#fESxrd^MY>oTj;|<4+5NDImYUHWL zUIk^dO$hF?T95UmpM+g4b#EBWF-zl0J9#QmprD{4+wVdo>rq~Nlf5+k`>eDy@o8G9=5nT~ z3%Fk=4gyUcM^$u3r>@&{pj+5k9x+IPQqU~gXO&te*zW>vwVv1|E1I{K>r%uvtb0$a zUqLje20Tw5UT$n?Ntff{B-?Ch(iG8X)=Dozb>}Txk(W52P8&0_Q*;R%DBpQ%K=>L) z40W2=;Ng;CjhUO^=CnZ(x)^S7J6~e`9dS7hx#B!*%rY3Jx&F#i-xm`mqQFIhIf3MV_eA3 zTKt|#C>ZrP{90v^!thq?~T2RRUd9`ClIKmMG~05cqL zYuA=NDo0iBaSvVd4u7|oM{8@tmRkjCV1Hzo^9dIIOC7DXtqX_B9!CfOwHy9yLxT4C zS?(N}RB%UGl?AIjlVz`L(A;MauFHA6U=Kb%WA7Qq*j-ipM{oi9j?gBoLvPZm3IcooVi!`U4dppUq1kU9JGI72b{}E@xFG* z_kDG&vma?S8pu-Ld7n15cem+QJbmr88_!@sU)VtB_Hi}RN^{~610g866c7Da)nE`q$a{>j+lVKuBTz{mOPKkz7 z+8S_^)*Yv^cLu!uLDeRrtjS^r@TAhSG0M2m6I7=|XPNJ%40~!4_#{5;Y|aIMOk)@4 z56c%26x#qC;I=26IC=)G^4uu#N2r5dO4QhFUc;*LrR#X;ztD_CI;A4^QJyR}_myTK zgWPt|pJ>R#NlEY`NS@5|9F5CR&haWBo$;qj^9m(u(yWVqr-`wE#ZYgB?oLP#Thh3TN$7c{0VB(W7hl+>nsI zTJz=66G1`iy+BuvIcq{Dnmx+D9@Ou;I4DsSIjgBQDe2jgQb1VDL6j88$^N7_E@i=}Q?wHn%?t8c4 zXMe--L!DZV&!xcWvp&-1d+d4Yb7%N*Q!B7m#fM_h$9m*hZ~r+3`4 zC+Bl*)`UKLT3F^txhMBsd#e)Gdhs$BM)e4k`>AN)yk4(3zZ&xeNeBZ)-J#I3}?1eG5oYuCaRE)WCG z-C6{Z-bl1$6*2Tvvt|cNdv(TMGnujbNAVxO0f2{(q@YvX6#oeiZ(}qH0>Hx%dw5l~ zb~!`5A7%ab%WST>6JjRGz$&{vCU7F4O$KoYz()aM&omSo!C$adD$uSU1BfI-d5=?` zc)~%3qrn}EVahL7s;B%Az3+x^9R3X$bmKh(8F0Um2tr~~aaZv31uwuUSc~QJnSRc- zw0)8gLB|~F){QS>I@@6o?*--!?;6WnmXyi5uB6W7``OUyKZU=xrB5!;t5kJv)*Mi$ zxs|VD+-w&|o@8O~{0unxvFgvZn-;W`Z;uW*K=R%25z3Q*d?x5Rp}@Tx)(+xGsj-7v z(MF4sl27b2(qlTWn%pny3H+y}D-r}SIfIm-sUl=&=ig&LJs>Wii_T*+P9d4M@wrw) z*cvT`*tEk7+=G4V7pF86+H50^yxfCgy8}}j+pqv9dV0R^b|A>Jj(0vK3i-*B-peUU zuXSjM=_^3M=XM!08XW+J<+P~=ax#o?vUOAqu=l4&nrNd;SKWv-cg?9p&d<6WSR71e zthj!5_Vn*fQ`-)3m#G>gg!#lF&e2-ZBC&)NU?92VQ!#|FQX5ig0^3S;H^?hh{tPdlvuL?YhdmMoV zfjfU~jfDoTgx}egs?C?(Ot@AeUQdAICqyFPR+Yo78fI0PX)dr5^pq@EF0rI&?h9yk zaxN#V4DJM^GS@MGr84g{tD+ik7oS!+ab&5gw)MWzayu)pl-R9%Ko92aDfmedo4JN$^UFB(T_Hemm-usK>GJd5 zG7z6-MeF|Fnq>atqBuA}W~@irU&bMr_`!Rg>8`aHVL1AXbE?!f=5(}~8TYj!FIi%#vhe+L`rRI(ZIafj-4Ju!+zx(;N)AIcVz_%5Gg-F z%bLAaX;GY17q!k0q)F_g28elWrQ8YD0F%>pCdAxwY1+@5cFTtN(4KDV+y(?)lxZhh zbIZ%bT&@u#X{@s`k{Tdn$Uj29HM{L_D60hImVVcI<$;D!FyDX_oz4K6a^TK2w7EQ0D$u#@Oxc!^3mPR$itIen(C}KC%Azn6y8)682krZ@Hj(83FE$)28QTUF5dtF-CF4 zL)Xgy&AR@In8`LGtV9Z9Xr`3FQ+Ld=Y)jloMO^z&A7=U`oMePIyVh}h9Go9BY3@_H zT_P~$P`X_xjmb+fz^kWUhR#yA%WKWt`ls8W&NeL1=YBm6-jR1Klb0}3kyiWzpGe78 zw18l^R_HxaMNUN<$eQUibF2^p{{D}5d5cvwS`cKYR@;Hwttl@!xP%iIIEw?%B&c`^ zpwuysR=QZ`<*EBdjb1BIC(TiYV?)cp46CnHohcC zj5oG@0T@63UvU?o=vR8{0M-bU@>~(EJTOws8V;3G1XfC)Kk+j2CLlv#-oy*37myna zb*C9vPhbb62w=S%PusC16pT(r&}yRPWc-y*Vd7uu&^Da9u~SdVl(Det`y$53n(UHj zG4kzOR{*+`{D%P2-v=pQdi9sZn~b7bekjdquMIOgv=9W9Zj7f1iJ-@_%r_Ufaa?$+ zSq(n==YwB8F{Q3QRH|6b5REGImD$!`Dpk@YWnV5Z&e1b4(HO)22{d4IVj7Z#^;@pt z^ZH|Vku45V+OqpfY@tgo0<}P3^>xYwHH}mvf&ZF#Bu~rjgyR2#0Shq({Q@Yc?ss+? zD^k^cn&o{g*Ja8d2di<VF z0dM0`Ic}{4qSVwxn$cU7Svd$7mi@jj*5{|SNo0A=7Yq}Kun$Eqds)Duiwy@>G}#-) zZd=JSZ-M4IwwmK^>wTaS&N=-0A|W#*Z?@@LIvpH2Rh8jRe~h_nCWpSTyM}M~{()D1 zfw!Fv?^I?nw$RV^K_}aRITE)62GO?0NJ~J%_3++8MsRD##GqMX-{J!0A)`lyDj^mp zbH;sgh|Njivm<#khEjca!^2dQTgWVGonYW&eV9lkI^IM~aSUNFx88dNi1>MY{p?Ow z%yJzSz`X&r=P76e4yTj)I6q!${^(vm)UoI@!;rw%GtlisyE$MwZ|Bz0Bc*hUSInio zAvMdGlpH1XipEQ}7eHBkuf|_S9Lb_l2j1%oDi<&MkYx|Aazv}8cjnEcgv8vbRV8as zVq&9oYKm@U&7Tm=zhl}V=G)H$-}mUG(!P(;#IZsR*Fp}cfF+7RD0)L*+zY?)v%2fPa;Ftwd2>*n1Q`t9d>7ztW6r7 z?X`4vR(Cq*QY89@gT_z07HCrcQP=h|A7pQ@xPLRy}$8ay4e0tWMC^AmQl-f$ggef zdc3C~+zIr8p^_UPZXfhG9q9&KS9%b932ZHL_|uuCCo&h;|So864cr?U)o>-O1*DCPL{8h;vW~4>Eed% z&o#4AYZe~?!XxD`O_bUhm!iBi`DL*ur5ZB-OjkPd2aU19Nx z#hMFgY0v9|DDB$S)*QQAf-N#+w7rTdrDje+V*Pzg@v-#iliC8%bmlEXOtsV)w<(9l zC;h=v``4$Hz2Z<~WG=;~Q?Ih=CsTU);3i#}Sr(!hg&ZSh|Lr3y$($ftEBOjd@6)EX zg;Yj`#MxRTvc*BNHnh#+){yY46aUD~-TKyJj)oEXC0K2#{gH21Z6}H|f#E!2+Z-|0 zbr@>OP5V`{MUO#TlODW|)8>KVevX#E#Np+OZFTi%#4nG+2K%heq&*$Ij;FnsWCz>` zOa@q9A^MK4_u zd$vx_%&Ak=md!R-nP@DfvL4-)D_cuHSJk5MobZ{K>g5SunKqvU{6rV;ZKw=U2+@Ge zRW2egFI#Rxo%iWj6a^CVN%HaWk?{EmA`Ge1tR&DpzIOcx`V|H>p-YJWYp1wTRcuO$ z0U345fcUT&^eu6BF+Vz_iKPtRsKeJB&va)u=|=+g)hVIZ=zimn=O2&X(a`eNmX8Wo z@aS@w(u#$6BuE_Y!%y71Z#`rCMOehB6vX!FmrlD2?d?nFpQ(T9Ks1<83+@dLV)Cz9$3P`KXQNSr~xqs4g?nkX#oQR!l`SXmL6R~jrL<7 zRd>Z5(cS6HQa=6#q}`!t)bt`3l$E4nh97#^PAp-WPv=N%(>9I6hq6veK)^6eN(*>d zG>_vO3KuI6-vdi0i^_F^0awJnlo;?*FN}!~m-c**ZWQUba*Km(b%f504j)c1=x`sC zVvHujs}h6Y&>)-i2<`zk!;``RD4_T@YF+n)?i!gLxp6jQ52-*Lb=U-nLBW^&FRNUP zwt)GC%%16ix~VY^yT6OF{a#<95yp8d^mMy(w9HBS$ezsR)4CL zceXV1M(JR=Uq?VY@vwOLh4CD)Ka})2!6R=mxqDI}$P#Q6HxX16gbQfj=!s&b7LiGx zr-Q)U!9brB$grqR!!HiD+s~%xdAp0K`o7Bg84~>}t%fhkHVuM~CkOH zW3T6?74y~*fsc~3E+TU_v=&2)iHsH14!64J_P1EsLfrm@J}q1`fV}^>(RrlKs9=Mv z*k0XV#IEelEQXr)DAev+99GR5lM~H5uNQ;_81LJ$!2*y~@>HW!TRXq1qZ5}dgeb>H zF~}`a0w|vZI1|!cB|WRRi!^r_QsHSZTZlaak$@i3w`xJh>I>jA&lIjpXo)Vbea4fZ z)0CkK^)^_0snAs(F_&r!2y6@)8kdb>)K!t)$s4qldFHjq8tjQ0s_C02vx zbDA}eNLXS0M1$bI4UwfA;=APuHO6j@iZj+l1;mh~GC-ij7<_|*1m#d>$a8nEUyhw?&#e*Ff6FI z!;d=A6Joxxvwd&XOT0w$qrKF3DtB)kN6sJOCm5c<>G|a_@7HdiUOqoSW)$5%$e%e( zL>hPqdYeNUXlFKV4L0h>0~rnG0u2RafME$A4enW{xgS-vOA2A+gGv^wz`zgmmloev zqu5h_A~%TSbSKi{6>v9M?i}jZAcZ(zwU>ayx3|Qa=ECaZF?JsGxOlALaC-S+{;fYp z@{=1Oc0NP~Ky%M+-jM-_&uL-2hRM(ZA;qyc{+PWs)bbca`RvpGtL<38qNvs&O0}R# zr5Idt)Mzc(oyWen-Bo1K>w_fVhN7vnJG0Bkvb*dKE}#ZzUBkc!iX|DPrPl(K=qe%_ zD_DUPczq#;0vS{y_{c{YQs)eau=sVm->v22=gfcp*ZCjkoEg3|d#SPve3^aXrCGq0 zL0`E)?Y?N(uwnDpGU>seSv#ktZQkc-x>~7y>X}O~Ye$4U6x3KVYgtLoJB1V<+O$Y_ zY;wx#(RClFcRl8_m7ja#(2b^O+gH1CEN9>OB}!W0ZJZ}Pa$|EvmEWz6CP~f?vA}vQ zAgDwB&J5x1Ctg@t+sNBCLpTa~HbCDCbhEtzY4GXrG z3yrI>h3W-mBZM70){n@2e~;qlF-s;{yYk>%;9h;HF)Msj{+36v$x&C@!+-qSsG9u& zE$6YhZIevtKAyLY1ff@ymu_)H)^*La>M~Q4C)|3tHqctLFCzO~+p0A05#O$VQ}uC| zD)mIb9@_unvG08kyuJ3c-==`<#He>G_75}S>%eTK8dmlG5-;zLI@9yb&F>Y?Kfl!< z`C-Y^0ap)cNh^aI9#@zZt%D$v{Z(w z%rjaF3{P%-wrj`R*JBi;9gg6dD=R*U#Gd)3XeJZyLU;*uj>h9jLH)W6yt z@nX%%bcy};OLvNo?ki4wEudm-{+*`|j*9Ik*IXZRRKQ3owLUNJ7+`@6%vG(K4zcR?lU`fW9jB9cfTt&G*#!% zvfsS6_{`1ZfTE&oZCU6T?>)Y)t=saJSLMF(N<)2PYGsolZMgqq@|mB?rCH6huc7Td zwI$!Hji0vpocS#9(ldEH(IVN_JJn@l8iD1?Q=5Yj%Uu@JuA{{;i1=Jo!8zd{cwF-Y{ri}Vcb!7_l)4BlBr|&9ay$~ z%CWq|C)zya7F zUM8dU$2{}YW$z#9Ew1W!8;Yy5HWrr>j=P6EUu|9Y)9D(Udqbh)*Drm>SAU3B#AetV zzJ*EWyqYr7xM}sj+C03EZC3AX^^AM#b?>e&E%o^q#Nk{;>&J7x+qt;pc6WENzjvuU z^~Uz@b0^6g0NZv>XdTBBj$Nzpc30f=nIB~BYJ(p1sb02rJn7EPr-G+! z{J2uPds-OS1*Di?U;c)ix&7YBTV#91@v~)ncZ?V{HDlWLw>(B~*wp-xWY~9IU%MSX z@4UeGbB;Wp_jXOtE9t(^Jhy#HZp$=+m|eZ|Zou;Tx)~0Sh}8$uDvvO`)+3qKmwi@z z5IBlH6SHaE!RAv9ql=tswBVC?uLBtiN;=OjzDUMu4T*mC>cqH!8m65c?(b<*%y`(G zX`gfWB3XxbZ){(-?)bx59kJuLl`mVNo-k?o`P#sqrljN1N3UgHKNUMK$hvF!*ZCcF z6Bh67d1z%h|AnEqF!v7P5DJm3{}$%=58`ll27l-lMl|3cPK3=uCFyC~0s+^7z!m|45CU<33m@DPJB(9p zf#EVtjN`ZnCkROpM({C=56HqT)PJFfW>^zF$Z#FhW`cl$fHRTWgm#+JmX@?Ul|LHrte+YB6tp}H+K*;I>kyOXas4b?Fc%Xq3p;4o(SIcM)F|d zMDqIDy%*feu_Jlh;V$r}x9?>H4YeehSwzOW|H5q%JV@1-pil=IPO~IMvLxpp7Gmaw z&q3$VW+NMi;1Zccqp`CfSrT}vDalq+A5XK0jy5u8HUCO^1s`E3H9tlYj)hx8={V-^ zsWv()^@V7CYP?=S@uz427fD%kv>=(Z3Jly^uZgti@uAXIO*~DulQI{7(ll*vJGL1Tr4Mg;G8c zX`>9vNbU4Kf#6Ebk7HS@5=9*jhtMGsT5LuXS11%HMxX>C02BgyikT&o1!nssppP?z znb*%|whK9%gnCN?%FIJ?A%@;lqy@vVF;-Yj2vkh!EJ>`IpOnN`oQMRN z7`Q4L7b$T<$<0Pe3{#;llpt{cE9U_EkFXA)9KdR^MT2yDuq*rJ_YwW&?jo(>;lJ;& zgalX(kWQ(!=#vs?GdolJzvLSFCx@8Q_Zw_YvYEKTqVybe5M>-#OzD*di!Ff! zWkFi4CPvS#Jup{6PJ>PsE+QJPY(q?JZ^OjEGE|yKvr)}Y7ErW-Ofs>2jn2fd;9dGc zmNN7P#KeHahKbCvqW8stmL4v17F(~xC_3?;Xw7sRO)*G_T_5Kl%@l2R5yg>0QT+ly zo4Q}o}l|{0$9YevN@05U_ew+wwYruJ8SDf?#IK@yL4m7&* z5(=^NO;5;0iz zU2rnYb!<|wz`5#`g89{z7vRKT>oG_kz{y?5CM5{5t9>$D0rwt*cmYlX9)`Q(hKx-H zY;mk diff --git a/FPGA_by_Fredi/firebee1.bdf b/FPGA_by_Fredi/firebee1.bdf index beb9946..dfd4093 100644 --- a/FPGA_by_Fredi/firebee1.bdf +++ b/FPGA_by_Fredi/firebee1.bdf @@ -875,7 +875,7 @@ applicable agreement for further details. ) (pin (output) - (rect 1832 832 2008 848) + (rect 2192 832 2368 848) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "LP_STR" (rect 90 0 130 12)(font "Arial" )) (pt 0 8) @@ -888,7 +888,7 @@ applicable agreement for further details. (line (pt 82 8)(pt 78 12)(line_width 1)) (line (pt 78 12)(pt 82 8)(line_width 1)) ) - (annotation_block (location)(rect 2008 848 2096 880)) + (annotation_block (location)(rect 2280 848 2368 880)) ) (pin (output) @@ -1109,7 +1109,7 @@ applicable agreement for further details. (line (pt 82 8)(pt 78 12)(line_width 1)) (line (pt 78 12)(pt 82 8)(line_width 1)) ) - (annotation_block (location)(rect 2288 1416 2376 1448)) + (annotation_block (location)(rect 2200 1416 2288 1448)) ) (pin (output) @@ -1640,7 +1640,7 @@ applicable agreement for further details. ) (pin (output) - (rect 1824 3280 2000 3296) + (rect 2112 3280 2288 3296) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "nSRCS" (rect 90 0 126 12)(font "Arial" )) (pt 0 8) @@ -1653,11 +1653,11 @@ applicable agreement for further details. (line (pt 82 8)(pt 78 12)(line_width 1)) (line (pt 78 12)(pt 82 8)(line_width 1)) ) - (annotation_block (location)(rect 2000 3296 2088 3328)) + (annotation_block (location)(rect 2200 3296 2288 3328)) ) (pin (output) - (rect 1824 3304 2000 3320) + (rect 1992 3304 2168 3320) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "nSRBLE" (rect 90 0 131 12)(font "Arial" )) (pt 0 8) @@ -1670,11 +1670,11 @@ applicable agreement for further details. (line (pt 82 8)(pt 78 12)(line_width 1)) (line (pt 78 12)(pt 82 8)(line_width 1)) ) - (annotation_block (location)(rect 2000 3320 2088 3352)) + (annotation_block (location)(rect 2096 3320 2184 3352)) ) (pin (output) - (rect 1824 3328 2000 3344) + (rect 1904 3328 2080 3344) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "nSRBHE" (rect 90 0 133 12)(font "Arial" )) (pt 0 8) @@ -1691,7 +1691,7 @@ applicable agreement for further details. ) (pin (output) - (rect 1824 3352 2000 3368) + (rect 1816 3352 1992 3368) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "nSRWE" (rect 90 0 128 12)(font "Arial" )) (pt 0 8) @@ -1704,7 +1704,7 @@ applicable agreement for further details. (line (pt 82 8)(pt 78 12)(line_width 1)) (line (pt 78 12)(pt 82 8)(line_width 1)) ) - (annotation_block (location)(rect 2000 3368 2088 3400)) + (annotation_block (location)(rect 1904 3368 1992 3400)) ) (pin (output) @@ -1742,7 +1742,7 @@ applicable agreement for further details. ) (pin (output) - (rect 1824 3376 2000 3392) + (rect 1768 3376 1944 3392) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "nSROE" (rect 90 0 126 12)(font "Arial" )) (pt 0 8) @@ -1755,7 +1755,7 @@ applicable agreement for further details. (line (pt 82 8)(pt 78 12)(line_width 1)) (line (pt 78 12)(pt 82 8)(line_width 1)) ) - (annotation_block (location)(rect 2000 3392 2056 3408)) + (annotation_block (location)(rect 1856 3392 1912 3408)) ) (pin (output) @@ -1980,7 +1980,7 @@ applicable agreement for further details. ) (pin (output) - (rect 1832 856 2008 872) + (rect 2072 856 2248 872) (text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) (text "LPDIR" (rect 90 0 123 12)(font "Arial" )) (pt 0 8) @@ -1993,7 +1993,7 @@ applicable agreement for further details. (line (pt 82 8)(pt 78 12)(line_width 1)) (line (pt 78 12)(pt 82 8)(line_width 1)) ) - (annotation_block (location)(rect 2008 872 2096 904)) + (annotation_block (location)(rect 2160 872 2248 904)) ) (pin (output) @@ -2226,7 +2226,7 @@ applicable agreement for further details. ) (pin (bidir) - (rect 1960 808 2136 824) + (rect 2304 808 2480 824) (text "BIDIR" (rect 1 0 25 10)(font "Arial" (font_size 6))) (text "LP_D[7..0]" (rect 90 0 143 12)(font "Arial" )) (pt 0 8) @@ -2240,7 +2240,7 @@ applicable agreement for further details. (line (pt 52 8)(pt 56 12)(line_width 1)) ) (text "VCC" (rect 4 7 24 17)(font "Arial" (font_size 6))) - (annotation_block (location)(rect 2136 824 2224 952)) + (annotation_block (location)(rect 2392 824 2480 952)) ) (pin (bidir) @@ -2263,7 +2263,7 @@ applicable agreement for further details. ) (pin (bidir) - (rect 2104 3232 2280 3248) + (rect 2320 3232 2496 3248) (text "BIDIR" (rect 1 0 25 10)(font "Arial" (font_size 6))) (text "IO[17..0]" (rect 90 0 133 12)(font "Arial" )) (pt 0 8) @@ -2277,11 +2277,11 @@ applicable agreement for further details. (line (pt 52 8)(pt 56 12)(line_width 1)) ) (text "VCC" (rect 4 7 24 17)(font "Arial" (font_size 6))) - (annotation_block (location)(rect 2280 3248 2368 3632)) + (annotation_block (location)(rect 2408 3248 2496 3632)) ) (pin (bidir) - (rect 1944 3256 2120 3272) + (rect 2216 3256 2392 3272) (text "BIDIR" (rect 1 0 25 10)(font "Arial" (font_size 6))) (text "SRD[15..0]" (rect 90 0 145 12)(font "Arial" )) (pt 0 8) @@ -2295,7 +2295,7 @@ applicable agreement for further details. (line (pt 52 8)(pt 56 12)(line_width 1)) ) (text "VCC" (rect 4 7 24 17)(font "Arial" (font_size 6))) - (annotation_block (location)(rect 2120 3272 2208 3512)) + (annotation_block (location)(rect 2304 3272 2392 3512)) ) (pin (bidir) @@ -3506,7 +3506,7 @@ applicable agreement for further details. (line (pt 88 24)(pt 72 24)(line_width 3)) ) (drawing - (text "402923543" (rect 27 18 80 30)(font "Arial" )) + (text "570826775" (rect 27 18 80 30)(font "Arial" )) (text "32" (rect 77 25 88 37)(font "Arial" )) (line (pt 16 16)(pt 72 16)(line_width 1)) (line (pt 72 16)(pt 72 32)(line_width 1)) @@ -4302,10 +4302,6 @@ applicable agreement for further details. (pt 408 320) (bidir) ) - (mapper - (pt 408 440) - (bidir) - ) (mapper (pt 408 344) (bidir) @@ -4374,6 +4370,10 @@ applicable agreement for further details. (pt 0 200) (bidir) ) + (mapper + (pt 408 440) + (bidir) + ) ) (block (rect 1264 2344 1672 2920) @@ -4685,31 +4685,6 @@ applicable agreement for further details. (pt 1264 3048) (pt 1160 3048) ) -(connector - (text "nSRCS" (rect 1682 3272 1718 3284)(font "Arial" )) - (pt 1824 3288) - (pt 1672 3288) -) -(connector - (text "nSRBLE" (rect 1682 3296 1723 3308)(font "Arial" )) - (pt 1824 3312) - (pt 1672 3312) -) -(connector - (text "nSRBHE" (rect 1682 3320 1725 3332)(font "Arial" )) - (pt 1824 3336) - (pt 1672 3336) -) -(connector - (text "nSRWE" (rect 1682 3344 1720 3356)(font "Arial" )) - (pt 1824 3360) - (pt 1672 3360) -) -(connector - (text "nSROE" (rect 1682 3368 1718 3380)(font "Arial" )) - (pt 1824 3384) - (pt 1672 3384) -) (connector (text "DSP_INT" (rect 1130 2832 1176 2844)(font "Arial" )) (pt 1264 2848) @@ -4810,18 +4785,6 @@ applicable agreement for further details. (pt 2080 80) (bus) ) -(connector - (text "IO[17..0]" (rect 1962 3224 2005 3236)(font "Arial" )) - (pt 1672 3240) - (pt 2104 3240) - (bus) -) -(connector - (text "SRD[15..0]" (rect 1802 3248 1857 3260)(font "Arial" )) - (pt 1672 3264) - (pt 1944 3264) - (bus) -) (connector (text "CLK25M" (rect 1202 608 1243 620)(font "Arial" )) (pt 1192 624) @@ -5444,16 +5407,6 @@ applicable agreement for further details. (pt 1144 2008) (pt 1264 2008) ) -(connector - (text "LP_STR" (rect 1682 824 1722 836)(font "Arial" )) - (pt 1672 840) - (pt 1832 840) -) -(connector - (text "LP_DIR" (rect 1682 848 1720 860)(font "Arial" )) - (pt 1672 864) - (pt 1832 864) -) (connector (text "nACSI_ACK" (rect 1682 928 1742 940)(font "Arial" )) (pt 1672 944) @@ -5799,18 +5752,6 @@ applicable agreement for further details. (pt 1160 920) (pt 1264 920) ) -(connector - (text "LP_D[7..0]" (rect 1810 800 1863 812)(font "Arial" )) - (pt 1672 816) - (pt 1960 816) - (bus) -) -(connector - (text "ACSI_D[7..0]" (rect 1754 880 1820 892)(font "Arial" )) - (pt 1672 896) - (pt 1904 896) - (bus) -) (connector (text "SCSI_D[7..0]" (rect 1786 1056 1852 1068)(font "Arial" )) (pt 1672 1072) @@ -5877,10 +5818,6 @@ applicable agreement for further details. (pt 824 440) (pt 952 440) ) -(connector - (pt 1120 328) - (pt 920 328) -) (connector (pt 920 328) (pt 920 432) @@ -5983,10 +5920,6 @@ applicable agreement for further details. (pt 376 -16) (pt 368 -16) ) -(connector - (pt 1120 328) - (pt 1120 48) -) (connector (pt 400 -16) (pt 464 -16) @@ -5999,10 +5932,6 @@ applicable agreement for further details. (pt 400 -16) (pt 400 160) ) -(connector - (pt 736 48) - (pt 1120 48) -) (connector (text "CLK25M" (rect 802 -32 843 -20)(font "Arial" )) (pt 736 -16) @@ -6080,6 +6009,77 @@ applicable agreement for further details. (pt 1264 2896) (bus) ) +(connector + (pt 920 328) + (pt 1080 328) +) +(connector + (pt 1080 328) + (pt 1080 48) +) +(connector + (pt 736 48) + (pt 1080 48) +) +(connector + (text "ACSI_D[7..0]" (rect 1754 880 1820 892)(font "Arial" )) + (pt 1672 896) + (pt 1904 896) + (bus) +) +(connector + (text "IO[17..0]" (rect 2178 3224 2221 3236)(font "Arial" )) + (pt 1672 3240) + (pt 2320 3240) + (bus) +) +(connector + (text "nSRWE" (rect 1682 3344 1720 3356)(font "Arial" )) + (pt 1672 3360) + (pt 1816 3360) +) +(connector + (text "nSRBHE" (rect 1682 3320 1725 3332)(font "Arial" )) + (pt 1672 3336) + (pt 1904 3336) +) +(connector + (text "nSRBLE" (rect 1682 3296 1723 3308)(font "Arial" )) + (pt 1672 3312) + (pt 1992 3312) +) +(connector + (text "nSRCS" (rect 1682 3272 1718 3284)(font "Arial" )) + (pt 1672 3288) + (pt 2112 3288) +) +(connector + (text "SRD[15..0]" (rect 2074 3248 2129 3260)(font "Arial" )) + (pt 1672 3264) + (pt 2216 3264) + (bus) +) +(connector + (text "LP_D[7..0]" (rect 2154 800 2207 812)(font "Arial" )) + (pt 1672 816) + (pt 2304 816) + (bus) +) +(connector + (text "LP_STR" (rect 2042 824 2082 836)(font "Arial" )) + (pt 1672 840) + (pt 2192 840) +) +(connector + (text "LP_DIR" (rect 1922 848 1960 860)(font "Arial" )) + (pt 1672 864) + (pt 2072 864) +) +(connector + (text "nSROE" (rect 1682 3368 1718 3380)(font "Arial" )) + (pt 1672 3384) + (pt 1768 3384) +) (junction (pt 2504 760)) (junction (pt 1856 -64)) (junction (pt 2424 -80)) diff --git a/FPGA_by_Fredi/firebee1.done b/FPGA_by_Fredi/firebee1.done index 2f3cd55..eec570b 100644 --- a/FPGA_by_Fredi/firebee1.done +++ b/FPGA_by_Fredi/firebee1.done @@ -1 +1 @@ -Tue Apr 18 20:21:44 2017 +Thu Jun 22 14:21:02 2017 diff --git a/FPGA_by_Fredi/firebee1.fit.summary b/FPGA_by_Fredi/firebee1.fit.summary new file mode 100644 index 0000000..f142f9b --- /dev/null +++ b/FPGA_by_Fredi/firebee1.fit.summary @@ -0,0 +1,16 @@ +Fitter Status : Successful - Thu Jun 22 14:20:25 2017 +Quartus II Version : 9.1 Build 350 03/24/2010 SP 2 SJ Web Edition +Revision Name : firebee1 +Top-level Entity Name : firebee1 +Family : Cyclone III +Device : EP3C40F484C6 +Timing Models : Final +Total logic elements : 20,227 / 39,600 ( 51 % ) + Total combinational functions : 18,217 / 39,600 ( 46 % ) + Dedicated logic registers : 5,767 / 39,600 ( 15 % ) +Total registers : 5906 +Total pins : 296 / 332 ( 89 % ) +Total virtual pins : 0 +Total memory bits : 355,360 / 1,161,216 ( 31 % ) +Embedded Multiplier 9-bit elements : 20 / 252 ( 8 % ) +Total PLLs : 4 / 4 ( 100 % ) diff --git a/FPGA_by_Fredi/firebee1.map.summary b/FPGA_by_Fredi/firebee1.map.summary new file mode 100644 index 0000000..286e23f --- /dev/null +++ b/FPGA_by_Fredi/firebee1.map.summary @@ -0,0 +1,14 @@ +Analysis & Synthesis Status : Successful - Thu Jun 22 14:14:13 2017 +Quartus II Version : 9.1 Build 350 03/24/2010 SP 2 SJ Web Edition +Revision Name : firebee1 +Top-level Entity Name : firebee1 +Family : Cyclone III +Total logic elements : 21,573 + Total combinational functions : 18,134 + Dedicated logic registers : 5,773 +Total registers : 5901 +Total pins : 296 +Total virtual pins : 0 +Total memory bits : 355,360 +Embedded Multiplier 9-bit elements : 20 +Total PLLs : 4 diff --git a/FPGA_by_Fredi/firebee1.qsf b/FPGA_by_Fredi/firebee1.qsf index a041c37..49b639b 100644 --- a/FPGA_by_Fredi/firebee1.qsf +++ b/FPGA_by_Fredi/firebee1.qsf @@ -347,7 +347,7 @@ set_global_assignment -name TPD_REQUIREMENT "1 ns" set_global_assignment -name TSU_REQUIREMENT "1 ns" set_global_assignment -name TCO_REQUIREMENT "1 ns" set_global_assignment -name TH_REQUIREMENT "1 ns" -set_global_assignment -name FMAX_REQUIREMENT "30 ns" +set_global_assignment -name FMAX_REQUIREMENT "33 MHz" set_global_assignment -name USE_TIMEQUEST_TIMING_ANALYZER OFF # Analysis & Synthesis Assignments @@ -445,21 +445,6 @@ set_global_assignment -name FMAX_REQUIREMENT "133 MHz" -section_id fast # Assignment Group Assignments # ============================ -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER DDRCLK -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER DDRCLK[0] -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER DDRCLK[1] -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER DDRCLK[2] -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER DDRCLK[3] -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDRCLK" -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDRCLK[0]" -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDRCLK[1]" -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDRCLK[2]" -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDRCLK[3]" -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDR_CTR_BLITTER:DDR_CTR_BLITTER|DDRCLK" -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDR_CTR_BLITTER:DDR_CTR_BLITTER|DDRCLK[0]" -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDR_CTR_BLITTER:DDR_CTR_BLITTER|DDRCLK[1]" -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDR_CTR_BLITTER:DDR_CTR_BLITTER|DDRCLK[2]" -section_id fast -set_global_assignment -name ASSIGNMENT_GROUP_MEMBER "Video:Fredi_Aschwanden|DDR_CTR_BLITTER:DDR_CTR_BLITTER|DDRCLK[3]" -section_id fast # end ASSIGNMENT_GROUP(fast) # -------------------------- @@ -515,12 +500,6 @@ set_instance_assignment -name CURRENT_STRENGTH_NEW 16MA -to nBLANK_PAD set_instance_assignment -name CURRENT_STRENGTH_NEW 16MA -to VSYNC_PAD set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to nPD_VGA set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to nSYNC -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to SRD -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to IO -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nSRWE -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nSRCS -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nSRBLE -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nSRBHE set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to CLK24M576 set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to CLKUSB set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to CLK25M @@ -631,28 +610,33 @@ set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to nACSI_C set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to ACSI_DIR set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to nACSI_ACK set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to nACSI_RESET -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to LPDIR -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to LP_STR -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to LP_D +set_instance_assignment -name CURRENT_STRENGTH_NEW 16MA -to LPDIR +set_instance_assignment -name CURRENT_STRENGTH_NEW 16MA -to LP_STR +set_instance_assignment -name CURRENT_STRENGTH_NEW 16MA -to LP_D set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to LP_D set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to LPDIR set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to LP_STR -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to SRD -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[0] -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[8] -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[7] -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[6] -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[5] -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[4] -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[3] -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[2] -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[1] -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to nSRBHE -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to nSRWE -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to nSRCS -set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to nSRBLE set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to AMKB_RX set_location_assignment PIN_V2 -to nDREQ0 +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to SRD +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to nSRBHE +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to nSRBLE +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to nSRWE +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to nSRCS +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[0] +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[1] +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[2] +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[3] +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[4] +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[5] +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[6] +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[7] +set_instance_assignment -name IO_STANDARD "3.0-V LVCMOS" -to IO[8] +set_instance_assignment -name SLEW_RATE 0 -to LP_D +set_instance_assignment -name SLEW_RATE 0 -to LP_STR +set_instance_assignment -name SLEW_RATE 0 -to LPDIR +set_global_assignment -name SOURCE_FILE Video/BLITTER/lpm_ror128.cmp +set_global_assignment -name AHDL_FILE Video/BLITTER/lpm_ror128.tdf set_global_assignment -name AHDL_FILE Video/BLITTER/lpm_clshift144.tdf set_global_assignment -name SOURCE_FILE Video/BLITTER/altsyncram0.cmp set_global_assignment -name AHDL_FILE Video/BLITTER/altsyncram0.tdf @@ -715,8 +699,6 @@ set_global_assignment -name SOURCE_FILE Video/lpm_ff6.cmp set_global_assignment -name VHDL_FILE lpm_latch0.vhd set_global_assignment -name SOURCE_FILE lpm_latch0.cmp set_global_assignment -name QIP_FILE altpll1.qip -set_global_assignment -name SOURCE_FILE Video/lpm_fifoDZ.cmp -set_global_assignment -name VHDL_FILE Video/lpm_fifoDZ.vhd set_global_assignment -name SOURCE_FILE Video/lpm_latch1.cmp set_global_assignment -name SOURCE_FILE Video/lpm_mux0.cmp set_global_assignment -name QIP_FILE altpll2.qip @@ -834,4 +816,13 @@ set_global_assignment -name INCLUDE_FILE Video/BLITTER/lpm_clshift383.inc set_global_assignment -name QIP_FILE Video/BLITTER/lpm_clshift384.qip set_global_assignment -name QIP_FILE Video/BLITTER/lpm_clshift144.qip set_global_assignment -name QIP_FILE FPGA_DATE.qip +set_global_assignment -name QIP_FILE Video/Doppelzeilen_Fifo.qip +set_global_assignment -name QIP_FILE Video/shiftreg_dpz.qip +set_global_assignment -name QIP_FILE Video/BLITTER/lpm_ror128.qip +set_global_assignment -name CUT_OFF_PATHS_BETWEEN_CLOCK_DOMAINS ON +set_global_assignment -name CUT_OFF_READ_DURING_WRITE_PATHS ON +set_global_assignment -name CUT_OFF_IO_PIN_FEEDBACK ON +set_global_assignment -name ANALYZE_LATCHES_AS_SYNCHRONOUS_ELEMENTS ON +set_global_assignment -name FMAX_REQUIREMENT "33 MHz" -section_id Main +set_instance_assignment -name CLOCK_SETTINGS Main -to MAIN_CLK set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/FPGA_by_Fredi/firebee1.rbf b/FPGA_by_Fredi/firebee1.rbf deleted file mode 100644 index 57fa4418da290793ac1399a37d709d1562ba7537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531802 zcmeFae}EjQ2qL)SlSVNO6WC3Eed%xz$qqV-P{Bmj$V# zD3jShzzInR@Te}el(BKJqv$~vSYCIl{o@5g9Akd%@?-26Fb0A*VR^8?Vmkr+vH@f# z{0Ipz`}tONNiE?xj2gjqjzwbHs+;h)8_tdTSm%jA;u>SYJ-~R1qzwp^FeBrat zeE#$Q^iTiv`Okm;OaJtRFMZ)lqr~SwPvQ&CpFMv^|6cmlalm>Gu*cvzinFY-Dt1vv zdCwJBUQxe@kB5p2p09mg5}@v`ywS1MOs)e#i!#^Xhv0lX0?ercVeY&

    ;SkI20E7j&xd2Y?sz@LcL106tNbEQaY2zD4=?RkWm)CtsIR&z8*l%7@o8YZ z|L3avmCB#1O_4X=c068`7hy4;f_BkWloesoz6guDMR^ha4bT9JbkVmD6nW!e(a)C) zi@FnlaF+n(iN+#c)KRFs0><-;ctL-W{z{?h3yON`JI~3V?g*YMuP7_RMWBd_{^x^& z9|hh^L-9i}o?qxe(Nf?Ur)wO4QGRK7DNQO@p4N~;^*2tN^2TX+KHjUI`cq%y{S-LV zR{_c^pvW5!Zvw{C<1{>1{0J~k_X?oA0z}hy0jg7g(#jVoF31vNk4x#;4OD=FHqqjY zK@5x~ons?VzF-niRxkqf_YOcb32i~IiVHdwDt|nEDG!9RphaOD7_TGT^)XO=B^8P$ z)m2(J6psLfW}(H6&?pfO9A4g;wtL`3LgRTo^qOm zQ~AOvJPI{F(RDvCj$37FE3%Y-3Q&3zP*{L)s^0>HTXEqLsGiaar+{<78lZa0E96`F z#-Rr&y#$27s{w_@d_DoF{1*Y`Uk<4MDxiL^12it-xgAj1IH*kZL}LQ{??4S0ucL7n zFaT734WPW&0t(*)C{($^p8*su11Ew14Gv){wJGvcM>H#~xIler4%CXRmo*r*Q9Xg^D)=S3ROb*- z$bs~e`V(Xgc&J_zP$)VDMVZ2aj;{ff*7ybEeTYBemqOJMYz4F@73~!&Jqt+Ro&c0C z;O)R0flmM`I}4~x^#v+dI`7@Gt^~vn$zU-)m5DCl5)?dAs50dhcoi2YzrdsL$AN+d z)x8SX1-x_w-w0@I$}2$WLe9lwK^f3G)jH4|>;Z&Nx^nfRhmAUag0xcUsIurUzLeQ#RbxLc`Sd5 zHpPTrq3R117kmoPo~=C5^C0jz@I^rST4lcvLgBv@#M|*a z$(s5s=n&ln4uv-YF9H-V>K1v|0^dFY)lpjTO@Q>mHvQ`ds+5 z|2zu(F`#%shv-s%PQ`_%=#YNUScSKsNqI`k&J!I4U7B0bA^Y;DfS&|}U;0Dg{{qMt z@O^;N!YSI`0Ej-VY3bI20?mu!1wSN*qCt70LF3olNHzt^6HRvm%9rgRefXDv!k-6} zr*?kNe2m^aH+oH$`gL!QK&M71xPOlq~nWyQTvwmO05;irNW;B zwC~ITp95sm-UX;!XCI|iPk93QNyc^NrS@?_N3pjEr$97|HqouL*0RPXxl<^*6iSyV zPkXU!`2Q79JIS-=MKY^8(yPi7NT+IVQ7F*aMfeI(nc`Zr3iDQH&WPvgTOiz*(xh{Q zK>4Ccb(EHj{yOlV0nzwgK>6a0^qK4|!7l*{g;!9Ni3WkjC{SE9O2;d${Y$tCoT680 ztr3N?+k{Vai65Hh_W_z82`E%v0ZNMwfpmoEkzJ{@@XPLy zOlY6iIuUJ}Yk|_r*OsF_NM%m~Dw7To$TrkIuC*!N4!mD@zN*8#443G?{O!+$3%kELW z=u_Xqqq$PZO@q%Daiv9B+m+EM+-!|K(nT~dNCmXhWM>e zx>a$7O3Mb*dQ>PriQXbl`PwVRqnwKTDf}9bLhXM7#S2hca;#7^Y44N0s6A8bLbPcg zeF*q-K%v&K^oqtKTTnV)drPL!c*q`5x}Zb+P@JtfJHr)nC>n%U_K`sLkf6xZde9k5 zJdl4vYfrua?Y+_&ng_*IN1%O3`Lbno1}^rzf)4GU<8%m*Xi%QQ0z`xSDv}L>=23aK z0+3uYwM( zMcK>JEh<;2wCE6zJ_`t+>WLrH8=a#w)x2nsr6izqEw6KIa4lL|V7dmQAC z6KL+0uTW{x_EF#iBT$||@*^5#qe=EeM-eKnGNna>AgAJkACyj(j+K2VJ5l?}I33C> z@M|6)1`2ae#Ye3P$*KG~vgK7zpuJRQ3xW79KcK=(K{mef)K*ZGYn{mdqW%Ta z57JfI2c^qIlhU$L6&EO7*dvPnE+F56XwVuF$j@BhP$>N{9_oA~87%11c}sbcLFLQN zP&ykV57DJ~&apFRq^p!J_8G+m#hOs4bt}KJ)@G5fJf#Z|F0Dz?H=d{UsC=C>6{?;< z>qF@r+XcF`ClxfRO#Kx&6^ia6EgB>fMOvZwr8OfSDb)E$`Pv5*N`Gm6s2|C!>J@l| zOY)|C$%>$;r!_E+OS)hEeK{Dft2&xr&8Ox^Y1wI78?qx6>iw8_Bwe6-N-O_6NAP!m z(kc@a^~9@jTw3Gmzku;F@k{kpCf+F2UZe3!MilM`#1E}am5W~KH0e&sbx}`v1kxF* zCtfKm@QIH_T=~+C+A9?osJ_wy>3Q)-amizmr}({q(%O%ukM01JFCVD(Dd7-E{uN4B z2)97#OQFzdMZWZd`Y%9hRdL}ET}8YoFY<(6bz~E%&qBT=Pr@y|Bpd}@$}2$mm(n4+ zi#&z$6?D}$Zi!a$}2!=&9OkTEIUJbK%qc++WYbvxg8?91)@!L3OOxoYRSLO zyT#rvzn0>;6ka%g=Nj$60og3Y`ManiTT%AC`WGIpCCQG`f+A1(1xPkK72f7O`kG7ePHR~3p8%!BD}nkFF3FZcf!3^`$dhi6k50aQz1Nan*BAxD zFTbz+dwR#Ea@7;h6l(t!Zv>h{f%bjjmi!kq6m%#oAg97{Bo~q&&Epo}g+Spm%&Ewq z+LslReXDZe);^&9TTs*;-+P6tprNoA3;ab`th*vDerf$^%?VU4yI6U8cT>Qhji5*? zEbU^b8b19H5C0Zo&;)&){p=3^>d-tL(w-@MQG0+uXA{l2_Ev=g$&6@JycoY|5FXJaDCp3cOZk_A=n#I{PO`T|uV@lI z(s9ZYXuV<*9Z@Jbl-y}eNVh6ofbs-dr)pQwC7Bm)?H8g^IF!~H6&8F_T%fe*5)Fbp z_rf`;z^DF1gK!pkT64-1Nah8~lg=pWYdwlT(yOAUfMT7Bx1wEoOt_U_#FZ|_RfM9q zh$}2)rRYcNMQ2^%6zB{qKdafs__xdf`G({>xR^%oyiUA0|6iIa zUs5qCpEp=8DH%_mf1xm*`7er}`ww6G7uEY8t+e^t4`e6pe@T1qUozB7J39Bd4_}(~ zubTd91|Y=lSBw4J){lNQO_HygNw41dRUnutSzrA$eEYAwz-J82z?ycfD6ryix)hO9 zv8HXyRIH$Cd2T5RsvC)IMV>zuQakmcQj?NKwd}=q-LX7}hE@{}8g*qE^3#%9`>&E-cYPlEB4a)U1!F;(B95fcC zm2z`0r8mVjl?L1Uol|E5wK-^J`Wx}Swp(sSG`j6jT+2J{chcwWbw)_@Zf8PTJ%7I- zwi8ID*PgLjv77$4=KF(MsTaS(%?L1Q|K@1UzU`0VzB$sl_1N6@&b?JI+_Z7Sdrp)t zo>;5wRcxzXva;FD=e3@8@(E?CVA^O_#cCH;YZ^4GnyA>$<-nq5G&TXoVoo)E)Tbtr zWIf*b+OZ1%`q9tq+DE6F+@u6KUJ2C1HG&cJDn%>{5#iEkak~h128opYhN4Fri~&gK zg-)_TjC%9zm;ZkDVv7 zK6dNefBe9g@8WK_(XeJp0S# zTwweqHQuo6kCpQ;*~qd5a7lBLUuhHzxv*v;e4dOiOTKD6hfF*lcawDY$3<2(@BJ&_ z$X4(_9|brsUSyY4`RTVyxt;IZ8sC9Nf<8W`K+SW8<)!Ip%ZamoS%KbE!{obfR$(+| zuk+|ze)a|9cvN4FGAU1{j1cEtGLj6##Ul#p=pCo-uo(ks-Jc>zrXZ+#zG5-k=l;uQ za(blUFM@1RbB0W3+weuDnHp8UmS1%BoFbG=HC5?PUiGaCau^erQQO3Uz>AlHS9&fX zpo3&ewMTH#guU%=$5a;W&v%g3Vi5lfiF&!flTn`p7lt&-+h`V=e6#h57cljiMUoee z7$<}hAn%`3mz*Cwo(nIA)w)M{oev%W-VnD=T~=bjwqQP0liKTHVo;#7v$7^p@A zm#`}2ViGXcECqE9W0gf2c^8Ny)`+MLJqdlidgp^1=~$2FqmYx6To=ak#1-X52H5jb z@Z~)!6bOkxduXNnGcU;!BW~s-s*fJXvp(`b1A^q(k{JgO$)X9VhVsHY1FNDk{)zq! zJg4b7qf}Yp?bkhBci?^op?Clb(#THiVup)CMw!@FIq@@ebW3Y8;3*N$ZkWWbkmuQO zqb$ZHuGDa5YtnYv2&yF=98XEnV=ZyjqIdX+{4QM3pc`csVkS-unK6si@Gm6gFId|<9 z=i}p%tZklw$X`eaWsZrwgv3RVI8nBiMux4*nt6r$Uj2oOYhGxY_reThf2sun;n6p3 z^ou1f$|nVuu~3V4mCgVB*;Ck8IC|jiDDgh()6jlFuJtzAF$N zJ4V_$>cv)sBt~G5A~BRd64`O=4GZIo*kYlAH$xest7r0Y zfwFEZ#a~R_>8?!$;UYMoSUt@-$xOB!s}(p3EQX)|HCu6B{)^u{X-x-FW_^^8RA7fy z8yMgHVY4J(i`6i3*ki0UJ1YfWZLrICf5y~KOx04hO)6Mn&90|zX|JC;G?oQ-D(zIY zZqyvAO!FW&0xEj4>FfFYaOw2< zW{MzdM&g#ovjCbMYl?y>Lhd|RoejGM6IxkP!f@_S z?;5oo1;}BN<7I&AmsCDr(2)jn-DYH_5P?R)n#8Vy@;k5oO{+L$WUCzOJwK?7P9Axti!Uzw!3CDBXKx}}rKY4VK3|(r(h<3kQ1>f(P5OWl=$^Z}%2m(P&m4U%XOd}X0Lot0yr4M9R@8_m*~mjJokqUGshmv+wb`dU z8zpBUAvZNlHqL3|gFA5;Hw$>wx5pW1ZYm);z1z1cn}=4e|HR5iD)W0kuyuc<{f_TF zyAtvE=)=dp_w0$^xcTT??s@O2(X;WE`8O}Urn3LZr*`MhZ}>=M;f5c5)$+oD?C~S7 zT3);IiXVCBd)BI>=b7WToKol4+>k#(@z7IQ?_UwctDl|CFkOV>zJ>XJRV2YHuKevM zp9)@4{q2XII`$n)cWiz2LofgKiTRUh?7G8a1{ z1&n$-_m4LeIbSBEqY;<|(B%6%SQ=J7rlhn3UvvTa5WH+Fz)0{IRx>LrqbX0IDf337 zp`ITSRidogX!A8GXcz3!DW)Dw)g2E`u(Jg?eDkUWN|^^44l$9VV?OA5>6`w8J*qOs z%=3-1hz2B>b};w|v0Ab;4@M~dCM6;{nf27kS)Z?W2==sQr%UycwfTlr_4DC{s$b8^ z@Q9u_N)x;61$LAn$@u7{Ilfg|MC>+IzHV@6;td<*sIA2_KdC8B9gs@Dc+R=s{VipU zAROT%nb2oG4q}*HWGU&Dyv%;4EvXzJpZ&!zQs7IRVlF)f(5#pA!ok}7zdnGOrJf`W zCh5?_N=6;sDk}r}H6}ajE30aHKK-*z&<;k@9obcD1{2cj1RcBC!U2)MCPGdAB z;Ptv1gU2jtieBP0uk6Zzx2*cq=4!UB)1@HqG2_fgmXs?>czAgoB{J~nG!Z_iqDo>T zDA{`O3f`(=IX5U2`}~Uv3~F>KFuEKf1sTqq93?NrlsXTf_e6otKv^^Eiidvl{R}yu z+>GL^sfVMWm~iSB9A(BwJ=fI@ae8cyx@Y1UVm6rbO&cn^6Z1*cyVKA7z`F=DG}&TM z3@H}3#~>jW6`5#*6N3bn|yej>u4q0 zVe{@?`FYEz81bXy3q#79jHrT8&%t12_8hC4%@Q#$<3*$<9&(~U!**GMUcXX|KgXRt z>*Z&D`dhL=P!~~NO6<@*KTKrWzc6HI^qho+OGTqKU0S4(OFwkni!4T|#p0D{-*lTv zp!ERIK)6T{;|!!3jjYYaC&X$p=}LI8Yjg6IndE30e@LO7bPeOs(oTZDA5|G?CXlKM zZw)P}m~ox4T3CKy8)KXoq#_#rl80m6WS~hJyF>`a&jaSFixgr24mFG30SPK=`qYEi7=VKKr~?F zuqYIn;-q~B)eKqUJGv~nT4k`2Dg_7x+X%Wzjt?n}bFcZOtbxV=mog+8N^)UNDQ8C6 ze&L8QsH|o$pbAQ!dKpMl0R_3pNG21o;9^Le^5!?beM^?swq5bF7zY-7oGVo)a8*hcKGHyDd^<4=qqpwBz&#;DV518{^R-xjSs zujDz&Mdr|mx+e9&!IC19#j`-!R}CNz)0oJO-K9A90C2OWT&0 zn!6*jhHH)g!sG<0B=sj+1LS`VSwsR`G>ulPuKH*ue&4OSeBj$EMQ&70`W61FhpIEd zT)(0<0}VJ1f-Wntn-U?mmB4xVD=*J?{vQ0SqGh&L%?vzc%)EBi;y*tPaGU>nZDzQ+ z);rbdv43DW!)MM_d%~m^FavRptq7@3qPLM$~$0b!b1ign=_jc0? z6VQ}ZTgDqC_rqRDF#g8y7)DDseJ~Cto2^d`mlkAkOPYFS(OT}8EpMV%mhzqPOT98% z3V+!y11}j^_Ozn5XXr?Yoi#aTsC68!iN3>k8EdA4>CfT4%+a>v)H)^jq2ie>*5NsL zhvz8MJjlKL6ZyZ)okVn!f1i5rMX*Cto19&=s>`zzA$(+Vt?CR+)Ss|tP)u(U1UAzW z*5)UdmJvc+H4Jy!MVob@K#o9ytHN`I^3-u2%R6*}+HnSXS`k_W- zZT?SNZx5#!Pv-mS`x%$m6S6Pmt2u|P83vdGsz)xJWXOt&to6y>E-N`vN(OszPJ9bY zV5fG)Qy)38TpR=CWn0wHfhcfi?uxz67UIw(5PPJknZnGq@n?s><~(b*T1zvtrKK5I zg|JI@^FQV;Ys*7p=5L869}dHwqX0wyc@6JFQUrta1bwV$3vN5D6Ot3M{ie$8PJLaIEDL zIn@cMeE6F6?0-7KiKE_Y`nBsKeGl`!hf%A-`XE6Zo!Zq2aHTq`)VK{toD)LEG9 zQZOkldOp~?9MU;)L1F8`!&(~+lccg0UQ${Wb{rlX9dT*J*F2tgrYxH&CefJ=j7A!j zJ-M+>?jC7I_>tQ5(VMl(%Vvw_`p#&^zZ}uAto@BzX3aJ+VT|I(IeIOBN1dEBf%YU;E0>Rx0b0ul!`Af9$4rEuW3`_??^HxqSA~ zD{emio_jWm=dtzo9@=$dqyN`8jh-*7Joduxxo6j7muHVR-LvbqHpNUDPM=qVlYp28vT z+>1Y=Y^&DDiY+Y_pwOqXj|Fmd=xkZfgd@vBvJe>WXh?7*tTNwu4_P6Py5muKW-PPu z*6Z%QH!Go6bOuq8i?YDAfKhqjtY;FIhli=0op-H(1K4CnNY&kkh0d6h3FD<58`~lD z(vlRQT#1gfO+=pv+lX@duatVhxs%@)Leg~LIvH}+5nux`ct%&v#+c=C%(1gh5O+_b z2r#fyhFgbkw02E%Q7u)O+-NUbud!Il$%VnzOV}cbedW@btV3)mAx?(;{;x&1+&pgVu*N^lIOgayeYa>s+SE_Y4Y-~Yl z=pR^_16!)NLBl4sxW#U!=eFzKYBkHW=@ z2N!NmLW`}i3R2TnqqVGQPC?DF3}Be&8Emfdcex=qHm&$#}DqVH&AVhjW|Dx;6*^TuZQIqm0GQ zH4SUcz)FeF-z>nh48(e}64PfJ0f%RpZyFR+!@Qtqvf+;e8)+b&y)8nxx>@@r=;i=) zo1LxoB*o;*y3J7VfZnF4*!-incQt;AsUVlFNu8G0I!OU#%HAc{P36HuMV)1fX> zB|(lRi;{``00XUP)6eAv{$2ap7j8(LfdZ$btxR)mlGIj5iOreXDvQFr8$u>SN+rkR zm3%fhwb@|wqIFR%^0iiwM>-;F`k_~S;Jr2x@sWjAMYBjo83yxhNvmJ)!@fx?YNaSj&P`Di<)aAf z$5E6nFOc$gNb0@RGkOZOV6>XavrNrdcf7QVxJK4mQ>E+jnHVck^>=n&gKjxOW z?WK?@&0Ix~;qbw_uJGntjnGDV^8*6B6Cta!rQ0{&1 zE{R#8EQtb|+6-tSLNbPU>L&x*XVCKrnoGSXK|)YEGZS=^$t43YI@Gr&(3-T5vXujw zj>Q;IAP@iGi4J@op*i1cHf$l}Ux6jZr6=p2r|1A9B%7$(3}p@+lIPv&MWS4b5i(4Z zx}yoStTq{;b;lPbLS_UFq5kuJO_Hq&^@|`XbHwXjgywPbhT^Cf3YkR19-q@ zt!c!OHixEm8s^#49NFkurr1-NWFc`jf9>o92(Zxok^zs_oTj8$MM4g4gv01BNxST0 z5*iQ*7v3!o&B0csMyqmqMiKn(I*Te7jWuZ&HQ@njEg$NF``RDPJyVE7zSOf4hBG4< zlo}AvfYxYr`UM{tz=!DRJsC=hlwqKzmuY-9O@=A{(U1m4TU-q>G#Ld9hxT><;ZqN9 zoF%>;wv-u%4X za@w9_t+Tk8!WwIQ##tX+(MmZy&-CNPC~9qK)=oNygF$1aG}Eutwk)TVcLxW<=-t)U z?zWcxf=- z4JKl>4~XWZ=WN_J6%O%!S3%1GN< zTb~SjQkSFa1INgjx0~zp6EkPu%(=I1Lbny9gI()RxP12dWU$NY4&P<0_e@&r^QGQ# zJUUU*kFDiu56T#Y^$NJXyQLn z<6PU@RkLRxyRrOaL&y89N(IM}l+ftHk6EAW9S<8%#4HFZ?0t!Iywrp`ttPhK-< zZ&cUsK2FK;Ms;u3Sw4F_>g`(p`G#|i&rvv_b-U%7qt~pT3j1$fpPcE>*R~C}ZtL2# zP%F`tI_swL_g2>p-Iz_Atem7g#N)hLM*2X$aK{SlLwyuA8?(T+@gSJ^>I+m8_?WJWi-@ThU zy<=@SX{{S)=I*0R$r~}AEYpry#Wg&CcenAi%unJCU=wn_-mf{D&}6ak#j7uyVWnF5 zPI_pK-Xc*nCkrb#U08YuFRNbbp3Zv6#9&_1a~#hJ8#^33X0XSsbu6~SbMncsrg3M? z4EDBEETeLL@OCEtc+!7o3nx}>ve&?yXLQ5Q(4Km|<1OY-f?;agN?=)^|J<{`mh^pL z?Vk`2mxzk4T=Q$|r*;7x>H+u$Lz|Gf7O{eYN!)f_PK*$Q2MFEe&38|j37lZb$yv04 z>2~gEN13B*HR&)55#9m3ZMa^7DBCMCb!A02{N&p&XX}@*B^OJ`)Rbn&lG%)I^n5nc z&;*Y}C?lJ1Va|91XdX!Fd$=7?P`!99@nNE2%!uFMx~R8xtx1z8v|5Aj);7`GX7#SX zb#qs&Wl|f&5d&`xkF%a=4!;=hn!H)O1b+GV@KynKIENk6;3~gww zCH<|mYf-H>xDI0|n4|mWL>yycrp6SIsdbcuZit$+y_tHt6Xz)M!vp?XD zwQl!_gmT!XP>!l8&-VDlE5xVF&XV8oks3*%QX^_uA%4997UfIQ!QSNVV-c3y^x){j z)n0^v*z^daEO)xpl#iq3Ob_N#6t-QR={KV4{&L%DuBu5XV;MZZGkQnb`Fp(9xmZNhiHY%NRU?X|Ig^ zRO{H=y2f6Ff5xt`7n>!EcPqi68ODh^h(jh%FG2BodEm@ESlC`+REMk0^0ha#= zR(z0%O>iHyVv~$Ct6{YLa^lF10Ds0zQH~RWqogFVMB>MiYA|Zj(biE2fpGpr;n}ZX4J>7|GwQ^zxsvi&wljb zx1K5PUp-wtnBUvV(0p#?f9%TE#~=R4mDk+x@$@5CF5K`3r#`#%(AF=eKhNy2sF?~u zzSi*ujMg~Dk!=#&XzCOuPHVEASJktH(nT$^T-v;%s!c{#*czIs))_9g0zaU>YA4-( z%xgVf&y}&|q&@Q<2%}M7%};)-~_6l4(Qs>$J+BLpr)N|^10iKl5CjXyx+BbMotG= zd&@K3D5Ijnz!M+qPIQHgs~qfT0T_~?MsQGxID-a7{$x0K9n<$A0-8h(5@i{93OAcLRGXe3 zq-lwPA*(Z|oEhk3Bz?c<_JSjvBy8)J9^3J>s0~^fVZZnFmq|CSl;)9zJza@`cHJdN z2t8BUXq6y&ZF(^<+PCJNeHo8nO%1gq>a10a0gUt(YLL6(*vb^wmN~G@cBHBXvWW9RO|jm z6j_mRn;b0Q1#jm#+f5?9P2SYc4OacN9X@9=E?EqNnqv}|3mR+e1ddw?leT;A$FJk< zO2gVwfkB9ci9>H{rDLNCnDZ0xE$EbRznP$GN9@pcD-&_cw4)G@2rPq4E9x2d&Y-#G zbx$z@)`?-VBCljP#cT}MAnXbSNAAn(DpDSVC7c2q6D?fv=|3)!Yk zZu6=qxWYVn=?kj(59l2k;7NJHgk}|lF@g*TobV7}Z=RR4hY*lKgGInyD_rC>6&q=5 zY?hL@Me`cSQbCq*e1!*IdsbP3D#}mSiD9vlw9gheUT5@8hI4dX6NehKH9{7Awp6I> zAv!qE5JeKyH4M?SNm~(CpKH*8k#!|=NnyQdN4J-(=+|y_?yN`&dlNJEo|wfpXX;%lTh>0ikxXQ7L{K#6S>CkP)I*aI z@ViPjc&b~cY-k9<5x0gQuuD^@{UXERdd@OL<1#H{CteUoD5-Ll@@gaO@B4P9=9 zGo93K!C+cOt4XOBg*zgy&ro@qdt**BV44;jV$&OZMrBVw`u!i>gNCmr4JT6#Qt1sE z*SjeK<7~#gN`@p_OEeLp2()1GV7V}6Nlznhig4T&5-sg2OYB|RAd(V(xpI)Cle)^O zw$Rq;P;#!ejj7*Psyo|ar^Rm=G+6eNi44)0e>AL(@Mj6l{|I23N1HYW zBA-!pcr>9wcjQD)IbdNKr*7=Xvg&qsx*9sx$tm;rq1}JnP}e{l#&CQyU_C_+8i7|d zmc-n1+EHTCQ;)>WD5sr#{;Vp#ky%sHAq3gvt`Pb`$N-{5P?HEM=RrFOP7E9Hfyu5H zBVY@(nn$`z=l=WmS>A@NA#3LC23IvWCh+P$78YwW&LqQ2kpXRd${QijJs^gSA8^h; z*#RdS24lnZ{D2M9gEUjc=d6n#(1Xgz)`yx{48@MDj^%Z`58pmJiFPZoqk0gS;m(jC zZyBG_vck+RghVg~7J|d6GU&2FMCy5!Hz-{?O&s23FcWDB-;Y;H<_+~zd(D#z1poMVJ3&4{$S(Kq096G}W zsV3Q(Mhnk}O$i4N$6D<*a0RFHB`=udRamL%rGq_C6~V485$hK_)fOW*5uG*exNfBG z#>2n(QFnJRGw|KeZLE}5PIR_b9>K#Eoe8d~xQ%f7SX8e#4YS{Mk(996GTk(IWVbmG zApZsz?SLg3M(x@VB^@9+#_LXU+l?Mq*ZaHCV(Xm~Tw+`Gg1~;a+w$*PU2T=#z23R2 z(QFl3reD`2H@0k08tp{U% zAICw^8)21U+!zfF+mu-eoap+Pjinn6gXW#bnAU-8lO}?pFZJ*R^eQ3lP7KbOxxwo# z-klA3=W(caMRd57ob2=u$}_v(?H_Bp;mj~vF0G%9d)H%YoZ@#y`>Uo^@=o;k;uY!7 zRa?WAt%LamC){qEg+Uy&_nH8E!g`{+w|Q^e-Mh1SM>oEA?}?{6zwvvY_}ci!hH<-o zDSqAV#rm1u+*f&Bpoe1nIiNm>65BsZVr|_vTy^V3t@uoU{~%I@b~|%)5wzx=UYjbM zyn9iUoc-pgx09PUS8Yk=ws4S7`g=IQHaNoYuzM>lXX!ojPRpN2?s>6w_^K@~m-1%% zN83sNO>L$raJHYN&P&clE$0T`SX}19^CQ=k?>XH&D#2v;*5R?oHy(KR?#5MTkey_L zY3Q1jGrJe(O9!r-Gtq&PiT9lj<{z%yi&Nmh0~Hf>O?z*$JC64_t@x2(e>CqqFEQ=- zb;tJaWkbb7_p4_9swpeEo9UbmCfC>vun!Ntl)H0xUBSDjqjS}#uRgY#zI)j?;aXg6 z?qjj0xXa#LPIhvDKD3%#^=3a&FZcTGcGW$6d~fn|2ZQd}*~Lx&C4aH)Sm5KNy8C!L zxqI*4wDV(TH4Uxq``&Wvu{eC+zTf87n%Vrj2UwvvS;9tRd4i=|=l|k`=c;D!f$ca6 z@Hb3M50AIKLEN(Aq(U+8d!ytai#o#XgzJSRcsE*Q7~nrdZ>hIt?_i7DZ%ETA930#Y z3R{y*=Oj|fDOd9K}Jt<}tAFKAmcTyOIpaku*uSN?1{u*GZKEx4OZJM)I`jW(M<6i3}F=YG9% zqMLnj+^}wnAyH0hj0DtRVp})HY%R{7iZgvMMkC%7w*s3zB+TRw;efw2TWb_kl*^HL zS#j*mwykAoP@{VE_c@0 zdk(n~F78se){K1Var+e@NrK?@21K_%*qonyAAH>8O58)u4_wwTa;)AM@uh0dSl38< z%=B5Z15@V!C#Qd7&u|`3THR^J`jV4c@XxbZ2(S|J*@2PK>$6Lpe9XYjI)jh~Hl8|5 z6TW=XahpOCF$MQ<1@La8%c<6P}e z2$Nar+whK>BM9R?XJQoAfWDzotYp_V1`C!X`yl+lBu38>sm-3^G+3=J>neFKYU^%k z7soPtlINGWC!EaAVoD?73)t#OU{BjY;G5tT?W+xgZqLuzXtM4PwcDG`6Bxtyz3S&h z#{Ih|7)ia8I+88JO8pAGphxW%mHL!gzMe zbx7vUpQO^Euhu=C#Lq6?#xoO-8;$%Xe4=v^2bpV3%?@h)yM5fO)_c>I6TffG3M=Pc z_u)D_!UkUR6dX6R1^~aRgd96e7gu|-Rl}E|1IuuXv>He`DR+Tc8g8#ud7h`EP1Rt9)t*SVO;v$|HP zpINhZgwfwzRXTrf@X7ep>bsVIHtzDwZVrC3`6p$r4*q2`zX|wm|K?-s|257p54xA$ z1q``8xL@}TKiM3=KKKv*(F^wnUo)$Fhv#NjiYtfr8QnR&&*;+O_xqP#Q~ZaOm8^aq z+_bA`b@>lm4}rDS3wIk|UOAXwapZF2sMT}bZhYzU--k56_Yk)t%^eSMz47=RC(i!P z?YsVO_cjEfVd|LV9J=<|);^PBRYjF!=#x-xCQh9lheMusI#4Pxla|bNW{JS-%%1RB zXs9twqyCUY>|_%rHZA8)`gUTY^sNZvlx9)0?ss{2j(32ZpzC0;dNhgf;y)9-hGVy< z-T(tGTah}&R<)uPHU@#>^{m2%?ByJ)R+i6sFY5(*bC6lhzq)ekQy_eN<5hzXHX7^> z_2B)iQ--QRB@mtU$x)<=BMBRx^(|7^@*-oRY zO?etm5H-3^oAFY=i5nYj(Pu5x$@93-R{K{`x$=0|#aR9-Hf)bM1^+BE7jMgQLTTvj9RI?npq(WP1#MIJ6&!P*w&gALG@_19abe8t!!V7C$U<$ zgXB}Q_rlMIQIXaL$G`50(we5-^9M&I>?cdDLB;I-2LH!>zIoprRvQQWDR1ZQ1mnjr zb*$|w3jnfqRCdG%ARsWEfzMuKHTD?S*=B-S`vAw}E;b$RLuch~gO%hlSVptvO};FK zS5ezTBsk}|QSIIaj#|$S+#62swZq%YL&loz9QSYA!Uw-*`)<=ZapI}UqY=B^PQBY{o&rQ8~()3Zk)8EMed%2^`W1f*jWkh4@z1>V#Fd!-z(ve4OmBR zRr91pfFR)U;Y7tb$8VTmB5}mKpvftCCgtsZrS1m1V?JAI;1a;hva0tQzN1)~9aML$ zHb2xI1lv!21V7cnY-%rD=Qe%Iz0x?ZPy3C;pdhN46iN46{Do5;mOQ89z^Og+->>$v z3o)+TOSO(~*KlWrb;q*s9!dMbnKfwRrEG*05KCqQ+w(gVisIDAmyD7zn;eWWwyUiG zVP;jMT()shHDwGgcQma9hpo42ZMvvOnWOHGb0(39BQ849g!m}thweYxqY z=a$)mGN;K6++ba_B4c%}%FMHWbszWv`Svs1nwBiW+H#1v#;6?FWMR|N9F?m! zfvphL3|EM8O)1qR9|_ay_H?JLd}y|3exsdC`PF7`J5`Lo;M#u8adFaMVOO_Dyy@-+ zi;-#F(&XjO^fUe&6MO&GC2e|*#x!>UyiUo)&<7`oL0iJOd1KC#8-6DASqqYM*W04` zN+v}XQ0FQ$Y6eN*EktRi^ZRBhco-eS_shJUK)91&ikjgOAGY-xK3qoMMn@`0`E+xN zUKSUwduo4rpae&{{%P)0qwIDBQs0*6R%n{_PNM91{YLg#7;@{Cc$bz06Ra-bD0xuB z3ovJsufiOyKu$*HL||`t8*G3laN$nTWdg!MhxbYk8}AX-nT}4IV0$Sk)$J?o*=TC| zvW|DG^WJ&?)_1HjCeMc~#22@ENw2G1houA;W=erI5gZM*(#C*>7GFK8hNRa&CP42^ zuprU@%o+k~F-^uZHlM3!(*ml*PLM??m!LqB&@&IH$Lw&L*!8q&9(LCfzRBsHn!?L< zsO9tCFY%|yU}KU!$PM#N6Euw+%3XG&DeL6>{X72Kd);^J4*EN-$K$6OPe$#=;*A8I z)4_puqqpmTz0%*x&hmJib~+v7_qRrFYjAUKg_}g(lO`y&d^7l#wUy4Pbi(H{pi`T8 z&&0BQi@O@RQL8&_gj|d&AswtDA9^2-@2~8P(cSiH%V}Xq95vDG_eADz-L&?HX1IFj zkau^*EaTLzb%Q~?=GIOOSAva*x6jdcM%S3u=ZrbL^6=t9r~l6T-C^UZ*_p+tHF-RB zKfW_E<)_n+_uD7u@7>#dS@m}FbITun>)V$D_rO_qKc7d}hpyXT;^!X>9%9u_KeD@4 zYM}TVc&w{#tuqMF+U!tcj4qG{qCC+)*V)^iQK38tUGGWrk^syN~?2rxc-sT52Sx?x;xv|tApy*e(Q~Mhqet? z-Wd(Hh2{nmuC^YCqNlnK`QI3HtKF@`l{l+h>yt}-jM~O^6Gwc4>+Bou@(#xD!2$THr1OB8q}F`&fO~c? zwst?J(P6F*4&r3Ug}Y-`_?|6X9s*fwGC6zPEOFV?o}un5%yR#c$IWo(ho-gf)rKQ%V;%i@ot8;p|b*2+NxclrboY(zbc;id2(TRaKmlgb=;b{$26)p=xX0PZ!%%)!Nx%|clPQ>{cD4}W9!^tkacUJb7EjbF4v$J?x zYm!I1cXMn06#KSiE!9kX=Ai36a%}&+oNU(B5jQ8-aC$Xx^bPm4<(>DKvbj=($8@PR zw*^01@8&fu+dX_`j(awU`Tqk@*a?5%JQ&UGIql9|Wi}pcAH$=){MLnq&OO7Y7Cw-2 zlemO)=>gN{{~~Ztd6CgxeY`zAz{mJNd)`e4Z)#gV)Y$v+!NX10Jds|v@AlWe9Ql#^ zE8cIoJ-qL%ncj_H9>M5dJ~7dF9o8eCk$c?W=4juGo4rML8%~G!hJO=--36LEr2ikd%S*(TD)L*hqc`do59>*=Z1gy#BgJ7a0S0IxPD6i zpMzbGz04iVKX&;{|9@^d%l&secKLGuoxJ(9&qb>U&N|Z9ZdKgDJ8Q3>J^7LC{q{{9 zzVLjXIPu``PR8tMa!I;GrrE~!^O|;fVl%*oTZb__m$t2893}mOtJ=vLEo0+_C8}Q^SenH!HJz!Y>PEWo5%<1Zli@tu`%m2% z&81h@y8R9~?^0Ly?Albhv*GIZnY4zUOa@khVYjJSt44b^C~_TKcR@!LN3!uVyCeFh=ehd+EVu=YI= zU@)wdveyhYXN^QdmONqFttNdu0|yV|P{uA18#{<{n~2N(B@A_)Xrk=n2T~katF9^y z_eR02U)t{X)6|+-3%3tuxmX(b$y*ngsQy#dV@~p+M^CvA7&94oE4+XU9Q}~QR~gMA?B#&#*9LkuVXWoOL38rnt=8PfH?}0tE`{gr z`bBGhS%w7v(-UiY&Nwk*|6|Uk+i$k=-Rx1f^@0aBT_hA9=_mGw5 zbjRN!gF`Nz?XrDXA6N5z;uWr; zH3N53etV#Srs>aay8CZNa*ve%WY@O3a6pP%-y+FO?7-a1vxnJfyum!)+Y0Z=F{e`0 z$_ts^cSlDW7)vm+?)PtIvazp&>eHFmWN7M6+w0gqCc;J~_>f(S`kld5%U?{rew!ieFRx1nSjgjg=9y$DX?7L9XXM_T*9S=RSSq+rOK8z)x4d zr;!Ek@M-yzE28q#M|X|_(B1d4ZO`$$id-B%f3H`+#0YWU7V0Mq|Kd=X{f6Pm{GRS- zK5(mS=Y-#b)QX)BIF?v@oa8jqi(Iohk_l;xs9PS+c{=Xuevo~2+q02KS>*!L<8F#& zwR?s`6>sFskPj%igCJ4#t$9`QnAeVz^bcgl(#^8$+xRacZ0#wlYdul^ra#wRF?A?! z1@bidAl~E3trZB1uSW*p$^b1cNaYBDQm2>I%kr|vh`jtnKFap~;mk@HFEK1$>u7!K z=jSOJwZ4IHEiwMrNLDj;t;N|Bc=hVRBbA;>;8BSMA4OOe5jQ)Maw;O*YvGNt>9Y6M zyPQf4+rsJ!=J^%ZA9(h4!EG#$kl$OGdeqRy4{s}78`!CvwmJ{o{J`lK{P1F(1HE4k z>S^kCap$y{hVAbUH^ZyZBxyXcvw8cgubXCz5i08n2me+Bw)wq`PO@6A;|;Poh|pqH z%a4om_HoP+oBC?x7V>)e^hoY$Y*h6U&4TIU?kkeyoxtnR!Yu+%Q9!hthl{cCj zu%t4mG_i4xx_i^WPoHwnxO3fYoa2ojdBf(H{(4Jjt+wc-FC*EH~vb6d#}E4aDLAXkA~JYZEi`%wsBcK^yP> zLrs6JZi2mL+f&c(`cEGBUx(Xt_;;&(9OPK$>R{VDjyhpu(U=3y%KLZkcb7bSThOuZ z+#PO<+gy*R+wS(XaXJWeKrHQv>>XT;2pXG#zwMEBbHRTq=uE8G4V)!7`htC>9r41a zqf(GOa_qpFifOc5_h7J)E}Geg_~JVF{?wU?2MgN=cg5EYT7Gg{zp^kt`IBbhXgJf| zh|}~hg28ESv)vo8pH!O||I5zyAlNv0eCzBZ*j((eSl@&kdg?uyErr=yY?yb|1tGG;Bg$+onUvN35^)97Sn9P zqmfK^)zl1o2161YK{O02_H<2Q*cd=0G=XIEh3h=AhF_)J%)GcM+g7lpeo!P!1F!OpMps`_^=;Vi@b2_;Rn@y8 zmxUbyXHcs7QmS@~>-7R{3n-(ZPW{46$atr6k=_u(LHtKx4DIztZiOG;0a0qXNKs|b z1ely<3)*0WK*cM8nFaBHygM?U986nn@J-AU)u&C0`KXsk#%GwBLfZ|a$Ak}0oM6q2=rT-t%8b73+NjfV5&fndn^WF2@?8w)>5J*e9^ds?ztDnt-+uqU z?v^E79dZv;sR;9`Y}_<~3A%BU7%6wC)PxPpMnl_Re=~0Dm_4LSpvs`-D71e;aW!88 zwCiFp6tTa8$n`ns5i!V}YxtRtDF^+7!;FXnD?7*5&;v(gK%ke=O-E4o1`{l>m|^|S z(2%_d{wjt1iFjox>j9-)4+t&^!xeYj&zy=PQ8^UmibXPenS-{(Ym@EbZ+?<74*eYv z7Y%mZD+2spWds70aUB@p_7%`~AX;k8OgA(skbNga zr!}d&F!`yoTY?S)x216Vo2Fei)OOB5vjOLUy$g~?59WD*rh+BG`r0y&Pz_bBOJ>|Y z6XC0p(Iy9|T4ok0#2zBY{cEX1vWEeL9wABwU{G;7@nyPPvxo zq5~ku4>%$`P@=6bnX+kj$q`x12`FU7qCmmD%NsqW5j)Wp-i^rT;u&D1%_J$cJPsMn zHCgx}yREP`N$s#iwk%Yr&f)Pe1Vzs)0AZ=PnwItKC1Qt64q=+aTl4k(0Cc{JZ6U$Tj7Y+b6S(E$dtl5HfQx)$P_~4 zCfG-{OcB!&Pl@?n$2M$IR<0l!r@L3_XkOkm+pbpBH85$b;BmFjn*#mSXR+UV6j ze#lN>nC--xsr83hKi@;H5<&BdFjW_M$YxRRElCsVvepG`9qVgsyBKy-xsUt_IwF8| z5zml#2C(?e7>T<~D>qyT&z`2}5z0;4OYD+K%_4$muoPlya-L~!Bbo`@1q};mQ->65 zU`{C9Gfy+Co9MnK?S!xuaUoj7?uu-u33}7pEc>BNYk|)x&7#S0EF#5C#PJu~soYG%*w6ZyMr}RMk_@=B-ir|nnz$g^#P*gp zM;w{CY=j(fKxS3Q2*f1;(SVefiOR!wqCF<*F-?;t90)G8@dn2UotTLOWWbyv5 z;*z+%81;h2i@V22n?}Vz_o02RUFUX*JCkK8z#zfUgPpmEMx~h`al{bUv?I*4UC9-0 ze<~Ech%$`HO~Fxiq`45DKYwN}EG#az6c$A$vvIpW_B6Bm^g&efN#ovPr-rdYs7icuzv){06^dZ3wp^j_xh>(VWV_Tv##JN`OMtEq061q&i#5&9gbv>_bvb z<`!k!+LWz~ngx1Qc+0M={ES(qQ&>lD6JD32^}d0fmC@|JcDD4^!ka}9_+yuPb2+vq zP8EtXud??CMCNM!lWSA+B{S1-dfUyxzFWQXesPGU`rO(j6SRBs{A4ElYYG(7oc42U zflaNHZu7^?)TsmJE?TrU(6UbN{dfNDCt9wjeHXkQg^>tbMJo`ew#fDmGuJH$W7HgJ zxEC9BS%9HptGXN_mB~!*D&xZ|yw3NF%pJzu-Zsm;55yn2iInzbc9rsb+fMFbAS>* z8z&H&opgewZI~6BK&)@$nJvK35LAeG(^c!B>`av}540ggjvOrwk;d^%SN7H3rA+zN zeR!HLm8dz=1{}FaS@s6923Z!+O;g-p86BI@cFmcka{CKIz~xG(5Yz0RP(OyJ&*C8R z6DHqqJG}7}TRJKlpDTTL_t?U~&^J8%^qE59%YVBZ1?PL;5R3oe-5O5$tsn9}GhG~; zFAcr&I?pc+3p{0JkrKEIku%(Ll-)ceg ze4`pR_gX<4x(u~b=O_z0r%$c&g3nURM`5GvkfRMTj{8O!xG{X0Gx4T>DR*=m&tFcm zqdfa6%XAHv*lKvxr+b`BW}D`2F#PeWZ?SpPt=?cOtl8k%d6uK$cj80xZO-J_3ZKl3 z{YXa4eM{^eVDi`kEX}&T-aGomn!Mq!@V`k-pWG$?**CsAvtSMF*%O_gIp0o2`CL1d z{^qWY{Nk1CCk~{{(Q9w3rJuda$L574cGVwXg=uG(=#wIjGp+imcTRAl?+Zgy`*xXo zlAYn|3z?5wM!v+X15Z3;AU4EcabZ?4J`R?&0^HFLmnR_N*q)%3JcuF~!vpY)SWuVy zD*(T9y+e8fzm)rZAh`L(hv?J1J6L?EAnrgDJ3Q0=bWNBOZx=wUJD`aUXCK6Q zp)uRr%+2%u;q?i?nN;U}sB(F&CDVF#g|&z2O?F-ahtA3kx+rVix%Q_Wz?vU^K>op~ zk!m&kKo1xe8cb?XHbUaXFehV^E{0Z)EXHOB#EZ#Ct_BIdq$)-2ckN2SZTZ4}Q6A;#vz*^?eEIEmJk z4K;nDSV$mdc=Sg%Ht4l?3(wQ$$zp!#XYCnNar!3P%OaJkP^0*QsB5*U98JHxKUjS1 zu+M?;8>^)~NqXgHnR`=0;65H=v2}s}3%M<_#gH}wz`hca;SPd-!PIvi>bc9Up)Q_9 z$72XGC?^`D%dKR&odhR`MU3~AT9WcXZ*!z_4u&3kHA|zcC^UI;+dD3f}D(^vr~1(1no*HvxFXS zlP&hiWb&8)@xCC;0fCRpdP2JZIqpczhc*-o9|er;Iv_?Wu}ycGXM~a0Idw`6TF9WU z5eAQdZ4ek33+R@iDGp;v-e6y=3qI!~u#Q&L%X>>$-^WZt(j$yIWs)ktCC*AwRqf{5 zxL;X}$}`z}vhDc`4k{mm0r}Q9-^Ljqi>{g^4MywR=F5M66{-bAo@rTqr@r%^{5~IP z1(HCs_{F_uI-bn}N-op9%?JN=jH&^<-xd!AhNS{v7u}xO#i2p@i&g(nfi7szt!g7K7|>B8GFQZ^XyE`z7H48JKCrH7ra9jh)?nH=8IVi&#< zwW7 z_An;Z-V%q&1&?Egz8&^#Fie=XUpUN0n%tm;f+hGCXzgtp&ab1}Y^n#!BXCe#Y+L{=$mxIn?60L- zxgZ%L$pUJ^sNXXWv|t<4`4I<3Ibh%X*{V}rGvP2H zK=dOBJVMuEU{J1Uc8lT$ zh(wN3hK`otlz}r$Ou~C2Wu!6i!9oI=A&>?LO>7HmrLta#zYHmmw3otFt3qK+kBe#e zdu8w(%qyF*i^mTYJX7VwylE5JOG!(J zfBA2XzYnYb$K`mPf2gkeizG#n-O=cyW*tH6|7^1suluReow&~K$4Urwe||FzKMs)p z;o4?c{r^WlIO4#vyq@^lBG4mfP-+DFY##|M0L8!q@K3fFCX{?xB32=5aA5Mw_W zSL^M2eaGSoNKFrp0{++Fzv11Xz!$M=;Z21(#qbfVc1$F~T;{}G4&Vguc$olWnvach z4tKDZTnw8L8PO5xB7nW*LK0BeFQ|q#$Q*57*o8GrC{&*8SH1J*jyC13rro5bPisp} z4Y7f&)%1c4&UQ$6nRPf9o&XiNjVHAI|3@c*R0f8&`o|A#X<4?R;E~3N3LIs_b4Nk}tH$e* zO}I6#R_>rKn_CnmmRn~P;yPK*;FuHEvkomx96o4Y5|r#V?GUgG&nVbJsKfx!+lRLX zsAw7pBsVmc{|OQc+o?Fh++@@|yv#GtA-j;5Ct#rd5b+K4Hnn^@qu#ef;bE2TxS|Aq zF;#9`MXT*1PYsxu*FtEI&p%F5lnx-O$ZG%cm-lHdoI~hk06hc<_U4T`Ni-2}5lTd; z#Uyjbff1o&Fu3@~&^K6F@f~^^VZUT<%GL|rqe>Gv2`YwZj@vHy?lcPDcRW@L!;~?< zpBJvIu|m^r@H7%>crGDi4l7h%_o;bNglHZ%d@j_PwMzK_uw8lU+#~1BU<9+kU`_| zu{*NL@IXUN;434(tMNkEq`11xOQjtwZ&5w!Vd&%LIn{4rj3iJ6ueffOahi|P(0!Xz z%9}VakVN!`6ynw5)9LUsH4br@bm3n5%O5~OxtWdxTNH(^z(9X#nqb37WNng~?y^Wb zA{^8qLC(NrkJ5`txt`;5Y=mU=X-%@Dra@tw0Gvy{C7Ngh;`r(^>gSr|reLn;vgyF6 zs4gkk;7zKoC`}dPjXPYZ_deth}l<|@>rCE9~%LeYYjwV z(79jfK`y%OS?%KgG4TCpwu$@>f>3V6ZfiACR)%b$voutU(#?wEO=FIabdAw7#4`(n z0(iYv$%uJtr*PcBukqm4B=MZIQ0rizGNBt1PtuIKg6KZeDLKW6E^tJ#C1~0VyMj1W ze+|;_BLqArr;k64^^ek>H2vROyLq4=u$+EAO7|l>Z_v4@+OAu>dymb7QzIqa(~-=07xrDKBif z$);7yU#6s-CVT-1e~P&VsqwMogZRW(5aV=Xv7!q zao6=K5Pg#= zkL@~UX10z=(|5;|VosxiS>rtlLh+`!Tjv=_vZA+n6NtadPTX=_9`0qORIWX*5Cwgv z`CVD(CDw8?(YKZ2(RQKvwxXLseo1pEu=oI;WtmTQMP3JTX@41j;QVjjT)aS*ma z+29Vfw;(r10Ms_N5qurPq@ykvFA^J55fVRwuc0WM$Ij*4tP{>N@Fi|}m>&@zbkKK_dG#GT6 z1{(1myV*42Cgawy0;UAuc!n#bc)UhnX1mg+P3j~X0lYVC;f(G#!y2(0jvX2YKJ(C` z(9YRJGwmf930-_FA z5dH)9J+VXj0T#iY&_J=hB`k<&TA3{)E;a#b-Bh+i#1X9A40li_0l-^lESl9p(?>RM zhpho0lAxCR%^;EAit_U67gzV74fksE@esxj7j2VF${0nri37h3)@I6eQx4t3+$sYj zDfucZlN?4qAn1E%q>ZerEy!}?XPQXW0nlGAS>WFTz8BHslm;bm(EZFGrH(s{xcz&B z1?kXU4za5$X^bpbGODbEZdDn*h_8+ph=9zY#In}z6NPB~PZw*tt)l{pok61l{A2wR zqaovNMK9u?J6Y86g{0E<5&OX0vN~m%ygA8IZfeYsc>~?1%nqNE;8mS6OW;I`17QKS zYf|S3&k!$I8lej|c;4E&8ab?H4J)7j1forXOR&f?)7rN-!5E0=e9v zDa@Z7e;+L@^Jk%qa4MG%H*z&T$VYgbwGf1mdl)g`?J)Z_@C{g=WZ`#AaBP#9QeJTG z{6)qu2_5I|;SVuWrAsPukPQ$jww*awU_0~>^N9j>7Qhg}h&l2r8*r5)tOIj8Hh-8+ zV4jvC>fqf%J)YA(RxT{DAtyCu1nTT4wV2k3uZ~8!471upIAr`b+g*-7 zhvR~fS-cv7Dv?eq+YP-_vI29#f;*kBph^KIH~3zg9D@4O?GM?MAax_d*}(h>#SoDZ z6p{9%T3&w$LeVu52uIA!-i{9%DPfaLQ}@vV@H5J~>3!;M1QlabU10UV|Ck#X9LGYB zX&^>{dPuF(1(CGRqWS&Yg~tHcssi4XXLN~JnQk%ZXud0~du~79*#_GPeajSsx^-ES!%0B*C28IkbVGEGjy6%M;h;+!ipgUM@#k|AK-4^09hJChbf+L#RS-ETZ)sp%63jB{R&0E>a6YS-I zs(QG0Frz+JJuq+-M|J3z*oIWkeuhI8Sd~R9^KJg@vx{}lKVVg_)-#=vzB7G~WF|BD zjm%~9Z9X}f|IW<%{3xHkMh~#~L-DhQ+EG1vr!9-WzP3Z{Jn%`iQ=XinnV*GX=WySy z{MV`n>56dv+kw)l;`iIP3YW#w4+_s+W&7G^N~OL5b)IcaQFE{mEruWc-|uZDQB3zS z!Qy!CGHpwNP23Ej4R?Hh>@hhyHU1c0iZ>*MHRge?$Y{r2EoJm4t9{$dYJIA2uQ@(7 zR3XEcefAsdv#!Il07#yxf}JoIWv)II?{icgT3UZ&s`C(j`pi9VOfCNQ&()9Q_x$b| z{Pe_q`AgQ~)LaPy!`E`7+iC_bfa(TpXi2@n+Mg-cr=EGrc|*SD=f0rg19l%`Pq~*G zyMN5uKe}E#G&TCryT+6IhQ9G<>PfsVI8RKCesR`0#Gd)%SrwfiD*er;#LeW_FDQgh zI%}n&mtTMWTW3fbfWB)Un21Y{zenjs7b1W-L!@ie<-wDkiH|ggWk<$3bZoJK`bCPo zAs6>1hu_||lpLShNi|S5?ab5G-E~<|uUU^t?V$Vq>494B1UoQMn_%WMFUuq1@OQ2} zk;{IC9J_O>n!e}Qo$A!P_YL2bjT2jjztrfwlNFt*>0@efd(C+2=#un~z13*{)&ugr zQ`^!yMHs~J-N(Q5;y*E~od(@A`Tpq%L|bRy-oF&Nd+4o4zq#!0ahHBtn`rc&|NaB7 zXYa6VdMTnia)0~B5$)@peN8#Hc&9{De|2B5I6IpL(q6c7<@)cu727Id+l|M3=RFUW zsE6{y0XMLCGZ04|`K2Vn0dw6hlvbnaYH#=}y{Oz&>f2U+oIyLe1y{T&2dd*NYc<#| zYjp1kc?0P7OLD5tKrGAwtN(XbZ?Hcpk?M`y$|*j4W9r-0r}|I==_ohGE}fosvX`y% zKF_PgVgKZ}ON+Al_|(YDuor;&i%pVAjx7DB7l`buR&R(~?sq1N-dken4Bu5sfAjZq zH>Q?uz1xt-X1;Ol>J9NKqyE^Fz3IXUr`Y_)@4@(D!8e~2sc5zkF`cDe+xC;xuYasU_T+?&m2^vvOU!v}B4Cb7?0|OcF3%wyYgD4R*<+IR z+?9ZQF<)-FAeZ3M&pt7gRb9h({i-)U^<;H65wr!!t^F^(o@I;sPCU-c!&}~%0!}=E zww{-uOEIdyX(ChMj&=IQEhrFWp;UdMI4Le{O)uU*`$TR>@88}xxsw*Yu}=30g~9AS z|I1lqNz$)J$Os}q!fr0N;WMYwFTK9w{Xma14778tW_d3~`#quIKD-kRD~aV~^F8vd zCbd*XZyZ}OGdc<*VeJ`^tcx$78W&~_1YbPJZ#Gt#(Rgy-@jY8n z;##5m;}Ki13O=KU>Z|)``SB`XePp75U=hJ3i@GS4b<;hI^}=Dr#mDM%`_kV!P_5_E z_saYVqr#fmGX}D2@r;`GS?~%6iuV9zSn&o+2maz`_hO~S3f|(dJT}+La%T!5MB|^v z&BTj12IXmFNNI8E&ap3<=ab{I((D3%=)}XKrEl%;8fUfagbyO2X1LSB4T!s2rj6lF zqd?+Js^QZzG+L)?sMK#E>!!=&tw*AZ<|2!-8#^;w=mDX|<$h#Q(MuE0KEa0Ht}M1` zYb-jp#!j4yaG>M`*hX0~B5dcm;`( z(T2G`E>mXDWv-)ASb?}mvXI(-7f%kxW}JN<0|nLTY!27p2~^q&AoNx{IgO13Sg19oU-pBnI=Yl}TU_@iYKs%Px$3JTu!ysGQrk3qcm90w+|4tbF7N*n;!~B9S z`*eqip3ZNfj!X~BCVH`Cy0`_1;LsxGX8ZMV@a3U)V$1l{31eJ5lRL!ryR~jwS>$E2 z1CKyEhFjX%3deJ4mB=!XI9Vv^GNMG_Tqw=Ce(nA<*Uo&(yJY36Uqe!fALm?jI7+?$ zU@guKx%$`#*%p)kkWjK8Sr?U;Mxw^|ZoB{LW1n1KJN++yl6mF9+zTK3q}ub~ z7m_c0>37xh$?cmZ-{X{$fB*5#T$1l^xPO5<@%Zz#Z3pQi8}X&CPkteO_9uUJ#ectl zI`!fBlD`P|ZeN)C(&_M572f1EFa^p{VrU-$jZw3$=LMETutCT=s1d^|20|M3q>#uwlG zhYIkYKl)UN67UZ^^5;(g?x-PdvjbmSyC3!(A~$8HG0Y#A)-bmgT%cwhXt~2A<2?qvo*`2B ziL<;dlbCftq|7E}NZ+;5w^rClBE}OH?x5MSk40%$qyt5FdqUqUXOL?hltuX+E zvk9dQwpi_*qeFM%S&sJp>N&urpK7CUX8Lac!bxFlo2w+MZ zRjpi0jLd`v9cmJ;ijm9bLuPl?&a%GeT5Rk?UTT*t=<1}8)XnrIafqfK<>FxDE6)2W z%uKTMhO^<2(LeEu*P5+H(4B7%uvC8j5JF&|H;;U^^uRRAy?v{f9l~@C92ZEc=46xs z?=e-%#wgx&T=t+R^ic`b;AMf^aC6YwrI`(=%_5O`M26Bi4j%oK#E=^{0|vunHFsWA zQN0ev2e243cUm$gLC>hy6j!OUxgY^<-A*`BU}2&M`$T?FnlydRpFhA^DtY8M!_D$G zK;90edEhC!*2^f>?F;VwSGVi$J@!+Kl`=|Zirc^i0%;Ve!W!ZX_Vd+7FN#Kv5u4yQ z&ArU+f!_{nkeAG1NzH-wv5t_tS)9+9YO$cX9R*+OpO>1K4^y2`$K9&%Mh`r!j1Y=C0gmwL0`+sH8$dO z%~__Mb4tve1#|Vk z<}ioIj<9UFm9HjBBMZVN_5|pWi>L^e-||ClZ%`4sZB;QeRq~)pY`)S?AjM_2soNci z#kXIy3!Ui5@CC)m%!H5J0;2+)4U>GkexVI)C$i52dhQ@jBr*cBoAv4r!eDY~vRb@_ z=u1s7u&*6}ut-=H@X}FTbWH6-d}q~gq%&GKnJ62zuF4s9l{xu$s9Bmo&mxoMU2)nR zXiSc#MjgJ3kF16Hwqhem)~40&O!YDkQ>v{-+E(6Rhfa#i>gcjibxgZsJYZ|qxVff@E%9iOw__7DP-*NV5dB?{k`%OBfSa`qQ%W=SE(#N5w7 zphWLfYPggUBnOl>`k=q9;if7V9>+eX*3ir{=i2o)SG$q06U`0t9LIe3&cC+40!6Z_ zT4GeJo;ezqkx!<>kQyzZX^X;|I%)lgTQ=-@ zA$r~v48mXn+3M#g%bj2sC9y-2ZzE%xF)x@8VSm;V$Rl`ZIsje8OB~!MQ7UK=+;vL3X<>9*GwTMS4i95F{Q0AWQ6$L^;1m z8=EDA8vztd(xk>9_#BwBdZ1TaBAF{~9um)mrt^SOWeAI0IYub-Jfev-^d4+pD8iI0 zg*i)g&;d0p?o!jLu&B!n@i$u9N&>poa|Y)i2Tx`M0o`r@*S13y5&IfP2X1Q;B$d|) zlL3QB%5s~R6Plnj;NjhEe;YJGF2&2UjY+R-N5m014Fz5e!^fr8YhW2-l9o+tN;tcC zRxCilz#Pwkwc;9&kRp<6un|H(r*`l!mwD4ujvgd9(@HGeVS#~#I!vHg+ZLAR^C0j{ z^%9#6iOdiw=u9W&6>`YIu>p639bbl4jQ29#PW2c`64n>`lkk@(Q5_*~|&XU44I_KR`Bd+Ly2&dLUeg{W}W5`slV zFhTb^0%k2}>Sc^K0*>Z{Mtw~KcXYk@G>BrUGXRj#dud7|Yz3X%zWq|DL; zV)ZmjzF*scDpsfgXQLAlC)K3DuG0ipY?ZJhvx{9mII>K@D`eol*xdr|hBlew7%_mw z2o013nIRTeNoF8@$ppE>*jFQCj08Z@Y2BMs0J2-AZFm|uR0DnCU=>K~86BnFY6MMJ z0qi_Qk08HBm6Z_6$q~TLfk&SE^%B-opbf|i0=7LJi=iod_&j&Lo-jvZK?{5V<4kk= zx#L!d3lX4f#IOav&Bg*5?FvzOf>8~8+hD4Yuz&x2Y?eg`%E2hda_R+`7eqn+S|Iuy zkXLiU8L><$l4!Fg%OzARME<4EI1kqTPaGXI4G-KzoD8IYP~xf_(}xub zfz@#p%D7EH`tXv()1?lPg}Mw-M!-c1QV)#2qt=uwFfFjg+7?;vC9^S_q#>%=*KA`> zv|^c+_}9bkfo9^Grh>89>Z+m74n?>&RJ05@6=kuOr7VJ4R_skPt=(~22gYhW{Eq*s`vyv74F9@V%WEeKcW3|{nNA|N)9 zp%YvPd+!Rob}dj&spD!Hk~PXAG?Iuvk3X!T=g=VS;K;9`78D)=CchI9A%ZY&1w%Vw zKWc$%!0OQuNWmTs1TEP{-6u7XNfxUr9_Mw z;2)|ngn}DPNHi5=hb$_v$FO10yD3pb!&O8zOlHg}yWkP2X>D+^?S7?QV*v`PC0ZEY z1UkP=Y}RC0oMnJLhTT<;nyb1e(E$umKgt7#2dP7ZRKiB~WG)`*@7>?0UyDnN)V;W_ zm+2j{UosE1thv)(MafXCH|mAkqLZECYt~rOXkjC^%#XNWV#Kx%aqn%-~!NnBgBR6=mfuQioqen~Jo!rGgsm}d)l3M#R77|1J z<(K}7&GXT4KJ7c#4m*8Iu9N?sTIa(!{AG(D;eO#I*!=_YKyC~_%!TjBcSP8kOt;Mv z051BroZUKEjP43vnHH1W8~dYNW@~cSV=YwT%&ovA8f5vaYB^uqW@dbcE3D!hizL&b0Z7fMYWSP>qJ=X>>PPZ{(z?{@#ZA^5VVf?%^a)y zj2$ltm+fbxZ1^+-lU2RSqDRHYQ}?_zyBIB}SbKJP=L@n^a$Zba=U=CJeGglFu8&XV+PMQv+ljIsJm`pn>@r_q z!^TKM6dw*xY{+JFk@Y1Hn6QKQi?z4aJN$3N0yIE*qyF9F6rYy?Z6tr>?iXN*J77$|N}dKVi0sx|uCC&(Dm zT};lJfao(_jVE)g{A#t$yvFBHZ$JB1u3bfOs?aa|h#eB6Z@05`fAlQNmRN6xH=bl# z<0*IP50M=+P(ohJ7cL}#!~fo_bIZvgdFR#z6zwY9$6ox~MV~fWaT3j=Zx38}?^6j5q_kNyZv&$Yo-nlwX``9xZsl@aC ziFHNa{nk%8o!wn4F(6&69epMlG_%8@x@7U0MHhwR**?7=X!GLaDTMC(NT;}clrMt3 z*eUK>1Ms>k?wfK2F!Y;KW>s(e3uMyB70#<~P2qXw3Lnko>i)?0Zx;^xyB1#b1x4V# zUt;Aq`AX^kzQ57Pm$sK*5JQF9yfyM}pA+R8*=W=O^0?hK(lW@3bk$&nQF12ZorwX z{m39QitL}4T!@SGI$1%YkKUgMvU-rEVG}B{6tr0>XlCxw z*s82>tlZiT=w9s8Qqi$GlOjX|i|sBxDlq!oW!V?P(O24yXcmikgR-)Gb>9WA+G}!G zu9ON}cbUhR&nOS%g!%HbYOdt1W#`omEt-e2^ZhE=D%?@Am%PC)SD{jIi@O#^^FBY$ zkVR&!ZVuhaVb>`o>tWW2g#05SmM1R^+b;V?Va*^BW75X)vA!;Op9?J8+>+KCgV-5&C2IL@$F zb(S^533kv|%dZc2w|nMu3N+FlZj2{)v4R49A#nn<%ELO7HOYJb{KuOWQ?aFE8rF$! zBlIxMfVoSzyl}e2z<*|7Bx9PDEUhuA$w{Qw_)r)X*6kpJ4HG3tvTs!>g>e9-lL6|T zpKUaDVf-4yD`w&ie)fDxVV&%oMD_>bbj$Pe$U@FE`FalNf2akLXW|BX)hDY{pJS}Y zGB}9Eyx%yU&8~sDLPfROMD87?cCkLCo$N?qeT1=G5}-LO|u%

{>`jBnk)Ji|4%m^^6RF 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 diff --git a/FPGA_by_Fredi/Video/altdpram2_waveforms.html b/FPGA_by_Fredi/Video/altdpram2_waveforms.html deleted file mode 100644 index a856bf6..0000000 --- a/FPGA_by_Fredi/Video/altdpram2_waveforms.html +++ /dev/null @@ -1,16 +0,0 @@ - - -Sample Waveforms for altdpram2.vhd - - -