Project

General

Profile

« Previous | Next » 

Revision 979

Added by markw over 5 years ago

Add area scaler to A2 v1 and v3 boards. Add both scalers to the A4 v3 board.

View differences:

eclaireXL_ITX/atari800core_eclaireXLv1.qsf
#set_global_assignment -name QIP_FILE serial_loader/synthesis/serial_loader.qip
set_global_assignment -name QIP_FILE zpu_rom.qip
set_global_assignment -name QIP_FILE pll_hdmi.qip
set_global_assignment -name QIP_FILE pll_hdmi2.qip
set_global_assignment -name QIP_FILE pll_acore.qip
set_global_assignment -name QIP_FILE pll_acore_reconfig.qip
set_global_assignment -name QIP_FILE pll_usb.qip
......
set_global_assignment -name QIP_FILE fifo_transmit.qip
set_global_assignment -name QIP_FILE sfl.qip
set_global_assignment -name QSYS_FILE clkctrl.qsys
set_global_assignment -name QSYS_FILE clkctrl2.qsys
set_global_assignment -name QSYS_FILE ddioclkctrl.qsys
set_location_assignment PIN_H16 -to CLOCK_50
......
set_instance_assignment -name FAST_INPUT_REGISTER ON -to DRAM_DQ[14]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to DRAM_DQ[15]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_R[0]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_R[0]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_R[0]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_G[0]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_G[0]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_G[0]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_B[0]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_B[0]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_B[0]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_R[1]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_R[1]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_R[1]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_G[1]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_G[1]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_G[1]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_B[1]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_B[1]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_B[1]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_R[2]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_R[2]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_R[2]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_G[2]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_G[2]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_G[2]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_B[2]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_B[2]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_B[2]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_R[3]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_R[3]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_R[3]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_G[3]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_G[3]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_G[3]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_B[3]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_B[3]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_B[3]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_R[4]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_R[4]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_R[4]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_G[4]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_G[4]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_G[4]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_B[4]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_B[4]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_B[4]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_R[5]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_R[5]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_R[5]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_G[5]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_G[5]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_G[5]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_B[5]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_B[5]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_B[5]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_R[6]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_R[6]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_R[6]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_G[6]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_G[6]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_G[6]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_B[6]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_B[6]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_B[6]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_R[7]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_R[7]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_R[7]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_G[7]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_G[7]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_G[7]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to VGA_B[7]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to VGA_B[7]
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to VGA_B[7]
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SD_DAT2
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SD_DAT1
eclaireXL_ITX/atari800core_eclaireXLv1.sdc
create_clock -period 50MHz [get_ports CLOCK_50]
create_clock -period 27MHz -name CLKGEN_CLK2
create_clock -period 74.25MHz -name CLKGEN_CLK2 -add
derive_pll_clocks
derive_clock_uncertainty
create_generated_clock -source {CLKGEN_CLK2} -multiply_by 5 -duty_cycle 50.00 -name {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0]} {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0]}
create_generated_clock -source {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|vco0ph[0]} -divide_by 5 -duty_cycle 50.00 -name {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk} {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}
create_generated_clock -source {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|vco0ph[0]} -duty_cycle 50.00 -name {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk} {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk}
set_clock_groups -asynchronous \
-group { CLOCK_50 } \
-group { CLKGEN_CLK2 } \
-group { \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[0].output_counter|divclk \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[1].output_counter|divclk \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[2].output_counter|divclk \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[3].output_counter|divclk \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|fpll_0|fpll|vcoph[0] \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|fpll_0|fpll|vcoph[0] \
} \
-group { \
pll_hdmi_inst|pll_hdmi_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0] \
pll_hdmi_inst|pll_hdmi_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk \
pll_hdmi_inst|pll_hdmi_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk \
pll_hdmi_inst|pll_hdmi_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk
} \
-group { \
pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0] \
pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk \
pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk \
} \
-group { \
pllusbinstance|pll_usb_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0] \
pllusbinstance|pll_usb_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk \
pllusbinstance|pll_usb_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk \
}
#create_generated_clock -name sdram_clk -source pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[1].output_counter|divclk
#set_output_delay -clock sdram_clk -max 6.0 [get_ports DRAM_DQ[*]]
#set_output_delay -clock sdram_clk -min -1.0 [get_ports DRAM_DQ[*]]
eclaireXL_ITX/atari800core_eclaireXLv1.vhd
-- For initial port may help to have no
internal_rom : integer := 1; -- if 0 expects it in sdram,is 1:16k os+basic, is 2:... TODO
internal_ram : integer := 16384; -- at start of memory map
sid : integer := 0
sid : integer := 0;
enable_area_scaler : integer := 1;
enable_polyphasic_scaler : integer := 0
);
PORT
(
......
);
end component;
component pll_hdmi
component pll_hdmi is
port (
refclk : in std_logic := '0'; -- refclk.clk
rst : in std_logic := '0'; -- reset.reset
outclk_0 : out std_logic; -- outclk0.clk
locked : out std_logic -- locked.export
);
end component;
component pll_hdmi2
port (
refclk : in std_logic := '0'; -- refclk.clk
rst : in std_logic := '0'; -- reset.reset
......
);
end component;
component ddioclkctrl is
port (
inclk3x : in std_logic := '0'; -- altclkctrl_input.inclk3x
inclk2x : in std_logic := '0'; -- .inclk2x
inclk1x : in std_logic := '0'; -- .inclk1x
inclk0x : in std_logic := '0'; -- .inclk0x
clkselect : in std_logic_vector(1 downto 0) := (others => '0'); -- .clkselect
ena : in std_logic := '0'; -- .ena
outclk : out std_logic -- altclkctrl_output.outclk
);
end component;
component clkctrl is
port (
inclk : in std_logic := '0'; -- altclkctrl_input.inclk
......
);
end component;
component ddioclkctrl is
port (
inclk3x : in std_logic := '0'; -- altclkctrl_input.inclk3x
inclk2x : in std_logic := '0'; -- .inclk2x
inclk1x : in std_logic := '0'; -- .inclk1x
inclk0x : in std_logic := '0'; -- .inclk0x
clkselect : in std_logic_vector(1 downto 0) := (others => '0'); -- .clkselect
ena : in std_logic := '0'; -- .ena
outclk : out std_logic -- altclkctrl_output.outclk
);
component clkctrl2 is
port (
inclk3x : in std_logic := 'X'; -- inclk3x
inclk2x : in std_logic := 'X'; -- inclk2x
inclk1x : in std_logic := 'X'; -- inclk1x
inclk0x : in std_logic := 'X'; -- inclk0x
clkselect : in std_logic_vector(1 downto 0) := (others => 'X'); -- clkselect
outclk : out std_logic -- outclk
);
end component;
component pll_usb is
......
-- SYSTEM
SIGNAL GCLOCK_50 : STD_LOGIC; -- Only 2 fplls can use the pin!
SIGNAL GCLOCK_54 : STD_LOGIC; -- Only 2 fplls can use the pin!
SIGNAL GCLOCK_148_5 : STD_LOGIC; -- Only 2 fplls can use the pin!
SIGNAL CLK : STD_LOGIC;
SIGNAL CLK_1x : STD_LOGIC;
SIGNAL CLK_114 : STD_LOGIC;
......
SIGNAL CLK_PIXEL_IN : STD_LOGIC;
SIGNAL CLK_HDMI_IN : STD_LOGIC;
signal CLK_PIXEL_SWITCH : STD_LOGIC;
--SIGNAL CLK_7425_PIXEL_IN : STD_LOGIC;
--SIGNAL CLK_7425_HDMI_IN : STD_LOGIC;
--SIGNAL CLK_27_PIXEL_IN : STD_LOGIC;
--SIGNAL CLK_27_HDMI_IN : STD_LOGIC;
signal clk_hdmi_select : std_logic_vector(2 downto 0);
SIGNAL CLK_raw : STD_LOGIC;
SIGNAL CLK_1x_raw : STD_LOGIC;
......
signal pll_acore_locked : std_logic;
signal pll_hdmi_locked : std_logic;
signal pll_hdmi1_locked : std_logic;
signal pll_hdmi2_locked : std_logic;
signal pll_pause_counter_reg : std_logic_vector(25 downto 0);
signal pll_pause_counter_next : std_logic_vector(25 downto 0);
......
signal spi_do : std_logic;
signal spi_clk : std_logic;
-- scaler
signal scaler_sda : std_logic;
signal scaler_scl : std_logic;
function to_std_logic(i : in integer) return std_logic is
begin
if i = 0 then
......
outclk => CLK_114
);
clkctrl2: clkctrl
clkctrl2i: clkctrl
port map (
inclk => DRAM_CLK_raw,
ena => pll_enable_reg,
......
);
pll_hdmi_inst : pll_hdmi
PORT MAP(refclk => GCLOCK_50,
outclk_0 => CLK_PIXEL_IN, -- 27MHz
outclk_1 => CLK_HDMI_IN, -- 5*27MHz
locked => PLL_HDMI_LOCKED);
PORT MAP(refclk => GCLOCK_54,
outclk_0 => GCLOCK_148_5,
locked => open);
u0 : clkctrl2
port map (
inclk3x => GCLOCK_54, -- altclkctrl_input.inclk3x
inclk2x => GCLOCK_148_5, -- .inclk2x
-- inclk1x => CLOCK_50, -- .inclk1x < builds/works
-- inclk0x => CLOCK_50, -- .inclk0x
-- inclk1x => CLKGEN_CLK2, -- .inclk1x < fails to build
-- inclk0x => CLKGEN_CLK0, -- .inclk0x
inclk1x => CLOCK_50, -- .inclk1x
inclk0x => CLOCK_50, -- .inclk0x
clkselect => clk_hdmi_select(1 downto 0), -- .clkselect
outclk => CLK_PIXEL_SWITCH -- altclkctrl_output.outclk
);
--CLK_HDMI_IN <= CLK_PIXEL_IN;
pll_hdmi2_inst : pll_hdmi2
PORT MAP(refclk => CLK_PIXEL_SWITCH,
locked => PLL_HDMI_LOCKED,
outclk_0 => CLK_PIXEL_IN,
outclk_1 => CLK_HDMI_IN);
--PLL_HDMI_LOCKED <= PLL_HDMI1_LOCKED and PLL_HDMI2_LOCKED;
--CLK_PIXEL_IN <= CLK_7425_PIXEL_IN;
--CLK_HDMI_IN <= CLK_7425_HDMI_IN;
--clkctrl2_1: clkctrl2
--port map (
-- inclk0x => CLOCK_50,
-- inclk1x => '0',
-- => CLK_7425_PIXEL_IN,
-- inclk3x => CLK_27_PIXEL_IN,
-- clkselect => '1'&clk_hdmi_select,
-- ena => '1',
-- outclk => CLK_PIXEL_IN
--);
--
--clkctrl2_2: clkctrl2
--port map (
-- inclk0x => CLOCK_50,
-- inclk1x => '0',
-- inclk2x => ,
-- inclk3x => CLK_27_HDMI_IN,
-- clkselect => '1'&clk_hdmi_select,
-- ena => '1',
-- outclk => CLK_HDMI_IN
--);
--
--end generate;
......
pllusbinstance : pll_usb
PORT MAP(refclk => CLOCK_50,
outclk_0 => CLK_USB,
outclk_1 => GCLOCK_50,
outclk_1 => GCLOCK_54,
locked => open);
......
CLK => CLK,
RESET_N => RESET_N and sdram_reset_n,
-- dma bus master (with many waitstates...)
-- dma bus master (with manclk_hdmi_selecty waitstates...)
ZPU_ADDR_FETCH => dma_addr_fetch,
ZPU_DATA_OUT => dma_write_data,
ZPU_FETCH => dma_fetch,
......
USBWireVMin => USBWireVMin,
USBWireVPout => USBWireVPout,
USBWireVMout => USBWireVMout,
USBWireOE_n => USBWireOE_n
USBWireOE_n => USBWireOE_n,
i2c0_sda => scaler_sda,
i2c0_scl => scaler_scl
);
pause_atari <= zpu_out1(0);
......
-- HDMI
scandoubler_hdmi_int : work.scandoubler_hdmi
GENERIC MAP
(
enable_area_scaler => enable_area_scaler,
enable_polyphasic_scaler => enable_polyphasic_scaler
)
PORT MAP
(
CLK_ATARI_IN => CLK,
......
--HDMI clock domain
CLK_HDMI_IN => clk_hdmi_in,
CLK_PIXEL_IN => clk_pixel_in,
CLK_HDMI_SELECT => clk_hdmi_select,
O_hsync => adj_hsync,
O_vsync => adj_vsync,
......
-- TO TV...
O_TMDS_H => tmds_h,
O_TMDS_L => tmds_l
O_TMDS_L => tmds_l,
-- I2C
sda => scaler_sda,
scl => scaler_scl
);
END vhdl;
eclaireXL_ITX/atari800core_eclaireXLv3.qpf
# -------------------------------------------------------------------------- #
#
# Copyright (C) 1991-2014 Altera Corporation. All rights reserved.
# Your use of Altera Corporation's design tools, logic functions
# Copyright (C) 2018 Intel Corporation. All rights reserved.
# Your use of Intel 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, the Altera Quartus II License Agreement,
# the 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.
# to the terms and conditions of the Intel Program License
# Subscription Agreement, the Intel Quartus Prime License Agreement,
# the Intel FPGA IP License Agreement, or other applicable license
# agreement, including, without limitation, that your use is for
# the sole purpose of programming logic devices manufactured by
# Intel and sold by Intel or its authorized distributors. Please
# refer to the applicable agreement for further details.
#
# -------------------------------------------------------------------------- #
#
# Quartus II 64-Bit
# Version 14.0.0 Build 200 06/17/2014 SJ Web Edition
# Date created = 20:32:21 July 11, 2015
# Quartus Prime
# Version 18.0.0 Build 614 04/24/2018 SJ Lite Edition
# Date created = 20:42:21 November 12, 2019
#
# -------------------------------------------------------------------------- #
QUARTUS_VERSION = "14.0"
DATE = "20:32:21 July 11, 2015"
QUARTUS_VERSION = "18.0"
DATE = "20:42:21 November 12, 2019"
# Revisions
PROJECT_REVISION = "atari800core_eclaireXLv3"
PROJECT_REVISION = "atari800core_eclaireXL"
eclaireXL_ITX/atari800core_eclaireXLv3.qsf
set_global_assignment -name TOP_LEVEL_ENTITY atari800core_eclaireXL
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 14.0
set_global_assignment -name PROJECT_CREATION_TIME_DATE "20:32:21 JULY 11, 2015"
set_global_assignment -name LAST_QUARTUS_VERSION 14.0
set_global_assignment -name LAST_QUARTUS_VERSION "18.0.0 Lite Edition"
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
......
set_global_assignment -name STRATIXV_CONFIGURATION_SCHEME "ACTIVE SERIAL X1"
set_global_assignment -name ACTIVE_SERIAL_CLOCK FREQ_100MHZ
set_global_assignment -name QIP_FILE pll_usb.qip
#set_global_assignment -name QIP_FILE serial_loader/synthesis/serial_loader.qip
set_global_assignment -name QIP_FILE zpu_rom.qip
set_global_assignment -name QIP_FILE pll_hdmi.qip
set_global_assignment -name QIP_FILE pll_hdmi2.qip
set_global_assignment -name QIP_FILE pll_acore.qip
set_global_assignment -name QIP_FILE pll_acore_reconfig.qip
set_global_assignment -name QIP_FILE pll_usb.qip
......
set_global_assignment -name QIP_FILE fifo_transmit.qip
set_global_assignment -name QIP_FILE sfl.qip
set_global_assignment -name QSYS_FILE clkctrl.qsys
set_global_assignment -name QSYS_FILE clkctrl2.qsys
set_global_assignment -name VHDL_FILE adc084.vhdl
set_global_assignment -name VHDL_FILE gpio_debug.vhd
......
set_instance_assignment -name FAST_INPUT_REGISTER ON -to DRAM_DQ[14]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to DRAM_DQ[15]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX2P
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX2P
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX2P
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX1P
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX1P
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX1P
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX0P
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX0P
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX0P
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_CLKP
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_CLKP
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_CLKP
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX2N
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX2N
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX2N
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX1N
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX1N
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX1N
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX0N
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX0N
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX0N
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_CLKN
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_CLKN
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_CLKN
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX2P
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX2P
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX2P
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX1P
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX1P
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX1P
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX0P
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX0P
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX0P
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_CLKP
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_CLKP
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_CLKP
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX2N
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX2N
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX2N
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX1N
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX1N
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX1N
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_TX0N
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_TX0N
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_TX0N
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HD_CLKN
set_instance_assignment -name FAST_INPUT_REGISTER ON -to HD_CLKN
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HD_CLKN
#set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SD_DAT2
#set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SD_DAT1
set_global_assignment -name DEVICE 5CGXFC7C7F23C8
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
eclaireXL_ITX/atari800core_eclaireXLv3.sdc
create_clock -period 50MHz [get_ports CLOCK_50]
create_clock -period 27MHz -name CLKGEN_CLK2
create_clock -period 74.25MHz -name CLKGEN_CLK2 -add
derive_pll_clocks
derive_clock_uncertainty
create_generated_clock -source {CLKGEN_CLK2} -multiply_by 5 -duty_cycle 50.00 -name {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0]} {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0]}
create_generated_clock -source {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|vco0ph[0]} -divide_by 5 -duty_cycle 50.00 -name {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk} {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}
create_generated_clock -source {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|vco0ph[0]} -duty_cycle 50.00 -name {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk} {pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk}
set_clock_groups -asynchronous \
-group { CLOCK_50 } \
-group { CLKGEN_CLK2 } \
-group { \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[0].output_counter|divclk \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[1].output_counter|divclk \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[2].output_counter|divclk \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[3].output_counter|divclk \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|fpll_0|fpll|vcoph[0] \
pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|fpll_0|fpll|vcoph[0] \
} \
-group { \
pll_hdmi_inst|pll_hdmi_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0] \
pll_hdmi_inst|pll_hdmi_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk \
pll_hdmi_inst|pll_hdmi_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk \
pll_hdmi_inst|pll_hdmi_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk
} \
-group { \
pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0] \
pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk \
pll_hdmi2_inst|pll_hdmi2_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk \
} \
-group { \
pllusbinstance|pll_usb_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0] \
pllusbinstance|pll_usb_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk \
pllusbinstance|pll_usb_inst|altera_pll_i|general[1].gpll~PLL_OUTPUT_COUNTER|divclk \
}
#create_generated_clock -name sdram_clk -source pll_acore_inst|pll_acore_inst|altera_pll_i|cyclonev_pll|counter[1].output_counter|divclk
#set_output_delay -clock sdram_clk -max 6.0 [get_ports DRAM_DQ[*]]
#set_output_delay -clock sdram_clk -min -1.0 [get_ports DRAM_DQ[*]]
eclaireXL_ITX/atari800core_eclaireXLv3.vhd
-- For initial port may help to have no
internal_rom : integer := 1; -- if 0 expects it in sdram,is 1:16k os+basic, is 2:... TODO
internal_ram : integer := 16384; -- at start of memory map
sid : integer := 0
sid : integer := 0;
enable_area_scaler : integer := 1;
enable_polyphasic_scaler : integer := 0
);
PORT
(
......
);
end component;
component pll_hdmi
component pll_hdmi is
port (
refclk : in std_logic := '0'; -- refclk.clk
rst : in std_logic := '0'; -- reset.reset
outclk_0 : out std_logic; -- outclk0.clk
locked : out std_logic -- locked.export
);
end component;
component pll_hdmi2
port (
refclk : in std_logic := '0'; -- refclk.clk
rst : in std_logic := '0'; -- reset.reset
......
);
end component;
component ddioclkctrl is
port (
inclk3x : in std_logic := '0'; -- altclkctrl_input.inclk3x
inclk2x : in std_logic := '0'; -- .inclk2x
inclk1x : in std_logic := '0'; -- .inclk1x
inclk0x : in std_logic := '0'; -- .inclk0x
clkselect : in std_logic_vector(1 downto 0) := (others => '0'); -- .clkselect
ena : in std_logic := '0'; -- .ena
outclk : out std_logic -- altclkctrl_output.outclk
);
component clkctrl2 is
port (
inclk3x : in std_logic := 'X'; -- inclk3x
inclk2x : in std_logic := 'X'; -- inclk2x
inclk1x : in std_logic := 'X'; -- inclk1x
inclk0x : in std_logic := 'X'; -- inclk0x
clkselect : in std_logic_vector(1 downto 0) := (others => 'X'); -- clkselect
outclk : out std_logic -- outclk
);
end component;
component pll_usb is
......
-- SYSTEM
SIGNAL GCLOCK_50 : STD_LOGIC; -- Only 2 fplls can use the pin!
SIGNAL GCLOCK_54 : STD_LOGIC; -- Only 2 fplls can use the pin!
SIGNAL GCLOCK_148_5 : STD_LOGIC; -- Only 2 fplls can use the pin!
SIGNAL CLK : STD_LOGIC;
SIGNAL CLK_1x : STD_LOGIC;
SIGNAL CLK_114 : STD_LOGIC;
......
SIGNAL CLK_PIXEL_IN : STD_LOGIC;
SIGNAL CLK_HDMI_IN : STD_LOGIC;
signal CLK_PIXEL_SWITCH : STD_LOGIC;
--SIGNAL CLK_7425_PIXEL_IN : STD_LOGIC;
--SIGNAL CLK_7425_HDMI_IN : STD_LOGIC;
--SIGNAL CLK_27_PIXEL_IN : STD_LOGIC;
--SIGNAL CLK_27_HDMI_IN : STD_LOGIC;
signal clk_hdmi_select : std_logic_vector(2 downto 0);
SIGNAL CLK_raw : STD_LOGIC;
SIGNAL CLK_1x_raw : STD_LOGIC;
......
signal pll_acore_locked : std_logic;
signal pll_hdmi_locked : std_logic;
signal pll_hdmi1_locked : std_logic;
signal pll_hdmi2_locked : std_logic;
signal pll_pause_counter_reg : std_logic_vector(25 downto 0);
signal pll_pause_counter_next : std_logic_vector(25 downto 0);
......
signal spi_do : std_logic;
signal spi_clk : std_logic;
-- scaler
signal scaler_sda : std_logic;
signal scaler_scl : std_logic;
function to_std_logic(i : in integer) return std_logic is
begin
if i = 0 then
......
outclk => CLK_114
);
clkctrl2: clkctrl
clkctrl2i: clkctrl
port map (
inclk => DRAM_CLK_raw,
ena => pll_enable_reg,
......
);
pll_hdmi_inst : pll_hdmi
PORT MAP(refclk => GCLOCK_50,
outclk_0 => CLK_PIXEL_IN, -- 27MHz
outclk_1 => CLK_HDMI_IN, -- 5*27MHz
locked => PLL_HDMI_LOCKED);
PORT MAP(refclk => GCLOCK_54,
outclk_0 => GCLOCK_148_5,
locked => open);
u0 : clkctrl2
port map (
inclk3x => GCLOCK_54, -- altclkctrl_input.inclk3x
inclk2x => GCLOCK_148_5, -- .inclk2x
-- inclk1x => CLOCK_50, -- .inclk1x < builds/works
-- inclk0x => CLOCK_50, -- .inclk0x
-- inclk1x => CLKGEN_CLK2, -- .inclk1x < fails to build
-- inclk0x => CLKGEN_CLK0, -- .inclk0x
inclk1x => CLOCK_50, -- .inclk1x
inclk0x => CLOCK_50, -- .inclk0x
clkselect => clk_hdmi_select(1 downto 0), -- .clkselect
outclk => CLK_PIXEL_SWITCH -- altclkctrl_output.outclk
);
--CLK_HDMI_IN <= CLK_PIXEL_IN;
pll_hdmi2_inst : pll_hdmi2
PORT MAP(refclk => CLK_PIXEL_SWITCH,
locked => PLL_HDMI_LOCKED,
outclk_0 => CLK_PIXEL_IN,
outclk_1 => CLK_HDMI_IN);
--PLL_HDMI_LOCKED <= PLL_HDMI1_LOCKED and PLL_HDMI2_LOCKED;
--CLK_PIXEL_IN <= CLK_7425_PIXEL_IN;
--CLK_HDMI_IN <= CLK_7425_HDMI_IN;
--clkctrl2_1: clkctrl2
--port map (
-- inclk0x => CLOCK_50,
-- inclk1x => '0',
-- => CLK_7425_PIXEL_IN,
-- inclk3x => CLK_27_PIXEL_IN,
-- clkselect => '1'&clk_hdmi_select,
-- ena => '1',
-- outclk => CLK_PIXEL_IN
--);
--
--clkctrl2_2: clkctrl2
--port map (
-- inclk0x => CLOCK_50,
-- inclk1x => '0',
-- inclk2x => ,
-- inclk3x => CLK_27_HDMI_IN,
-- clkselect => '1'&clk_hdmi_select,
-- ena => '1',
-- outclk => CLK_HDMI_IN
--);
--
--end generate;
......
pllusbinstance : pll_usb
PORT MAP(refclk => CLOCK_50,
outclk_0 => CLK_USB,
outclk_1 => GCLOCK_50,
outclk_1 => GCLOCK_54,
locked => open);
......
CLK => CLK,
RESET_N => RESET_N and sdram_reset_n,
-- dma bus master (with many waitstates...)
-- dma bus master (with manclk_hdmi_selecty waitstates...)
ZPU_ADDR_FETCH => dma_addr_fetch,
ZPU_DATA_OUT => dma_write_data,
ZPU_FETCH => dma_fetch,
......
USBWireVMin => USBWireVMin,
USBWireVPout => USBWireVPout,
USBWireVMout => USBWireVMout,
USBWireOE_n => USBWireOE_n
USBWireOE_n => USBWireOE_n,
i2c0_sda => scaler_sda,
i2c0_scl => scaler_scl
);
pause_atari <= zpu_out1(0);
......
-- HDMI
scandoubler_hdmi_int : work.scandoubler_hdmi
GENERIC MAP
(
enable_area_scaler => enable_area_scaler,
enable_polyphasic_scaler => enable_polyphasic_scaler
)
PORT MAP
(
CLK_ATARI_IN => CLK,
......
--HDMI clock domain
CLK_HDMI_IN => clk_hdmi_in,
CLK_PIXEL_IN => clk_pixel_in,
CLK_HDMI_SELECT => clk_hdmi_select,
O_hsync => adj_hsync,
O_vsync => adj_vsync,
......
-- TO TV...
O_TMDS_H => tmds_h,
O_TMDS_L => tmds_l
O_TMDS_L => tmds_l,
-- I2C
sda => scaler_sda,
scl => scaler_scl
);
END vhdl;
eclaireXL_ITX/build.sh
(
"A2EBAv3rom" =>
{
"internal_ram" => 32768,
"internal_ram" => 65536,
"internal_rom" => 1,
"fpga" => "5CEBA2F23C8",
"postfix" => "v3",
"convert" => "v3a",
"sid" => 1
"sid" => 0,
"enable_polyphasic_scaler" => 0,
"enable_area_scaler" => 1
},
"A4EBAv3rom" =>
{
......
"fpga" => "5CEBA4F23C8",
"postfix" => "v3",
"convert" => "v3b",
"sid" => 1
"sid" => 1,
"enable_polyphasic_scaler" => 0,
"enable_area_scaler" => 1
},
"A2EBArom" =>
{
"internal_ram" => 32768,
"internal_ram" => 65536,
"internal_rom" => 1,
"fpga" => "5CEBA2F23C8",
"postfix" => "v1",
"sid" => 0
"sid" => 0,
"enable_polyphasic_scaler" => 0,
"enable_area_scaler" => 1
},
"A4EBArom" =>
{
eclaireXL_ITX/zpu_romv1.mif
009e : 00000000;
009f : 00000000;
00a0 : 71fc0608;
00a1 : 0b0b829e;
00a2 : c0738306;
00a1 : 0b0b82a3;
00a2 : e0738306;
00a3 : 10100508;
00a4 : 060b0b0b;
00a5 : 88a20400;
......
00cd : 00000000;
00ce : 00000000;
00cf : 00000000;
00d0 : 810b82b1;
00d0 : 810b82b7;
00d1 : a00c5104;
00d2 : 00000000;
00d3 : 00000000;
......
0116 : 83c08008;
0117 : 83c08408;
0118 : 83c08808;
0119 : 757581ac;
011a : 892d5050;
0119 : 757581ae;
011a : d52d5050;
011b : 83c08008;
011c : 5683c088;
011d : 0c83c084;
......
0120 : c0800883;
0121 : c0840883;
0122 : c0880875;
0123 : 7581abc8;
0123 : 7581ae94;
0124 : 2d505083;
0125 : c0800856;
0126 : 83c0880c;
......
0129 : 51040000;
012a : 800489aa;
012b : 0489aa0b;
012c : 80eda804;
012c : 80ee9504;
012d : fd3d0d75;
012e : 705254ae;
012f : c83f83c0;
......
0221 : 0d7b7d5a;
0222 : 5a82d052;
0223 : 83c2d408;
0224 : 51819a94;
0224 : 51819ce0;
0225 : 3f83c080;
0226 : 0857f9aa;
0227 : 3f795283;
......
022d : 81068283;
022e : 3883c0b8;
022f : 080b0b82;
0230 : a9905370;
0230 : aee45370;
0231 : 5256a6a1;
0232 : 3f0b0b82;
0233 : a9905280;
0233 : aee45280;
0234 : c01651a6;
0235 : 943f75bc;
0236 : 170c7382;
......
0344 : ffab3976;
0345 : 982b5574;
0346 : 80258738;
0347 : 829dd017;
0347 : 82a2f017;
0348 : 3357ff9f;
0349 : 17557499;
034a : 268938e0;
......
0408 : 842a903d;
0409 : 33547171;
040a : 31535656;
040b : 818af93f;
040b : 818dc53f;
040c : 83c08008;
040d : 82057088;
040e : 1c0c83c0;
......
04a8 : 5376802e;
04a9 : b7387452;
04aa : ff165181;
04ab : 85fa3f83;
04ab : 88c63f83;
04ac : c08008ff;
04ad : 18765470;
04ae : 53585381;
04af : 85ea3f83;
04af : 88b63f83;
04b0 : c0800873;
04b1 : 26963874;
04b2 : 30707806;
......
0585 : 902e0981;
0586 : 0680cd38;
0587 : 02ab0533;
0588 : 82b1a80b;
0589 : 82b1a833;
0588 : 82b7a80b;
0589 : 82b7a833;
058a : 5758568c;
058b : 3974762e;
058c : 8a388417;
......
05cf : 800880d0;
05d0 : 387451e5;
05d1 : c33f83c0;
05d2 : 800882a9;
05d3 : 9c5383c0;
05d2 : 800882ae;
05d3 : f05383c0;
05d4 : 80085253;
05d5 : fea33f83;
05d6 : c08008b0;
05d7 : 3882a9a0;
05d7 : 3882aef4;
05d8 : 527251fe;
05d9 : 943f83c0;
05da : 8008a138;
05db : 82a9a452;
05db : 82aef852;
05dc : 7251fe85;
05dd : 3f83c080;
05de : 08923882;
05df : a9a85272;
05df : aefc5272;
05e0 : 51fdf63f;
05e1 : 83c08008;
05e2 : 802e8338;
......
05f7 : 2e85cf38;
05f8 : 86537a52;
05f9 : 83c09451;
05fa : a9913f7e;
05fa : a9eb3f7e;
05fb : 51daae3f;
05fc : 83c08008;
05fd : 33973d56;
05fe : 54737b2e;
05ff : 09810696;
0600 : 3882b5c8;
0600 : 3882bbc8;
0601 : 52745187;
0602 : e03f9a39;
0603 : 7e527851;
......
0626 : 55577380;
0627 : 24ed3874;
0628 : 602e8638;
0629 : a9cc3f74;
0629 : aaa63f74;
062a : 4078ff1b;
062b : 70585e58;
062c : 807a2595;
......
0632 : 38800b83;
0633 : c7dc0c81;
0634 : 800b83c8;
0635 : b80c82a9;
0636 : ac518be4;
0635 : b80c82af;
0636 : 80518be4;
0637 : 3f800b83;
0638 : c8b80c83;
0639 : c0945282;
063a : a9b4518b;
063a : af88518b;
063b : d33fa80b;
063c : 83c7dc0c;
063d : 76802e80;
......
0645 : 56e29b3f;
0646 : 83c08008;
0647 : 802e8838;
0648 : 82a9c051;
0648 : 82af9451;
0649 : 8b9a3f76;
064a : 51e1dd3f;
064b : 83c08008;
064c : 5282adb8;
064c : 5282b38c;
064d : 518b893f;
064e : 7651e1e5;
064f : 3f83c080;
......
065b : 9b3f83c0;
065c : 80087852;
065d : 55e1bb3f;
065e : 82a9c854;
065e : 82af9c54;
065f : 83c08008;
0660 : 853882ac;
0661 : bc547453;
0662 : 735282a9;
0663 : 94518ab0;
0660 : 853882b2;
0661 : 90547453;
0662 : 735282ae;
0663 : e8518ab0;
0664 : 3f805482;
0665 : ac98518a;
0665 : b1ec518a;
0666 : a73f8114;
0667 : 5473a82e;
0668 : 098106ef;
0669 : 38868da0;
066a : 51a5ca3f;
066a : 51a6a43f;
066b : 8052913d;
066c : 70525780;
066d : fc893f83;
066d : fed53f83;
066e : 52765180;
066f : fc813f64;
066f : fecd3f64;
0670 : 5473ff2e;
0671 : 09810697;
0672 : 38ff1b70;
......
067a : 81069138;
067b : 86538052;
067c : 83c09451;
067d : a5853f80;
067d : a5df3f80;
067e : 5b81a539;
067f : 7383c094;
0680 : 1c34811b;
......
0691 : 2efbc538;
0692 : 7851dfbc;
0693 : 3f83c080;
0694 : 085282a9;
0695 : 905181ea;
0694 : 085282ae;
0695 : e45181ea;
0696 : 3f83c080;
0697 : 08a3387d;
0698 : 5183a23f;
......
06a7 : 5afbc539;
06a8 : 63802efb;
06a9 : 88388052;
06aa : 765180fa;
06ab : 923fa53d;
06aa : 765180fc;
06ab : de3fa53d;
06ac : 0d04ff3d;
06ad : 0d028f05;
06ae : 33701081;
......
06b5 : 2a708106;
06b6 : 51515170;
06b7 : 802e8738;
06b8 : 80cef53f;
06b8 : 80d1c13f;
06b9 : e9397190;
06ba : 88800c83;
06bb : 3d0d0480;
......
06be : 2a708106;
06bf : 51515170;
06c0 : 802e8738;
06c1 : 80ced13f;
06c1 : 80d19d3f;
06c2 : e9399088;
06c3 : 880883c0;
06c4 : 800c823d;
......
06c9 : 54548073;
06ca : 25943873;
06cb : 70810555;
06cc : 335282a9;
06cd : cc518788;
06cc : 335282af;
06cd : a0518788;
06ce : 3fff1353;
06cf : e939853d;
06d0 : 0d04fd3d;
......
070d : 80598155;
070e : 8539747a;
070f : 29557452;
0710 : 755180f2;
0711 : e33f83c0;
0710 : 755180f5;
0711 : af3f83c0;
0712 : 80087a27;
0713 : ed387480;
0714 : 2e80e038;
0715 : 74527551;
0716 : 80f2cd3f;
0716 : 80f5993f;
0717 : 83c08008;
0718 : 75537652;
0719 : 5480f2d0;
0719 : 5480f59c;
071a : 3f83c080;
071b : 087a5375;
071c : 525680f2;
071d : b33f83c0;
071c : 525680f4;
071d : ff3f83c0;
071e : 80087930;
071f : 707b079f;
0720 : 2a707780;
......
0885 : 547281aa;
0886 : 2e8d3881;
0887 : c73980e4;
0888 : 5194d23f;
0888 : 5195ac3f;
0889 : ff145473;
088a : 802e81b8;
088b : 38820a52;
......
08a8 : 38735580;
08a9 : c15680ce;
08aa : 90548a39;
08ab : 80e45193;
08ac : c43fff14;
08ab : 80e45194;
08ac : 9e3fff14;
08ad : 5473802e;
08ae : a9388052;
08af : 7551fca0;
......
08f9 : a7885472;
08fa : 852e8c38;
08fb : 9e3980e4;
08fc : 5191823f;
08fc : 5191dc3f;
08fd : ff1454f9;
08fe : bf3f83c0;
08ff : 800881ff;
......
090c : 863d0d04;
090d : fd3d0d75;
090e : 78547753;
090f : 70525490;
0910 : ba3f7383;
090f : 70525491;
0910 : 943f7383;
0911 : c0800c85;
0912 : 3d0d04eb;
0913 : 3d0d6769;
......
0916 : 80448043;
0917 : 80428070;
0918 : 71405b5c;
0919 : 928c3f80;
0919 : 92e63f80;
091a : 0b83c7dc;
091b : 0c800b83;
091c : c8b80c60;
......
093a : 5973802e;
093b : 903883c7;
093c : e0335473;
093d : 883882a9;
093e : d451f3c4;
093d : 883882af;
093e : a851f3c4;
093f : 3f7583c7;
0940 : dc0c7717;
0941 : 8c163370;
......
0944 : 57738738;
0945 : 901555fe;
0946 : ea39868d;
0947 : a0518ed5;
0947 : a0518faf;
0948 : 3f805292;
0949 : 3d70525b;
094a : 80e5943f;
094a : 80e7e03f;
094b : 83527a51;
094c : 80e58c3f;
094c : 80e7d83f;
094d : 64547382;
094e : a4386555;
094f : 80752583;
......
0958 : 2c720652;
0959 : 555a767a;
095a : 248438ff;
095b : 175ab9e8;
095b : 175abcb4;
095c : 3f80608c;
095d : 055757fc;
095e : 16085574;
......
09bc : 8b3fa053;
09bd : 805283c7;
09be : d40883a0;
09bf : 8005518a;
09c0 : fa3fa053;
09bf : 8005518b;
09c0 : d43fa053;
09c1 : 805283c7;
09c2 : d40883a4;
09c3 : 8005518a;
09c4 : ea3f9053;
09c3 : 8005518b;
09c4 : c43f9053;
09c5 : 805283c7;
09c6 : d40883a8;
09c7 : 8005518a;
09c8 : da3fff76;
09c7 : 8005518b;
09c8 : b43fff76;
09c9 : 3483a080;
09ca : 54805383;
09cb : c7d00852;
......
09d0 : 83c7d008;
09d1 : 5283c7d4;
09d2 : 0851feb0;
09d3 : 3f8ca33f;
09d3 : 3f8cfd3f;
09d4 : a2548053;
09d5 : 83c7d408;
09d6 : 8c800552;
09d7 : 82b29c51;
09d7 : 82b89c51;
09d8 : fe9a3f86;
09d9 : 0b87a883;
09da : 34800b87;
......
0abe : 0c525283;
0abf : 3d0d0480;
0ac0 : 3d0d9080;
0ac1 : d00883ff;
0ac2 : ff0683c0;
0ac3 : 800c823d;
0ac4 : 0d04ff3d;
0ac5 : 0d9080d0;
0ac6 : 700870fc;
0ac7 : 80800676;
0ac8 : 07720c52;
0ac9 : 52833d0d;
0aca : 04803d0d;
0acb : 9080d008;
0acc : 70902c81;
0acd : ff0683c0;
0ace : 800c5182;
0acf : 3d0d04ff;
0ad0 : 3d0d9080;
0ad1 : d0700870;
0ad2 : f883ffff;
0ad3 : 0676902b;
0ac1 : bc087087;
0ac2 : 2c870683;
0ac3 : c0800c51;
0ac4 : 823d0d04;
0ac5 : ff3d0d90;
0ac6 : 80bc7008;
0ac7 : 70f8ff06;
0ac8 : 76872b07;
0ac9 : 720c5252;
0aca : 833d0d04;
0acb : 803d0d90;
0acc : 80bc0870;
0acd : 8a2c8706;
0ace : 83c0800c;
0acf : 51823d0d;
0ad0 : 04ff3d0d;
0ad1 : 9080bc70;
0ad2 : 0870c7ff;
0ad3 : 06768a2b;
0ad4 : 07720c52;
0ad5 : 52833d0d;
0ad6 : 04803d0d;
0ad7 : 9080d008;
0ad8 : 70982c81;
0ad9 : 0683c080;
0ada : 0c51823d;
0adb : 0d04ff3d;
0adc : 0d9080d0;
0add : 700870fe;
0ade : ff0a0676;
0adf : 982b0772;
0ae0 : 0c525283;
0ae1 : 3d0d0480;
0ae2 : 3d0d9080;
0ae3 : d0087099;
0ae4 : 2c810683;
0ae5 : c0800c51;
0ae6 : 823d0d04;
0ae7 : ff3d0d90;
0ae8 : 80d07008;
0ae9 : 70ffbf0a;
0aea : 0676992b;
0aeb : 07720c52;
0aec : 52833d0d;
0aed : 04803d0d;
0aee : 9080d008;
0aef : 709a2c81;
0af0 : 0683c080;
0af1 : 0c51823d;
0af2 : 0d04ff3d;
0af3 : 0d9080d0;
0af4 : 700870df;
0af5 : 0a06769a;
0af6 : 2b07720c;
0af7 : 5252833d;
0af8 : 0d04803d;
0af9 : 0d908080;
0afa : 0870882c;
0afb : 810683c0;
0afc : 800c5182;
0afd : 3d0d0480;
0afe : 3d0d9080;
0aff : 80087089;
0b00 : 2c810683;
0b01 : c0800c51;
0b02 : 823d0d04;
0b03 : 803d0d90;
0b04 : 80800870;
0b05 : 8a2c8106;
0b06 : 83c0800c;
0b07 : 51823d0d;
0b08 : 04803d0d;
0b09 : 90808008;
0b0a : 708b2c81;
0b0b : 0683c080;
0b0c : 0c51823d;
0b0d : 0d04803d;
0b0e : 0d908080;
0b0f : 08708c2c;
0b10 : bf0683c0;
0b11 : 800c5182;
0b12 : 3d0d0480;
0b13 : 3d0d9080;
0b14 : 80087092;
0b15 : 2c810683;
0b16 : c0800c51;
0b17 : 823d0d04;
0b18 : 803d0d90;
0b19 : 80800870;
0b1a : 932c8106;
0b1b : 83c0800c;
0b1c : 51823d0d;
0b1d : 04719080;
0b1e : a00c04fe;
0b1f : 3d0d7575;
0b20 : ff195353;
0b21 : 5370ff2e;
0b22 : 8d387272;
0b23 : 70810554;
0b24 : 34ff1151;
0b25 : f039843d;
0b26 : 0d04fe3d;
0b27 : 0d7575ff;
0b28 : 19535353;
0b29 : 70ff2e8d;
0b2a : 38727270;
0b2b : 8405540c;
0b2c : ff1151f0;
0b2d : 39843d0d;
0b2e : 04fe3d0d;
0b2f : 88805380;
0b30 : 5288800a;
0b31 : 51ffb43f;
0b32 : 82805380;
0b33 : 5282800a;
0b34 : 51c83f80;
0b35 : 0b87aa80;
0b36 : 34843d0d;
0b37 : 04803d0d;
0b38 : 8151f7c5;
0b39 : 3f72802e;
0b3a : 90388051;
0b3b : f9c63fc9;
0b3c : 3f83c7d8;
0b3d : 3351f9bc;
0b3e : 3f8151f7;
0b3f : d63f8051;
0b40 : f7d13f80;
0b41 : 51f7a23f;
0b42 : 823d0d04;
0b43 : fd3d0d75;
0b44 : 52805480;
0b45 : ff722588;
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff