From 4ef031e17adda2fd7996077bb45d14a85b34e5c4 Mon Sep 17 00:00:00 2001 From: Fred VanEijk Date: Mon, 16 Dec 2024 18:03:47 -0500 Subject: [PATCH] update sys to latest keep old sd_card.sv as image_card.sv --- Components/SDCARD/image_card.sv | 540 +++ MultiComp-lite.qsf | 1 + MultiComp.qsf | 83 +- MultiComp.sv | 119 +- build_id.v | 2 +- releases/MultiComp_20241216.rbf | Bin 0 -> 3487956 bytes sys/arcade_video.v | 625 +-- sys/ascal.vhd | 5205 +++++++++++++----------- sys/build_id.tcl | 146 +- sys/ddr_svc.sv | 216 +- sys/f2sdram_safe_terminator.sv | 250 ++ sys/gamma_corr.sv | 4 +- sys/hdmi_config.sv | 239 -- sys/{hps_io.v => hps_io.sv} | 414 +- sys/i2c.v | 199 +- sys/iir_filter.v | 426 +- sys/ltc2308.sv | 24 +- sys/math.sv | 109 + sys/mcp23009.sv | 17 +- sys/mt32pi.sv | 283 ++ sys/osd.v | 4 +- sys/pll_audio.v | 504 +-- sys/pll_audio/pll_audio_0002.v | 174 +- sys/pll_cfg.qip | 43 +- sys/pll_cfg/altera_pll_reconfig_core.v | 4342 ++++++++++---------- sys/pll_cfg/altera_pll_reconfig_top.v | 830 ++-- sys/{ => pll_cfg}/pll_cfg.v | 172 +- sys/pll_cfg/pll_cfg_hdmi.v | 1282 ++++++ sys/pll_hdmi.v | 512 +-- sys/pll_hdmi/pll_hdmi_0002.v | 482 +-- sys/pll_q13.qip | 4 +- sys/scandoubler.v | 10 +- sys/scanlines.v | 7 +- sys/sd_card.sv | 1000 +++-- sys/shadowmask.sv | 136 + sys/spdif.v | 38 +- sys/sys.qip | 10 +- sys/sys.tcl | 446 +- sys/sys_analog.tcl | 142 +- sys/sys_dual_sdram.tcl | 101 +- sys/sys_top.sdc | 131 +- sys/sys_top.v | 1353 +++--- sys/sysmem.sv | 195 +- sys/vga_out.sv | 106 +- sys/video_cleaner.sv | 207 +- sys/video_freak.sv | 329 ++ sys/video_freezer.sv | 143 + sys/video_mixer.sv | 457 +-- sys/yc_out.sv | 233 ++ 49 files changed, 13123 insertions(+), 9172 deletions(-) create mode 100644 Components/SDCARD/image_card.sv create mode 100644 releases/MultiComp_20241216.rbf create mode 100644 sys/f2sdram_safe_terminator.sv delete mode 100644 sys/hdmi_config.sv rename sys/{hps_io.v => hps_io.sv} (74%) create mode 100644 sys/math.sv create mode 100644 sys/mt32pi.sv rename sys/{ => pll_cfg}/pll_cfg.v (98%) create mode 100644 sys/pll_cfg/pll_cfg_hdmi.v create mode 100644 sys/shadowmask.sv create mode 100644 sys/video_freak.sv create mode 100644 sys/video_freezer.sv create mode 100644 sys/yc_out.sv diff --git a/Components/SDCARD/image_card.sv b/Components/SDCARD/image_card.sv new file mode 100644 index 0000000..8ca3b93 --- /dev/null +++ b/Components/SDCARD/image_card.sv @@ -0,0 +1,540 @@ +// +// sd_card.v +// +// Copyright (c) 2014 Till Harbaum +// Copyright (c) 2015-2018 Sorgelig +// +// This source file is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This source file is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// http://elm-chan.org/docs/mmc/mmc_e.html +// +///////////////////////////////////////////////////////////////////////// + +// +// Made module syncrhronous. Total code refactoring. (Sorgelig) +// clk_spi must be at least 4 x sck for proper work. +// +// this is the old sd_card.sv from sys that worked (there are timing and control code issues with thr new one.) +// could also be in the cpm bios with some of the wait states and timing +// +module image_card #(parameter WIDE = 0) +( + input clk_sys, + input reset, + + input sdhc, + + output [31:0] sd_lba, + output reg sd_rd, + output reg sd_wr, + input sd_ack, + input sd_ack_conf, + + input [AW:0] sd_buff_addr, + input [DW:0] sd_buff_dout, + output [DW:0] sd_buff_din, + input sd_buff_wr, + + // SPI interface + input clk_spi, + + input ss, + input sck, + input mosi, + output reg miso +); + +localparam AW = WIDE ? 7 : 8; +localparam DW = WIDE ? 15 : 7; + +assign sd_lba = sdhc ? lba : {9'd0, lba[31:9]}; + +wire[31:0] OCR = { 1'b1, sdhc, 30'd0 }; // bit30 = 1 -> high capaciry card (sdhc) // bit31 = 0 -> card power up finished +wire [7:0] READ_DATA_TOKEN = 8'hfe; +wire [7:0] WRITE_DATA_RESPONSE = 8'he5; + +// number of bytes to wait after a command before sending the reply +localparam NCR=3; + +localparam RD_STATE_IDLE = 0; +localparam RD_STATE_WAIT_IO = 1; +localparam RD_STATE_SEND_TOKEN = 2; +localparam RD_STATE_SEND_DATA = 3; +localparam RD_STATE_WAIT_M = 4; + +localparam WR_STATE_IDLE = 0; +localparam WR_STATE_EXP_DTOKEN = 1; +localparam WR_STATE_RECV_DATA = 2; +localparam WR_STATE_RECV_CRC0 = 3; +localparam WR_STATE_RECV_CRC1 = 4; +localparam WR_STATE_SEND_DRESP = 5; +localparam WR_STATE_BUSY = 6; + +sdbuf #(WIDE) buffer +( + .clock_a(clk_sys), + .address_a(sd_buff_addr), + .data_a(sd_buff_dout), + .wren_a(sd_ack & sd_buff_wr), + .q_a(sd_buff_din), + + .clock_b(clk_spi), + .address_b(buffer_ptr), + .data_b(buffer_din), + .wren_b(buffer_wr), + .q_b(buffer_dout) +); + +sdbuf #(WIDE) conf +( + .clock_a(clk_sys), + .address_a(sd_buff_addr), + .data_a(sd_buff_dout), + .wren_a(sd_ack_conf & sd_buff_wr), + + .clock_b(clk_spi), + .address_b(buffer_ptr), + .q_b(config_dout) +); + +reg [31:0] lba, new_lba; +reg [8:0] buffer_ptr; +reg [7:0] buffer_din; +wire [7:0] buffer_dout; +wire [7:0] config_dout; +reg buffer_wr; + +always @(posedge clk_spi) begin + reg [2:0] read_state; + reg [2:0] write_state; + reg [6:0] sbuf; + reg cmd55; + reg [7:0] cmd; + reg [2:0] bit_cnt; + reg [3:0] byte_cnt; + reg [7:0] reply; + reg [7:0] reply0, reply1, reply2, reply3; + reg [3:0] reply_len; + reg tx_finish; + reg rx_finish; + reg old_sck; + reg synced; + reg [5:0] ack; + reg io_ack; + reg [4:0] idle_cnt = 0; + reg [2:0] wait_m_cnt; + + if(buffer_wr & ~&buffer_ptr) buffer_ptr <= buffer_ptr + 1'd1; + buffer_wr <= 0; + + ack <= {ack[4:0], sd_ack}; + if(ack[5:4] == 2'b10) io_ack <= 1; + if(ack[5:4] == 2'b01) {sd_rd,sd_wr} <= 0; + + old_sck <= sck; + + if(~ss) idle_cnt <= 31; + else if(~old_sck && sck && idle_cnt) idle_cnt <= idle_cnt - 1'd1; + + if(reset || !idle_cnt) begin + bit_cnt <= 0; + byte_cnt <= 15; + synced <= 0; + miso <= 1; + sbuf <= 7'b1111111; + tx_finish <= 0; + rx_finish <= 0; + read_state <= RD_STATE_IDLE; + write_state <= WR_STATE_IDLE; + end + + if(old_sck & ~sck & ~ss) begin + tx_finish <= 0; + miso <= 1; // default: send 1's (busy/wait) + + if(byte_cnt == 5+NCR) begin + miso <= reply[~bit_cnt]; + + if(bit_cnt == 7) begin + // these three commands all have a reply_len of 0 and will thus + // not send more than a single reply byte + + // CMD9: SEND_CSD + // CMD10: SEND_CID + if((cmd == 'h49) | (cmd == 'h4a)) + read_state <= RD_STATE_SEND_TOKEN; // jump directly to data transmission + + // CMD17/CMD18 + if((cmd == 'h51) | (cmd == 'h52)) begin + io_ack <= 0; + read_state <= RD_STATE_WAIT_IO; // start waiting for data from io controller + lba <= new_lba; + sd_rd <= 1; // trigger request to io controller + end + end + end + else if((reply_len > 0) && (byte_cnt == 5+NCR+1)) miso <= reply0[~bit_cnt]; + else if((reply_len > 1) && (byte_cnt == 5+NCR+2)) miso <= reply1[~bit_cnt]; + else if((reply_len > 2) && (byte_cnt == 5+NCR+3)) miso <= reply2[~bit_cnt]; + else if((reply_len > 3) && (byte_cnt == 5+NCR+4)) miso <= reply3[~bit_cnt]; + else begin + if(byte_cnt > 5+NCR && read_state==RD_STATE_IDLE && write_state==WR_STATE_IDLE) tx_finish <= 1; + end + + // ---------- read state machine processing ------------- + + case(read_state) + RD_STATE_IDLE: ; // do nothing + + + // waiting for io controller to return data + RD_STATE_WAIT_IO: begin + if(io_ack & (bit_cnt == 7)) read_state <= RD_STATE_SEND_TOKEN; + end + + // send data token + RD_STATE_SEND_TOKEN: begin + miso <= READ_DATA_TOKEN[~bit_cnt]; + + if(bit_cnt == 7) begin + read_state <= RD_STATE_SEND_DATA; // next: send data + buffer_ptr <= 0; + if(cmd == 'h49) buffer_ptr <= 16; + end + end + + // send data + RD_STATE_SEND_DATA: begin + + miso <= ((cmd == 'h49) | (cmd == 'h4A)) ? config_dout[~bit_cnt] : buffer_dout[~bit_cnt]; + + if(bit_cnt == 7) begin + + // sent 512 sector data bytes? + if((cmd == 'h51) & &buffer_ptr) read_state <= RD_STATE_IDLE; + else if((cmd == 'h52) & &buffer_ptr) begin + read_state <= RD_STATE_WAIT_M; + wait_m_cnt <= 0; + end + + // sent 16 cid/csd data bytes? + else if(((cmd == 'h49) | (cmd == 'h4a)) & (&buffer_ptr[3:0])) read_state <= RD_STATE_IDLE; + + // not done yet -> trigger read of next data byte + else buffer_ptr <= buffer_ptr + 1'd1; + end + end + + RD_STATE_WAIT_M: begin + if(bit_cnt == 7) begin + wait_m_cnt <= wait_m_cnt + 1'd1; + if(&wait_m_cnt) begin + lba <= lba + 1; + io_ack <= 0; + sd_rd <= 1; + read_state <= RD_STATE_WAIT_IO; + end + end + end + endcase + + // ------------------ write support ---------------------- + // send write data response + if(write_state == WR_STATE_SEND_DRESP) miso <= WRITE_DATA_RESPONSE[~bit_cnt]; + + // busy after write until the io controller sends ack + if(write_state == WR_STATE_BUSY) miso <= 0; + end + + if(~old_sck & sck & ~ss) begin + + if(synced) bit_cnt <= bit_cnt + 1'd1; + + // assemble byte + if(bit_cnt != 7) begin + sbuf[6:0] <= { sbuf[5:0], mosi }; + + // resync while waiting for token + if(write_state==WR_STATE_EXP_DTOKEN) begin + if(cmd == 'h58) begin + if({sbuf,mosi} == 8'hfe) begin + write_state <= WR_STATE_RECV_DATA; + buffer_ptr <= 0; + bit_cnt <= 0; + end + end + else begin + if({sbuf,mosi} == 8'hfc) begin + write_state <= WR_STATE_RECV_DATA; + buffer_ptr <= 0; + bit_cnt <= 0; + end + if({sbuf,mosi} == 8'hfd) begin + write_state <= WR_STATE_IDLE; + rx_finish <= 1; + bit_cnt <= 0; + end + end + end + end + else begin + // finished reading one byte + // byte counter runs against 15 byte boundary + if(byte_cnt != 15) byte_cnt <= byte_cnt + 1'd1; + + // byte_cnt > 6 -> complete command received + // first byte of valid command is 01xxxxxx + // don't accept new commands once a write or read command has been accepted + if((byte_cnt > 5) & (write_state == WR_STATE_IDLE) & (read_state == RD_STATE_IDLE) && !rx_finish) begin + byte_cnt <= 0; + cmd <= { sbuf, mosi}; + + // set cmd55 flag if previous command was 55 + cmd55 <= (cmd == 'h77); + end + + if((byte_cnt > 5) & (read_state == RD_STATE_WAIT_M) && ({sbuf, mosi} == 8'h4c)) begin + byte_cnt <= 0; + rx_finish <= 0; + cmd <= {sbuf, mosi}; + read_state <= RD_STATE_IDLE; + end + + // parse additional command bytes + if(byte_cnt == 0) new_lba[31:24] <= { sbuf, mosi}; + if(byte_cnt == 1) new_lba[23:16] <= { sbuf, mosi}; + if(byte_cnt == 2) new_lba[15:8] <= { sbuf, mosi}; + if(byte_cnt == 3) new_lba[7:0] <= { sbuf, mosi}; + + // last byte (crc) received, evaluate + if(byte_cnt == 4) begin + + // default: + reply <= 4; // illegal command + reply_len <= 0; // no extra reply bytes + rx_finish <= 1; + + case(cmd) + // CMD0: GO_IDLE_STATE + 'h40: reply <= 1; // ok, busy + + // CMD1: SEND_OP_COND + 'h41: reply <= 0; // ok, not busy + + // CMD8: SEND_IF_COND (V2 only) + 'h48: begin + reply <= 1; // ok, busy + + reply0 <= 'h00; + reply1 <= 'h00; + reply2 <= 'h01; + reply3 <= 'hAA; + reply_len <= 4; + end + + // CMD9: SEND_CSD + 'h49: reply <= 0; // ok + + // CMD10: SEND_CID + 'h4a: reply <= 0; // ok + + // CMD12: STOP_TRANSMISSION + 'h4c: reply <= 0; // ok + + // CMD13: SEND_STATUS + 'h4d: begin + reply <= 'h00; // ok + reply0 <='h00; + reply_len <= 1; + end + + // CMD16: SET_BLOCKLEN + 'h50: begin + // we only support a block size of 512 + if(new_lba == 512) reply <= 0; // ok + else reply <= 'h40; // parmeter error + end + + // CMD17: READ_SINGLE_BLOCK + 'h51: reply <= 0; // ok + + // CMD18: READ_MULTIPLE + 'h52: reply <= 0; // ok + // ACMD23: SET_WR_BLK_ERASE_COUNT + 'h57: reply <= 0; //ok + + // CMD24: WRITE_BLOCK + 'h58, + // CMD25: WRITE_MULTIPLE + 'h59: begin + reply <= 0; // ok + write_state <= WR_STATE_EXP_DTOKEN; // expect data token + rx_finish <=0; + lba <= new_lba; + end + + // ACMD41: APP_SEND_OP_COND + 'h69: if(cmd55) reply <= 0; // ok, not busy + + // CMD55: APP_COND + 'h77: reply <= 1; // ok, busy + + // CMD58: READ_OCR + 'h7a: begin + reply <= 0; // ok + + reply0 <= OCR[31:24]; // bit 30 = 1 -> high capacity card + reply1 <= OCR[23:16]; + reply2 <= OCR[15:8]; + reply3 <= OCR[7:0]; + reply_len <= 4; + end + + // CMD59: CRC_ON_OFF + 'h7b: reply <= 0; // ok + endcase + end + + // ---------- handle write ----------- + case(write_state) + // do nothing in idle state + WR_STATE_IDLE: ; + + // waiting for data token + WR_STATE_EXP_DTOKEN: begin + buffer_ptr <= 0; + if(cmd == 'h58) begin + if({sbuf,mosi} == 8'hfe) write_state <= WR_STATE_RECV_DATA; + end + else begin + if({sbuf,mosi} == 8'hfc) write_state <= WR_STATE_RECV_DATA; + if({sbuf,mosi} == 8'hfd) begin + write_state <= WR_STATE_IDLE; + rx_finish <= 1; + end + end + end + + // transfer 512 bytes + WR_STATE_RECV_DATA: begin + // push one byte into local buffer + buffer_wr <= 1; + buffer_din <= {sbuf, mosi}; + + // all bytes written? + if(&buffer_ptr) write_state <= WR_STATE_RECV_CRC0; + end + + // transfer 1st crc byte + WR_STATE_RECV_CRC0: + write_state <= WR_STATE_RECV_CRC1; + + // transfer 2nd crc byte + WR_STATE_RECV_CRC1: + write_state <= WR_STATE_SEND_DRESP; + + // send data response + WR_STATE_SEND_DRESP: begin + write_state <= WR_STATE_BUSY; + io_ack <= 0; + sd_wr <= 1; + end + + // wait for io controller to accept data + WR_STATE_BUSY: + if(io_ack) begin + if(cmd == 'h59) begin + write_state <= WR_STATE_EXP_DTOKEN; + lba <= lba + 1; + end + else begin + write_state <= WR_STATE_IDLE; + rx_finish <= 1; + end + end + endcase + end + + // wait for first 0 bit until start counting bits + if(!synced && !mosi) begin + synced <= 1; + bit_cnt <= 1; // byte assembly prepare for next time loop + sbuf <= 7'b1111110; // byte assembly prepare for next time loop + rx_finish<= 0; + end else if (synced && tx_finish && rx_finish ) begin + synced <= 0; + bit_cnt <= 0; + rx_finish<= 0; + end + end +end + +endmodule + +module sdbuf #(parameter WIDE) +( + input clock_a, + input [AW:0] address_a, + input [DW:0] data_a, + input wren_a, + output reg [DW:0] q_a, + + input clock_b, + input [8:0] address_b, + input [7:0] data_b, + input wren_b, + output reg [7:0] q_b +); + +localparam AW = WIDE ? 7 : 8; +localparam DW = WIDE ? 15 : 7; + +always@(posedge clock_a) begin + if(wren_a) begin + ram[address_a] <= data_a; + q_a <= data_a; + end + else begin + q_a <= ram[address_a]; + end +end + +generate + if(WIDE) begin + reg [1:0][7:0] ram[1<<8]; + always@(posedge clock_b) begin + if(wren_b) begin + ram[address_b[8:1]][address_b[0]] <= data_b; + q_b <= data_b; + end + else begin + q_b <= ram[address_b[8:1]][address_b[0]]; + end + end + end + else begin + reg [7:0] ram[1<<9]; + always@(posedge clock_b) begin + if(wren_b) begin + ram[address_b] <= data_b; + q_b <= data_b; + end + else begin + q_b <= ram[address_b]; + end + end + end +endgenerate + +endmodule diff --git a/MultiComp-lite.qsf b/MultiComp-lite.qsf index cc9c504..0118ff8 100644 --- a/MultiComp-lite.qsf +++ b/MultiComp-lite.qsf @@ -371,6 +371,7 @@ set_global_assignment -name VHDL_FILE Components/M6502/T65.vhd set_global_assignment -name VHDL_FILE Components/UART/bufferedUART.vhd set_global_assignment -name VHDL_FILE Components/SDCARD/sd_controller.vhd set_global_assignment -name VHDL_FILE Components/SDCARD/image_controller.vhd +set_global_assignment -name VHDL_FILE Components/SDCARD/image_card.sv set_global_assignment -name QIP_FILE Components/INTERNALRAM/InternalRam64K.qip set_global_assignment -name VHDL_FILE Components/TERMINAL/SBCTextDisplayRGB.vhd set_global_assignment -name VHDL_FILE Components/TERMINAL/CGABoldRom.vhd diff --git a/MultiComp.qsf b/MultiComp.qsf index f32bced..3376412 100644 --- a/MultiComp.qsf +++ b/MultiComp.qsf @@ -293,6 +293,9 @@ set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_* set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to BTN_* set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to BTN_* +set_global_assignment -name ENABLE_SIGNALTAP ON +set_global_assignment -name USE_SIGNALTAP_FILE "output_files/status13-stp1.stp" +set_global_assignment -name SYSTEMVERILOG_FILE Components/SDCARD/image_card.sv set_global_assignment -name VERILOG_FILE Components/USB/spi_master_simple.v set_global_assignment -name VERILOG_FILE Components/USB/ch376s.v set_global_assignment -name CDF_FILE jtag.cdf @@ -329,86 +332,6 @@ set_global_assignment -name VHDL_FILE MicrocomputerZ80CPM.vhd set_global_assignment -name VHDL_FILE Microcomputer6502Basic.vhd set_global_assignment -name VHDL_FILE Microcomputer6809Basic.vhd set_global_assignment -name VHDL_FILE MicrocomputerZ80Basic.vhd -set_global_assignment -name ENABLE_SIGNALTAP ON -set_global_assignment -name USE_SIGNALTAP_FILE "output_files/status13-stp1.stp" set_global_assignment -name SIGNALTAP_FILE "output_files/status13-stp1.stp" -set_global_assignment -name SLD_NODE_CREATOR_ID 110 -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_ENTITY_NAME sld_signaltap -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_clk -to "emu:emu|CLK_50M" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[0] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[0]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[1] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[1]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[2] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[2]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[3] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[3]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[4] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[4]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[5] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[5]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[6] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[6]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[7] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[7]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[8] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|n_reset" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[0] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[0]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[1] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[1]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[2] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[2]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[3] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[3]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[4] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[4]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[5] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[5]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[6] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[6]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[7] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|dataOut[7]" -section_id auto_signaltap_0 -set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[8] -to "emu:emu|MicrocomputerZ80CPM:MicrocomputerZ80CPM|sd_controller:sd1|n_reset" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_RAM_BLOCK_TYPE=AUTO" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_DATA_BITS=9" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_BITS=9" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STORAGE_QUALIFIER_BITS=9" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_NODE_INFO=805334528" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_POWER_UP_TRIGGER=0" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_INVERSION_MASK=000000000000000000000000000000000000000000000000" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_INVERSION_MASK_LENGTH=48" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STORAGE_QUALIFIER_INVERSION_MASK_LENGTH=0" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_SEGMENT_SIZE=128" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_ATTRIBUTE_MEM_MODE=OFF" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STATE_FLOW_USE_GENERATED=0" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STATE_BITS=11" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_BUFFER_FULL_STOP=1" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_CURRENT_RESOURCE_WIDTH=1" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_INCREMENTAL_ROUTING=1" -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[0] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[1] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[2] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[3] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[4] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[5] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[6] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[7] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[8] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[9] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[10] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[11] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[12] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[13] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[14] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[15] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[16] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[17] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[18] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[19] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[20] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[21] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[22] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[23] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[24] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[25] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[26] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[27] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[28] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[29] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[30] -to auto_signaltap_0|vcc -section_id auto_signaltap_0 -set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[31] -to auto_signaltap_0|gnd -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_LEVEL=1" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_SAMPLE_DEPTH=128" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_IN_ENABLED=0" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_PIPELINE=0" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_RAM_PIPELINE=0" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_COUNTER_PIPELINE=0" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_ADVANCED_TRIGGER_ENTITY=basic,1," -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_LEVEL_PIPELINE=1" -section_id auto_signaltap_0 -set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_ENABLE_ADVANCED_TRIGGER=0" -section_id auto_signaltap_0 set_global_assignment -name SLD_FILE "db/status13-stp1_auto_stripped.stp" set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/MultiComp.sv b/MultiComp.sv index 65aec92..cc965e9 100644 --- a/MultiComp.sv +++ b/MultiComp.sv @@ -35,7 +35,7 @@ module emu input RESET, //Must be passed to hps_io module - inout [45:0] HPS_BUS, + inout [48:0] HPS_BUS, //Base video clock. Usually equals to CLK_SYS. output CLK_VIDEO, @@ -45,8 +45,9 @@ module emu output CE_PIXEL, //Video aspect ratio for HDMI. Most retro systems have ratio 4:3. - output [7:0] VIDEO_ARX, - output [7:0] VIDEO_ARY, + //if VIDEO_ARX[12] or VIDEO_ARY[12] is set then [11:0] contains scaled size instead of aspect ratio. + output [12:0] VIDEO_ARX, + output [12:0] VIDEO_ARY, output [7:0] VGA_R, output [7:0] VGA_G, @@ -56,15 +57,22 @@ module emu output VGA_DE, // = ~(VBlank | HBlank) output VGA_F1, output [1:0] VGA_SL, + output VGA_SCALER, // Force VGA scaler + output VGA_DISABLE, // analog out is off - /* - // Use framebuffer from DDRAM (USE_FB=1 in qsf) + input [11:0] HDMI_WIDTH, + input [11:0] HDMI_HEIGHT, + output HDMI_FREEZE, + output HDMI_BLACKOUT, + +`ifdef MISTER_FB + // Use framebuffer in DDRAM // FB_FORMAT: // [2:0] : 011=8bpp(palette) 100=16bpp 101=24bpp 110=32bpp // [3] : 0=16bits 565 1=16bits 1555 // [4] : 0=RGB 1=BGR (for 16/24/32 modes) // - // FB_STRIDE either 0 (rounded to 256 bytes) or multiple of 16 bytes. + // FB_STRIDE either 0 (rounded to 256 bytes) or multiple of pixel size (in bytes) output FB_EN, output [4:0] FB_FORMAT, output [11:0] FB_WIDTH, @@ -75,6 +83,7 @@ module emu input FB_LL, output FB_FORCE_BLANK, +`ifdef MISTER_FB_PALETTE // Palette control for 8bit modes. // Ignored for other video modes. output FB_PAL_CLK, @@ -82,7 +91,8 @@ module emu output [23:0] FB_PAL_DOUT, input [23:0] FB_PAL_DIN, output FB_PAL_WR, - */ +`endif +`endif output LED_USER, // 1 - ON, 0 - OFF. @@ -106,7 +116,7 @@ module emu //ADC inout [3:0] ADC_BUS, - //SD-SPI SECONDARY SDCARD + //SD-SPI output SD_SCK, output SD_MOSI, input SD_MISO, @@ -139,6 +149,20 @@ module emu output SDRAM_nRAS, output SDRAM_nWE, +`ifdef MISTER_DUAL_SDRAM + //Secondary SDRAM + //Set all output SDRAM_* signals to Z ASAP if SDRAM2_EN is 0 + input SDRAM2_EN, + output SDRAM2_CLK, + output [12:0] SDRAM2_A, + output [1:0] SDRAM2_BA, + inout [15:0] SDRAM2_DQ, + output SDRAM2_nCS, + output SDRAM2_nCAS, + output SDRAM2_nRAS, + output SDRAM2_nWE, +`endif + input UART_CTS, output UART_RTS, input UART_RXD, @@ -149,7 +173,7 @@ module emu // Open-drain User port. // 0 - D+/RX // 1 - D-/TX - // 2..6 - RTS,CTS,DTR,DSR,IO6 + // 2..6 - USR2..USR6 // Set USER_OUT to 1 to read from USER_IN. input [6:0] USER_IN, output [6:0] USER_OUT, @@ -221,7 +245,7 @@ assign AUDIO_R = 0; assign AUDIO_MIX = 0; `include "build_id.v" -localparam CONF_STR = { +parameter CONF_STR = { "MultiComp;;", "S,IMG;", "OF,Reset after Mount,No,Yes;", @@ -238,20 +262,20 @@ localparam CONF_STR = { ////////////////// HPS I/O /////////////////// wire [1:0] buttons; -wire [31:0] status; +wire [127:0] status; wire PS2_CLK; wire PS2_DAT; wire forced_scandoubler; -wire [31:0] sd_lba; +wire [31:0] sd_lba[1]; wire sd_rd; wire sd_wr; wire sd_ack; wire [8:0] sd_buff_addr; wire [7:0] sd_buff_dout; -wire [7:0] sd_buff_din; +wire [7:0] sd_buff_din[1]; wire sd_buff_wr; wire sd_ack_conf; wire img_mounted; @@ -259,15 +283,13 @@ wire img_readonly; wire [63:0] img_size; hps_io #( - .STRLEN($size(CONF_STR)>>3), + .CONF_STR(CONF_STR), .PS2DIV (2000) ) hps_io ( .clk_sys(CLK_50M), .HPS_BUS(HPS_BUS), - .conf_str(CONF_STR), - .buttons(buttons), .status(status), .forced_scandoubler(forced_scandoubler), @@ -279,7 +301,6 @@ hps_io #( .sd_rd(sd_rd), .sd_wr(sd_wr), .sd_ack(sd_ack), - .sd_ack_conf(sd_ack_conf), .sd_buff_addr(sd_buff_addr), .sd_buff_dout(sd_buff_dout), .sd_buff_din(sd_buff_din), @@ -287,9 +308,7 @@ hps_io #( .img_mounted(img_mounted), .img_readonly(img_readonly), - .img_size(img_size), - - .uart_mode(16'b000_11111_000_11111) + .img_size(img_size) ); /////////////////////// CLOCKS /////////////////////////////// @@ -305,7 +324,22 @@ pll pll ///////////////// RESET ///////////////////////// -wire reset = RESET | status[0] | buttons[1] | (status[15] && img_mounted); +reg reset_from_mount = 0; +reg [15:0] reset_counter = 0; + +always @(posedge clk_sys) begin + if(img_mounted & status[15]) begin + reset_from_mount <= 1; + reset_counter <= 0; + end else if(reset_from_mount) begin + if(reset_counter < 16'hffff) + reset_counter <= reset_counter + 1; + else + reset_from_mount <= 0; + end +end + +wire reset = RESET | status[0] | buttons[1] | reset_from_mount; ///////////////// SDCARD //////////////////////// @@ -317,18 +351,43 @@ wire sdss; wire vsdmiso; reg vsd_sel = 0; -always @(posedge clk_sys) if(img_mounted) vsd_sel <= |img_size; +always @(posedge clk_sys) begin + if(RESET) begin // Only clear on hard reset + vsd_sel <= 0; + end + else begin + if(img_mounted) begin + // Latch the selection based on image size + vsd_sel <= |img_size; + end + end +end -sd_card sd_card +//always @(posedge clk_sys) if(img_mounted) vsd_sel <= |img_size; + +image_card image_card ( - .*, + .clk_sys(clk_sys), + .reset(reset), + .sdhc(1), + //.img_mounted(img_mounted), + //.img_size(img_size), - .clk_spi(clk_sys), - .sdhc(1), - .sck(sdclk), - .ss(sdss | ~vsd_sel), - .mosi(sdmosi), - .miso(vsdmiso) + .sd_lba(sd_lba[0]), + .sd_rd(sd_rd), // New connection + .sd_wr(sd_wr), // New connection + .sd_ack(sd_ack), // New connection + + .sd_buff_addr(sd_buff_addr), // New connection + .sd_buff_dout(sd_buff_dout), // New connection + .sd_buff_din(sd_buff_din[0]), + .sd_buff_wr(sd_buff_wr), // New connection + + .clk_spi(clk_sys), + .ss(sdss | ~vsd_sel), + .sck(sdclk), + .mosi(sdmosi), + .miso(vsdmiso) ); assign SD_CS = sdss | vsd_sel; diff --git a/build_id.v b/build_id.v index e387467..077f20d 100644 --- a/build_id.v +++ b/build_id.v @@ -1 +1 @@ -`define BUILD_DATE "241215" \ No newline at end of file +`define BUILD_DATE "241216" \ No newline at end of file diff --git a/releases/MultiComp_20241216.rbf b/releases/MultiComp_20241216.rbf new file mode 100644 index 0000000000000000000000000000000000000000..dd4f17ddd0ce01f74b278c66847d60904e898a6e GIT binary patch literal 3487956 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%0Dg7w`!$XJ5H(Y<635f5vxWnj65LiIsw z2-OFM%&m)|`_mEn$R7gsjY}ZGI6@zb(LobPQ0@pUC!8Vxp7J&_tpWS02PD$rNJNEU zKxe7GTXsgmAR^vDbKgQFJl-V&9wRa`@*RT@NiaMePb zKE018?zaKXvc~Ddo$>ixoIX=#U_Qp_8#HnH5DxDIar$O$oW2cHVEWEAur>+P2d3`a zxu3-g8Ldxv+`k4qUI><>^;2H}k82E%sXJl{t}!tL8QhRD2KD|0doO7DCfu*m;Cu(0 z2ZYz*gTeOGueuHKlD=CU;q9{G@Qv@gf5X)9jW_Q7+LM#t`2MNp5kOavzO8YPzS*JT z>P#w1-^`GNyX&)2`hZa@FK!i{S(LuDh;^5X{JEjIa=AFzyHJq6!731DYZB!yuR;2* zY$Ax?^vpo3G(SjRX0Y}&LHcsT(}*RQOT`wPY1H}=dx~7o^dpeo`+dKa3@%vA&5O~O zXK=ycpqRUEsM11oLHwDg0wP^Cr?(-38R84h_O}oouscFu79sNxvM&*!Z*k#U)ro*H z22=6*UNBoo#^>vQAlQm{fW@gCG#|A0^cB_xrD-T$!t-VD_v2>}3lQ-U5&4fYw92J^ z7oBgqDPacJ`N`;f`;ufs)7ZVlMNMh2|892c6-Iwk)SA*!Mp~^#?qzH2`h~*V&$kD zC|inYcDs~9f$$mtH(f!Pt!sZOHhVM40ECh#$Z3EGQrp$b4?g{iHyr5P_7h7%?oMzA zjUjQ)R8qB?q%$dqN(4CHOaO)$DvD{SH%mq|B88Y>oRj9P<>PJLGip|Kl2VC9qv;sA zoes25p+k+bnjp;``qIDO^sk+-UT2Yvvv5A63rTYL~rDF(c10_wNv^vhEXrK@X!0gv0pYD=lVo;DdyKwX`fAsy2x^tJ*$O!~F zb|tvtGDlfwoTu{2pOQpEIbATP2MQu$9w?IX3xGHdgCq?E3rIr3xeS+Kb(&d197vp~ zaz}TX7E&;QtG*<`g6h#|z>wn&C`bP6Bb&a|v*U7ePHX#pg@GAAszrX;o8H}mrT&soPW+*P$>_) zXsGA4)>RWxTXP8Z2>`fm>_MztiQCF}sP_#8qvdjG@CHV1WkA&H!1p!H9soRl3IJ>t z5WN*#-O#K@V~9{%X+03k`1RmwfAF*>L_yffDnNzCmgxC2|5zF%h`cujTU(<3=oAD= zMHpX+;@SikMW^tYW}QJ%U&x@SPT}Fj0Z{Hj5L8h)LLhH(VNqv?Owif-6vk~2aPj~s z^BNbm4gDdu=j7op9sRq*?Qa?z(VO*lX$R3W3OG%!9GWZ_J+*8&l9DrHIdY2$qMGZa z*pv`6IV>acGbWm0Wwl0*yO~OQ!?e+Zy>LZer3TBKGD>DR2a@ZAt{6aoy$1$OZw6rK z1jcs0#ZQ@d$MaWoqC04}X<78?x}ja*ti#4D(XtIJ@D z5(?@V5{+afC0|BEU8)fsKuE(n#buVF(KEzLXrQV~s78g=RZ^QdEr@2ML998FCMY~| z=4ao$qq8dgWwcolOxMH&AF@cqIf0UlDxNvZzH^hTG>j!Of~ps-6kiDd&BYC)%Q$o; z5t#AT9YG9pXv`1^x42ew0>TBAf#a4PZG7nX3&uL78DupHV|JfuWS1J+22!GmwMec9 z*=7?$S--;1KMUk=wt<*=G3)8RI5HnlStUkly?ubzZ?&MDb^;;nb=FP0aY+0_WT zJ&?usAEPyzUa37mmz8N(`Eky0uNOevQUI?M=+5LE&cYsVkY5A!dt(EQ>~wZ4>#Z#2 zDnV-?=dEmI%Mk@GmocNtWv^9+?(+4pg$ghc;2#x(u~?12lo;%*7P6HZUe{?X&xPj~ z^4_)m`LNL_*wYUAN&l3DJG(9d1dR!kACsv z&vYK#LRKW9Q)pK_G6ZBn6735TQ)Y2T21pd`ivVg(41rJ<2!vAY29^TB3DNSXbnBp@ zDvKe$ON=k!#eglnkQ%dckF$Zw4uJS1nxYCUcp>accoLYlg5gmi%DZ5Z9fD}3=!-Dv zvV7=wj$O2}^Wv?7WiL(#DlC!bA9D<{lF@?bNBOsU&RwivWa-?2TC80fKN}<4ZJj zw2ZQ~cC%cp!Zi`f z+a?jE9Q(LpABdb^%nfd-<|h%>JHj_?WONdYV)Io2QS|1YQyz^b5gI&_Q0Il2YryCY zU{q<;7_!|rogiAc&)DFjWMGTobf!5NWv0+eGvf~d2xWfANRLhRoP^ z9m!zv=8Wbt1|P=f>_vScD(w0}eWH6C~CfwOxzv8j?7tChthD2hDNf>)~Xf zoHpS+;3`WZz-CsMU~LSNJVEH}$dW5w@o4AupJLG^JJTI2>MeE6rQg(?;>WX6{Ggdh zv6Gv3o<|iqU^~gur!MRq=>=2^iY^^WHr+L5aoudxBr9sN9>GcF^)+N>W9?L)fs21J z|0yUrWK&Vwk)1EtwC-6yb^$nr<^o!Z7ZofdPopGKMS^$Za*QMyF%@O*|4c{ZnN*P| z1v?9pTl>1oCK?Kq6~!hR-+mSymqk6OhhC%_cMuaD3S|d8^jjZUHFu67p|^#UL+!9O zwjfz;O>f%HE|Ovtc6o($s6z5-?Vu%8$c9NxB5!mm?Nk#gk@OJ@Ou<-9Bk11ei=1_f z3oMw87xcqmaHl3z5%`%>l|vX11S$yZOYn~T`@OqA-m@zZ*$Gvr!mS-Zb%6wOl^VVg z4ddx2dV5I!oIsSVwAc-q#gyO;i4G*pBLk4AfnP9Uga)#GRd9(XEUXec#B0rh5%TX= zm!vg6tq~LFd`R|0iYgR3LRaA_x=m~8&J`Vi6}&FI8hwCT4IfcUSNN9ND+X+ghq1Uu zIp|fof*|@sE6vM%n~B%pDO9KV*x^^7bp6ArcURbm6!0awY0oZgUO~#CA{wMrg~4`c zDV*PAAd;aD72kr4jYk}oBNE5T|E#?0^cXAt;u9S0>Gy|yAxKdoS zEu>*wKlig0KY!Max7ar|$~8T(j&hvwKfU8gV&aVm*`6|*6V@}Bk$1nt{ze8*LWZ+f zW)UfXH3PZ!GKsPPrNOJv$Ca`3pwnRK2u$wNXW>93{azgT9~}aj2pww1W(yCBaYTNK=24!riSbzdR?rnBESVSEu;q;$=rB}g*$304Hc`eX+6D4JH%W1@v2)pf&2$$%1U zM$KesyAGnQTv0NXl56jE?!JHXH=eg+8I8sy-7(2k8}YFa`pnSAb?bng3P1?6Fjq#6 ziGU!C%W{r~6+$b_C&Vpzb3+gm`-v($BRMoKl7QGF9^6PHUhqw;Xo(vlArCCyGf#R5 z3!6<4DTjH|;CD{8F*>ZFRPxHWHKZ5$qeMVcs}Ir6s+in4p8ldAw;3G&>2ZH!wH%ONDRoJ+Y4q5U|Iqo)8`3naslzov%kXj13p|JEjYp3z zLgw2(480kBVABlb#!*6&=Pb;__0TVpx>OLL8C*{+k~W3A(m@MMTbw7%3=)7l^=frs z$5@N*>f79kneRQ7`{HYDQSKrrrB5ZS09uY;Lr_mIQ`iv{9N{Pyin23V3Q}+vSwU=f z3B{(cl^8(kwiC34P72pi)(l9`Qv=$EM{AFK;O{$sYyT{*yJmeh{v#Ti} zEjuZ51PG0XEsP*|D9qibcOTy$n*=3!-m4EBJLUS3gy?1p;lu_s*&;IML>I6SfT)Zcl$wA-f-kVlw1eu;YqAnH7Ms)Og4+z4PAIzC|LSMRea-maqVB3o&0B2*KVp%kHZKZY@9_jd|i z_zLGI68jg&at=*GAvs9Fq2x^Dv&{W%Qv$;QK}A_YMpWmUH8K%2TEh!|plX6w{J zcQV5O%&{!-L@mrPx%ReYIXv>lJI}r(^VC5_(3K60WJ+*$%BLCc;OF?(yUZ9f zghm8I%-oU^q-v;BtdgRX6q4anU@4uN3JinY=~#lOA-W0%B`_npV8(evrD%Pwwtdg! z_1}BWp}VXuX(k?4~s}> zBr8af&wvtNTg(pNpMMjayyrF|?=Y@dDA0}BB7zE%Wan=H&S$z4;$3mg~(G=OH zg#1daZ1k9M>J0zulQ(w$KF3@CZ1OnGMmlClW9IOR{1r8m!A*xjk+;(5} z+5hysO&6t~CdFz1zOw*egUMLSst3~x;Q~k?m@3>j{oPMHF<5d|2P`BSr>M8mZIS|~ zYEo7YJ93EKa&LUwqqPS*Bja&vH-=;*W8rWL;K`^!oLGu4;;K`!4eW2NESEXkZG~uu z@?k|>K#fjvG+H3(GU$+q0U|ODs6UEVHwG*H3W*l3cj13K{R3jCN`B|gYoE2_33u)@ ztF-Og`6qN3=99e^?G$GRLXR1nl9(c>tx(gDQxQQHkNp`9G3z`6aa?jvLr_x2PO(u9 z4X7$i8!JX%RLr|MMqHad=p}3|k)4md;3ly1*iD<4Rb2zQ_qSIh=&kBVr3J% zFwEKk((x%9HKaOB=*GdVw&*x8Yho|AfDz2&tqb5pc4P>_{z;M(mokcBD?DDKq%1XL zZ^iYGed0jp%|<-7A#;!(ch<{IU@U1e6GeG<1!K7uDZWeVxR}bt{ieVyB$`1$Te4h) z3ICL83S127bm{)g8;_rljCQ5Z_brg&T}MD7b~0#%md7(3>DeqD@}$jxg2xspkRO+x17?fB|> zAbxyB#D7?S{73og?58m1s0O$@W6`z2hAFuiVUlfBBqu-V#VKYyhNW{t$`DOrC%Z_r zkdrE=rm1!<0y=ZiN&sxhxK^+Ls*7BvDu{W!boBS$x$o-a;^NvNW4Uns#GoYF)8ykx z`!q-=tg`)|5aC1>DM2k#=Rf}a@zb7r{HyL)ZYYG3hwra z3VZlWhwv~@gAf`rsmZJp7X{EZ?vcpGa{xhp(J(H;9DC5I%?U|!5$;F{TXM|rfSvLE zFRiXC2yZe2#@GXRZXvNCLzx|ZOi2KE(-Mc%n?d`>}BvMqHzYM)lbdkz*T4dY}8C)6>rBDs4#jvs32pL2}UgO~x837V`&FP)( zjqcc5lPCc_CupHU$ypq^gCc&sXzAJkw7CR7804d9FZ>bI-B zKPaIZE-OonhPvEq_>^DEyi2eKxhq_vHJ~ha#${mi2Hs!k?s2?^tI86u;ozPJB|5^0 z25h*rDv<}|w!eC5RRa%z9Y#nvn7GGmehaZ9lwHP<_!ihs-Wj*yyMXilP~v{jl-->X z63%C&1mGct1MdvpAZ#M!z`YMj^oEg_Nce`4A+mWdB3_6xM}`ca-!y!FlK~Ng-$^LH<26;rXxArsF56QQASsN z8;t&XksNL_ksKr%0^?0EDuRjNkhq^Pl7mJ^xN7>kaRzqSGduBD4{Sl8iHXyTSABfs zmTNaOMn1mtmiuvI1c!;m2M})J+tGMq=Pf&D)&z?WFxmu)U$|3?h~V(u=;8(Bmy}U zqq_=oLAc#74^J;H_=P=zpN`{zx6GsUjlcv%sN@zGXZrneG$_#oURxM%`YVIr?&9>; zq4r9I6JS7uk_+UpWg7w_+%;619sreUzSxg%4QHZ$Vwgw{t$}7Chw>!iF5DdqH)fYH zl*95`?(W)fW;lC#tvC{mw*6YEU6{isj-$oF93m=g^;d7jmzTwwWgWpB9P8)>;UNYC zMnVwY2e&r*x`R2)f?a>)Hf25<%f2=@(kjQ%93%{daGwt6a2xp_#4Gm@U@BVGiV)rc zou%SA6bIJ(lOxd-Md+Vh)>s`qP;K>Wt=(R1^&bfEn*TLhgZBH{h5qXb!$Dr6ITR7i zA@KXBAVatTA0h;J=gmZO00Q+t*k}!GLqLkD9K^m07}JenPJ%f^(OeM%j6s0Twt=tj z?QGd@Tq^gO3;ytJ>;G@v7g$`ny0-fZyR*h)vOt$m-D7v5+v1_`{>4vno9;IOEmPkb zN5idcez{iSr^dyoX};OjFO7@2Vj1-_4c3P~>Z3-r*o<2E2CUHZYXQpH(%=lg*DW+N zl^MT?FJAGjM_&!q{HWL~`lt>f7^eBixajwnq-?%1W*ML5*4!t?{kgUu`F;A8?zZG- z(I;Ycrh#vu{gA8&gXAs3$HYlq@#%0a;y2NK+wds}K8YS~W!47xCc2pccgb&yExS{N ztbA--4h+BYW%0TIA4LPDxD6cI4~v`lusF{Ti}9fhzljd;U5-Ck3u<^92^`}a9F+Ul z22m)=^~zJMZ>lK zEzDFl8r!-JpYIg5tt-#f#`^K)&uk4J@J!!bEA^L)wXs5`IL*&=@Ci?8u+?1W%eO|0 zo0vI^@v#xU;aS|ADJ%{O4>qEKT5kA2w5?DXZ=MdJYi)lG26t$rg^!MAmf=I5)!T+} z#m6=8%SEd(>Cl1S9~7tYAx~7jFG7#A0^oN%(fTGnJX+oCAIJ^vudZwQ`~16yqLSY# zj}$=R84EDe2=5B`;SoNL+J+CA78m4mo}>iZo59$+My+&uPzKY@HRZ8PZKOpJ@F~*% zsF@jiuqhuS-OP`XW}FPu2Lch|x(HItsuTx;B0isbExe?BGz1x!^Lr%7@q(xo%kklG zR^_|_X<;CcN7SJ5zF?*R?MLlqxF@)dHZ1@nsSO>Cca}rlbBso^m|$^{Y3%Ft_5CuAjKdL}-udRx-r;Beme~|T zGCd5+75iucm>Mm2 zHvv?Lur`%Z8|HQ4p+}9Hg3$qb5yZ|@-#q*7XK((9d)8b^^)G!GX;a)=Mu44C2Fm)o zcmi8RNdQb2dPA-4(*YD$+r`K-=~3h`TN4m1=*Z&%h?O3qshr42l2U-I%SaBh{*q(= ze)#(vG6oOiL>xR75+0H)qy#`ks%+bfeWH-4R2m6DjEfv=ZJou`y8{!8_8!a6R)LU_ zjIn$H0Pco3A-y~r67>izMGCyv{>x*}yZ%A@_*4giy$eUlY0n-@?7$fV(H2UkXgc9#rN@+YRhD$X_7q#?61klgRBCGx#6*3V`{afv-gj?j?-l}>R6uzk zNV0rdnju_gf0y*A6&xa@lV!<4(*P;CI_Whz&a5%gB{0JUN1u3h8U%(UFhzJ2f0_K9 z!>>Mk$#XyYh-t}zElKC*fv1@XtOnc-djj2N?TA^{lbnl@BmlNedI$kkfE(m_O;8UZ zlQLT)H8TN~^Mywf)kFNshw*!l9NqY*`AxA3g>yvsI zydC@4^f~Ytf9l7w%~G5kx82oR0jSH^M(HN5WbG&ckQQPTfzq*^2#${{;F2JjkukRX z6Rr50p8w(B>#VuOv?PC!@B}kIZ5Xz*jBRUqwo=CM0r~CtFRXwN7LP_c?w}oX)1N25U_kz# zeEx9o?6XgG^3R+8LdlN5y8hTRP)@DW4z1iy9LtAP5b83v#@=mHQ#KUlLmdI5k(i{j zdT0YFHT=#198~AYlA)h{=BJ$-?O%@OK$Rd8e+pzr*7+ypFI)EqEaCE3G60pUODwW$ z1ZGx}qQp>Z0I@BhF0k#8LDu>`WacN8To(mX8+bc@|EbgVcaA;~qZ{+bKp{r~p${|c zHe--Qdh>g^E)0fSIw`Ru%AjrIQL;VJh(y)AB57L#(E{m6o$5leifRt}sO~!Qa~2qf zKuq6^yIJxBs0h1X`7lD)LDdw{Fcoe&e$k`7OFp1oqOp8-K^9_rCrvZlRxX0f#xNuK z)I~VAJh6s(qYP%^l&)}16da@3wqe$6ebEDO0>KbuQGsdT9Di6h2rG^a+#d+tgA$Kn&9=v_4?I4N!g+oKkB-8Rwu^JU)GA=jDmF`els707}*w zszS^#+UDBrg3`NZ05SV)1vcjyfKa2dO~%=ZX_`=oh?m$7I6q*X2XGdsc0@Ag3EZ+E zq6g^6WsJF8|6d+I@;9C5|5SLu#n=E}jFJ91A&?*|irq3v`RNvf?gqA(^xa{(F6R3} z;E?@=96?eCBuo+23}o2ds9RUybO5cYA^hNp1NXmGqWl=fO64}6C zPcpi|dvmH~H%yefN2F@bmd@kd_#qE6{dhp3yP z1r#t}44kCN%z_$lT*ib?loRW43$W1@dJ_^UjZv)s<28|NbeX|lL@R#Sv+INIUHJtU z1hA9d7Z@{mIxUp?xJ8S>< zPX5JiHtb5A=c%Qzt3Krjy6b-3a@sy(`F~w{sdk;Ou3K?a=FqkFk2D)4L(XKHCv(!_ zB@utsypye4ELR~EQ5*ac(%l3U9j&y&WxUQSUU&8{vYRh-uRknII3@CLO5BCJ`W2wR zObcmJcWy@=utm#L*cZrh7$&a`E@ex3o9}*yo=VK`KH5sbV#7V@RpBpS^gqjlK<;RQw z1@REc2*#=xSke^l^00*oM%%_hBQeeSK2pfQ_YoxZCGNhAFsFM^rbo>FB>5F>n8;d{lf8KeUeW9cVJ@8W;xCv;1!5`_2L?K~LBPT*W zK>P5kD>Dcnhdl(ofLhxG)MsorC=bq#b_KZBF>8ssdy&KI^<6ZkfMomEmUF!*uWz%MS zg`2e$1q(265X*Ho{q86JcHf&E8JKfMx-Zg%i?9^V58OlnLOCNk;ahuUbT`c-C|pb> z4}daHfLoxL6b-SFnb-^1CUNu?v4l!qi5v3Q zVjE6{K=cvjYUsajAXkZU45!EtTn!JVFQ~Zm0get?#c>M6U1!+6yJCzh~T%VSajjx{Zz2W8ZC z9C>q`p<;bl4r$T&(=kkeShq+jGFu&^$_)vylSwQK8pFyd;3YqP>>D5W`v2>~0AwEtmU=si)wKul&nSi@2Gu%lEz_MIR{?(y zN!mfk$#zwpDfW`fx1nS4JrUpJ6f{g(cgcn^J!a^V9p{7E8tTI zTFZ2m$Rx#1YKAz{D2eRywkHUEBBYow*^>q>ZLc-++X)U#B566EcddT&?7C)V)4|6s zTGsi@Z^uAsYe$n{gjlC7qZdr+0rXGd*fZUi#ABk@&}joOn$p%_9o9xD8N4Y88&<>Y z%6wVA76;7llh=Z+fdY-c>j4ww#ffVxnN~m_qup!5EW^mx!`vuv0|P`m%E^f!DkblI zc~Y%a@Ru5hg()T2VQ<|wLcLmzRdQq`lzbbGG8Ci(%t|r8_JFKP>gvFb`dZfVD}AOi*N{w| zS)m*-XMKR=F@KEsT4Y1t)Yw~?^G4-};S8wrKaU(=kw1K;J-O?`M@!IzH36)F-QgVm z@$_hzHm)kNUsc~}%@FBD6Xvp>D;b(NlQR<-wE(C&f+Og!52s^w zu4a949a)1Ts!|Tn9?IhCNqY=cDX5o$647|ZHwzH^VAF=EopVac@|i!nM0HHS>ui1V z;df|qurRR4eAnRT44_V0>Zc=4c~^encLNFf>ftuYTFUFi6OW)K+Yi%>V%`UPWQ*%m zMTj1?gqrR>k<2ueL!{?$XokqzrOHkcVM0vPgHZx!CJ+pboY#5#7xw;j_W0N0G1Q)v zBCo)YHxj}$dk}b9Vu4|RMGfuC`+5W!V#AWjp(rw;0D#nKuolvDBuUyBhWbmmN`c8* zfl5vYu4!x&sGQaUP=^6#PfVCBXh=mEG{VRWIVVX;IOLggo)p7u&>ni#-)uf3d-&n! z8kE#cWUzy;6tIdKne9Dpq0({-j%gLBWf4X)kf0P}BF97BFdU5jN&o=41g{_~drI|c zv3%A;SXzYyx;t<%m<*rNqpmSicX`@`@3f8H6OO@5E zLs@N>1*BxX0JIr(1=b7>pNERTGR6ixNU*N^W(uykIbkdg_#cHA5 zQw&ez&%$X71|0!2;$I6tj<}?W^bf2J9$qT-#L5X9+D&<7xH^mpBnTZ5PuDZt- z3UXn!SJyH&W=sM8C#7Dq8$eO{#T&6~BqPI)(M?A16 zNqDu0V(qrZ5tCX{PbY1efO89!PP(@xOjIEXK%O!tlk3r}4avGhzVnUo!-I>y{zw9( zS+iutqQE6lVWI@=$B894qJ~&CSX516So9%G5}89Q$!JZefxK~OkV7DXLJDc+T9d%Q z0gZmnP~(jxj2Wbh@!%-vdD(n3gYvN8EA_yp0VW0llPvT*g_>aFv=h* znZ($GYBH5fK{kTSgL}oXHG*J#J!cE2BkF(zR4cD&u4JqqNZeaVkJ8$%16)*~2dUxi z#+SUF4QS31FNrWvW&*n3(5zDvyHBLD+Syk>yJGXAO|$lM8Ry8%*rNf(H)BZ=r9=p4 zk%%fF%c&UcT@_tj)Vem4RaH?UUcixcRb$t=zm3aUP5yb)KsXPD!x)qwouH3`6Mef zFO7WUoid?VBx40|>~u8((u-CDKk*<9(jWm%roEus9Pg@zpdnbs_%v^fq=r)6K=z)q z{cD|be`4!X_XH!BjT6+PI$;7SB=O^5Nhu_;eEAiO$mCe-6H29)tSokDW#)@~{1r_! z#RF(kW!Rlj38C!~*$gSoPo4FDw&SMU*^k=^AT0190g`FM1zu7K*Cg-Y)>g^PR;>6c z?R7@6DTj}D+eU?5n(+pJ$eXnE1(Q8Wy+Jk`D47<5)^))Vo&)NLlS=ooLsS+BR!wh& z_+S3&p~;gE{lF>!98yLy$|UkiAqkD^ES_1TfP_;th8r34luU3%70CJcU-+~S6pXed{HWPZo)IA zKr6c>*eS&g4S=B>>PRVEkC zEx-nMW~^C*Y8-QnhlN0*GTae=kRtKC-F_JmVGBB`NJDnWM8Y2tk{_)(tT;!quTq0}o^#2!MgD6#k)tgs5^nw0xN;kyr;=yKW4(2%7SAtnoB$@@4gi4+ryiPF z=fjD}N8>=|_Kd$T^^8Hgpc@|96rKI9%(d3>aE}3l+`T?>rY)Mu{4USdHesehNV^HK^tO zuDb-a+`wRr`=>6AG{)shiNz?zS0c_JLtdVadoskOk9dL%ak+ns#5@D-p^z3L&V<%b636O z^l`+6I=E-sy21Sj$jF<-w;bHR2c->&yLGVo&8h7^^f+``fFjh&+lBk53J;j;{o|L_ z`$uM0@1GiYK%#JN`>+NH9W+5L8wj$=V3rLHX8Dzti4ltXE5X|sz&?30_bmrBrscGW zX?Y+W({fg0T1FKhKMdU(}CQ>Q&7w{5o~TqFkjwFg&iSan%>kkKLc zgGYNuR7fCy1<@eCP=MZWze#wNAdy#UtjMb(jc18KmJdG!_03LPrtvIkhX+^P_<9cV z&Rf<@oUZra^Z*epqcyzWx$|xl+42AbT{4tq9f2+%UiBRWRx=STTPC6G>DZbNXfn~yPKly=wKK`zg|9X|UbI%)zyun%lhZF?F>k10FIy0R^5WH=B5ZX-p45NNBJ=3V26NPsb%8Oew{ewaA{pb6w+SGg|eK=m-_wNrgG5VbhTvyiSBQ{V0Dle0c!i2tp`8#?{@~Bu|G1y4QGl~ zr({a9O311W2>q<9(4s-Z!t2sf`g|-HP5uE_WTja$<1i(I1&G@X(-D7-;&v}SPR2dhn4u4-Nw$L6e;_(3 z3867}8_Yog%m&y4%6@2q>fxjGvCNu@wb2}xW>HuB3j8-D=ScL*Jq)x%29QxD%4S8g z0lKQq)bM9~!5Wt5c8z^wCGK4OhD}dqK3F$0gJVi7dl7)R7eVI~fr?{MO$y`87N}B< zvcL@ubRbE!i@zA2)*U4hg^?_Oc4R>Z6%}~Sj26@wMc^>u7z5}eUN|Ka6h)OMWTQr>spg^|a_9WIH_Qhk1L~G#5Yz%=Snlv^?_1Tju z-^VrTYdp1UYwzCotI>-67`p=@ZuMM%`!3TPrR+w5uv5vRIU7i#0%=cZMuM`#kIj#E zDqv9}3MKoD9#%({Ly5GAlGqgLJ#P}fXn;7>&Ar=PmmUQL3cx>RMc0^bszm_D7I}5( zjcQ&~+!t{j0V#5-s=yWz{6eMUpg}Wa9yTV*!;N`j!|>X*8m74pf+ArGc-KGt)Wl~x z|M)PGm@xAA`9(IyP-F=bYImHeGJG^iopIn6+gq_X*0}ApLvU?S#ae?3Ezug$l`khe z8L*t`igS=%3dNkE01UqEDgEO(0$p(gWv8s#py&W%j`4+JPE^Ta-iEnIQJ^r?l<|6E zUmiPZ9y`D^K$xNwTpWR9_$_3hQd7;+-QItD>WP2rT(@2kNKu@>2m-N60%t~97m!LR zoSKzFhzhQvbvK8WNJ#aHgM}O?hvl7e7BDyQ5(;JG*_S5cvS=r^!*}zHyuM*Y&ibSa zC83Iv!5!kCw&p2!5!58gg-+D3hnavAl5M~w71E`p01C%^mq9_5bhhG*CpQ0S=h#uo zfHW8l%q;WIyWl{zTHG>_o!;6k4@T!Bo^j9eT5(Gv{_!>Is?lWoW##E@&ALPtE+FD@ zaf?Jies8NfGvJpHRd{tXx@Oz5(s?&DhpUAuf*{Wg4FWQND9FX^WUW+;inYO9*gu14 zuC?L?GXrzQ;_9t_IT-FQoVpD?)Ji50@^Jsm8Kv_sm^~AIxs@42ROV5?+b8!b!_(v&+iE*X%*q@Kd)EH1po#@>(l9s@%^G)h7Kb zTk9@}CIf&5nvp<8S`grC5TH4*?N1OFIr3+kMStIFbaYL#XYht5BO`Aqu57JaJy^(% z`he6C_qfn2kf<3we`c~IkSz~JjR#gQ-Z~Uq?GL_S+hjDhJ{W5dIK8#8W;B@ar%xHY zV0NhCQ{gb3ybanpxM|{M1K zDma7Za6T8a9m~L*(EH*IV%R8rHPPUS`*QHg@X0-x+q7^3M@cf?7XXJ7j0R4eKD@rg z*5;W-AWdX%fK?q%ncZVX;D|1(nCIcs5LwwsUY#<1E}0d=0COe886W>4TSi-U$ycV1 zJo(h|7oW2GcKbUMy5*XqS_(6eUqnJHs)8zAn(>zN>EM7@EO7nfGKGJrV>eKfQ6Ed> z2O!ZS3V1@{HVdLrkp#S9htob&)yvOYs6RB7eF5~z4k$?PB>KRb3f}3W0UjlN6wUsM zLWv&fo`_YatKoVE^+0H}P&Hz4OYaeYjt&=1$PSC-AsGm8ABMzDDS`CRy11#(bX2I| z(spR?6N9hrG~7pe7)$Gi7hKsO2}C6Ous0yHfTHM7vU-8^1`Ro2GT96{l4kNst2X9J zM?BQ|g31L-)-zp3eR<1}R0PA~;)#xcAP;hOWz(!!n%T0$Pm?T?WJ0GMfvMxJ5QrMu zvDbOmYnD9R^Tl^bJugOXDXSm~LEh*hGP-j?}}R zdH{=>3??hB8lL82Q&s5e!K;bc-^q`*&%w82c$DtDy!fZxaAOE3IkWe(QwY z4YUVf!JNg?5LGA$x@3*_b_X9VyX{pj#Y;{C&;rh#V?q?cl3@ zSW@Ji0b=Nx4`Rgwp(iW@I3lSP(-*<8AqLR-C>RG!@p-b6cy-j^S$cbXt{C=C%X)*g z151TFVxs@C#YH|MhgPw>7xxAV>J5z#ga@QXIUmp$GP-RIkDT+C&Eu#1hXa5!rIbn0 zpe4*@RUvg{vdF-Y(1YmEsZ-Y>D4w)v$ru58WzxYSLv%O{fg(rk)1XD4n3S??0~tES z>N`?~MtNSh`h-Ym&Bn|5gM%oPhb1_2t5HFrS($|y@Q6EnRU$Qw(~>AuPfNM!UKTOi zRV6YiWElG4sT1_HU?`$MB3yT%D`cQns+}yz>djx8%I~>!_ivxF_g+x~SS#R972q!s zoVO(#O%AuR(>?&Bl|tc~=J~}Nnj!vr0{*UnUnum9vVM#CYYH{L6ci)u>B?x(Y+VC{ zW^_LO(!v|?w;f9OTNWAo*@&p8)<(GxWPDWN?}8L&&JRhpJ_ju9e$nh2{PmU7nxw1! zNLhGl&2-T z&iDZ!lzm+=**{vmr!dnH$ROC9LgDJ-J;iAHZXkhLguhQy#~;7Aayl2SEX<(0;*2QZ z%IT=*o$n`i(?;u3JD&5C6UlqQZ@MssBj>y}tPWB0-I=80e`fV`ANd;6UiQhVZj3OIYEHL8<#@eVPWjeax4qv zw4D5a6z~TkU}7QwfeR_70hdOuj?A*sOaTKE4rD?0%D=yV#narp+(|Q=wU404`6#4a0B*K~3?nS8$`gDCj1wPQU<+Yo@$m7ouQgm4ipl70B zk4Fzft+8)(s7{)jeU>WuNT#lE!dVQ@VV=NnMng>Z6cE#1{ef&oR_3Q=yH5<+rqW}} zbDcF4*rwL!>Oxl@=b48s+^3FnONu|lSH@@X{adly?-xG|m5N_M2b940B90u#m0Nys zE61mQ_Mcwf`SOFrL1Kq?-9r(&gdMR0IdQhJT4`8F7>LX$(4?(ZD(cY8DV3&3ttuHE zD8RTZ8kGWf5^Y4kuz6^d?zqR7k;U@G@$^Nb9=td7S-~fRR1atxg-VVZC6taohjyvs z6ZI$S9<(_z7wfa@_#{UuAabl_O_S$WDQ%j~Kh+gx163y-`;m8icjM=KUS$79IjY4} zxJ$qaB+68MQn8%G33ZyeihjBKQ+>LzfI?w%T>D6gb6=)>n8!g%)dKMWgid8Pb8IKu zX95Tz@LvhfRH?<3Mxi3|5psrj_+3~}QmWE5^2(A}imFrwz^b&{M6pkc7Oml40?&z< zu#va|?a)0>Qev(6w*V+Ah8=s#!Jk9>QlgwIGRJuwkz>erJS!F5+f|{N#$!69epj`$2 za~?g1kjy}OxG4&UcUbH-iO}7(A}I!%G3_cm_FwjN&RM1r_`|&`LFNp^sN`e4VT!;}6HgU_40vlK8lor& z!m^?&ec*&g9y)vXCr)~7VU-&#C20MBCF@iZj|0s{7GrZ3 zwgj0H^w5J>X5beQa0KHq8lGgg3J4)%s&u*U8SIfw0OC0`;8IbzGF!rrPw=p(Mm?oS z4jV#($L&%Xf2J6&awji<%*#f0v|1|jTnZ~)!$B%)SCwS%hm1m?b^Otjw}^Rqu~Wn@7SXI z7vV(MKp*u6{;pk-&bbiwlp8^#4hGtVU@UWW*o$Qp?syEm*V~gQ;w>|udcL|=uZ{JB zHLC2i=&@yQ+X}e5_`xcNtq9|Q0K2YWEC8Ia1fzGajz>UHBXp7t8bXlyMRj_6EJ)amc{Q#bXdl+- zyQzhL{`t{A|C`RxQ}Yd-hzmiV2`rvc3t|7dbf2E8>*>VgJC9v()sH&o#KAX=|76qH z9iqSmghS1whU46w0_6&%G?)N&k>*WwoG~(>gZ&fL&6S-ATQC;2KrLG*iS`7F09arJ znZu@yO)g+uJ_C7}CDgPkin4eZR2J+OZqqVF-27BU?gn*Dv-{x{%^g z-vEus!x6(P`4SOBp?fBM=9$G(gIXZfayk*N_m=8g35@ZeVTU)V*I5^F*=9u+Wp9L{`(DaHFIJ1 zEb2UwmU&A7sS(0cL^IzWXdw^pIpkFYcbJ=g97$j=^i49H#*^B!7$5(FGYmdnD#a!l zSnYzpGQSF{2bB9=&@AGwn)dkS@hUs?yfgB}@3%4@TqFu`f`k=oI=X0x#R(lR<>vzU zP@X^Da2pM@2$EECUae5czfc;>%O#Z%FVY@c9uAfTRV4#%Mq>Zy&MQD*o6+_pq7%>j3QAhf(RS2eY8 z8_)yYgsOdx~&O0cBF z_B3S()U%8+LO*ysad@8`(62lC@(pc@9xC9rs-wI#-!$OFjjE8M?`bXeF4eLJ{gpg# z$a_I1T1t8Gh`Uh9(5$@ki!Y0cHgZ#QX>Jdj_hlmdBdubg(#S;7(qcI;=-2>joPjWV zt=LB25YJCg5+pBpYYW&QHyZLNOQZoYpA?aJz^wAnL>6D#@~>e--}~(~-+Ni-!b6H9 zc&L_y2ROLb)>bhjuva8`9`99r%q*nh(%c#Fah|Kj2vqRwg?e3DGiKl_y`iWQ;JBA5 zzO=Sfh6$$C{4@KWMg~zpg|vc=Qy`8bo9n$UgoKa|5}I zx3tBX3o1VRLnQ|Y1{vh7N-Eg>v5};z&9J3^;hR@{CAVXpnO33BJjDoG2$_h90703c zC1nm17;NGn*Ci6M+dG$`vRI>cX65KFP`RLN3e*Bz82;H>G7X~Qir8VxR>-}Qt6^=z zKO|pO6CjKlRxL@?jSM$vKp(1t5bwyN8zgzkJ}Ih_GIq-N&52n&en3ma#PF89>frG6 zj(<*C3sT~ODWOZYz$l)uz}+YH5Kr1f8>w(*>CBaq8E68PDiYzoR$5iHP@Lab)^s)s z6r1XdQ*!UZ&nQ$S0X^`7;(2fV;pg_ByyV?RnU!3atyF;tpT_}$yjIG-EPt26z*jj( zV8%tzCC&$P7#~USu^$_P zh3TFMJ`1|mDO1E0Km``NN-^K4U@meCfj^avV@rgGB2Z!9>=k_l_>{gpogF+b+)W0U zvccn6mc2qHSD?q`?xsj~n1V`mI~EWCE7%S7=kf6_eTp|U-QNN+U5LvYKl1o*edd$j zIYrxe`0fYYLt-wIqXHC#4I70j8oS`{%{2L{H$-)y1>7d>hYX=xZUsw{L9WLPJP$Vd zFmR5;QG&9dE6@8-;geMv9lpPSR(NwlrmGOdTN(oxM|@fY!n)bz(+3EE%^kX>Bskts z0eE1{oijoM$p#u)DvsmV>qd^S2B{GhC9uf}ipc<-jQf>rK-1z=462m^F=78VRO!XW z;O(#CNbo?Zk}EZlr&!)HY=eey z(qg$v01~+AtL5=D4$WmhTNR)vNBH2y!@SQfB~3J7m-zXd4Je2d2{NfF&tE{D^_oy< zE_EfsutLe`@)<0OzToi~E)J-Pb&474&94M`0bA90LwEfl-lh53#n)Z*ljm-Ju{{z* z+((zeBJX+G)lnHWNEM`( zbNGpmJgUrsLR%~WF~pZx8D?0Gb=fP6s!>)ki!e8@K}P0^{KuqfU{1V(szNLo3~=eg zjO79)6l7-evb2~Z>4wiy_RS!$0voTFWGe%Cue0rUk5_xY_}@sGiOSGT3%bM!#upXQ zl(V%~DQuYGfe79ixfd7Ac;OeIWr-oKpw>Kb;M)(Sxn(3BX5)>W5etfXUkoJP9J7r@NMo|b zBr!R5su(J0SP(Cwpt8Y)KA1#nx?|Xf1FJojva0F5l;pyUZQ|{H`P;v?X!CY^7N}%} zA1py)_28GdA;l{X@gLH%?>Dm*{L4030;2a4ANzkizvnNhNXzptg6FA=TmUHw-1fq` zVZmyNtyG$f005Hc8nce{d9o^K&-)^-P)K+)0S9k!+c=8hOmxYf&5hp8H`(7#fl{er zTWUrQ+Tq}s8*&i=qtrDwd@?1l#6yh$mrze_st8Mm*b?ZgbUZ$Ulbx_d=+c~U%22r& zWidW*?2}pPP={WPlK2n`gyD&T46O_}_~4c6($W@UV51pZS=Ax`!c1MqRel7)H;Isl zI}h}M1H?cc#PDN?Z=D4B5{4jmj#weD-{1A)hflibk~rKmu;!(uf^Wd0Y;J@}pUD8w z5W>d^4AwmV}U<*7{;SFh2Z+QHpQ$y4VgsnAH zm;xOqN@iP(r!Le6*LOJ#)V$FKYWwn)Vhhd_zb|>;eb1r({N7_m6RIgY0YvLb??(n) zM=UJWmD>P;|Dkh%(Gv}^lFcCrZn)|Yx(w@+$>>m&g1q#M<%QN6L4rz-8z0pR<%<(2 zR?-llWwgH7FjW*foot&h(>Zm;rghIb{5F|5f@DSpPwSe7P<0M4Xr;>fA#TjDRPq8J z0TeYq)-LU01-v6ApjEqG0$RwybcCc}iFBH?@=GacUY0eVLURKtTQ^+6493nFx-_q; zC2*groC>i~EVht9lhsqDmF>K%aM9mC>j@D_Dl5pMXLQJ)>nqemiS0_-NDgbF2f&0Y zVG|4~yBMqw*=~d$3gS1RH=|U5!7q8M`ZNz8{uc`ziTNrCz$O7Pp$3##1r;=i*ns~m zHb{YHAkX_(jjJ994au?}ZEIv>Y%ZGa2SfH#V5j?QWy_^O*ACi&4tosW~#2mC!>+VQrN z&pub03Zh(yD2s>LSyZ@WL!>!TF_@Gdl^jY09? z0h>$faz#gVutG&%|G}sB4t5$#1dA7C8C=?YS+aVuzBB={Svlp{0yL+#KmZ>DAz}Gt z9+#y#mXS(gE9?MUdSOUcB)h#M4s8+h0rLZ|$MQxzp~M0ZDiZ}#fPAn%RO&@ep?$f& zmW%+fGBj6Q=`uh^lWeP~L8je*{@B?Mbnbalt9Z48LCUI`(h#5#IS_HstI1xmIx_wwMPW1{uZb#6zW1uBiY>lI509S1UOIkxs;8f_dag!KeUGCjzQ* z_iaOvt_hp0>g_8M1vY}lq7Rf@np;-GV0`bu#+#qD@j>Fbqz@IPXqAC6gI#l51zDCF z>`K*oByTE=!Qu@tgM!}Kqz{W|B~w#f0ib&@L%0Uk zdeFqjb5)ZnnIVWce3C&F} ztWKq{$5$5V70TjW)x?1nW`+#=RF3zmsf)gxU2?B|AVkZiJW3K73Iiuu$%s3IG}v z{}AvndqIFdK7)UkV}4=F0#U$Uk$r&eIc_l`Xu-$U?Sg!9X#p!1O5!ek$|YIc!6A_G z)GRx_zQ9Rez%fVgk562Ktn-i@Vt*@0EMIY}T z)XGzM$X+BO&@RZRBJsP$5T1tM9~iGSvJ-ezl&@qfeqL5=c~pX$YPNx4YeaZz&_0(& z=q>r?k#o0nZW;lfOe=F(2w-6Nodu%G`c(h_<@mm%JogfgCQz~bLX&*@ z##bxw5{lpSo3MrI1iK9(ItuQ>Jb zM+|fUb5}xKx4;{8jz(xftqOx6jYX;lx`%*pXW$#7;)SQ)U0gYptwesVL9@F{><`sh zoCbY4=+EJUJG@qS1@wZ=vmaJ7=nCV7wR@_8M?qnxOm*RFo0IUeZ4Z9u4*Od@V3%fE zoEzYeXyLj5#47_WJk33+yyBI|%jM2T-%FN|xS$MY^jR%W!9z6C5Sx}ESm_zLGR&}s zy-a4fI)L|nv-rIb#4(%jxD`H-wg=4&fly`Jwjs!mhfG7>D#AdbLM@7Bspe*;a`U;~ z5HyD#OW>SOa-j|%l|49CkmXW%Y7W2c4@8`;^7Iz`QOkJLN$o)zJgUR9;TjZ*&phuc z``$D@qQo*64YYjx91qRqK%|C=lvzp5B5a3W#9wI2L@3sRMs{s&6gVrR0q74O66ENt zM%#s7S-DhIfrWS?}NYmv7&GWYzZTPdm1~PSE4!bsMievVGaE zi$8nTvF+uJr6X^8=ws^vTD)x6`Y+sZ^dW-I+VHVe8>imA!DhxEy<@|!RYy16_Nv9Z zEI{z zfA*$hpAIg$9b%lda^qjVbNdskw(nYhR3y8YAdzhSQ^?&e0v)?!<;I;RSKGMriN$B_ zT7T@0+QwVoz2QlUbPOVW8n=&)Q>4f57~k=xV;gRVl&g;2zW$=^?>_AjN(4Fn^E%WB zXaF}6=tb*LbL;v|4?VGdF>@H8cVCK1k>{fumfS(mh9_1nUIHnqyG(BT<-0aO9>6dL z<4?Y6@sf|p0PVW?*w!~~9L7+A!>wmsGO`N-ZCG;qkqymV7egS;t$*r{l}mOW+3-G! zv2w|+PiU@&-1uK&Xzq~QwH%~z!WxwA;y<|KqQy^8wjWJBaq)+DL$>N4+y>S-MgXn9 z6|(JIe>QSc5G2msT75Bw=w}?FJJ&z4Y6>HI>*fEOwYLG2qdM<=t6L3ea*21Q)QlUD zp}VPp(jf7njI)zCSyz>+MQIqJnPI>aLM#x%nGkF+cD(F*cimO07L794pn#WWlU$H2 z5+TRoBiJF{-1Q8W5_!Wu1_BQ2>=R?+&GmI|mO;i|!0Y(_{%>`UgzfCJ`#krI)P3rF zpZC1y{W_=KCTZ^V{j88BX>L0&d_qZ+JJvrDy>U}l6M8&)W9;a;pZ>^w$D?~$pnGn5 z&&G?lut3b>g##By-!EoH>^q0A(tHkFILk<%J-p+gH(PVWW)AQ8?3)LQ*mlJj^vvPy z_kI4rcOJf46Wf2WR_MKlZ#m=j1FX zdgQ7n4}RyNNlojGgV&sUSaY~<`{CCfoBTA>dgI{axetGC_Is9e&luCX`i&_TSq{d>oDeCF|;tj=~;=kSGJVS*%eKi~TP;j6ZP=JBgO-(ptVANssS z=C*6J7hc1p<_^D?2s0t_Fp-b_A{?( z>wJr4NiM#RrTT-}9eZD!-48k)?8oNb{M_sBuAjEUjIt1zXJ!w1kKP&2ot18Lch4ka zrODlo-RV7dmjB7x*~wkCb@A<9cB$Vw%lqBgvy*4s#c^-#?f!UnPSQRwoBI2b18aM? zW&0EP;<@3@_JOmyzw52tpRC=NUeUVrT)!62EO>8E!?WGxD_ZWk{y}%${hs$rNjQ4u zwcbebjjVLJ=l)W%Y2%%fvj@*!h%Xqv`YJU6LbJ==|UF2@(T>4o0zSJQax*;zk+{Kw7wPhHJ?W0+q?k5TKa^EGvU<8pHT zru2^Jg1XK9u9{8$kat0SZ@e!(G5fctd!J}B7Wdm}@pP`au^X$$V*X!G z4!Rrj$?)+zE1yX{R{q&!znio4J#XLMo!bCFedBU|e)d7%dpTw4_sY}NWv#XTZQ0k; zIdANRB;9#ua=3ZOJMU1^-j@#DaA$aUW?^#EFq2Qe>A8Zlh|ar{-D?)foM?x z&VHfiS=>Yblio>0I#6>R9Y$ELKd_ZO==EcW14T@73xbve6XeiP#m&w|ESErs7-k_< zwn=zM1cmHhNbM#fP)cJ%(v_qjAxJURC@#s+npnB@p*bazGWsoBYdU9B3i2Cy79RM$ z+n+q;Ki%1XLTDf~`Z$qAK~pFNDI+POysv$CO*JIv;W&R@fMr?y3&wBxYUP#eR7OW&F$6v$ z2h^1r%_+3MBGSoz(a`9+!q|7d@X6zEeColrhO4lOtOdFVUCX9AG0VyF z#W^37Yw8|`n$hYgFSA71W<%J?vM-D!2LKnS3Cc=;q9NgLaTi9KK*paTt&+72bQ?YB zseO$A{4k?&A7|M*cemaGUOxoHV5$(cLfqiX8_Gm^2w7`R%jSfXQUO)6Tj^5pC}5y{ z)=wpELj*^B3g!U0XfZvvkg5&hYJIi+6-=3lpSXuzzUf&9_wSuz- zWGyI0_RjIq{kOPpd*!362+UH0NJdvgD`nI&1TLU}!X%SkUf8yYG@(~7y>5r#+LQV=HbqZJy0~1?oa5)fY6enL7l?rQbTdl zE$0FWr9i5osz5iWVC~JJ_9q-P2yARt6s&SU6jgH#-!Zzf-9{j*TVa-v%ebPg&uY|Y z6}Fr$=({KT);77#vzS3<4GC_}ui{d#0Ktf|QwN>~TL<*CvA&P1iW_B7g z-oO|0Hq0^jnI%a3ybCavt*_~+Auw&|bk*&+r-y!OaiF)Z$Y5-p*`iQYarbogXKXYl ztj#5MT*3Nu6%PeKZl6Fq`VTT7SQZH^k&iZS>%~Y`4*$X{?NdJRXEdsCuJ4scho4Ay zrAP7`4|pRBt#j%dcTfIdns5G!J3PMIeP~zu{?_EaP5wC(q<<(qFy1AjwtMD3j=Ua^ zMIV^BqV-&O^!=iITGWF$G5+_c|wn`i&4 zjp^i-3md|#-HY7Ry~{g08T*ts;hnv(ad*_6_2}d4t>t?CE=1U|<`bFZ&klP(kCl4fJS9-&vkEie3-=1CA@O31h z{qCLjq)hAJ&$M^eyt8i}sgKNilef8t+Q6{BruNdk8si zqCMw&YkkH}`7BkkPZw7vqv5`^-rbdMYefwG9DifFaONSeOX+otVpqB~JGkj`(r?_K z(8JLh9gu!=`t$*Yjm&&Kb4@2f_-9B@-R_^H-^ji`_teCP&+UC>)~{XbwV!wY*z3cf zbw@llvv79u_uYl|fAMDH(M!E^>SNC)kEQu-(0s zc}Lm@JXaVYm~LJ3{`4sFb9nT_h`xPT9I9oPd(Vvg^3A{aVlp#z2fajN`wbdNZ!(%0 zIr^2_>wb+IzwK#-3xs$wUUU8O#`F`>OmfHal*aNY@2s_tr+?`l8eekLjp=W=DVof0 zBs5jub$0TxH{N*nJ60C2E>KpCiS6AC60sCx{Nnqa&0;0SjJ8yffNGuzQ({f>g8}om z&5txS-q}n+w!g#=8Jxtb-~mJBU|&m*(ATB6FeeI$Ac#+hGhOIO<{%EIVTX%84vU*N z8K6-EzUWe-onk{dHwrQEL0S-}xbb20fGzdKDcBSn6p0G9B#8`S+jI42rIB9J#o2kx zsp49qDqS(DZe>}GIw}ft()q2X5br~Is&N}pv%@SEr+6&miJ{cCmZlSXf>5pD{{7vx zZY2#fe?zr58%z{```wO4le}W-Fhj9^&@gJ za(f2Ym=ic>4PlN(%#tW2$+r*cp30V-Y2chJ&QAGl zTP0CcAPs;7_ta1Qp%|ZYkYRC^un*f+Nb_vff_qqmIgwmvLa)?s9cDoQbjp%QmhA)D zk5~Tig|A&%y`{GL{&rtE(4?4(u`^;#WC28aL#;xcvI32YX;Gdy6!c&F!gv*E*a6Vi z#DI~JNda1r_{u*(3Wgx-OW?NK!KhDEqmpq&MF1x$bY%-9;3?C|F;uG((HK1d{1$8+ zpMSbkEOs6tVyP(6S>av?o>n_$#7q*k^X#&x?mH%SU`BSOIDsb%v7p~t$pIij+{%FutI;Be08|xiYA?oWd9;+rfNH7MKz<;x`4S?U;sm13B%&348wC2%Xvx1M z0*gt`byrjd=wjjpGUisX*zYC-M09Gi54kw0qv-*s7h)DXA1K@8k!a|esZ#+!BkKS` zqVw}Z6$w#X={{cC{E2U!_Wl9K$6-y?>DH^yWN9gNT6dQ2j_T)?n~%1h$h)f~~uwEOMhY z!PHE)gvz#|d0yoTFK#xSJ7*%cS*@Bs(_5QV@vgO8f6)C>TH2V@&#yKg+_||N-oCYh zdY6q=g5Itkl6FMy48D>z|CYG0ueYl~1O;!lM-h{?8(@}PPJ^!3rGtXrYlZ+7IB zgV)lE$!@X_igysi11p7f0jUZomT6^hLP5GwqVo{#cKw&dk>t6N1!*8V|x8=Aund&rjJ?nrHGT&jiL z;R>V+Ftnp(H*Isd5;83i)zfyF#3=zj0Z*RE`PjW&xQ_UP~r zwoo#duP?^|etb%Tx@pQ+2<*DjAaR6KTdCb_XWKt$(Ge_>EkkS4gAMRRWy|oIJVA4= zK&3tj@UYE{*%{zjx$`QM<))2AfX|sL=+C(>1d8#~vB=BP35f(^ROrfiEm&4^p)0El z3$YBfu~mUoA$f2F7D-10@{7WBNg`M%)Wg8uW2a@Dp`Mga3vdOPo*d8^WZ;A0FyNOQ zP^uTeuZ3Vyy|a0SS+?u*EPNmKft#>KEQiP8YJ)i#-1C}xOw)}WNRkz&~!fKrn^QTOAoqkH-0?* zT@O5YZWDIl9My#J)Vp)&6Vce_c@LGKH8Q_I;rxJ0^4i|PpFxcn{nV6Ca&zq=51pv( z?oY;UNZYfmvy;i4X*b@7uqO{G34!C(pYnWq?pejwaLiI7( zdO4km)ya7?$2=O9YO^toe5TQ#HEl*0O<3}R`j~T3Rp{GW*E_grq&_#oq(|nbny6}M zR^i6<;~~Y9nx^L-jREZV*l=}Yik?It<8=L$X6-WT#qfFe$<)hcj&=Vi^}dm9zSgFF zPQ5+no?F+vr~YY*#xruQhc3vN+OnH?nx6by+7T{yr)m?~ZUP9O(^7wV?e|BzD{q|DM?mBjOf#I@ zYl}hp9Paf=Vw!d#dF;!nlFZyzMh+2(6Rx9pgcM5g4q}^!&_=4FeA!k%$&RBuNdzTc zs%=zMUEH57PC*Gx`ZD7M88Td338@^CMYzbMy{sUsF2~q~48nDXs1!;pE9SNhi7ALvf%_vZ0$Z zVp@WJ{fy!Go|xY!*@{TWn7mrsO{#6(L@`o1oRr~GFgMXndnjWpt~~PDH#d#0^nR%r zFP|rYUtCF!v6jY{#_6GeK9_;6s4W5fx=Ql&qrjKe9Fz_C26`5q+aErXLRJo7S^0JR zd6Q8qHpT`juqZO;@h7n{LR>(27si;87nqxhQNSL!NSDyP8s9M0@P4guQ^1#aV4F#+ zPaK(|U|A<~{{r}Ll@|IetMlVP&jh##1Ly@=K^`-?Z6dqmyy+idQx9y zQb=WGX?Vc?l=`%ndXz(CIllL{ug$;hk#`N=T+{nA`eREo0h7_126|_D-}JsAnboJ( zT;YKwh-m)^-~pvj(Gg4oz6zW-^EuGlQZMB;%f$!jPN!z8rlRdK-y zIOxE{9{m_eO-o-#R0H@D*3|yc+?ilKCJA~mwC|R>Kwo;M^Nbfh>kWhXyv^zq$UbiZ zT2CXI@0>A@J-FvqkyKX3-o4|w)4uSZ4HkeS1qGqVeAih3{KF*(NlUdB_sgoIrKfna zX{qLPn$@B5JN%*Y2GFcC3`v9jJ{t4uX~5KjL;{mW$caV9_i%YJbHVzEflEY=f>vJj zAddpRUkl22!wzCl-kEec`^Za93e-xJUDg{+&iU2zc&8dH-(1$M`aOM3GIMxObEyR; z429L;i_(@6>A)F!@0IfgR(syY$VX0D@_kNC!XV|S!&%%JJAMyYTX(Q@V8*R4`cLAR zBP4#^s2m0?WL;POs8s-A^K9Ko1lCqqOA_?TEY;9ExI?WD4OeXp^`Tl4WhP1oRq2-K zEk~S{S9g5kOXWvCa00tE>3%3S=-`QOjn~3kbC_Wf7|{Px5b6_HnZcq0OTv=1tHh!M zphcu8GyzUgB&et$A=bxgc|Dv6pb!rOwt6C6G^hxjP4!>-$jYBTGRU)SXdFZ2`(dZd!&NgMs(nqcj zb+{T)!apAV(PEZyQoU737I?6l(=p($KK^h-s~a<-iZY1&*f2nWw`8t1>~~&0^Vi?~ zr8V!}-_H*>4!5s%ha&eUSt`-s^|L-cKjA;<3s` z|5jK1ga^h+ad$SG*X4dLac46&TA5-4KdvtB{-&N^uE~bWz^<66O)B@oaa2^$@uht2 zQxlIy(Gw9$bqWeHhRL-#3f9oR8kdt_%1T#Eyu>eHV0edYbpmwm*Tcu0k76X8T{`uSTFS({k8v|Bk^!5om}$Xse+{p?iIJrbj6wv+Ca?nFC%Pi+Bh&R<6F z4Aaf&=H0Usez%76wxP=9E}gt5Sx6Vs@Qw(k^}H7@-~Qn3n7~tvENE!cdA6-y+pzhb zOG!J@QnTpeD5%+$$?uQ6=v|E&w~c5U_THZV_g{YGYh$Os^2fHN9C&d!T3U}h3PPit zvrszvTwD_zz<4`1>xn8XVbVq`dq#lV6j+<4TUNH^G!j2?GG$-BTL|5q(*I}!{_pLR^4cxF9s^$`euunSR0JY+< z+v(s@M|_2voiLr9Gh-}cs<+eG;#?8c9B+HP_aK{iPWyG1Oc%Vn70{!zIpvy2(ygSS zs79E&d7RBG0CTP#`*XfGRE>FHVx@QimL7*#Q!oN7Zt1%CqnPvLfsT?f2cZea8Irzy zN+MK66-fh~@7~tl@%T?Ya5;i=C8d!T`(C zM;5^R)`^_R=vV3--*WJ>%U33^JgJc%j*86`V=E%q^({2{JTc~=d~#noJu4+(k5SB- zv|qDsu<#a8Okqrhh4y>`z*0I-ZpZ;6`jvj%S5a8RGKHXa2JNpFRgMMel0OoB=MO&g zJC|Pa-a!V2?)6v+owVLb)3Qlz$g57vZ{)S|`qEQEeqKbs-<{5Ia06=jjasS$zli1$ z-8f+LRHjjKa6M9uT&L*=U7>&@Rg^5vIqIFXdI;ANJojBNsepSK496>I~3$3H4^Q6ws}BV%Dwr_{)stY@d} zY|tr@Cn}7lu6-m6j#iL>Dxxn&D#g?>v;#%hGM+BTR01x!6y;V$MHRBG!XPA-L=P(gq>_ zl0lw}F;bRT7BeJ60hp_E2HxJZ8JV^1fkuUh4$&6F+03RZ0G-EcJHQ{9QN_Zo+HB%M zK?!o$mxR?IKo0rTactejV7fnoLm?73J7ruJFzTL`0*N#>W?1ifoWCHVKC`ZjGLkL` z&<=uY2b*<=uGxUb$6%c6*H(~v>$D+qQwxT*^-S(HO^nSQYg`G86!U-VY-^bS$e!mL zfay$4H|92!!rsbrAO1K0*UGa%L%@sXcu|ns_VA zm18O)iU1AxXrU3OtRKwX!Gn)K-+Sdh{NQJATKStFkgtG$yCSlMvD|6#0tRt#x`VT- zBbag4t1;FAurreW5P)X`Vq0nS$)&ZD3HczhL5(UlzyUa^M_sb1q`;WfGi|c(%6X_g zZQVe$K{0X+6O3em1ZpP0tP*SKQ@t8q+%d)|XyXd_f8rD_R8CSaJU#G%;xUa^uDF_?9zzyu}UY)OY1Sa zHTm%(-K#J{WTl`HS)3oiPSV;?^_snAP-!wAwEW2FR78wA^>VXk74o4|9eyf~t{G#4 zA;|k%Boh$;UJ}^kgek9AI@N^AR*r~Hb{H-4qzEDd+S$B{iK`--&ZKTcKMOiy>9?%NnF4LNJ)wOxf%UJ#b9RRC0W5 zNZJ8%)LbAmiR^xUmdAPK={LVSva#0~dFg={eCW$*(jIDab#l{Ba@mSzWH z*(nG2w2Dz+d!vmbPH+l2>(}VqQ0%Zj1)-THg$Y~D;{HkxL^QSy9L4H$$-ayN@gsW0HrMBdHaYWIlG>vuFfJXJLhZ0#zF z2qWDZ?(;le)(=w@5rm`AN%5w|Q_hg66I66#wy>xDOH(B* zP1qMk!zIre1r~q_dQ_RhUd$zUr6NC;&Hr6Vy(0;cqW%Id*_piF35 z;|#){P?w-N$_mOl85ef35|rWHa}ZdC`bCTKPM%KJ@zAH_VBXKoBturcn`xIaT|lmh z=5bJNmz_2T-;#ie01V22qwLI4%7Kd4CLcDV3EWu28vM?N;P=I^iQ zw*UYeNyYXX21hRe^#ucl%!DM%Sk`nFoQ{t=(b@AzZ)lO!w$rFH7L29ijA0i85zw3r zPSHqq)t!x8YP0>;sCq#w9!{unau|w-J;Zxjq^}|`NRRneL}1kzSR&e1$n>G4Jt~?u zl2V><6kdttAQU2Td#`Fm{LWKQz-lTo$OsYez#BD}qo!6vwZatRQi`5^|A-!p&CYF; zAML(9k1-5QJ(s_F%eF`ETJy@cPf;n2v6g4K%?P)J^lFLCN)Vn-rhsMO3cN~o9iXz3 zk&Q`|LyP5PO%)O`7-hRTdnC3Ne3eAtYQSJgF%S*{Ejdv!dwNlyJzw8U3V?C zO%Z-7n{2)+WzcWMxJ)x?)XL!{D1uGx+NSDEP<+XL22J&v)l7>7rlJWnFk`?oNhkCn z$3V512g-%)XrwpOyAirN$rcwaCQdgZ)n)=C|ZZ#RUUqTTIb+GdH zDxu9lwK&8`hfb497kW0Kgl#@l@dPV)pA&1U2)pZ>)a8)ll%_HK*WyRsan8y|-l--A zf$A|eC{7h*l)%jH$W}%f2c=fOhZ_{;zrG3%Ll#K3)an;OYFgr10g7)pt9WEPfk?pQ z*U=R^QCU`uwW5Y9ID5H&%ohz*^@t|NFWXCj@p8?_j?0)D z)^>YV5g&zAaP?53K&mo*Xgd+~wtCtkCeSO);u8&%I>L2S#M zf-+H1X;NOml14`q$pHa@xsFOoQ^b%{Z6M(czcfrPa8tVR&L}x&YTbl5%$GAPDhS3LR`F4!qWBRpoy~I)aUl;b zYz$=i*=Qc{fP_DE&}~R2rek4-g{s+g0?WKwBL^#|G)QYQ@xA0ZrwH@NaI0 zxoU!27t&w?T2=F`8khj@R3HZYwDF2PjZHQKF$?_Cr=nyI@m^D`2L&Jqif!cB z1P9D*kV|HNw0#Jva|IuJ2s2l}*NDb*>lNS6|77JK9w-upkVQ>RFer845X54`Q;JLp z@CyCrjn*!iP^-g`{tgQ4*rO=Or&Q2lY5N?REhK?e9i)QZ!pk_sl= z43OMtG*_M)E4~%2u+CJm)wa}rnbnj5FzA~0c*}v!PML1SahBBpiB4AyrsOzX*fB>q zDbfB$Qp^EVAuSfOJ`tgkWf#p97yQ{e7vKLKfBU1a4DJBLl<7}TQ42gDAr-Tdrk^W~ zIa&}8E@C7rkr`;lBEm&FpPH2(0|SKtM9UI{1!zJms0k?qRV2!jgTW*WvdyKUNjj== zYp&d%j#}yug8oA~gTeD&ByHafUT_%hiGU)?l3KZ>R}4ZOc+Mp~>qrC8O?}aqN51-l z4}>d!a*<`MelX@@e4Qv%e*|O6d^gp5Bkzl_mSrEHVllndq!aUE3JRWm7H=uu8VfsZ zG6J$91za@!6BIxz5ELT_)k>Q<7hixFG?Wizr9pYltgPH7c7m)t9W(aWR)JgAT zh~gtiF@-!;x4OtjAaylj?@4PgjZ){a%m2$iJ>_e2RVySgcS^!*3@i%Fc2OrqOy|g8 z@I^@=uaag#Z5By3BkCj>8LMG{PK>Px0u5>_J+hYypqZ*2l$A!iCk4$#<^zV0KtIr@pXBZCE(6#8fF^ma~ba3Gq|zOvW_?jAmyuzi`Mo3SeN(xfsI*#mXqh2-5;H zD>tEtgf2Fhteqt0auQJ|o%;6UHGwS5wcWchw`zvsdunOEOVVpTz75xU zPOvb{p_*6S#nl^rp(4ynVd_l#wjwZi*I9Jyl?jLze7yeJ>;L(dX5|MT|0&IranD3d z9YsAT!IPhP3f`pq?JN|K;d-i;E;tCwq)qBg*g>oELaua-n@HQQR{upV)fG~@I(pa-D5Xf8ZtbLQIV66P50 z6ywtmiHjG(bPLt2K&&)$g%^Nn$#Af~D+p2jXA`lWa4|vwL@x6C3t*yNG)J$8uecnCdK@Qm z)urO0Vd=*6ZY0P@H@*I6zqaxo2G9?k5a>qBXl*zpOtDVqnAgPhn}Nrs!_EDsV&qk3i|6O}PSZ-*I43@SmA&w6#I9pPEB-n(*2 z!i9|aK}KynL%<%`*K%7R+Si6CO@xc3=>@7hHQ{(*T*ZuGcjB$X z$2di*#Zi^JVI*!dC%vcAdBz=7z>c>eucwXKiwBcHh{JjmK~5$3~Ce^n8&vdVK78{II<+wu9K*BiFok)#3My zK7zxuIlRx|P*2Xyt~zY4=5VODf8bEB_UXd=+?MV4{M^;%s%`r{|8n*;)x_F?2l6&F%QiZE_08&|f&bWAt^4U8PvzAMo&H zqhv9ihdw{|x*X2EcGaghQ%z0*KYar}>C8Leue9-aX1?@hpLm!tYc@n4x<;<_YQJ@j zJhgr1j;o5uL!Y?n)&27%xewhjckW&-&dk3|zOx@shu=NxvzByU>ocFd&;JNNiI9(w(z7d{caX0fpsK7qSA-=;up=FpDOH^;8B z*!Fk6d6?L1Gl%3f@2Up|F=m68xw-vJ@Zl}*J#@<%Z)!Ru%|4`Mnl+Dl56^wA@I3c< zO-vs39?~>EJNxD}58=Ae{LMY|z}~_I9X|8scYL~VqsPShZuFSg=gf_s<|BV||KqWR z9qZ*#ug%0>XkGY8In?uaY<#jMw}5xzAQ0zy*Su!4k@LLQo@F+#Ta0ZclG} z_VYI|qwV{T&+Ii1dbP20A7Vy_+uI*HK2ywS?(n&zjP!84{h@EY^T`86M=dfxa?f~|*3-TNy?q&8)XwcapFHczgWjutt#wYabL@#U zH%Dr3@2xtL>*n&Lc4<1fDcgIMXKwViwGJ1))W(}<;!6!ja_wlWzDxQ-sO#c9Zzyu;YrS2`}@3Zmu$<1 z?}(e+Pd%`&d+;D{GRl+OEUxs%r<3*9r@#8LJCj_|#FyN8Po)=n_|iM$>PWuyrXFt% zKN)SRpDSl_-N`k-mGFwoivZy+Z!GNb*!oPmv%cy@@Pod0Aly0j*))I7UG(Hi4=;k- zS_5Blm!`PZ+gmwvJ{kVxym$E7h5aWx60EEnc+y**6adE3C*yMANAKXOH#xb{JLKhO zzr~GS`RoP%!ZdORUi5m!+_Sa6pRe!b_otDZ=zXe~xqJu?A4qEELeJ(sxid`8%btwf z<7r&D(3^UqnDx{_cm1L9N98~-*o3Q@v5+TopSP8lDW7$x7UVtf{FiZ`7wxUAm*Yh9 zo);gOwIx5$7|-_3d1qEH{ba&>j<`)s$D6$^bQHCp+V6RV>%11PcP`^O@6ojO{Jyj1 zyga_Bp5y=Ja`TyZ{LlYv$G88GxAB2k_pc>_%b0nhrOy0T=-C0kMdfrU3eP+R${Pxt%bEU(t=4x`H1%r!LL z)Iouhn>8d&UbT{og_@MU*ys>ZG$`knd4N26LEPf&|UVgv8vG8j4aR*0 z9En4f4kDjKFM346CoquC8qHCL15@ro6~#;nA;He zIw9{b&iGq_)?yi5i5nFGM-zYop_H!q(_sX5IaVkvR3vp#yyIcDLpLr@=g6{4{udtp zi&swn%hj`ZF1tlDSs@1^KuR`e^ixrZc{GA)V+Bm5&sfVvZ1opp6&_zyXj< zix%wEl}Y8KYAw_p4;Di?5Pk~0l#oRRRfYxSdn5I5!6rab3tSF$TA_HT|A+A1InS(QB_zEaIN@bVbB0(5(6g=Y*-=;5%umqZ>WOM z&H<9uP3cc6TF4##lpkV`ffW{OJm2)SP0lky!$OXBX_E_uA>b}A9zQnn%5T5zm7RS> zh*n1H^SlYkY=e@3^E7@H3S1nmIvY1E;dNw*gI@+7@^asiph6X3qqkP&0viCZ_Ew(^ z#%D6PU>exlfJ!6?sCpk%$%f>hgWyU$0yR9r72I#OGx^uaN-~x=L-}sh*|^;DgcEJS zOc+X+96}4UXgY09<=Zr&)`NI{7gD(xSBIO8QIAdB3KR$`NUB(0k**1 zjB+Qk=B2l5dR9^(6IhfWyahRgog~^JvyfS2w@7Oj#k2$f5~G)w7uO`nnBf93qY5g- z1y~Lb+$w66W&kmqmLELeSP$kCxw}IZY=fnhH0+dwqA8dS6o+um#6&fk>AYJh{J4Y} z@8H?cDI8*Z0Y_1l)SUx*=07;^)vN0(fB5gL2p=eDDX_>pQWjCxt1$qKQ+9g|c#Kx^ zrJ6aTv3L-x8DO#cO1i;CZCN6^UQPJ_62$%_h>4MtDcyYAifqyp}3h<^0>#^LA>;3ej zfEY@M_X%<^oCsphGQbfq9gt9Nu0TQ_0J_Ko`yFUeOwO3>CNMo(921DxoMAAxRe`AI zZ~w@f&tA6jdq1sl5%Ak*N4)DVVt>byJ+&M zpZCw%u>O$u_BzhoMrX#)I5zyy&1w6h*IMgvFmX>d^}?`u#+wkFx8wouPtv$&IlKMQ$FldO?{9T$nSACYYyE@rnYXXmeAmLri|5ZK z8}@tDNYDIc{#g2r>`L#qqsMo@Fa1?_{`|r>-p~85A*snX9uDEssfhGV?qxvY{ktb$ z?M4&rKOOdd+Mk&mA!DEGkG%LZhidQfC$F4Z7w+3#e@MOqI2ge|l#quX*7!9`5YwW6O1XW9%LG()Xv~ zFX6{vXZL&W$a#L_$i;aar)GT|D0D?&jy0xth zEa3~O%m@G+Uh;;lcp=72xmFW@;&5%a0)sLk;DlI(!AV|vjl5|fuq}O694u3mUM%I^ zm{NC55<6p1j!LU&O^Cp()4-tV~)eA>73~WP;gP> zHm~g`3BnhD5}$%fmmly&uG%V&CdvWvuNb9}(>6$jM%Q&Y^Un2t+oQkr_us7E@}j7y zhFPjj*PAu5Wu8o?V&+H(EW~icO+N1T!K~8|L3YW5qB1YSA~w=Zh(i5VRF^;k?v}DL zLzRpvj;`bZoMG%bCAW0ojDTohhFu}W01q0YZ{T1c&qb)6(2o6Nz(Wuk810GB1#}PL zmANvC9Nxd^p58r`6@##nhb0f`lPJ*66L?L2jd7vW zjRCM6M1;r~aaf359EAzC-Abw{4Vg0Bod#L@b|( zXH^U|5)4dr&}%2U3)YdB%V`_>qksF_`)*#j@B8Y8V6XuxBzo$ZSsC6jIc64_HrZq( zC1vXD7@@omnPxxLIiWI|_%3Ejk!Dec9@H%L*Xj3%0-rs{G^{{X5W?4uir2MOkxr39 z1X3m^tSv77XjlPQA_&kBvQRjk02mP*V3tlZcL+-tL5jzWxa`M?7Sg~Kn}CFf6}qc@ zJWw>$PR$A#N}S)W(UK^M%PPA9T1fx59sK@t-IW^#etSCM8OgAFe?8@=kV7taweG^H zT~dd#J-D+qg>$yb`K8(gy|G$(Cj|qQzPw3=1wC22--0^eQd9dm7PFG_l^P;odsO(SjhHsPmhP`Ig4EE>spqHEm znHJ?34a3rr8fN>bS)0b`^gh>1M>)*cm3GQ^uC15XKNhE#P7NJ&``-FC`YWx4%UToR z?Ma=VI53ZWr!{fd*Uo0Vy|?9jI`8!7vu9eZ`_Joaey%y&45Fw!%!?>zJcYlM&A;g( zgw`uwo)1;#+~;}kw(aA>^x&o3sGQ1ft5@2;>wP&ahrMmBh_}OgyYcn@qF?=Dr5(K* zXZ+&$jNaS6w|mFz&5inPIV#04?l$J5{r=H7&WE$ooijVp#%l30_Wv*8+%!+q8Ncpb z?$#l)i$`jkaTEQG%*#si8}6;0&thKIyC`Pq?uxUlo@JSw-XvEoNUQMn)SA8P{daIE zH@lF>dAAnl<;8H{xLY52E}z*Dra8aq>vh|>xDT*L!k*ECx zF^5neJ$0AAr_7Gxwz|K}D#HvqVK!XnB?qW7)p;s~9&6KiR7BgJYcVN)l~Whq zq@T+Hd?jx5n!M6F6vqh%U1evYb3?Q4QbQNutFV|Ky#I}NzPR%4GXyGynq(35UNm2} z8J7@E7%}$97{PrG6_LcJ^djF(Rzom3{YX%W1?N2SqkM@a;HRCKHXz>EC$~}xN0YK_ z4iuBy9C|uw5tfGegZWdXHce%{l+S{(?9HK_UVTd$Mc9^s?h+WNWQLSn<;0;ch^LI_}GD$^n$-8?Z-8rL6Bqff(SO!WViY!KZX1!Z;yAlt- zWuxK!M!xf4d03TlvCCM?Am9CSNv=)6%E*;JtQD}cPI1njaPUSHOUa&3f(p-tCwf>d z3y0f<&UxweO;&=%;*Au)bNuc9{E_ICAAF;tWgy6H+->#bTJK%*GMC@DFT-!#a@cp4 zckMVL@gn}yNY47+@)+Q?xc9B^;V5mL`Hho@xb~IiEpI+<;y`WW+62dOxRW~; zj_#kriC)65m0XX|+U+}zGmm^@O`Ox6>^Lr`HFKAzAz=>B@zmGD!29d0RLB&2$of*XA!z9{l3tyF+G}-uTpR{E*^p z&-~@Z>bn)rpO1g>o#)hd;am?Nf$^r@s8)1=td53sbPGoO47Yf{fYKu;ftz~ri?>iS zZ+XXLX&<{jz5d2eCFpN63rmHIKr|Qmx3gIed;}hFQ%cKs`AqU*9M+ZbEkVy?Ve(wz zEidVQF7>?GW4I2~q%}(OmA8p5@N$Pw^F2FLemKV5^zAy69(;Mw!&Tmfk@;P?%JasC zlc!Q#(~YdFoN$!)DK}3y7LM|+jm@9n5%eM4BA!!!X5pgt@QQFeNTDeb0a=} z5lKGN2dvBO<5{ZNm2OPsjqhnx6z06l$|nDj)awfmfk!pxu@BV?4}oVj!@^fy@;rTv z{WQuqBg!7z{{8chue>=R#tiB10rL!bkxD zWdriS<`OC+H$VXtQ8X1^)N?CV(PMM<_WfSjyxmlgq@o&`Lah4&nUeZRYDm#WvbB)0huN=cJ{Ox zcaV__AqHxT#zd8Vj)TFcQ{n+(kOBLhW(nJ6ieoqC{O32{a%Sc7TQnR3LfX7hN(_fn zP|gxu4Wr}J<)>wkBwyaeL`bKw1J>#&d^6e72I%Y*e+)kGkNA-Op&ZW_et9+B$Re1=)22aWbQTMpzigiw89gY@Nj${$Maih4=Rb`w6AtwEf!ac^9;EW;wobM7UBwN zjqAM#H(L`UWfuc78p?}#c^g{tlK-`be*KSr;$vSMyk;VCf};w6CsCslmShOlnwTQU z9Zs!?77QVzWJ);PtYQnMOP#GFtjII&n*OgUf{wWsM2jF!6uAJ}aQ$8r-)*6!aTcsj z1xIn3Yf$ZcDPuBk6&!*1)tOMB3Ceu#p5sk)xUprC452f zBCtK`rgbmXf;cT{sQs;hYL3KFti;rs2~)`_DW$L@)N5#8um&5EICKq((5Eum7TgT8 zMS!vZXlRRe1(A_T0bBzdS1)(QTOW+rXORuA0wV9wuM&Dd8uYGPrgr?Axz z_Jm&Wh_wi82^In2;ywfj#0^)!98l2)m`*N9*%2%fQXiXwR9ggxbAv>8sN@TBBx@qF zxwWL4Yd75TFTVH0{H_0P@N!IwwHd{+nL1NxsaC%(bCwpscBd7Tc+awVU5{x&oEp_y z^X_KxqS>%>9c1*Gkun$w1VSgM>vmd)mC4;&&_jc2#5@G0My=e@F^p(-Q%5ePrW8a> z-Q27!p*wdfkcnZB#Kyi4*WjBYh8n=0JVe;XR{ZxKil* zc{%tgC#G+lMmTqbj(-RW#5UU&W$#qgpJI#5T7z!&vt0zLJ=29hx3HunLmsEpq zK63o?|7PW*1DD4jr2_njut+6te-Uy=7Y&U&3SuXP!dyWDRmd+si!wY?iSU+)RkxOk zR#bM-htua|z^Tk2z%cbGhz%qQOEPZAsYPVN#4Kc0y6ApuGLQU;mZ2ec(*uCxv3dIr&wk z5;-a8{=9`Evxw6uT^FCW9(p_}BFOQ$TIl2^h%4QKRUzi}pY7`(8HnYbJP4cfYQkGb zeR6vi@03@*J^aAd(trEeepc9QpOS8@O-}}=$LS)P={>E~AIfH;rP@n4+}oV~#QNx- zR^ZK&kUU+QsC^tSa!{R9Mo*b)9$U91y}tI2iD%sM&vWcJ+RiQw7fT%aKeMm=elgP1 zFfnu7ipAzd7d8G?SL?vp@n{qCu0ML(VhOjzo3kb^-ta{g!JvDKYbKV4B?YkzcsyG} zTu*j(PoxzMxTj0*?32xodrx3~ATLK2&o zwMI*e^0znf-~>WEXESbX*25=XM%6X%m}viItNm;X{XWQMnl|?K7yb6Lc{zydx*|M2 zfpNUl{wMH?bVQy4XK>7y&R%=#x;5SSejjrF;CMT|a{SQIQ;z;bH@+RdyOZ{Krt;)43(mE%6``EZvnmD<&9_3pAP zPIt`K{WQF5Bzz_>ZO_8xiQ3{n@7-}*Z}+Sp-mx=ux7E*@%W1Q=clLI_yZg5L-MIzI zHebZHGqLBMW;f%PoLm`=KNio?2l?#iwi`_juUJu>H=5oDrrRRV7tFIm1xpL#? z0h+W~l@yv0EF)jT>_;nLca2NLdVp}m$ev5~Fj~S7O+5;h5e8%oh%t2{td)IRIqe`{ z{C%Gh2zH*5k%GVmt|y~Rj8b5UPRd9J+CR|db&i*27Qk4Z z$B~`kQjGBiU(cSNDZPk2Z31;CoL)dn$)PF}<2odfzdlOWCO+)*@>k3g=nQeo?Rk-u!RG(R3Jw~hobC_3wZ$NW3aN!a)JQOUOCSfO&ywoSxV~Aguxv3}8yATq zkYwM34-HG9pAC5)#C{})QmKm8oiF^(_x}1DD<2!y6M;4ChdzBQ1AkzOH z6hd7shW11GgGU<&T@2N91)~Q8JTUvc3;ulNH~xi2LO{I@ zDoRfsImY88j82`FGnG~JiajCD@Yz+;`Yz!GNsAV;u87s^_zf+Vu~9PCOLQgCS^ydtaPbAc;QPP(2PBtjfk1f@o~lU4BhpoU>?m^-nPFG=z& z`c|K4G2Cqr5Yk*Hoq+cSemaaXB2V$}->LF8I!-q3?vbM#bv>@w*Zo+R@dNyZ1@)hl z5zo1MgJ92Fl(~+U(w6-G;L4`yR_BuuE=_%I-i^*9Q&(J|)5lbQ@BoONd?Vu3Y=a`0K+ejL^2Wg}L)dDQUDvBTb z%&h?XrpHqbz3k@<5} z_UiBb>?2SAfNLZ-HA03}QpBoo zrywXQ%GZNh8S2gYP871;3nIV)NK&C{Dj>z-oQQuE zl;W+J8$yE{sskg2D(xT=WHdU&sZK%r zDJFPB5i}NsEN?Zc=Qk?>uPy0$ODU35#;n0A+0q1+rqUe%(Cb{9)3$tTJjHjztL`bK z0E-cLPM|}4HJ{~sSZ!yDHoXc!S9TQf;jq9ACm22zGAaCV_<^Uw^bs3MHY<~QM+w7+ zdecRT#{Hhn6(yg?ygJLgA3fuZzj@!v)2qk!YAAC;76EllQ44u3#t4(sPb9rclV)9p zl^yZFKc_}n%gDGJuq7Lk)z2ezf2YA^4Qlq;Sz_Q(J2Y1Iwji^WEIO_tTCTnZ>IG>; zv*HihqqJ&`_azU2;^hOz)g4OlS8Xv9sH9jYo1 zWn>gEWeW#oEqiJ*N@v!e&A z*j%lkh(=~7xb}@1j&Fgc7`>hvYK4fEDkeYz8bkpUE9uc_3dWHhh&y#N04RE8pdp?Z zB_<6i!1mw(CZu%KSHe1~jv!w&#Dlnp11)l#fAId>$jbYUSsJ`X*LZTaF3+{5SFbg< zl%rA4EytHcBuz(KN}XmUma`(lPz1Z$6_i6~u@z(A)plY%bBc;&HeNtO%?$kN9P*$x zf^wrq^Gm~#rojm8{za$M>^GWw0Kc=EM<<1uJl+Aud2IzWLV= z%*Y+}A+W$K3UfJ9Y8;W=Z!C;Pw7@wlND5R8(;gBmgtV5swxs7(0wAcJo3oynpF?(V z)S`XyXj-pLh6ic@O#`}ui`w2~DW@Oap5%2%B2+|H=OQ&s3f|8vnBI^-&boG*Rq6~^ z+hO%`q*K^s=4?rrMd$?edS&adUx}Q|$x|)2cwm_6axLznSUQjU+PkaHZeGdM@?aNk zV)ADnbdLZ2w;%Wrie2A42MPs#C4)0oHX}T=8b3Lt!7D_ukgK5WY~o0mm1hiH46C3} zoqDBnI-Igmu4OeRYdMWt3HO}`NZJE$YE(#qVCGqyB@K@?JM|oF6a}-L$~cXM0jp@5 zo6hY}SQo2P@T~-x0l{j>`Y|D4HawlThMij8Km*}9Z1}iCK0gOpk2|cRvUCNj#u0+C2OgOP=|h#5zVzn*`QAtGV!#%f01`pqDebvNz07A$ z3b==mF%wylu<6iXJX8i&HguRM88l3C5;ZC<8!Tg1`C@Vg%xrC$HZ^iYs-;Zlk3u&R zMCiv^LCv6;S}{zzl|U1_kqbIk$ts3G6B++u@If!EvRW-Lvg%BRO|^a<3^?3ei9ost zOje(5gan{LdQ8&>qpk}UPK1`V4}_G?8+Za=;5S5 zX>_t68yL++uPe%wb}yV(h&lJ4*@cP7Bd zfFVKZyQDSjG|+y6$`e$j_=vctCAJloDJt=liHWxJUlk&!)dV^WivfXfHV5Eda*~8> z6BT0CKd-1+68OF@pY-DVNVI?&>*QRI8|s~!ApgX%Uv7ME};$&cf9N;GvZ ztH3DI@>IpQmOABRmm&#Ew0QhifBv6+Y~{`0vz);PQv~gS8N=!@a8DUr+tb8OgyJ{t z5eI;9YRLiF*eL;&Vip=u2Q`4@hbfaqn?EMp3k-@X;DjeNK!sXP&@{p(rl!3J3>ZrX zlwe}SfNZBSMT>|t3c*4QOOZdmgFK{V2m7sMj0bty(AS>8G7XybOs6WOsP#@<>68uS za1Y$5{_F9-|L)3fe#MGgNv$dy@;d4jQFQqxEHQ{fAw9`_g4TR9Dh0#rOff`GLoM}1 z$l-~Xfc$~o>Vd@eQoq^XIUBG+T*n%g3uH5dGQ6~!`p_0(@)1~Hut&xo?OqdnIUgS+9sd35PJmV0UfC)#y5^ zY-X=cmSA)dge(lH0#J!!0`0F+r=&=u5>q?|Cvte2FZPdsL<1?OMt}|lgvBatXjPV4 z+P@$h4Mo{xd8?SCwl1yck~rp7U!cvPPxXvfcuu8LH|7Xp(7B+TbY26|PlbzT`51e&@6od8$WHg!cL&Jt^L(febKYDxgi;JWA(XkiE1J%OMjZ6 z6#NE|eEF)c-277?`?*!QN%>nCxJ|}JW-)cBnXC?=QR2bpTNVDkN-QV0!$NBdUa!Xxd%0%q72RL)!qTZ;(AJX^VdNoYfq2DF@_8eL}0pU41Q zD>wh?xxZfh!kvT8V&GQfjZ-S7IhxwiqESM`2=YdSdkc(}E}Qo06sx2sXtBY7IyNm0 zqnMv!WP=tSk@cm3CRJ)v+#d@qLLh0>f(JJMe+Ro(ol)F!DQJDD+?Hz4ui(H^PuIE< z3ipyk)G7K6^Fe@*OQfXASJ;Yy&1d*#fXJ!cL~qB-vARZ} zL1eIt_@Z^f`VeKoMy97F)&`{kq9I_BK-(t`SPvEkX#c}`3|Rx9wxO;S3z_nXIa_tj zEOu;yp~|FKu~iA-n@+C-a4JTrOy7OP^;D+eL6c2XLcd_+!Z`+G@fy8QeJiw_Jhe#Z z{NQhYaR2vL_Wzwd^1;C9noVD#ubc$%j#ymu648mqTilw`I2yFcv4w$a(3MlnQne{v zq;}M|MWcpCJpxPOS!9&mYx#PzG6o*Y3sg@b=6_I1CrkL74a%^GLs(rTCz4zNZ7V>7 z!Wt7Q3Um_IRPZ0htgvLSfd;^qJ0pyciu34)-aK~W$_Kwnngz%P zg@!5`Wpj|oHzZIqr_t4A>;pmLAgEP3>H|S33I;8~@h!oWb)|TgEKyp4Ci;yTMihyx zlU~Zws8ia@wOR^;{p~!cNg0~iJtu2}9!=iVEbM}W^)THFRnNvvTh0Xk_f&~t(Iv{U z|JQ%^l{#JU*3@y1@Snz+gU#6XmL8Qz+k%;8 zlhWUxijegG@%HxdaUAEJXV0jm9rL&eFlxeWk}FOR8f5d$d@4uoLj;mcE}dxeCX$A{lw?JgLi=>NWG%p8mg|qswiL;$ z)n;Q#QG86!w}xm*mYEmb_o*IGvUAznzpe-Z)z#J2RnJrP)bl)5^=r9WxziCq<~jLg za$dQTNF{H(_{2Nuogvb>QYoT9To`0TWQt<{=EX9{njn8$MHytT{rc^X zzi99Hk`zP;BcHOBruZ=&*mjjSXk}Fx3bUdJg8 z;fUq?ajMMg#Y4mUyPBDxzEf$M5s8eE82~G#%OTlRAIU=2GMD)F>8+BR%=A;5Zj$Kb z($fu@L=lrBi~%L}3B@(*D|XGxeH9%DRHUD#dvx2OE9^8V-4#1byM1RK<=gl*DzVM{ zf;+WPam0e%si}M=Mji~rg`F|P)Qv5p8XzLPu4-(v2X??I_Oa&V z(KuOLQ3^WSbsVt0HoHAH#RpI^x3Y1U-WUgkuIf0ggr+25x5*FARm3B!sjlq8wR#=w zMCJxL8B}qA7m!W0I7}n+(QtgzRi|o4o{$BpmCI2@jxIg!V=(({HT9}8Jz*q3U0#jM zhj?_4T>JBd%<#7r{k$x_t2Fm}9Z1}0h{x-R=S*rJHcY~5EKbL_@6Z!^Ac*Z5W_-4h zx;~$01IoUOj4AZ0@FiE2AjJfTkJ^sXj|RS$gH>5EN?FZ}p4T$cvwejFZTf_J1T`Vj z^e8|29AC?fyUqt)hucNAPKPI)x4pN2=hfxsS9Vg=BKkxh<2kCtzFqr@6LBh_K7jHe zc$ccK;_hPa2V)^K9hM_dam!<3+!V{0wZ}YUORrx*g+#hxl9I>tWRyIXd)eHY_ibHAy=-D#A5<7Ky%~pUEA8Bqlb=lcULmoA; zyh$6L=rnHRx<_w6cF92U9lPAKT@VJBRb8 zy7_MfbMVr^(~rGy|IG$p@THsIICBsVtU3LdzzZHcvwxR?7nE4Hffww=;L00Kla|MB z?>6{?r0p2KoTEQV%m57DbY{oF9|9QMvH~!;MbHEdz@Xat&|}lT4gmp%eLH9(n2JKk#4wV&hRT`kwOXS6e}^l*pE?XCJ@m zseXx2^*?mzUILZ)ht8!Jwg^DtS?AKhM+8?ek39GI&1ajE0#M@F=4BIU5NSS2iiteD zb>z#9v(DwFL~ecEIko>Y0w!3e88U?c8WbGh-wZ$0%Zzg_zJlbtgV-xv{Sxwz@3A1xmlPJnDV^2Aa9_-qcR zx8n+?;95WXqJb2wUVC?NID0v5`dbbr!Epf;40_KbUBfw=-f$3Hdn#F1e&6}(t_^|h zOxN$~cF%g<-{JJ&1`bB9f4~P#@WAnf+C(Y{bB*c~fax7?t3OEVhs)93PW9QO`se9s z-`x-hm|(bj!9WQDbaqc1+(Zciuh(7@B*DJ%RPgllt*Iahp7;7rCH>B{Gm(zJzk7Pg z>-l`LmG@P_5p+gI1V=F5T240$jG+JAh`6r=SV2Y+uGtt&4KRXIKSez(1^_|KAP zd%94&Rhs>U*fiT<2u>}R(>qMFKkGGe48h8-g|L@G%dL{11}N;!DxNSFGp^=?Ugip-3NWf|H8BY z2*%au)hv1{t{#hbZ$H|&wD{12-~2}#ehLjB4=6EAu3{$e$1`arf~MFia2c~9QatIM zJC*KYMUo|t&tGg+{+g)86fS#1-gTEKDpOvnq!YAJz$w~j@OheL8P7+45v`edLkCA zy@wxvZS{kGN83lkBY5GY55LBI@DmCLRCqWpQoXVMssXbQy*?%%kn0MgfPdy8p(Rx9 zuKqAxPs+JEek{{t!rkJlkd9PkLAQvdK!B%M( zWO?$jVHGKfk|!so6hWX83g^7(eDhF=kI=Da9Zp=K@3ifQrTH*Pp!T#MZ*0c0mNg?; zArkbq4SnaWfo3q^jOuv6)-k*U(Uo(ib|mqlkb9bYQLJ-(q1f1n(>90q!{2mfu(IMV z+4xy$kGEazPP=iDudz-hmC~adw}0gupX}_J$5blPu$T=M^`bx4FQn%9Q@t34y%R$C z?xL7bV=<1eqAXggUcaeUIx*b}0_=9Yaz#3+*-qvOT_NfZQF|ve;-?p%88j9;<$ajm zUbS0Mb<$TnWMMvp#dfznRd{Ya69&%O(V%gW^#}0$Jz7Rnxm;e&Q${utPy_ z^7jckjGXeN{GuPy!5#3pYUU6zhTL&y9+J2=TibCtV`xRTmR`=`DgjgAaPL~XR;raM z$=!1=q(Amw4@#{GK0_4>hIDLkTyt36+Sv3fFrr+QBZu^H?$I`npU9FP9%9fisQCOq zr4VVlv-CiUlCRG5le;*iV`IKR9{KC#RD$Agh}BBZ_A9xqgalUMDy6i!VNG<|6Lje@ z-ElZrJV}WX#E?Ro;CIkC3t}ZbycMlNgy16(h@sjR8!BVXhDDREr)@-Vt=DFElZGyI zN84Hoi%SQB=%kZIQUr}>11)apX&ElXDtGYBc>lvPdNiCbW_B_LakW4$_i{dc3+REfK+zl@n)Y!K*Q&OH zq|!lms!Bg(H;WxR8Q?+(AtIg@6NS2%g~m$7;zR(;g>+n{u-E-wa#l6uZFqi@iYQBa z^y?b$Y|eX8FCTH|U0q_UB4uD|y+mV&s+3oD^usLsa2aRmt^JUd5rxK)~Iu3giKp6;Ut5G`_DQXn3q!p zmf;tUOs0MD=*D1Ew6_W%-^KXSxq+Z|Q`xz8s{5hIw3a=mj`=-rsUzyAw*}{Zxf*qU zrF(iZ{RRIE6VLh+(?DcA@3jFL+!gno>Un5#`WNEH>l4m?f8yLNe?GW$B$#%}Kobrp zJyU@A^)z;mcpntiZ20xy93%866_C4W8?K_jR zslV}THG1;M^F0r!+UUk}&9Z?qJe%rlzU*H++Ou_VFI73`92Yb`kPPQe4{j~{A8@|( zmBSACJP6=r3dt%3bUmJMCyX&jAmT&NHda>tB z4EDykc-Y?#pkkwEPd(Y%1KbEIvfvonsG>rGWL_Ft_SPkkZDa}*K=2B$;1~|MF~H*g zB52-L8=2pJjN@?U-Rai>+PE`$b!Ir(F!%gVwVQrT{aN`=|6=-b_H6Q6ngmDZ%jvbF z*UcVw?utiV-TbV6gaI#MS#g`TiyZ<7-OMk7r|ML^+``zgm(~J6h zZ4~3_rF8midU(APkNQJF&&AWx`Cn^XYO8^pg4-SUZ_=b^aw)Ez_RAYzNuS+)rvE;* zPd(T3GlMq*YB+dLRJ)Y;E~@CWyMxIyH~8}(PtX17^aJj>!)|lF4m6{IJ4`EYQ=NNCb>qAO#89T<&@%qS-Q{*&&;`O6xgnT8LN|t|d{_FqeRfoQNwP^-kz6vu6+T2}nwu`xVXB?uL zSbhC*3_bQbRW5q%KH&+iMJs?qT-7B(N)TzjQ^60WMRS47oh>)sOodaqMx^smhsA2^p61De?yZ6jkThAnDGtiMt?O|9YYg18* zMl6hA8B0-&F=YO6BTZgbIjMPyzfeV0zi7(``jK@YLLLhuq~?~y5$ zSF!qs6)1WS(KeN_LS0;LZ+LtAst4DuP|OMoq9v_Z$Yu#KSJCPK8Yc8MWT0w1`$gaVTP_Dxhy3l@F4+LLK_yl!l2lB z2=e2bmY{{7v_&2wmOo?~>#-e>OG~#3YWiyQ3@L)#bs#%@#y{$Tm4yZ7AcL;Rc&>nw z!rF$F$-WboSm8Jpa+npvGAdzgXMr^X3f(*u)V$ia!d0woxNCr_OFN9V5bHxE1VmHW-ZqX$O&J~qU8 z`kFmnaqrG%hJzcN^hi9couj+jmGka>AKvWWGq39|1}oL~_o;UDq8^@$_`uZzepE~5 zz1r%xuYdDnUtIn-EBj_)H-aH%%HZIgF*O0`i{j8e;E0KThgw}g~tZ@~#=ztcl8^C`xr_>k3D3%pw!xhw&{l00xi@BNqLbXk|ZDy(sPs zD;k4=cpHE+w2`no<2$etuyBG2cn9Mg9-~&JOLD!Vxh=8>(LXzxk%%n~*xlj{RazWPAB#);`1_DGLueUE0Zpo~jQ z;;!bID6JvrL;Fzmm49>f;}ch;7IG!DWBe&-KztU%!PsUUAN9v8<}QFGVFnA4?`B1e zQ-J0fPI%Z#D{g>X_kp}dzA=@`q>DskiZ(N?JR=gn3#dXHK8OgG#a4kQ5~?DqLeYLY ze881NTsTx!RUIKO3%nF>?Tx?uEARP8 zx#RmXV2TrI{DmVLNWn>vxvOCIHOm{;>*{dge4s6uf+Q;p1Kiw=%C&BU%vPe@uHhOJ) zzURoW4-92MvIivpXGu=p*M4)ftIn%#5G`O|Xy)y#{WC)4?D!fbqg)t;&A6b5@@O8=;qvH} zh*4Pbn~ZN|^dcGGXxG?9>>4o&5+hSr+4?HJ5K1@N3SxnqA(C2RctSi|98U~>)D@=c zY0t4!Ml_otDou8kI3>BmhqW2a<_Z;!vFhlK#?q2a^(v)6v|i1)M&n}#xfH>4flN)= zhyrFJUjdX_mX_dBtrpUoMY5CC=-`1B)Vep@+$d7qN3{6XEC}IJ>F^ib6u>(hX{NNV(a7z?m0` z$Sj(fM=}BCH|}$e0J$b2Q#LXTpvUKP7cvt+s*#y>)IbEc5Y|jxA}FCOa}#@I#H)wc zWTvW@>Uh|Y*_@~lp&5;9Ca`nG1vwBeI6kg|25T62mW)|W zPhWiwD@6d@XEG1NX1W?n@j((Kds1dOtdj>EW2rDt3Q!y(xvh^RdoXe`@PEa4>1wv+ zd*I~8LTr1$1eHQpq~{F(#9&0pNO8VSCHnsBUY}f8UYq0;l4(7su*2F!T!_rwPQJBJwY0>uR>cR@Bc!d?DaB5SJ2bK14(6uLK!ZVyepU5zC_VHz$jyiGN zX$`kgbyoNgt&JaWrcoValFL{^@b}%BlpZoR- z5AaJ!F9)nLifh7yq6~-iF~hg!(ZvsB!UDp|U@(e=kqhD)>6q+tTMWcpBp4+EjZPc_ zsM^JX8b2~XH<@^6Xl4JQNays27sJ@;Km9oh}MdGeZ~xjDT}f-OH`8| z9U0_8ty|%R;W3&W!=k|MtfngnMK$5Z6=tA5Tq6#TG)g<;BEe45k>Q0#uN&nOuWddk z!1@HLy|yRS;3j0_!2yqB>)q1jJ7Z!W0*(O_BvWv1MYFTeVZvJ-OZRAPrJBx$ zVkaX4Db3o)+$H~4-v7w*-<|ESqKk9F9B;&gFSU-*v;Cs?baFt^{|AazgJqSOlIhx& z61X%Nys~=R70LO$Xq+R*MpB1~Tf`&Yx>mDhT96ZBMiDlf+cu)skhs@fq+ zV$_v&J8A~wG*z-!kS$STx>b;qyY?J9q`j9&qOFQCQRU3S9Z|`Xv14^>s~;~yjKnXZ zO*<+~n2LD)jlQMAsbkisIlp$&sTEuA(bMm#9LB@ZV#UQ-UpR1Hj8#w{*^`)g;pq9; zf#wAdB)n^^X)N@8Q6baTJwezuu!$Q>s%3{oEx3v9TwJP5wXK;L*81UP(OHl8wX$3 z-m7!Nj;i%KO;sCF>KV`zogvrRprhR?+TSd;Z*o{k#?s=z1 zc|XaH(>uzb4}HLC4Ey|edp)l!D+8W4dBpKnZUOmCcRB+-&7|Q z3xBtzsA8&@E!gL_A9jCydiA~A^wVxdo@o5cGY8%}a9-cDq+98fp7EN_Q1`jj(?2%- z(b4mji#qcBGtORjt3%pQvt1i)N6jI3lUu)AlT}UswllqUa8zs24=(EQJ&n8Cr~GO6 z`HS5#sr$2WcWBSd%lenkq#!L$uRk2Djn5-Ar`$R9a{Iews~3D#>&`Q5^CtjXRFK|0VaJLRD>$P?k&A%XW#&QGLOrO8 zQ`X!SfHvq1-~4-m#N^ldWJMqIFpevRJ?9R!S5;VuigI);^8*XVNv z*fv-)*VQJ|nOt)WWv)=43e;ZLjSgId)geHYS$%2`o0%n{ElWC6Zex6p!ku<8(t=Pf z*LOEKvhpepy87RdASf*w^`k97TUK7szIj;*k9x2>)Hv<+~rx1>Fyq zcICeQ;dHJtlVbcz66<8hXBKlyCMtq(M}pijK@c23%ak}}EO&qBTd!aBmp?M$%M6s~ z&s&=pmB+c$iFD+>$6Zn)Q@Us5rsqQ^c}UbWLKj`o+{PTq|3Y55ZM{p*NL(8{g?JzSLZF`i=b77suqK&OzRQm{T+ z4Y@08F0SAgv~Uk_KExK6YJmkO$SGc3w7=N0j^Mt7m5O(x9qg=HEyinCwOG-1mrPq8 zRHF(zql)cQ<8E{l@%YLS7pyfbG0PgM*zi`4fCm`)vDg-h+twW0Sl|IU!tKJZryZie z?ZzS1O{c+dv2<4;;N&iHpi&Im*8o9O$8x&>=KFK1P&7@^UM0l?qV zw{G~}<-N<^{T))i^GCRPh3)So=dl%?;YZWoVda0=dI0$YtF3`1mmq zS$7F}rJ{@3pja-HPv+mnldi#=6swuJjG_O~71$t^uOwIKde9Zyit|juc!V#n7ZbY@ zuhN=0Pg5p%W8m|!F^4cnz4#-@d?BUMb9@yuqcm7AEw=Cs0T(kFi;+m@M9VF3U%mlV zxBy&dYW)70)OJyhW|`t6>G4@~kBejAX@9^T8x>bR&>AYTX3&(wLJ$SHY-kmkqUw0+ zxoj0^jT{nbMQu6}VZ-y^zx9unzx|NJ3Ak~v=fbINVBcq(3v_#*Eo)TFLs?cT3O&;x z=p)KFB`WbuC_MS-95B&iY?{$1Yq#dMlxp7O;yLnZgk0dVW30#$K$k!1TO4a*gOt1) zwv{%;u4kUw8H>wnYR^x)mvQV*bir)=kVvQkRJaN%eodkHP19bQZYawhGby&!l)>Am9c>g^?7mFss zIoJ+0tvF(S=8E-7VG9(Um#^T4<=4OYfBo(UmoIN7%>=1Dp>j=C-qkg+zLIw;07#@@ zY7uig6O6_x+XZ3^Paf5o>>hKXfOxCUf zxL{I<6d-~8=rwdc>EWtUS`52Ezw)^gXWD1&DLP>tctE=1$|IbWgCD9`KZeMStmz&ddd@Ghw^;rqv9|QloG*ODN2)A zQI+@5P-$wV2t6ltRS%4uydi5jZbUO@i=B$mfUqjvaivyafe~!))fWAvV*-ZV z6Kvx!56F2&Lr6sO`eMLix`wDXHIf<-^0<)+G*ER?sSbUI%H<1)VIc+ltZ4ExGZ17b zu?v1meY?F+r2qlWoS1Q5CYZXKU8C)MKLkYUT;aC)gL9)l@GrmL{L|&f{<)OX39xPILoVnZBkf6}$q2P7?Q3AfuH;`K znmm)!`kgx~G3aNaP|Ji6Ed!5wAQ!}tAYs`QXsDIvk>3FXv}jB$zjZ+fCf)y?Vmbs? zrcY3gA+xEQp$s@q;&xjL$1TkrEu zP(szra$$jrFouOpgOQ;4NmtkOpu9urejRzfQeIgpO;&1n4qZ$Q$mwF#t^-bA;P-2f zDJTlYb-$S*>oVsC7c?_Zr5IV2I4LPKx{4V}G8L&VAACn8ow)AD+ZlDlv{BcUg&zmA zsLe`&EKrEA7UL@&a`%-M+`5vM#TiewokY6g+B*}rXd$j` z@ClFXiBkk2UJkRs?xu50IE);v@zjdAqNz1LqadA>{)>D_r5KAYegDkapDf*eX+?zz zBb)tb-6Kw1VK^>Ux~njV9vFx7&KNU3B-mBuyyt9$axxaT3R>i$A`d(l#n*$zmbWho z`W3S%f`Dq#L8Cp6Hz3YbsZ3bt!MhI45R;Ot)y=S0i=35BJx49dQS9@#B`XcQ_COo= zSfNt1syh=7fyiSK%jBvOpbQg%0p45`_@ytzBJ3!uzG`MMuv({s7KbDvZS7OV)>SPP zl$^0P+2MRPwg(UebhN{V{`yP)7k<#$Nn9zN=5aGAuEO57`((R%)n(R^Wa<=)!1ls| zmsP_cm@O(ksvrYnV_~MSQ+$ho7kKoxF||HosU8yI&L$vl3QVGejj+`ETf_cr88ArPmuIjHL#%9}=N1eGbAFPWp(A zO?bPztA0G3Su+Ldx2oc~MO0a>#vEpWihtS<&0H)sk$|8jP_(>6wU~)XK?9=mh(`n3 zv1f;(SlJNL;VTT3bCUTslQ!UlDKa|HbD4*oN>PfkfqIlOW%ZGQ*-q0+g_0zNr-Yxa zh<9sbo264xJ5005DO{n1EF3_XaP5R%%<%*II-Pd5Ag^TQm;9CrP3i_h(+#jg zwJ4&8c9I}eu#j)`J}D<06~$&oh{za3(}*ytd2Qr$m5$npl~#(Wp^)S)$%kNx2;{UC zg*J66Se4b#KxiW^X$%LIQYv}NHXjFMkYGMAJRMhEm74RJg}zOw*e$U3%)uQ)AL>si8%4z|ubP-qWaBcvEd~y= zkF?PAH>2;iL=I*9=&eEmp9=z_)0aU{XNUc;&F7}vkt=x#tCUt{lKmV~34hEmmnh3Q zSxN^GEhQ|Troz%lJ)i5+QiN#COl#(KW~9=&eKVqvni2iUx5BI-u+(zGjpFGjLK}uY z@{gJZa={FmS@laJTYl?rmd}4gQmzD?2CJ!NMHghcuVDP{Qk9G|KupkRG>%oR6wxQ> zy70eJM8)(DR7FB7*QM${WH#u$FgFOox&gs5f?w%Gk;a6oju zP?co^-71j9QBMoxRE5^Js@`fE<)mheTXY-KbI{5e&ve^x%F&;876rJB?ouxtcgu8q zUM?M(U&P>umupks2pHV@QyVTdKe@bhQ0@>i>P~$;g&Mg>S5B0})gH~|lWtTB)i|`7 zE@eB0sE53>%Z3V7#4_gBfGs7!bv{lg$2DnL-Y-d|P+niLGoKDaU5pGC^|?}DKo*pa zt=o5QD+t-_hb1i+(#A7NPTOpXRWM!pZo`e7g6t^p#R*)if7XzFp zdCbs^7n28Z$m^mwQn6?5s)$sAQjz>IW0xA+LIe7e+>2xO`{YuMu1~7G2i2KGMeFkF zlhg@gTBViMEy>i7UwN0(E4M|{psBRGhnJG1+~Pi0UTAVk0y;BolB!e^*Z7r)8gglQjCz_P<(Fh98(mSZ1M>|6^WU-psMd3jxXV^^;&$iU0B`Ti~ zN-lC5`SCnU6aS8A+m`yUxY2qmF%)`~wk+q78Ec(vv94&bz{RFyPoS7b@=_rx zwp3mc4XR*TQD-v;h~%L#jaf&Pli$Dg6Bm}Q>0~v3ywG)If@j&lCIPw4 z%E`W>tag}JOAA{}qSkRP<$F-VExT)-(3FA6<3(}^L-#Hs- zKefzr^JXQ84QSBx0#O?Yd0}Gzn1>8Sath@S$qRUp6X|&=W7?8W!dl`xUwK-J3G(40 zlCKlwwbV=kn=hqi8Kp}pdZsFW$SHYPZnaYSk$AnuVcp7%Q%YVeJm5J31xX~#Ui(+q zJ@}=B`WmVs6?kk9~fX*q1Uw+dAo!YAPyp$;F4f2d6iC z?^b&7l`)9;GcQL2l-x4?%U{bwV?+%=1V{xbId7#zO{nntG2UeEDzQfLWLv6~6X?n# zGPIyQ<>VHNRW-_@d7#1KxXB1%&|_d7B?gvGxfIKKUUEruG6dYW`u^xYUj32O|GS@l`}xxTKgoHC5Tf(*Y6X8lk}IU9+U-+n+|MVKw9olEhehe{rA zE8+HK)3jD}6KK=&eDvvXTPgHQjiT^gOoKnIMh}O#m%?989U;WDu_4CCx`{B7ipZf>W3BE z!WG@4VChy-D_vhb#({-u?BlW1b)L{x>;+_&HBOJZ#MVh13HU7_J9Y?_V<*LGMl>5G zXi|%Fs`wwz2Q(Ucq7hNT&O{lK%dTi;j6%S5=Lgi<`llwu0}ucKks<% zstq4BV%%ah{Bdl1E((Jici~up?%0*+@gMDuQ8?E3o$xD(@9SZ<=*iMT>{fnN`Tsm_ zT;=lVC4BlE8tJZXMjnjmE+w#{YEpNV{aAo1>wE>i2~A?9!X@8>I0qO9pY}PrIF(Rx zpYO-4z1N+h4no@+@|88n$gv|;=QDtQ{NdOei(^h*$92ubNQymI+(}_}4D3K0Lq@)2 z^2}~tQLz<6i2{8)3kTc9ICK}c0qMgbXQmpM2B9@JHN3JK8K+%kaKXK>gk{hwROZnS zl}t`%5n!ft(m9%Wc=l&cJB!&|kpX251$CF@n4mWGIX)_b{S@i3>JW>$2ec9x%<%5G zG~h3}t(1lOdx5^xJc1imK8A60(G4mIz@jw_zLKxgi2h{Vx5YhzbJ{C8(Tr2H;MRj10AAek7+`*%Ja+koEsv|Wf`dQ(@S%smzPx|rlb^YKkfgsoBT0Ri zwj2ayam}m%W7Ysy?4I3!y`-7gnoExy1O$?_&*YGor{3zIVD3-fYUbdV`_qdrT-tgQ z2$xQq+E2Xk*vRea#eIANrk}fFHf-C>WiarCBeKB;9Rf$HBMOK9o0R_{EzqZwKV_aQThKG_Crg z+BE!l^DSxBH%DHRq&Gh^v3c5$d%ZmE3xLI2LF<~&4-CSTt9SuC#Lpa z|JF?=P3>Rv)=iJSAMU)~On1ESS8xXi$+t!xdcS~R-ZZ^qm?Xhhr9A?E`FeT!@nO&; zCF#W+2J>+u1_pD-!T%(YHCsLcy6W@|0~=0V8ldXnV0N3Nb2oS!9=h~%B!Pc9{K$@* zXw41Yp~o&)UwHiHemEh`8adm{8?z<8VS4`;B}tJ)3r6198s7i{CcvFvo-m-8G-`AG zhEumo(t}l!Mjn$Sb;I-yLG^r0{UVV^Mg$B~uYh4PYH~2l8jz$v`@dZG7t8Gbmk3$p_Y`I#u#JU3ar7MK_V3keqH*ipg4 zY>bp=oBp-WC*9+zfF)j&qhSJ;2ri^wAD-&qLi#-~dh_M>4T6Rlomi+%r18d50R-nb5A^$sx7;s#_=rK=H8jayzI}_&m`@h z_N(O_7cxh}yyYUmkWSCs*=pJW!hCK82-7?AY&2iq+%_$~`AUmZ)8gm+9|gjs#oL#X zy#oI^>0X!APLE96pnrC!yE7X6KGz*TD(&6a-+cxBv+1uNHSPT;&O+Yap>&^m5`4(A z`?2|+OV0L%9Q^Z@)c>4Hg6#{*KzUq&h8fdhJ#jQSebVnsofB!i ztNg=gn9q66Qab6Eqb=R-iFDgxzuf`DbmJ}2t68)sF7NaI1kBH$y7m4)`tjTU;|dO%25@m`ox)%-|QCP(; z!OAeP*z))>y*y7O8jB^NV#}znT$!MZQ%E%WF>MlL-p_AI-6)uFCDOS;Me`eCFQOP5 zs{&_|iA9o0StyD&Gqx{=mNC;MnTD9a&A5<-g&TU_KD+Ae|NJh((Aqve`n8%pV`#yU zVfA9Hq-EZ0VRm5NRhhKavl`vmuwu^<01o9!#L<(ssQn&vLTBli_JZ-hg zMoXm<>}iy!z7QAdtA$izIgE9vcajsf=&RUO7HJeqgQQC0^z1U9Nf>L(;unUSIo&73 z3mm&^3LE8uU*+SM15-X9hDYauwH*09TGo8@ugEz*jQ&*5Rq<-i6fMpAD>{-bn-+1d zvbM<91-ADErThQon>RkS{5tJj2~hEXT4X_AOeIH$ww^6SbO_4}yxD6{yGxmpg$g!E zwYsw#g}f}Y%7zxHyazZBUPUdtsKlQ{*AqW<=)hC7XROUWAXDUuQv(@VCogUlQ8%CV zb<~R)!Fx~o6@T8xbr#dLPNI#Yp#o(YdvPVUV_J@F;0+czQwcS#uG0cr%H{@}1-uKo zSm&%jqiSG1LSc=!`;xwQ13=GZDhmY>2*fBf~oF*>n z+5>@nX^l;#B&@<5g7EAp&^s3Y@1Y<2?k}%w_@R#CbIsyK$R1gItS+?sJ{*IF1>uD9 z-KY2T&AZ~|XE3&|J>AcqSP<%k^w8ewm9D~KdLfnim##}YMT3-#r4ws@bf_9lJ) zsA4f62fkw%0HxT#F$M<&9IV%lxn#jn=mxo4MYdwRszp_o-VYlXJHgZ2yfHnvn=CdI zW)KARGgu}wuSNPvQGVzs566bpP<$hEDTWK!cGe)K84-TSB@~4NBF$A?nt+)BixyCn zmsi*aBb9{_q4azUPev)kh-=|@sbEZFnMK(6LRa?MRdiHR?i|&?UOK5QcaBXh#gqYn zpovPY1s;SMRx84+W1E!&ty=}1hQ(j=!&QxHobZi8O`GN;vZQQ65aQxq)2T!(ciwtB zsEx8aiw)FaQS(DXH9z`OUwiZ0&)wnwW1*6vZ{*SC>9CHR?X49U*{X$bpk1C2_^WIm z@&j6CanaxlkkU#Mkh}zH5%*%o8X8whHJ^AaM8zT5jF}|G$fW~{5U7ErDOPc#*g$SH zCg3^?Yw^6_Qnm^Vufo-`k%K6x-`q0bqM2; zI3OSwGHvaDBI^dLQD5|AI+?PKZ>G9yzUQq!PKQuDgT2kZ=o4u$e7B^3U2zFEFC<7dYkm!8LLy}=~t(3tltf$ z+-Vp><|&WbxkraLY}DUIc>X^x1{e{_N*^ z>bnPSIlFM!xw}3x=yPLtx^8~%(!%7e(Zq?`lib)7FVxDD>6Yj_&R6|)w@uukh9`m6 zOyVYcMJIY*EYDs_r-C7W6DK_vdPWlfaax6*zfo!Y-nn3U@Yz?NJJP-}xo+Fu`DHM; zZhEoYKEZLs__etD+ZWZ1ji23CJ3qMt2j_I(spPkT9laxdv3zmn#^h&%`uuITdj6Ux z)8~(q?hkF-p5A)xnLfZpr$~>VTzI}5IHUgbpO!CXU*S;Xz0QWY`LfzLx((3Ha@(%m zl{{Y_pSjNcr9Jnq-!S*bd!~MV)PL{XL#GCh+!>FY_w;q{`&}MtpYETUICnffwQlgp zus{7wd664?j=q+jX`G&_))v$0Cl~zgX8WV%`o;9+nSt{UH%{L+@az5#=k9Hn&Lz8J z&}DmqpHFx6KhpoTTN{7A^jvv#{-@{eN$*)I*S6>sG)=x!Jo5+f$iWrj(+}3KW%t+{uTErSiE*bPrcs-zNYW9qaQxgf6qm)_9CE}H=aKd&3&%? z)zjS`SffWd6gs5-wC7^heOvdrXQKU-<<5LBO?LeL>p%bf3qRS}#>v1Jv0)9w{hGN_ zg$VHjS?I)m$x`TD-fT3#rx*2bDrTmy*n9ePcNXb!u4H;dRQCD?H=a?+MjP9!+0mzc zZdUdvqOm1&Wv1@)yACU+O1V@zP^_bK7jc6m3ogVHnyC;Vn5K$O`b5zdW#)|$!N_Gb z6o?E#T$3ad_)=e~e%|k+hKOU11fTKyrefKQLKV>|V#GGnC2C5M%Uqm`&f@8png8T- zoHAMBYo1eWfV7do3QYw8XPERW@%6F-Q$+WW3#Mj6zY0$G!%8%B3-Qh*XU^nuz6g!uBE*x=T1K3e zRWavDD|SqUVwn$1O2ukP_MF2aR79<{hbtWpu~yd1P$=0SEn16(sJ6yp;fL4;@<(dh zU<;oI+P&xmyn~JA1E=#)m95aU!Vy7@ zz8Q6C^*~VLByEyK#d*%$;@oemwkn}7!ZrQrKp$1@vMmi}&xIklH50w{=Ra}(y~Qto zcLl2C-Qpn6-FC(Txxd)*=vrj~p_*qDXz7jL{n2w>c(NSW#o54Hzi-KVQ zsUx0-65Nx;ILTtNktz|?AR9uGN(mBjTG2lGuLQ`K2W~K-UnQ^hpLB z9ovdn>##$cIJ7bv1#JmEAO+c&>r~}!b+ox%qN{0hA-0RA&tU`O4UavED=XuDU^nTQ zWZpxG6~s)&m1e9%Dwfyim7=Y+Svrtrp>DN2+2}`f9K{X#63sZdkgdc+ERKr9l2_HL ztb*%jeAb(lj#A3X*e!u-Ce$25*^sy;wq@syts*a{3;Iu^eT#*%eD>hmm;dqYH?8cR zXV9i$>0b9p61rt;>f2T^WwJYFf+9R69fT!Z(echX;?|Wb0 z9v#dCX)#*+O1C=i4Fy48aHnFy?sb+p92Os(a9mD3>`VI5`kY3|c{)XtW-52E;k^NO zf-MYoUs9-lQhltaH$JFloZU0tV!CN?%yH}2C(YjYi3X=Tw!2>~99do8{ATh#wKSAG zGd^=beWB_P`O=l=>Rj1vd z^3DV!>W1rve)2%Op?6IR*wq$)RhA4TmF(H}UHW3yql;5BQ^<8#JPWeseE~pMv*q!i z@}dX$(oAw!vI@H{x);pP@gSO+9p`gmAKmhF6;1M7H074}wwJ%Z=U@Hq@@@YzAAd5l za`Yn@&9c709$0PFF_HQNQt0#RV>RY54TJ@ZR(F%;q(UsSURFNs=*A}$R&^{M8S8>` z)sV;5eikzEWR09e$<_CD_g!@FRC~0Sc}xTAC-iz1+^v$s>TcZ>?*S76CC~6#jk|Qr zj6lK|uv24kuWySrFi^@6(d4a1qi}f5Ze1BwS!K1O>Qw1^6{9S0S$|L6i>Gv4PvrA{ zrN#Kf*a?d>EduaQa_*bo5Bh=;}oa0B@&)fjFhT3kUwBnHHFmDRt91-rp zc$SBcVCa=n#G@x4J7EB%$}lhM3i=aOt?vnHK_h^975%b4?hI{d47b^HXP74fdNvZx zD-kD=;Cq5poU-A9D$H=0Y~H00#6eSs516}>&|cUQZ7Vy1Lx<_M{LHsM@~PFI`e7iz+2wh&1=?S!VD*e z0hs)XJKf~AO9XmF8Fc-``52EL_Wg}#6^-JVd=-V-N#4K+;Y_S+2pHy+TfyhU)uO=&$;zL zdVV|G1?cFy1Y>M^@KSc9ae8+;`SA{@r$BwW|MS27+CN?X+zTD~k9JtpI4p6NaJT|D zJdp&H3-lUX^5Pu}(V4_OE6y9$j^v6kgaYZI^`rD@qibESFy4x-VtC%;bfwQG9MsX6 zGYdhCJ{8AS=yQa#04S+ybsWGBcxh#y~?(w5QKtIFM z@}2tko?U*i#yd<R|dOo^>hk}x)o(B#?_v+2TDq_Y3CNr#;iik<8T`DXBNv0+YGNpNF!QBWYZ-| z9%~7e!T3E!LiaI^(=0Q+sy^^F^Sr3MGQqwhqU%OT^Ek(}u%}ujWV8Tu3U|Oh(iv6W z(^f}>LCm;nXM%V}l^tutScJ31BwbmZ?Mwhx?ngE=wek-oEPHwW$yh}69r0+pzUS!9 zw!Rjj9%a#NcQ?XTlx`qIvF;|?M-kS6ZjA?^NJY3JYI_oFGpY}+7MzsnwJbQHQKlXJ z^?!Exso%My(E;zFmhcbdXff;iu!dzuIm#It*o!~R!9-k~S2#Gl$fp)$q?9i>)mNS3 zyBRp48-{r@!v^kM+9`h8&p8;PBC+@9Fg(l|X!TAez42i+nc&Zm88(`d%{_d9s$XTC z`NB?~Y6=UR2iSzy2MY)NWKzyKUe81eXtbGT)d`{rL#nGf=;s{OeDc^ZSX3l72kE+S z5tcHJ!qUW*SyqlyzcbB_=~jE84XB0;BsTBp48d^(1<7jBUs0!yFv@T_P!9GqEX=2B zGrta?8KE9E0t^}$h-UQiJkzNt*-X*s*YIyutJ~FLFdBSp5G&oI)kF;IVism_u(d0} zwm=uc@DVWcg8TU*^J_BdMh?B{(C=Qp`?W7Tv|{PNJ-QyuTN;2WzD-y5!ZWUyEr}la z?$Hqsagm1`!53*~=^dGN7SniH^M;T@;t8I+2D zcsqbVHQEtg5ELUBeVDxg&I{4AW=gqcTdWTFt4>$+xbOZyq`eQ6n^&3UDG7xs*vwf= zQDNZ}ASrTCoTTHV9oqEJLrGB_;RJ|rLJagYi6=8%%dkt5F?7X1cj=4lC?X^=B-`1U zp26j0f?|_R8{$J|dzntTGfc?z0Zj0~ZtpCZVYbtpGm8VsoKI;4L|Mg^LPbD(q?Rs4`o$U;dK^-}(L5eJj=m`x41=5fjr= ztvkqfYRy7zILJq}Vq-SHm3gE!)YL@W*nbg1e4oP2mWcHF92()Cmz%v5BVKz772xV- zC-+^H#HsQXQw!zdOrtm`*Jn}iHsN2ST!DyCySdw~4W`<&?K(x4Epwco&R$A)BoW=4 zX>(U3GDd4EJIUvY{Vnz8puN60$lWp3VF>Ft56eQxSr%#n^TH_@2 z*~qMpm6FqT9xS-WrX~GaGs@R!^G`jZ+TL0iTou)t!^%{YyOGhIYcsha4j>v(dLt<1 zb4|ppsQUG(+(pPyI*Q>5{C3x}5cvLD@5$f)<#~U7^8IfRFiv$t`EozzNV7MDDF4K4 z_)&O*=Lg9z$3M2GvX9(vrT#AYv(w*Oc1WlClRtRR|9$ASKmE_)P_>8@zMy5cSMmuv zxu@#frIy8OY{^rWYj;$RVz%tCPMvq+ey#a*eHH@5{jK@VLV;h%Q~qRH=vnZtqAiewjnm-CKtesRa>|EG#A5OvU0uAfEOZ1$juf32G4)JezQ~EbiL@t z_gNeM#zNuQLe2(!|3!mQAverjJLKn`*4exacXgz?Hu|&+q-<83sulT-YlnocmOfo> z&+GS4NZiVc=ss}|s33e2J3wKsnTvFnKU!!vs31NJ!`fPiB1jL<6W3d{*3`9|nI<^e zXt8zj&>cVc@!!4og+$lS)p=q5imS`Mnmjo4>ZaaQH?9v*s(TUD)yST*hq~wfO!wT4 zgXVbR`~F`1E&la^e=2?={0d{aV57I<9WD;uvdu5sakTjw4lTLEPc?r0roB*8ckTA= zfAjJSe{kO>|LBTphgw_ol(KKN@U$xO2s3 zJ$J?Xc=}7bp8jTiOY5U|x5=M34c0#~*w*>r6<>N&_t~9;XK!nhMB}&ka%EfR>eBj$ z-#$3^O@n6}Ki*8+N6HzuZh5|4`cZpZboJ)J)iZ;mop;we*PVCW)8}D`zvj~N)=u-! zFS=@`v!(vs>&iQca&LXQyMEBQ=%Y_xRi*jzE(qUr=encsX|DfLbIbVdEpye*l{Zzc zgt7eSy3Sm8|3zC`7Ztbc8eB^8m076s^w!SJ*KB#RvvaWbQc{219vwQj{%~-V!q9;E zYsY!JhMPK1*RLt<96bG=*7+Zu+46klM}wQUp2v^6zuh_ixAhuZK3dr_H}mx#N)8-n zefK(QErTt+=PNr0U%$0Y38DMe=F_uhf3r1Mdk@#$*BjlN2i>a%=TDvA8(#!%{rb3a z^+n7Q!_HvMTz~7)>e0Io+}(M0T)C@oXMfEUZL$Bn`YisDXzK;VJyUnReoL?QrOL1q zb$(cB;{t!MbxUvRD6M9(r8XJ`>~ z?L`@AS7-qdhmZXvW?CX5;P?4#-6yc)Zr-a?m&8Y0xohLZ#a0W)$MSBFfF^s&{;ihb!y$|PNmU%x+R9o zThstqaqz=PF?hco7IWuQ8mE3%ZFPp7+#b3t@^DZe^jk&6x&aXkQ0%WnguZW+x($xv zfrz%&r)oQRO#J4^x7No@(+xdQZeBOoIl#{zb(&E#+OzKIR(t1_tltBS`QM0m>chu>@%KM^@_!9oeF?5QD0rT~$0ybw&e~gdX0dIg zZZ=A($IN{3BNb=-jXUliuj>9u^zcuKv2k!vzucg!KNy5}3xA$G)={||f1KQ+`0l`7 zUrdfy$!W&XFET(jzi9XuV3zj#q`3%@no0EeqLXjA`rbc#&AI35&$z8A^liQ((}JDn z8tp;U)wYev@xV3^9KYHs}o9(T9Za~GkI6l*sPa%dhAU-pCEE;gi=2xgJUk zM3WKg%r$k5?Ct6yVDGY0jTA-Mt%NdYaXgXrdZ5D zZ)fv0R`f(#k#}vxS;y=NZJ6b6r*b2HC3nXlzW~>2EaXu*?yeUbxrNs@sRQaH3ps1@ z3rE*6CWfkZuEM7-TG!N{F8zGRg(u(j4*Qw^5+kLNdbY;MoZ*e*PTdwbWBwMuuzQ@j zzVsAJ6w|+wetVOl{LAp|jE*J!TB)n~y$4?Wv$vl7^BerDb@o^4ZPxv5i?+6>>a(n4 zYv;OXZ{_;Ba$_p$R%soDQqOK`=MkYdHFVUSt-a^VQ@PnqPYBF)w$GteNWL>9 z$x?q%gqeI!waRX53%{dN{l462C#9QiG3rDMdESI1hqSAWP2!rTn*O4Xo@&h&$>(VE zU0NW6Z{_N(DjO`KHeE~$6lmKORhKbAcW+$E;jLJqv_3tMig*p}#$&>v5>p+V<}bdrAOFP*_y32J z-+Z_G9Shy$!?n%T;rij!aF%2WfHkL>C+T52TYx)9^=PWxxTcrSMUB11TF=nQc-8H7 z<&f@-njN044GN81iO9kGMj*!Cg3v)8S7&%@sy*@%b#}P5_tqOz1ijoK7ey5t6nlPl zP&mrAC8IoUQf@@|b_c;FS8wGyQM94)a6>QL%JnPyr}MT`u`{=3(Cbe{l^QJpOWlr? zWu4<_wt)$0A^%wgT#oU|c7Dx|5D`$pIZQSetVt^ZOT4BcW`jR@>H__6&1>n*{=-VW zSwz8U%?%^ob0MN0TP{<`%N^}Uxn^|op_e}P#@Bw~){vaxci_TblzC}?vpm~^U0ndcDC2o@-8@xJ$NPf-gK9ms+D1V{PFv!(fjaH#ctJ+Gg(kd~P zAk1O&u|UVCi0XVQR#DQJuU6p1a{}#e`E#2{H3O|F+ByBf}Zo*#0JOE2P&7B%t-F7Uy-g+TqyMFlWHWjfFQP)Lr0U4ij z&6UDob1ZV_@O#9=T9@bQkoCsR96vXGQU-}%V#K*{KtAziYLu^v?X4*eI)mDr2A0oD znU)v1qS$88c)zI4f3A_7kqq8%Yq5tSpjWI`5d6tKcuf+eH8yH`x_RfINqy9+Bnx@c za}J_8%b2!@97aKZsvGaiHG5Qr)Y&qx&tv_VpG56un^)wBE3{_i&7W$vb2oGBYhL`x z|M1g)^13&F%wE7QX$>2%j~iQn;8%Eox?*H?7QY>@nCmd1^Q1mPuGjH@nQQ0Hfl2U* z&D0cQf!}T;=-O}TZ0NP!_~r1_v0_+ZTsQmH)?(8zFV{AA?I)4@8TUIiR1bUSg}VDI zE@oZly4{_30xH<>FUcjLa?*`0{g@bLS4EzC#!U32Mz8ILi$8{T^JT!;F=}u4^q;=w zy`MSDeoKG)+l{F@{nQ$}D*CN!qt*hl>Q=gY)-JEW(dxPC(`yE|b_a#w{$71}W4CrQ zYP=;us(H^ zp!HN8iyBiFL3MzMk~z3I&8KbTHa2<;B%hqL3+9*G+bot_xiW5NI%P9#3k4d$qE2>+ zp_d-b5uFEhp5{h9ATL!4{*xO%HH0fnvGQd~1dv%{p-YvBg*?pP@;`lmS)h40*W7?B zaImr7Q0L!bQ*Cpnnp( zlEB6`za>x%Bin-oGmA1I; z0zsgcYYcPyhq-s;JNwmz!dBSCuE~zPh5gvABIei| zd2v9*j^iW<+oNlva--F~=7OgOwJBbJ;lH!n=`wP);?addcXoa8rct5xh7XqP_+##2*j^rG-pd%oJTD}Qgk(;=X9q3SQH zY_SY9xWb6zMZM16!D2HvqSt1n&aa_xHi|b6w@_!{jI&;(T^v=;Q{NwpE3MBFn-=o5 zmZAd}bf4EObQqL~&kYO7wIQWSero-jHmP@Mrv)J3IZbo@zY*}^-o`I|4bPyYHp;D@@=xt9fMc~~MInGUZHWUIBaHBO4}UEb5(x(C)z)iyU; zxCJ>XeT>fRrM>7z#-88gQ|4xG-I8zAiX6{uac}+}j)Frb22fGwP??$COVy}}N1B86 zf%tdyIs&Tb?{9PZ`Aups&0-F+l)tAhn#h}V2MdL0y(k&8d9$!kV4B`rdA?GJDDCR~ zHJ}A{apPVtx4^jDDUU`Ct{(OZgtbs86=D^1#GMEOTvN5F*~M0lDO~lwCix2=jZ#vc z77lk$5%n0)Hl&<^tY1`EQ+TRgy+1e0NvT&T%8Q@Vy0)AD*d4E2K0JA1+TNU@FKuaX zdK61%sR`+rXmyVdlOrp0_Q*zYFVEr@E_6Db*|QgRR&MDC8MFB|$KFHJ9yW{A1UP|0 z2REGz8;OPd+w-+nF+PMrf}27Ccg+v zEWdWZmBvRUymoT^Ze%adJCtBB`-l4NVNT_--ol{3SoNyW*65Muf;#%Q78=bd24oh# zu)o@?P4zl#y8wwP=E`uZy#>2CcXFip8r1Y1-RsxW6}kc7W7FmW-KOhQqIZW|Fy*OTi+zzH2 z`+NS3r@GvyF;70%6oaZ2HGW3D_2&vx{8gdDh(w$sexK*4h%vF~F1I%B6d^~y$x?~a|(`lZS+gXdI+HEEsU^2xH4Z6asT_l{Zmlj*4%0jzPul390Ca0uwKnX+3W}%0s zmafY!yoS|fq_5>ld!REu7~*6dG7?b~<<4nV^SOSFRLKUTMTE5TdShi+0bKh_xzUjF zW98Zhb(}^1e2pNxFjeVXTgq*`W6jh<#kZDcZ>ly9@bjr$jSHKz)NkL19fl9Wb8pPo zo+h!CSmfD10C9T+R*qwFAutDn^YzYuB`P zU}1`ji(F2(^B6!)F1j7fEpheVHMOxfq!k@OHPRSI_A@vGc>qsppOf04!0F&cW_uc@ z+}`@I(ZGO6aMZ@eeF2ceC*k9#72eL>NME*#i8K*?`A5|>{5MU`e=zyGKE4##HqbD*SW7e+b_;8_7rY4rZd$-^&U1A&TYu& zwlNIE;Ty{}C`7N-C-JK+6k4U)S?}9l{^NQ+_qjF2fBTx;p8na-l!wvA&-tw4zS4c? ze7l}+A^{B-n#D%zt(@qlqV-g}RarA?6+cs{z3y{0CLsibt4dMst#B$k8I9cVKyJA8 z*q^=n-d!i}e3w1P6;R=7Uej+68554)gl*W-#zyN3%vRHDruH!ge^}kv@7YPM(%&?P7l;RI`)I%??|4UwU+? zxvm5KVgNYTPRbv9o2?P~sAykWk6UwJ0KnYXx)=Epgx z{}tpluyeqftM?Y3Xyl{eQ9>haq({Y(X1N-hEacBC-jRQ(IGum12p^&IiUE*@knqD+ zpZ%u`#A;sRb9`CP)ys&`1YuoNF7#&${c9Tv%HJ;ar=Y9#mWHd}qW$Fs!VK3Mw{r>{ zdK;26e5zlLqT1^qC9ivby;u15kG}irYkykt{9c!#yKUUcca}rwge>qn{>J>=Ea*PL ziLacnHiy+9Ao*JUKQUJ3tt24#ht%`?0a>z4Tew|>+B3=7B^ zybEVpzoDNz4t9!#yc^uM ze&BBQnFAM7OY+)4zZ~CYd1sKv<39h1W_;ykxZP!6^-$JVche-paQw%uZ~iYQ|Ll_R z>}PNR+)9P+w$v^?nXdw@m1Ud{95{=N=*s5E$1 z%4H39#V3ZxOf_cneT6_fD*Np2Let+8zc@|yBi<5P$AIX2WdHT9K435kyrsrKH_|2h z&R^zvWp^9$ZA*SlowSZo^h3{c;Cvy^z%o_%-?VQ!oQrr~Z>8ItKK!>AzV4Mf+ylPO z@-sdIKZb@d(A@kd&|N!h|M`(H;t=o@2iCr}5B*@tt%hQ@uRmRZ8~|ZtRq_*Qg!%ux~gfJ1N-vY6{b@O(Agc9Uhd=-E#5Yy!*kEYtPpYxQ*sYR2ufT z*7tXmYl8+mRUBw_qVtOVXb~BvR@l>@8dj>DaAFO%-zg1!o%wiF$=@+zz4KHQ^`m}| zs9UO@Gu1{Yi8x`Ko0vi?jNIDcO!1b=kfnK*+&#luyTm48`P|z6#&)aRf|EBSuPV2m4XL#ALQK{Tmx~E?slJ_4R6Z+OK)pO^OdM&b}UVqqsszk6} z=)<=UxAKiDw>6`F{y=r1g2vJ45ftz0H%Ei~=f}Nhp?|pFFGg3qp5$DETdST`B5-rS zwSJTGM?R`tk>{CniY39XMW)cd47=%NWMLb-<12ZN*=zXLO6{x#0wO`HQ_7F)xfa|_ zq^on^y4>i&a?~F-hW&;9)O~MUfT$5H?<;R4a^&lrZp4;eF89yN$ZQPTbm5+IFELqtsiKDi$FLSio4)!VQ3c^zF<8~KWS2zSxNzouVg zGosqC$T{I-)i?na*ntMSO|DuesVkOe!R}4{1q2|$h%<0wpR2k8dbcbNct^4qWoo(B z`kPc{Y0cJ~ygBpPLjJtQ6yT~wC2a&lND{zmQ#z2lBHo^gUT)3nkTFmfBCZ^uJmM1S zwR=*B+WI`XioG<>Up@`D7XLfwAbAa_2vm7Z1pOqXSW_QBfoFNEi+P>d{P~L6fP5-v zADXBUF{pf9Gc5K@kFXHa%zg6DKlbW>_ujwqi<7zL2r8W|t?T*~!gqaZC*Q3#oB8qu zg*Dw~alq%1`qZi2&wE#K*f!Qg!@<;SpAFFp9VFOFM7fA_NbWRMsl2gYN5~>eZt`A8(_vnZ^^#M@1qsL@?LEaAO{Pw;Q{-pu} zRn-ou!A##HP)Fw!8t<~+Q}F>!Mdeb|Xf*+M)V{C3CXdfPb4UQ6V`{F67^K{=Tsu|{ z2US^^Jg5u$ry8bw^lLlcviQ2&IK8^Pp*_fNEu7Q(T(qV8xpue0K85|pV9Q`%`zh8} zMg5CQgLbuhW53^sh(Q&Kz&rcR#%H^&a<5w2dRZfCUfZj&G2ys5h&Esvdt;?r>UE|z z;-Rl14#(v|1xo-1~-ERKM za=C@kviip2%+!^Q>W=d1j(oVMSZ-JQTRW|BdDywH-JYqQ`p|dvd-q4DJNBr`s)vWm z-Oihbs~!9W)gGP+#y#=}|1@Lm#=XD%;4d!q+NEy&4ZX&9dV@xvztga}#6s zAMgCxrkhUwzdv&)n{dCjepU5%2k&m2bE5yg#kGTvHNV`w?R`IP&A;L0HhmV)t^d(? z8gu*J%WCTP|G4y{yXL#&huc@T?%en0{=N6#bpN6C@4BsgxI6XP3*Op&^YG2<@wNQZ z^0D$S%FPQ8f8-Aq7e73ap%bjE8&eGDI-OqLpRX+3Gw^nCv zA69mL@ZQP`jnaDt{qtUKbT8ib+4jA?*IoC{GS7YCvWGiIo~8-mXG^2Qi%-zv<<`b^ zn?FWmogd!)^UHcdi<4I9z|Cf75XEiRO2jUta%2^Z#4w-P613 z;pw@Huh_ls`9@_|`{h#O+}?YK-)R=_iPqlrmb;$3|G?r6mtAyQ>FtAm{Am5^rW?Jh zZ1ncMuRi_qmd4f1w_f?4=y&^Xvca4AStokKvF2^vx%Qju|8jW6!w+Bi@}REKyR$Ml zbosmMmy`~7hyTa$w$6|DJ-=;dW$Sp;TT2)3yX1;5mk+VP{*rR{rC#5S-vuW+->)t< zFC1K4pYa1Y_{?`NseWVMy}i=15!|-&2-a5_!Cepcj$C{=I(*j?jluQZw=`ZDcJFLG zGVc6Z>7Q56?LF|FH$HsM`Cs1mpIV2Xxc^;OHSVaMsDFGgF25zh0A$1Wv-Q2Jcb(@H%wS%|R5A?2Xy}Q%Y@cql-)fcS$;N>=YTMpIV+uS)k=hnds z-Ql|%Z>c}OuiUoLyW}4|f6@FKo?-OX9j#xo>G{(4Cr9tzeb1NXd+jGb_*~^@<$YHV z9{g+z@ZI(1_3tTd9XA=i{w3`%mk*xrhHvgv!}qiszJ29KKHhTxys&yn=eyPz3)&m5`zP1D*eLHg(OTU4nclaqdGSqOz3-^MezwjZtald&UtIU>=7Xd8 zgNx66b=~N?(vGjLi@vgfXD&T7D)sqt>7nSMgVmoOtZwUlZ#3HVSZjVf*1gJ}%O4wU zdMvu*VD-5})$RH1e7Uf7u&VF}YN{+I{@d;SJNbT))WI(bQ=7^?y~}eSQ1Z>%X!1dk@TfFdF~v^vv$}w{N{} zY4LX-m{}L?e*ZTXe|Nfa)dMrTf9D&E|7!Tl5595cqb17`Q!(e zO7CAf{Kd61e{aM1@i%bq4Kp`YWt zZnSTD<71;s_33+mv2Jw#w7xPJpII0E#kr#=rt=>b9 z6fq>x_C1@9kKS>7)EbX(c++V9`aI(>&v5J?-!Oeo|Ay(x4bwC8H!Q(RQ$sOrL&2CZ z6b#VsEG;gMAD>?8KR(?)F}<|NUH1g{+!Je;79Wa!$w%jZn5 zq@>Y!d>yZ{uD!&s9E1(~@pzSSI96I}|LJeuRQ>9P=mMBt5&$m=zyj=2 z-vjpjON;A=0l@C83BZQj0O0CKPyB-aoJWV?A?Vdv+ro(f%MQVR&H1~zVkhml?4%vz z#BG~d;@gQTSFTRpzCT@eQxy=uBrtzv!;=S3RE6IMN;3kpo>=Sw(pl8H|@0k@k$x9FNG-pK|}ZlQ_Pq`o{JP zhst|zjbR*pApe66_4$=iyx9A}h4m+=^B=yjK7XV!w*f43ecu9vxwCV_=(d*}Y@-`4 zj`lX@k2f|8)6an8kF-Yf#~BOw}(4nMxQ;{*BU4tf}KXIt;NgA58IcInqfho}2Tj?_2%V0@{KiCx)m zdx=5lZNGT)af0#Nj@yIBp4tA`FyiuFv;nb+>GedO6K-N!>i^#KOf{PK*R`f6P@S5m z7!P+9b0vq%+RaP;iI*9U%?4U7==O<Yhv|2Pi zQGM}H`JT4H_@1@}==#eRjg#ODY>C4k=qo6P`24TSqbExFw|F3rb{%PK7Le!G8jwF> zKwf+C=(b~xxz^|t#}C-dec&0M;&B4yzy8lI9Ot&qj~6QyeZ8AQ{o=aO?T;>2r~9`) zTHkC){)&*y7eg{L=eBB0CmfPDJ(do~mmeA3dZeYuLl^?p^A5+`AGZJuj^Pun5RQNU z_;~2TvF6YR;&6PTIxjw9;rN45b`qV$@j8pXDLzp(KJg0S_@?QZPwrOq1+|AcZSaX- zaIPGzUr_Lg2?Y=azc7kpFp4mP{vu%%>0ms)wCyV*7tuo-o_xIiAdDi4BXPp6c06~e zx4nNk!vMSLZNG5yG&9s(f?!XsTEyQ?!1=M~w?8&E1P_f`>5>+;N`}Jo2b-CeA-E5M z9bo-Ph*P*cOw>Kc!!;lniZMwjP6gpep}5q4@i3S^tXK?k zEf&wYSp10>4$K*a*kusD?bw0VIgrl-V<1d4-hJ$$@mh<<_x4}wFuec%JJ)q8TW=pP z{?Q!<;dwzg|A*@$2iix)h#wtY`lv|n&tb%Z@U1Z;p56nm0L%L6_dX+b^BITX`6Dem zYxA77N5-jGEDVF>%M^>p+{wn`2Sz=fec&EHgU;XZ4aXtkGv^;06MVp!;J+H`d}V?U z4`u{naf-*+F6}cEFMjb2a0;;OWAO{{jDHkU3RtlsPdCFTlKInx;zR51+4d*=f8&zA zl^mt``N16@=s)q;qKm#qxU)^X;&L(L(UGq$?)Xrt3N;4J2Sy@X;uIQ{10$mGWr8mO zxury*Wu)Ra#f>whVw~p2rzaH?R2Z6UEF(oK`i@k2QUTeT`OVe2@g%9}JDOF=aO35i z!ZG31NJahSe_f8wEuB0ZsPWnhqjUPZ4u@EL8$cFv8}mSTFV9{)x@_Am$1E0$Rvde1 z2#~iyD;_HZAUke+C%N5tL`Z%RLb0t>g;`L5_j1n^jK$>1{rvapaiPZiaB2A{ECxH-3Sz+!k(6RK+G7H#Q*GEgpkhACSc< zgk#I_Mu#1aw-c9*8gr!s;RMASN$eamX3h)=-U=X&uWQeY1INlHc=I8_i!mEO+;_~l z&s7bB5HnV)5GQzI#!LLqCU`3_V-I2y-g7(;-YZHB$ueePlwz^>w_*^dpvIQqom=XO zQ79Y}ln>z6At>K=*fPAeml$ltisxDpAcle-BeQed7!WgG0pf2x={uo%ZVW>XAU19c zhxG!I@e zB+YZYV*dI^hp9Br>l8zvSs7 z`_GOL!jMG>_5a^Os#DYHU%T|&81m(kC+;athUFcvc!|Qnc|x%mJrT!c5@0U!Lp#Jb zMsGW!#K8!cNHTMkg=Zo9?}xB_3dusOcvVFAEk}p}EJUZW2#;vR;#98ZF7V}uCdr!& z%gj~Eev`0l6az#fS$GjcfQECSSVX2zET_oP7cN}vWy3PIs2+g+L<-QowHFJ^NEV+s z*4V7DEJTYU$6@(nH~B?Esci4Omh`!~}1V#Re^ta1N_JrOzER)uRu4WrLhQ{eiC zebNV#O@VU(+N29`+#*6d$_#%tI7@+xrHc&9K!I~f-pX)ZS%DLrV|=e&f@Nq3e1O*7 zQ?QJnz^%%dQwm%P&OXCi4bP(&O@ZruIFs`AAj>X5&q;#YhFk%`F!2Jud=}8&4W#!T z7)ycMmcQZh+{yV-obs81tN;z1jb%hDWPE~i^z#i>(PKh%Mu6iC-mwAcf{^p^Kr)o? zeB7}N7n?=nU2Kj-Gd2afjD$RYT%yG-#AVVxN0<8&oQS|Te51d92+df9F3 zZ%or=m-9Idc^~ttSKMAP32q-O!{vM@xJO_Xl6_z%A}cW84wv{Xr@+B7PE?PT$a74A z+k7y@Wed-u9k7hWssXq9oWu%;W71#`>#w0SNrBtpGCwa;UgpCxgCZC|)-v(JMD_`` zjFOzeF>JY?7ApwQrcqk{K(PLuNpc+Ks>N`%$4c@Ugk^}vB#u$mQIeJUd7g2PWqkJ= z(U_Fryl%WaE{|S>E+D!~u|G^|7FvdSR|Uxq7x z>Yzk8$rtH@2qAe!NQNGRWa$>r<+vh(GD$@K;}C%*zkQ%jc}Q3HLB(T4xWgXEJFGy2 zJjs|e4$g^Rh*DUA2sqD$yl(?J!?K8+7L!x5+XRy1h#Uh~1ELHfej-NlvWR?QCCV%$ zznUUl4#}#CgbGNCGM_P$O~IJ%znH3tXs#k6dxl{Vxrdglh-{@10`##1&pRaVMo$LG z(v!Pp(V{4Vf}x^_=gbEezaJ96Q_<$ZtslhTYYihOZhg=(|%J|B@|RtP!FqGZ}Uqa+*)#mLB3=43p!CrX^nP*RjlTo0qMh?bm=zbk0T8R1PrPWA~> z2gf3O>L9M=wdB9y0?%s6N*&OW`4;Pvs&uxECZ|#Cwd6?@pGv(@#WSH5hZ~zq24aiH zb4ffl`J!dP@05LXmY?AbXSZ6a+K&wwtE(@7sJd6*WR zf)1C|_M8qEDzYLL1e*s!uz>~o=(CS|nc_6Mg;0FEp;)BQ3#h(2O=3fGBQaShW^U5S z3+e@xJ(Z`u3mequ4q~`5 z;>Cwa`B2|ndHNhHPg|~MAcl4#!KoaAmON+N_*2G>hd@{n4+#H1f8-DhgvE`Y_T2d3 z;?M%I3VS5!K=>;M0W{?hK{!G-O=-!B#M67=fyhlvpU)w>^#Cm*9MZ)uY016qhc=tu z^of@Uy$U?HNrO}PK|}?^NqyR7=)0kUE)rWoBvsh+qT6X^P>*3K#qF`b;_aruDdvb# z2)!;CNlQ-3(=ZBgW9CnZ7RP)QOIe;g7QQ?!N+HoAMJZ&msGJ3nh(Y|obRxk~*HiSh znh5pI)QBWHa?FfL_r_KfnLn#}VsVO50A_Ppd?Mz?)I4DmH+adylx4>#d`*M_f*b$o zk6-VAydMa|C@@<*`&&rK0QnDP6N-Vn$nA0E=LVAIFbTP+g{%Ien^>WU70D zu>SkTShHR$HX9ApUL_D)ds?;&Fh*RH8m3qY*pUZqh<;a+Y@vJkbQhR3cYHCFA z40&eZ^@)@K7q~_O=eQ=lf@jFX*_HT+erU?L%QB@A*@O_^h|8Z)T;8)QgJ;K(KY442 z%bz~D*sW~+)OhjFU77k*q8JoCVsxn`!EW6noE?h0dx!zoUjzI>3e7UM2 zQ~`*~2o|Pcn53K-E(Bu~Wnr4r$k$ITV;3apsrfXp3nyEMBWJ23Qj~X$#4ZTQvUj=2 ztnAO&1tj_Q-9d2s1*<^@Fo?p0ZPb}H6?6SQi z7>iqM^9Hy(4(_mYPX;)t$$W9np}9~W@dh}@FgD2z7t3$4n(SnYGp>)gnw}q!MTR0H zFE1{uk7z8M0qz8|S4e-~anKv!Vm0|4j&b!}a85bkPEoNwjRnpz z&K>N~(+sejR7bpz(}7vVkw5sz(l%@t36>>XRA!Kr(@q0LA+Zea!?vOZgzn3dJr1mVV)p?6~sENHzg3>q1Ghj#YFV;W;C~ z>C<}wPDpn1)N&+~`o>81G$V!N5QQbd`GR%IJ!B@hRTVgNi^ZNPaIy`l)F<;0m>xNr zVM;P=S=w8yBom}b_=IDW5FzKCcu8TAZqk zkno|v8BxT_X+fE^9P{lXs#%*Ac|LGu&KM!sFx;|;OpWAu?xcJdFvJH))8~U1*(_h{ zWciBKw=BD`bZ?lXdkKcU>msEi<3grdtqLE)GEiRPUQjIvKTdrMPEH??jT)N&mVlfs z@DZ0SnNUGw-*ojag3-cs3)E!qh_iq!q7@v;CR~K_o)g>{6K{eeAe)XX^(_VC%oKGx z9eFWZ%?tUjhw;h<>(yXP20RI48d0!&VVC3N}S3WGCANfCnuR- z@L~K7VL7Y5L5^2eLu7oOWRakrn(yunCl8Ul36e2wDQK z;6fL#IPlXDk6{!ta~@p08zL70K!Yl>BD6K-!iu4Iom?4t2APzxSY4v`Oza>(y|D8Lv685jfR|0}@Q zCwn_!5_l{g9T`1#v*^!PP~p6zQ)@-)ICtO}*b2ZdAX5TRMZ^VU6+~P>_G$Wj5|Q`$#Aci9 zGUCHl*mJhzFeJTg)#qfbH{O-lE{FlpicNCUdvd%|JO;tuHRME#w6)&BI4KV4l0F5D z7ylB8&MewNqX5y%VC+Z)kvLdSyasnh0oj*BQa-p)pPpFhblN2%6F>&erX{P?{JTCz|j?OVi&S=R$y)~?MN~+Vb(PG4sJ(1&> zRw&m4(_=_5T5>A>TAmjiaH18c$zT}e4Z%X;*w#DEbI02jVd~DC436Q)DJ>b-kj!z_#5T|bYW6y8* zYefjgF|$ZQvSSvfT~G}fAlWK>Qj*b4W2*&cj&Lk5CnOqc@(M^6H%#X@R^byvhC{?5 zSx8PYyoLabtaN!q=Oo$dGF$}J4RjE-c z2=zg;P?7p9Xoal|K~s0tJu*EOieRu86AThEBV&tCT}TcEz8J~bRZkAd8Vy(AvjycW z08@eQlt|93+tXlVp>0SWGXzc7}^nk_%_JNQoA>hHk-ZK~&a4>K9l@4OC=$lZ1TCgF2Bc zkdToq{`g&?9f0E&3dnD_fcy*r`TCUbMu~c&P7P?QDak@eh9bi}2*_1CNpcODyWWA= zNpA!o@t)6$9k-nHrhq);8D~f)_;`;&k7rZG5NAkE`-U=kx+;4U+FOERN_`TNT>wUW z3+sFwxA+v?0uu&BYVWL9Vb5t6!Nr;87FPU7yErXGkB%6O!LX%!D(eMXJ%jSZ*Xo<& zbg!zkj~ew{Qq}8e?Vk5s1ah%F-^+_3IfAE0%T5{V@Or|7a4kEWqB&N!?7?p(2Is?R1xs+Wf;@F0DYEfi%?nP_3(bC^h!sV~FbPMLRT^<&*>`Gz zDEnn1pEfM_C$KDYz4s20^4aYed8hvFi_7dpKCF}y>!r6utc=R77nNZ|weKOa31^}MWAOGdmvRu1<16+NB7UY}aFHxZS6VFa5efKIQgK9zi7 z?E!FGq}l_7b*LnLj{slKFl?0w-XR~6pCLlKvWQ?zS>&CUhdvjSryY#t8gl%isy-Jh z*Qg^<>>ZuX0tdUWMItylt;>a5h1xSE+3OZ8LQUm1tcN#dF@{-Wy%sB-vvesdZGKx) zDQg9atc5+k9O6KXXuOYeC94IY*!6+)iJnwsPmzhm_>wL5WaTDX=;SFf;4L|8y`#vR z9%lwc&WT&Ug~FcKkv~*&<`btQbN@15pf>f5x{!*TR-b;x(!5NkA(!UOTg#d=sOn|v z(+<8O$=p-xq1Ecsx~!MOm;7$BKAkFutRN$Y;G7hwSG5ai;i;#{*843fPzRp{l7&Uy zp7#sUHjBF>@2*ekA-}%cQHq>OdX6E-^=TFMShCmqylKZO>`Ae(-R zXu9KjDo;a>T{VP=%zVmM>@h4pb#xHasyr?6jfyM`IiVDGX-Q0;h&@{9w45M250N9t zSY$GS#p2?Sl3toogsPtCF*tUy=mmf+-&@?j5E!FZdPsfhsw8%zcpX$Mn3B)(3!-X*HxG@4; zPYm?H^EbGP2nA{viGT3bvmKC4M!wS4>#;};8CmP~d_}~d`xO~2K5rEfT5|d>hAXHR z)(_4~ATg)V9Z|!U<>;h(k_An*fE~k;SE}qe3#YWV;FD1ta!!lDE3&OQ6_b|*BImRq zEVJ4vV;MqwOW3h_X;}l8DKd;*GPpB9i9No%Zk*Ct~tPpqD8>+axrqH z;@+_v$t`w`qXJ~ zV466DWk8u8Yel?@;d{WP8)&%`=Nh({=H|?AQ~)f?*$k#byB5Fd$wg((9nf~}w@{^4 zS5BuR2Q05t1xOZBD=e$6>@wGoPM?-NF{#o94h0V9CdH6oG4NJSBDA-B`CMdP?_DlR15{;UY|_TEORfX!-uKg0fi0LDyf_l|dZKNO>-3FRR&! z5}!;L#AhyW*m5@AV@PO_XHBC?`skB9VY`q8C021P|2=ct#fr*>S0G7%vm)FQgd@95 zgdqtc+zOF-xt^R7F6cURsBxM;5Lb-Zmon|NSOu702+O@>h5nPKabcLH(Dq^uY&TkZz*Nt|6a01Z5n+$1I zmCuo8oj=t_Uj0ev4$yZB#u7?gNY_;$krJ1zNj2$$>`zIc4UH8@@@ZKa9vv^#1=2^R z#g&b1z&cV@YnMpKe-U~nGe%=mFeajNa*b=cI!&eT^wHT7XBcyst~|z9OaVi5PP4B} z%jEyMg-=e4%UG1r;>;44Zat*v?AGzYI0%Yj&V*@i?R3of!~Z^3mCb0cdY?03IHSER z%4UL-jVN%9gTbPlQ874g9@1fjwew$a0y%M@nP3FjFybs{r{z3Wv-TNaO3ASJoaxr7 zaAf$6*I>G3BT3C#{)>qg_SG2AjyL-j_MlfwtkrWil>~Y`J9DS9z-+gRe!OZeAsdq7 zQg~+Fc_t*QtyXGTUvOcVA_s4_)d-oka0X`t4d+vSKERo%>7FXi}Q9vu8y=RY~G5M9ceWSsI@>?x(G7XRK)~I)T}18h$MwWf7e-SH4yg zBF{K7JoiChPJ)py*QQ+E+-aC| z(uBz6fv%-}j~dCu&J0jyx0p{zKA!3X?p^mk_;d)(Lb6K(g=E)#)^-+gt49Rlxc7w_ zb7|i)iDb&xwwy0sl!`OX(m+vgE-z9kipB{NS{ty|~#aLfuQm;7a{ z%D!m*_`0mWQ&L7|9iOBO33FgLu@l)m3SCZN*!o5}3kH@rs?BW$#l+fFHan9J;<`OjKp(*RuPKUv8tM0mP%BfK(XSFTUxz*St`ULlK{Rj8IEOD zo~V_0ErSzh;rPiFJQ%N7n@$g0t*wS^B;5IH>?{(8W2Pu%W(FlAGtb#|ZBXVCeQ>pMotrEkjk3)nw)s3ns8-A$qwqM>0G~FUX0rorqRr%T8uKRTGy?f5Vt7 zyK)~Yv*~bia>mK492v9&RX%1-;gIG2_G@uGhALlay@(uD_OcxO!VDPFmy`65)qL72 zC)2_u$Z{iU1CAS$;;5fii@x^6V|8#bH&Kw7oxM}Yc2FKCyEC}Wa)7dD76e@1*gjN8 zq(@Dre%bDQDqX8ffUA}yn>~3YBaX)^`mre0+2R7NaOTdiazt65dIV(6os+aeOGgq{ zT)e-CHhXd^Mi7{Jv^{Ml^1Z-8GDEXs;}(ZuS1Jjr&MB7iWwdse0}IriA}6I1Pm%ey zdZ`395ilG?jFm~nugs8>-JY`IGIbJ!3@xpG!FQK6IZj1u&ng^0mbmN^zI#6!BC^Eg zw(VEuN+sgQ@m4t|E?dIqoEYNANkmrJ+8Pl-l(j?^8xaJVa6`X~uy({}d|~YfQAZS+ z)-41fgE8u|hjEC=+Vd&xQudRlWqjhrlQ1?K@j&Pcm+*=p$^Bw?*i=NPjqbC{X@4ha zgY``aV*6>ZylC2T8oHo33vNauQ}*jK8l-y~jaAb~9GGA7rnnw*h3gaG6w5b)iUGTkdE zTW%*(VKjLaYH{zI0=2lGR4)n2uHWqSZvQghxTR{;!a$8cQBu1LABDAO#2N))#IOa{ zunG0kGH<8Jr#y-^3xcqz${CjIaIA`-i^(3xF}0AY%yPaMx4(->k!lm*aI9Q!8ID7) z=NevsTeqCgX%@oq@5h$=R10vw3M!E-LiIXyoMrbt{6yQFqU=3!(|ewHtUd{3;!oj1??03 z&n9~)?5C)Zczq(ho-fm@^At-*9E?*YWuNUOg=>Z5vk1Mrj{80V&RryiOo4>G%Y3%? z-gTjHEf`}_mY9qU!wT1Q0GF>5;HLTnm?uN3X~Hc4vy+*eL)qE{#5*$(eq8Q1=c*$? zdrQ`(+69NsW|~F3E_F=Cm+>e|ZOU5iC!BG(GFEO2r+}O+9?|5v+m`cbHuc=X&!(w% z_D)Vtd+x*Xk)%4}7W4_q&U0U7T!J$h-N!jGLUBa)&Qx(EC>Qe~ESveliX(<*F7=_M zdl`FYx@D&;js%O9Fug1+XWO+{SWd-hN0n1y`Ap~q(fM@rBD2fL8SKP2$u4M`W!pa` zaGrF>L6v38aPBy3pX|B??7Kb`uHAY*a4efL{?1R?dcIw_PeScZ#L~AvOoHygcy>MvRq7#%ahhZsk;uD)WfH*NIf~XS z?W6mJx*X2i(!OtB5=?SQ=EuYesvks!b9%CsuT{B@m-bmNWntIDH?-6;uFSqUa12gY zTo?h(Ot7dg8&Vy&+b^*wrijaGeNvQTw#-R1i8(Q2 z#M?_Q5|vf!Q=FzY0-D8_dBUwBLBpVAO_|nAa$Zq3DbC8YRQghia;hb`N+VX=L&Sht zsK{qM!Ob*>rc46yA#cS1#+#PA$dQLJvei4br zfd4^NUJcA-4gt(T#aKP_OIhy~n@_LAQ8c2py(7#n@yo}h5g9&Ja!?BwNpXPK9zMez z?~rq8-yiN+9+~fOeYGqyYh|A?C6u?PAmIx z%1MF3ldtNChqAZeyVMVLIqq(s7{VNuy?HqL}gpo=Ohd^u687O&P8S4>M-79GI4vp^QH9ud{;U_ zZmcrjGlXU5Dl)fcDDyd2k;%#m!l}(hVwRz{otu>VDK7iER&{%#qq;E6Idgr%9kQQs zoO$?pH!iev9zoQ>KzMbm)h7Z|rmF$(Zj4>Db z2|rK0`V(uN$8`_gtLLZUg0P_=&jeO4o^)EYfVEoG`5ofcy0BbXrDyu0)qj zT!tgY8|Wz2`y>sOW45d(w5Eh7l13OrA8pL1^-*a9Mp&tuUQ^;zKf*HVa%#!7noB1( zPal=#5{#Y8WE9!3?3E04fwZXXIEIVLpg6-ZT%jbLJ!GKmqOyXpkIK?8vZRA)%5e;` z2XPF7bMVEjTDX?L9IoyZT~0ZdLnqqQO4ZX?mzPT!6LFb_%AREa=$*C+us7kmJtozg z$a24v|E!xZ=Fl13a=(ORaO%v5k*!@<5-*Xf`uPrWgrx6jrJwngwP6D%(DjdVmV>y% z{o78f8Gmmdfss|Rx?b9Z143Ue%E=(MTm2aMe|lk#CuzK&Br z^f=XPVa+S*7=Fnr&;mc=4FyggQi6_o` z@I&I)GaMr{gKKGW^mG}z4);#OIQf$c0*-BuNtBFd6Ai-`N`zz6F!aUPhG?O1oGgtp zBcsa$U0J}Ek+_CZunnpuzhQH!!5DwC0367&V)SIeZ?|@8K$Z)A57D1eo(rKjD`7C9 z`lV6+L@6L;?Dxwg47f6RA74+zFn08U_7@cVXc`xzSmIM?->J)5eeJayl(TlSLDnmi zn?b2&;&(KopRy6Gq;M@sCr}GlHZt`hoAbpOCMtUjCoK6CMxqr9*O|rvV#&_e>M^Vf zo1s`W=bNzIr#x{hlu6D!9QzG_Cs2ILkefD?8%u+ z7Dc&OoEV7!wLEbtok<)S6%~%0*f&s%v-qgD5RJP}6#c9l)Y5RrW zZDexs$gX3m_i4GRIpW3yWWRXCWqa@45*lC-hspM6vvs#CkbD{h(>@^1_EMWbv7MrC zu$8zkY|{qFGTsCF2M~UwzJ=9&P-aL*%VfBgZ81rfrwKHb?u~hdRoFqhuuNU)o{z^s zHxx)rcv3u0$7gVW1YM7Fwqodx@NO z;oHSgy*}i++?%Lel?80VgOO;=h|11zZ)eT+nk3&7Aw*J+vFwa-LN!J(z9zd(24|eP ziM*x^cs;oY%G+w>A_lV~7y9bO3r8-5U=L=sc*z*!QeghnLDd6v?m{3UGP`pZdzBL* zj!`+ZP6Q*E>{TCmPNnRWQH}x$IbMokK)8Zc88s64^3V26OvEYbXKc6uk!B^ zo5Qke0U7+d`iR4F;=2!p+DC_Jj?w=;)Csc?S#b+UKaeVrAWX4igH+{-lcy&_V0Oz# z6p7H_LS%+z5UQmr6PRi4lJq`w&0Uhl$|gI>hT-bgCE{^<4;{3N>b8x(0fvIIbttlK zajq4uO!tQ5W%(X)$9v=EL@@+w+X^a)%5mA+M`dKVeo`$mDJRp@Q-n)F*hgg%F873w z%Be~p7k3zo)fPb!m17ysTda~*j=$*%#R{8`oN-tN$TAbr>mCn=D_T22Ikqd?mJJHZ zJp=OC1?AnC?p>wt51xz#Wuq8WtG&S!AXlgRcrctn**q9TW>>*RJ53opC0ryx9@&O5 zERIKS@(v6&j>BsZdD)hO8FA?EBZ4p@-9PSe-Pgdq*Q?rtso=L_RvkM|JtSjXv z!hT`Gq&H)HjRg{5I9UZ16XmzP!~htKT`$_0T)2XDOfH-=E`f2X=(#$KW7LL%b^OFi zYO;gz62lTIMJ{vjFh*29QB7d1%X-4%>G$RH+&Mup1>wfa z(x$7Che0O!)1JCV02<~Re@QP>gFIOyMQAx+2kgtCA;lXGs~bd;aJv-jH8oqtj929 z*Y=()$0aqsgyqyzwGANci)pfCe{?riK?%j=I0=eT-@I%=^jW?LDn#Qzl4JGF)Hqui z_Qye~zzpZIKZoMO>Zt6lYwLjF%0xCChT_=X8OzASRBNIkBspEGb}}+~LjTO$Y%P=C zGTj2m`XpP3b)8arTR}!%LAUr7P|Us~)@93q*q21$$>{~DJs|7$fwE=+G7x?0xWqTV zeU2I`kJrWwS(~v-eA9wdGZ10#q+6V`cZOJO1ljs2Cv7{exTk>Z?44$Z!vLqfC3VuQ z|6%O=GO{DVf}I*#1mx|C%;PxMx)jZ|b~dR11Pms8RjDK1G>1C1p!wJ4Log$DrWrH0+wM6De5Om^pGO;ApqfXt6Tez$&TVy=pkr2%P zAX_+fc||aO}dU2L7~q$9vw45_fFEL$hS4pDjE zcao^=cjxn-i`&WaQWP08oN)`+qev>8C`D2eu`P8RmR*Z2WH)F+C@VT!m;34~>o737LI|n_wY}Ir1hiSJd+D@yTpX+#l&OmZC_A=g7Gf z1H_lftWrKHNjGo=mcbYT=T-puicD&2SIF0L*^7)Qrnh zW?Yu?**5G@WyC>!)e37T!I9m7TSt?bSKUJwmBTuy$RdXd#%UyfW0`v> z;TRstuj~%uu~?zE!a*`r-s6d6!v^>T-ehauGNC4i(gkId+A$yV&fwn!sf**+DMS9aRR zRgr!uf&_XIKVemo33{=b{zmc;oc38|Jxwo8RpMLK2DgkVONLABnc8wqFDO-04)Gz` zgp0LtNT$RmA^DE1aKSQbzaLc6S=lwc_=@jE3yQ~gmiR3+naVcgngxXZoxwKbsD!}1Vi%m#`Wt3W#bX6wf9iDCJt6f19J9dMd+fok zEEi0vWIWzCgm~cuIA+ipRjIqnXVK76+3CpQ6|w&fg%U57Ga{#G1(&vaB(f##!fN+q z!l@m-DNDXmDhE_4y+x7YfI0SCf|De34p~3vmnATsiT-?cSzj@7w=p zOe)YVx~?_2TVZXc3G1aiqeb8Y&oDEFcwlT-@>xkB%!jf&f)J$Q| zE%On6ArsC4*GnTgwI(&_rxt_QWD=x8EG8pz{Mbk246{fa7c3WXMQVi{{bvUqS?qnP z4z}qIo^)?ZLLoUVw&X7%7tU|N zR#5oh)QKoer{c&V+l!MMk!1|_#*sg0J5BniqcF5+GF0#+TTo6QuL<83^``Iwx{HhCs@? zkW76#*ezfe7&_e?#n(({IB~6HHE==$~xnAhwIqqdVEVO?7r{6U)0Dz ztiUe(vZqv$Ita?YvfU!3!Lf?Z!m_g^&zUV**u`TZN2lVll#A!Nld120>^&ha!z|zz zmh7ec^;P1slif0LnYnb?!Y4V(tt_xhYpca5uv(;>YNf#}XY%%oDNLK@#G^5wPBrU% zbO={YnHVkIOV#rT#tzycDhIno9F=wQ9KXm|he8-~J+=H4>)aM8DBo^flx=ObpHB(P zUUP~)onpuk4Dk%F=VXYo7V+73eW5(Eh@xCg)kmxd+Ojeq9K+zeOj2$!FsnJ?PUE?V zIYvKFig0nqPpmE}FXtEpW{Ej`o0KjlIfmb&FL>eNol{Sl^f{8T*dr$6x=_-mMX7T! zU3N}RSFWC0t8z8>m)Y!ZIUcWlis9_&vTGFpoKxlM5SnRNGHD+Qe3|WZdJ4@wOkYxz z>3ZSA5cm!T<(|`=DD_!n2F=fB(QJyc(EL}`d2Q+yqdAVm6Kq*JTsE&UG?Vp(YPHMy zJemVtW}1aAFAt8htn)0VEGI-IZM_)#f+J30z?O2r;E)9ab~?xkY?@z%d~MBXR6j0 zd_B;N`LSR6WH)_N_@WC zp+9w6#upou=jjIyl;IekMvC(%?$|_od!#r)8A&67GNw*jH)AA2+Jz+%;uyBwBx|cv zeAx+e36xPS0I_ce&ZR!w?j;O|Sm}3zmDfG#poL&25ojU=t-{Xv{Dvrtk*dETCL)nEOZEa>| zd%x-AGX&+770xJz>#b#mg9rT5>OhwrkP}m*Nf?>lT3I0b-dfK2h6AHb;)hAu8xH*1 zC#-O2$^tUeDRn+hUs{T@eMeO1ORcR=b^w+-Y3om81tVGg!u zAvx9Z!kOVt(Ia3L9Lt@Ll=?x%8pP&7m zP>H3?6;fER8X$uNttncfN2_IoS=rKH;~!X%+X#&sX(&Vrb6cjZYHVAeYr&1Y zSQB#N2F#*pyI~t!w4_$FXsMrbe|*39`#jJ4&QM5T&dzTBvES#u_c`~RbI*-Bc1veA zWPfyne2q1kDeqFcaiflZqpd%Emq+JZ+(oZrJv08HkjieopolSDz{MFcf*u|8946|dY94>MHDEO8rJ9r2Wa zt&@=n?m&6VOZlX67?iRywcz7UV!qh@bSdR`-|h2Kx5kT1HZrKRc#^Hdl4d>>UapK)_a2-tj}I^qh)yh#GB zjeMq#fR@XGuDzmO%bQ7WC_WYA<*r*xURW2gslhH;uTe)jv{==W9ahh` z7v}7g%I8OOya!9=6Hul-n-pN4q0Q>N02UfXzFX1uEIW19i5655^0ulsECx*Nl<~;J z+3nOrTdEExqp1NcH5ubRNV2IgXFv-fS0 zHEMOCl=m7f84bBm%6zl4A+J%Z7q&$v4x((xCA8)E(BjQ7%T8QSzaFF<&;rwiG7a+( za7G-SwOKDB4&{a0`#`p1c2Q}^5X*|}WbbL$yl~?VUs)G9Gaj3?b0Y>16$|J3G@8~I zEKJ$NlBndpnty0O3&-u8 zY{(GG%{=57xw96HP(I2$6eNYS78NuDw1&hM&3a(u@^O@XMur77WcqR=*t<7yjm&qj z{r$U+li2dcuJcK@KDE&?vLXV!BO6BER!4RQu47~q`o8?$*Lo$#!iWfEKb+&~Lnida z;he%+;KlVjsih-_(8orxl``*7r{HMJM#!B4T~yYBB1Y$)71anH38ia3t5zs?9amx{cUU)i`f==n2j z5v8or;d}gdq&70g7ITBLumzI?q2R0bsx9k+Yt|f1RY$g@&exZtsjzRRglwsf#a!?` zrsMO=AfB0!T{-jZffu3tMJaOucpU?0nQ(2|OIc(q(1kZ;PUf5xaY0F2$vk-oOdkEo ze?R@n?2F*O$gL4>O9GR*odcn4Z_gQ(Tw$^i7ZPXb(Z0s_Haq&n6Z-;dP@s*n?*pTv zDSft!T3Rv-P#$hyh>HlfxA&=9axG;_J9beQNGH{@w)k8Z(fbpO0hcVm9Hi6thb{yM z7m}9JE-nJLgqSnmu6ikFV-)P=;%nf*1#$hOHlF> zg=n4J#SZ1`dElbu2-521?0oXC{lBd@Ti^v?`G51?e6B8z94hdFC8$QjVZfN!?J4Eh z=QA%+$;tqnmZJHRMgBdX?nrK*|@VCWZ*H*`&F zP^^9Gi(-xhY^?1hkX%Ls5I(OD(8@Y3qHgd!tg<<#fzsW#-LULF5% z;6@^Sx2auCefo9PK3{yftHu`^eqk?i>MPOqy)UoTtGUc>Ui*^`WSCyf{0DylTDH>7 zKrL^~t&&3-!KM7JpUlQA{=$_J_zB3keQV6JUzjb9#=P00?b(nxuSyOZoJ{wb-3j-M zzmvY4Rw5o5izC^9Fe$eOm!7zu3YTjmm%xP?sAWxPs#j0k7gRKi@^Hjj{fF7LyX`-E zwp?jI83AfA_GJ$m+?^g0p!aEZ<^Dcx%7_>^wno&P{mn%!KVddyn|`NV*-WqOK;_^! zW#WABtA_gtr%W*q%c(+LRSrSGADmXoot;n^!#}8)W6+CY)@QM5pN}eD;FQBkw8SZw z<<#Rv+jj~>Aj8)AOyt{=T>Zc{73>$;(f791{%i?quo8WC^UufRN8&8CEUPjYky;kW zc%KefyZ3^ITytj`{D@HQR2)_es5r+MH<{E$B4btFx(p3BkEMJoHyO6dE?7Ldig#dx7gcCWJgJNfDUPLB)N$KNRzC9~fbZg+fv@xmyKR>%)*oS~c@3H~O= zizJoL$LLpm7f2&KwNG(_B#ajBRJNzKnLXLOUqn2Vv2UB-om0-1to^5HmX@$F`%lXc z&g=L)BNNyCa2+bE5mUOfWHlhqg%hb9=z=;1Spb%khzmcQp^I{B#G^VlJP6!2`*fcH zwTSPs(dybx?Pq_rr`z_c6>(@UsU4#)(hRpHl6_?22DREza-aE*uy*>07vE}sKj~)< zft2wKC9f>wmoGPIB(r`S@XIl&cb1Y>%zqlQ%5|yg-1ta-=Y_d z9a%V;^cES2g21qjJga1NWN3^H?Wo$Nk!;C?1NeCcL~Ec1f4u^!Of5rTSWm_WXOr+f z;kb9ebx-Ic{ste$Mfxxs9hj(zN1zl<-NJHvwtSomuGjUnpt2&f{`lPTwBg%cb1#~ay^2{&{$?srNp3nm*1JQFZE>_l<< zwd4#i5}#<8xcggH{z!mzDIBF^By()*yU@yNhMZie2YMGu2x&w`f4=}W%0_Y zV?}^ZFtVkKxn6YhXL z&edA^lTkemSyrb8K4+C}Emd^IPI7Tx%g;c{{0rN*FIQs=45wglA^l>PLI8nJ;3da><| zIMl$1f;rjalYMF!D_P%cVGGe07I)V~qdz!Q^?ch>Sb&(*&FG^#VSI%A7gLrSnqQ{u=DO)@SI~Ony@eXC)3u)w$ zZ&SWj#11V8y?{DxAUU0Ixn13S_U4#bN`(t-VFsch70$7ReyWa#D`qNVs#Y4`iX?Eo zNNLK#785HR(_R>ctd1*j!Cn}4Wac{u6Tsw2P=Hev78H=s!e~ir%9JufpIFJ2Hv3m# z>hx)^qGE$u`Un2Ah3m7+)1GQu@2Hh3U&3VGQb*Gk$AQU~4c9iHEbfApk+#f7P^V)F zy7Cs<2#uKv!gc|ZA#H>WYs4eW$7%(<=LrYDODLl-xE(GVVfgvz=g4{Z`e_8}jUknW1EJ z!eP)Ax^OVzPB_?$c$wayv~k(@rBq-=-pZ-3QueDiRLC%rQu&~f3A}KZy`5%&X<{kW zJF<;?O|2Gffymt8<;@=GV%{Td^ z@j3nWY0&Y5Ht!`yo*FL%C>&Z?Y>Qem-N*+%*Z4pcpk%~qP$5506`uixt19-)S(B{y zy_Q?3{UOSTjP{rE$cSgdN!`nc${Kocq8Z|vjYu76$ee9^sjA|B>4=f<#c460o9*&l za}Ev{dCN|A#aa`ea~HO)+wwXKypSL6CU2>BjZZbLSJiI$NB|eY7c=fcEe9T%kHfi( zs_?<&?B%C1P|Iq{qp_Y3!e)Wgq!I>Pg@jFn&{JPUz&C zJWC2uzsNU{Mp%EMenr12v=g<@pW`nu^pOOP%y*yJIn{`?I?{YZ$b4DMMqlWa8moNQ zmONmC>Svm@3OJc2dwlwbFn79SElZpQxTvBT)%hvGntOcFm&0rC*BMe75l&{o`c35; zyI6~AzPS3OJ2!tBqzulo;?)ha_E$A#s5hp*l&g(T_G0ctoFNQAvt*Jcj1;iUH@t8c z>%5)Q&P;=jNg`VHvM}PSee=!?!9MkN^6gH&I!3(YlZ&_W2hyvxWL+SJR6dzI<09V{ zzqwN4?#><<@bLGNiF0K{Q=hkHseFF?X|P{xs<4Al4kpeTb92P`=_d-=gb|>I_n@up zL4Df?3Io=g9TGKVuVe2*GGE95mUTP_81tS?y6UAIYWjn_2!r9N7tD7t~Te^?7Jjzhr(;(~(9G7j5C@etLXd@OyhrySz! zoMi>LEK*XGi@+zbTCc6wyz1l6XBLqVMiux}#t%#czVIk(P@f2V7UANP`bWN^7EFW- zx-9rYo!Kl!Z@=1-XN`q(VRkELzWo|J%d}oB${^wO%B+F{>TurccwDXaek>La^F^@9 zl(Gh#7CVbleZOzSPhc|ho-X|cZ4v2)t{It5EvtnQ7brx|$hD9FWD#cIJeFfqa6?=7 z2pQkw9GuU4`?4 zZ)J?UH_r&LGRE0iyK(PCa$Gaa4Sm`ZVF5x8{!O9?W!%sFsucr~*+u2IMkXi!7UxBth0;(rW~Rf(gE^M z>?J^kgd>Hh1LR$EC=(4g2gn`;t^u#>)Qws;=A!RDiNP@UMfZG(ZURS`2H?EKZHE;t zP0KrwRwTM}sCOW`bMO{Twl;V?spLB9$pq)Bv_z4}g#&1)kYiBqehaC4@6je-W8h4u z&R{q|RuC7oL|{wd7zfT-~F1*+z|hFqJa)i=mWl8+AvlvcBmp*1iGc z0a+aJern7*FQ(3{uSFK?WRV4NFM6^nxd7zJwATUhI;VXc8L4zK)J4vE;A3%Hrco;i zyjq8bmi*cGW=j@8_7tMdUA)g67YUF}t4@8-mqs=lcj53bR1(7$iIGvQ!N_O$=}#_) zJz11X%;CJ8FAXnL*=3wiPO-YK@{z-uzOUKS3v>~lPAXR~R7V%QPt}*?>5LlSv6eci(0#$rxBna4%_S{68eG7N(*P7n4WeZ4g` zOyf&ea2M%9>3D+o)cE2$n-bKc_1-%CfQyDreHo9n{&s+SC%v>*#l?v-p2B@UADE|LbP zcc?HjuTe&H>X@#~)(Fyw!(wH_#l0M+z3Xk-J2cKo)1Ek|z!zrd)ME8A14o-)W-ZjG zr>w=5##(rr7Q7hBnEKVJk(bNb+B_Fd=)%)Foq$tBz#Xr(_+(fMwPVY=ND@OBi_DfR zWB$e$-M`tVgHEP`Ikah;=BK}SeU6joWqgF0O8>|IAUJukjHioyLBUbAwJA&DE38FO za7U~^EnI%u23*8hN%wOihfu=alp!%r&X49i{9^LS>dE1PJCvRC_y2B8d*On6JOY%B zjWelQ*no z3u8~`03$l`0&ih!d>%aOg5E{CGD`JA&| z@IRj_NEs>_yc|^Wxj@Qyo{|%8+)WHq(U%X@xG5Hznym>dAPM zff!cG0vF@{lfO(W1vgczyXM!1oM|aTzm-iszaObbrlF5sj5(K|v*jmMG7BRTtD}+) zDrcy@YkXG8J%C838Jw;#%TRcevy!i7CBt9nY_;$4CAQe<*un~#&U`px3*J@G*ZfG+g&56WyXQr}^xy4YliC z!Wol1@JnwRvS<6mJ_^?2k3AMn3`RUX#lpFRC@wUF$X6Uh`9hs+^0izzir(H;DAt=s z#mP+60}o*^sNXAB?-Ubv-Z-5^7+Zlbe00dJj9xUkEID0%@(iNm3D%4cBYz>m`oLdG zLswqTAd0SBYq@vjsAVJKVvDat&mQ5jcZqM~)mh7)K=g2nZfQXIQ7dJ97i!ASJ$aj7 z)Rdd=;%o0qHW{D{zK|%w_R{X*fyW!-Pd@*+>3d2bLgcdn5M9=A+W-@*+}R zJ@D0a)Jf=U%WgRWUi2lt#dt%)?5W!i-yqvwgdFcMEJW9%lwBCXLiF>W88a^c%wMIw z2r9!UKiC&W=*olj!u@d7p6npeh&U@gMU}p>X7*KdX#@yffk?TrXo0lg8vw%lC$VsNOI$kqGi4y~(c-B=?sS zzd0+{ES;c?{ST9+r~W( zG>A@S=}A)r&g3`z7l|yKPUfeG3kAZN-(oyio&A_)c-t4r25de!FJfDJa<0Pj&*;Lg z?irsfyM-eOz=bmxet4bET=YG8I;*}13bw>!{U>0#T_>8RYzwwyhAPy(U7ItC#(RM-BeHuc8k6$ z0<*J|)1C=@APOVcnSZI~iQOVTjaJAZErfIQ5T@RU1Z#*spX@kWwBr6&&WIkZA;R(%n;jK?xjIhU?OUd5n30mMQu!O;h zc9LN_;~k-M%KJ8=2YV;!%@lB=3)BaLK&=^X4kswwWr2E9zn}^JCHdpyaTVuD9lGkN zLxClbLbgse+nXo=`H)SW=H8P~@u8QnQ1MA~BfskpvxJ3;;~s;fVxWX6Ax)g_u|w8z zRKgB}y@Z{0qlC%VF&jbSkMS!~zirh?s3xM4cTB^gA@5VnW4OftCV+uL#Wdjt18Y)? zz=YXhS`*d_)crBVW#KBGI10&n{Nb6iH`I3Aj*JchO~DwG`Sq2mpbKM1me1l@NDRP4 zY@f3HB==NXK2;NjKekmTvsqvk(yEg&>Q=;n;*6$MVm{m* z-z;=sA4Z|via0$(6DylApUUJ*U5dD1i5T}H1a1v?Y+YEBUDt3w3rK|fO>^E& ze-mXN=KRa)?m-4v#bOBGXzRnbtq)I9hR(M83+lrr)3@*Q;6ZjBPw$~@yX}<}ipZaw z&DFf`^u?Lb;^IUl~WHH z@*+OjLI8}P*r5TVb5g>7vCRAxo{;==f2jdtOBoVt{0a3VA~|D!+8teWsGIDCcqi^v zZKs%-=}_@3GYg6d^P8MPPPN$tzGZ_9M4S1K`&ieNyjhN6CnTum=*$L>7sfhA6U8bd zJnU8>J*=4P3enc;7>44a>mM?1rUkhXOO&=antBS=IU5LyjV9#@N?3@!wPL-Tp3(UQ zUfSP z=)rS(Vufw9WDG@`#ZhrtB8}T(NRq}46%&$7+oOI<5J1Wwz~TrQ0v7+fU&}&v&iFB| zQ&Y%HcDqjaZB&rjOv}c@vy4-_R+q3G(l!+;Ey;E)K`Am&`QPWfvqW#4h)%l#zZ z@C)~9FJvoAIeK#Jo#wqVin)ba=mUA(#9U#;Tt1JQIb`5i6;=Yz`}L%Hb<4}0Qwj~Q|!ARA8MsGy3|V8O_6Amyo&;~llw zmRD4={1ufp9`%pDLcNkUcB%sZ=AFA&GP)j?lrK|tpcJJk-EB&j zQsy@s{A|=4+ww5#aS!#u$?hO8=(7veOqh-nzZQN*SQMlTF$1 z1x0L5AwCb@Rdd2^I_s_5Z({Hr)(iX{RqUJd{U#A^Zm+n-M>G;{3=GYP+~)=%jCB{P z3%*#@lzUDxIh=mjm%USU=C~x{g-kv&#p^yHmCKD3^7;bxAHC-_Udf-+iE0<}ejLi; zvV=TNR0A(;6+&s8miy+Y`I{_I4{4m9(Te1_!4CNr?xe=Lh zZ(okL(ve#niOqMygo@uBaWenvi59IPcW@!njs0m?Kh%$TO4x)TkApS7#c!Q8=84H$ z!D2|sm6aN;?WW0|Ub!CW98LohPP_SEmG&*hLTh^VlF}zL-#Oh;5WtS+J(Y3u)4NN^ zC<{KBnEdnf2a9eB!Cn>nyH~j3<){w{WL4%T%gXcb?WoIA?JS61SpeSzlOAM zmk_7cN9xTA8T#!Dn2|+Ws0EvK)6j(%GQBxcEu4G%+80vB`=2P}>6x-|O>aCVQg2kZ zl~cFKWJ|7@-`K}du9~?5zpb}q`j9IkXP-+6#0lg^`Wt}^m|(?8*>A2%tD+rTG%AB8 z4f^R4m?Hes+foBF2#Hd z5rm#REoLXx#lKC!MRB|}N&1N0kiBoUyl>&;4S6fT7c5UdqD%|1$f{<};s7zsH5AyQ zuZH}^w{&b#E=Rg`v)Jj)B_vT=jH&h@{K8&i;3`g5%#a(8tp!0_(4x^rG^&G><%z*t zVQHMAO}&u25|X**+5fG@f0bNO(7S zOGymjhkB6NkPpihRKRj<7r58t2*=y;V6uzQ`Z&a@^SutJwK(w2)sP8$QP=ef4R>@? zMh;=(bCfJq55F6QOhv1Zle&l{Cps~~5nu~`apz`Sj(qQ3*^)iDUM3-7i^Btjvk+Vl zN;Zy30J-NQtCHn+t0p0laM^wAF@ckH7srMh>iCq^afAT4<<=rC?51UM7rEwS1CGba zMoU(#EE!SsWB>Km*D+EUYWXJzu)=u1$Oo{|70HXnp!UmXD07AY4M;l`ZRA4Y}8{nG{L1Knsx& zV(>z3$p31`%8Y)q-BWGsNy_r0dw4hPe>Di^Up?1epFWbekIFQ5oDXj8Go^GakQ~7KLw0K#jzD=)Q z_tfW8eFWg|T z94-sM_^tsAwH*`rC|v1%u4~Ct-{(Hi1s(Yg59O>=PR@PY^z8^kd(;|)wOC%(sHOIu z2oD^6S*Q0*>FhFJ+oRqRsiR{Hgz1u!M|w-eH)+L`?2QqJEof<{?x!4 z9+xHWn>w^vWp`B>}I;(ppwB9eR&$Cdb{0M zXLF~V5Rp>tL`99XK%33!PnejN(*w@LB?}>^yoZBx_qi?PJQ!vD@3{mk5+M6(n%frh z$!X{t2{=NA4m9o!0NE9;VnTM$v2?vgTnK0co!m^Ewm%I6SISt#1+c<25jSxPPqf`8 z7e(mDh$2YU)G_V&iGCf&%tOkwNLb+pxO>!(4OY;B`A~FW-P1VRw3jGr#=jLqtAVUx zac@BraZnK`BltJHnu34xX>XrTV=bsim=!wp^7eG0Ey6vtN)(v}eVcm-i%#`iXrj6S zi!4+@346}B@9D`+Pa(@q|D9iN-Pi)_IZ>ACo>oprb&r8B6q1FkEVUp<%a#M6Si%xC4g`zmypgsZ%9^KSEw7^>ov9f;HNzaS_qyvDD zVUqO^k@Fps9;gC^I&_hIaM_PX6C9=s)w8>Y^zGgpXbV0P8nocCOmG6kf)y<3ImYny z0-@t%E%b`&qKM|aNgW5uGS)&q&XwTUY2zR%_yZnUb6(VO0mo6t!V_zbI;~(WrgPrB zA^VozDkfQD-ZaiaQ9gNUZ%g8yrn(&}7;#UOvJHLL`Fjv>KIMJsXOn<~w4fsk9z!|F z1ZS($+@iRtL!O*!09KmWB5yCG3Pn&-unt z?*c%9$0mrF=}m%2h0E9Es2^NjjtAv|10n~F?Cb>O+a0d$`QEeyYKr>h7wpaeHH;jR zM$S5%Cps2`V+!>H8@jsyreH;nLwn~{!-0k;bcM~mn>{OwlIFwd%~&%Y|5GIDrtNtd zH#_ol#!D^|G%T-nd^jxuAj+8Hoeq7|T~jaP<#vo5vO=O>Z?-t5NWC`A!V4KWq^DU7 zg}mFs3xE1o$A%2;_A6e<29LW5jvAhjy#xsQ=0zB5DDV5yf zEUvePOcS;{%$LFh*Gf5T$Vt6Tw)Plpv^U*)jyEBh;9g?9X^e%QRk$t0C%bXz22dlC z-(qii*UpH%Ec;t9$v}(P51BjbO(W6F@WhE9&Cw2^1+uV?jB$tz0B+$hBot&pG51N2 zmb_!%Z811Oz0LNf^?vHLtie}bX;k|qXu+JTKAf`jaxLq16fIf5u3FTKS~iS4+AT^g zNA6qUk;6B%Ccw~r$tBFf2E9p3b}V6oo@8oY)a%#DG)}$kRS$pWbzaGzdjc9c>=uPa zmL%d1i{G5k$Tf!3OmL!+LlSW#vNLbyF5nUFQqhRiOg28)Az~rPQorWr6tXCk1%3+^ zati>1FCm@IQ8-_AkLztsF3 zQp4O`PX{g^MJZ|xdb2AO!$s z9%6{I$F^$1+3QW&+Yz!*Lxv#5{^p7-H4KA%IN$$o46@nZx}%)3 z$&#oSM?GmFlrsHz0LYs3oIr-IxEAdgA18IpYgF#~cRTYI*dk2Ho-Wj}h2vu@ zY!Mb`9-tjl#?_PTMk-&|OW%-?vXaDht&shT?Rf}dakhn*uUjQgEXh+NXAZvV$}9Fn zl4s+cG^^x6p%!HkmAs0wpev8xY~P!nC?N`zEu-Fgg*rUR&0TLX7UdMqj$A{w{O_sA zG-bD59G-LnxdDrJeKBM0hLKX!}IroEBy3PE4AEP%Up(JB4NF4-4U zA+F6+J@{^?vHq|a>ko~1Qx#{X2YzERJrWU5s<;zxQN=zk=x6@J*&ORiKjzaAwwPBj zpGo>GI;hAn*~loIo!2Yyczv)?an=_#&&6pOEg0<5j=c3yu1?dBV@CuO%8tm%f1dD| z7X0ou=dmL)Mr4VqkQ;gAD}tafInSY>U36j|$7>4`%!^J?r;IgViu+83rTaem94FP$ zVs(kt#=PjogR9`u00!qK3wH|%QP?=%YFNAJ04Du@QX&brZy z@AvG@x*!6m*l6M2jw$rhNH|;m5?^B_42>=eTu>E6-@#5i)ApPg$4_?~axgbIh4?~e zenq{lXCq#L#R6BIM4!RpB^l3g@V{!tu@aRX3{YyWvS zBN(@Dq~$GOG1dEMb8mt^X}aZTZ#acQ{_q0++RyzP0gKg!J)B;VFs)aJc;Z6_7q>%BAY#LU8S*A9s4J0r zcUB*ATHcz0d^XY8Vn{P0i)M4n8^85N+#PS!FVo!vqaK}(H#sZNKb{3Ls}r|7P5@)4 z)3b`rhumvgeRwnAgcELj9!6C-zJjMP!<&^cnBsN36&8W_tPE8Z2&Ym&1ScKYa*JxvpU9npsjizu6=#3ccM-hK;pG325VdQCi zEO25$kM4w`~Pk@ri$%8B&`@=$WIM44Np+QMgPd1QX91DSz zP#OFFzk0Do1=%V#e%Z6#j3|bXY_r}O%XT9^c2gl1yq`|Z)o4w3d>qChUmr2CK8!zW zZmC|xYj&qsOm{*P{MW^3F*bnV<4$*ginby%pY9gI-Hu06@cnL}m}bm$w=LS(O%)D` zDOwA6Gb??gjn$1?xZ8XGmlX2k+pMQTNMZpLw`_VF@3M~VV7Q=g74lTg6fzpt*JH^P zFibbLJEu}ZCWwOe^GVHkF62$agcQXxb-H!KvFdo7?jR|g;UBuO)iJfKwUC#9f>6gi zJPCQ-O0V~+61|6mA!a^B|j0qO)6QfxBz1h^v-m8NE?G(Tb-!b zRt>*(OP`1#V`>>>Jc)N($nzeF^mtiC=BB!E0^!z>^B?#)mgYNs9IKG=db%y0Zkq32 z5mTYXuU5-gkT2X@20Ssxx)-7%mLyG4Gw<=!a{v^%>3rKaZvNBk$t+IaamP;qDI#){ zLu8||!fcxkEM%|KMH=VAK z3c`Mx$8HK38opq_kptONvebtpgE;R7PR6&X&5%WBjO|YgV0c@$1rZnZ^s%6Rn88AG zUIL82gTe9|1r!`2dn^+467&p~&unC!-CzN6I z@hO)<3@K~eJN;IOwpGqemQOE@w@x{vZo7JwYnsU*<*pt;V`ANO=1si^9Rz@(f`&2G z102<9o|<-?Vt={_dU2`NMm{Xawx-wma*TX-yBFp{Xqm?Rgh?abnO)R_elxu6^jjJG zM8CORXh&dUp_&_e(KJrji`Amul)dneWKzwHy!uFn&aAKd56)f?>|HdyZhKozzkL>$ zMGwr933xufeE^UcfMbhI??IqKun{`vQ++E02^Z+r;W-(-X z(|klC^D{#&JP81xOgF}7p;Crb)`N^l@6I9%VK{k_m7Fdw-RtE@)PFj$E^gC2Q|bezX{|T z44geRt4w}T*&2g;IyB?nn_iyr$i;?Sc;qp?u#qL55bZi7_0T@=w0>^_3 z*}{-V7EVpLyO5pGkRBo$4zL`8i0}ox6Ms~jg>_|!IHkXZXQ-C)Gt%`sXHn)p!_KoD z&c-L36`61Msn|Ttxo^MZW>L?TO8{G~DL%lwrRdXLOqw0D~ zR^+jij{z_uYv|4G)B*x^S)m4CaP9^f1c>}e>ReMFX)XKIv3ze37!YyP@z4Lnp9wly zp%!tG3_95tPise(AR<-7=w#Z@i8A$h9k;3PLthCgk6K2c#{OnbudpJAKCQWrWj#%Q z=HR@}FQq9Pz!>u1w0UZPqCGmN;#LvL-jw%CQ+9x%C#9|oRF*mtfygxIz8n%zIhI30 z+`~kEE7AaNZMsA)O1W<9*$yLO9@?JOZh;q;Z2|0pjk7lu{g^L1=)&f{B$Z*}wuUY0 zc`c6`^_tkMMLuqD2XB@n)=Cw>$PEt7szj#qC-%}qo>UH8s>&sF{uC$OA1!p0U ze2{DERI~Wn+&z`hXMevP_1rQ!-+LynIXS{mU;Z(xXTRp8P|myKa7bY>7}#sJ1@-KE zPSK|AaEN>sLd>-1=*(M=m{~vNe>-Ly2xX?f9joYVeoog<1rN*gM>3~RH!Dsq^nB#x zoQ%m3D>a(y9cHA?=P>~_?b%=N ze3nZ%A$?{@G8JtCzE!m0#bn2c=f4(xaJpGxWQ(tJl+I?wnj+gZf z=RbYJg}7Etf6T!ve8~#9nB$Dt<9lWNvdWpF#^m;DYB~7jlgY{5(7^?kQ1vdaYa&6( z{eyoiX$;6X)N0)Iv3vT_r*cn(=?^&gRF5386TUg^N!%025NQ60PL*x#TB4zuhID2R zfC0?F3MY3x=~)Id{5qM%0=Gr#!?}5AqPQ^k%ha_YVnYh*7?CF{{OAKVfFu zp8+#lc*3b9hkG4l~5=e}xTBpS29=DK^}cDUr2s}Uobwc}>RT&&uB(pe{@zqU~Q zmfhBxuV#uC$8c!Ie%DFAF#)!PYNgHU>;9To{py2R&g_cNo7v%uJye`TNZ3e!V&-Cp z59v?SkEcC**TW85QZxzgP#ch1x|Z8JB6G5FoR%X)v)azj-!l=VYKg}ZL?ww%HPv(u#}6k zRP7{l$|svv%PIXq&9P^Gx+W*v2sq)GCn;K9%we@Z0%bHwKi*Z;bfjoSb&F#T?jnj= zUu!SsTLHUXe!*ZD-|Sk<-4&-9uy^L-#V8=-{QK8!RM#E82yD>=NELU?tP417j4%Q2 z@Y6z+{f=*3+EZKp_dnC>*knJpssm&AJ~ho5PMJ%PlL63fI`uMUgm;KRPnYT!o2Zs* zXcwLWEJH85%O1SUrVpiTMvOz+vb%}=ZMx6fv@%eF%6--m%&5bk1B_V`oDVxA!U$vM zP{ieCWT<{GUDhQAYd|smq59eMcYlxPj00st7{Ud1mDJ0l%0mmDqZ_OKb$GXG<>ERCPe9J-%0Y+pzHNb?nWQ`S1_CnDv7b=2a= z5MVBT3@_gSfEH$wXB z%OVakI#YL-hCgSSbK{(kX#g42@s75uRo7yfucyDrJ`!m61uU&SwO95si5w{$aU4;#8R}^9^24Y;t&uT5Fccp0(6g&-W!} zJ`Bw4I`&UIm(6+iFb2Tz$@u_C=InMK0JEMqzllf-#T@=3HRiIGO4^0nJAJ*{2SDbX zK{DaNX>P~f*vL7z-DfqY`WH%<#lqG3Z`5rKAeI#HUd#!Yd8dXcgZkb0N#W*jduAs> zF`+x-lY_#L_E*-RjGE)3FOKEB%^;gxiETL(BDQyC`Ry}Ds}OS*3J3gRh~V=`8pC8i z|2SyLhQMy04!Pv8jeed2UTyb$p&L^>2*p0Cr)&~hf1F!n_z9Q_AeXv3d^IzbjRX5Ob?z>mRmLmSw&*>49P z!zxz@!`4!F%w5zeIZ-SomuSH{ls|BU#~XGpjVpg@&oUQ@k~>qkQV$w9R0eq4u$Djz zR+jQdZ+1q`>bRYI5{KYV50VQ!3 zh;gizTu(lMm65T-ShUqla#qLNKnsee<#fh6A9Beb{wG<+?vWEAM;Q|n;C2jR0%GXX zG2a~e=*Kl-RwRb?<0xyEevE9v!7zrkwFGgR+w`Wi&=kQ=hnHF&JYYT+^_h`I4R* zU+0@LuxJx1v`~W@PXm^5;QL8U4Sg)ty#4BOke0BrMJF#r8@3nJ+B`TL`U+Oo3u-XL z&W%MH`W$WK8*1&)hlD*5{tCE=+U|E5)+JuVk&!&ikiy?$O9o+BAIv~Fls~<*DCOsW zFE>+NDbZ%CdoeyuGq%lC54jllI14sZ0e3#mpfZ2u8Tz#xSFr8GI)x3sIAtwa)UvhY z9pf)(MPj|DhEIi3x^+1!*%nicOSZQuEjlW>lTTvf^!Ci2!><;`-#5* zVg%R_EDR0X!G#D6axd`Wx2|mHA`a&CQjV@{$k}5$MO!pq(csQ_qjJE36voE!r%}t^ zmSZ`!<1LV2BISvDx$pJKkFjR2udCRJC-_8$b&@}s0t~uyZl|to%kiS3m>2f?;x=^= z{*IYLlq$BFm!)DC-Oqrs2xW{#^kuWj-R74ezUAZpFmE%cnD0MOF-!Kle6Vk~8R*NK zos7dPXJp)_Kp_;|W`P&-om)S0n4B&-am?(-^V1_|?-Pw-GD)mYXqzNRj6BUy!jq#3 zITJ?#H()sUj8d^3%or947vO?Ij*i^0g*W6_O;rPOPT9)X?^4GjD+ESh3*(aW3?J?| zPYM{~TiojjxUgkisP^u&Dpt>}(^@%)Pc~?gl=7=Z$L(nNI9?7}8<|{Kd2>OZJPp{tDn&3#wADrD4No=w}W%j*K5QjYL06Rb5l|WRxYdLXgV*G0ixfcrk8mJ|U!B@Wpyo*{v9n z-y$w9T5_e8ox4!|`n??R=}GoUxbo|V)??(m>rb+lXF;7$iHlQD_UELK!^FzAl}SSm zfZ^N)1CEV5T8(mWoLpQq&pTs7DDxyZr(5FY2h}y^ z#(`g6cdRUvTzQ{5!eHo=3E!czDz}^DV#;~UO1YTiM8$!Y`D3`x5JrqRks7^OCGF}p z#cau1?!ssOOA9O;C8W-J7*P@!-kUpG#)q+!z1awi>vIC5#?Ct1zBV^tB;MM0J0aK_ zd@*O@UN&b6<8UkHf-g#XGR9>waYHdn>|4!W$R)>Z$>u8pBePJ#&p7@hBZe=OJSPG} zXj!2@PhO|EebFxtG<^JpaFmpC;3bSkVQ^Dx#st5am_P=S(ap??(OhuXbpfhGu@wzxZe_P;iSSjHJJDQini{VPi zwGFHn>Pp_Kzt3;otP2_EQ7)54B&7tVsh;EmE{j)2%%(G2luJWeeqPdWm!xYxm4Q}v zEvXl?hCPO1Wuqelq^YPUf#b5;hte5MMQcs?!=Tqcj~r- zl8oyi7^#xPcGMbL*~vJ$@XM_cd5YY+EDA$HgsjUl6%ps6tclu}(MUwa{h$A3_GQNy z2-m;k9ER=rNh4`}**FZZ>%hv1DbgW#Q)tAK4&jqYaA-Ca&uvKK4~lK1`gKF%N7sgO$x|-~?qH`iTDMRs7e16PDy6M%kG-`cQLV zRQ|$>7D>c{wQ}*=uklIavyXrx&OCcQ5Zpv)Bkhivf3;6Peae`)9Qn4bC99e>^4(5x z#5rXOIHI*CoN~OAM!5(dH?J%%RZNCp+Hp?B-RyaAJSHy1ky6GUnD>q>+64#3(RFNx zM)-n@RPI}TC-^-pSxs4?om+Hc5XPf72ocZ#=;xn8x_*dCzWY5{$>3zA2(-{nr0X*U zVGIX<7uh%-9|(gM{UL#6krtc9>q(E^wPN;3M+n2VqwE)P81p?pf`bn`t=z8W7&>fO z-~pEH>1jTn01Q1nznY^hzgWHo3nGs|$>l~CxAV#|`>7=td=V|# zrM^wX>kX~>xkBP>oYTx8jB)+ivi=zbcLrjak0hi%dNRs&UGw{w(38DMM^E0HSupg9 zD&*wo7u44~PP>h~vW%VqFzWjCu@Oc{*QStUG4sAc>f527Kj_Y7Dc4~q+Myw1FKWfC zB;~NjeeGf^W|GWApn8sZ0i2Pa$SWf=ChT&p=WN)%BDEeeKTls?ZqGfb$T4#!6^&keg=3sF zhWY>gnXG7l27v?osSiL0A`l+papF4TfrJDUarI{U*wraq<}*W7yX1Z`ojw*!zcIPmnD^? z+4H3$l{nNe2Sx+TLCrmJ;>+e;MzE$YTU16gYZ3*noY=ck$&53nyF<=01cJQ+f6f!81!Y&2X`{#Y$r1uH2*&hY5+2*WeI;y%z1Zi!XHljF8mppF%olk zNUe3K0R?4bhDlt!PO0Po8bk`TQhr3qaog0izI1h`B*(vls{7eai97KVYN)iOnTX2( zaB%oYM!5;pP%V3J{_fe#c}dw1sIk|A?kVO-#{f5D#FrC;4&92`pIk*64x4@Uqm;=A zpRTUvL3ZhWfAB_mXHqMHem5`1bo$dI0ea5XTodHZDjfq1ohCU;$50H}%GSJBFAC9+ z=Wfp^T`brX^EfNxs zM*sudyd#EAQ?g~fbTY%Lc?25esE~akwNp2s5jdGYg4+q85i)imGxVzi=Xo_l$xVUt zf@-o*&ByJ{5Y1P{u$M+??1U$yFP6j(;6A$MuqIbW;u%zF{c z7u%N9=kJ2msCl%aH{`gYoMAPbXSO#LSquKg;v=%=Y?HC=``Hv2y%`PAlZ*5Pm$V<$ zT+>63GGz?C*{fMNI?B7i=IG76n)Ur2MU$vz<0?ZGz1DT?ItF4dn#6mCkiCj&uB3*{ z_~lMtVVX7gxrKS_A?)~CXuVC79+d2N{STQa=lPzgWFH>QSjC0?oc9b&u{9fS+&kFEr}~g3cZu!(XnIB(iYO z98;k2%nk|*N}LIRZeSMDpgGH((YMX#5^28TTKcos8SqXeV!L#mt7upqiAt7YpJN^~@g1O}t>)gCOY~cDR`B+pCdP zOZa_Lv-c;BnKwt=oiqiIXJ*A*U@{|5-;pxdECT9M?>zZp6>LTV?1v})h=ZP8KSl!C z9E;czv%wkn>t`Exq!1AEX=l!W8Ba?md7*0AI%>_tXBvsrf050ttetGm)bL!8+8M|> z@P!S;cE#b))IZ!s_5wAV%3S?B%O~LSr+%}-j^)4q3-i%hs=2$1_Ffs)yoU}U6;R~+ z{k9;L%tgf*$M!GZ`JI3CLl>Ue5XOjH0nkO&|8za|KBMED%dkys74~f~hUa92{`Xs# zGVeu|?8!xnU8XHpgAqAgllgB`_o3>VRPV|}%Bc@i!sZL(O-eiR4&;m2zF49n_EZ7G z7}r~01{RjZl4i^p2c9X{OkWnpC<*u=Ls=au<8f0;6|9boGlRz%#-nS%=t%l>K0_~6 z__;qVBVh6wan<_Sh!uz{s^Po>eMva6L`0Fzw*Kd+nT0>`8M*PtM*{X@qPS<`{*?2| z`3x^;jyc#zqMxxm*0q!FAk+(LC}`0;D+)SaUChL8^*lI6LBD)?wpbDcJvpuu=8UZI z&`#FmFWb)F8-07#VFskL1q;;tBJ}HR>Q~aqb8)l%a0)a2=zpv+;_p6qg3jFZY=Ub) z(sJd(Xq1m_R?p$bcj?6SY^R$C%xrg5ffP?F`cjXC`0bHdbvna)6Ci|O zfd%vD?lPTWVzz3!cjgeYLpphk13MuURG2{+{sY5m2}jR_oZXsXmsGts!(aqCXRZ3# zLn1PCpiTmyq*0rTDd5u`3-aK6`S+gV6skva{oSM_mb<|wYJB!YY zlmW9h7d5+BGgQig%)K|ScjO;ze^!}tHvTOGW*h$i6*7IA3P>r3&xl-sL&%Kq%>Ch8 zbNq9k5!77d*5aANXM}LF;F&`>@f|4zev-Y_Joz5Q^>w!Vnq|&ksr2bzL_0~F5wp5& z(1V)YbQFL&-Jg~vUUn%M{w7SE4s{uZu|o(FHm!fi`a|%ek)_;mbx-9quZDji*M83j@R-dn2qf3hx{Fw z(a%MF;Ksk^#r!$hjELi+Era)f8H$yAaN}Vr8WGUqKC3q)_DgClLo+)y$3>1!Q?yMo z3I8W%M}M7~DSsRGiMDJJ8RpLDAcI!i!cCO-va3~1^W=}m9R?x;3Gk9B0*z%>2da*_ zfXkFEZ&Yi`$`oMu17CdHnT#%I11_|UT>x_fh=4_N;7_tXnTYNU_vdDFf4+Y&e1xp7 z-sw3DEf=4Gq5)>_$q`#*6y0HZGdjNTZ+6EQeK~!GFT5$&9?XX^j>g~%AM^@frm|Je zYnyU@w+p_A4lKYNdP&6>9`>?|#!y$DjDE3QveV>jC}yg*=hnLE$h{eov(Ne__A_tK zu8cRs)5OIwyZA>}?(WZsE(({?<;@2W|Ad)A6fXX`8I+=T@sD?@U3hRyzTmSNnVU6Z zOO<>clq~W)*Gu}Dc3BZ>2$%eF;~RBM764%kO~>JK9*lyL3&DiK)#hrr>T6!Z5e=x!erOR4`btMEr%UR^EzWidOC z@#>@H5;GblSl0AMB?l)5#Bei)r+w~F*Ek?f;>+(mhRc6{+`P<4**J~Z{tLyV$$z6_ zqH0zUm!%{|HCw8j49&JrK@JyVjg;&(XYf~Q`xn3%FwExugvoHDQ6n;LJCU*K>W+a7 zZ3Zo8y@ z#Ag^2k{RSawsJ)(T0j;j=rqH z&-*g#B`FOc{Xxeu_e~PGgqES?3@yjfp9$HGT()(oJ9K)-4WM8P)Ase{W`*o&{GY6^ zI<*78GsxIB>80)m6a*?y40DXZe)v21$+NnHc6<}_!BqDPa(Pn7?oqi00?Uu1lR7yE zj~jng#f~EnX#GDFwSA0Re(9KdGe86K!ZMgg6&tW@>V{`t+eEY%iF za`0p1v#^)ZUz8k175?hr2gLZWqH6)l9w;YpakmzORLU8SC{W>23Dyi3vitQN7qUfS zxRCAdRNvRE?6PBwWHBNhvFTd=_|%xfFei-R%7~1g0vQgM4{6FezSCov!JykJtvb}pD`Dwe2y z{dAn)@%cd@<8`L&caTwaYr&0L-Y{~#) zT)PeyqvQ&-G`TC8CMOgs`)4!dYrUkmWw*+G<%b$tHhh6qP7-$R{k@v5+>iQc#e^YH zBhDOOh=&UBY&kDfs{)G?>rUf78S z5+mk5fkFP$$uC$ZpZh{4(WcZDe@sHl7@4Wy&SBio(w_qiuVZ39weuHTT&T6q#p%l| zOz~^7F;mPjKiI93^Cnj#klgXhg3I=|XJY0PPL_7PX`FHy9g@(|9_s>m!Q9{-xog+! z$ctC9zgnQh5gmCV_od}Ca71ay9a%uFuS3blh>`Q%)g7wXDCNP89}}PUN`Cl3mYD(y)rHx{6TgxvufaKi7F2Z$>#xOHJA5N#( zX}+V&s`h3>T8H`&`l5}0KzuU3d1Ex3um%4KBUXEwN zuv2K^kDIA|KJPtZ-I#<=YkJLu(NOZQzL2HNpr>)KXM5Tjc4T`_O1Yi&>olA#X#$e% zsvpHGY;4`w8qlk$V;}cC8-w@e4x@UCeF7Tf6&-r;a$4jpn6-(0mRHnF2UD@Htp!aI z1=N*?V`%i^D?ab>8}lANrSu_N<0p#a4$OHP_dYt|F7l=yg)80K$qO;cE{@#I-l`jj zypWk2nE4zegDUWP%Hv5(7P^r9xs%dJp)T$ds^FX6>_lnfj+ENtf#m59HuXH;!3IO< zTOEb0U)M}~O)Tn#tXPZ+l7ojUAo3GWh;^#YI5i!&DLaMQ$36Zo-eT5-#KJ|I07g$7_1M!)LIzThEy-5udqDFg; zfXdfTUJt5>SugaMnkv%JvBtc}5eRfl3VyRID@{)H+py*5qKJw(_edr~-m^67I2JsZ z?~B`Bjk)z>1$q)Az_e@R8{cT#;w}A{4ooL5nHbiOC+u7MIQSG&-wWf=-BVB>WQP?Wu^_duio?F-MlAj$tjf&FSeWh=;Kcr2u@_L~gmfcTJke8E&^< zYK44hvP2Rr@(2kjVn-FTbybFRJxR#qppoV5tkhdU6&K~Sa7CnsdA3WzDN}bNr^JvV zQ#0v3d!k*X1XA!tF96y3HeO7TAh4Zm1^yw5H`;MEU5LIpRy)q_YeTQT-0=^-dtKNH zeICH9d^;T}iD0^zNFsA*XJ77H6@E`4>yDq=vEgI*H?H&M-nGnd36B+qK~uhPulBIj zk1^cSkL_*snpgeEwG6`$i5zCQB#~tv3d6mKib)oRdT}db52basg19XTS8|Bq<4t4U z_&v^Evkv71g;#RZLxd}+?4*%-fS2r)Uv0_jV~S2#pl4el5h!HZ>%ii>yh?qzJMhr0 zUdsF?%Y7HB0T!rxVl2i6WGu4b2s3t`Fv3CvhWz$t-v8=9;F79TefcdaT2=-k^=qgC z=7tZ57nV^LJEv>pR!VygE1D0EYL4S)yHf4Dv}cpA-ckeWCLi2P+VfC>p^o)BqJR@t ztgK^TMY3+=$1w)q&m)Skx~@0D>HGbyxDw1k5*APmR9tPGTaOQreaNf2#|JPOg#;r0S0c}6C!6BeFM z#Hgq7oSz6G-DZyta?X&koE8;Sqz>X0Y?!!3E7Oe`@!r38w;^NSP3_dhou@?L@CjH6 zQ_2R6PuYkEacrBZ>csFBhKmmk7q>=Czlj3wMhk1i>k61!ZGD$tM;@6kvlA0hz|n|B zSS-@U3+}hT#iP%n%y-8UL7Fl7yrk)Vg{1p9rINj6_c_tV*f{mxek*OxGPbnH=eqPy zm*WlG)WMq^E>2xLd(dv`bl#W}K4Y_t0SeT-B#L{Mi#g#aUTudIKp~aena4+iWRX%AJ%~9 zm_o`lY4?*d4)a?iV2CrO5hpa30HT}ivLs8tQ}BIr*vH}%l$(960TULiT%a)^f;W@x z@$rH1)t;PgmYS(vFpuD4G~J4Y5Quz=dQJja9awNeVfW5e?2ol<46<_- z_8K+wTiN2HA>*ho$ItX0orQ$+^uQE-ix08_k`47kTm?1US*8vt;E$Q_7VI%CS-EuN zqJo&WwS@&x%9(q}_Kb6GRB*hYASDZ?NNjBT)y-SKZ&?8b{%l#ql{|0B4I8g+$pbT? zul2}X(31WC_&KIn>3tKQUZ@K5wSKGJ>??(wbKlXqMDBen=6Y|+%5o`Z8`SLNuJ@y= zRxeK;Qqo#Tg+6vQ@4Npv3%Rjw!_@}S$5zQh@C9K3Q%7>kjx+u^+On1MDITD)rG_kg z?};A7|3Dva;eczbo1;{sv4GSczH}iVUv^X&pMj*pBSr2;q)#%9{ z60S<#LY;Peah;xA??ds_nDb~!Nxi`}xk09HR(C!b9z*=GUZ~7>;|n$6g$vVqU>|cE zCx3X8wntZ&QTMzlYtD;AB71PTCDJ$ee9-esex?w}x;a8u?hFR2sN@828`!M%;A9{5 z_(+;kZ{O{8p@&m-dhaMruY4T6l%ux8FQktHjByn8W-8|_U@JAfYJ7`3*8}&qK95L_ zEdXM?KQ^CpEk`>-bOBRPLaT?vb0_A>kM60N| zm@0t}c;VWRJL?%D1TV6Vx1@cHIQh5+&SeUDS(}zl6m=X1&RHFc!??wNBTf!&nsRR8 z|D8gPj;yN^7kYIN%xS;?dZkH+DvRifxOL!RrEd=Mi zj`t@iaf7e^01kO{B9Fd$8Dti)g*Nwie9F2Iw(yM*JwDb@sb^_=fQuKYs7rdyifnQB?nE|yh#Hpv?delpoHjAUIb^fd-!|%^ z+3NLzni{9poCDU^dRz$sU#+Ju^l9+D)(E(WlQT504}41vnW&4N4}QGZ7OP~~H)k%c z>gr^}$d9~et4&CHfh?rySs^#-0_-Kb(9eB33mGthG+h$4OqynGPgo*WowAT8>2P2Q zKN{04Z`O}5@X&JHW7G-v=IJjn-pJ`@8>m~^kjG0pb`r|Wn;}gjhKO%VOTAdr8V+Y6 zM0#=q{pL?D8uCl6jwMY)RD9GzTPWjeJVK3o$_9YB03-`qESoGgdInK9y%|5L&qN%u z+}K84@R7L3!a=eTaD2CIJ>*`oagLFVfZNu`5U1Xl%TIstaHQat>sZY3VmQEzL)NS? z1k*|jahKbkbIAOWb-YNyO*mwTi_r8cL|!W6H5{^H?m3l3FgW@4;@`50yP{`nPRh7I zm{yjuFa_Wu!de_1|JDbppyxt}Z&8bXd*4QN({D=9EBu=Pg()GTD=Mb=dJ1}mj)BR% zLutoqJ-HX6{>wOnzrxIl)bu|8!lak{Te#jz0&R=9@A$ZK7Jd6P0J0-Oy-7#srdn~d zV|X|{IQ>mLaxif3v^tKwmg+&4?=5yi3I*3~Z!pPBdzVgdfP`@mFd-7IpE{EVxntzJ za3T+udR|g|BK!|WWizyMVi#%-&aev^2e;byrWcfr3=K+X+|wr#AJHm|yo@aX6$`=O z3##4-k%LWMXW{gl4J8>oA@WXu3-8Hdlbfz*JsAd$RqB1MQX8H8AO4GM$&M}L7Q%&$ z&tg}3%5ouF!%-nOUC$PJI_2gD&cQ5X{YQh%UAtDyl=Q9>aF2fb&|C7BZJ+7^7HlDX zy5&ZBoU%Q+=CeplJSE_~m^I$SqvL_aqYI;jub&DdM-zg*$U&Xon(qw;ZlRKwjTR5I zz)s${Onau}`NYe|k$EkjFq?&yt|1G!i-kHia-AP(M6LmcjkTy{ymmF@XqN>Vo^V8r zdiqAMVl9Bk(;cUIB7m_LLrZp-g(kgK;&fadS%^~JYE3!g4c$whoCRIE%hT8_KKq~N zWiw5Bqz<8qIA;NoeBR6Wsq>$|eCF{gPs^ydS(sx{7CjHnPFmyM)NAxIZ_rKiau$fp zV6$x|i~Cf>_>ix+jtol?rUC`rUrO7p+K&a?7e!>U1L3$L2EG0!ErXs5AV7%?#})Kr z{&FjDg)7q(v0z2qv##)X^lomLA`*k%smq=@^rM*wZu?Db?UV&4Mh3Vy*qa_};ke>H zg=f)(ZP2qn)tW5}U}8e%lS%Ha@i%J*z4DFbi;YZQnz07GK*N-;P}VD~V!qUqX1sz% zHnY(B`+Vi(2#y>Z^{&>NW+vuMOvu;0j1`|uy->zq`)@L$1?r8IPP%bK&Yo-O_KzDt zuD76!`&Se0t~Xmt18(pgV1pV3mgeiRhQJCR(D4*BJ;Wkfge{uM;x?u1v4&R4X5REt zZoW4&6402#_vSQmGjoc3TTC1p^bkETJv(0tK@*@8hj+7DEbhNwJ-N<#jtBWCXWmrD z1FS&rv_(DCJ;4gFaS|BPtHoFlo@EL(BVJ)Fe5KrA1%n=6Y%A;QVC0D)Qq!|?Tv!W` zrGmuQdM1cCKu-Q9#$Fnum z+Gf1Ek;_eC7ow2g_28dzT%k}4FXVs~=XCqGg5=_QBhj#>zGW0ZFc=iFW%r@#X;06i z?HT-plKH1}T5MCckD%;vHdW0zZcRd3jK;UmwcU^gEHvb$fwLRG`2SwATKIGm#<$KQ z$GbFQEojKs99X>kLfVjDzHEn}_+!wrVb5=-LLFbEY}JJLBbL+n zP28Jja{??>$0N9i8QseGerJ(!BKOcNi$=I)QJioVuoR_^`Ervp#79Eq3S7WP`d_S! zX~|3sntI>5wMF$>6*n8QPYa6xd36=roL7*deadNnLG=3)5Ba$Q-(~`!$p(HZ?XZ6ky%m380z^A2AQ8?kOwV9o*{xr6wMObJZ40`p=}-*C#c9KPfHPT zQ4eJCM3!-S-x@~NC9~5h>N#Oiv=F}6e4X!!Zk!bIGP2k;`=*e^5m$c~tQPuC=a<~5 zw=(q}XaGJwvY2Th^Eoe?@!Fkfxsa7*(Ot-|mkT+fEaVq5`zB>eFQx^%nV!FD%5!*3 zFaFv;$!uAsJVzA~F!a%X2ayx4xw^Eg1xQ;+eQCl3ay3kQ+F*5>9Y@ zII_pg3#cIDWsxJog%(s0L1g|jS0E+q3n0{PI*|D&^w})3$LXFL5e0V5;qKD{SFw(9 zOKg0VTv;U~i$pdjy`RY0qJ|AXY|ALr>0@ui+G}z+@#YU^7>kIC_gEN9Kf&(waXOGY z;ii)VRE9)4NsWojZzL2s1vCv=h1k;6aWfFJO{>pia{Ra1}IFG&cHW0 zg*p-zKCb!5{GAa`YF>L#`n3hVVH9#a0XG5RW@H7w^4$0-Tudhp4Fo)axl0-duwrl_ z%f2aG+yTW#9&x-8{4oI<`fdJkP0G3y|2hLgq5v$ ze=_8~uH;wvkhf9=IY7-D#5+~+;H2*n$x+ApSfY*>hrFo~xos@IBQ0*ro2Kgn-@+&) zGkvRM-rU#sK?b-w$ z`^>I6FMV&>cG~kRmipx0)P}?#7x%6E-dqa7O|N^u#Vusg^bNm|+B@xL`8q`ja9vrrR4md8Bvz3Ke~>E`?X zLRkZ1p8DPdkiAV`qpoKriz$Qb+}mhRMRTX%%mu^AaKBt0(Q7|7AcE zgcrJ5$Pu!iu11UX$ylL?ZtTb*saY zn#bj;r;yc$K*)NZ>aZl6Y5m+24$d6(!uOUY3lpae66XZ!2jQa$V*>SRAZ(Ba6%J>GvSj{6x5@*&j0ro6`sF=5$e|z-XRIgoo${i7R5V7V&V=lQYfB8f< zW*_%3T0~=R835jkZQL7-7SV}qDk06-NNd0x^)uw1Ay)1LhhyZp#SqJGoBCBs|X z((360J?vYv9%QmC7a}rrQpAm$PFw&q(*DN#$})!XqR0i?{(@01I0MrVb!;2d-kG5= z{7!1?%=_?>$5ln9omteyAofY34pc!)?$x}OfCGOuLb5NOuC>1%O^+kxR+d? zawU~L9@m&M2JH;7^Xo7q}~B#{O&)Q2opXl%@sxR_;vS#*V= zG$Ma=`iCq0M`wS_eL$7gNVRr#^8Z|BwUcfPv*luC~=v_}RF@E|?)H_{rYyFH0Vg*=ttB2mrL>K@NeZIEZPTJ`8cn zPk{@?$+jE-#yw4aYCd)MRF0vdhA7a&y0Mv)%Q4A&jYrl3_51f4*pO$)5{7*6ql%er zPA}TusAUir?8WIp-Q(LmTcMuL!86fb@G2-b;jN*#Rm)BtgR~|D#@bpA8|S>1i@H~_ zvJZZ%$m9#((gvz+QODqSQY~4HIciy&h}E+1?V&MWCVda@0EKH&&$r~@HWM=+G!7O-+V#R12Q)beDvs9^iYV4Y1hrBmm0TXFxqTJVVWHaS;uGJlR^y zm4%~r#lo50qT^)VQWyJ)Cz^4tQM=sPld{evrQ>g?P(%P0E>icTtVuEpwOrg5>rnEt z^-V9Q5hbeu7nJM+@GU-|apDU}gg;s^0!S;}$m1flMCvT#<7Iqne)vF1lZ`SiRNMpG zYROVXeEoF!0Qk%$&Sa?^c|l z5FuVp6ZcF6P*WC(VNLqbyK>32ND?*0J?G+lL!^P^?8<57EDuYlutAIFtXCyV)(eY4 zIP3XGMFO-GPWj&mwV*w>zMKc1qAyQt8E4fu(Tci{(+n3LmgTkFeVmsmX3GTd7nP5} zXq_SNSwMg}hlW~~8E`IAFFS{tyceY_pfwYz10$DOK28v4hZmXpRxQa9CR-dAN1eoZ zo+>tYk)~t?Tl9`>tTLtC>5FXx&9|xUZh%7?`70mHN)8|AVNQI&3l5@=m0Tu1qGTAb?PGLwV9^nrpj1Y{q7!aow5fO==h9?3)4t`@v0Kv+8Y!QA)bj4hcF|T zLC@Ah6a)}~llX<|GZRD}Ms&5Efp_a{g(^6506bzyhPMzze9j4{#km$F%TfqU2Qs;_ zOc9AZxqs^EEbe-HMzmWO^gt9Pep4P!AcfGC&%REy8$3>sb>6(Lil={EbG zl(JbZCh3J{92)mdDdd#&5JDUr-{2XRwbN!rX4|Q86?&1vAzMf0BglyQ=BR)6@`1Az zCWW|lh&LzzLoX@(Z>5kojd%kgn>=mEqO@cN8Uq$?;hfg71B)Z15aFyDuo&jOE`{)3 zO1(a?@v1uBD{&U~#rA~y^<2fY15bd38;6u7d$7&AX*uImb6Hfm+f=TbErcvs58>}_ zM^?lTmHb-|jZ4(Z;jAN`f>}hE>TZbHk*$&~yJ48{z=y3V+ny7g@fK^sYRZh|bfYZ_ zxh;p-P_wfSF66<{jmH_Uy-Zs}Rvp{AUKZ|Ln)b8m@$wWz?pjEYZfO}ZY1#!nkj4#f z$Q@V+5Mmh;vPj=z*`Cguqq3>`vbdkrI;2)2ixP$1`YQ4cQU$aQ$Yo z83N?W*VFi|7P>01i!c3AyVK#R7l9nYw0>P>8KM)XWhg(7e|a-r$RNhK0U$PZe0dBiwpwg7G-=X%*ZL}=}lT47NJXP zS8uV5f5r?$9*11;@kQS{rHnChzWhS*B7=`*e2cfJ*@Z^FEwU^;T_~4Mg(e(G0F66Z ze#Z7fp1ImmvWz+2;)`uIPF|e)Qv0IJWOaHaK=#nEW$M_5g+qOhbDc><`tT2CuUM?& zIY6clw}T;}=0!VR0LX$Bp^O~E`4(Ko?A9sO+->y$EvohrvkMtrp?17aI}Y-gb_{v^ z{9jML;+Gio$dpw(HaYLpc;8B_Z+CKTf%!M9*}$?ua{4$0 zC*FE$qUqg*@uZ{|PDn@+@K#TI@o7-Oy_j7GiGL_-PSKJz?Ky{YjZbFO^lCA8jGUU@ zg7d8u^V$vSJHKPfwC#tOx86JQoI3un6*4~|2E2}G$n1v*c?nkhtv?%t1%M(63#((r z$v$XnrKM18MHN3{(AabjU7(IQ3-F+KWaInQf3zPmEIAc`Y$Av{ za($JS^^j>tHVdZ%i}suhSWw0avw(Z+r*F>M(GYPL!$w4idC1WV0pFE-lQYOAkOnM1 ze;E?TdaxTd#iAGT7+i6$k;gVM@KKl-*#^C>6sGM3HR>P4WC11y<}JU|A|f^3EyfG^ zpr`3B=DL~wvA8`AKvpfk0)VWJyjqw(Mo0Er3qI*x@fDHr7+KKAc4ooxF-?$$d>F{W zw?ru9uYIsFZ&t|WuK-zGHZ$`3Hj=ZT757CaEs3=BSXc@`g}+E4;}A=zV-up8_3VVx zmf_>we3NP<@0TG#hiKEc>BuDnfafAp8KiT_`41+8NEF&T-l&%!Nxq<# zA@X9p&`}YbQ_>>Wr=7IGDs-P#_IAX+6%Lt7c4#4t47B)>|Mj)el7SZ3-un794vRCA zLaM_eb?GxREySY?oqqd>fn*3b-`TU}Jp}>ytS9@X^KU#g!xrZ=2Y{ZOC|RV17EfC+ za$yd)GBmL&iH!z_b7Vu3Jb-PEF z*y7uL-$`no$8eevS?8zE=YYpI+OUOtEKK5)g_Cw1f(UJyp|5?v4JmI0Qsx6fq;4h) zHzG4OxKiI)90wQq<(|!ZgQuc@9_<5aNSRJ7BeFoVgNr#*KK8sfdMtX#(2;t`mDqPe zn9f)Wr;^Q9Pajqpx9GP4ChNWRnpb_`?df`x9)d6pOh%AJ4;f&x3DXmJp@9#3P*^w% z|F%tAb}i52S-hC}xjO;M6EeBCW?>&ndD@y;@G*!{%eiFA$}yx)JVY37UO=BtFS1`e z?X5^ixx7?+bEcF7DvM1Ho5fz3y{P8w&9D}@EW|0B8`&ZZb#J83jEL9Rf&CtD-Xx^7Ut~VBy$JO!yOdkmv!%X%fJ7Wyxu<)dDIPT&&$HV%blNfE`$tCOP%z9I;Ddg3RTom%0SMHs8 z5oa9D$gMxYuu|!BGpFsM_Cm%17onVw%6Or9Z;NKE`49LEG_|uhqh$RTu9ZTjF@u^v z^9d{D$68~4T+A}oi%B8(#*Ap4L@ExV-LGiiGY3(-841kL3$?Xn%9iGXg@|962l?sA z_4_rI)2Zc2A@|w67P5op;ZT`I9(R6~L_;T+@xci-U!*VlOsIz^Uve{FL|d+mT=gZ# zUbSf?;^oXnB#p$}*%U7`pQR4*LrNbATAKAHKDflpHUR2X)k6XtGxNC^;K=7&y~O2&Ml$ZuLQ`LfMn-;}-qVt7k-OrhrN3|+=&@$v*08k1p? zwOCY{;ml$0K`+p941gbh;$QJ8liz_16KifpZ4Y;JGkpI5V*aa|bM=kHF<8N{$P zKIL6B(a+wh?S=^bnR%}rTNlCzS*tZ3u^GBoCT33MZ1bPi_OwnNY=+xCqnxk#z6j3@ zy|2AfqnzN}MbtwA zRLPpCilfN?e%*0Km;S#0;J+HJ`Ik&Fkr%@qMHT?A{ihLUG!ClV$WbX9H>XZ*Ze<_R zff^P?MBo?D&^vP*{T{W;zBaVuy1z|d#^lK&Uygn!!sHp1oH<0IFz)y(lx~cE{&&!a zKfDQ%k;!l^RZ9=-W9?`ec$w0^Mlla2PfT(0G|pZ30_Ni3_OwETnT7mE9Njc^!HBbV6fhK9S0K z+1H0Yn7Dw-WON4L%AqeTMYSE9=YBP|FlxC?4*C?P#<;e@2JEU z-cC96CH7@0W40ha@*v4`VCq|uv_a+U`X#vGloqMY(YsKX$tm_j((zW$MJr$kbo9GRNQfV zzlZeiwWTbaMg68IqEZ&2(f*-neucj{!cYW9SwjMHeI(e5g{+Hy4RsY2XXZHes#nk# zTXJGpB!GrJ-yV?;0TqYt$9)`D`F8#I-p~C~wq#$d?gF+iR)09wN92lA=Il_(!xEH% zLnU2M$QWpnila3v7b%&zbkOj?KG>bgWOYu&Yh93R%X}eT|Np$b4VWBPdFNZ*E|i97 zH{Gq0C>sS;m1{(Ku+ayCD4T4kD%FhJgFrK585D=aBduW-CpR{Z$!f`0SE)vB4F*S! zo%kV}hmnwpY{xMsCYL13#S((6aI*^r8`yj-A0bb?**s6iM$QTY@%_E$RCQPP%vko5 zy|--DRM+P@?|ILA{_n?m&+1u|Mcvc6I?J(B4W^>64<&_zW0A$h!Xlswfr#QA84}6Z z-(;!vN{Bhyo=Tz>4U%XLL~^O^!M5A_hPTT=hI$edz+$J$`B<9al&=qz+}HL*A`gef zDPN!9H`*=&+iv5B6O}*;^sTb9muBy7CJqgsT{o1y=~V5TVzP z@azlZzU88$^23o3?o^QwPJ8KbQijK=D3=B@Ta*R~1aH8mG zWI?PlzL0{AvBhbot_H^8#3G6)$Oto61BF^3r((5G$f7bQRk3kpi85uis2JsN^C6v; z*ScV1Vc`DEk-lFbQkbWw!H zDNY{9V+Jfq4)ChKEIAqO#Whmo(Za{4)4>twsX{zO6c5Sck(;=X0TAIO%Y90W&pobE$XWrBeGr@M8Hz9O;630 zkWYSHFhmifG9;1d+HWLKSx=?8_MxXrK2|78StDOEA4^{@*_Oj)bD*^R zUCzg1jvP*L@x2H7s$K;mkMQy8`QTp2Tg_}f6*M@Qm&&>#>lH>G1jZ>Op>;h3vtA5U zPfJz0o?_%%9w;F)VMLhT;N~Ls;y>c0Rx6gNMb_=#90~DkRgwg#5Kk?BRA`Zs!6@bk zWi>Aq`9s@PXIF!eZ&d~h4pe?l0m#D!iy?rlmKD(=c_quKGQBM`HUSCY;h_*uP=$oU z^>Z4^fckyS#)B;22xQU@NuG;hu0(+=7)O;?L{vS=V6V}!!WB&9V~kSJO5CAC8MK&z z0M23}m|$ZCv*6)FO3y1(CIBqd+-fD7wJ`3xMCi=Rl3ct%bf*@^!o-CKL=IPAVi}wY zdj)^W5R~P@7$zRc(?U#DiH$4fio&;7oVobQILAAJD%A4odLG|kB~&!M14W{i!OZG_ z>_doVlC&V2we=XvNIcx<-`3A%uj1jbys3CNg(|AkMie$?*T=>yhTE&~i+-jHWv_Su zPNogTE28bkO3mw!qJWEzitSv%d|V`g8#Xl!EEd(+PQ}Cu9xsoEE2fQ9mSYgkg^dMK z=#{DqHvZn4zvtm)gSNMlSAqjRfoA+nR%e1s{B!9oJ# zSOpb)TtvbNstCSQqKbaXA?Qy0kW3tzA>LjsOs(dl4h(O|9_`4h1`ZYY`0%(2xDZgG zgt3SrWYL2G|5u#U0XDZ{nYn@Sm=%5XFv`9#Rwy`F$m0I&r%`xZ#M{fn>S7$#(H4WC z&OxRNiL$_0A%C!#BAvg%5y2LNUX6{bYTjTfpN^#ZH>Lk>`GO2DDx&j~d|!BC^^+>g#b9E!&N5p#^j@hP zdT;-oJ|8P|%(@IkLPHji#G!ZFP`G`W#lFwTTG5kWPUXES`MQ7=b^$AfI9Wy8BXWvZ zT+|vEc>pRDBMUoMP5+9K2UC8Kzi%rtCl^i;y%>XV@3OIUfGUnDzAg1UX+=HNTJT^$ zGpCr4#a=<0Suwi}Rzh7N+5%kB*YoxvkFih;@UR%+MB7t-5d<=;iy)9oMGs!y_Hms) z`e4O^Q?7djI#vLA2wPNFknAT3Pz1p22th`2%&sz#rXS<>RAGeT zPe0sZc{FDkZZR-f43b@}7My&%qw(<|gBFtdVt12R zPOayC^AAc+{#8i=SI(^lTMSENj1?*ZPRCt*Ta*~scVMyTFTzZq0U`$n9%uqQNZ63Q z!h*gB%b)@VRgm!@Lx7B=deX>B6Zr;NqekQ3l&Sxo(mtwXkhnsM@VD>KZbgDw+6`QR zmPfN8ke>!F57NK^DQGQ=v~ZO+D}&!Eo)9gNM`Ds?7HZ#mT-EZ3e*;~WYMwH@A(*w{ zO$FI^bkvZjy|h!Q=k?im(66<<;v#IUU3${3D|+4#U&~ZJEr7wsm8c;R%>T^4VLeYM zvJ6;^NMtcr45!c<#8|Ap5`%`wDwm;nLX_dHC0d@ITCMEI!p5Dqi@73W55K_1g_fty z#{i3u{%9FsAyYW)E?}vSQ{h(wzw4NO@f-S^^46qWuWn>yaWYPYXLu9bU3eoi# zEGib{YD{t^!EBMVWi>~Lnv*JNw2pUV8Pp=##i+f4g!O?E$imMM3r;Q|GMrop}6YKqHQn;Z229D2Xf<Iq_UBfMKprK>MU!YjiRCz}l+a2b3)dF70=Zn;ES3x8 z?+pZUwPOz@A1dOJmnZ$c*o0JNce|mV5AG2r@hMI35w#9O-xcyp+M@>x?@&p=nI$sp z(fi?FD;XJ^8)>w#Apez~C8DRKf|12gF-Y4|L|LpbO9Xu#3o_E^E9ERc+|tT9jcY`- z8)Whz`w%`Xkw9>8b!D6~R7kP%vh_p;Q}$F`!LT!g+13jq-dJsmQ*-!+l71I~7Lut` z=Su#Sn?@EC5#!rNS{WPDAj(UGvRL0Fh7*}AOsvyrX>SOM1H3#4rx(mDvqegftW`WE zlOYC6u2f{Quy5b1H<*t)Vzq#wE52zx;b|p9B#?Q9h*nLFzKkBVT4;4onEM<2TV}N= zMe<0vP-VhX36U$ATL!-A7sAN>IE#L`&}gP)afTd38Y^{AY{)RQX5~|WWI>~tEk1mE z$;w1-!pfrV_2-F@^?P{26Y8EcV?Ta#pzW0tQepac%RCV@JsC+WHe?aXh228tI~C!Z zij{?-S6)j}CRZy1oJux3oVP`fr=>wo;&1gz45dDUOwz6`y{w2>E)dHVT^*pz04pa* z+#)IA1__fzRhOWlN?bwJ0$0do@lX%aek-!vv;L#~`KSPliUKIg!%wve>xBdjy+MYm zACc}INO--ND@qku1zPkcJ?TITmZs2?s|ypH3gPU5DpqFZ{zQ>J@0Jrq(lVw~F>?i9 z$f0(TENAA`Z5MEEne<}0W3RAXyrh^RoYOm6L~sV$m`ns`k)~7g@~v>SvL^TVtz(9Y zY+5&5QAThAEr7~mO=b|m2KUwf^Rflj6agzM&mP!f-yjLm8(33Bz(oaL^d*qW(@8Ux zppe-;+LByaoIu70#R4aJ&=gKS1uqXfsP9p3y?e9}!ctLYyciBd9`Ny>rPX*Cny;`q z6*&2r=Hp7c30x+hJ=mg{hN`DK!NSXDiNM7QCeIWOYDBU|7wq9`$hAYrQA%J0vo+t( zej!t;Nw-^Sd!<9950XU&%Npz0)Wuy7Lyur&SzcvvSRm_(d#m!WrbWTB{8_#V0~&&K zVg3y;@+pMz>16_WWgadaB9$rCFL|<)#>kbqPOvU2m1ukL@kf}xCu{q50LU66BZ)Oe zE{qnU?P;UM@6Yt*u`<66)+#HVdc_)&k}zo>dlY(} z0K%db!4xu&y3fGUWK46ank*#CMQb>CvoKkd!JA@?EKO~nI8`nli8Kaj5pjW2ud@R?G)CDu^%c3mE|sWryx_^-IhPFzO2-1W?%`2ZFdn6&T)1yYh>* zStwsfsp@G_3_R|OVijY-1Zp+S33IY?hUjV367nWP6{zCh?klL$iJ$hkjnszmD9BhyQW)} zz|Dn6B!T_b(xo?qCnU+NP6wbY$gnZ`0v2Q_QUMgi0HQC532p^%$S^s;zv9$eeTI{o zS0Is^eZDQF@$u4xF^VWeFkfU+2tB;-tS=aO5QVHP7OUCbR$b9|rDe*hCgg*q2{|Y& z7UcIqBx8CT#Jq`5?^P#CHvW%dK^B9BWaoUK#1lH0UM;vc@afq|A4zUe*efLZSWOU7 zYM$h_&=`XG!g{hE18S+$D1)iCSjbd8vH{R;u=P_&7>?eg;l3f6zZI$&QuL6? z{Kl{M$ipmTBsMoKgaH;{<1Y>7g-9N)L7;^)<7m~l#KvzFR;FwBSvkN-^uwxWtGv5I zz@i_&xw2!gKUuF}Wf)iuTI`pxGC)g!h2X8#9DAoL{^?b%7FFw8DU>g+>h&i$l`}(h z;G38&ijaDkSz`$u!AS~mt?Ci?CLU@L$}=kN?TvkI)^W&8q%N!$c=q()@ z=vX4^W$NjGot3qzpKKPX0}doY5%_3g%VA=KWPrht?G-T5pt_W#%c?in8$rGf%Z^4`xO#R}k{>$~b*qCZJwY0SrQh zU}m+_x;XQ+onm-;h@fN*FqCB8rzA5pD*e=;EE%9=>M1;}oFeD0U16S+tSq8~PsAiS zaCS=f9`fxCf;bD+SNtQ(oFY1eKGg#ie@f%>s=mGNRWh~ctZ))-Q5cRZIRReMWIbXn zO3xlqLqnk!LEiw^Upx{694?Y`$YxRW`jbvS_36q=s701e3AU&R=9LvaJvXn6K9=kj z68feUzhxnu__bi@fr2jB7?CVVhm;g51oLPN=PQ62<&rSv!Xg?QkILnKF!GS`R0ks? zkYuSc0ETu_ABUL{%fGCAdm@}yG@VNR?@_E=+LDPH`UL*#k7KjY8R0O%A*|HWB02yN ztSkb$RQSYx`AOQVqW-S1$kQr}d`bem)Iha7iu2Ih2F}hQMn3*`<%GS84QDt>0J_7n z347=cBAr*JNa3U|qd0YZ_9{-1QY;HrzDT;+PpY*=ZYZ20DgaJ})mPT^ow?;noexgA zsxetSe&Q+3$xNRX`Y?U^hCeA2!hw;Cyvf>Rp~LF2B=1wrq~_~Y!s@GQi>MgRefX?P zmk3f=>~Gb4a2QYjgEqkFWB+jvTR_?DGhL_eHvDj1~^7k+# z0kbw?3?@5i#cw22XR)lW7*7XAxQb(>515CTSx0`UaL&GCL@fVAz=`fBVMLE;TU0Tm zRv>ew@di1x)Y>p5WG?3IwT7G{-<4$}2eB6tJ){_1V`y<%Gg$_B8>p{krlB2~g zDL4ZS=h}zPEr%I0ld&AFgrOD8Sj~eEzc0Kvh88UXn((KD87oTX25Ja)mU)F`AW=2_kYt~g zd8kSpsff6J1DFit7=q2qQ-Y)Wl=DRjwDBEnnUh8vz{G;5m$%=A2UJiTtX<7O+fQ3<*ydN(N97|q6@I|BZDM|U}t+dPYY~TRt@wCte5yiwJNAX zm6dspF|1s4M49JSpOC8JFe>v;2dW_Ssif@`gfXNFuIlvbo9C9Rf+fJHI7-S>1FpWP z*RMY%6(taTi+y2b)~ev!%Pavz+$)Xi#5qpsH1{&L13P}_*Gsm>b**!1l|i2U>~I6v zQF#3%r~C4pS`{`|COX{Lhe{7N7CVCE3So^psFB7&Ev!Kvs&thc;f%0FB3j9HSV=@A zA#qGiEn+)|6JFd?$#qzU94P%qBvonN82J7KdlZrhWL@G$$wfObaKO?M?g@kUgB#00 zIp9Z`jYwzLQo3Qu+2Xv0p>?F3mew-cT5-Clh00*(s@Ws}GKHphDqR`NkIEGeJ6G&= z7xA9-jU2;_Ijnrdng-csCQH z6b2~`&k~p+;(Ga%sD22j=71=-S1|ZS;YaxP`DcA?sIi@w(5|) zF2X;n@>+ATu(xLN5`#z}0;w>>y(C_31X5`LD&mb)&8j0lrls^ z+}bLoi*^Z~(k?-9rYzjsXKIyW8N1z|>ky4!ft^)~t$n{Ks(hKsvt;V^EBOQqFLxQE zp`(pReGlY^p?~q?Do8`;ScZdjlt#c2jmI9}U{9yOFFh*vt7%dL+ubne7zH7vCHkJy z&^j1yha-+;bS*%L0BhnjMnrXy+@$~^RZ-oKL&qy7f?3-Urigo`64X2rLpKVnU(oEa3|KFl_cydMa5|vLOJQn>)u^h9 zMJD_z26^FW*f_dn=AW4G2EbYphmUv&WfpdUtjUsr*nY3diXmKGSfju5KT59FOHm@K z2gur1vsZB(sQfNNu^KuNVu7stmJdD8M1tt_a=?nMB_5Pn$Lwz%Ve7(-2SaOYt=YOv zQoC$r2c<7+6SNv?mtpGxTNj{lWwyrpLAw>c!h)?ua!V5y2&7=^LN19duZ#My z2f}&;Sr1mc-g2Rwluh0uCS?zVwOV1dMj#R)NTX?s)cR5Ht}2WpRuCnfC0i{k`oYg? z8J+@wFroFJvfzo7F1?0gtG<{KM2yq_LZ%jlQ8V>1+O15AsFN{2&6zT&?#E?)a+$v= zL3PTiSG9sX**e`42jT#M6jl&r=W{1C`Rg6s#)6qxUm{nH=$N7(MD>L%8i6`404H=esD4F z5vZ@Gpdhvfi#*_xhn4Xhmbtiuvx`gv%1B-Hga>LN_fxQS#dQd@79;hrs;C^{FAS=e z&2O!!iV|K|Ko6w4n&dD zD`bHYs_@Uk+W8zEU3;Jer9+=3Oi51>JcRc}uParCKHsx(-^h}c z6^FR8?8&n3eQWi~=%YVLurH`JqHgMy^ZLoy^=8_e%wR454b! z2j=NV%Eg3*ohxB@h5e&Y6(8uE_R1&^j6=X`NeRPF!|I;m>LFM?>|K39xA=DOLaqH1lg23rrsc-%H%YlW(1nhNnt661k@w)>*G!q(WUWuB`rv)~UggXr*n4XQO) z_orDML_$~XALZPXLR2HLwOtnbhO&RWpjB@r`$t7o7r6*TKFdGJFb*phs-lD~tu)v3 zSY>+33Zh!c=&BD!M0I~n9->FJS5fu?u|-rfk6XNoZz$#s4qNq#Ri>0xPiNK`S^wd^ zWk|F#3yGWcVr!WkSNRhQ@WG!VJiL!aMx#kZab7J54=mOAtC2nLmb2)e2G+WavHDAkgB;8z?- z>Z)XZk>(FE(hi$HL{B`e47%>WQVKF7kF&>>n~+MF-=l_$459 z)>jj?52i3&f0C9fQ+KiMGJu-!B^6kz+=~71rR{yU;_?}U!_iB!aKH-$eGCUH0Xv4$ zHZNP9wbIRBl#*Cvw;i>9Xh6Npq_-OO=%>vuS(?S)Wv0qNOMJFSK_~M0h??1rD8%pq zR}aN6-SF)aPz(6b@zDaPS)5gY4_I19`D3PTr4_HDGE)zvv6+;V)i;g%9 zs1eVSQc>xMg+MwcfV$KXQJ#x{ysD=h9T6A9$}_JjPDO3c!&xp#91fL^m;S63z%(ML z1k-)kF#ywwCZ~_9xQ|u&SxnT+_<8umN?;n;A%oa*eijSoauaniv%6yRfSY0Ps?9^2 z@>a7@50=c<(f-~c$wODkoc}c3ECN|a;{|V5(_#5NFy)C51av&}KTFWjpV!@A)N(cT zP&r-1K0Of7dd`Xx(2}WH8}f7v69O7}&3-2wT?YIQ;_*a4E6{OjL_ZX#i(b=2O`0n~ z2d)+s;vign5vPlI7IfncJ6)u$gpY@V9F`mMBv!hB(&ajUxDv%{hRLI}Pm5rt_4@Le zr634DE5)<8$hCD^S@Cd@W2(Z4SH%5~PUun6xtP7uXXc@N8#?CWC4`m=5lTf+31-EwY%Yr>BC&YADC=iA9=S86BDm#}%88}+13qrhD^jz4Z$#z?viKPNe ztDzn$D6gD})ekV0NDpnhBhq8bpZ+V&)Qb|7Hv~1n&3pTH4h5dsX*&l&|1E^`ASiD* zen}#hL?jREg9G28SYY0tA&aXqd0^*NphgutOKQ56eJttUl>w&9phg*!_nr5a42(Hi zWD$R)IYn5DJ~&uGO$Jq*E5x5w^+6hMV7gmojqb-U4Vmt=J}3q}g{2EC$0OPy{(v?| zgPwon<2p&50E{AwLurjxQ67V-Ed5zog+lmVCaI~#EngtYHNc2&OJpiBN)C z9OC#`h`AH49(9NZa58zm*ppO7xVmq;lSqm;7+-&;jGiu%7Zh`5(Fw)LB923J_Yac+ zcf`tpStB^4RKO7{hhFYP^50fLG#cW;K2u|Jl`vC;^^t*2IPe?xjT}Sf==4SV4f_(P zY`#)Ze-}Z`JXw*>1JFn~UMZ-TfyNR;mqv~v#$$8^p8|U*BZsV~cC0evP&4(2pvKCP zNk&|}D~xGywsIQ=*D^7_z|rD0giNrv@*0jLmq9nI#F@SnISp-wryQ=F?`t)lMnDTs zD>+?s^n$0CPttm6iIV!!c!e`u&utl4IaEFl(F?_5SIh?hU00Gj_auz-665(l?7PA- z+-Vn!o<1x2zEn!w!u(uWg1FQR2hc-%!ux1i`@R+QC|uzj7XconExJI{x5C=W$}!+* z>1#3%T&x_Uq0{}WxGRQt49z&y0!c>Qs+B`~!bSfPvz_p=_JlvaOiWAbA*L1fD9|)k z4rO+g+2G1asMn+#Q48T{8+DKr&wVjnax|uBF}Q*}$_e3WskNOKF>|09s`gTIwU#Fo zC1|O{&Ky#$Otx^6iq zYuT*!FPf8wvm})<9)ftg>jwUBTghfPSsS4BB!EHW^dp45ZZu+M=3IxbU19U8=j_h(HV!sb7!@&F2Kw|fRYGh z7^H~&mn<{t7hdn)&?-Kc-&R8BLn<-H?K(r!0Ay6`&R97FaUhX1*tozL!oU^W493u5 z913CxcvcQ?tqKl{V?eWZcWXs(5NtOpjRjx4BzLz+V;z7~@~|j^%kTw&QIz?LQECuF zT8f@xvLQpMP6GQPO>`qs(L*LW7+BexNBCD+=+GiyUp0Yc04)0KTPT2ikKhX^fYN~> zLzzf)rEnyvJA8YwF#rFb*tf7Xm+UL?bzlmW9;srX>tp1?LiZDIA7bA@(8gDPTL&V! zJMSmBu3Yg%!;2lG`MrjX8QPnzW9#+_1B+=Rs6b@w%)+~BE>@L;2LT(SUK5F|(^Iil zHf2b-sKygTn;~dMrebM?EIyLLl<^3Mg~}t#MSzei(+jaOm!^zj@Wi!U!ii$OO5xca z2w^Kx-^Eo@rgWAyT5)RkWiY^4t=pqz zFuw*exM1S{<1+;lJH8p#oWM6@%gACQtQoNpTUl%yPEvCkMtHnu7*@wHvaEPQ|KY~W z*w1k@WBHV3EW5g~*fCt|F}EitEQ8}#msixffgQU{GIttbqh%ba8O=+0zIl0rhs3eI z?MRKczrHRfchz{{a$S*kwfQ^qdntj9qNV zj(^?2l<&lRGU6Rs<{b1nHYV%bzK-KX+nAFx@w!gk@C^2RBdkLN3c*3vq%;=Kb*M?k ziO_A>VO+cUm!7wOWa&!*g^_JxXJBM^#jW0U!wKxvzS4}dY~6`GT4*=2=J7kCX2Z+Y zrM7vv;caa-&D8ON+O_JByYp*9U}vkh%WpIruWW5i_!+o6lV14lUah?~ zS!iVcw{5kpxM#e^KH}C6^wJ~yZKpQ7(3rC=Cpep)wm#zaqHUdp%giIS*h=q>=2}N; z%~QQy!NFE9Y&9aQ-Qmx!AgCFK1AB8&^RnOUHMUw|?eM9d(avsfJH19`jMcJU+sNL@ zAH&(VAv@e_bZhTScig+s=(_th1c%+m!l`z1&Fw8?kw5&*#%odb;hJ-*-HWorka;|9 zY;8@qoy=~m+m>F{az5O1?All@l|Qd(2PxILRQ)zCbq}>UZ@j9#AP2m%b9wEszcb~f zav(2nZ|yW|uWLE(&T9W<&& z21tfx-Y}e3L<{U2QI8vu6nmcJbkh$S$RCr>Z%v#| z%{bB$krhd+7CUZkn#Qiiq|`KvtvOqs=0hu zcb8$S`{jaRJB_x{MUvMz%fs9uzj>lti{y8cZebX$#THkEV!xqx^7%`-pmyE77Pe|J zj~VQohGW`@J!>6*YR0;x7C!x|Pk-pzA9~ZHMd}+Kla23F9L2oycW9Hc4K`}en+j$q zPRj||ibsnFG{3age_i>5qA$>+JFu>_uX0)V~ddES9_thbFadd54(zzIH*j4Xq${@?Fp5E~lFMxj? z8TsVU@Z~V9d%VeSHsE|=a>M5xbAh~jhyK83z9QWsbPw8|lyzqiN*Ad65AON?pMBw- z)fU$cn5lN)Gu&Ods!nv}M2~+QWCqaTv6k$Ou$6J8DZ8y1FK7TSKop93tY%&Mt31My zT+ut*yaKxQA~|83+`C}=cHOX=a-7L&1Lz>z1Vr{icCPI9!{tVE4NW1t1ydbvoum-8 z{oD*CUD*jAgbEbZTmEjSIs7+ZVNx&!h0a?UY8tJeaE_@vQ-4;zXHc$Z_!3kMusCAgdoU3tWq zv$cHP2z@J?6s*!B5KDf61~{LpoitX;FAD24C?O|P1BuCbIW6}TFQCjc3qor_?d6H~ zO1o~&aO`K&H{JfDOE>*j9xt{`cqQhC10w@UZO3#}(baXXsf`j!yIB35>V+bH)p_+R z6j{n|DVMaNr61yLx<$+D`d9IwQ&{+Tsqu- z-^Z4|_Qv8=Y%B(g0acf7%%52887R(h0JG}qJB{Emm$vNIL_(|Dh4gZ60G-hoT@JWE z0PM+0^<98Iy^>$*9}jU>e!)aRR0AV&Ds=sZL!aQRT>Z1Sq&bMlIg`u~V1By1q0{kE5RR+^<+#AimvrLab)QpEBD zpsuFK9AwQH5`mv+143F|2Oe~4amGXH75dF#Euhh)E>bIKv%qj1Ae~$u^O_JQ>q;TH zN~1<{7ys)MoBd zT$hID1WC{l!m>en#Tdv`{_=mUdPOs^>PF&7D?28qjDHE-!DIp=-|B@Bm%Qg8Ew{6lM#dD($OC#Tel_Y27&1|6J`V6vun$y4eY|UHw)r=>b*VMiE>fW-f&VSIZ|6g0`3 zwY(H3bKJ%Ec#rC7G)3T8s(eCHxir`u(b{EGm%N7UHS=1*6s@MqsNbg)odo{Mxs}eS z#1n)tLRciv?933#gm8ispMtARRfX=g^kW-7^vQqywcjZ}?U=mDjd@orFU|QsFy{C` z+H9PG7h?T*=zCsl8tG==-`>eXU4^pro6(OW}YAd_EJi!Siw`f=4)v%Gy^{{pbDY|uIBeoN#@%$rybhiGX z-z@tgWsCEKvUxN}Xl7wzI!VsBOMm2bR4G=Ui5+BnXi_GAqU5-BY1T<|5(f5js6VL+ z#LaR8q=Qw$nmp^QmDT`!QW=n=-gqxB*83z&IDf&J52(;QQuA8RnmThsPdl;_7R z!(FJ^E_ev^3j<|~GCu1!342NtV!v~3Bd2&)EFX~a$d~0{b1jT&aS}^S*xWeWHaY3S zPR@E#G&Qo z^#`0f_fnH)1V-&90XD#{2myvrld|#nk6Bx15S1dBjG)`53YifhL*ai;iCLw1aX-LPF`dg5(c#5-9-d)!A#HA#> zVzSd}n^7K`30Io4mN5xGMq8737f(0MT?`g};5DqR>aD8i!e`P7($_#DoD;Tu%;#IG zZB`mIonBEd%&t;ysu_vU=BN?a-855-O-1}jmvi? zmTei$lZg=}d6GBXjtH8>NfJMqi7nT#7X94#W^5#vn{KmHi(8X51`qGe)_ChATJG97 zvYlDWcD?SpGuzU*1u%9gNbcoP6t$XpJz4a__jEu&7Nfyj5--%fbiqAfkL|N2;B(80 z7u%Z~o|h=Avf;Ve)wzK=8cYg_4%(0H$c>!`nvGp`H;y*fj2+#YVRd7Q;xz2kqV3|Q z-=-y>F&wD@d z`M1?8U!{`971^XGs6#udWcA}mqoHg_&Y}+l&=~9mbl@PSwy~MzB zW4AWek3=>3u9-M?(i-2F)7x!+wH9g~#PWI9W37~vVXyA2*&jvTBEr47*%ayE9+~Nd zrqq9z={YCbV@Y(%LLgAQy^EXEN!O?H-FlPOI6&3evhKRTPdJ2PJc6W#AXEop%T*rC zmMYT?Db=$lLaXiN-KlP>WUHQqS-}-y`8e1$o3>tNm``l=rfEslw+N~Q?SY(_I zm+AKml6+?e+$*6UAC}-8?#hYC-o>Tz+U8WcMYIN$N zVr+!Z_`0%pg@Q<&oX==jpq|g7j1tjL-WmAyIXgkzP%K3SsdON%!q^70E~NF?n7cBp zXDB+(&)?{n{?c{-=7!HTKL3Admc`Pk>lN?v%Uj_>Y%+3tFl#EIfqXDwt(jJd>M z+%zut7`t5)>WbP0g&>vOA?Q`Am4xzwY_Ywlke5eudrm!zV90nJBwAw%M)@m+~wB~~KuG0=MRE?qj`2q*FGy`edtn2E(V`X>ZT0WO_ zYffGRIne8b4sf|aYtax=7&J0}(dyRkpnaXjZy+4#yR@Ib_HKG2w;S2zNzDOfpbr@F zoUMm(&PT>?ULEU2fdi{4niHSbgWzR8d3rB zTCUw~iSdsb*r}>8QMN028T#58xmTK+*IH{F+dP}Y7h7YP1xDH- z=hfTfAa~3lI`^X^ z8LyHp{{nSb3?id@JP?8)pxA;g*O%hg|N0+ZvgMBpdO3TO=_JeT+=$2gWM|&O!LS(( zm=Tu3DDv6I0qae3E}Dy+4dz5pH<~T;vwPEItXC8NZ7`X)Ycjf>z_ha?jvr~(k1eb} z@-oJXzS5K^F-9PVN96Ky@?dccAJeRdKvE7YPs}ZfBA-Q|Iq()hkBK?2V^`T5>R*sAczd(R4jw6+7j1jCKhz{5`M!M z-KZf*oUYT1OgR&CvXuzJZRs)q7!7;Om$BJ!LrBlPNwaNQQMe=NBFc^KC61XRc8tj+ ztp#$Kd(;+rXw`wqD`kwz`3oeVh=#{wGIU6l)TY3VDhNM;*mO`zmFqEM7ksV@sc)uV zO4ADkbNR2kpCdM23NVTD%*oRlU`nKVH;qIfbwP{Wr~l^O5B<&$JpU;XL9&HNG@+F$ zl6oU$Qx8#%t}8`!4R9?k)Ehf)M)f(>YJQ{Bij$;OOQ*BYTnA+cs+bT7Xza4<3G(Ig zEHazO#qQVrv(ahxepe2mfv@qicjii_EryxQ*1;^3vJk-B5w;*5n%V%tOR-RTwL=%^z z(*@PQ%~E2+2pKtO4Vu<5fg3T*D)+H*Xix!79r|Ht%l&MC9roQ?;O5=>r~dxJ-@J3_ z8$Y71@Vaw+poxt|YG6cB(~WsEAM1kMq?=90F&|JN1A>y0Qt+{s2CmRI}Ty74(7WKMJ0z1s7?aN)nbY3Z~7S>0n$S7Z*w_(qq8SmY2&39lkwXgErN0Hk%K-cklO#1|aH`&9wbI7RhE2bB|) zi~HDzH5=B067s8=WHsKWe&tcuRT5J!OaSb}mJ2X2xPkGbq2LUcuzqo6&Wdh$%Xk0# z&oBMh&&vIJi>aNbt75EgOlWK+T?77-fkfI_G`;eEiVaXRa%kn!#W@`|Tnkui&c!Z= za%uu#C**W6Y8rreBl2=L%Qn?l5 zO32V1+GpEfTva3a_F}N~k9X|(r8Qsqh&;eX6PVJyg}U$b6JtYV7bN#bTXGQJe23DfHa~j+`y9}w!(Z{ zEZ5xTZb)xNvC`!tPc$5T2Xc-pZI7FdaE@VBh>}Z}6dJ1L=ZH$D{E=(AmfhNMBZE_T zJU4t!^KA*wNkmqLxg+SLfM=; zRY3&QrXczwf~@wGp^ z@R40hhyGAbvw7HR!OMoRUkV_)qf{qp)@Q=C;Kg>mr74v(&BwU5pFt4T6r*@^jXaM; z1M)M_Bnc%+)RlzRxu$KlZixZqhKEhh$YN|!HP1<;m#C3b4_~?GBAvp<m zA`p*s>lB5T=2V1HIIQIws)|UIs-@Tp_T{`O>PD@=e9SgBw#>&`u%+9Su6OIM?@#`h zFI-zHN)2>d85=XOWTFd@@gAOUrhLIb+GMH&$N(QvdDxJmKo?+jqMAxNE99l4CAA}F zv&N-5Zp8g*jh%UvlE zCBs%FXiN&qHO_Y7B`_@I5)XNCqiT3p?vX84`#E{F+C(S|FUmu5C;u{DV;G-5cwyK5 zOaK0p`Zo3=W!0w38c3stlunVM>G3?jTy}63?5L0)&m7wfxgta}q!kR-t$7i|@N}Jt zmU9t9^Sw(#MoQ117SM}sBz5Fz52+_(rZ>k|bEBD2h^-#?@$pzuSP*ic3&uV&rtgr} z_do|V1`SFjTdM!4eg9^v$ybCDd{X|P;hN=*JQ+$njhtsM#o?p8j>qNP>wfg+KmMVw z{e5x&W40TwKiOt@ql{iXPMWXJ_m9s+(??=w--IGgkT|||xK(rQv7Tox(tDbo?Z;PM zcDOcK8^1Qj4vjcY;;!qDf2%c{5$)W3*?m`T-0Ye0=ErxP+Bli)O`GnSJAT1Rn`4~| zzPl~Ulh>bZIk(<)*4m$WS#Hf+N${^Xdj9NGoOto1yTebXY9|gqngG}~w*1|InT06u zZfwWc1LC#mE&f{fNEB`NV`p{>_Wt@TJ+ia*ER1_)ea@b^a?MV36#Pl?8Gu86z&L9s z)7hDBWTvq(w-H#9f_9sJ`y7sy9?^l3gp3_^&EK$teBqdlQVSrV4}(J(Uh^|HanPts zdF)`mox+?O8%}3m%ccSDXti$iqcE_}toyo;U<616ZxLpXE}?z$__6i`#`W-+m8aAB z9rYb~bFCepHsUL4fP|yp*jRgOkZwHIzMGZ`y0y<9v#?%d?#6bn-aOxW<1hT((rd1i zCS=PH<$0cD>;3kIz43`?v*pj`aT3A2uwCNDXEWD(50L`fqqjmCfA7`PXX6RKvDv~* z>^8k$ip(TSnw#zVda;cFY4hDPyFRp4NKI^+tYZu1!>CPXtCOVec`hb<5 z_|jP`UYG$ZUw5w`MYkun>}t3Z))h}oo&&J>)*qdnS+FB}(r*V=9tB@Ma;kkgKv{dU zcS{0YXXB~bc+}gUY>ju%a2(&)7&FH@wmC3NV+?~!{d29S+Q&A=6SO7PPRH&r;Usbdy)9C5Jgdzg^d0bNSetCD-uvkdKd?xkwe|B%=McLWr5A1sM zTzn%2lEjWsZqC~8o}#g)w#D&!yg+&Dw6z$#^PJ_hPctN>t$Jc#Zmz#F$Xk(RzQK&V zc{4fj_>sMn-uv>mSo@o;BtQ1P?e4;C(#+x={{Ce0Tb-7DTl}r5UA}d4!jB_GHS%5NKW+1v?Tu^^YF+uckQ2D@^?H9qaPcwQkI5ZQIPJv0LHN zi9kO1#_P?qK^jLN2%LB1cO0`naOr&G>vtTp!XP=<4r_6Aw^S?CLwg^-OdZ@$S&uF38T;V%uf2W~ zMg6dxXuWUGwhvzar|N|J(B2P?%bC^}r>M@W7jABS@y*ZPKl|$5%`;#8S#_|b^~Ecm zeQ0(|dZF$9ZhXV|v+X;!tbgVTj?TAxTh@Q})=y8}aQ|H&+_K^6^~J%n99(hN2VX}E+;G*$#=qmq!Po~s_wej{ z)<1XMiTl4tOWb$E*qL z|GvMz9%{GqhxdN>IN zI?uU>p1CRCGJD(l=N^CH;rRRB#M_T=y6?I1y<4uo?Yie?IQ8s_1P+p;^XjPeAm<+7 z+*6Nm+oz_^uU~le{hYdgl2gYxwQ2mkrB5A?_dx!K?mX~pdF0U{Zl1r;zVA+srf&X> z9MMUpwtVKPnLqh`Ihf$!q#Q)&?t3%LbpEpWcYNaH`FjpLJoD9AIq*I?|M2W59zB1| z`_$eG<4^86Dn|)NS0CMU6?LI4?!GW{;^E2fd)Mvy4hQk~PfYB2|1-KS6MN=Wt^RiE z{N4wC=D~-jo;{W9x$p1qq1+$h)WXl`s_eP%DLJ+2rt^Dy`c%AU{;4OQ8&5toetz$% zJ=Z-Kyp5x`o%$K6$wTp$&pbD)>$D|#?)v*aFSX;SbKjeO@tH4O{@7m>QsJs}YS+h( zCi^b?g1^mvzctS2@H-vvq4dC&-{_eelS5gY{?1jDldfVQAbmGKi^YvGzo$+JoTfJ?Yg1x>qKkL3SjV^8N_8xb?m8JLk z{!ewHvDQ0Io=rA4qQj5O@7Q)#Zz}$ibn>=#bjUgo9rZr!b{|Rac3+#u{<^PrX4@MM zC1o0Dud{hatMjV%rBC_o zZ>RCZnRGtBwPoMkI_+<`H+r4jd$X$TRYya1FCzqyY8<#Uu+*tuj~OR-ge3w-x*DPFgyB$e{U)^p5HP4lbxx9>Au_B zm!5Ooh1(LoXdOu1*R|%&4R`GDdVx!ozdXCI<8Rpgs8_puhrQeXV%&>q-?M2tvEAN% zyq()0?fGB4EV#>hRcHQ*_S&nxTY?+2%lwbbE>PvpuI=gVu~gX~zpj(t)j5&9*}wb~ zJ?m~hwg0F;K67yD)>dza+k30$N(*n?caYje?Fu*n`jb<# zB}Snv$d9)1QH)-W*~K90m}0sS+zH(JyYWxkm5M9mN>AXtL+P<8P(}~&6m@v%zqp9zmY^$@KT+UJ)Ih$uE z@AB92W{NZ0xuUV*RC}KCoal^4?Ut0Cv;JH<-nv)H{-_tlszy;dQRmit<0)S0O}8hC zYS!Bxg_n~7CyQ#AAxy`q|NrJ83bjH;%4V>))c!)sGFx=Ni)7EZR~ zK`ozX_ljD&IYoH_U0|P2FX%F~fr@2p^%r|nbd{rZYo>yt)0#3`ZT!F-_=6MUr2&$TAe5Ey1;0;&6-a>cI>vK zr%5m$?dxo5{mC&ud%W{SUz1?+8LIa6^sAj)V@PnKeP?ng+0LW?Bjt?H;QhHv`;7nO zK6poHa7~*BZ&Nfl=fAFXoWW_~yl1^84WYs0jj5bCDl~|$I`)Br21nn}X@3D49EA@$ z=e_iOiV@z@UN@faPxpA7>3%bPqC=;7Ky$*~XGw-5jbOu^k#D*q!&U4VT{AQpb`}}UG8qIN zGc&LsCqA#ipNa)El3@fRj*O3O#wn^RfApXvdrpYCGB!divpm3&`eUTTcyM7}#w_tt zbhzdaz-KZx@m2Za3xA5@U=Na43tb1FGP3ehc**69e5y;W(46_hCpx^`qi$*pJEO{=<$#O zWDt#0BORf`TjjdE7rV3$Yn>0wOrH}fghG-dP5l-|!|KYFyVCk+ulh3f>(a*V|=_@i$C!et{uZPf48a$En z1cMN_kZ|nD{Vflo5rFAzj38bJ?bdpjOCcTAOWX{brO>r)LQyw^W?7tI+ZrR@L!zgf zYalRqPq+;_-n6bEURWAy>^@!}Pt~W}#&psgr^GQ73v&!)?S_Nzj*b8&CrhNzZXi zMazPu`DtTHXo~S=0;61>300$}cUC>f6Vwq$)ki=358rHTx>{`HvN?o2B`0xCo`8bF zoGoEan21TpnAYJ+_!TEHS^fZ9Uv_qa67zt?^_?R+hDza5xGT*D8S^AmR|N4i2;HNfo zRc%?=2y=|Iub`Jf*Uu0^f~}qD9rPNPhMMpRk?vUaZbV2EL3Vt{#Rok?+%wK>M_AUF zk-se2SZECUcI8M^2N+zt0?1Ew^gU#D9}(3ocSCK40=BuEtE@tQ^YAKN(IO?neydURcn=tRUWMaK0PF$xjv zWp>*fPSs>+T-*UkrGjkGHh{(DH;0dLs05{YKQdPJ2dD`fPxc@elNT(UYTjCetZ~az z=g%Blde`0RMT(q!(U>U6Ih~w#59Fb*q6Du?a3s6qg+cu$6_=1JdSs)r#2i(>dxXn^lt5l)$>g*CY<9bD?otLr;+%-VUz zQ+z9rVC{mmYo)z}o+4klirw6e@2C*e3_G>#qt^HC+_rS%f0viZh9F3i1EQG=e?l*> z-XE%(CwQY&2tJMMWKIiMX?|81#rqnwv5Lu4ee&^C`4-X^S##Bd}T!3f9@ z@yfui2-YqGJiQOkBP=K96@5W@S_-U1_LWTA{73+s^eGI$8s{f$i&U72iD=jNL(YZ;tBoo9ID_LV!!t03jd)sc@|j87T{uIf)a8mr4mEf6*`bIEK3* zR1BdC8PTOV^OUD$9HTXv57VtFO7kZMCOD0U|Ka)Do?KeEPp-3pN*fbmzj_6o7ntB8 zpN!y^+(iC4>==(33lhTt>>xA+ZYk`wHgUH`+|D2=u$9nTu-ASB0~Dw73VL;SStc^W zTx>%&XH5k9*kJBVV|6UpYpO;7O&x9k#CpbQ0j{xcN;nx^QzQdEQK_85VTpCZ7fCCn z;uHi0svu%1ubl>*738IEHUQ0B+^J|V-BTi6MjF^eqyifR=L>8i2$bT%pFnP*__i(sagAe0Iey82lsDCzYhh_i zc-1BP%rOgELV!Mwotn*QBq1S18c;J8c9b`Zn3c&)90^V0?zIpS(jXA%=&}KE3&~rO z6BJwTqgc3JYK~y#D|sr^mnMdwkX8ul#&#CUWFXptAsi9Abofnse(nc8|7XP{MQO2# zz43t@l7hMf#Co|Ba))x7+oUHo0Sk#unq z?wgnkh#>?45%>@QmfdApNZS1XRvtp4K~OhZ+)hQ)@k{tYUr!BWEr*IvKchiGESiVH z{Kx_MA}~ma2!jh*8(AwI3W=?SfM!+^we~z{2l^^ODdcr#d(am=$0j%n#?3g7qg{yr zMMU%jBn}J;O@*R)joyM}KoTjY6;hwpX!f*77{N-lJ6giWO8zin1ZX0}AN~5*{^`*x zKl=Kbd`-5n5sjS$#}zaN&=S%nw3SziC;`!$0w9HuNf4VkK%r#=iL!d8X}m74CGc+w zjYBhXDl}eG(D;%Fu^=Q)MAS~AJR&j1cda!J=R)ELdZz;#-*gG>n%Bb!VW5c|OH&pa zgRM#@1rnkwHii}D=Mbrl2#J5rg*rlx0VfN2*$6}e(F%;MQo2yd3Q{9$L#E_lm=H)C zRQXxc8aY8TvOOlEmZ_I|Ks6ZYnDmm}@}=*ef78;KXza2zYw*dKZ!%&VGOQUuFlMLu zB5gx3nDkUb1~odYNLyrt$ihqmThu2Jwjy35{uUq%0k1*rE*ox1kcDpIG{*PSdZGgF zq}^dfKHjatP{?5V-c2<+QP>zGoF*}+z_p@aGM1q)h=ed9Ek%T~p~*M}c?8zVkRm?- zv+~M-7a<|0iSMaT)_AD{`Y{7Y%RmMwaQ61(5VXgvW(!_43>j2K2=E2Elm@mkG{&5S zr48dW*F@;jUUCZdH665E(TWAv)(xTQ(ywjXbnpk?baN5ThfSzyi3tQ`tB5LCLEynu zJ)-R~8YI11#&zKj><=N|fv&XHBK&ejVFd-5MID1Dn;pO$@(e1g2O8tMHbPixBBIxS zm(bFUy1Pt94MkUAQBn|g?7rpzlF%9$B$Ox=!vs()-v~FuYP>QoR5R*i zs(Awu$^>8xN#U6Mfre<^p*sS26(3JQXV{}pXf@m+7iegEt@Jwj2GRiu!C)sE8Yjdg zbmpU9`Ck)%d&_eaLT{lBA0vzjxwVx-ahl#pG(HrEkI^Uy#KE*cMPcN+^i7e&3iZlJ zLU=q4C?Em}!91U|k9eDFP$>lP?%D{EO@Kp`*HI}7DZEn~6%>&d-My zg!J8rKs)pb@GlZf)QVE$wG*!t!E#ZUd4PFG2(3VGJ_$t#tA^4dhv`=>rCZSBq?7F; z@GpjwE%^a=uZ(&X{*H5boQkjQN<*@T4D=ABhWnVkP_q_A!=M3RHUx+9{JsBl@Ryc8 z{p$s}#l8T;Mkj=HqQVKlM}o+FdjsebBUwbK12B1O^LSgN$7NAc%g~O;qXa|v{GYp^ zx3GrQD{&D@Kmy!S;a|33B9RVk`5yd@pAXZ*6)v{^Id%S4spief2YFK1hD1<|;#^kuOM* zm70+WG-k+y{LFAhY*S)6HtnVoAn3_{&m|5p6Yx0Qi;)nfVsva~{wd4w6+>G&I`To^Y)tP6l$c~{>Sy`bbgvZuteozRHsHYhi-h}e4GmyGAUQ66FRBp1C zh1RUKD3srfYPXl9O38XGW@DgkN#A8acZ?P`=5q`#mgUVBWS4m?-Ntc zc%9iR;lYk;8S`f?X!jW~06f{9+1>OkGqLhmQ{72UL0-tNN$urA0Z~IH0$QKW3n$HB zm9Rw#VO+%ElR+Zql!O`N(ETLph)5Wu;YoX{7Sr+t&(18xmFRtd-)Eu**dz|M6 zvRVz77(*$Du(&c;&;o(b*}Xo)%Z{XZ_#d7Pk}rIuOwuW4rUZ*jasp=WGd#AnI@*a? z&c!Tv3GZ@DPb4@#5fM6zmnI^y)}4g#kz)CE{@NtAW`yb8DGZm2>#YQ?Ka1U>JJYdH ztM|Ip{BuADc%Jzxk(fLElK3V>2~XN{8)TR@Tu?-3v+J9}^PvgL&xoe4$bWh_liP2- zGO1BS%lM4n7PP~y(k&Tkpgv3~UtutkP7XPgwM|$;-VL&b`m~V}G(!DYFof_u;m7Fk zHAQ~-UdS(PAsQmhsHtDDJsJkn*O}@gC{W0cJQPc&m3N`~FvuRGt(oin7k_xq%ii># zxKnKyuZf?Mwyf(^Gk&{hq%S!UR3nQ;s zSJy}*5a!uFGR9~#9`|SkN>qp*nqhXgCEZpv12{^W0lq8q)k?_{$wd2u2Yb&0Sy$FbNstcTxF2MY>@tHGXp-3l0I>EYt z`tb;y4jB*+Nk+0zGjri>I}dMcOZy+#N7b$IHOw20L-M85H5lvp4gx3%P{;c^5U zzY(e)Fg-!rjz`MTR~HHF?ae{w8RFlKr7fs14S=bXf!89<(AlyFX1B(K|%`w+i`xQ?w6Sh^EBkIecP~wD{r%-2(h#9*uRPJ!k?WN{%1sG8h#t@c%OQ zKJal=_r2)scyJeAx7Ciu@?aEuW;82}7a>bxNmR;9X3m~njaF+}5(`l&#gdRgaVW8g z(l{xv*%=+J$I9BquG_dNuSjC;2yhahPRq;X-bl*Y5iSs*+!lKKUTw#u4&~Fzu1Q_m zChvP@B}3Bo(|10$_Uz2;nR9;U_y7FP?_kGAfiFh=>39I1U%RxLB3EkN~j5{E!D>(TX$r zs>(x3*JeT64_ZUIBlV}{f9w0JrMlObrvbDGjs{i)?058{gblhte+TFYE)+WU;N*kK zjPYxdS``Agyv%@Xsnr3sSMi^Ft(2Gw_5%^%Jg9KTs)GyI0R|E90si}(F%#fF;r6~` zN$Ae#$!ti53vIq>Xg&1yBMBodEB2-8P;i(VS z3h_Ry6|TquO$LNuN*Y)uSeC*e;;RI{P=1Pl>Jh*MPh6t{KpbFFp~qLH0G|O)1|j$1 z$`4mOtJW)Qk1FOvY{HA-N}Gtl#{)9>qxO51XZo*ShCk3QO`*YuWKf-eoIZ^C zfQlFDKpgYoVF4X58X7I!yX{C=J%F}!Z6ada^}0+5P=vTV*3+>GP{Q%%0_KAAA{z7h z7DFfZJs~fG_S3h(6@VdjZ8Dk_v%}3U&&JNGNanM_$w6GE1}>91L#m2{Dm~<|`~_TRyp54IZa>)8H{|QJ37IG!1MF!W!es(@WfiSJCObEk-fEGTO z5y)k5WYNB+74aGRkHi7!3C7?DBmpf(nOZgiURSx>O$%Oo7y{=>%4+ybwGMYh{Rih?)`SRza3(t62;WD1NG05(I9veX zkU_49&U5WQmIF5q;t5Ar)%qS{uOz7@7x(gAb^kp$?km zPztpm@EihYbMcFgO+gD1cpY=Qg8!iSs`76mnMSDl!>%nwxOuB7KdbzQ4kB2gGPF`b z-S*&Bzi;Uue(xHnZ50d$yYWM4bM0T`FB+f_zFfyQw5s+G5yasQWQy@P2dN71R>yz_ z>T`(0ArH-;OMpN->k<$xKM!=mCc|y5D=KHm_+bzAG7vNYlE4|_6e3l(O(=Y)krO9` zy9zAl?*WQ|*WetI5blD>;SSw@0a^Pnn<3{XfIC+{VKXnoT?*mO7DC;hyV0@2A@cdw z4~KyN&Y3H}@ztfb{bj)OX^%?`E9uK5?45DUV`#uaI1@Bd#`KgSh}RpPoPqT`X*=h zKz6ReKvr^n6P@SkW(ak@5FBptUsidh6|kd!XLAAToyloPR!!ooB0rDrreuNzg*rdH zAHa8EKD2e&HJyJlBAfx(1!039@qq8!^Z)Y6dzSv@yVtTJ;N;zlpm_z^-ApRQxQxn-R{oPnR$`8it;P2UjvP1!(*CLLm!6c{GZ zdw~AoJaByzdOs!|Y~K0ML~!(9R{N`b2ckKgh=LPZU)T7~%0xIT1h8WKayGxrcc3{+ z1>pRO(}DRwc6ipnp0CZsSN#YV{@YVOF8^TZ_*=^}!PhtugwORJz`6+M0w)0qBITSO zsK><@%wNb{FclF=#=z~l^PQ`nhe5G1tSN!}3~?fm^|dwFe;HN< z9OpgoVa9Wa@Tv8VZtSN+*j)iqE~2k1<=X}-$zM?>A8d)b)BLmI$iLcSkbzkCZW?yTsY z+}X{YHJlL8t+L6$dziyTEG|@uKwxa1TNd1<>8Q2?dH^GUU?@$)n8X5nBxF9^{J7+Q z?Mom3#qH0noRAU2e1Qx;fWDo-ru1Op8FH=)f1hx?`d|V$`w#7~s_W+iooAU5^(t_H zVAZLr@m!mPDY?R}t#B6BLIQBrpC`=VlVFwWLby9qN+<%BRnIss^I5Qg8&GznVYuym zQuY6wVwiZYQ$Qo*nkRf7ByAyTAf$p&`(K%bst<^Znkp4=;rrov!2DdBhmbtE{?B#( zDFs{=bmxiPOL#(RxEGwWqqyUI(Q;G15d)yhsWn+~m z@rf~npQQyjA=FAH#y$El0xCQ_umZVE6gZpv7O=)um#NMJe9w>w*KC07ibx2x&U`TFr!6id=D!A&iA{bx}YZ7Q8^agQ72vob4%S`-5;+!fKa6dn|5ob+!^ z5n13aA#M;KZx+JIu$4^AgLHt+r^*^5RMH`Irq;cs)D+zA8A-}fr1n+1TgQz zq`^f*XqYi*NZ{9;G(fNLT>RH|Kom<`;e=o<0Bn0jK5!5e^k8X`&vkBhQNc~Pz>BN@Q4j2gaSMb z3t6dDzy4=`z2zI+g&CG?7@-E0c*pe|-i$(WAC59|cf}u(NL=-8Y z`4@Gn9@bPb=0qs?gx7(U;8x^%icr+2ZbQ$p90;FD`&2u!E~7z#(8Q{QSkyy=hF4Uy z1~(YR$cWBmX8~CqiuwpoYFvm6Q_J9*E`Fp0ojKW6I6;8F#ewQ3k?WxRONbn3m{$z`w|br5s}|0=mfKps^1%mp^8HNle&!o+FMNP^=2|IW$YBW$ zhvj;B(cxd9DSWta0HJUV7$3OFi7kADH(E6@ANt+LKOf!x`Q^S0x@~^jse87a8t6>C zMyKo2&A&9mzN_9r+qNp7Q|{?Z>^4u-ImGqZcRNzwb8opo`a0Fml^;%*mGlX7;mk1d zo=CTppc%k}up>7n97dS+lxlT!RF@%nn` z+hwJ5VQ1ep

U-FpS9<5Q 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
UL$k6Ez0^=^dZ-mfl0?4X;FFl32Su*lDy_LH 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�VyY zGvYK5abr`L;;I_R)uEgWOq(3%j)MP6k}ve&Yi_2_fQfKi?hH##1a{(VHgQY4q09>x+Q5+&v;>4IyR?bIEr zaR?PB<>I?|E|>s%B1J8-GlO+83z-XYiU21Adlp~E%1N~Hz>7JyKx}XEit8n09E`VsNvPo=N^A!(M&L69g zBVW4qxj(w{tACf@h<{SjuDagQ1cSx_eF3ZC9Rw=?XPCyhqu?_8ri#ZT8X*H%VC+k| z@CYi$LkGT!%YdC$(@BuC2apK-#H%O1%3`V_(P0yT2Kadj7~p4)=BJvAj(Sy z0{%hl)lgEq5R2w$v09}Y*3p9MYgr5njW0J_AQuRk7g?%GnE_ZB^s!!5;xJYeqrslV zDGwqL4UD`Agq7sd!kwWL5q1da14-G-{CgLuT9 z9E}aZr5&cw6M(u20l)zRloAYjuf}jQ~RyDw~lAW+NN==^4 zJa{Wq8isDdNu6W#@&g$(b8`nC=7UEVH?Tgz%NbGoUiOZ1*jF{tp+@isrjRnW@5~xAAR>);piPW)D03Kr1Y`L~5 zatJ`>@@K4Aa*6-pR}cK+4S)X3)=qqoeb|at$DD_6Q>@2BZyru5#7uf=5DgUHaFapH z>_JJ4)bpu}4rBg|J2uScvo0Ymb?K-OGL=%}`ah>&vLvGDROl^abu627nJIGb6yLD~IJmjX%L+)w2 z%S|UddL9m_?`%j{SFwqrZ-VW)ciz17d)?_^xEjFZ+pct|Kf}>?{-$7Vw^nMlw=3={ zryc4ETI@G^yw`2kG>wJtp}vS&vj$OZ;B!HrSq+t2C`Et-$}BL~j^}PUZpO-jy(|zq zQ;L$8nKqsoeZ$A?>CLV`us;~ud}X*P#KNGJ^;5G76T+J9ZeEPOGPn_~rn{F*L49WI zwofh$4#Ms3B}VmJ*O&#yzxMk>Mm+x{-w2+sytt_VWTnetQBU>{9S`lw!kH2yYr;Dj z7LxNkuFUskWMMF)(bF2~Y6H)!hUU5#-xk^K!i%BC0idDTg6g92_wcA5b*aOw$(IX%-cm9MMtGa9#9U6 z-qO#}Lg}ZH@-lSC+Qi_(?SuO#UGXa}?brxs7C+%WK2{-1#kV)Dt_yDt{JMBj>H5zZ zyE}^?;(PDA_B`Eqg)Vf0 zTY2HVshJj+k?&2@pM>Z|)7}e#)<>O(ymO(^)pk52ugom$RQW=88=8hyvS3U*k#%u9 z85pZ`@yWr6KMtR5Z1a9E`l`n7*B1sE0#70uF3eiabKyrm{9pfa@QORu+6*vxTu7N) zto1Z_`|#fsD=S{dptawAE&A66*Ghv{QoLN%mU@El^3znE_vZ^%(Dr+%5OOJbn{~1F#wY3i1>)@qe}&R^dX%0Arth(7iLH4T+2HNH1ML%! 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

Kpov*AL@WUhQ#LK=HCK(7$%s|rczH5#5N5# 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

!T`|3+BPoX>oJPu(vT_MhB!ZL|I)eTM!W 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ƇOatZugKZ6l@K}kZ+x;1!ZGH&XCw4K5vyhKTu55 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

-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

qS}#1FIXgXCsWvFJS%*Fre*%RAbkn%2oB{ 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

kv!K;`O6ihsEoo)&X2;ZpvvLMZEq< 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

Ctd!OP~g$JWJ7{FdZ3O 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≧) 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

Zkv-{Rh9k_lJ*N{HgSY+fS?K|9rW=?W9=e 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 LzN5!qdItV~I?m'0'); - - -- Framebuffer palette in 8bpp mode - pal1_clk : IN std_logic :='0'; - pal1_dw : IN unsigned(47 DOWNTO 0) :=x"000000000000"; -- R1 G1 B1 R0 G0 B0 - pal1_dr : OUT unsigned(47 DOWNTO 0) :=x"000000000000"; - pal1_a : IN unsigned(6 DOWNTO 0) :="0000000"; -- Colour index/2 - pal1_wr : IN std_logic :='0'; + GENERIC ( + MASK : unsigned(7 DOWNTO 0) :=x"FF"; + RAMBASE : unsigned(31 DOWNTO 0); + RAMSIZE : unsigned(31 DOWNTO 0) := x"0080_0000"; -- =8MB + INTER : boolean := true; + HEADER : boolean := true; + DOWNSCALE : boolean := true; + BYTESWAP : boolean := true; + PALETTE : boolean := true; + PALETTE2 : boolean := true; + ADAPTIVE : boolean := true; + DOWNSCALE_NN : boolean := false; + FRAC : natural RANGE 4 TO 8 :=4; + OHRES : natural RANGE 1 TO 4096 :=2048; + IHRES : natural RANGE 1 TO 2048 :=2048; + N_DW : natural RANGE 64 TO 128 := 128; + N_AW : natural RANGE 8 TO 32 := 32; + N_BURST : natural := 256 -- 256 bytes per burst + ); + PORT ( + ------------------------------------ + -- Input video + i_r : IN unsigned(7 DOWNTO 0); + i_g : IN unsigned(7 DOWNTO 0); + i_b : IN unsigned(7 DOWNTO 0); + i_hs : IN std_logic; -- H sync + i_vs : IN std_logic; -- V sync + i_fl : IN std_logic; -- Interlaced field + i_de : IN std_logic; -- Display Enable + i_ce : IN std_logic; -- Clock Enable + i_clk : IN std_logic; -- Input clock - pal_n : IN std_logic :='0'; + ------------------------------------ + -- Output video + o_r : OUT unsigned(7 DOWNTO 0); + o_g : OUT unsigned(7 DOWNTO 0); + o_b : OUT unsigned(7 DOWNTO 0); + o_hs : OUT std_logic; -- H sync + o_vs : OUT std_logic; -- V sync + o_de : OUT std_logic; -- Display Enable + o_vbl : OUT std_logic; -- V blank + o_brd : OUT std_logic; -- border enable + o_ce : IN std_logic; -- Clock Enable + o_clk : IN std_logic; -- Output clock - pal2_clk : IN std_logic :='0'; - pal2_dw : IN unsigned(23 DOWNTO 0) :=x"000000"; -- R G B - pal2_dr : OUT unsigned(23 DOWNTO 0) :=x"000000"; - pal2_a : IN unsigned(7 DOWNTO 0) :="00000000"; -- Colour index - pal2_wr : IN std_logic :='0'; - - ------------------------------------ - -- Low lag PLL tuning - o_lltune : OUT unsigned(15 DOWNTO 0); - - ------------------------------------ - -- Input video parameters - iauto : IN std_logic :='1'; -- 1=Autodetect image size 0=Choose window - himin : IN natural RANGE 0 TO 4095 :=0; -- MIN < MAX, MIN >=0, MAX < DISP - himax : IN natural RANGE 0 TO 4095 :=0; - vimin : IN natural RANGE 0 TO 4095 :=0; - vimax : IN natural RANGE 0 TO 4095 :=0; + -- Border colour R G B + o_border : IN unsigned(23 DOWNTO 0) := x"000000"; - -- Detected input image size - i_hdmax : OUT natural RANGE 0 TO 4095; - i_vdmax : OUT natural RANGE 0 TO 4095; - - -- Output video parameters - run : IN std_logic :='1'; -- 1=Enable output image. 0=No image - freeze : IN std_logic :='0'; -- 1=Disable framebuffer writes - mode : IN unsigned(4 DOWNTO 0); - -- SYNC |_________________________/"""""""""\_______| - -- DE |""""""""""""""""""\________________________| - -- RGB | <#IMAGE#> ^HDISP | - -- ^HMIN ^HMAX ^HSSTART ^HSEND ^HTOTAL - htotal : IN natural RANGE 0 TO 4095; - hsstart : IN natural RANGE 0 TO 4095; - hsend : IN natural RANGE 0 TO 4095; - hdisp : IN natural RANGE 0 TO 4095; - hmin : IN natural RANGE 0 TO 4095; - hmax : IN natural RANGE 0 TO 4095; -- 0 <= hmin < hmax < hdisp - vtotal : IN natural RANGE 0 TO 4095; - vsstart : IN natural RANGE 0 TO 4095; - vsend : IN natural RANGE 0 TO 4095; - vdisp : IN natural RANGE 0 TO 4095; - vmin : IN natural RANGE 0 TO 4095; - vmax : IN natural RANGE 0 TO 4095; -- 0 <= vmin < vmax < vdisp - - -- Scaler format. 00=16bpp 565, 01=24bpp 10=32bpp - format : IN unsigned(1 DOWNTO 0) :="01"; - - ------------------------------------ - -- Polyphase filter coefficients - -- Order : - -- [Horizontal] [Vertical] - -- [0]...[2**FRAC-1] - -- [-1][0][1][2] - poly_clk : IN std_logic; - poly_dw : IN unsigned(8 DOWNTO 0); - poly_a : IN unsigned(FRAC+2 DOWNTO 0); - poly_wr : IN std_logic; - - ------------------------------------ - -- Avalon - avl_clk : IN std_logic; -- Avalon clock - avl_waitrequest : IN std_logic; - avl_readdata : IN std_logic_vector(N_DW-1 DOWNTO 0); - avl_readdatavalid : IN std_logic; - avl_burstcount : OUT std_logic_vector(7 DOWNTO 0); - avl_writedata : OUT std_logic_vector(N_DW-1 DOWNTO 0); - avl_address : OUT std_logic_vector(N_AW-1 DOWNTO 0); - avl_write : OUT std_logic; - avl_read : OUT std_logic; - avl_byteenable : OUT std_logic_vector(N_DW/8-1 DOWNTO 0); - - ------------------------------------ - reset_na : IN std_logic - ); + ------------------------------------ + -- Framebuffer mode + o_fb_ena : IN std_logic :='0'; -- Enable Framebuffer Mode + o_fb_hsize : IN natural RANGE 0 TO 4095 :=0; + o_fb_vsize : IN natural RANGE 0 TO 4095 :=0; + o_fb_format : IN unsigned(5 DOWNTO 0) :="000100"; + o_fb_base : IN unsigned(31 DOWNTO 0) :=x"0000_0000"; + o_fb_stride : IN unsigned(13 DOWNTO 0) :=(OTHERS =>'0'); + + -- Framebuffer palette in 8bpp mode + pal1_clk : IN std_logic :='0'; + pal1_dw : IN unsigned(47 DOWNTO 0) :=x"000000000000"; -- R1 G1 B1 R0 G0 B0 + pal1_dr : OUT unsigned(47 DOWNTO 0) :=x"000000000000"; + pal1_a : IN unsigned(6 DOWNTO 0) :="0000000"; -- Colour index/2 + pal1_wr : IN std_logic :='0'; + + pal_n : IN std_logic :='0'; + + pal2_clk : IN std_logic :='0'; + pal2_dw : IN unsigned(23 DOWNTO 0) :=x"000000"; -- R G B + pal2_dr : OUT unsigned(23 DOWNTO 0) :=x"000000"; + pal2_a : IN unsigned(7 DOWNTO 0) :="00000000"; -- Colour index + pal2_wr : IN std_logic :='0'; + + ------------------------------------ + -- Low lag PLL tuning + o_lltune : OUT unsigned(15 DOWNTO 0); + + ------------------------------------ + -- Input video parameters + iauto : IN std_logic :='1'; -- 1=Autodetect image size 0=Choose window + himin : IN natural RANGE 0 TO 4095 :=0; -- MIN < MAX, MIN >=0, MAX < DISP + himax : IN natural RANGE 0 TO 4095 :=0; + vimin : IN natural RANGE 0 TO 4095 :=0; + vimax : IN natural RANGE 0 TO 4095 :=0; + + -- Detected input image size + i_hdmax : OUT natural RANGE 0 TO 4095; + i_vdmax : OUT natural RANGE 0 TO 4095; + + -- Output video parameters + run : IN std_logic :='1'; -- 1=Enable output image. 0=No image + freeze : IN std_logic :='0'; -- 1=Disable framebuffer writes + mode : IN unsigned(4 DOWNTO 0); + -- SYNC |_________________________/"""""""""\_______| + -- DE |""""""""""""""""""\________________________| + -- RGB | <#IMAGE#> ^HDISP | + -- ^HMIN ^HMAX ^HSSTART ^HSEND ^HTOTAL + htotal : IN natural RANGE 0 TO 4095; + hsstart : IN natural RANGE 0 TO 4095; + hsend : IN natural RANGE 0 TO 4095; + hdisp : IN natural RANGE 0 TO 4095; + hmin : IN natural RANGE 0 TO 4095; + hmax : IN natural RANGE 0 TO 4095; -- 0 <= hmin < hmax < hdisp + vtotal : IN natural RANGE 0 TO 4095; + vsstart : IN natural RANGE 0 TO 4095; + vsend : IN natural RANGE 0 TO 4095; + vdisp : IN natural RANGE 0 TO 4095; + vmin : IN natural RANGE 0 TO 4095; + vmax : IN natural RANGE 0 TO 4095; -- 0 <= vmin < vmax < vdisp + vrr : IN std_logic := '0'; + vrrmax : IN natural RANGE 0 TO 4095 := 0; + swblack : IN std_logic := '0'; -- will output 3 black frame on every resolution switch + + -- Scaler format. 00=16bpp 565, 01=24bpp 10=32bpp + format : IN unsigned(1 DOWNTO 0) :="01"; + + ------------------------------------ + -- Polyphase filter coefficients + -- Order : + -- [Horizontal] [Vertical] [Horizontal2] [Vertical2] + -- [0]...[2**FRAC-1] + -- [-1][0][1][2] + poly_clk : IN std_logic; + poly_dw : IN unsigned(9 DOWNTO 0); + poly_a : IN unsigned(FRAC+3 DOWNTO 0); + poly_wr : IN std_logic; + + ------------------------------------ + -- Avalon + avl_clk : IN std_logic; -- Avalon clock + avl_waitrequest : IN std_logic; + avl_readdata : IN std_logic_vector(N_DW-1 DOWNTO 0); + avl_readdatavalid : IN std_logic; + avl_burstcount : OUT std_logic_vector(7 DOWNTO 0); + avl_writedata : OUT std_logic_vector(N_DW-1 DOWNTO 0); + avl_address : OUT std_logic_vector(N_AW-1 DOWNTO 0); + avl_write : OUT std_logic; + avl_read : OUT std_logic; + avl_byteenable : OUT std_logic_vector(N_DW/8-1 DOWNTO 0); + + ------------------------------------ + reset_na : IN std_logic + ); BEGIN - ASSERT N_DW=64 OR N_DW=128 REPORT "DW" SEVERITY failure; - + ASSERT N_DW=64 OR N_DW=128 REPORT "DW" SEVERITY failure; + END ENTITY ascal; --############################################################################## ARCHITECTURE rtl OF ascal IS - - CONSTANT MASK_NEAREST : natural :=0; - CONSTANT MASK_BILINEAR : natural :=1; - CONSTANT MASK_SHARP_BILINEAR : natural :=2; - CONSTANT MASK_BICUBIC : natural :=3; - CONSTANT MASK_POLY : natural :=4; - - ---------------------------------------------------------- - FUNCTION ilog2 (CONSTANT v : natural) RETURN natural IS - VARIABLE r : natural := 1; - VARIABLE n : natural := 0; - BEGIN - WHILE v>r LOOP - n:=n+1; - r:=r*2; - END LOOP; - RETURN n; - END FUNCTION ilog2; - FUNCTION to_std_logic (a : boolean) RETURN std_logic IS - BEGIN - IF a THEN RETURN '1'; - ELSE RETURN '0'; - END IF; - END FUNCTION to_std_logic; - - ---------------------------------------------------------- - CONSTANT NB_BURST : natural :=ilog2(N_BURST); - CONSTANT NB_LA : natural :=ilog2(N_DW/8); -- Low address bits - CONSTANT BLEN : natural :=N_BURST / N_DW * 8; -- Burst length - - ---------------------------------------------------------- - TYPE arr_dw IS ARRAY (natural RANGE <>) OF unsigned(N_DW-1 DOWNTO 0); - - TYPE type_pix IS RECORD - r,g,b : unsigned(7 DOWNTO 0); -- 0.8 - END RECORD; - TYPE arr_pix IS ARRAY (natural RANGE <>) OF type_pix; - ATTRIBUTE ramstyle : string; - - SUBTYPE uint12 IS natural RANGE 0 TO 4095; - SUBTYPE uint13 IS natural RANGE 0 TO 8191; - - TYPE arr_uv48 IS ARRAY (natural RANGE <>) OF unsigned(47 DOWNTO 0); - TYPE arr_uv24 IS ARRAY (natural RANGE <>) OF unsigned(23 DOWNTO 0); - TYPE arr_uv36 IS ARRAY (natural RANGE <>) OF unsigned(35 DOWNTO 0); - TYPE arr_int9 IS ARRAY (natural RANGE <>) OF integer RANGE -256 TO 255; - TYPE arr_uint12 IS ARRAY (natural RANGE <>) OF uint12; - ---------------------------------------------------------- - -- Input image - SIGNAL i_pvs,i_pfl,i_pde,i_pce : std_logic; - SIGNAL i_ppix : type_pix; - SIGNAL i_freeze : std_logic; - SIGNAL i_count : unsigned(2 DOWNTO 0); - SIGNAL i_hsize,i_hmin,i_hmax,i_hcpt : uint12; - SIGNAL i_hrsize,i_vrsize : uint12; - SIGNAL i_himax,i_vimax : uint12; - SIGNAL i_vsize,i_vmaxmin,i_vmin,i_vmax,i_vcpt : uint12; - SIGNAL i_iauto : std_logic; - SIGNAL i_mode : unsigned(4 DOWNTO 0); - SIGNAL i_format : unsigned(1 DOWNTO 0); - SIGNAL i_ven,i_sof : std_logic; - SIGNAL i_wr : std_logic; - SIGNAL i_divstart,i_divrun : std_logic; - SIGNAL i_de_pre,i_vs_pre,i_fl_pre : std_logic; - SIGNAL i_de_delay : natural RANGE 0 TO 31; - SIGNAL i_intercnt : natural RANGE 0 TO 3; - SIGNAL i_inter,i_half,i_flm : std_logic; - SIGNAL i_write,i_wreq,i_alt,i_line,i_wline,i_wline_mem : std_logic; - SIGNAL i_walt,i_walt_mem,i_wreq_mem : std_logic; - SIGNAL i_wdelay : natural RANGE 0 TO 7; - SIGNAL i_push,i_pushend,i_pushend2 : std_logic; - SIGNAL i_eol : std_logic; - SIGNAL i_pushhead,i_pushhead2,i_pushhead3 : std_logic; - SIGNAL i_hburst,i_hbcpt : natural RANGE 0 TO 31; - SIGNAL i_shift : unsigned(0 TO 119) := (OTHERS =>'0'); - SIGNAL i_head : unsigned(127 DOWNTO 0); - SIGNAL i_acpt : natural RANGE 0 TO 15; - SIGNAL i_dpram : arr_dw(0 TO BLEN*2-1); - ATTRIBUTE ramstyle OF i_dpram : SIGNAL IS "no_rw_check"; - SIGNAL i_endframe0,i_endframe1,i_vss : std_logic; - SIGNAL i_wad : natural RANGE 0 TO BLEN*2-1; - SIGNAL i_dw : unsigned(N_DW-1 DOWNTO 0); - SIGNAL i_adrs,i_adrsi,i_wadrs,i_wadrs_mem : unsigned(31 DOWNTO 0); - SIGNAL i_reset_na : std_logic; - SIGNAL i_hnp,i_vnp : std_logic; - SIGNAL i_mem : arr_pix(0 TO IHRES-1); -- Downscale line buffer - ATTRIBUTE ramstyle OF i_mem : SIGNAL IS "no_rw_check"; - SIGNAL i_ohsize,i_ovsize : uint12; - SIGNAL i_vdivi : unsigned(12 DOWNTO 0); - SIGNAL i_vdivr : unsigned(24 DOWNTO 0); - SIGNAL i_div : unsigned(16 DOWNTO 0); - SIGNAL i_dir : unsigned(11 DOWNTO 0); - SIGNAL i_h_frac,i_v_frac : unsigned(11 DOWNTO 0); - SIGNAL i_hacc,i_vacc : uint13; - SIGNAL i_hdown,i_vdown : std_logic; - SIGNAL i_divcpt : natural RANGE 0 TO 36; - SIGNAL i_lwad,i_lrad : natural RANGE 0 TO OHRES-1; - SIGNAL i_lwr,i_bil : std_logic; - SIGNAL i_ldw,i_ldrm : type_pix; - SIGNAL i_hpixp,i_hpix0,i_hpix1,i_hpix2,i_hpix3,i_hpix4 : type_pix; - SIGNAL i_hpix,i_pix : type_pix; - SIGNAL i_hnp1,i_hnp2,i_hnp3,i_hnp4 : std_logic; - SIGNAL i_ven1,i_ven2,i_ven3,i_ven4,i_ven5,i_ven6 : std_logic; - - ---------------------------------------------------------- - -- Avalon - TYPE type_avl_state IS (sIDLE,sWRITE,sREAD); - SIGNAL avl_state : type_avl_state; - SIGNAL avl_write_i,avl_write_sync,avl_write_sync2 : std_logic; - SIGNAL avl_read_i,avl_read_sync,avl_read_sync2 : std_logic; - SIGNAL avl_read_pulse,avl_write_pulse : std_logic; - SIGNAL avl_read_sr,avl_write_sr,avl_read_clr,avl_write_clr : std_logic; - SIGNAL avl_rad,avl_rad_c,avl_wad : natural RANGE 0 TO 2*BLEN-1; - SIGNAL avl_walt,avl_wline,avl_rline : std_logic; - SIGNAL avl_dw,avl_dr : unsigned(N_DW-1 DOWNTO 0); - SIGNAL avl_wr : std_logic; - SIGNAL avl_readdataack,avl_readack : std_logic; - SIGNAL avl_radrs,avl_wadrs : unsigned(31 DOWNTO 0); - SIGNAL avl_i_offset0,avl_o_offset0 : unsigned(31 DOWNTO 0); - SIGNAL avl_i_offset1,avl_o_offset1 : unsigned(31 DOWNTO 0); - SIGNAL avl_reset_na : std_logic; - SIGNAL avl_o_vs_sync,avl_o_vs : std_logic; - SIGNAL avl_fb_ena : std_logic; - - FUNCTION buf_next(a,b : natural RANGE 0 TO 2) RETURN natural IS - BEGIN - IF (a=0 AND b=1) OR (a=1 AND b=0) THEN RETURN 2; END IF; - IF (a=1 AND b=2) OR (a=2 AND b=1) THEN RETURN 0; END IF; - RETURN 1; - END FUNCTION; - FUNCTION buf_offset(b : natural RANGE 0 TO 2; - base : unsigned(31 DOWNTO 0); - size : unsigned(31 DOWNTO 0)) RETURN unsigned IS - BEGIN - IF b=1 THEN RETURN base+size; END IF; - IF b=2 THEN RETURN base+(size(30 DOWNTO 0) & '0'); END IF; - RETURN base; - END FUNCTION; - - ---------------------------------------------------------- - -- Output - SIGNAL o_run : std_logic; - SIGNAL o_mode,o_hmode,o_vmode : unsigned(4 DOWNTO 0); - SIGNAL o_format : unsigned(5 DOWNTO 0); - SIGNAL o_fb_pal_dr : unsigned(23 DOWNTO 0); - SIGNAL o_fb_pal_dr2 : unsigned(23 DOWNTO 0); - SIGNAL o_fb_pal_dr_x2 : unsigned(47 DOWNTO 0); - SIGNAL pal_idx: unsigned(7 DOWNTO 0); - SIGNAL pal_idx_lsb: std_logic; - SIGNAL pal1_mem : arr_uv48(0 TO 127); - SIGNAL pal2_mem : arr_uv24(0 TO 255); - ATTRIBUTE ramstyle of pal1_mem : signal is "no_rw_check"; - ATTRIBUTE ramstyle of pal2_mem : signal is "no_rw_check"; - SIGNAL o_htotal,o_hsstart,o_hsend : uint12; - SIGNAL o_hmin,o_hmax,o_hdisp : uint12; - SIGNAL o_hsize,o_vsize : uint12; - SIGNAL o_vtotal,o_vsstart,o_vsend : uint12; - SIGNAL o_vmin,o_vmax,o_vdisp : uint12; - SIGNAL o_divcpt : natural RANGE 0 TO 36; - SIGNAL o_iendframe0,o_iendframe02,o_iendframe1,o_iendframe12 : std_logic; - SIGNAL o_bufup0,o_bufup1,o_inter : std_logic; - SIGNAL o_ibuf0,o_ibuf1,o_obuf0,o_obuf1 : natural RANGE 0 TO 2; - TYPE enum_o_state IS (sDISP,sHSYNC,sREAD,sWAITREAD); - SIGNAL o_state : enum_o_state; - TYPE enum_o_copy IS (sWAIT,sSHIFT,sCOPY); - SIGNAL o_copy : enum_o_copy; - SIGNAL o_pshift : natural RANGE 0 TO 15; - SIGNAL o_readack,o_readack_sync,o_readack_sync2 : std_logic; - SIGNAL o_readdataack,o_readdataack_sync,o_readdataack_sync2 : std_logic; - SIGNAL o_copyv : unsigned(0 TO 8); - SIGNAL o_adrs : unsigned(31 DOWNTO 0); -- Avalon address - SIGNAL o_adrs_pre : natural RANGE 0 TO 2**23-1; - SIGNAL o_stride : unsigned(13 DOWNTO 0); - SIGNAL o_adrsa,o_adrsb,o_rline : std_logic; - SIGNAL o_ad,o_ad1,o_ad2,o_ad3 : natural RANGE 0 TO 2*BLEN-1; - SIGNAL o_adturn : std_logic; - SIGNAL o_dr : unsigned(N_DW-1 DOWNTO 0); - SIGNAL o_shift : unsigned(0 TO N_DW+15); - SIGNAL o_sh,o_sh1,o_sh2,o_sh3,o_sh4 : std_logic; - SIGNAL o_reset_na : std_logic; - SIGNAL o_dpram : arr_dw(0 TO BLEN*2-1); - ATTRIBUTE ramstyle OF o_dpram : SIGNAL IS "no_rw_check"; - SIGNAL o_line0,o_line1,o_line2,o_line3 : arr_pix(0 TO OHRES-1); - ATTRIBUTE ramstyle OF o_line0 : SIGNAL IS "no_rw_check"; - ATTRIBUTE ramstyle OF o_line1 : SIGNAL IS "no_rw_check"; - ATTRIBUTE ramstyle OF o_line2 : SIGNAL IS "no_rw_check"; - ATTRIBUTE ramstyle OF o_line3 : SIGNAL IS "no_rw_check"; - SIGNAL o_wadl,o_radl : natural RANGE 0 TO OHRES-1; - SIGNAL o_ldw,o_ldr0,o_ldr1,o_ldr2,o_ldr3 : type_pix; - SIGNAL o_wr : unsigned(3 DOWNTO 0); - SIGNAL o_hcpt,o_vcpt,o_vcpt_pre,o_vcpt_pre2,o_vcpt_pre3 : uint12; - SIGNAL o_ihsize,o_ihsizem,o_ivsize : uint12; - SIGNAL o_ihsize_temp, o_ihsize_temp2 : natural RANGE 0 TO 32767; + CONSTANT MASK_NEAREST : natural :=0; + CONSTANT MASK_BILINEAR : natural :=1; + CONSTANT MASK_SHARP_BILINEAR : natural :=2; + CONSTANT MASK_BICUBIC : natural :=3; + CONSTANT MASK_POLY : natural :=4; - SIGNAL o_vfrac,o_hfrac,o_hfrac1,o_hfrac2,o_hfrac3,o_hfrac4 : unsigned(11 DOWNTO 0); - SIGNAL o_hacc,o_hacc_ini,o_hacc_next,o_vacc,o_vacc_next,o_vacc_ini : natural RANGE 0 TO 4*OHRES-1; - SIGNAL o_hsv,o_vsv,o_dev,o_pev,o_end : unsigned(0 TO 5); - SIGNAL o_hsp,o_vss : std_logic; - SIGNAL o_read,o_read_pre : std_logic; - SIGNAL o_readlev,o_copylev : natural RANGE 0 TO 2; - SIGNAL o_hburst,o_hbcpt : natural RANGE 0 TO 31; - SIGNAL o_fload : natural RANGE 0 TO 3; - SIGNAL o_acpt,o_acpt1,o_acpt2,o_acpt3,o_acpt4 : natural RANGE 0 TO 15; -- Alternance pixels FIFO - SIGNAL o_dshi : natural RANGE 0 TO 3; - SIGNAL o_first,o_last,o_last1,o_last2,o_last3 : std_logic; - SIGNAL o_lastt1,o_lastt2,o_lastt3 : std_logic; - SIGNAL o_alt,o_altx : unsigned(3 DOWNTO 0); - SIGNAL o_hdown,o_vdown : std_logic; - SIGNAL o_primv,o_lastv,o_bibv : unsigned(0 TO 2); - TYPE arr_uint4 IS ARRAY (natural RANGE <>) OF natural RANGE 0 TO 15; - SIGNAL o_off : arr_uint4(0 TO 2); - SIGNAL o_bibu : std_logic :='0'; - SIGNAL o_dcptv : arr_uint12(1 TO 8); - SIGNAL o_dcpt : uint12; - SIGNAL o_hpixs,o_hpix0,o_hpix1,o_hpix2,o_hpix3 : type_pix; - SIGNAL o_hpixq,o_vpixq,o_vpixq1 : arr_pix(0 TO 3); - - SIGNAL o_vpe : std_logic; - SIGNAL o_div,o_div2 : unsigned(18 DOWNTO 0); --uint12; - SIGNAL o_dir,o_dir2 : unsigned(11 DOWNTO 0); - SIGNAL o_vdivi : unsigned(12 DOWNTO 0); - SIGNAL o_vdivr : unsigned(24 DOWNTO 0); - SIGNAL o_divstart : std_logic; - SIGNAL o_divrun : std_logic; - SIGNAL o_hacpt,o_vacpt : unsigned(11 DOWNTO 0); - - ----------------------------------------------------------------------------- - FUNCTION shift_ishift(shift : unsigned(0 TO 119); - pix : type_pix; - format : unsigned(1 DOWNTO 0)) RETURN unsigned IS - BEGIN - CASE format IS - WHEN "01" => -- 24bpp - RETURN shift(24 TO 119) & pix.r & pix.g & pix.b; - WHEN "10" => -- 32bpp - RETURN shift(32 TO 119) & pix.r & pix.g & pix.b & x"00"; - WHEN OTHERS => -- 16bpp 565 - RETURN shift(16 TO 119) & - pix.g(4 DOWNTO 2) & pix.r(7 DOWNTO 3) & - pix.b(7 DOWNTO 3) & pix.g(7 DOWNTO 5); - END CASE; - END FUNCTION; - - FUNCTION shift_ipack(i_dw : unsigned(N_DW-1 DOWNTO 0); - acpt : natural RANGE 0 TO 15; - shift : unsigned(0 TO 119); - pix : type_pix; - format : unsigned(1 DOWNTO 0)) RETURN unsigned IS - VARIABLE dw : unsigned(N_DW-1 DOWNTO 0); - BEGIN - dw:=i_dw; - CASE format IS - WHEN "01" => -- 24bpp - IF N_DW=128 THEN - IF acpt=5 THEN dw:=shift(0 TO 119) & pix.r; - ELSIF acpt=10 THEN dw:=shift(8 TO 119) & pix.r & pix.g; - ELSIF acpt=15 THEN dw:=shift(16 TO 119) & pix.r & pix.g & pix.b; - END IF; - ELSE -- N_DW=64 - IF (acpt MOD 8)=2 THEN dw:=shift(72 TO 119) & pix.r & pix.g; - ELSIF (acpt MOD 8)=5 THEN dw:=shift(64 TO 119) & pix.r; - ELSIF (acpt MOD 8)=7 THEN dw:=shift(80 TO 119) & pix.r & pix.g & pix.b; - END IF; - END IF; - WHEN "10" => -- 32bpp - IF (N_DW=128 AND (acpt MOD 4)=3) OR (N_DW=64 AND (acpt MOD 8)=7) THEN - dw:=shift(128-N_DW+24 TO 119) & pix.r & pix.g & pix.b & x"00"; - END IF; - WHEN OTHERS => -- 16bpp 565 - IF (N_DW=128 AND (acpt MOD 8)=7) OR (N_DW=64 AND (acpt MOD 4)=3) THEN - dw:=shift(128-N_DW+8 TO 119) & pix.g(4 DOWNTO 2) & pix.r(7 DOWNTO 3) & - pix.b(7 DOWNTO 3) & pix.g(7 DOWNTO 5); - END IF; - END CASE; - RETURN dw; - END FUNCTION; - - FUNCTION shift_inext (acpt : natural RANGE 0 TO 15; - format : unsigned(1 DOWNTO 0)) RETURN boolean IS - BEGIN - CASE format IS - WHEN "01" => -- 24bpp - RETURN (N_DW=128 AND (acpt=5 OR acpt=10 OR acpt=15)) OR - (N_DW=64 AND ((acpt MOD 8)=2 OR (acpt MOD 8)=5 OR (acpt MOD 8)=7)); - WHEN "10" => -- 32bpp - RETURN (N_DW=128 AND ((acpt MOD 4)=3)) OR - (N_DW=64 AND ((acpt MOD 2)=1)); - WHEN OTHERS => -- 16bpp - RETURN (N_DW=128 AND ((acpt MOD 8)=7)) OR - (N_DW=64 AND ((acpt MOD 4)=3)); - END CASE; - END FUNCTION; - - FUNCTION shift_opack(acpt : natural RANGE 0 TO 15; - shift : unsigned(0 TO N_DW+15); - dr : unsigned(N_DW-1 DOWNTO 0); - format : unsigned(5 DOWNTO 0)) RETURN unsigned IS - VARIABLE shift_v : unsigned(0 TO N_DW+15); - BEGIN - CASE format(2 DOWNTO 0) IS - WHEN "011" => -- 8bpp - IF (N_DW=128 AND acpt=0) OR (N_DW=64 AND (acpt MOD 8)=0) THEN - shift_v:=dr & dr(15 DOWNTO 0); - ELSE - shift_v:=shift(8 TO N_DW+15) & dr(7 DOWNTO 0); - END IF; - - WHEN "100" => -- 16bpp - IF (N_DW=128 AND (acpt MOD 8)=0) OR (N_DW=64 AND (acpt MOD 4)=0) THEN - shift_v:=dr & dr(15 DOWNTO 0); - ELSE - shift_v:=shift(16 TO N_DW+15) & dr(15 DOWNTO 0); - END IF; - - WHEN "101" => -- 24bpp - IF N_DW=128 THEN - IF acpt=0 THEN - shift_v:=dr & dr(15 DOWNTO 0); - ELSIF acpt=5 THEN - shift_v:=shift(24 TO 31) & dr & dr(7 DOWNTO 0); - ELSIF acpt=10 THEN - shift_v:=shift(24 TO 39) & dr; - ELSE - shift_v:=shift(24 TO N_DW+15) & dr(23 DOWNTO 0); - END IF; - ELSE -- N_DW=64 - IF (acpt MOD 8)=0 THEN - shift_v:=dr & dr(15 DOWNTO 0); - ELSIF (acpt MOD 8)=2 THEN - shift_v:=shift(24 TO 39) & dr; - ELSIF (acpt MOD 8)=5 THEN - shift_v:=shift(24 TO 31) & dr & dr(7 DOWNTO 0); - ELSE - shift_v:=shift(24 TO N_DW+15) & dr(23 DOWNTO 0); - END IF; - END IF; - WHEN OTHERS => -- 32bpp - IF (N_DW=128 AND (acpt MOD 4)=0) OR (N_DW=64 AND (acpt MOD 2)=0) THEN - shift_v:=dr & dr(15 DOWNTO 0); - ELSE - shift_v:=shift(32 TO N_DW+15) & dr(31 DOWNTO 0); - END IF; - END CASE; - RETURN shift_v; - END FUNCTION; - - FUNCTION shift_onext (acpt : natural RANGE 0 TO 15; - format : unsigned(5 DOWNTO 0)) RETURN boolean IS - BEGIN - CASE format(2 DOWNTO 0) IS - WHEN "011" => -- 8bpp - RETURN (N_DW=128 AND acpt=0) OR - (N_DW=64 AND ((acpt MOD 8)=0)); - WHEN "100" => -- 16bpp - RETURN (N_DW=128 AND ((acpt MOD 8)=0)) OR - (N_DW=64 AND ((acpt MOD 4)=0)); - WHEN "101" => -- 24bpp - RETURN (N_DW=128 AND (acpt=0 OR acpt=5 OR acpt=10)) OR - (N_DW=64 AND ((acpt MOD 8)=0 OR (acpt MOD 8)=2 OR (acpt MOD 8)=5)); - WHEN OTHERS => -- 32bpp - RETURN (N_DW=128 AND ((acpt MOD 4)=0)) OR - (N_DW=64 AND ((acpt MOD 2)=0)); - END CASE; - END FUNCTION; - - FUNCTION shift_opix (shift : unsigned(0 TO N_DW+15); - format : unsigned(5 DOWNTO 0)) RETURN type_pix IS - BEGIN - CASE format(3 DOWNTO 0) IS - WHEN "0100" => -- 16bpp 565 - RETURN (b=>shift(8 TO 12) & shift(8 TO 10), - g=>shift(13 TO 15) & shift(0 TO 2) & shift(13 TO 14), - r=>shift(3 TO 7) & shift(3 TO 5)); - WHEN "1100" => -- 16bpp 1555 - RETURN (b=>shift(9 TO 13) & shift(9 TO 11), - g=>shift(14 TO 15) & shift(0 TO 2) & shift(14 TO 15) & shift(0), - r=>shift(3 TO 7) & shift(3 TO 5)); - WHEN "0101" | "0110" => -- 24bpp / 32bpp - RETURN (r=>shift(0 TO 7),g=>shift(8 TO 15),b=>shift(16 TO 23)); - - WHEN OTHERS => - RETURN (r=>shift(0 TO 7),g=>shift(8 TO 15),b=>shift(16 TO 23)); - - END CASE; - END FUNCTION; - - FUNCTION pixoffset(adrs : unsigned(31 DOWNTO 0); - format : unsigned (5 DOWNTO 0)) RETURN natural IS - BEGIN - CASE format(2 DOWNTO 0) IS - WHEN "011" => -- 8bbp - RETURN to_integer(adrs(NB_LA-1 DOWNTO 0)); - WHEN "100" => -- 16bpp 565 - RETURN to_integer(adrs(NB_LA-1 DOWNTO 1)); - WHEN OTHERS => -- 32bpp - RETURN to_integer(adrs(NB_LA-1 DOWNTO 2)); - END CASE; - END FUNCTION; - - FUNCTION swap(d : unsigned(N_DW-1 DOWNTO 0)) RETURN unsigned IS - VARIABLE e : unsigned(N_DW-1 DOWNTO 0); - BEGIN - IF BYTESWAP THEN - FOR i IN 0 TO N_DW/8-1 LOOP - e(i*8+7 DOWNTO i*8):=d(N_DW-i*8-1 DOWNTO N_DW-i*8-8); - END LOOP; - RETURN e; - ELSE - RETURN d; - END IF; - END FUNCTION swap; - - ----------------------------------------------------------------------------- - FUNCTION altx (a : unsigned(1 DOWNTO 0)) RETURN unsigned IS - BEGIN - CASE a IS - WHEN "00" => RETURN "0001"; - WHEN "01" => RETURN "0010"; - WHEN "10" => RETURN "0100"; - WHEN OTHERS => RETURN "1000"; - END CASE; - END FUNCTION; - - ----------------------------------------------------------------------------- - FUNCTION bound(a : unsigned; - s : natural) RETURN unsigned IS - BEGIN - IF a(a'left)='1' THEN - RETURN x"00"; - ELSIF a(a'left DOWNTO s)/=0 THEN - RETURN x"FF"; - ELSE - RETURN a(s-1 DOWNTO s-8); - END IF; - END FUNCTION bound; - - ----------------------------------------------------------------------------- - -- Nearest - FUNCTION near_frac(f : unsigned) RETURN unsigned IS - VARIABLE x : unsigned(FRAC-1 DOWNTO 0); - BEGIN - x:=(OTHERS =>f(f'left)); - RETURN x; - END FUNCTION; - - SIGNAL o_h_frac2,o_v_frac : unsigned(FRAC-1 DOWNTO 0); - SIGNAL o_h_bil_pix,o_v_bil_pix : type_pix; - - ----------------------------------------------------------------------------- - -- Nearest + Bilinear + Sharp Bilinear - FUNCTION bil_frac(f : unsigned) RETURN unsigned IS - BEGIN - RETURN f(f'left DOWNTO f'left+1-FRAC); - END FUNCTION; - - TYPE type_bil_t IS RECORD - r,g,b : unsigned(8+FRAC DOWNTO 0); - END RECORD; - FUNCTION bil_calc(f : unsigned(FRAC-1 DOWNTO 0); - p : arr_pix(0 TO 3)) RETURN type_bil_t IS - VARIABLE fp,fn : unsigned(FRAC DOWNTO 0); - VARIABLE u : unsigned(8+FRAC DOWNTO 0); - VARIABLE x : type_bil_t; - CONSTANT Z : unsigned(FRAC-1 DOWNTO 0):=(OTHERS =>'0'); - BEGIN - fp:='0' & f; - fn:=('1' & Z) - fp; - u:=p(2).r * fp + p(1).r * fn; - x.r:=u; - u:=p(2).g * fp + p(1).g * fn; - x.g:=u; - u:=p(2).b * fp + p(1).b * fn; - x.b:=u; - RETURN x; - END FUNCTION; - SIGNAL o_h_bil_t,o_v_bil_t : type_bil_t; - SIGNAL i_h_bil_t : type_bil_t; - - ----------------------------------------------------------------------------- - -- Sharp Bilinear - -- <0.5 : x*x*x*4 - -- >0.5 : 1 - (1-x)*(1-x)*(1-x)*4 - - TYPE type_sbil_tt IS RECORD - f : unsigned(FRAC-1 DOWNTO 0); - s : unsigned(FRAC-1 DOWNTO 0); - END RECORD; - - SIGNAL o_h_sbil_t,o_v_sbil_t : type_sbil_tt; - - FUNCTION sbil_frac1(f : unsigned(11 DOWNTO 0)) RETURN type_sbil_tt IS - VARIABLE u : unsigned(FRAC-1 DOWNTO 0); - VARIABLE v : unsigned(2*FRAC-1 DOWNTO 0); - VARIABLE x : type_sbil_tt; - BEGIN - IF f(11)='0' THEN - u:=f(11 DOWNTO 12-FRAC); - ELSE - u:=NOT f(11 DOWNTO 12-FRAC); - END IF; - v:=u*u; - x.f:=u; - x.s:=v(2*FRAC-2 DOWNTO FRAC-1); - RETURN x; - END FUNCTION; - - FUNCTION sbil_frac2(f : unsigned(11 DOWNTO 0); - t : type_sbil_tt) RETURN unsigned IS - VARIABLE v : unsigned(2*FRAC-1 DOWNTO 0); - BEGIN - v:=t.f*t.s; - IF f(11)='0' THEN - RETURN v(2*FRAC-2 DOWNTO FRAC-1); - ELSE - RETURN NOT v(2*FRAC-2 DOWNTO FRAC-1); - END IF; - END FUNCTION; - - ----------------------------------------------------------------------------- - -- Bicubic - TYPE type_bic_abcd IS RECORD - a : unsigned(7 DOWNTO 0); -- 0.8 - b : signed(8 DOWNTO 0); -- 0.9 - c : signed(11 DOWNTO 0); -- 3.9 - d : signed(10 DOWNTO 0); -- 2.9 - xx : signed(8 DOWNTO 0); -- X.X 1.8 - END RECORD; - TYPE type_bic_pix_abcd IS RECORD - r,g,b : type_bic_abcd; - END RECORD; - TYPE type_bic_tt1 IS RECORD -- Intermediate result - r_bx,g_bx,b_bx : signed(8 DOWNTO 0); -- B.X 1.8 - r_cxx,g_cxx,b_cxx : signed(11 DOWNTO 0); -- C.XX 3.9 - r_dxx,g_dxx,b_dxx : signed(10 DOWNTO 0); -- D.XX 2.9 - END RECORD; - TYPE type_bic_tt2 IS RECORD -- Intermediate result - r_abxcxx,g_abxcxx,b_abxcxx : signed(9 DOWNTO 0); -- A + B.X + C.XX 2.8 - r_dxxx,g_dxxx,b_dxxx : signed(9 DOWNTO 0); -- D.X.X.X 2.8 - END RECORD; - - ---------------------------------------------------------- - -- Y = A + B.X + C.X.X + D.X.X.X = A + X.(B + X.(C + X.D)) - -- A = Y(0) 0 .. 1 unsigned - -- B = Y(1)/2 - Y(-1)/2 -1/2 .. +1/2 signed - -- C = Y(-1) - 5*Y(0)/2 + 2*Y(1) - Y(2)/2 -3 .. +3 signed - -- D = -Y(-1)/2 + 3*Y(0)/2 - 3*Y(1)/2 + Y(2)/2 -2 .. +2 signed - - FUNCTION bic_calc0(f : unsigned(11 DOWNTO 0); - pm,p0,p1,p2 : unsigned(7 DOWNTO 0)) RETURN type_bic_abcd IS - VARIABLE xx : signed(2*FRAC+1 DOWNTO 0); -- 2.(2*FRAC) - BEGIN - xx := signed('0' & f(11 DOWNTO 12-FRAC)) * - signed('0' & f(11 DOWNTO 12-FRAC)); -- 2.(2*FRAC) - RETURN type_bic_abcd'( - a=>p0,-- 0.8 - b=>signed(('0' & p1) - ('0' & pm)), -- 0.9 - c=>signed(("000" & pm & '0') - ("00" & p0 & "00") - ("0000" & p0) + - ("00" & p1 & "00") - ("0000" & p2)), -- 3.9 - d=>signed(("00" & p0 & '0') - ("00" & p1 & '0') - ("000" & p1) + - ("000" & p0) + ("000" & p2) - ("000" & pm)), -- 2.9 - xx=>xx(2*FRAC DOWNTO 2*FRAC-8)); -- 1.8 - END FUNCTION; - FUNCTION bic_calc0(f : unsigned(11 DOWNTO 0); - p : arr_pix(0 TO 3)) RETURN type_bic_pix_abcd IS - BEGIN - RETURN type_bic_pix_abcd'(r=>bic_calc0(f,p(0).r,p(1).r,p(2).r,p(3).r), - g=>bic_calc0(f,p(0).g,p(1).g,p(2).g,p(3).g), - b=>bic_calc0(f,p(0).b,p(1).b,p(2).b,p(3).b)); - END FUNCTION; - - ---------------------------------------------------------- - -- Calc : B.X, C.XX, D.XX - FUNCTION bic_calc1(f : unsigned(11 DOWNTO 0); - abcd : type_bic_pix_abcd) RETURN type_bic_tt1 IS - VARIABLE t : type_bic_tt1; - VARIABLE bx : signed(9+FRAC DOWNTO 0); -- 1.(FRAC+9) - VARIABLE cxx : signed(20 DOWNTO 0); -- 4.17 - VARIABLE dxx : signed(19 DOWNTO 0); -- 3.17 - BEGIN - bx := abcd.r.b * signed('0' & f(11 DOWNTO 12-FRAC)); -- 1.(FRAC+9) - t.r_bx:=bx(9+FRAC DOWNTO 9+FRAC-8); -- 1.8 - cxx:= abcd.r.c * abcd.r.xx; -- 3.9 * 1.8 = 4.17 - t.r_cxx:=cxx(19 DOWNTO 8); -- 3.9 - dxx:= abcd.r.d * abcd.r.xx; -- 2.9 * 1.8 = 3.17 - t.r_dxx:=dxx(18 DOWNTO 8); -- 2.9 - bx := abcd.g.b * signed('0' & f(11 DOWNTO 12-FRAC)); -- 1.(FRAC+9) - t.g_bx:=bx(9+FRAC DOWNTO 9+FRAC-8); -- 1.8 - cxx:= abcd.g.c * abcd.g.xx; -- 3.9 * 1.8 = 4.17 - t.g_cxx:=cxx(19 DOWNTO 8); -- 3.9 - dxx:= abcd.g.d * abcd.g.xx; -- 2.9 * 1.8 = 3.17 - t.g_dxx:=dxx(18 DOWNTO 8); -- 2.9 - bx := abcd.b.b * signed('0' & f(11 DOWNTO 12-FRAC)); -- 1.(FRAC+9) - t.b_bx:=bx(9+FRAC DOWNTO 9+FRAC-8); -- 1.8 - cxx:= abcd.b.c * abcd.b.xx; -- 3.9 * 1.8 = 4.17 - t.b_cxx:=cxx(19 DOWNTO 8); -- 3.9 - dxx:= abcd.b.d * abcd.b.xx; -- 2.9 * 1.8 = 3.17 - t.b_dxx:=dxx(18 DOWNTO 8); -- 2.9 - RETURN t; - END FUNCTION; - - ---------------------------------------------------------- - -- Calc A + BX + CXX , X.DXX - FUNCTION bic_calc2(f : unsigned(11 DOWNTO 0); - t : type_bic_tt1; - abcd : type_bic_pix_abcd) RETURN type_bic_tt2 IS - VARIABLE u : type_bic_tt2; - VARIABLE x : signed(11+FRAC DOWNTO 0); -- 3.(9+FRAC) - BEGIN - u.r_abxcxx:=(t.r_bx(8) & t.r_bx) + ("00" & signed(abcd.r.a)) + t.r_cxx(10 DOWNTO 1); -- 2.8 - u.g_abxcxx:=(t.g_bx(8) & t.g_bx) + ("00" & signed(abcd.g.a)) + t.g_cxx(10 DOWNTO 1); -- 2.8 - u.b_abxcxx:=(t.b_bx(8) & t.b_bx) + ("00" & signed(abcd.b.a)) + t.b_cxx(10 DOWNTO 1); -- 2.8 + ---------------------------------------------------------- + FUNCTION ilog2 (CONSTANT v : natural) RETURN natural IS + VARIABLE r : natural := 1; + VARIABLE n : natural := 0; + BEGIN + WHILE v>r LOOP + n:=n+1; + r:=r*2; + END LOOP; + RETURN n; + END FUNCTION ilog2; + FUNCTION to_std_logic (a : boolean) RETURN std_logic IS + BEGIN + IF a THEN RETURN '1'; + ELSE RETURN '0'; + END IF; + END FUNCTION to_std_logic; - x:=t.r_dxx * signed('0' & f(11 DOWNTO 12-FRAC)); --2.9 * 1.FRAC =3.(9+FRAC) - u.r_dxxx:=x(10+FRAC DOWNTO 9+FRAC-8); -- 2.8 - x:=t.g_dxx * signed('0' & f(11 DOWNTO 12-FRAC)); --2.9 * 1.FRAC =3.(9+FRAC) - u.g_dxxx:=x(10+FRAC DOWNTO 9+FRAC-8); -- 2.8 - x:=t.b_dxx * signed('0' & f(11 DOWNTO 12-FRAC)); --2.9 * 1.FRAC =3.(9+FRAC) - u.b_dxxx:=x(10+FRAC DOWNTO 9+FRAC-8); -- 2.8 - RETURN u; - END FUNCTION; - - ---------------------------------------------------------- - -- Calc (A + BX + CXX) + (DXXX) - FUNCTION bic_calc3(f : unsigned(11 DOWNTO 0); - t : type_bic_tt2; - abcd : type_bic_pix_abcd) RETURN type_pix IS - VARIABLE x : type_pix; - VARIABLE v : signed(9 DOWNTO 0); -- 2.8 - BEGIN - v:=t.r_abxcxx + t.r_dxxx; - x.r:=bound(unsigned(v),8); - v:=t.g_abxcxx + t.g_dxxx; - x.g:=bound(unsigned(v),8); - v:=t.b_abxcxx + t.b_dxxx; - x.b:=bound(unsigned(v),8); - RETURN x; - END FUNCTION; - - ----------------------------------------------------------------------------- - SIGNAL o_h_bic_pix,o_v_bic_pix : type_pix; - SIGNAL o_h_bic_abcd1,o_h_bic_abcd2 : type_bic_pix_abcd; - SIGNAL o_v_bic_abcd1,o_v_bic_abcd2 : type_bic_pix_abcd; - SIGNAL o_h_bic_tt1,o_v_bic_tt1 : type_bic_tt1; - SIGNAL o_h_bic_tt2,o_v_bic_tt2 : type_bic_tt2; - - ----------------------------------------------------------------------------- - -- Polyphase - - CONSTANT POLY16 : arr_int9 := ( - -24,-21,-15,-9,-5,-1,4,8,6,8,5,4,3,1,0,0, - 176,174,169,160,150,131,115,85,58,27,4,-6,-20,-24,-26,-25, - -24,-25,-26,-24,-20,-6,4,27,58,85,115,131,150,160,169,174, - 0,0,0,1,3,4,5,8,6,8,4,-1,-5,-9,-15,-21); - - CONSTANT POLY32 : arr_int9 := ( - -24,-22,-20,-18,-16,-13,-11,-8,-6,-3,-1,0,2,3,5,5,6,6,6,5,5,4,4,3,2,1,1,0,0,0,0,0, - 176,175,174,172,169,164,160,153,147,138,129,119,109,96,84,71,58,40,22,12,3,-4,-12,-16,-20,-22,-25,-25,-26,-25,-25,-25, - -24,-25,-26,-26,-26,-24,-23,-19,-16,-10,-4,4,11,22,32,45,58,77,96,108,119,129,140,147,154,159,165,168,172,173,175,175, - 0,0,0,0,1,1,2,2,3,3,4,5,6,7,7,7,6,5,4,3,1,-1,-4,-6,-8,-10,-13,-15,-18,-20,-22,-22); - - FUNCTION init_poly RETURN arr_uv36 IS - VARIABLE m : arr_uv36(0 TO 2**FRAC-1) :=(OTHERS =>x"000000000"); - BEGIN - IF FRAC=4 THEN - FOR i IN 0 TO 15 LOOP - m(i):=unsigned(to_signed(POLY16(i),9) & to_signed(POLY16(i+16),9) & - to_signed(POLY16(i+32),9) & to_signed(POLY16(i+48),9)); - END LOOP; - ELSIF FRAC=5 THEN - FOR i IN 0 TO 31 LOOP - m(i):=unsigned(to_signed(POLY32(i),9) & to_signed(POLY32(i+32),9) & - to_signed(POLY32(i+64),9) & to_signed(POLY32(i+96),9)); - END LOOP; - END IF; - RETURN m; - END FUNCTION; - - SIGNAL o_h_poly : arr_uv36(0 TO 2**FRAC-1):=init_poly; - SIGNAL o_v_poly : arr_uv36(0 TO 2**FRAC-1):=init_poly; - ATTRIBUTE ramstyle OF o_h_poly : SIGNAL IS "no_rw_check"; - ATTRIBUTE ramstyle OF o_v_poly : SIGNAL IS "no_rw_check"; - SIGNAL o_h_poly_a,o_v_poly_a : integer RANGE 0 TO 2**FRAC-1; - SIGNAL o_h_poly_dr,o_h_poly_dr2,o_v_poly_dr,o_v_poly_dr2 : unsigned(35 DOWNTO 0); - SIGNAL o_h_poly_pix,o_v_poly_pix : type_pix; - SIGNAL poly_h_wr,poly_v_wr : std_logic; - SIGNAL poly_tdw : unsigned(35 DOWNTO 0); - SIGNAL poly_a2 : unsigned(FRAC-1 DOWNTO 0); - - TYPE type_poly_t IS RECORD - r0,r1,b0,b1,g0,g1 : signed(17 DOWNTO 0); - END RECORD; - - SIGNAL o_h_poly_t,o_v_poly_t : type_poly_t; - - FUNCTION poly_calc1(fi : unsigned(35 DOWNTO 0); - p : arr_pix(0 TO 3)) RETURN type_poly_t IS - VARIABLE t : type_poly_t; - BEGIN - -- 2.7 * 1.8 = 3.15 - t.r0:=(signed(fi(35 DOWNTO 27)) * signed('0' & p(0).r) + - signed(fi(26 DOWNTO 18)) * signed('0' & p(1).r)); - t.r1:=(signed(fi(17 DOWNTO 9)) * signed('0' & p(2).r) + - signed(fi( 8 DOWNTO 0)) * signed('0' & p(3).r)); - t.g0:=(signed(fi(35 DOWNTO 27)) * signed('0' & p(0).g) + - signed(fi(26 DOWNTO 18)) * signed('0' & p(1).g)); - t.g1:=(signed(fi(17 DOWNTO 9)) * signed('0' & p(2).g) + - signed(fi( 8 DOWNTO 0)) * signed('0' & p(3).g)); - t.b0:=(signed(fi(35 DOWNTO 27)) * signed('0' & p(0).b) + - signed(fi(26 DOWNTO 18)) * signed('0' & p(1).b)); - t.b1:=(signed(fi(17 DOWNTO 9)) * signed('0' & p(2).b) + - signed(fi( 8 DOWNTO 0)) * signed('0' & p(3).b)); - RETURN t; - END FUNCTION; - - FUNCTION poly_calc2(t : type_poly_t) RETURN type_pix IS - VARIABLE p : type_pix; - BEGIN - p.r:=bound(unsigned(t.r0+t.r1),15); - p.g:=bound(unsigned(t.g0+t.g1),15); - p.b:=bound(unsigned(t.b0+t.b1),15); - RETURN p; - END FUNCTION; - + ---------------------------------------------------------- + CONSTANT NB_BURST : natural :=ilog2(N_BURST); + CONSTANT NB_LA : natural :=ilog2(N_DW/8); -- Low address bits + CONSTANT BLEN : natural :=N_BURST / N_DW * 8; -- Burst length + + ---------------------------------------------------------- + TYPE arr_dw IS ARRAY (natural RANGE <>) OF unsigned(N_DW-1 DOWNTO 0); + + TYPE type_pix IS RECORD + r,g,b : unsigned(7 DOWNTO 0); -- 0.8 + END RECORD; + TYPE arr_pix IS ARRAY (natural RANGE <>) OF type_pix; + TYPE arr_pixq IS ARRAY(natural RANGE <>) OF arr_pix(0 TO 3); + ATTRIBUTE ramstyle : string; + + SUBTYPE uint12 IS natural RANGE 0 TO 4095; + SUBTYPE uint13 IS natural RANGE 0 TO 8191; + + TYPE arr_uv48 IS ARRAY (natural RANGE <>) OF unsigned(47 DOWNTO 0); + TYPE arr_uv24 IS ARRAY (natural RANGE <>) OF unsigned(23 DOWNTO 0); + TYPE arr_uv40 IS ARRAY (natural RANGE <>) OF unsigned(39 DOWNTO 0); + TYPE arr_int9 IS ARRAY (natural RANGE <>) OF integer RANGE -256 TO 255; + TYPE arr_uint12 IS ARRAY (natural RANGE <>) OF uint12; + TYPE arr_frac IS ARRAY (natural RANGE <>) OF unsigned(11 DOWNTO 0); + TYPE arr_div IS ARRAY (natural RANGE <>) OF unsigned(20 DOWNTO 0); + + ---------------------------------------------------------- + -- Input image + SIGNAL i_pvs,i_pfl,i_pde,i_pce : std_logic; + SIGNAL i_ppix : type_pix; + SIGNAL i_freeze : std_logic; + SIGNAL i_count : unsigned(2 DOWNTO 0); + SIGNAL i_hsize,i_hmin,i_hmax,i_hcpt : uint12; + SIGNAL i_hrsize,i_vrsize : uint12; + SIGNAL i_himax,i_vimax : uint12; + SIGNAL i_vsize,i_vmaxmin,i_vmin,i_vmax,i_vcpt : uint12; + SIGNAL i_iauto : std_logic; + SIGNAL i_mode : unsigned(4 DOWNTO 0); + SIGNAL i_format : unsigned(1 DOWNTO 0); + SIGNAL i_ven,i_sof : std_logic; + SIGNAL i_wr : std_logic; + SIGNAL i_divstart,i_divrun : std_logic; + SIGNAL i_de_pre,i_vs_pre,i_fl_pre : std_logic; + SIGNAL i_de_delay : natural RANGE 0 TO 31; + SIGNAL i_intercnt : natural RANGE 0 TO 3; + SIGNAL i_inter,i_half,i_flm : std_logic; + SIGNAL i_write,i_wreq,i_alt,i_line,i_wline,i_wline_mem : std_logic; + SIGNAL i_walt,i_walt_mem,i_wreq_mem : std_logic; + SIGNAL i_wdelay : natural RANGE 0 TO 7; + SIGNAL i_push,i_pushend,i_pushend2 : std_logic; + SIGNAL i_eol : std_logic; + SIGNAL i_pushhead,i_pushhead2,i_pushhead3 : std_logic; + SIGNAL i_hburst,i_hbcpt : natural RANGE 0 TO 31; + SIGNAL i_shift : unsigned(0 TO 119) := (OTHERS =>'0'); + SIGNAL i_head : unsigned(127 DOWNTO 0); + SIGNAL i_acpt : natural RANGE 0 TO 15; + SIGNAL i_dpram : arr_dw(0 TO BLEN*2-1); + ATTRIBUTE ramstyle OF i_dpram : SIGNAL IS "no_rw_check"; + SIGNAL i_endframe0,i_endframe1,i_vss : std_logic; + SIGNAL i_wad : natural RANGE 0 TO BLEN*2-1; + SIGNAL i_dw : unsigned(N_DW-1 DOWNTO 0); + SIGNAL i_adrs,i_adrsi,i_wadrs,i_wadrs_mem : unsigned(31 DOWNTO 0); + SIGNAL i_reset_na : std_logic; + SIGNAL i_hnp,i_vnp : std_logic; + SIGNAL i_mem : arr_pix(0 TO IHRES-1); -- Downscale line buffer + ATTRIBUTE ramstyle OF i_mem : SIGNAL IS "no_rw_check"; + SIGNAL i_ohsize,i_ovsize : uint12; + SIGNAL i_vdivi : unsigned(12 DOWNTO 0); + SIGNAL i_vdivr : unsigned(24 DOWNTO 0); + SIGNAL i_div : unsigned(16 DOWNTO 0); + SIGNAL i_dir : unsigned(11 DOWNTO 0); + SIGNAL i_h_frac,i_v_frac : unsigned(11 DOWNTO 0); + SIGNAL i_hacc,i_vacc : uint13; + SIGNAL i_hdown,i_vdown : std_logic; + SIGNAL i_divcpt : natural RANGE 0 TO 36; + SIGNAL i_lwad,i_lrad : natural RANGE 0 TO OHRES-1; + SIGNAL i_lwr,i_bil : std_logic; + SIGNAL i_ldw,i_ldrm : type_pix; + SIGNAL i_hpixp,i_hpix0,i_hpix1,i_hpix2,i_hpix3,i_hpix4 : type_pix; + SIGNAL i_hpix,i_pix : type_pix; + SIGNAL i_hnp1,i_hnp2,i_hnp3,i_hnp4 : std_logic; + SIGNAL i_ven1,i_ven2,i_ven3,i_ven4,i_ven5,i_ven6 : std_logic; + + ---------------------------------------------------------- + -- Avalon + TYPE type_avl_state IS (sIDLE,sWRITE,sREAD); + SIGNAL avl_state : type_avl_state; + SIGNAL avl_write_i,avl_write_sync,avl_write_sync2 : std_logic; + SIGNAL avl_read_i,avl_read_sync,avl_read_sync2 : std_logic; + SIGNAL avl_read_pulse,avl_write_pulse : std_logic; + SIGNAL avl_read_sr,avl_write_sr,avl_read_clr,avl_write_clr : std_logic; + SIGNAL avl_rad,avl_rad_c,avl_wad : natural RANGE 0 TO 2*BLEN-1; + SIGNAL avl_walt,avl_wline,avl_rline : std_logic; + SIGNAL avl_dw,avl_dr : unsigned(N_DW-1 DOWNTO 0); + SIGNAL avl_wr : std_logic; + SIGNAL avl_readdataack,avl_readack : std_logic; + SIGNAL avl_radrs,avl_wadrs : unsigned(31 DOWNTO 0); + SIGNAL avl_i_offset0,avl_o_offset0 : unsigned(31 DOWNTO 0); + SIGNAL avl_i_offset1,avl_o_offset1 : unsigned(31 DOWNTO 0); + SIGNAL avl_reset_na : std_logic; + SIGNAL avl_o_vs_sync,avl_o_vs : std_logic; + SIGNAL avl_fb_ena : std_logic; + + FUNCTION buf_next(a,b : natural RANGE 0 TO 2; freeze : std_logic := '0') RETURN natural IS + BEGIN + IF (freeze='1') THEN RETURN a; END IF; + IF (a=0 AND b=1) OR (a=1 AND b=0) THEN RETURN 2; END IF; + IF (a=1 AND b=2) OR (a=2 AND b=1) THEN RETURN 0; END IF; + RETURN 1; + END FUNCTION; + FUNCTION buf_offset(b : natural RANGE 0 TO 2; + base : unsigned(31 DOWNTO 0); + size : unsigned(31 DOWNTO 0)) RETURN unsigned IS + BEGIN + IF b=1 THEN RETURN base+size; END IF; + IF b=2 THEN RETURN base+(size(30 DOWNTO 0) & '0'); END IF; + RETURN base; + END FUNCTION; + + ---------------------------------------------------------- + -- Output + SIGNAL o_run : std_logic; + SIGNAL o_freeze : std_logic; + SIGNAL o_mode,o_hmode,o_vmode : unsigned(4 DOWNTO 0); + SIGNAL o_format : unsigned(5 DOWNTO 0); + SIGNAL o_fb_pal_dr : unsigned(23 DOWNTO 0); + SIGNAL o_fb_pal_dr2 : unsigned(23 DOWNTO 0); + SIGNAL o_fb_pal_dr_x2 : unsigned(47 DOWNTO 0); + SIGNAL pal_idx: unsigned(7 DOWNTO 0); + SIGNAL pal_idx_lsb: std_logic; + SIGNAL pal1_mem : arr_uv48(0 TO 127); + SIGNAL pal2_mem : arr_uv24(0 TO 255); + ATTRIBUTE ramstyle of pal1_mem : signal is "no_rw_check"; + ATTRIBUTE ramstyle of pal2_mem : signal is "no_rw_check"; + SIGNAL o_htotal,o_hsstart,o_hsend : uint12; + SIGNAL o_hmin,o_hmax,o_hdisp,o_v_hmin_adj : uint12; + SIGNAL o_hsize,o_vsize : uint12; + SIGNAL o_vtotal,o_vsstart,o_vsend : uint12; + SIGNAL o_vrr,o_isync,o_isync2 : std_logic; + SIGNAL o_vrr_sync,o_vrr_sync2 : boolean; + SIGNAL o_vrr_min,o_vrr_min2 : boolean; + SIGNAL o_vrr_max,o_vrr_max2 : boolean; + SIGNAL o_vcpt_sync,o_vcpt_sync2, o_vrrmax : uint12; + SIGNAL o_sync, o_sync_max : boolean; + SIGNAL o_vmin,o_vmax,o_vdisp : uint12; + SIGNAL o_divcpt : natural RANGE 0 TO 36; + SIGNAL o_iendframe0,o_iendframe02,o_iendframe1,o_iendframe12 : std_logic; + SIGNAL o_bufup0,o_bufup1,o_inter : std_logic; + SIGNAL o_ibuf0,o_ibuf1,o_obuf0,o_obuf1 : natural RANGE 0 TO 2; + TYPE enum_o_state IS (sDISP,sHSYNC,sREAD,sWAITREAD); + SIGNAL o_state : enum_o_state; + TYPE enum_o_copy IS (sWAIT,sSHIFT,sCOPY); + SIGNAL o_copy : enum_o_copy; + SIGNAL o_pshift : natural RANGE 0 TO 15; + SIGNAL o_readack,o_readack_sync,o_readack_sync2 : std_logic; + SIGNAL o_readdataack,o_readdataack_sync,o_readdataack_sync2 : std_logic; + SIGNAL o_copyv : unsigned(0 TO 14); + SIGNAL o_adrs : unsigned(31 DOWNTO 0); -- Avalon address + SIGNAL o_adrs_pre : natural RANGE 0 TO 2**24-1; + SIGNAL o_stride : unsigned(13 DOWNTO 0); + SIGNAL o_adrsa,o_adrsb,o_rline : std_logic; + SIGNAL o_ad,o_ad1,o_ad2,o_ad3 : natural RANGE 0 TO 2*BLEN-1; + SIGNAL o_adturn : std_logic; + SIGNAL o_dr : unsigned(N_DW-1 DOWNTO 0); + SIGNAL o_shift : unsigned(0 TO N_DW+15); + SIGNAL o_sh,o_sh1,o_sh2,o_sh3,o_sh4 : std_logic; + SIGNAL o_reset_na : std_logic; + SIGNAL o_dpram : arr_dw(0 TO BLEN*2-1); + ATTRIBUTE ramstyle OF o_dpram : SIGNAL IS "no_rw_check"; + SIGNAL o_line0,o_line1,o_line2,o_line3 : arr_pix(0 TO OHRES-1); + ATTRIBUTE ramstyle OF o_line0 : SIGNAL IS "no_rw_check"; + ATTRIBUTE ramstyle OF o_line1 : SIGNAL IS "no_rw_check"; + ATTRIBUTE ramstyle OF o_line2 : SIGNAL IS "no_rw_check"; + ATTRIBUTE ramstyle OF o_line3 : SIGNAL IS "no_rw_check"; + SIGNAL o_wadl,o_radl0,o_radl1,o_radl2,o_radl3 : natural RANGE 0 TO OHRES-1; + SIGNAL o_ldw,o_ldr0,o_ldr1,o_ldr2,o_ldr3 : type_pix; + SIGNAL o_wr : unsigned(3 DOWNTO 0); + SIGNAL o_hcpt,o_vcpt,o_vcpt_pre,o_vcpt_pre2,o_vcpt_pre3,o_vcpt2 : uint12; + SIGNAL o_ihsize,o_ihsizem,o_ivsize : uint12; + SIGNAL o_ihsize_temp, o_ihsize_temp2 : natural RANGE 0 TO 32767; + + SIGNAL o_vfrac : unsigned(11 DOWNTO 0); + SIGNAL o_hfrac : arr_frac(0 TO 9); + ATTRIBUTE ramstyle OF o_hfrac : SIGNAL IS "logic"; -- avoid blockram shift register + + SIGNAL o_hacc,o_hacc_ini,o_hacc_next,o_vacc,o_vacc_next,o_vacc_ini : natural RANGE 0 TO 4*OHRES-1; + SIGNAL o_hsv,o_vsv,o_dev,o_pev,o_end : unsigned(0 TO 11); + SIGNAL o_hsp,o_vss : std_logic; + SIGNAL o_vcarrym,o_prim : boolean; + SIGNAL o_read,o_read_pre : std_logic; + SIGNAL o_readlev,o_copylev : natural RANGE 0 TO 2; + SIGNAL o_hburst,o_hbcpt : natural RANGE 0 TO 31; + SIGNAL o_fload : natural RANGE 0 TO 3; + SIGNAL o_acpt,o_acpt1,o_acpt2,o_acpt3,o_acpt4 : natural RANGE 0 TO 15; -- Alternance pixels FIFO + SIGNAL o_dshi : natural RANGE 0 TO 3; + SIGNAL o_first,o_last,o_last1,o_last2 : std_logic; + SIGNAL o_lastt1,o_lastt2,o_lastt3,o_lastt4 : std_logic; + SIGNAL o_alt,o_altx : unsigned(3 DOWNTO 0); + SIGNAL o_hdown,o_vdown : std_logic; + SIGNAL o_primv,o_lastv,o_bibv : unsigned(0 TO 2); + TYPE arr_uint4 IS ARRAY (natural RANGE <>) OF natural RANGE 0 TO 15; + SIGNAL o_off : arr_uint4(0 TO 2); + SIGNAL o_bibu : std_logic :='0'; + SIGNAL o_dcptv : arr_uint12(1 TO 14); + SIGNAL o_dcpt : uint12; + SIGNAL o_hpixs,o_hpix0,o_hpix1,o_hpix2,o_hpix3 : type_pix; + SIGNAL o_hpixq : arr_pixq(2 TO 8); + ATTRIBUTE ramstyle OF o_hpixq : SIGNAL IS "logic"; -- avoid blockram shift register + SIGNAL o_vpixq, o_vpixq_pre : arr_pix(0 TO 3); + SIGNAL o_vpix_outer : arr_pix(0 TO 2); + SIGNAL o_vpix_inner : arr_pix(0 TO 6); + + + SIGNAL o_vpe : std_logic; + SIGNAL o_div : arr_div(0 TO 2); --uint12; + SIGNAL o_dir : arr_frac(0 TO 2); + ATTRIBUTE ramstyle OF o_div, o_dir : SIGNAL IS "logic"; -- avoid blockram shift register + SIGNAL o_vdivi : unsigned(12 DOWNTO 0); + SIGNAL o_vdivr : unsigned(24 DOWNTO 0); + SIGNAL o_divstart : std_logic; + SIGNAL o_divrun : std_logic; + SIGNAL o_hacpt,o_vacpt : unsigned(11 DOWNTO 0); + SIGNAL o_vacptl : unsigned(1 DOWNTO 0); + signal o_newres : integer range 0 to 3; + + ----------------------------------------------------------------------------- + FUNCTION shift_ishift(shift : unsigned(0 TO 119); + pix : type_pix; + format : unsigned(1 DOWNTO 0)) RETURN unsigned IS + BEGIN + CASE format IS + WHEN "01" => -- 24bpp + RETURN shift(24 TO 119) & pix.r & pix.g & pix.b; + WHEN "10" => -- 32bpp + RETURN shift(32 TO 119) & pix.r & pix.g & pix.b & x"00"; + WHEN OTHERS => -- 16bpp 565 + RETURN shift(16 TO 119) & + pix.g(4 DOWNTO 2) & pix.r(7 DOWNTO 3) & + pix.b(7 DOWNTO 3) & pix.g(7 DOWNTO 5); + END CASE; + END FUNCTION; + + FUNCTION shift_ipack( i_dw : unsigned(N_DW-1 DOWNTO 0); + acpt : natural RANGE 0 TO 15; + shift : unsigned(0 TO 119); + pix : type_pix; + format : unsigned(1 DOWNTO 0)) RETURN unsigned IS + VARIABLE dw : unsigned(N_DW-1 DOWNTO 0); + BEGIN + dw:=i_dw; + CASE format IS + WHEN "01" => -- 24bpp + IF N_DW=128 THEN + IF acpt=5 THEN dw:=shift(0 TO 119) & pix.r; + ELSIF acpt=10 THEN dw:=shift(8 TO 119) & pix.r & pix.g; + ELSIF acpt=15 THEN dw:=shift(16 TO 119) & pix.r & pix.g & pix.b; + END IF; + ELSE -- N_DW=64 + IF (acpt MOD 8)=2 THEN dw:=shift(72 TO 119) & pix.r & pix.g; + ELSIF (acpt MOD 8)=5 THEN dw:=shift(64 TO 119) & pix.r; + ELSIF (acpt MOD 8)=7 THEN dw:=shift(80 TO 119) & pix.r & pix.g & pix.b; + END IF; + END IF; + WHEN "10" => -- 32bpp + IF (N_DW=128 AND (acpt MOD 4)=3) OR (N_DW=64 AND (acpt MOD 8)=7) THEN + dw:=shift(128-N_DW+24 TO 119) & pix.r & pix.g & pix.b & x"00"; + END IF; + WHEN OTHERS => -- 16bpp 565 + IF (N_DW=128 AND (acpt MOD 8)=7) OR (N_DW=64 AND (acpt MOD 4)=3) THEN + dw:=shift(128-N_DW+8 TO 119) & pix.g(4 DOWNTO 2) & pix.r(7 DOWNTO 3) & + pix.b(7 DOWNTO 3) & pix.g(7 DOWNTO 5); + END IF; + END CASE; + RETURN dw; + END FUNCTION; + + FUNCTION shift_inext (acpt : natural RANGE 0 TO 15; + format : unsigned(1 DOWNTO 0)) RETURN boolean IS + BEGIN + CASE format IS + WHEN "01" => -- 24bpp + RETURN (N_DW=128 AND (acpt=5 OR acpt=10 OR acpt=15)) OR + (N_DW=64 AND ((acpt MOD 8)=2 OR (acpt MOD 8)=5 OR (acpt MOD 8)=7)); + WHEN "10" => -- 32bpp + RETURN (N_DW=128 AND ((acpt MOD 4)=3)) OR + (N_DW=64 AND ((acpt MOD 2)=1)); + WHEN OTHERS => -- 16bpp + RETURN (N_DW=128 AND ((acpt MOD 8)=7)) OR + (N_DW=64 AND ((acpt MOD 4)=3)); + END CASE; + END FUNCTION; + + FUNCTION shift_opack(acpt : natural RANGE 0 TO 15; + shift : unsigned(0 TO N_DW+15); + dr : unsigned(N_DW-1 DOWNTO 0); + format : unsigned(5 DOWNTO 0)) RETURN unsigned IS + VARIABLE shift_v : unsigned(0 TO N_DW+15); + BEGIN + CASE format(2 DOWNTO 0) IS + WHEN "011" => -- 8bpp + IF (N_DW=128 AND acpt=0) OR (N_DW=64 AND (acpt MOD 8)=0) THEN + shift_v:=dr & dr(15 DOWNTO 0); + ELSE + shift_v:=shift(8 TO N_DW+15) & dr(7 DOWNTO 0); + END IF; + + WHEN "100" => -- 16bpp + IF (N_DW=128 AND (acpt MOD 8)=0) OR (N_DW=64 AND (acpt MOD 4)=0) THEN + shift_v:=dr & dr(15 DOWNTO 0); + ELSE + shift_v:=shift(16 TO N_DW+15) & dr(15 DOWNTO 0); + END IF; + + WHEN "101" => -- 24bpp + IF N_DW=128 THEN + IF acpt=0 THEN + shift_v:=dr & dr(15 DOWNTO 0); + ELSIF acpt=5 THEN + shift_v:=shift(24 TO 31) & dr & dr(7 DOWNTO 0); + ELSIF acpt=10 THEN + shift_v:=shift(24 TO 39) & dr; + ELSE + shift_v:=shift(24 TO N_DW+15) & dr(23 DOWNTO 0); + END IF; + ELSE -- N_DW=64 + IF (acpt MOD 8)=0 THEN + shift_v:=dr & dr(15 DOWNTO 0); + ELSIF (acpt MOD 8)=2 THEN + shift_v:=shift(24 TO 39) & dr; + ELSIF (acpt MOD 8)=5 THEN + shift_v:=shift(24 TO 31) & dr & dr(7 DOWNTO 0); + ELSE + shift_v:=shift(24 TO N_DW+15) & dr(23 DOWNTO 0); + END IF; + END IF; + WHEN OTHERS => -- 32bpp + IF (N_DW=128 AND (acpt MOD 4)=0) OR (N_DW=64 AND (acpt MOD 2)=0) THEN + shift_v:=dr & dr(15 DOWNTO 0); + ELSE + shift_v:=shift(32 TO N_DW+15) & dr(31 DOWNTO 0); + END IF; + END CASE; + RETURN shift_v; + END FUNCTION; + + FUNCTION shift_onext (acpt : natural RANGE 0 TO 15; + format : unsigned(5 DOWNTO 0)) RETURN boolean IS + BEGIN + CASE format(2 DOWNTO 0) IS + WHEN "011" => -- 8bpp + RETURN (N_DW=128 AND acpt=0) OR + (N_DW=64 AND ((acpt MOD 8)=0)); + WHEN "100" => -- 16bpp + RETURN (N_DW=128 AND ((acpt MOD 8)=0)) OR + (N_DW=64 AND ((acpt MOD 4)=0)); + WHEN "101" => -- 24bpp + RETURN (N_DW=128 AND (acpt=0 OR acpt=5 OR acpt=10)) OR + (N_DW=64 AND ((acpt MOD 8)=0 OR (acpt MOD 8)=2 OR (acpt MOD 8)=5)); + WHEN OTHERS => -- 32bpp + RETURN (N_DW=128 AND ((acpt MOD 4)=0)) OR + (N_DW=64 AND ((acpt MOD 2)=0)); + END CASE; + END FUNCTION; + + FUNCTION shift_opix (shift : unsigned(0 TO N_DW+15); + format : unsigned(5 DOWNTO 0)) RETURN type_pix IS + BEGIN + CASE format(3 DOWNTO 0) IS + WHEN "0100" => -- 16bpp 565 + RETURN (b=>shift(8 TO 12) & shift(8 TO 10), + g=>shift(13 TO 15) & shift(0 TO 2) & shift(13 TO 14), + r=>shift(3 TO 7) & shift(3 TO 5)); + WHEN "1100" => -- 16bpp 1555 + RETURN (b=>shift(9 TO 13) & shift(9 TO 11), + g=>shift(14 TO 15) & shift(0 TO 2) & shift(14 TO 15) & shift(0), + r=>shift(3 TO 7) & shift(3 TO 5)); + WHEN "0101" | "0110" => -- 24bpp / 32bpp + RETURN (r=>shift(0 TO 7),g=>shift(8 TO 15),b=>shift(16 TO 23)); + + WHEN OTHERS => + RETURN (r=>shift(0 TO 7),g=>shift(8 TO 15),b=>shift(16 TO 23)); + + END CASE; + END FUNCTION; + + FUNCTION pixoffset(adrs : unsigned(31 DOWNTO 0); + format : unsigned (5 DOWNTO 0)) RETURN natural IS + BEGIN + CASE format(2 DOWNTO 0) IS + WHEN "011" => -- 8bbp + RETURN to_integer(adrs(NB_LA-1 DOWNTO 0)); + WHEN "100" => -- 16bpp 565 + RETURN to_integer(adrs(NB_LA-1 DOWNTO 1)); + WHEN OTHERS => -- 32bpp + RETURN to_integer(adrs(NB_LA-1 DOWNTO 2)); + END CASE; + END FUNCTION; + + FUNCTION swap(d : unsigned(N_DW-1 DOWNTO 0)) RETURN unsigned IS + VARIABLE e : unsigned(N_DW-1 DOWNTO 0); + BEGIN + IF BYTESWAP THEN + FOR i IN 0 TO N_DW/8-1 LOOP + e(i*8+7 DOWNTO i*8):=d(N_DW-i*8-1 DOWNTO N_DW-i*8-8); + END LOOP; + RETURN e; + ELSE + RETURN d; + END IF; + END FUNCTION swap; + + ----------------------------------------------------------------------------- + FUNCTION altx (a : unsigned(1 DOWNTO 0)) RETURN unsigned IS + BEGIN + CASE a IS + WHEN "00" => RETURN "0001"; + WHEN "01" => RETURN "0010"; + WHEN "10" => RETURN "0100"; + WHEN OTHERS => RETURN "1000"; + END CASE; + END FUNCTION; + + ----------------------------------------------------------------------------- + FUNCTION bound(a : unsigned; + s : natural) RETURN unsigned IS + BEGIN + IF a(a'left)='1' THEN + RETURN x"00"; + ELSIF a(a'left DOWNTO s)/=0 THEN + RETURN x"FF"; + ELSE + RETURN a(s-1 DOWNTO s-8); + END IF; + END FUNCTION bound; + + ----------------------------------------------------------------------------- + -- Nearest + FUNCTION near_frac(f : unsigned) RETURN unsigned IS + VARIABLE x : unsigned(FRAC-1 DOWNTO 0); + BEGIN + x:=(OTHERS =>f(f'left)); + RETURN x; + END FUNCTION; + + SIGNAL o_h_near_frac,o_v_near_frac : unsigned(FRAC-1 DOWNTO 0); + SIGNAL o_h_bil_frac,o_v_bil_frac : unsigned(FRAC-1 DOWNTO 0); + SIGNAL o_h_bil_pix,o_v_bil_pix : type_pix; + + ----------------------------------------------------------------------------- + -- Nearest + Bilinear + Sharp Bilinear + FUNCTION bil_frac(f : unsigned) RETURN unsigned IS + BEGIN + RETURN f(f'left DOWNTO f'left+1-FRAC); + END FUNCTION; + + TYPE type_bil_t IS RECORD + r,g,b : unsigned(8+FRAC DOWNTO 0); + END RECORD; + + FUNCTION bil_calc(f : unsigned(FRAC-1 DOWNTO 0); + p : arr_pix(0 TO 3)) RETURN type_bil_t IS + VARIABLE fp,fn : unsigned(FRAC DOWNTO 0); + VARIABLE u : unsigned(8+FRAC DOWNTO 0); + VARIABLE x : type_bil_t; + CONSTANT Z : unsigned(FRAC-1 DOWNTO 0):=(OTHERS =>'0'); + BEGIN + fp:=('0' & f) + (Z & f(FRAC-1)); + fn:=('1' & Z) - fp; + u:=p(2).r * fp + p(1).r * fn; + x.r:=u; + u:=p(2).g * fp + p(1).g * fn; + x.g:=u; + u:=p(2).b * fp + p(1).b * fn; + x.b:=u; + RETURN x; + END FUNCTION; + + FUNCTION near_calc(f : unsigned(FRAC-1 DOWNTO 0); + p : arr_pix(0 TO 3)) RETURN type_bil_t IS + VARIABLE fp,fn : unsigned(FRAC DOWNTO 0); + VARIABLE u : unsigned(8+FRAC DOWNTO 0); + VARIABLE x : type_bil_t; + CONSTANT Z : unsigned(FRAC-1 DOWNTO 0):=(OTHERS =>'0'); + BEGIN + IF f(FRAC-1)='0' THEN + x.r := '0' & p(1).r & Z; + x.g := '0' & p(1).g & Z; + x.b := '0' & p(1).b & Z; + ELSE + x.r := '0' & p(2).r & Z; + x.g := '0' & p(2).g & Z; + x.b := '0' & p(2).b & Z; + END IF; + RETURN x; + END FUNCTION; + + SIGNAL o_h_bil_t,o_v_bil_t : type_bil_t; + SIGNAL o_h_near_t,o_v_near_t : type_bil_t; + SIGNAL i_h_bil_t : type_bil_t; + + ----------------------------------------------------------------------------- + -- Sharp Bilinear + -- <0.5 : x*x*x*4 + -- >0.5 : 1 - (1-x)*(1-x)*(1-x)*4 + + TYPE type_sbil_tt IS RECORD + f : unsigned(FRAC-1 DOWNTO 0); + s : unsigned(FRAC-1 DOWNTO 0); + END RECORD; + + SIGNAL o_h_sbil_t,o_v_sbil_t : type_sbil_tt; + + FUNCTION sbil_frac1(f : unsigned(11 DOWNTO 0)) RETURN type_sbil_tt IS + VARIABLE u : unsigned(FRAC-1 DOWNTO 0); + VARIABLE v : unsigned(2*FRAC-1 DOWNTO 0); + VARIABLE x : type_sbil_tt; + BEGIN + IF f(11)='0' THEN + u:=f(11 DOWNTO 12-FRAC); + ELSE + u:=NOT f(11 DOWNTO 12-FRAC); + END IF; + v:=u*u; + x.f:=u; + x.s:=v(2*FRAC-2 DOWNTO FRAC-1); + RETURN x; + END FUNCTION; + + FUNCTION sbil_frac2(f : unsigned(11 DOWNTO 0); + t : type_sbil_tt) RETURN unsigned IS + VARIABLE v : unsigned(2*FRAC-1 DOWNTO 0); + BEGIN + v:=t.f*t.s; + IF f(11)='0' THEN + RETURN v(2*FRAC-2 DOWNTO FRAC-1); + ELSE + RETURN NOT v(2*FRAC-2 DOWNTO FRAC-1); + END IF; + END FUNCTION; + + ----------------------------------------------------------------------------- + -- Bicubic + TYPE type_bic_abcd IS RECORD + a : unsigned(7 DOWNTO 0); -- 0.8 + b : signed(8 DOWNTO 0); -- 0.9 + c : signed(11 DOWNTO 0); -- 3.9 + d : signed(10 DOWNTO 0); -- 2.9 + xx : signed(8 DOWNTO 0); -- X.X 1.8 + END RECORD; + TYPE type_bic_pix_abcd IS RECORD + r,g,b : type_bic_abcd; + END RECORD; + TYPE type_bic_tt1 IS RECORD -- Intermediate result + r_bx,g_bx,b_bx : signed(8 DOWNTO 0); -- B.X 1.8 + r_cxx,g_cxx,b_cxx : signed(11 DOWNTO 0); -- C.XX 3.9 + r_dxx,g_dxx,b_dxx : signed(10 DOWNTO 0); -- D.XX 2.9 + END RECORD; + TYPE type_bic_tt2 IS RECORD -- Intermediate result + r_abxcxx,g_abxcxx,b_abxcxx : signed(9 DOWNTO 0); -- A + B.X + C.XX 2.8 + r_dxxx,g_dxxx,b_dxxx : signed(9 DOWNTO 0); -- D.X.X.X 2.8 + END RECORD; + + ---------------------------------------------------------- + -- Y = A + B.X + C.X.X + D.X.X.X = A + X.(B + X.(C + X.D)) + -- A = Y(0) 0 .. 1 unsigned + -- B = Y(1)/2 - Y(-1)/2 -1/2 .. +1/2 signed + -- C = Y(-1) - 5*Y(0)/2 + 2*Y(1) - Y(2)/2 -3 .. +3 signed + -- D = -Y(-1)/2 + 3*Y(0)/2 - 3*Y(1)/2 + Y(2)/2 -2 .. +2 signed + + FUNCTION bic_calc0(f : unsigned(11 DOWNTO 0); + pm,p0,p1,p2 : unsigned(7 DOWNTO 0)) RETURN type_bic_abcd IS + VARIABLE xx : signed(2*FRAC+1 DOWNTO 0); -- 2.(2*FRAC) + BEGIN + xx := signed('0' & f(11 DOWNTO 12-FRAC)) * + signed('0' & f(11 DOWNTO 12-FRAC)); -- 2.(2*FRAC) + RETURN type_bic_abcd'( + a=>p0,-- 0.8 + b=>signed(('0' & p1) - ('0' & pm)), -- 0.9 + c=>signed(("000" & pm & '0') - ("00" & p0 & "00") - ("0000" & p0) + + ("00" & p1 & "00") - ("0000" & p2)), -- 3.9 + d=>signed(("00" & p0 & '0') - ("00" & p1 & '0') - ("000" & p1) + + ("000" & p0) + ("000" & p2) - ("000" & pm)), -- 2.9 + xx=>xx(2*FRAC DOWNTO 2*FRAC-8)); -- 1.8 + END FUNCTION; + FUNCTION bic_calc0(f : unsigned(11 DOWNTO 0); + p : arr_pix(0 TO 3)) RETURN type_bic_pix_abcd IS + BEGIN + RETURN type_bic_pix_abcd'( r=>bic_calc0(f,p(0).r,p(1).r,p(2).r,p(3).r), + g=>bic_calc0(f,p(0).g,p(1).g,p(2).g,p(3).g), + b=>bic_calc0(f,p(0).b,p(1).b,p(2).b,p(3).b)); + END FUNCTION; + + ---------------------------------------------------------- + -- Calc : B.X, C.XX, D.XX + FUNCTION bic_calc1(f : unsigned(11 DOWNTO 0); + abcd : type_bic_pix_abcd) RETURN type_bic_tt1 IS + VARIABLE t : type_bic_tt1; + VARIABLE bx : signed(9+FRAC DOWNTO 0); -- 1.(FRAC+9) + VARIABLE cxx : signed(20 DOWNTO 0); -- 4.17 + VARIABLE dxx : signed(19 DOWNTO 0); -- 3.17 + BEGIN + bx := abcd.r.b * signed('0' & f(11 DOWNTO 12-FRAC)); -- 1.(FRAC+9) + t.r_bx:=bx(9+FRAC DOWNTO 9+FRAC-8); -- 1.8 + cxx:= abcd.r.c * abcd.r.xx; -- 3.9 * 1.8 = 4.17 + t.r_cxx:=cxx(19 DOWNTO 8); -- 3.9 + dxx:= abcd.r.d * abcd.r.xx; -- 2.9 * 1.8 = 3.17 + t.r_dxx:=dxx(18 DOWNTO 8); -- 2.9 + bx := abcd.g.b * signed('0' & f(11 DOWNTO 12-FRAC)); -- 1.(FRAC+9) + t.g_bx:=bx(9+FRAC DOWNTO 9+FRAC-8); -- 1.8 + cxx:= abcd.g.c * abcd.g.xx; -- 3.9 * 1.8 = 4.17 + t.g_cxx:=cxx(19 DOWNTO 8); -- 3.9 + dxx:= abcd.g.d * abcd.g.xx; -- 2.9 * 1.8 = 3.17 + t.g_dxx:=dxx(18 DOWNTO 8); -- 2.9 + bx := abcd.b.b * signed('0' & f(11 DOWNTO 12-FRAC)); -- 1.(FRAC+9) + t.b_bx:=bx(9+FRAC DOWNTO 9+FRAC-8); -- 1.8 + cxx:= abcd.b.c * abcd.b.xx; -- 3.9 * 1.8 = 4.17 + t.b_cxx:=cxx(19 DOWNTO 8); -- 3.9 + dxx:= abcd.b.d * abcd.b.xx; -- 2.9 * 1.8 = 3.17 + t.b_dxx:=dxx(18 DOWNTO 8); -- 2.9 + RETURN t; + END FUNCTION; + + ---------------------------------------------------------- + -- Calc A + BX + CXX , X.DXX + FUNCTION bic_calc2(f : unsigned(11 DOWNTO 0); + t : type_bic_tt1; + abcd : type_bic_pix_abcd) RETURN type_bic_tt2 IS + VARIABLE u : type_bic_tt2; + VARIABLE x : signed(11+FRAC DOWNTO 0); -- 3.(9+FRAC) + BEGIN + u.r_abxcxx:=(t.r_bx(8) & t.r_bx) + ("00" & signed(abcd.r.a)) + t.r_cxx(10 DOWNTO 1); -- 2.8 + u.g_abxcxx:=(t.g_bx(8) & t.g_bx) + ("00" & signed(abcd.g.a)) + t.g_cxx(10 DOWNTO 1); -- 2.8 + u.b_abxcxx:=(t.b_bx(8) & t.b_bx) + ("00" & signed(abcd.b.a)) + t.b_cxx(10 DOWNTO 1); -- 2.8 + + x:=t.r_dxx * signed('0' & f(11 DOWNTO 12-FRAC)); --2.9 * 1.FRAC =3.(9+FRAC) + u.r_dxxx:=x(10+FRAC DOWNTO 9+FRAC-8); -- 2.8 + x:=t.g_dxx * signed('0' & f(11 DOWNTO 12-FRAC)); --2.9 * 1.FRAC =3.(9+FRAC) + u.g_dxxx:=x(10+FRAC DOWNTO 9+FRAC-8); -- 2.8 + x:=t.b_dxx * signed('0' & f(11 DOWNTO 12-FRAC)); --2.9 * 1.FRAC =3.(9+FRAC) + u.b_dxxx:=x(10+FRAC DOWNTO 9+FRAC-8); -- 2.8 + RETURN u; + END FUNCTION; + + ---------------------------------------------------------- + -- Calc (A + BX + CXX) + (DXXX) + FUNCTION bic_calc3(f : unsigned(11 DOWNTO 0); + t : type_bic_tt2; + abcd : type_bic_pix_abcd) RETURN type_pix IS + VARIABLE x : type_pix; + VARIABLE v : signed(9 DOWNTO 0); -- 2.8 + BEGIN + v:=t.r_abxcxx + t.r_dxxx; + x.r:=bound(unsigned(v),8); + v:=t.g_abxcxx + t.g_dxxx; + x.g:=bound(unsigned(v),8); + v:=t.b_abxcxx + t.b_dxxx; + x.b:=bound(unsigned(v),8); + RETURN x; + END FUNCTION; + + ----------------------------------------------------------------------------- + SIGNAL o_h_bic_pix,o_v_bic_pix : type_pix; + SIGNAL o_h_bic_abcd1,o_h_bic_abcd2 : type_bic_pix_abcd; + SIGNAL o_v_bic_abcd1,o_v_bic_abcd2 : type_bic_pix_abcd; + SIGNAL o_h_bic_tt1,o_v_bic_tt1 : type_bic_tt1; + SIGNAL o_h_bic_tt2,o_v_bic_tt2 : type_bic_tt2; + + ----------------------------------------------------------------------------- + -- Polyphase + -- 2.7 + TYPE poly_phase_t IS RECORD + t0, t1, t2, t3 : signed(9 DOWNTO 0); + END RECORD; + + -- 4.14 + TYPE poly_phase_interp_t IS RECORD + t0, t1, t2, t3 : signed(17 DOWNTO 0); + END RECORD; + + -- 5.22 + TYPE type_poly_t IS RECORD + r0,r1,b0,b1,g0,g1 : signed(26 DOWNTO 0); + END RECORD; + + SIGNAL o_h_poly_mem : arr_uv40(0 TO 2**FRAC-1); + SIGNAL o_v_poly_mem : arr_uv40(0 TO 2**FRAC-1); + SIGNAL o_a_poly_mem : arr_uv40(0 TO 2**FRAC-1); + ATTRIBUTE ramstyle OF o_h_poly_mem : SIGNAL IS "no_rw_check"; + ATTRIBUTE ramstyle OF o_v_poly_mem : SIGNAL IS "no_rw_check"; + ATTRIBUTE ramstyle OF o_a_poly_mem : SIGNAL IS "no_rw_check"; + SIGNAL o_a_poly_addr, o_v_poly_addr : integer RANGE 0 TO 2**FRAC-1; + SIGNAL o_h_poly_phase_a,o_h_poly_phase_a2,o_h_poly_phase_a3, o_h_poly_phase_a4, o_h_poly_phase_a5 : poly_phase_t; + SIGNAL o_v_poly_phase_a,o_v_poly_phase_a2,o_v_poly_phase_a3, o_v_poly_phase_a4, o_v_poly_phase_a5 : poly_phase_t; + SIGNAL o_poly_phase_a, o_poly_phase_a2, o_poly_phase_a3 : poly_phase_t; + SIGNAL o_poly_phase_b,o_poly_phase_b2,o_poly_phase_b3 : poly_phase_t; + SIGNAL o_v_poly_phase, o_v_poly_phase2, o_h_poly_phase, o_poly_phase, o_poly_phase1 : poly_phase_interp_t; + SIGNAL o_v_poly_pix, o_h_poly_pix, o_h_lum_pix, o_v_lum_pix : type_pix; + SIGNAL o_poly_lum, o_poly_lum1 : unsigned(7 DOWNTO 0); + SIGNAL o_poly_lerp_ta, o_poly_lerp_tb : signed(9 DOWNTO 0); + SIGNAL o_h_poly_t,o_h_poly_t2,o_v_poly_t : type_poly_t; + + SIGNAL o_v_poly_adaptive, o_h_poly_adaptive, o_v_poly_use_adaptive, o_h_poly_use_adaptive : std_logic; + SIGNAL poly_wr_mode : std_logic_vector(2 DOWNTO 0); + SIGNAL poly_tdw : unsigned(39 DOWNTO 0); + SIGNAL poly_a2 : unsigned(FRAC-1 DOWNTO 0); + + FUNCTION poly_unpack(a : unsigned(39 DOWNTO 0)) RETURN poly_phase_t IS + VARIABLE v : poly_phase_t; + BEGIN + v.t0 := signed(a(39 DOWNTO 30)); + v.t1 := signed(a(29 DOWNTO 20)); + v.t2 := signed(a(19 DOWNTO 10)); + v.t3 := signed(a( 9 DOWNTO 0)); + RETURN v; + END FUNCTION; + + -- 6 DSP 18*18 + 18*18 + FUNCTION poly_calc(fi : poly_phase_interp_t; + p : arr_pix(0 TO 3)) RETURN type_poly_t IS + VARIABLE t : type_poly_t; + BEGIN + -- 3.15 * 1.8 = 4.23 + t.r0:=(fi.t0 * signed('0' & p(0).r) + + fi.t1 * signed('0' & p(1).r)); + t.r1:=(fi.t2 * signed('0' & p(2).r) + + fi.t3 * signed('0' & p(3).r)); + t.g0:=(fi.t0 * signed('0' & p(0).g) + + fi.t1 * signed('0' & p(1).g)); + t.g1:=(fi.t2 * signed('0' & p(2).g) + + fi.t3 * signed('0' & p(3).g)); + t.b0:=(fi.t0 * signed('0' & p(0).b) + + fi.t1 * signed('0' & p(1).b)); + t.b1:=(fi.t2 * signed('0' & p(2).b) + + fi.t3 * signed('0' & p(3).b)); + RETURN t; + END FUNCTION; + + FUNCTION poly_final(t : type_poly_t) RETURN type_pix IS + VARIABLE p : type_pix; + BEGIN + p.r:=bound(unsigned(t.r0(26 DOWNTO 8)+t.r1(26 DOWNTO 8)),15); + p.g:=bound(unsigned(t.g0(26 DOWNTO 8)+t.g1(26 DOWNTO 8)),15); + p.b:=bound(unsigned(t.b0(26 DOWNTO 8)+t.b1(26 DOWNTO 8)),15); + RETURN p; + END FUNCTION; + + -- 4 DSP 18*18 + 18*18 + FUNCTION poly_lerp(a : poly_phase_t; + b : poly_phase_t; + ta : SIGNED(9 DOWNTO 0); + tb : SIGNED(9 DOWNTO 0)) RETURN poly_phase_interp_t IS + VARIABLE v : poly_phase_interp_t; + VARIABLE t0,t1,t2,t3 : signed(19 DOWNTO 0); + BEGIN + -- 2.8 * 2.8 = 4.16 + t0 := (a.t0 * ta) + (b.t0 * tb); + t1 := (a.t1 * ta) + (b.t1 * tb); + t2 := (a.t2 * ta) + (b.t2 * tb); + t3 := (a.t3 * ta) + (b.t3 * tb); + + -- 4.16 -> 3.15 + v.t0 := t0(18 DOWNTO 1); + v.t1 := t1(18 DOWNTO 1); + v.t2 := t2(18 DOWNTO 1); + v.t3 := t3(18 DOWNTO 1); + + RETURN v; + END FUNCTION; + + FUNCTION poly_cvt(a : poly_phase_t) RETURN poly_phase_interp_t IS + VARIABLE v : poly_phase_interp_t; + BEGIN + v.t0 := resize(signed( a.t0 & "0000000" ), v.t0'length); + v.t1 := resize(signed( a.t1 & "0000000" ), v.t1'length); + v.t2 := resize(signed( a.t2 & "0000000" ), v.t2'length); + v.t3 := resize(signed( a.t3 & "0000000" ), v.t3'length); + RETURN v; + END FUNCTION; + + -- Nearest neighbor polyphase ceoffs + FUNCTION poly_nn(frac : unsigned(FRAC-1 DOWNTO 0)) RETURN poly_phase_t IS + VARIABLE v : poly_phase_t; + BEGIN + IF frac(frac'left)='0' THEN + v := (t1=>to_signed(256, 10), OTHERS=>to_signed(0, 10)); + ELSE + v := (t2=>to_signed(256, 10), OTHERS=>to_signed(0, 10)); + END IF; + RETURN v; + END FUNCTION; + + + FUNCTION poly_lum(p : type_pix) RETURN unsigned IS + VARIABLE v : UNSIGNED(7 DOWNTO 0); + BEGIN + -- 0.375 R + 0.5 G + 0.125 B + --v := ("00" & p.r(7 DOWNTO 2)) + ("000" & p.r(7 DOWNTO 3)) + ("0" & p.g(7 DOWNTO 1)) + ("000" & p.b(7 DOWNTO 3)); + + -- 0.25 R + 0.5 G + 0.25 B + -- v := ( ("00" & p.r(7 DOWNTO 2)) + ("0" & p.g(7 DOWNTO 1)) + ("00" & p.b(7 DOWNTO 2)) ); + + -- Just OR them all together + --v := (p.r OR p.g OR p.b); + + -- Maximum + IF p.r > p.g THEN + v := p.r; + ELSE + v := p.g; + END IF; + + IF p.b > v THEN + v := p.b; + END IF; + + -- 100% + -- v := "1111111"; + + RETURN v; + END FUNCTION; BEGIN - - ----------------------------------------------------------------------------- - i_reset_na<='0' WHEN reset_na='0' ELSE '1' WHEN rising_edge(i_clk); - o_reset_na<='0' WHEN reset_na='0' ELSE '1' WHEN rising_edge(o_clk); - avl_reset_na<='0' WHEN reset_na='0' ELSE '1' WHEN rising_edge(avl_clk); - - ----------------------------------------------------------------------------- - -- Input pixels FIFO and shreg - InAT:PROCESS(i_clk,i_reset_na) IS - CONSTANT Z : unsigned(FRAC-1 DOWNTO 0):=(OTHERS =>'0'); - VARIABLE frac_v : unsigned(FRAC-1 DOWNTO 0); - VARIABLE div_v : unsigned(16 DOWNTO 0); - VARIABLE dir_v : unsigned(11 DOWNTO 0); - VARIABLE bil_t_v : type_bil_t; - BEGIN - IF i_reset_na='0' THEN - i_write<='0'; - - ELSIF rising_edge(i_clk) THEN - i_push<='0'; - i_pushhead<='0'; - i_eol<='0'; -- End Of Line - i_freeze <=freeze; -- - i_iauto<=iauto; -- - i_wreq<='0'; - i_wr<='0'; - - ------------------------------------------------------ - i_head(127 DOWNTO 120)<=x"01"; -- Header type - i_head(119 DOWNTO 112)<="000000" & i_format; -- Header format - i_head(111 DOWNTO 96)<="0000" & to_unsigned(N_BURST,12); -- Header size - i_head(95 DOWNTO 80)<=x"0000"; -- Attributes. TBD - i_head(80)<=i_inter; - i_head(81)<=i_flm; - i_head(82)<=i_hdown; - i_head(83)<=i_vdown; - i_head(84)<=i_mode(3); - i_head(87 DOWNTO 85)<=i_count; - i_head(79 DOWNTO 64)<="0000" & to_unsigned(i_hrsize,12); -- Image width - i_head(63 DOWNTO 48)<="0000" & to_unsigned(i_vrsize,12); -- Image height - i_head(47 DOWNTO 32)<= - to_unsigned(N_BURST * i_hburst,16); -- Line Length. Bytes - i_head(31 DOWNTO 16)<="0000" & to_unsigned(i_ohsize,12); - i_head(15 DOWNTO 0) <="0000" & to_unsigned(i_ovsize,12); - - ------------------------------------------------------ - i_ppix<=(i_r,i_g,i_b); - i_pvs<=i_vs; - i_pfl<=i_fl; - i_pde<=i_de; - i_pce<=i_ce; - - ------------------------------------------------------ - IF i_pce='1' THEN - ---------------------------------------------------- - i_vs_pre<=i_pvs; - i_de_pre<=i_pde; - i_fl_pre<=i_pfl; - - ---------------------------------------------------- - -- Detect interlaced video - IF NOT INTER THEN - i_intercnt<=0; - ELSIF i_pfl/=i_fl_pre THEN - i_intercnt<=3; - ELSIF i_pvs='1' AND i_vs_pre='0' AND i_intercnt>0 THEN - i_intercnt<=i_intercnt-1; - END IF; - i_inter<=to_std_logic(i_intercnt>0); - - ---------------------------------------------------- - IF i_pvs='1' AND i_vs_pre='0' THEN - i_sof<='1'; - END IF; - - IF i_pde='1' AND i_de_pre='0' THEN - i_flm<=i_pfl; - END IF; - - IF i_pde='1' AND i_sof='1' THEN - i_sof<='0'; - i_vcpt<=0; - IF i_inter='1' AND i_flm='0' AND i_half='0' AND INTER THEN - i_line<='1'; - i_adrsi<=to_unsigned(N_BURST * i_hburst,32) + - to_unsigned(N_BURST * to_integer( - unsigned'("00") & to_std_logic(HEADER)),32); - ELSE - i_line<='0'; - i_adrsi<=to_unsigned(N_BURST * to_integer( - unsigned'("00") & to_std_logic(HEADER)),32); - END IF; - END IF; - - i_ven<=to_std_logic(i_hcpt>=i_hmin AND i_hcpt<=i_hmax AND - i_vcpt>=i_vmin AND i_vcpt<=i_vmax); - - -- Detects end of frame for triple buffering. - i_endframe0<=i_vs AND (NOT i_inter OR i_flm); - i_endframe1<=i_vs AND (NOT i_inter OR NOT i_flm); - - i_vss<=to_std_logic(i_vcpt>=i_vmin AND i_vcpt<=i_vmax); - - ---------------------------------------------------- - IF i_pde='1' AND i_de_pre='0' THEN - i_vimax<=i_vcpt; - i_hcpt<=0; - ELSE - i_hcpt<=(i_hcpt+1) MOD 4096; - END IF; - - IF i_pde='0' AND i_de_pre='1' THEN - i_himax<=i_hcpt; - END IF; - - IF i_iauto='1' THEN - -- Auto-size - i_hmin<=0; - i_hmax<=i_himax; - i_vmin<=0; - IF i_pvs='1' AND i_vs_pre='0' AND (i_inter='0' OR i_pfl='0') THEN - i_vmax<=i_vimax; - END IF; - ELSE - -- Forced image - i_hmin<=himin; -- - i_hmax<=himax; -- - i_vmin<=vimin; -- - IF i_pvs='1' AND i_vs_pre='0' AND (i_inter='0' OR i_pfl='0') THEN - i_vmax<=vimax; -- - END IF; - END IF; - - IF i_pvs='1' AND i_vs_pre='0' AND (i_inter='0' OR i_pfl='0') THEN - i_vdmax<=i_vimax; - END IF; - i_hdmax<=i_himax; - - IF i_format="00" OR i_format="11" THEN -- 16bpp - i_hburst<=(i_hrsize*2 + N_BURST - 1) / N_BURST; - ELSIF i_format="01" THEN -- 24bpp - i_hburst<=(i_hrsize*3 + N_BURST - 1) / N_BURST; - ELSE -- 32bpp - i_hburst<=(i_hrsize*4 + N_BURST - 1) / N_BURST; - END IF; - ---------------------------------------------------- - i_mode<=mode; -- - i_format<=format; -- - - -- Downscaling : Nearest or bilinear - i_bil<=to_std_logic(i_mode(2 DOWNTO 0)/="000" AND DOWNSCALE); - - i_hdown<=to_std_logic(i_hsize>i_ohsize AND DOWNSCALE); --H downscale - i_vdown<=to_std_logic(i_vsize>i_ovsize AND DOWNSCALE); --V downscale - - ---------------------------------------------------- - i_hsize <=(4096+i_hmax-i_hmin+1) MOD 4096; - i_vmaxmin<=(4096+i_vmax-i_vmin+1) MOD 4096; - - IF i_inter='0' THEN - -- Non interlaced - i_vsize<=i_vmaxmin; - i_half <='0'; - ELSIF i_ovsize<2*i_vmaxmin THEN - -- Interlaced, but downscaling, use only half frames - i_vsize<=i_vmaxmin; - i_half <='1'; - ELSE - -- Interlaced : Double image height - i_vsize<=2*i_vmaxmin; - i_half <='0'; - END IF; - - i_ohsize<=o_hsize; -- - i_ovsize<=o_vsize; -- - - ---------------------------------------------------- - -- Downscaling vertical - i_divstart<='0'; - IF i_de_delay=16 THEN - IF (i_vacc + 2*i_ovsize) < 2*i_vsize THEN - i_vacc<=(i_vacc + 2*i_ovsize) MOD 8192; - i_vnp<='0'; - ELSE - i_vacc<=(i_vacc + 2*i_ovsize - 2*i_vsize + 8192) MOD 8192; - i_vnp<='1'; - END IF; - i_divstart<='1'; - - IF i_vcpt=i_vmin THEN - i_vacc<=(i_vsize - i_ovsize + 8192) MOD 8192; - i_vnp<='1'; -- - END IF; - END IF; - - IF i_vdown='0' THEN - i_vnp<='1'; - END IF; - - -- Downscaling horizontal - IF i_ven='1' THEN - IF i_hacc + 2*i_ohsize < 2*i_hsize THEN - i_hacc<=(i_hacc + 2*i_ohsize) MOD 8192; - i_hnp<='0'; -- Skip. pix. - ELSE - i_hacc<=(i_hacc + 2*i_ohsize - 2*i_hsize + 8192) MOD 8192; - i_hnp<='1'; - END IF; - END IF; - IF i_hdown='0' THEN - i_hnp<='1'; - END IF; - - ---------------------------------------------------- - -- Downscaling interpolation - i_hpixp<=i_ppix; - i_hpix0<=i_hpixp; - i_hpix1<=i_hpix0; - i_hpix2<=i_hpix1; - i_hpix3<=i_hpix2; - i_hpix4<=i_hpix3; - - i_hnp1<=i_hnp; i_hnp2<=i_hnp1; i_hnp3<=i_hnp2; i_hnp4<=i_hnp3; - i_ven1<=i_ven; i_ven2<=i_ven1; i_ven3<=i_ven2; i_ven4<=i_ven3; - i_ven5<=i_ven4; i_ven6<=i_ven5; - - -- C1 : DIV 1. Pipelined 4 bits non-restoring divider - dir_v:=x"000"; - div_v:=to_unsigned(i_hacc * 16,17); - - div_v:=div_v-to_unsigned(i_hsize*16,17); - dir_v(11):=NOT div_v(16); - IF div_v(16)='0' THEN - div_v:=div_v-to_unsigned(i_hsize*8,17); - ELSE - div_v:=div_v+to_unsigned(i_hsize*8,17); - END IF; - dir_v(10):=NOT div_v(16); - i_div<=div_v; - i_dir<=dir_v; - - -- C2 : DIV 2. - div_v:=i_div; - dir_v:=i_dir; - IF div_v(16)='0' THEN - div_v:=div_v-to_unsigned(i_hsize*4,17); - ELSE - div_v:=div_v+to_unsigned(i_hsize*4,17); - END IF; - dir_v(9):=NOT div_v(16); - IF div_v(16)='0' THEN - div_v:=div_v-to_unsigned(i_hsize*2,17); - ELSE - div_v:=div_v+to_unsigned(i_hsize*2,17); - END IF; - dir_v(8):=NOT div_v(16); - i_h_frac<=dir_v; - - -- C4 : Horizontal Bilinear - IF i_bil='0' THEN - frac_v:=near_frac(i_h_frac); - ELSE - frac_v:=bil_frac(i_h_frac); - END IF; - - i_h_bil_t<=bil_calc(frac_v,(i_hpix2,i_hpix2,i_hpix3,i_hpix3)); - i_hpix.r<=bound(i_h_bil_t.r,8+FRAC); - i_hpix.g<=bound(i_h_bil_t.g,8+FRAC); - i_hpix.b<=bound(i_h_bil_t.b,8+FRAC); - - IF i_hdown='0' THEN - i_hpix<=i_hpix4; - END IF; - - -- C5 : Vertical Bilinear - IF i_bil='0' THEN - frac_v:=near_frac(i_v_frac(11 DOWNTO 0)); - ELSE - frac_v:=bil_frac(i_v_frac(11 DOWNTO 0)); - END IF; - - bil_t_v:=bil_calc(frac_v,(i_hpix,i_hpix,i_ldrm,i_ldrm)); - i_pix.r<=bound(bil_t_v.r,8+FRAC); - i_pix.g<=bound(bil_t_v.g,8+FRAC); - i_pix.b<=bound(bil_t_v.b,8+FRAC); - - IF i_vdown='0' THEN - i_pix<=i_hpix; - END IF; - - ---------------------------------------------------- - -- VNP : Vert. downscaling line enable - -- HNP : Horiz. downscaling pix. enable - -- VEN : Enable pixel within displayed window - - IF (i_hnp4='1' AND i_ven6='1') OR i_pushend='1' THEN - i_shift<=shift_ishift(i_shift,i_pix,i_format); - i_dw<=shift_ipack(i_dw,i_acpt,i_shift,i_pix,i_format); - - IF shift_inext(i_acpt,i_format) AND i_vnp='1' THEN - i_push<='1'; - i_pushend<='0'; - END IF; - i_acpt<=(i_acpt+1) MOD 16; - END IF; - - IF i_ven6='1' AND i_ven5='0' AND i_vnp='1' THEN - i_pushend<='1'; - END IF; - i_pushend2<=i_pushend; - - IF i_pushend2='1' AND i_pushend='0' THEN - i_eol<='1'; - END IF; - - IF i_pde='0' AND i_de_pre='1' THEN - i_de_delay<=0; - ELSIF i_de_delay<18 THEN - i_de_delay<=i_de_delay+1; - END IF; - - IF i_de_delay=16 THEN - i_lwad<=0; - i_lrad<=0; - i_vcpt<=i_vcpt+1; - i_hacc<=(i_hsize - i_ohsize + 8192) MOD 8192; - i_hbcpt<=0; - END IF; - IF i_de_delay=17 THEN - i_acpt<=0; - i_wad<=2*BLEN-1; - END IF; - - IF i_pvs='0' AND i_vs_pre='1' THEN - -- Push header - i_pushhead<=to_std_logic(HEADER); - END IF; - - END IF; -- IF i_pce='1' - - ------------------------------------------------------ - -- Push pixels to downscaling line buffer - i_lwr<=i_hnp4 AND i_ven5 AND i_pce; - IF i_lwr='1' THEN - i_lwad<=(i_lwad+1) MOD OHRES; - END IF; - i_ldw<=i_hpix; - - IF i_hnp3='1' AND i_ven4='1' AND i_pce='1' THEN - i_lrad<=(i_lrad+1) MOD OHRES; - END IF; - - ------------------------------------------------------ - -- Write image properties header - i_pushhead2<=i_pushhead; i_pushhead3<=i_pushhead2; - - IF i_pushhead='1' AND i_freeze='0' THEN - i_dw<=i_head(127 DOWNTO 128-N_DW); - i_count<=i_count+1; - i_wr<='1'; - i_wad<=0; - IF N_DW=128 THEN - i_alt<='0'; - i_wreq<=NOT i_freeze; - i_adrs<=(OTHERS =>'0'); - END IF; - END IF; - - IF i_pushhead2='1' AND i_freeze='0' AND N_DW=64 THEN - i_dw<=i_head(N_DW-1 DOWNTO 0); - i_wr<='1'; - i_wad<=1; - i_wreq<=NOT i_freeze; - i_alt<='0'; - i_adrs<=(OTHERS =>'0'); - END IF; - IF i_pushhead3='1' THEN - i_wad<=BLEN-1; - END IF; - - ------------------------------------------------------ - -- Push pixels to DPRAM - IF i_push='1' AND i_freeze='0' THEN - i_wr<='1'; - i_wad<=(i_wad+1) MOD (BLEN*2); - IF (i_wad+1) MOD BLEN=BLEN-1 AND i_hbcpt 12 - IDividers:PROCESS (i_clk,i_reset_na) IS - BEGIN - IF i_reset_na='0' THEN + ----------------------------------------------------------------------------- + i_reset_na<='0' WHEN reset_na='0' ELSE '1' WHEN rising_edge(i_clk); + o_reset_na<='0' WHEN reset_na='0' ELSE '1' WHEN rising_edge(o_clk); + avl_reset_na<='0' WHEN reset_na='0' ELSE '1' WHEN rising_edge(avl_clk); + + ----------------------------------------------------------------------------- + -- Input pixels FIFO and shreg + InAT:PROCESS(i_clk,i_reset_na) IS + CONSTANT Z : unsigned(FRAC-1 DOWNTO 0):=(OTHERS =>'0'); + VARIABLE frac_v : unsigned(FRAC-1 DOWNTO 0); + VARIABLE div_v : unsigned(16 DOWNTO 0); + VARIABLE dir_v : unsigned(11 DOWNTO 0); + VARIABLE bil_t_v : type_bil_t; + BEGIN + IF i_reset_na='0' THEN + i_write<='0'; + + ELSIF rising_edge(i_clk) THEN + i_push<='0'; + i_pushhead<='0'; + i_eol<='0'; -- End Of Line + i_freeze <=freeze; -- + i_iauto<=iauto; -- + i_wreq<='0'; + i_wr<='0'; + + ------------------------------------------------------ + i_head(127 DOWNTO 120)<=x"01"; -- Header type + i_head(119 DOWNTO 112)<="000000" & i_format; -- Header format + i_head(111 DOWNTO 96)<="0000" & to_unsigned(N_BURST,12); -- Header size + i_head(95 DOWNTO 80)<=x"0000"; -- Attributes. TBD + i_head(80)<=i_inter; + i_head(81)<=i_flm; + i_head(82)<=i_hdown; + i_head(83)<=i_vdown; + i_head(84)<=i_mode(3); + i_head(87 DOWNTO 85)<=i_count; + i_head(79 DOWNTO 64)<="0000" & to_unsigned(i_hrsize,12); -- Image width + i_head(63 DOWNTO 48)<="0000" & to_unsigned(i_vrsize,12); -- Image height + i_head(47 DOWNTO 32)<= to_unsigned(N_BURST * i_hburst,16); -- Line Length. Bytes + i_head(31 DOWNTO 16)<="0000" & to_unsigned(i_ohsize,12); + i_head(15 DOWNTO 0) <="0000" & to_unsigned(i_ovsize,12); + + ------------------------------------------------------ + i_ppix<=(i_r,i_g,i_b); + i_pvs<=i_vs; + i_pfl<=i_fl; + i_pde<=i_de; + i_pce<=i_ce; + + ------------------------------------------------------ + IF i_pce='1' THEN + ---------------------------------------------------- + i_vs_pre<=i_pvs; + i_de_pre<=i_pde; + i_fl_pre<=i_pfl; + + ---------------------------------------------------- + -- Detect interlaced video + IF NOT INTER THEN + i_intercnt<=0; + ELSIF i_pfl/=i_fl_pre THEN + i_intercnt<=3; + ELSIF i_pvs='1' AND i_vs_pre='0' AND i_intercnt>0 THEN + i_intercnt<=i_intercnt-1; + END IF; + i_inter<=to_std_logic(i_intercnt>0); + + ---------------------------------------------------- + IF i_pvs='1' AND i_vs_pre='0' THEN + i_sof<='1'; + END IF; + + IF i_pde='1' AND i_de_pre='0' THEN + i_flm<=i_pfl; + END IF; + + IF i_pde='1' AND i_sof='1' THEN + i_sof<='0'; + i_vcpt<=0; + IF i_inter='1' AND i_flm='0' AND i_half='0' AND INTER THEN + i_line<='1'; + i_adrsi<=to_unsigned(N_BURST * i_hburst,32) + + to_unsigned(N_BURST * to_integer( + unsigned'("00") & to_std_logic(HEADER)),32); + ELSE + i_line<='0'; + i_adrsi<=to_unsigned(N_BURST * to_integer( + unsigned'("00") & to_std_logic(HEADER)),32); + END IF; + END IF; + + i_ven<=to_std_logic(i_hcpt>=i_hmin AND i_hcpt<=i_hmax AND + i_vcpt>=i_vmin AND i_vcpt<=i_vmax); + + -- Detects end of frame for triple buffering. + i_endframe0<=i_vs AND (NOT i_inter OR i_flm); + i_endframe1<=i_vs AND (NOT i_inter OR NOT i_flm); + + i_vss<=to_std_logic(i_vcpt>=i_vmin AND i_vcpt<=i_vmax); + + ---------------------------------------------------- + IF i_pde='1' AND i_de_pre='0' THEN + i_vimax<=i_vcpt; + i_hcpt<=0; + ELSE + i_hcpt<=(i_hcpt+1) MOD 4096; + END IF; + + IF i_pde='0' AND i_de_pre='1' THEN + i_himax<=i_hcpt; + END IF; + + IF i_iauto='1' THEN + -- Auto-size + i_hmin<=0; + i_hmax<=i_himax; + i_vmin<=0; + IF i_pvs='1' AND i_vs_pre='0' AND (i_inter='0' OR i_pfl='0') THEN + i_vmax<=i_vimax; + END IF; + ELSE + -- Forced image + i_hmin<=himin; -- + i_hmax<=himax; -- + i_vmin<=vimin; -- + IF i_pvs='1' AND i_vs_pre='0' AND (i_inter='0' OR i_pfl='0') THEN + i_vmax<=vimax; -- + END IF; + END IF; + + IF i_pvs='1' AND i_vs_pre='0' AND (i_inter='0' OR i_pfl='0') THEN + i_vdmax<=i_vimax; + END IF; + i_hdmax<=i_himax; + + IF i_format="00" OR i_format="11" THEN -- 16bpp + i_hburst<=(i_hrsize*2 + N_BURST - 1) / N_BURST; + ELSIF i_format="01" THEN -- 24bpp + i_hburst<=(i_hrsize*3 + N_BURST - 1) / N_BURST; + ELSE -- 32bpp + i_hburst<=(i_hrsize*4 + N_BURST - 1) / N_BURST; + END IF; + ---------------------------------------------------- + i_mode<=mode; -- + i_format<=format; -- + + -- Downscaling : Nearest or bilinear + i_bil<=to_std_logic(i_mode(2 DOWNTO 0)/="000" AND NOT DOWNSCALE_NN); + + i_hdown<=to_std_logic(i_hsize>i_ohsize AND DOWNSCALE); --H downscale + i_vdown<=to_std_logic(i_vsize>i_ovsize AND DOWNSCALE); --V downscale + + ---------------------------------------------------- + i_hsize <=(4096+i_hmax-i_hmin+1) MOD 4096; + i_vmaxmin<=(4096+i_vmax-i_vmin+1) MOD 4096; + + IF i_inter='0' THEN + -- Non interlaced + i_vsize<=i_vmaxmin; + i_half <='0'; + ELSIF i_ovsize<2*i_vmaxmin THEN + -- Interlaced, but downscaling, use only half frames + i_vsize<=i_vmaxmin; + i_half <='1'; + ELSE + -- Interlaced : Double image height + i_vsize<=2*i_vmaxmin; + i_half <='0'; + END IF; + + i_ohsize<=o_hsize; -- + i_ovsize<=o_vsize; -- + + ---------------------------------------------------- + -- Downscaling vertical + i_divstart<='0'; + IF i_de_delay=16 THEN + IF (i_vacc + 2*i_ovsize) < 2*i_vsize THEN + i_vacc<=(i_vacc + 2*i_ovsize) MOD 8192; + i_vnp<='0'; + ELSE + i_vacc<=(i_vacc + 2*i_ovsize - 2*i_vsize + 8192) MOD 8192; + i_vnp<='1'; + END IF; + i_divstart<='1'; + + IF i_vcpt=i_vmin THEN + i_vacc<=(i_vsize - i_ovsize + 8192) MOD 8192; + i_vnp<='1'; -- + END IF; + END IF; + + IF i_vdown='0' THEN + i_vnp<='1'; + END IF; + + -- Downscaling horizontal + IF i_ven='1' THEN + IF i_hacc + 2*i_ohsize < 2*i_hsize THEN + i_hacc<=(i_hacc + 2*i_ohsize) MOD 8192; + i_hnp<='0'; -- Skip. pix. + ELSE + i_hacc<=(i_hacc + 2*i_ohsize - 2*i_hsize + 8192) MOD 8192; + i_hnp<='1'; + END IF; + END IF; + IF i_hdown='0' THEN + i_hnp<='1'; + END IF; + + ---------------------------------------------------- + -- Downscaling interpolation + i_hpixp<=i_ppix; + i_hpix0<=i_hpixp; + i_hpix1<=i_hpix0; + i_hpix2<=i_hpix1; + i_hpix3<=i_hpix2; + i_hpix4<=i_hpix3; + + i_hnp1<=i_hnp; i_hnp2<=i_hnp1; i_hnp3<=i_hnp2; i_hnp4<=i_hnp3; + i_ven1<=i_ven; i_ven2<=i_ven1; i_ven3<=i_ven2; i_ven4<=i_ven3; + i_ven5<=i_ven4; i_ven6<=i_ven5; + + -- C1 : DIV 1. Pipelined 4 bits non-restoring divider + dir_v:=x"000"; + div_v:=to_unsigned(i_hacc * 16,17); + + div_v:=div_v-to_unsigned(i_hsize*16,17); + dir_v(11):=NOT div_v(16); + IF div_v(16)='0' THEN + div_v:=div_v-to_unsigned(i_hsize*8,17); + ELSE + div_v:=div_v+to_unsigned(i_hsize*8,17); + END IF; + dir_v(10):=NOT div_v(16); + i_div<=div_v; + i_dir<=dir_v; + + -- C2 : DIV 2. + div_v:=i_div; + dir_v:=i_dir; + IF div_v(16)='0' THEN + div_v:=div_v-to_unsigned(i_hsize*4,17); + ELSE + div_v:=div_v+to_unsigned(i_hsize*4,17); + END IF; + dir_v(9):=NOT div_v(16); + + IF div_v(16)='0' THEN + div_v:=div_v-to_unsigned(i_hsize*2,17); + ELSE + div_v:=div_v+to_unsigned(i_hsize*2,17); + END IF; + dir_v(8):=NOT div_v(16); + i_h_frac<=dir_v; + + -- C4 : Horizontal Bilinear + IF i_bil='0' THEN + frac_v:=near_frac(i_h_frac); + i_h_bil_t<=near_calc(frac_v,(i_hpix2,i_hpix2,i_hpix3,i_hpix3)); + ELSE + frac_v:=bil_frac(i_h_frac); + i_h_bil_t<=bil_calc(frac_v,(i_hpix2,i_hpix2,i_hpix3,i_hpix3)); + END IF; + + i_hpix.r<=bound(i_h_bil_t.r,8+FRAC); + i_hpix.g<=bound(i_h_bil_t.g,8+FRAC); + i_hpix.b<=bound(i_h_bil_t.b,8+FRAC); + + IF i_hdown='0' THEN + i_hpix<=i_hpix4; + END IF; + + -- C5 : Vertical Bilinear + IF i_bil='0' THEN + frac_v:=near_frac(i_v_frac(11 DOWNTO 0)); + bil_t_v:=near_calc(frac_v,(i_hpix,i_hpix,i_ldrm,i_ldrm)); + ELSE + frac_v:=bil_frac(i_v_frac(11 DOWNTO 0)); + bil_t_v:=bil_calc(frac_v,(i_hpix,i_hpix,i_ldrm,i_ldrm)); + END IF; + + i_pix.r<=bound(bil_t_v.r,8+FRAC); + i_pix.g<=bound(bil_t_v.g,8+FRAC); + i_pix.b<=bound(bil_t_v.b,8+FRAC); + + IF i_vdown='0' THEN + i_pix<=i_hpix; + END IF; + + ---------------------------------------------------- + -- VNP : Vert. downscaling line enable + -- HNP : Horiz. downscaling pix. enable + -- VEN : Enable pixel within displayed window + + IF (i_hnp4='1' AND i_ven6='1') OR i_pushend='1' THEN + i_shift<=shift_ishift(i_shift,i_pix,i_format); + i_dw<=shift_ipack(i_dw,i_acpt,i_shift,i_pix,i_format); + + IF shift_inext(i_acpt,i_format) AND i_vnp='1' THEN + i_push<='1'; + i_pushend<='0'; + END IF; + i_acpt<=(i_acpt+1) MOD 16; + END IF; + + IF i_ven6='1' AND i_ven5='0' AND i_vnp='1' THEN + i_pushend<='1'; + END IF; + i_pushend2<=i_pushend; + + IF i_pushend2='1' AND i_pushend='0' THEN + i_eol<='1'; + END IF; + + IF i_pde='0' AND i_de_pre='1' THEN + i_de_delay<=0; + ELSIF i_de_delay<18 THEN + i_de_delay<=i_de_delay+1; + END IF; + + IF i_de_delay=16 THEN + i_lwad<=0; + i_lrad<=0; + i_vcpt<=i_vcpt+1; + i_hacc<=(i_hsize - i_ohsize + 8192) MOD 8192; + i_hbcpt<=0; + END IF; + IF i_de_delay=17 THEN + i_acpt<=0; + i_wad<=2*BLEN-1; + END IF; + + IF i_pvs='0' AND i_vs_pre='1' THEN + -- Push header + i_pushhead<=to_std_logic(HEADER); + END IF; + + END IF; -- IF i_pce='1' + + ------------------------------------------------------ + -- Push pixels to downscaling line buffer + i_lwr<=i_hnp4 AND i_ven5 AND i_pce; + IF i_lwr='1' THEN + i_lwad<=(i_lwad+1) MOD OHRES; + END IF; + i_ldw<=i_hpix; + + IF i_hnp3='1' AND i_ven4='1' AND i_pce='1' THEN + i_lrad<=(i_lrad+1) MOD OHRES; + END IF; + + ------------------------------------------------------ + -- Write image properties header + i_pushhead2<=i_pushhead; i_pushhead3<=i_pushhead2; + + IF i_pushhead='1' AND i_freeze='0' THEN + i_dw<=i_head(127 DOWNTO 128-N_DW); + i_count<=i_count+1; + i_wr<='1'; + i_wad<=0; + IF N_DW=128 THEN + i_alt<='0'; + i_wreq<=NOT i_freeze; + i_adrs<=(OTHERS =>'0'); + END IF; + END IF; + + IF i_pushhead2='1' AND i_freeze='0' AND N_DW=64 THEN + i_dw<=i_head(N_DW-1 DOWNTO 0); + i_wr<='1'; + i_wad<=1; + i_wreq<=NOT i_freeze; + i_alt<='0'; + i_adrs<=(OTHERS =>'0'); + END IF; + IF i_pushhead3='1' THEN + i_wad<=BLEN-1; + END IF; + + ------------------------------------------------------ + -- Push pixels to DPRAM + IF i_push='1' AND i_freeze='0' THEN + i_wr<='1'; + i_wad<=(i_wad+1) MOD (BLEN*2); + IF (i_wad+1) MOD BLEN=BLEN-1 AND i_hbcpt 12 + IDividers:PROCESS (i_clk,i_reset_na) IS + BEGIN + IF i_reset_na='0' THEN --pragma synthesis_off - i_v_frac<=x"000"; + i_v_frac<=x"000"; --pragma synthesis_on - NULL; - ELSIF rising_edge(i_clk) THEN - i_vdivi<=to_unsigned(2*i_vsize,13); - i_vdivr<=to_unsigned(i_vacc*4096,25); - - ------------------------------------------------------ - IF i_divstart='1' THEN - i_divcpt<=0; - i_divrun<='1'; - - ELSIF i_divrun='1' THEN - ---------------------------------------------------- - IF i_divcpt=6 THEN - i_divrun<='0'; - i_v_frac<=i_vdivr(4 DOWNTO 0) & NOT i_vdivr(24) & "000000"; - ELSE - i_divcpt<=i_divcpt+1; - END IF; - - IF i_vdivr(24)='0' THEN - i_vdivr(24 DOWNTO 12)<=i_vdivr(23 DOWNTO 11) - i_vdivi; - ELSE - i_vdivr(24 DOWNTO 12)<=i_vdivr(23 DOWNTO 11) + i_vdivi; - END IF; - i_vdivr(11 DOWNTO 0)<=i_vdivr(10 DOWNTO 0) & NOT i_vdivr(24); - - ---------------------------------------------------- - END IF; - END IF; - END PROCESS IDividers; + NULL; + ELSIF rising_edge(i_clk) THEN + i_vdivi<=to_unsigned(2*i_vsize,13); + i_vdivr<=to_unsigned(i_vacc*4096,25); - ----------------------------------------------------------------------------- - -- DPRAM Input. Double buffer for RAM bursts. - PROCESS (i_clk) IS - BEGIN - IF rising_edge(i_clk) THEN - IF i_wr='1' THEN - i_dpram(i_wad)<=i_dw; - END IF; - END IF; - END PROCESS; - - avl_dr<=i_dpram(avl_rad_c) WHEN rising_edge(avl_clk); - - -- Line buffer for downscaling with interpolation - DownLine:IF DOWNSCALE GENERATE - ILBUF:PROCESS(i_clk) IS - BEGIN - IF rising_edge(i_clk) THEN - IF i_lwr='1' THEN - i_mem(i_lwad MOD IHRES)<=i_ldw; - END IF; - IF i_pce='1' THEN - i_ldrm<=i_mem(i_lrad MOD IHRES); - END IF; - END IF; - END PROCESS ILBUF; - END GENERATE DownLine; - - ----------------------------------------------------------------------------- - -- AVALON interface - Avaloir:PROCESS(avl_clk,avl_reset_na) IS - VARIABLE adr_v : unsigned(31 DOWNTO 0); - BEGIN - IF avl_reset_na='0' THEN - avl_state<=sIDLE; - avl_write_sr<='0'; - avl_read_sr<='0'; - avl_readdataack<='0'; - avl_readack<='0'; - - ELSIF rising_edge(avl_clk) THEN - ---------------------------------- - avl_write_sync<=i_write; -- - avl_write_sync2<=avl_write_sync; - avl_write_pulse<=avl_write_sync XOR avl_write_sync2; - IF avl_write_pulse='1' THEN - avl_wadrs <=i_wadrs AND (RAMSIZE - 1); -- - avl_wline <=i_wline; -- - avl_walt <=i_walt; -- - END IF; - - ---------------------------------- - avl_read_sync<=o_read; -- - avl_read_sync2<=avl_read_sync; - avl_read_pulse<=avl_read_sync XOR avl_read_sync2; - avl_radrs <=o_adrs AND (RAMSIZE - 1); -- - avl_rline <=o_rline; -- - - -------------------------------------------- - avl_o_vs_sync<=o_vsv(0); -- - avl_o_vs<=avl_o_vs_sync; - - avl_fb_ena<=o_fb_ena; -- - IF avl_fb_ena='0' THEN - IF HEADER THEN - avl_o_offset0<=buf_offset(o_obuf0,RAMBASE,RAMSIZE) + N_BURST; -- - avl_o_offset1<=buf_offset(o_obuf1,RAMBASE,RAMSIZE) + N_BURST; -- - ELSE - avl_o_offset0<=buf_offset(o_obuf0,RAMBASE,RAMSIZE); -- - avl_o_offset1<=buf_offset(o_obuf1,RAMBASE,RAMSIZE); -- - END IF; - ELSIF avl_o_vs_sync='0' AND avl_o_vs='1' THEN - -- Copy framebuffer base address at VS falling edge - avl_o_offset0<=o_fb_base; -- - avl_o_offset1<=o_fb_base; -- - END IF; - - avl_i_offset0<=buf_offset(o_ibuf0,RAMBASE,RAMSIZE); -- - avl_i_offset1<=buf_offset(o_ibuf1,RAMBASE,RAMSIZE); -- - - -------------------------------------------- - avl_dw<=swap(unsigned(avl_readdata)); - avl_read_i<='0'; - avl_write_i<='0'; - - avl_write_sr<=(avl_write_sr OR avl_write_pulse) AND NOT avl_write_clr; - avl_read_sr <=(avl_read_sr OR avl_read_pulse) AND NOT avl_read_clr; - avl_write_clr<='0'; - avl_read_clr <='0'; - - avl_rad<=avl_rad_c; - - -------------------------------------------- - CASE avl_state IS - WHEN sIDLE => - IF avl_write_sr='1' THEN - avl_state<=sWRITE; - avl_write_clr<='1'; - IF avl_walt='0' THEN - avl_rad<=0; - ELSE - avl_rad<=BLEN; - END IF; - IF avl_wline='0' THEN - avl_address<=std_logic_vector( - avl_wadrs(N_AW+NB_LA-1 DOWNTO NB_LA) + - avl_i_offset0(N_AW+NB_LA-1 DOWNTO NB_LA)); - ELSE - avl_address<=std_logic_vector( - avl_wadrs(N_AW+NB_LA-1 DOWNTO NB_LA) + - avl_i_offset1(N_AW+NB_LA-1 DOWNTO NB_LA)); - END IF; - ELSIF avl_read_sr='1' THEN - avl_state<=sREAD; - avl_read_clr<='1'; - END IF; - - WHEN sWRITE => - avl_write_i<='1'; - IF avl_write_i='1' AND avl_waitrequest='0' THEN - IF (avl_rad MOD BLEN)=BLEN-1 THEN - avl_write_i<='0'; - avl_state<=sIDLE; - END IF; - END IF; - - WHEN sREAD => - IF avl_rline='0' THEN - adr_v:=avl_radrs + avl_o_offset0; - ELSE - adr_v:=avl_radrs + avl_o_offset1; - END IF; - avl_address<=std_logic_vector(adr_v(N_AW+NB_LA-1 DOWNTO NB_LA)); - - avl_read_i<='1'; - IF avl_read_i='1' AND avl_waitrequest='0' THEN - avl_state<=sIDLE; - avl_read_i<='0'; - avl_readack<=NOT avl_readack; - END IF; - END CASE; - - -------------------------------------------- - -- Pipelined data read - avl_wr<='0'; - IF avl_readdatavalid='1' THEN - avl_wr<='1'; - avl_wad<=(avl_wad+1) MOD (2*BLEN); - IF (avl_wad MOD BLEN)=BLEN-2 THEN - avl_readdataack<=NOT avl_readdataack; - END IF; - END IF; + ------------------------------------------------------ + IF i_divstart='1' THEN + i_divcpt<=0; + i_divrun<='1'; - IF avl_o_vs_sync='0' AND avl_o_vs='1' THEN - avl_wad<=2*BLEN-1; - END IF; - - -------------------------------------------- - END IF; - END PROCESS Avaloir; - - avl_read<=avl_read_i; - avl_write<=avl_write_i; - avl_writedata<=std_logic_vector(swap(avl_dr)); - avl_burstcount<=std_logic_vector(to_unsigned(BLEN,8)); - avl_byteenable<=(OTHERS =>'1'); - - avl_rad_c<=(avl_rad+1) MOD (2*BLEN) - WHEN avl_write_i='1' AND avl_waitrequest='0' ELSE avl_rad; - - ----------------------------------------------------------------------------- - -- DPRAM Output. Double buffer for RAM bursts. - PROCESS (avl_clk) IS - BEGIN - IF rising_edge(avl_clk) THEN - IF avl_wr='1' THEN - o_dpram(avl_wad)<=avl_dw; - END IF; - END IF; - END PROCESS; - - o_dr<=o_dpram(o_ad3) WHEN rising_edge(o_clk); - - ----------------------------------------------------------------------------- - -- Output Vertical Divider - -- Vfrac = Vacc / Vsize - ODivider:PROCESS (o_clk,o_reset_na) IS - BEGIN - IF o_reset_na='0' THEN + ELSIF i_divrun='1' THEN + ---------------------------------------------------- + IF i_divcpt=6 THEN + i_divrun<='0'; + i_v_frac<=i_vdivr(4 DOWNTO 0) & NOT i_vdivr(24) & "000000"; + ELSE + i_divcpt<=i_divcpt+1; + END IF; + + IF i_vdivr(24)='0' THEN + i_vdivr(24 DOWNTO 12)<=i_vdivr(23 DOWNTO 11) - i_vdivi; + ELSE + i_vdivr(24 DOWNTO 12)<=i_vdivr(23 DOWNTO 11) + i_vdivi; + END IF; + i_vdivr(11 DOWNTO 0)<=i_vdivr(10 DOWNTO 0) & NOT i_vdivr(24); + + ---------------------------------------------------- + END IF; + END IF; + END PROCESS IDividers; + + ----------------------------------------------------------------------------- + -- DPRAM Input. Double buffer for RAM bursts. + PROCESS (i_clk) IS + BEGIN + IF rising_edge(i_clk) THEN + IF i_wr='1' THEN + i_dpram(i_wad)<=i_dw; + END IF; + END IF; + END PROCESS; + + avl_dr<=i_dpram(avl_rad_c) WHEN rising_edge(avl_clk); + + -- Line buffer for downscaling with interpolation + DownLine:IF DOWNSCALE GENERATE + ILBUF:PROCESS(i_clk) IS + BEGIN + IF rising_edge(i_clk) THEN + IF i_lwr='1' THEN + i_mem(i_lwad MOD IHRES)<=i_ldw; + END IF; + IF i_pce='1' THEN + i_ldrm<=i_mem(i_lrad MOD IHRES); + END IF; + END IF; + END PROCESS ILBUF; + END GENERATE DownLine; + + ----------------------------------------------------------------------------- + -- AVALON interface + Avaloir:PROCESS(avl_clk,avl_reset_na) IS + VARIABLE adr_v : unsigned(31 DOWNTO 0); + BEGIN + IF avl_reset_na='0' THEN + avl_state<=sIDLE; + avl_write_sr<='0'; + avl_read_sr<='0'; + avl_readdataack<='0'; + avl_readack<='0'; + + ELSIF rising_edge(avl_clk) THEN + ---------------------------------- + avl_write_sync<=i_write; -- + avl_write_sync2<=avl_write_sync; + avl_write_pulse<=avl_write_sync XOR avl_write_sync2; + IF avl_write_pulse='1' THEN + avl_wadrs <=i_wadrs AND (RAMSIZE - 1); -- + avl_wline <=i_wline; -- + avl_walt <=i_walt; -- + END IF; + + ---------------------------------- + avl_read_sync<=o_read; -- + avl_read_sync2<=avl_read_sync; + avl_read_pulse<=avl_read_sync XOR avl_read_sync2; + avl_radrs <=o_adrs; -- + avl_rline <=o_rline; -- + + -------------------------------------------- + avl_o_vs_sync<=o_vsv(0); -- + avl_o_vs<=avl_o_vs_sync; + + avl_fb_ena<=o_fb_ena; -- + IF avl_fb_ena='0' THEN + IF HEADER THEN + avl_o_offset0<=buf_offset(o_obuf0,RAMBASE,RAMSIZE) + N_BURST; -- + avl_o_offset1<=buf_offset(o_obuf1,RAMBASE,RAMSIZE) + N_BURST; -- + ELSE + avl_o_offset0<=buf_offset(o_obuf0,RAMBASE,RAMSIZE); -- + avl_o_offset1<=buf_offset(o_obuf1,RAMBASE,RAMSIZE); -- + END IF; + ELSIF avl_o_vs_sync='0' AND avl_o_vs='1' THEN + -- Copy framebuffer base address at VS falling edge + avl_o_offset0<=o_fb_base; -- + avl_o_offset1<=o_fb_base; -- + END IF; + + avl_i_offset0<=buf_offset(o_ibuf0,RAMBASE,RAMSIZE); -- + avl_i_offset1<=buf_offset(o_ibuf1,RAMBASE,RAMSIZE); -- + + -------------------------------------------- + avl_dw<=swap(unsigned(avl_readdata)); + avl_read_i<='0'; + avl_write_i<='0'; + + avl_write_sr<=(avl_write_sr OR avl_write_pulse) AND NOT avl_write_clr; + avl_read_sr <=(avl_read_sr OR avl_read_pulse) AND NOT avl_read_clr; + avl_write_clr<='0'; + avl_read_clr <='0'; + + avl_rad<=avl_rad_c; + + -------------------------------------------- + CASE avl_state IS + WHEN sIDLE => + IF avl_write_sr='1' THEN + avl_state<=sWRITE; + avl_write_clr<='1'; + IF avl_walt='0' THEN + avl_rad<=0; + ELSE + avl_rad<=BLEN; + END IF; + IF avl_wline='0' THEN + avl_address<=std_logic_vector( + avl_wadrs(N_AW+NB_LA-1 DOWNTO NB_LA) + + avl_i_offset0(N_AW+NB_LA-1 DOWNTO NB_LA)); + ELSE + avl_address<=std_logic_vector( + avl_wadrs(N_AW+NB_LA-1 DOWNTO NB_LA) + + avl_i_offset1(N_AW+NB_LA-1 DOWNTO NB_LA)); + END IF; + ELSIF avl_read_sr='1' THEN + avl_state<=sREAD; + avl_read_clr<='1'; + END IF; + + WHEN sWRITE => + avl_write_i<='1'; + IF avl_write_i='1' AND avl_waitrequest='0' THEN + IF (avl_rad MOD BLEN)=BLEN-1 THEN + avl_write_i<='0'; + avl_state<=sIDLE; + END IF; + END IF; + + WHEN sREAD => + IF avl_rline='0' THEN + adr_v:=avl_radrs + avl_o_offset0; + ELSE + adr_v:=avl_radrs + avl_o_offset1; + END IF; + avl_address<=std_logic_vector(adr_v(N_AW+NB_LA-1 DOWNTO NB_LA)); + + avl_read_i<='1'; + IF avl_read_i='1' AND avl_waitrequest='0' THEN + avl_state<=sIDLE; + avl_read_i<='0'; + avl_readack<=NOT avl_readack; + END IF; + END CASE; + + -------------------------------------------- + -- Pipelined data read + avl_wr<='0'; + IF avl_readdatavalid='1' THEN + avl_wr<='1'; + avl_wad<=(avl_wad+1) MOD (2*BLEN); + IF (avl_wad MOD BLEN)=BLEN-2 THEN + avl_readdataack<=NOT avl_readdataack; + END IF; + END IF; + + IF avl_o_vs_sync='0' AND avl_o_vs='1' THEN + avl_wad<=2*BLEN-1; + END IF; + + -------------------------------------------- + END IF; + END PROCESS Avaloir; + + avl_read<=avl_read_i; + avl_write<=avl_write_i; + avl_writedata<=std_logic_vector(swap(avl_dr)); + avl_burstcount<=std_logic_vector(to_unsigned(BLEN,8)); + avl_byteenable<=(OTHERS =>'1'); + + avl_rad_c<=(avl_rad+1) MOD (2*BLEN) + WHEN avl_write_i='1' AND avl_waitrequest='0' ELSE avl_rad; + + ----------------------------------------------------------------------------- + -- DPRAM Output. Double buffer for RAM bursts. + PROCESS (avl_clk) IS + BEGIN + IF rising_edge(avl_clk) THEN + IF avl_wr='1' THEN + o_dpram(avl_wad)<=avl_dw; + END IF; + END IF; + END PROCESS; + + o_dr<=o_dpram(o_ad3) WHEN rising_edge(o_clk); + + ----------------------------------------------------------------------------- + -- Output Vertical Divider + -- Vfrac = Vacc / Vsize + ODivider:PROCESS (o_clk,o_reset_na) IS + BEGIN + IF o_reset_na='0' THEN --pragma synthesis_off - o_vfrac<=x"000"; + o_vfrac<=x"000"; --pragma synthesis_on - ELSIF rising_edge(o_clk) THEN - o_vdivi<=to_unsigned(2*o_vsize,13); - o_vdivr<=to_unsigned(o_vacc*4096,25); - ------------------------------------------------------ - IF o_divstart='1' THEN - o_divcpt<=0; - o_divrun<='1'; - - ELSIF o_divrun='1' THEN - ---------------------------------------------------- - IF o_divcpt=12 THEN - o_divrun<='0'; - o_vfrac<=o_vdivr(10 DOWNTO 0) & NOT o_vdivr(24); - ELSE - o_divcpt<=o_divcpt+1; - END IF; - - IF o_vdivr(24)='0' THEN - o_vdivr(24 DOWNTO 12)<=o_vdivr(23 DOWNTO 11) - o_vdivi; - ELSE - o_vdivr(24 DOWNTO 12)<=o_vdivr(23 DOWNTO 11) + o_vdivi; - END IF; - o_vdivr(11 DOWNTO 0)<=o_vdivr(10 DOWNTO 0) & NOT o_vdivr(24); - ---------------------------------------------------- - END IF; - END IF; - END PROCESS ODivider; - - ----------------------------------------------------------------------------- - Scalaire:PROCESS (o_clk,o_reset_na) IS - VARIABLE lev_inc_v,lev_dec_v : std_logic; - VARIABLE prim_v,last_v,bib_v : std_logic; - VARIABLE shift_v : unsigned(0 TO N_DW+15); - VARIABLE hpix_v : type_pix; - VARIABLE hcarry_v,vcarry_v : boolean; - VARIABLE dif_v : natural RANGE 0 TO 8*OHRES-1; - VARIABLE off_v : natural RANGE 0 TO 15; - BEGIN - IF o_reset_na='0' THEN - o_copy<=sWAIT; - o_state<=sDISP; - o_read_pre<='0'; - o_readlev<=0; - o_copylev<=0; - o_hsp<='0'; - - ELSIF rising_edge(o_clk) THEN - ------------------------------------------------------ - o_mode <=mode; -- ? - o_format <="0001" & format; -- ? - - o_run <=run; -- ? - - o_htotal <=htotal; -- ? - o_hsstart<=hsstart; -- ? - o_hsend <=hsend; -- ? - o_hdisp <=hdisp; -- ? - o_hmin <=hmin; -- ? - o_hmax <=hmax; -- ? - - o_vtotal <=vtotal; -- ? - o_vsstart<=vsstart; -- ? - o_vsend <=vsend; -- ? - o_vdisp <=vdisp; -- ? - o_vmin <=vmin; -- ? - o_vmax <=vmax; -- ? - - o_hsize <=o_hmax - o_hmin + 1; - o_vsize <=o_vmax - o_vmin + 1; - - -------------------------------------------- - -- Triple buffering. - -- For intelaced video, half frames are updated independently - -- Input : Toggle buffer at end of input frame - o_inter <=i_inter; -- - o_iendframe0<=i_endframe0; -- - o_iendframe02<=o_iendframe0; - IF o_iendframe0='1' AND o_iendframe02='0' THEN - o_ibuf0<=buf_next(o_ibuf0,o_obuf0); - o_bufup0<='1'; - END IF; - o_iendframe1<=i_endframe1; -- - o_iendframe12<=o_iendframe1; - IF o_iendframe1='1' AND o_iendframe12='0' THEN - o_ibuf1<=buf_next(o_ibuf1,o_obuf1); - o_bufup1<='1'; - END IF; - -- Output : Change framebuffer, and image properties, at VS falling edge - IF o_vsv(1)='1' AND o_vsv(0)='0' AND o_bufup1='1' THEN - o_obuf1<=buf_next(o_obuf1,o_ibuf1); - o_bufup1<='0'; - o_ihsize<=i_hrsize; -- - o_ivsize<=i_vrsize; -- - o_hdown<=i_hdown; -- - o_vdown<=i_vdown; -- - END IF; - -- Framebuffer mode. - IF o_fb_ena='1' THEN - o_ihsize<=o_fb_hsize; - o_ivsize<=o_fb_vsize; - o_format<=o_fb_format; - o_hdown<='0'; - o_vdown<='0'; - END IF; - - o_ihsize_temp <= o_ihsize * to_integer(o_format(2 DOWNTO 0) - 2); - o_ihsize_temp2 <= (o_ihsize_temp + N_BURST - 1); - o_hburst <= o_ihsize_temp2 / N_BURST; - - IF o_fb_ena='1' AND o_fb_stride /= 0 THEN - o_stride<=o_fb_stride; - ELSE - o_stride<=to_unsigned(o_ihsize_temp2,14); - o_stride(NB_BURST-1 DOWNTO 0)<=(OTHERS =>'0'); - END IF; - - IF o_vsv(1)='1' AND o_vsv(0)='0' AND o_bufup0='1' THEN - o_obuf0<=buf_next(o_obuf0,o_ibuf0); - o_bufup0<='0'; - END IF; - - IF o_inter='0' THEN - o_ibuf1<=o_ibuf0; - o_obuf1<=o_obuf0; - END IF; - - -- Triple buffer disabled - IF o_mode(3)='0' THEN - o_obuf0<=0; - o_obuf1<=0; - o_ibuf0<=0; - o_ibuf1<=0; - END IF; - - ------------------------------------------------------ - o_hmode<=o_mode; - IF o_hdown='1' AND DOWNSCALE THEN - -- Force nearest if downscaling : Downscaled framebuffer - o_hmode(2 DOWNTO 0)<="000"; - END IF; - - o_vmode<=o_mode; - IF o_vdown='1' AND DOWNSCALE THEN - -- Force nearest if downscaling : Downscaled framebuffer - o_vmode(2 DOWNTO 0)<="000"; - END IF; - - ------------------------------------------------------ - -- End DRAM READ - o_readack_sync<=avl_readack; -- - o_readack_sync2<=o_readack_sync; - o_readack<=o_readack_sync XOR o_readack_sync2; - - o_readdataack_sync<=avl_readdataack; -- - o_readdataack_sync2<=o_readdataack_sync; - o_readdataack<=o_readdataack_sync XOR o_readdataack_sync2; - - ------------------------------------------------------ - lev_inc_v:='0'; - lev_dec_v:='0'; - - -- acpt : Pixel position within current data word - -- dcpt : Destination image position - - -- Force preload 2 lines at top of screen - IF o_hsv(0)='1' AND o_hsv(1)='0' THEN - IF o_vcpt_pre3=o_vmin THEN - o_fload<=2; - o_bibu<='0'; - END IF; - o_hsp<='1'; - END IF; - - o_vpe<=to_std_logic(o_vcpt_pre=o_vmin); - o_divstart<='0'; - o_adrsa<='0'; - o_adrsb<=o_adrsa; - - o_vacc_ini<=(o_vsize - o_ivsize + 8192) MOD 8192; - o_hacc_ini<=(o_hsize + o_ihsize + 8192) MOD 8192; - - --Alternate phase - --o_vacc_ini<=o_ivsize; - --o_hacc_ini<=(2*o_hsize - o_ihsize + 8192) MOD 8192; - - CASE o_state IS - -------------------------------------------------- - WHEN sDISP => - IF o_hsp='1' THEN - o_state<=sHSYNC; - o_hsp<='0'; - END IF; - - -------------------------------------------------- - WHEN sHSYNC => - dif_v:=(o_vacc_next - 2*o_vsize + 16384) MOD 16384; - IF dif_v>=8192 THEN - o_vacc <=o_vacc_next; - o_vacc_next<=(o_vacc_next + 2*o_ivsize) MOD 8192; - vcarry_v:=false; - ELSE - o_vacc <=dif_v; - o_vacc_next<=(dif_v + 2*o_ivsize + 8192) MOD 8192; - vcarry_v:=true; - END IF; - o_divstart<='1'; - IF o_vcpt_pre2=o_vmin THEN - o_vacc <=o_vacc_ini; - o_vacc_next<=o_vacc_ini + 2*o_ivsize; - o_vacpt<=x"001"; - vcarry_v:=false; - END IF; - - IF vcarry_v THEN - o_vacpt<=o_vacpt+1; - END IF; - o_hbcpt<=0; -- Clear burst counter on line - IF (o_vpe='1' AND vcarry_v) OR o_fload>0 THEN - o_state<=sREAD; - ELSE - o_state<=sDISP; - END IF; - - WHEN sREAD => - -- Read a block - IF o_readlev<2 AND o_adrsb='1' THEN - lev_inc_v:='1'; - o_read_pre<=NOT o_read_pre; - o_state <=sWAITREAD; - o_bibu<=NOT o_bibu; - END IF; - prim_v:=to_std_logic(o_hbcpt=0); - last_v:=to_std_logic(o_hbcpt=o_hburst-1); - bib_v :=o_bibu; - off_v :=pixoffset(o_adrs + o_fb_base(NB_LA-1 DOWNTO 0),o_fb_format); - IF o_fb_ena='0' THEN - off_v:=0; - END IF; - o_adrsa<='1'; - - WHEN sWAITREAD => - IF o_readack='1' THEN - o_hbcpt<=o_hbcpt+1; - IF o_hbcpt=1 THEN - o_fload<=o_fload-1; - END IF; - END IF; - END IF; - - -------------------------------------------------- - END CASE; - - o_read<=o_read_pre AND o_run; - o_rline<=o_vacpt(0); -- Even/Odd line for interlaced video - - o_adrs_pre<=to_integer(o_vacpt) * to_integer(o_stride); - IF o_adrsa='1' THEN - IF o_fload=2 THEN - o_adrs<=to_unsigned(o_hbcpt * N_BURST,32); - o_alt<="1111"; - ELSIF o_fload=1 THEN - o_adrs<=to_unsigned(o_hbcpt * N_BURST,32) + o_stride; - o_alt<="0100"; - ELSE - o_adrs<=to_unsigned(o_adrs_pre + (o_hbcpt * N_BURST),32); - o_alt<=altx(o_vacpt(1 DOWNTO 0) + 1); - END IF; - END IF; - - ------------------------------------------------------ - -- Copy from buffered memory to pixel lines - o_sh<='0'; - CASE o_copy IS - WHEN sWAIT => - o_copyv(0)<='0'; - IF o_copylev>0 AND o_copyv(0)='0' THEN - o_copy<=sCOPY; - IF o_off(0)>0 AND o_primv(0)='1' THEN - o_copy<=sSHIFT; - END IF; - o_altx<=o_alt; - END IF; - o_adturn<='0'; - o_pshift<=o_off(0) -1; - IF o_primv(0)='1' THEN - -- First memcopy of a horizontal line, carriage return ! - o_ihsizem<=o_ihsize + o_off(0) - 2; - o_hacc <=o_hacc_ini; - o_hacc_next<=o_hacc_ini + 2*o_ihsize; - o_hacpt <=x"000"; - o_dcpt<=0; - o_dshi<=2; - o_acpt<=0; - o_first<='1'; - o_last<='0'; - END IF; - - IF o_bibv(0)='0' THEN - o_ad<=0; - ELSE - o_ad<=BLEN; - END IF; - - WHEN sSHIFT => - o_hacpt<=o_hacpt+1; - o_sh<='1'; - o_acpt<=(o_acpt+1) MOD 16; - IF shift_onext(o_acpt,o_format) THEN - o_ad<=(o_ad+1) MOD (2*BLEN); - END IF; - o_pshift<=o_pshift-1; - IF o_pshift=0 THEN - o_copy<=sCOPY; - END IF; - - WHEN sCOPY => - -- dshi : Force shift first two or three pixels of each line - IF o_dshi=0 THEN - dif_v:=(o_hacc_next - 2*o_hsize + (8*OHRES)) MOD (8*OHRES); - IF dif_v>=4*OHRES THEN - o_hacc<=o_hacc_next; - o_hacc_next<=o_hacc_next + 2*o_ihsize; - hcarry_v:=false; - ELSE - o_hacc<=dif_v; - o_hacc_next<=(dif_v + 2*o_ihsize + (4*OHRES)) MOD (4*OHRES); - hcarry_v:=true; - END IF; - o_dcpt<=(o_dcpt+1) MOD 4096; - ELSE - o_dshi<=o_dshi-1; - hcarry_v:=false; - END IF; - IF o_dshi<=1 THEN - o_copyv(0)<='1'; - END IF; - IF hcarry_v THEN - o_hacpt<=o_hacpt+1; - o_last <=to_std_logic(o_hacpt>=o_ihsizem); - END IF; - - IF hcarry_v OR o_dshi>0 THEN - o_sh<='1'; - o_acpt<=(o_acpt+1) MOD 16; - - -- Shift two more pixels to the right before ending line. - o_last1<=o_last; - o_last2<=o_last1; - - IF shift_onext(o_acpt,o_format) THEN - o_ad<=(o_ad+1) MOD (2*BLEN); - END IF; - - IF o_adturn='1' AND (shift_onext((o_acpt+1) MOD 16,o_format)) AND - (((o_ad MOD BLEN=0) AND o_lastv(0)='0') OR o_last2='1') THEN - o_copy<=sWAIT; - lev_dec_v:='1'; - END IF; - - IF o_ad MOD BLEN=4 THEN - o_adturn<='1'; - END IF; - END IF; - END CASE; - - o_acpt1<=o_acpt; o_acpt2<=o_acpt1; o_acpt3<=o_acpt2; o_acpt4<=o_acpt3; - o_ad1<=o_ad; o_ad2<=o_ad1; o_ad3<=o_ad2; - o_sh1<=o_sh; o_sh2<=o_sh1; o_sh3<=o_sh2; o_sh4<=o_sh3; - o_lastt1<=o_last; o_lastt2<=o_lastt1; o_lastt3<=o_lastt2; - - ------------------------------------------------------ - IF o_sh3='1' THEN - shift_v:=shift_opack(o_acpt4,o_shift,o_dr,o_format); - o_shift<=shift_v; - o_hpixs<=shift_opix(shift_v,o_format); - END IF; - - IF o_sh4='1' THEN - hpix_v:=o_hpixs; - IF o_format(4)='1' THEN -- Swap B <-> R - hpix_v:=(r=>o_hpixs.b,g=>o_hpixs.g,b=>o_hpixs.r); - END IF; - IF o_format(2 DOWNTO 0)="011" THEN - -- 8bpp indexed colour mode - hpix_v:=(r=>o_fb_pal_dr(23 DOWNTO 16),g=>o_fb_pal_dr(15 DOWNTO 8), - b=>o_fb_pal_dr(7 DOWNTO 0)); - END IF; - o_hpix0<=hpix_v; - o_hpix1<=o_hpix0; - o_hpix2<=o_hpix1; - o_hpix3<=o_hpix2; - - IF o_first='1' THEN - -- Left edge. Duplicate first pixel - o_hpix1<=hpix_v; - o_hpix2<=hpix_v; - o_first<='0'; - END IF; - IF o_lastt3='1' THEN - -- Right edge. Keep last pixel. - o_hpix0<=o_hpix0; - END IF; - END IF; - - ------------------------------------------------------ - -- lev_inc : read start - -- lev_dec : end of copy - -- READLEV : Number of ongoing Avalon Reads - IF lev_dec_v='0' AND lev_inc_v='1' THEN - o_readlev<=o_readlev+1; - ELSIF lev_dec_v='1' AND lev_inc_v='0' THEN - o_readlev<=o_readlev-1; - END IF; - - -- COPYLEV : Number of ongoing copies to line buffers - IF lev_dec_v='1' AND o_readdataack='0' THEN - o_copylev<=o_copylev-1; - ELSIF lev_dec_v='0' AND o_readdataack='1' THEN - o_copylev<=o_copylev+1; - END IF; - - -- FIFOs - IF lev_dec_v='1' THEN - o_primv(0 TO 1)<=o_primv(1 TO 2); -- First buffer of line - o_lastv(0 TO 1)<=o_lastv(1 TO 2); -- Last buffer of line - o_bibv (0 TO 1)<=o_bibv (1 TO 2); -- Double buffer select - o_off (0 TO 1)<=o_off (1 TO 2); -- Start offset - END IF; - - IF lev_inc_v='1' THEN - IF o_readlev=0 OR (o_readlev=1 AND lev_dec_v='1') THEN - o_primv(0)<=prim_v; - o_lastv(0)<=last_v; - o_bibv (0)<=bib_v; - o_off (0)<=off_v; - ELSIF (o_readlev=1 AND lev_dec_v='0') OR - (o_readlev=2 AND lev_dec_v='1') THEN - o_primv(1)<=prim_v; - o_lastv(1)<=last_v; - o_bibv (1)<=bib_v; - o_off (1)<=off_v; - END IF; - o_primv(2)<=prim_v; - o_lastv(2)<=last_v; - o_bibv (2)<=bib_v; - o_off (2)<=off_v; - END IF; - - ------------------------------------------------------ - END IF; - END PROCESS Scalaire; - - o_h_poly_a<=to_integer(o_hfrac1(11 DOWNTO 12-FRAC)); - o_v_poly_a<=to_integer(o_vfrac(11 DOWNTO 12-FRAC)); - - o_h_poly_dr<=o_h_poly(o_h_poly_a) WHEN rising_edge(o_clk); - o_v_poly_dr<=o_v_poly(o_v_poly_a) WHEN rising_edge(o_clk); - - -- Framebuffer palette - GenPal1:IF PALETTE GENERATE - Tempera1:PROCESS(pal1_clk) IS - BEGIN - IF rising_edge(pal1_clk) THEN - IF pal1_wr='1' THEN - pal1_mem(to_integer(pal1_a))<=pal1_dw; - END IF; - pal1_dr<=pal1_mem(to_integer(pal1_a)); - END IF; - END PROCESS; + ELSIF rising_edge(o_clk) THEN + o_vdivi<=to_unsigned(2*o_vsize,13); + o_vdivr<=to_unsigned(o_vacc*4096,25); + ------------------------------------------------------ + IF o_divstart='1' THEN + o_divcpt<=0; + o_divrun<='1'; - pal_idx <= shift_opack(o_acpt4,o_shift,o_dr,o_format)(0 TO 7); - pal_idx_lsb <= pal_idx(0) WHEN rising_edge(o_clk); - o_fb_pal_dr_x2 <= pal1_mem(to_integer(pal_idx(7 DOWNTO 1))) WHEN rising_edge(o_clk); - END GENERATE GenPal1; - - GenPal2:IF PALETTE and PALETTE2 GENERATE - Tempera2:PROCESS(pal2_clk) IS - BEGIN - IF rising_edge(pal2_clk) THEN - IF pal2_wr='1' THEN - pal2_mem(to_integer(pal2_a))<=pal2_dw; - END IF; - pal2_dr<=pal2_mem(to_integer(pal2_a)); - END IF; - END PROCESS; + ELSIF o_divrun='1' THEN + ---------------------------------------------------- + IF o_divcpt=12 THEN + o_divrun<='0'; + o_vfrac<=o_vdivr(10 DOWNTO 0) & NOT o_vdivr(24); + ELSE + o_divcpt<=o_divcpt+1; + END IF; - o_fb_pal_dr2 <= pal2_mem(to_integer(pal_idx(7 DOWNTO 0))) WHEN rising_edge(o_clk); - o_fb_pal_dr <= o_fb_pal_dr2 when pal_n = '1' else o_fb_pal_dr_x2(47 DOWNTO 24) WHEN pal_idx_lsb = '1' ELSE o_fb_pal_dr_x2(23 DOWNTO 0); - END GENERATE GenPal2; + IF o_vdivr(24)='0' THEN + o_vdivr(24 DOWNTO 12)<=o_vdivr(23 DOWNTO 11) - o_vdivi; + ELSE + o_vdivr(24 DOWNTO 12)<=o_vdivr(23 DOWNTO 11) + o_vdivi; + END IF; + o_vdivr(11 DOWNTO 0)<=o_vdivr(10 DOWNTO 0) & NOT o_vdivr(24); + ---------------------------------------------------- + END IF; + END IF; + END PROCESS ODivider; - GenPal1not2:IF PALETTE and not PALETTE2 GENERATE - o_fb_pal_dr <= o_fb_pal_dr_x2(47 DOWNTO 24) WHEN pal_idx_lsb = '1' ELSE o_fb_pal_dr_x2(23 DOWNTO 0); - END GENERATE GenPal1not2; - - GenNoPal:IF NOT PALETTE GENERATE - o_fb_pal_dr<=x"000000"; - END GENERATE GenNoPal; - - ----------------------------------------------------------------------------- - -- Polyphase ROMs - Polikarpov:PROCESS(poly_clk) IS - BEGIN - IF rising_edge(poly_clk) THEN - IF poly_wr='1' THEN - poly_tdw(8+9*(3-to_integer(poly_a(1 DOWNTO 0))) DOWNTO - 9*(3-to_integer(poly_a(1 DOWNTO 0))))<=poly_dw; - END IF; - - poly_h_wr<=poly_wr AND NOT poly_a(FRAC+2); - poly_v_wr<=poly_wr AND poly_a(FRAC+2); - poly_a2<=poly_a(FRAC+1 DOWNTO 2); - - IF poly_h_wr='1' THEN - o_h_poly(to_integer(poly_a2))<=poly_tdw; - END IF; - IF poly_v_wr='1' THEN - o_v_poly(to_integer(poly_a2))<=poly_tdw; - END IF; - END IF; - END PROCESS Polikarpov; - - ----------------------------------------------------------------------------- - -- Horizontal Scaler - HSCAL:PROCESS(o_clk) IS - VARIABLE div_v : unsigned(18 DOWNTO 0); - VARIABLE dir_v : unsigned(11 DOWNTO 0); - BEGIN - IF rising_edge(o_clk) THEN - -- Pipeline signals - ----------------------------------- - -- Pipelined 6 bits non-restoring divider. Cycle 1 - dir_v:=x"000"; - div_v:=to_unsigned(o_hacc * 64,19); - - div_v:=div_v-to_unsigned(o_hsize*64,19); - dir_v(11):=NOT div_v(18); - IF div_v(18)='0' THEN - div_v:=div_v-to_unsigned(o_hsize*32,19); - ELSE - div_v:=div_v+to_unsigned(o_hsize*32,19); - END IF; - dir_v(10):=NOT div_v(18); - o_div<=div_v; - o_dir<=dir_v; - - -- Cycle 2 - div_v:=o_div; - dir_v:=o_dir; - IF div_v(18)='0' THEN - div_v:=div_v-to_unsigned(o_hsize*16,19); - ELSE - div_v:=div_v+to_unsigned(o_hsize*16,19); - END IF; - dir_v( 9):=NOT div_v(18); + ----------------------------------------------------------------------------- + Scalaire:PROCESS (o_clk,o_reset_na) IS + VARIABLE lev_inc_v,lev_dec_v : std_logic; + VARIABLE prim_v,last_v,bib_v : std_logic; + VARIABLE shift_v : unsigned(0 TO N_DW+15); + VARIABLE hpix_v : type_pix; + VARIABLE hcarry_v,vcarry_v : boolean; + VARIABLE dif_v : natural RANGE 0 TO 8*OHRES-1; + VARIABLE off_v : natural RANGE 0 TO 15; + BEGIN + IF o_reset_na='0' THEN + o_copy<=sWAIT; + o_state<=sDISP; + o_read_pre<='0'; + o_readlev<=0; + o_copylev<=0; + o_hsp<='0'; - IF div_v(18)='0' THEN - div_v:=div_v-to_unsigned(o_hsize*8,19); - ELSE - div_v:=div_v+to_unsigned(o_hsize*8,19); - END IF; - dir_v(8):=NOT div_v(18); - o_div2<=div_v; - o_dir2<=dir_v; - - -- Cycle 3 - div_v:=o_div2; - dir_v:=o_dir2; - IF FRAC>4 THEN - IF div_v(18)='0' THEN - div_v:=div_v-to_unsigned(o_hsize*4,19); - ELSE - div_v:=div_v+to_unsigned(o_hsize*4,19); - END IF; - dir_v(7):=NOT div_v(18); - IF div_v(18)='0' THEN - div_v:=div_v-to_unsigned(o_hsize*2,19); - ELSE - div_v:=div_v+to_unsigned(o_hsize*2,19); - END IF; - dir_v(6):=NOT div_v(18); - END IF; - - ----------------------------------- - o_hfrac<=dir_v; - o_hfrac1<=o_hfrac; o_hfrac2<=o_hfrac1; - o_hfrac3<=o_hfrac2; o_hfrac4<=o_hfrac3; - - o_copyv(1 TO 8)<=o_copyv(0 TO 7); - - o_dcptv(1)<=o_dcpt; - IF o_dcptv(1)>=o_hsize THEN - o_copyv(2)<='0'; - END IF; - o_dcptv(2)<=o_dcptv(1) MOD OHRES; - o_dcptv(3 TO 8)<=o_dcptv(2 TO 7); - - o_hpixq<=(o_hpix3,o_hpix2,o_hpix1,o_hpix0); - - -- NEAREST / BILINEAR / SHARP BILINEAR --------------- - -- C1 : Pre-calc Sharp Bilinear - o_h_sbil_t<=sbil_frac1(o_hfrac1); - - -- C2 : Select - o_h_frac2<=(OTHERS =>'0'); - CASE o_hmode(1 DOWNTO 0) IS - WHEN "00" => -- Nearest - IF MASK(MASK_NEAREST)='1' THEN - o_h_frac2<=near_frac(o_hfrac2); - END IF; - WHEN "01" => -- Bilinear - IF MASK(MASK_BILINEAR)='1' THEN - o_h_frac2<=bil_frac(o_hfrac2); - END IF; - WHEN "10" => -- Sharp Bilinear - IF MASK(MASK_SHARP_BILINEAR)='1' THEN - o_h_frac2<=sbil_frac2(o_hfrac2,o_h_sbil_t); - END IF; - WHEN OTHERS => - NULL; - END CASE; - - -- C3 : Opposite frac - o_h_bil_t<=bil_calc(o_h_frac2,o_hpixq); - - -- C4 : Nearest / Bilinear / Sharp Bilinear - o_h_bil_pix.r<=bound(o_h_bil_t.r,8+FRAC); - o_h_bil_pix.g<=bound(o_h_bil_t.g,8+FRAC); - o_h_bil_pix.b<=bound(o_h_bil_t.b,8+FRAC); - - -- BICUBIC ------------------------------------------- - -- C1 : Bicubic coefficients A,B,C,D - - -- C2 : Bicubic calc T1 = X.D + C - o_h_bic_abcd1<=bic_calc0(o_hfrac2,(o_hpix3,o_hpix2,o_hpix1,o_hpix0)); - o_h_bic_tt1<=bic_calc1(o_hfrac2, - bic_calc0(o_hfrac2,(o_hpix3,o_hpix2,o_hpix1,o_hpix0))); - - -- C3 : Bicubic calc T2 = X.T1 + B - o_h_bic_abcd2<=o_h_bic_abcd1; - o_h_bic_tt2<=bic_calc2(o_hfrac3,o_h_bic_tt1,o_h_bic_abcd1); - - -- C4 : Bicubic final Y = X.T2 + A - o_h_bic_pix<=bic_calc3(o_hfrac4,o_h_bic_tt2,o_h_bic_abcd2); - - -- POLYPHASE ----------------------------------------- - -- C1 : Read memory - - -- C2 : Filter calc - o_h_poly_dr2<=o_h_poly_dr; - - -- C3 : Add - o_h_poly_t<=poly_calc1(o_h_poly_dr2,o_hpixq); - - -- C4 : Bounding - o_h_poly_pix<=poly_calc2(o_h_poly_t); - - -- C5 : Select interpoler ---------------------------- - o_wadl<=o_dcptv(8); - o_wr<=o_altx AND (o_copyv(8) & o_copyv(8) & o_copyv(8) & o_copyv(8)); - o_ldw<=(x"00",x"00",x"00"); - - CASE o_hmode(2 DOWNTO 0) IS - WHEN "000" | "001" | "010" => -- Nearest | Bilinear | Sharp Bilinear - IF MASK(MASK_NEAREST)='1' OR - MASK(MASK_BILINEAR)='1' OR - MASK(MASK_SHARP_BILINEAR)='1' THEN - o_ldw<=o_h_bil_pix; - END IF; - WHEN "011" => -- BiCubic - IF MASK(MASK_BICUBIC)='1' THEN - o_ldw<=o_h_bic_pix; - END IF; - WHEN OTHERS => -- PolyPhase - IF MASK(MASK_POLY)='1' THEN - o_ldw<=o_h_poly_pix; - END IF; - END CASE; - ------------------------------------------------------ - END IF; - END PROCESS HSCAL; - - ----------------------------------------------------------------------------- - -- Line buffers 4 x OHRES x (R+G+B) - OLBUF:PROCESS(o_clk) IS - BEGIN - IF rising_edge(o_clk) THEN - -- WRITES - IF o_wr(0)='1' THEN o_line0(o_wadl)<=o_ldw; END IF; - IF o_wr(1)='1' THEN o_line1(o_wadl)<=o_ldw; END IF; - IF o_wr(2)='1' THEN o_line2(o_wadl)<=o_ldw; END IF; - IF o_wr(3)='1' THEN o_line3(o_wadl)<=o_ldw; END IF; - - -- READS - o_ldr0<=o_line0(o_radl); - o_ldr1<=o_line1(o_radl); - o_ldr2<=o_line2(o_radl); - o_ldr3<=o_line3(o_radl); - END IF; - END PROCESS OLBUF; - - ----------------------------------------------------------------------------- - -- Output video sweep - OSWEEP:PROCESS(o_clk) IS - BEGIN - IF rising_edge(o_clk) THEN - IF o_ce='1' THEN - -- Output pixels count - IF o_hcpt+1=o_vtotal THEN - o_vcpt_pre3<=0; - ELSE - o_vcpt_pre3<=(o_vcpt_pre3+1) MOD 4096; - END IF; - o_vcpt_pre2<=o_vcpt_pre3; - o_vcpt_pre<=o_vcpt_pre2; - o_vcpt<=o_vcpt_pre; - END IF; - - o_end(0)<=to_std_logic(o_vcpt>=o_vdisp); - o_dev(0)<=to_std_logic(o_hcpt=o_hmin AND o_hcpt<=o_hmax AND - o_vcpt>=o_vmin AND o_vcpt<=o_vmax); - o_hsv(0)<=to_std_logic(o_hcpt>=o_hsstart AND o_hcpt=o_hsstart) OR - (o_vcpt>o_vsstart AND o_vcpt=o_vmin AND o_vcpt_pre2<=o_vmax); - o_hsv(1 TO 5)<=o_hsv(0 TO 4); - o_vsv(1 TO 5)<=o_vsv(0 TO 4); - o_dev(1 TO 5)<=o_dev(0 TO 4); - o_pev(1 TO 5)<=o_pev(0 TO 4); - o_end(1 TO 5)<=o_end(0 TO 4); - - IF o_run='0' THEN - o_hsv(2)<='0'; - o_vsv(2)<='0'; - o_dev(2)<='0'; - o_pev(2)<='0'; - o_end(2)<='0'; - END IF; - - END IF; - END IF; - - END PROCESS OSWEEP; - - ----------------------------------------------------------------------------- - -- Vertical Scaler - VSCAL:PROCESS(o_clk) IS - VARIABLE pixq_v : arr_pix(0 TO 3); - BEGIN - IF rising_edge(o_clk) THEN - IF o_ce='1' THEN - -- CYCLE 1 ----------------------------------------- - -- Read mem - o_radl<=(o_hcpt - o_hmin + OHRES) MOD OHRES; - - -- CYCLE 2 ----------------------------------------- - -- Lines reordering - CASE o_vacpt(1 DOWNTO 0) IS - WHEN "10" => pixq_v:=(o_ldr0,o_ldr1,o_ldr2,o_ldr3); - WHEN "11" => pixq_v:=(o_ldr1,o_ldr2,o_ldr3,o_ldr0); - WHEN "00" => pixq_v:=(o_ldr2,o_ldr3,o_ldr0,o_ldr1); - WHEN OTHERS => pixq_v:=(o_ldr3,o_ldr0,o_ldr1,o_ldr2); - END CASE; - - o_vpixq<=pixq_v; - - -- Bottom edge : replicate last line - IF to_integer(o_vacpt)=o_ivsize THEN - o_vpixq(2)<=pixq_v(2); - END IF; - IF to_integer(o_vacpt)>=o_ivsize+1 THEN - o_vpixq(2)<=pixq_v(1); - o_vpixq(1)<=pixq_v(1); - END IF; - - o_vpixq1<=o_vpixq; - - -- NEAREST / BILINEAR / SHARP BILINEAR ------------- - -- C3 : Pre-calc Sharp Bilinear - o_v_sbil_t<=sbil_frac1(o_vfrac); - - -- C4 : Select - o_v_frac<=(OTHERS =>'0'); - CASE o_vmode(1 DOWNTO 0) IS - WHEN "00" => -- Nearest - IF MASK(MASK_NEAREST)='1' THEN - o_v_frac<=near_frac(o_vfrac); - END IF; - WHEN "01" => -- Bilinear - IF MASK(MASK_BILINEAR)='1' THEN - o_v_frac<=bil_frac(o_vfrac); - END IF; - WHEN "10" => -- Sharp Bilinear - IF MASK(MASK_SHARP_BILINEAR)='1' THEN - o_v_frac<=sbil_frac2(o_vfrac,o_v_sbil_t); - END IF; - WHEN OTHERS => NULL; - END CASE; - - o_v_bil_t<=bil_calc(o_v_frac,o_vpixq1); - - -- C6 : Nearest / Bilinear / Sharp Bilinear - o_v_bil_pix.r<=bound(o_v_bil_t.r,8+FRAC); - o_v_bil_pix.g<=bound(o_v_bil_t.g,8+FRAC); - o_v_bil_pix.b<=bound(o_v_bil_t.b,8+FRAC); - - -- BICUBIC ----------------------------------------- - -- C3 : Bicubic coefficients A,B,C,D - - -- C4 : Bicubic calc T1 = X.D + C - o_v_bic_abcd1<=bic_calc0(o_vfrac,o_vpixq); - o_v_bic_tt1<=bic_calc1(o_vfrac,bic_calc0(o_vfrac,o_vpixq)); - - -- C5 : Bicubic calc T2 = X.T1 + B - o_v_bic_abcd2<=o_v_bic_abcd1; - o_v_bic_tt2<=bic_calc2(o_vfrac,o_v_bic_tt1,o_v_bic_abcd1); - - -- C6 : Bicubic final Y = X.T2 + A - o_v_bic_pix<=bic_calc3(o_vfrac,o_v_bic_tt2,o_v_bic_abcd2); - - -- POLYPHASE --------------------------------------- - -- C3 : Read memory - - -- C4 : Filter calc - o_v_poly_dr2<=o_v_poly_dr; - - -- C5 : Add - o_v_poly_t<=poly_calc1(o_v_poly_dr2,o_vpixq1); - - -- C6 : Bounding - o_v_poly_pix<=poly_calc2(o_v_poly_t); - - -- CYCLE 6 ----------------------------------------- - o_hs<=o_hsv(5); - o_vs<=o_vsv(5); - o_de<=o_dev(5); - o_vbl<=o_end(5); - o_r<=x"00"; - o_g<=x"00"; - o_b<=x"00"; - - CASE o_vmode(2 DOWNTO 0) IS - WHEN "000" | "001" | "010" => -- Nearest | Bilinear | Sharp Bilinear - IF MASK(MASK_NEAREST)='1' OR - MASK(MASK_BILINEAR)='1' OR - MASK(MASK_SHARP_BILINEAR)='1' THEN - o_r<=o_v_bil_pix.r; - o_g<=o_v_bil_pix.g; - o_b<=o_v_bil_pix.b; - END IF; - WHEN "011" => -- BiCubic - IF MASK(MASK_BICUBIC)='1' THEN - o_r<=o_v_bic_pix.r; - o_g<=o_v_bic_pix.g; - o_b<=o_v_bic_pix.b; - END IF; - - WHEN OTHERS => -- Polyphase - IF MASK(MASK_POLY)='1' THEN - o_r<=o_v_poly_pix.r; - o_g<=o_v_poly_pix.g; - o_b<=o_v_poly_pix.b; - END IF; - END CASE; - - IF o_pev(5)='0' THEN - o_r<=o_border(23 DOWNTO 16); -- Copy border colour - o_g<=o_border(15 DOWNTO 8); - o_b<=o_border(7 DOWNTO 0); - END IF; - - ---------------------------------------------------- - END IF; - END IF; + ELSIF rising_edge(o_clk) THEN + ------------------------------------------------------ + o_mode <=mode; -- ? + o_format <="0001" & format; -- ? - END PROCESS VSCAL; - - ----------------------------------------------------------------------------- - -- Low Lag syntoniser interface - o_lltune<=(0 => i_vss, - 1 => i_pde, - 2 => i_inter, - 3 => i_flm, - 4 => o_vss, - 5 => i_pce, - 6 => i_clk, - 7 => o_clk, - OTHERS =>'0'); - - ---------------------------------------------------------------------------- + o_run <=run; -- ? + + o_htotal <=htotal; -- ? + o_hsstart<=hsstart; -- ? + o_hsend <=hsend; -- ? + o_hdisp <=hdisp; -- ? + o_hmin <=hmin; -- ? + o_hmax <=hmax; -- ? + + o_vtotal <=vtotal; -- ? + o_vsstart<=vsstart; -- ? + o_vsend <=vsend; -- ? + o_vdisp <=vdisp; -- ? + o_vmin <=vmin; -- ? + o_vmax <=vmax; -- ? + + o_hsize <=o_hmax - o_hmin + 1; + o_vsize <=o_vmax - o_vmin + 1; + + o_vrr <=vrr; + o_vrrmax <= vrrmax; + + -------------------------------------------- + -- Triple buffering. + -- For intelaced video, half frames are updated independently + -- Input : Toggle buffer at end of input frame + o_isync <= '0'; + o_isync2 <= o_isync; + o_freeze <= freeze; + o_inter <=i_inter; -- + o_iendframe0<=i_endframe0; -- + o_iendframe02<=o_iendframe0; + IF o_iendframe0='1' AND o_iendframe02='0' THEN + o_ibuf0<=buf_next(o_ibuf0,o_obuf0,o_freeze); + o_bufup0<='1'; + o_isync <= '1'; + END IF; + o_iendframe1<=i_endframe1; -- + o_iendframe12<=o_iendframe1; + IF o_iendframe1='1' AND o_iendframe12='0' THEN + o_ibuf1<=buf_next(o_ibuf1,o_obuf1,o_freeze); + o_bufup1<='1'; + o_isync <= '1'; + END IF; + + -- Output : Change framebuffer, and image properties, at VS falling edge + IF o_vsv(1)='1' AND o_vsv(0)='0' AND o_bufup0='1' THEN + o_obuf0<=buf_next(o_obuf0,o_ibuf0,o_freeze); + o_bufup0<='0'; + END IF; + IF o_vsv(1)='1' AND o_vsv(0)='0' AND o_bufup1='1' THEN + o_obuf1<=buf_next(o_obuf1,o_ibuf1,o_freeze); + o_bufup1<='0'; + o_ihsize<=i_hrsize; -- + o_ivsize<=i_vrsize; -- + o_hdown<=i_hdown; -- + o_vdown<=i_vdown; -- + + IF (o_newres > 0) then + o_newres <= o_newres- 1; + END IF; + END IF; + + IF (swblack = '1' and o_fb_ena = '0' and (o_ihsize /= i_hrsize or o_ivsize /= i_vrsize)) then + o_newres <= 3; + END IF; + + -- Simultaneous change of input and output framebuffers + IF o_vsv(1)='1' AND o_vsv(0)='0' AND + o_iendframe0='1' AND o_iendframe02='0' THEN + o_bufup0<='0'; + o_obuf0<=o_ibuf0; + END IF; + IF o_vsv(1)='1' AND o_vsv(0)='0' AND + o_iendframe1='1' AND o_iendframe12='0' THEN + o_bufup1<='0'; + o_obuf1<=o_ibuf1; + END IF; + + -- Non-interlaced, use same buffer for even and odd lines + IF o_inter='0' THEN + o_ibuf1<=o_ibuf0; + o_obuf1<=o_obuf0; + END IF; + + -- Triple buffer disabled + IF o_mode(3)='0' THEN + o_obuf0<=0; + o_obuf1<=0; + o_ibuf0<=0; + o_ibuf1<=0; + END IF; + + -- Framebuffer mode. + IF o_fb_ena='1' THEN + o_ihsize<=o_fb_hsize; + o_ivsize<=o_fb_vsize; + o_format<=o_fb_format; + o_hdown<='0'; + o_vdown<='0'; + END IF; + + -- 011=8bpp(palette) 100=16bpp 101=24bpp 110=32bpp + CASE o_format(2 DOWNTO 0) IS + WHEN "011" => o_ihsize_temp <= o_ihsize; + WHEN "100" => o_ihsize_temp <= o_ihsize * 2; + WHEN "110" => o_ihsize_temp <= o_ihsize * 4; + WHEN OTHERS => o_ihsize_temp <= o_ihsize * 3; + END CASE; + + o_ihsize_temp2 <= (o_ihsize_temp + N_BURST - 1); + o_hburst <= o_ihsize_temp2 / N_BURST; + + IF o_fb_ena='1' AND o_fb_stride /= 0 THEN + o_stride<=o_fb_stride; + ELSE + o_stride<=to_unsigned(o_ihsize_temp2,14); + o_stride(NB_BURST-1 DOWNTO 0)<=(OTHERS =>'0'); + END IF; + ------------------------------------------------------ + o_hmode<=o_mode; + IF o_hdown='1' AND DOWNSCALE THEN + -- Force nearest if downscaling : Downscaled framebuffer + o_hmode(2 DOWNTO 0)<="000"; + END IF; + + o_vmode<=o_mode; + IF o_vdown='1' AND DOWNSCALE THEN + -- Force nearest if downscaling : Downscaled framebuffer + o_vmode(2 DOWNTO 0)<="000"; + END IF; + + ------------------------------------------------------ + -- End DRAM READ + o_readack_sync<=avl_readack; -- + o_readack_sync2<=o_readack_sync; + o_readack<=o_readack_sync XOR o_readack_sync2; + + o_readdataack_sync<=avl_readdataack; -- + o_readdataack_sync2<=o_readdataack_sync; + o_readdataack<=o_readdataack_sync XOR o_readdataack_sync2; + + ------------------------------------------------------ + lev_inc_v:='0'; + lev_dec_v:='0'; + + -- acpt : Pixel position within current data word + -- dcpt : Destination image position + + -- Force preload 2 lines at top of screen + IF o_hsv(0)='1' AND o_hsv(1)='0' THEN + IF o_vcpt_pre3=o_vmin THEN + o_fload<=2; + o_bibu<='0'; + END IF; + o_hsp<='1'; + END IF; + + o_vpe<=to_std_logic(o_vcpt_pre=o_vmin); + o_divstart<='0'; + o_adrsa<='0'; + o_adrsb<=o_adrsa; + + o_vacc_ini<=(o_vsize - o_ivsize + 8192) MOD 8192; + o_hacc_ini<=(o_hsize + o_ihsize + 8192) MOD 8192; + + --Alternate phase + --o_vacc_ini<=o_ivsize; + --o_hacc_ini<=(2*o_hsize - o_ihsize + 8192) MOD 8192; + + CASE o_state IS + -------------------------------------------------- + WHEN sDISP => + IF o_hsp='1' THEN + o_state<=sHSYNC; + o_hsp<='0'; + END IF; + o_prim<=true; + o_vcarrym<=false; + + -------------------------------------------------- + WHEN sHSYNC => + dif_v :=(o_vacc_next - 2*o_vsize + 16384) MOD 16384; + IF o_prim THEN + IF dif_v>=8192 THEN + o_vacc <=o_vacc_next; + ELSE + o_vacc <=dif_v; + END IF; + END IF; + IF dif_v>=8192 THEN + o_vacc_next<=(o_vacc_next + 2*o_ivsize) MOD 8192; + vcarry_v:=false; + ELSE + o_vacc_next<=dif_v; + vcarry_v:=true; + END IF; + + IF o_vcpt_pre2=o_vmin THEN + o_vacc <=o_vacc_ini; + o_vacc_next<=o_vacc_ini + 2*o_ivsize; + o_vacpt <=x"001"; + o_vacptl<="01"; + vcarry_v:=false; + END IF; + + IF vcarry_v THEN + o_vacpt<=o_vacpt+1; + END IF; + IF vcarry_v AND o_prim THEN + o_vacptl<=o_vacptl+1; + END IF; + o_vcarrym <= o_vcarrym OR vcarry_v; + o_prim <= false; + o_hbcpt<=0; -- Clear burst counter on line + o_divstart<=to_std_logic(NOT vcarry_v); + IF NOT vcarry_v OR o_fload>0 THEN + IF (o_vpe='1' AND o_vcarrym) OR o_fload>0 THEN + o_state<=sREAD; + ELSE + o_state<=sDISP; + END IF; + END IF; + + WHEN sREAD => + -- Read a block + IF o_readlev<2 AND o_adrsb='1' THEN + lev_inc_v:='1'; + o_read_pre<=NOT o_read_pre; + o_state <=sWAITREAD; + o_bibu<=NOT o_bibu; + END IF; + prim_v:=to_std_logic(o_hbcpt=0); + last_v:=to_std_logic(o_hbcpt=o_hburst-1); + bib_v :=o_bibu; + off_v :=pixoffset(o_adrs + o_fb_base(NB_LA-1 DOWNTO 0),o_fb_format); + IF o_fb_ena='0' THEN + off_v:=0; + END IF; + o_adrsa<='1'; + + WHEN sWAITREAD => + IF o_readack='1' THEN + o_hbcpt<=o_hbcpt+1; + IF o_hbcpt=1 THEN + o_fload<=o_fload-1; + END IF; + END IF; + END IF; + + -------------------------------------------------- + END CASE; + + o_read<=o_read_pre AND o_run; + o_rline<=o_vacpt(0); -- Even/Odd line for interlaced video + + o_adrs_pre<=to_integer(o_vacpt) * to_integer(o_stride); + IF o_adrsa='1' THEN + IF o_fload=2 THEN + o_adrs<=to_unsigned(o_hbcpt * N_BURST,32); + o_alt<="1111"; + ELSIF o_fload=1 THEN + o_adrs<=to_unsigned(o_hbcpt * N_BURST,32) + o_stride; + o_alt<="0100"; + ELSE + o_adrs<=to_unsigned(o_adrs_pre + (o_hbcpt * N_BURST),32); + o_alt<=altx(o_vacptl + 1); + END IF; + END IF; + + ------------------------------------------------------ + -- Copy from buffered memory to pixel lines + o_sh<='0'; + CASE o_copy IS + WHEN sWAIT => + o_copyv(0)<='0'; + IF o_copylev>0 AND o_copyv(0)='0' THEN + o_copy<=sCOPY; + IF o_off(0)>0 AND o_primv(0)='1' THEN + o_copy<=sSHIFT; + END IF; + o_altx<=o_alt; + END IF; + o_adturn<='0'; + o_pshift<=o_off(0) -1; + IF o_primv(0)='1' THEN + -- First memcopy of a horizontal line, carriage return ! + o_ihsizem<=o_ihsize + o_off(0) - 2; + o_hacc <=o_hacc_ini; + o_hacc_next<=o_hacc_ini + 2*o_ihsize; + o_hacpt <=x"000"; + o_dcpt<=0; + o_dshi<=2; + o_acpt<=0; + o_first<='1'; + o_last<='0'; + END IF; + + IF o_bibv(0)='0' THEN + o_ad<=0; + ELSE + o_ad<=BLEN; + END IF; + + WHEN sSHIFT => + o_hacpt<=o_hacpt+1; + o_sh<='1'; + o_acpt<=(o_acpt+1) MOD 16; + IF shift_onext(o_acpt,o_format) THEN + o_ad<=(o_ad+1) MOD (2*BLEN); + END IF; + o_pshift<=o_pshift-1; + IF o_pshift=0 THEN + o_copy<=sCOPY; + END IF; + + WHEN sCOPY => + -- dshi : Force shift first two or three pixels of each line + IF o_dshi=0 THEN + dif_v:=(o_hacc_next - 2*o_hsize + (8*OHRES)) MOD (8*OHRES); + IF dif_v>=4*OHRES THEN + o_hacc<=o_hacc_next; + o_hacc_next<=o_hacc_next + 2*o_ihsize; + hcarry_v:=false; + ELSE + o_hacc<=dif_v; + o_hacc_next<=(dif_v + 2*o_ihsize + (4*OHRES)) MOD (4*OHRES); + hcarry_v:=true; + END IF; + o_dcpt<=(o_dcpt+1) MOD 4096; + ELSE + o_dshi<=o_dshi-1; + hcarry_v:=false; + END IF; + IF o_dshi<=1 THEN + o_copyv(0)<='1'; + END IF; + IF hcarry_v THEN + o_hacpt<=o_hacpt+1; + o_last <=to_std_logic(o_hacpt>=o_ihsizem); + END IF; + + IF hcarry_v OR o_dshi>0 THEN + o_sh<='1'; + o_acpt<=(o_acpt+1) MOD 16; + + -- Shift two more pixels to the right before ending line. + o_last1<=o_last; + o_last2<=o_last1; + + IF shift_onext(o_acpt,o_format) THEN + o_ad<=(o_ad+1) MOD (2*BLEN); + END IF; + + IF o_adturn='1' AND (shift_onext((o_acpt+1) MOD 16,o_format)) AND + (((o_ad MOD BLEN=0) AND o_lastv(0)='0') OR o_last2='1') THEN + o_copy<=sWAIT; + lev_dec_v:='1'; + END IF; + + IF o_ad MOD BLEN=4 THEN + o_adturn<='1'; + END IF; + END IF; + END CASE; + + o_acpt1<=o_acpt; o_acpt2<=o_acpt1; o_acpt3<=o_acpt2; o_acpt4<=o_acpt3; + o_ad1<=o_ad; o_ad2<=o_ad1; o_ad3<=o_ad2; + o_sh1<=o_sh; o_sh2<=o_sh1; o_sh3<=o_sh2; o_sh4<=o_sh3; + o_lastt1<=o_last; o_lastt2<=o_lastt1; + o_lastt3<=o_lastt2; o_lastt4<=o_lastt3; + + ------------------------------------------------------ + IF o_sh3='1' THEN + shift_v:=shift_opack(o_acpt4,o_shift,o_dr,o_format); + o_shift<=shift_v; + o_hpixs<=shift_opix(shift_v,o_format); + END IF; + + IF o_sh4='1' THEN + hpix_v:=o_hpixs; + IF o_format(4)='1' THEN -- Swap B <-> R + hpix_v:=(r=>o_hpixs.b,g=>o_hpixs.g,b=>o_hpixs.r); + END IF; + IF o_format(2 DOWNTO 0)="011" THEN + -- 8bpp indexed colour mode + hpix_v:=(r=>o_fb_pal_dr(23 DOWNTO 16),g=>o_fb_pal_dr(15 DOWNTO 8), + b=>o_fb_pal_dr(7 DOWNTO 0)); + END IF; + IF (o_newres > 0) then + hpix_v := (others => (others => '0')); + END IF; + o_hpix0<=hpix_v; + o_hpix1<=o_hpix0; + o_hpix2<=o_hpix1; + o_hpix3<=o_hpix2; + + IF o_first='1' THEN + -- Left edge. Duplicate first pixel + o_hpix1<=hpix_v; + o_hpix2<=hpix_v; + o_first<='0'; + END IF; + IF o_lastt4='1' THEN + -- Right edge. Keep last pixel. + o_hpix0<=o_hpix0; + END IF; + END IF; + + ------------------------------------------------------ + -- lev_inc : read start + -- lev_dec : end of copy + -- READLEV : Number of ongoing Avalon Reads + IF lev_dec_v='0' AND lev_inc_v='1' THEN + o_readlev<=o_readlev+1; + ELSIF lev_dec_v='1' AND lev_inc_v='0' THEN + o_readlev<=o_readlev-1; + END IF; + + -- COPYLEV : Number of ongoing copies to line buffers + IF lev_dec_v='1' AND o_readdataack='0' THEN + o_copylev<=o_copylev-1; + ELSIF lev_dec_v='0' AND o_readdataack='1' THEN + o_copylev<=o_copylev+1; + END IF; + + -- FIFOs + IF lev_dec_v='1' THEN + o_primv(0 TO 1)<=o_primv(1 TO 2); -- First buffer of line + o_lastv(0 TO 1)<=o_lastv(1 TO 2); -- Last buffer of line + o_bibv (0 TO 1)<=o_bibv (1 TO 2); -- Double buffer select + o_off (0 TO 1)<=o_off (1 TO 2); -- Start offset + END IF; + + IF lev_inc_v='1' THEN + IF o_readlev=0 OR (o_readlev=1 AND lev_dec_v='1') THEN + o_primv(0)<=prim_v; + o_lastv(0)<=last_v; + o_bibv (0)<=bib_v; + o_off (0)<=off_v; + ELSIF (o_readlev=1 AND lev_dec_v='0') OR + (o_readlev=2 AND lev_dec_v='1') THEN + o_primv(1)<=prim_v; + o_lastv(1)<=last_v; + o_bibv (1)<=bib_v; + o_off (1)<=off_v; + END IF; + o_primv(2)<=prim_v; + o_lastv(2)<=last_v; + o_bibv (2)<=bib_v; + o_off (2)<=off_v; + END IF; + + ------------------------------------------------------ + END IF; + END PROCESS Scalaire; + + -- Fetch polyphase coefficients + PolyFetch:PROCESS (o_clk) IS + VARIABLE hfrac3_v, vfrac_v : unsigned(FRAC-1 DOWNTO 0); + BEGIN + IF rising_edge(o_clk) THEN + hfrac3_v:=o_hfrac(3)(11 DOWNTO 12-FRAC); + vfrac_v:=o_vfrac(11 DOWNTO 12-FRAC); + + o_v_poly_use_adaptive <= to_std_logic((o_vmode(2 DOWNTO 0)/="000") AND (o_v_poly_adaptive = '1')); + o_h_poly_use_adaptive <= to_std_logic((o_hmode(2 DOWNTO 0)/="000") AND (o_h_poly_adaptive = '1')); + o_v_poly_addr<=to_integer(o_vfrac(11 DOWNTO 12-FRAC)); + + -- C3 / HC3 / VC4 + IF o_vmode(2 DOWNTO 0)/="000" THEN + o_v_poly_phase_a<=poly_unpack(o_v_poly_mem(o_v_poly_addr)); + ELSE + o_v_poly_phase_a<=poly_nn(vfrac_v); + END IF; + + IF o_hmode(2 DOWNTO 0)/="000" THEN + o_h_poly_phase_a<=poly_unpack(o_h_poly_mem(to_integer(hfrac3_v))); + ELSE + o_h_poly_phase_a<=poly_nn(hfrac3_v); + END IF; + + IF o_v_poly_use_adaptive='1' THEN + o_poly_lum<=poly_lum(o_v_lum_pix); + o_a_poly_addr<=o_v_poly_addr; + ELSIF o_h_poly_use_adaptive='1' THEN + o_poly_lum<=poly_lum(o_h_lum_pix); + o_a_poly_addr<=to_integer(hfrac3_v); + END IF; + + -- C4 / HC4 / VC5 + o_poly_phase_b<=poly_unpack(o_a_poly_mem(o_a_poly_addr)); + + IF o_v_poly_use_adaptive='1' THEN + o_poly_phase_a<=o_v_poly_phase_a; + ELSIF o_h_poly_use_adaptive = '1' THEN + o_poly_phase_a<=o_h_poly_phase_a; + END IF; + + o_h_poly_phase_a2<=o_h_poly_phase_a; + o_v_poly_phase_a2<=o_v_poly_phase_a; + o_poly_lum1<=o_poly_lum; + + -- C5 / HC5 / VC6 + o_poly_lerp_ta<=signed(to_unsigned(256,10) - resize(o_poly_lum1,10)); + o_poly_lerp_tb<=signed(resize(o_poly_lum1,10)); + + o_poly_phase_b2<=o_poly_phase_b; + o_poly_phase_a2<=o_poly_phase_a; + + o_h_poly_phase_a3<=o_h_poly_phase_a2; + o_v_poly_phase_a3<=o_v_poly_phase_a2; + + -- C6 / HC6 / VC7 + o_poly_phase<=poly_lerp(o_poly_phase_a2, o_poly_phase_b2, o_poly_lerp_ta, o_poly_lerp_tb); + o_h_poly_phase_a4<=o_h_poly_phase_a3; + o_v_poly_phase_a4<=o_v_poly_phase_a3; + + -- C7 / HC7 / VC8 + o_h_poly_phase_a5<=o_h_poly_phase_a4; + o_v_poly_phase_a5<=o_v_poly_phase_a4; + o_poly_phase1<=o_poly_phase; + + -- C8 / HC8 / VC9 + o_v_poly_phase<=poly_cvt(o_v_poly_phase_a5); + o_h_poly_phase<=poly_cvt(o_h_poly_phase_a5); + + IF o_v_poly_use_adaptive = '1' THEN + o_v_poly_phase<=o_poly_phase1; + ELSIF o_h_poly_use_adaptive = '1' THEN + o_h_poly_phase<=o_poly_phase1; + END IF; + + END IF; + END PROCESS PolyFetch; + + + -- Framebuffer palette + GenPal1:IF PALETTE GENERATE + Tempera1:PROCESS(pal1_clk) IS + BEGIN + IF rising_edge(pal1_clk) THEN + IF pal1_wr='1' THEN + pal1_mem(to_integer(pal1_a))<=pal1_dw; + END IF; + pal1_dr<=pal1_mem(to_integer(pal1_a)); + END IF; + END PROCESS; + + pal_idx <= shift_opack(o_acpt4,o_shift,o_dr,o_format)(0 TO 7); + pal_idx_lsb <= pal_idx(0) WHEN rising_edge(o_clk); + o_fb_pal_dr_x2 <= pal1_mem(to_integer(pal_idx(7 DOWNTO 1))) WHEN rising_edge(o_clk); + END GENERATE GenPal1; + + GenPal2:IF PALETTE and PALETTE2 GENERATE + Tempera2:PROCESS(pal2_clk) IS + BEGIN + IF rising_edge(pal2_clk) THEN + IF pal2_wr='1' THEN + pal2_mem(to_integer(pal2_a))<=pal2_dw; + END IF; + pal2_dr<=pal2_mem(to_integer(pal2_a)); + END IF; + END PROCESS; + + o_fb_pal_dr2 <= pal2_mem(to_integer(pal_idx(7 DOWNTO 0))) WHEN rising_edge(o_clk); + o_fb_pal_dr <= o_fb_pal_dr2 when pal_n = '1' else o_fb_pal_dr_x2(47 DOWNTO 24) WHEN pal_idx_lsb = '1' ELSE o_fb_pal_dr_x2(23 DOWNTO 0); + END GENERATE GenPal2; + + GenPal1not2:IF PALETTE and not PALETTE2 GENERATE + o_fb_pal_dr <= o_fb_pal_dr_x2(47 DOWNTO 24) WHEN pal_idx_lsb = '1' ELSE o_fb_pal_dr_x2(23 DOWNTO 0); + END GENERATE GenPal1not2; + + GenNoPal:IF NOT PALETTE GENERATE + o_fb_pal_dr<=x"000000"; + END GENERATE GenNoPal; + + ----------------------------------------------------------------------------- + -- Polyphase ROMs + Polikarpov:PROCESS(poly_clk) IS + BEGIN + IF rising_edge(poly_clk) THEN + IF poly_wr='1' THEN + poly_tdw(9+10*(3-to_integer(poly_a(1 DOWNTO 0))) DOWNTO + 10*(3-to_integer(poly_a(1 DOWNTO 0))))<=poly_dw; + END IF; + + poly_wr_mode(0)<=poly_wr AND NOT poly_a(FRAC+2); + poly_wr_mode(1)<=poly_wr AND poly_a(FRAC+2); + poly_wr_mode(2)<=poly_wr AND poly_a(FRAC+3) AND to_std_logic(ADAPTIVE); + poly_a2<=poly_a(FRAC+1 DOWNTO 2); + + CASE poly_wr_mode IS + WHEN "001" => -- horiz + o_h_poly_mem(to_integer(poly_a2))<=poly_tdw; + o_h_poly_adaptive<='0'; + WHEN "010" => -- vert + o_v_poly_mem(to_integer(poly_a2))<=poly_tdw; + o_v_poly_adaptive<='0'; + WHEN "101" => -- horiz adaptive + o_a_poly_mem(to_integer(poly_a2))<=poly_tdw; + o_h_poly_adaptive<='1'; + WHEN "110" => -- vert adaptive + o_a_poly_mem(to_integer(poly_a2))<=poly_tdw; + o_v_poly_adaptive<='1'; + WHEN OTHERS => NULL; + END CASE; + END IF; + END PROCESS Polikarpov; + + ----------------------------------------------------------------------------- + -- Horizontal Scaler + HSCAL:PROCESS(o_clk) IS + VARIABLE div_v : unsigned(20 DOWNTO 0); + VARIABLE dir_v : unsigned(11 DOWNTO 0); + BEGIN + IF rising_edge(o_clk) THEN + -- Pipeline signals + ----------------------------------- + -- Pipelined 8 bits non-restoring divider. Cycle 1 + dir_v:=x"000"; + div_v:=to_unsigned(o_hacc * 256,21); + + div_v:=div_v-to_unsigned(o_hsize*256,21); + dir_v(11):=NOT div_v(20); + IF div_v(20)='0' THEN + div_v:=div_v-to_unsigned(o_hsize*128,21); + ELSE + div_v:=div_v+to_unsigned(o_hsize*128,21); + END IF; + dir_v(10):=NOT div_v(20); + + o_div(0)<=div_v; + o_dir(0)<=dir_v; + + -- Cycle 2 + div_v:=o_div(0); + dir_v:=o_dir(0); + IF div_v(20)='0' THEN + div_v:=div_v-to_unsigned(o_hsize*64,21); + ELSE + div_v:=div_v+to_unsigned(o_hsize*64,21); + END IF; + dir_v( 9):=NOT div_v(20); + + IF div_v(20)='0' THEN + div_v:=div_v-to_unsigned(o_hsize*32,21); + ELSE + div_v:=div_v+to_unsigned(o_hsize*32,21); + END IF; + dir_v( 8):=NOT div_v(20); + + o_div(1)<=div_v; + o_dir(1)<=dir_v; + + -- Cycle 3 + div_v:=o_div(1); + dir_v:=o_dir(1); + IF FRAC>4 THEN + IF div_v(20)='0' THEN + div_v:=div_v-to_unsigned(o_hsize*16,21); + ELSE + div_v:=div_v+to_unsigned(o_hsize*16,21); + END IF; + dir_v(7):=NOT div_v(20); + + IF div_v(20)='0' THEN + div_v:=div_v-to_unsigned(o_hsize*8,21); + ELSE + div_v:=div_v+to_unsigned(o_hsize*8,21); + END IF; + dir_v(6):=NOT div_v(20); + END IF; + o_div(2)<=div_v; + o_dir(2)<=dir_v; + + div_v:=o_div(2); + dir_v:=o_dir(2); + IF FRAC>6 THEN + IF div_v(20)='0' THEN + div_v:=div_v-to_unsigned(o_hsize*4,21); + ELSE + div_v:=div_v+to_unsigned(o_hsize*4,21); + END IF; + dir_v(5):=NOT div_v(20); + + IF div_v(20)='0' THEN + div_v:=div_v-to_unsigned(o_hsize*2,21); + ELSE + div_v:=div_v+to_unsigned(o_hsize*2,21); + END IF; + dir_v(4):=NOT div_v(20); + END IF; + + ----------------------------------- + o_hfrac(1)<=dir_v; + o_hfrac(2 TO 9) <= o_hfrac(1 TO 8); + + o_copyv(1 TO 14)<=o_copyv(0 TO 13); + + o_dcptv(1)<=o_dcpt; + IF o_dcptv(1)>=o_hsize THEN + o_copyv(2)<='0'; + END IF; + o_dcptv(2)<=o_dcptv(1) MOD OHRES; + o_dcptv(3 TO 14)<=o_dcptv(2 TO 13); + + -- C2 + o_hpixq(2)<=(o_hpix3,o_hpix2,o_hpix1,o_hpix0); + o_hpixq(3 TO 8)<=o_hpixq(2 TO 7); + + -- BILINEAR / SHARP BILINEAR --------------- + -- C7 : Pre-calc Sharp Bilinear + o_h_sbil_t<=sbil_frac1(o_hfrac(6)); + + -- C8 : Select + o_h_bil_frac<=(OTHERS =>'0'); + IF o_hmode(0)='1' THEN -- Bilinear + IF MASK(MASK_BILINEAR)='1' THEN + o_h_bil_frac<=bil_frac(o_hfrac(7)); + END IF; + ELSE -- Sharp Bilinear + IF MASK(MASK_SHARP_BILINEAR)='1' THEN + o_h_bil_frac<=sbil_frac2(o_hfrac(7),o_h_sbil_t); + END IF; + END IF; + + -- C9 : Opposite frac + o_h_bil_t<=bil_calc(o_h_bil_frac,o_hpixq(8)); + + -- C10 : Bilinear / Sharp Bilinear + o_h_bil_pix.r<=bound(o_h_bil_t.r,8+FRAC); + o_h_bil_pix.g<=bound(o_h_bil_t.g,8+FRAC); + o_h_bil_pix.b<=bound(o_h_bil_t.b,8+FRAC); + + -- BICUBIC ------------------------------------------- + -- C8 : Bicubic coefficients A,B,C,D + -- C8 : Bicubic calc T1 = X.D + C + o_h_bic_abcd1<=bic_calc0(o_hfrac(7),o_hpixq(6)); + o_h_bic_tt1<=bic_calc1(o_hfrac(7), + bic_calc0(o_hfrac(7),o_hpixq(6))); + + -- C9 : Bicubic calc T2 = X.T1 + B + o_h_bic_abcd2<=o_h_bic_abcd1; + o_h_bic_tt2<=bic_calc2(o_hfrac(8),o_h_bic_tt1,o_h_bic_abcd1); + + -- C10 : Bicubic final Y = X.T2 + A + o_h_bic_pix<=bic_calc3(o_hfrac(9),o_h_bic_tt2,o_h_bic_abcd2); + + -- POLYPHASE ----------------------------------------- + -- C2 + IF o_hfrac(2)(o_hfrac(2)'left)='0' THEN + o_h_lum_pix<=o_hpix2; + ELSE + o_h_lum_pix<=o_hpix1; + END IF; + + -- C3-C8 in PolyFetch + + -- C9 : Apply Polyphase + o_h_poly_t<=poly_calc(o_h_poly_phase,o_hpixq(8)); + + -- C10 : Sum and bound + o_h_poly_pix<=poly_final(o_h_poly_t); + + -- C11 : Select interpoler ---------------------------- + o_wadl<=o_dcptv(14); + o_wr<=o_altx AND (o_copyv(14) & o_copyv(14) & o_copyv(14) & o_copyv(14)); + o_ldw<=(x"00",x"00",x"00"); + + CASE o_hmode(2 DOWNTO 0) IS + WHEN "000" => -- Nearest + IF MASK(MASK_NEAREST)='1' THEN + o_ldw<=o_h_poly_pix; + END IF; + WHEN "001" | "010" => -- Bilinear | Sharp Bilinear + IF MASK(MASK_BILINEAR)='1' OR + MASK(MASK_SHARP_BILINEAR)='1' THEN + o_ldw<=o_h_bil_pix; + END IF; + WHEN "011" => -- BiCubic + IF MASK(MASK_BICUBIC)='1' THEN + o_ldw<=o_h_bic_pix; + END IF; + WHEN OTHERS => -- PolyPhase + IF MASK(MASK_POLY)='1' THEN + o_ldw<=o_h_poly_pix; + END IF; + END CASE; + ------------------------------------------------------ + END IF; + END PROCESS HSCAL; + + ----------------------------------------------------------------------------- + -- Line buffers 4 x OHRES x (R+G+B) + OLBUF:PROCESS(o_clk) IS + BEGIN + IF rising_edge(o_clk) THEN + -- WRITES + IF o_wr(0)='1' THEN o_line0(o_wadl)<=o_ldw; END IF; + IF o_wr(1)='1' THEN o_line1(o_wadl)<=o_ldw; END IF; + IF o_wr(2)='1' THEN o_line2(o_wadl)<=o_ldw; END IF; + IF o_wr(3)='1' THEN o_line3(o_wadl)<=o_ldw; END IF; + + -- READS + o_ldr0<=o_line0(o_radl0); + o_ldr1<=o_line1(o_radl1); + o_ldr2<=o_line2(o_radl2); + o_ldr3<=o_line3(o_radl3); + END IF; + END PROCESS OLBUF; + + ----------------------------------------------------------------------------- + -- Output video sweep + OSWEEP:PROCESS(o_clk) IS + BEGIN + IF rising_edge(o_clk) THEN + + IF o_ce='1' THEN + -- Output pixels count + IF o_hcpt+1=o_vtotal THEN + o_vcpt_pre3<=0; + ELSIF o_vrr_sync2 THEN + o_vcpt_pre3<=o_vsstart; + o_sync<=false; + ELSE + o_vcpt_pre3<=(o_vcpt_pre3+1) MOD 4096; + END IF; + + o_vcpt_pre2<=o_vcpt_pre3; + o_vcpt_pre<=o_vcpt_pre2; + o_vcpt<=o_vcpt_pre; + END IF; + + o_end(0)<=to_std_logic(o_vcpt>=o_vdisp); + o_dev(0)<=to_std_logic(o_hcpt=o_hmin AND o_hcpt<=o_hmax AND + o_vcpt>=o_vmin AND o_vcpt<=o_vmax); + o_hsv(0)<=to_std_logic(o_hcpt>=o_hsstart AND o_hcpt=o_hsstart) OR + (o_vcpt>o_vsstart AND o_vcpt=o_vmin AND o_vcpt_pre2<=o_vmax); + o_hsv(1 TO 11)<=o_hsv(0 TO 10); + o_vsv(1 TO 11)<=o_vsv(0 TO 10); + o_dev(1 TO 11)<=o_dev(0 TO 10); + o_pev(1 TO 11)<=o_pev(0 TO 10); + o_end(1 TO 11)<=o_end(0 TO 10); + + IF o_run='0' THEN + o_hsv(2)<='0'; + o_vsv(2)<='0'; + o_dev(2)<='0'; + o_pev(2)<='0'; + o_end(2)<='0'; + END IF; + END IF; + + o_vcpt_sync2<=o_vcpt_sync; + o_vrr_min<=(o_vcpt_sync2=o_vdisp AND o_vcpt2 o_radl1<=r2_v; + WHEN "11" => o_radl2<=r2_v; + WHEN "00" => o_radl3<=r2_v; + WHEN OTHERS => o_radl0<=r2_v; + END CASE; + ELSE + CASE o_vacptl IS + WHEN "10" => o_radl2<=r2_v; + WHEN "11" => o_radl3<=r2_v; + WHEN "00" => o_radl0<=r2_v; + WHEN OTHERS => o_radl1<=r2_v; + END CASE; + END IF; + + -- CYCLE 2 ----------------------------------------- + -- Lines reordering + CASE o_vacptl IS + WHEN "10" => pixq_v:=(o_ldr0,o_ldr1,o_ldr2,o_ldr3); + WHEN "11" => pixq_v:=(o_ldr1,o_ldr2,o_ldr3,o_ldr0); + WHEN "00" => pixq_v:=(o_ldr2,o_ldr3,o_ldr0,o_ldr1); + WHEN OTHERS => pixq_v:=(o_ldr3,o_ldr0,o_ldr1,o_ldr2); + END CASE; + + IF fracnn_v = '0' THEN + o_vpix_outer<=(pixq_v(0), pixq_v(2), pixq_v(3)); + o_vpix_inner(0)<=pixq_v(1); + ELSE + o_vpix_outer<=(pixq_v(0), pixq_v(1), pixq_v(3)); + o_vpix_inner(0)<=pixq_v(2); + END IF; + + -- CYCLE 3-7 + o_vpix_inner(1 TO 5)<=o_vpix_inner(0 TO 4); + + -- CYCLE 8 + IF to_integer(o_vacpt)>o_ivsize THEN + IF fracnn_v = '0' THEN + o_vpixq_pre<=(o_vpix_outer(0), o_vpix_inner(5), o_vpix_inner(5), o_vpix_inner(5)); + ELSE + o_vpixq_pre<=(o_vpix_outer(0), o_vpix_outer(1), o_vpix_outer(1), o_vpix_outer(1)); + END IF; + ELSIF to_integer(o_vacpt)=o_ivsize THEN + IF fracnn_v = '0' THEN + o_vpixq_pre<=(o_vpix_outer(0), o_vpix_inner(5), o_vpix_outer(1), o_vpix_outer(1)); + ELSE + o_vpixq_pre<=(o_vpix_outer(0), o_vpix_outer(1), o_vpix_inner(5), o_vpix_inner(5)); + END IF; + ELSE + IF fracnn_v = '0' THEN + o_vpixq_pre<=(o_vpix_outer(0), o_vpix_inner(5), o_vpix_outer(1), o_vpix_outer(2)); + ELSE + o_vpixq_pre<=(o_vpix_outer(0), o_vpix_outer(1), o_vpix_inner(5), o_vpix_outer(2)); + END IF; + END IF; + + -- CYCLE 9 + o_vpixq<=o_vpixq_pre; + + -- BILINEAR / SHARP BILINEAR ----------------------- + -- C8 : Pre-calc Sharp Bilinear + o_v_sbil_t<=sbil_frac1(o_vfrac); + + -- C9 : Select + o_v_bil_frac<=(OTHERS =>'0'); + IF o_vmode(0)='1' THEN -- Bilinear + IF MASK(MASK_BILINEAR)='1' THEN + o_v_bil_frac<=bil_frac(o_vfrac); + END IF; + ELSE -- Sharp Bilinear + IF MASK(MASK_SHARP_BILINEAR)='1' THEN + o_v_bil_frac<=sbil_frac2(o_vfrac,o_v_sbil_t); + END IF; + END IF; + + -- C10 : + o_v_bil_t<=bil_calc(o_v_bil_frac,o_vpixq); + + -- C11 : Nearest / Bilinear / Sharp Bilinear + o_v_bil_pix.r<=bound(o_v_bil_t.r,8+FRAC); + o_v_bil_pix.g<=bound(o_v_bil_t.g,8+FRAC); + o_v_bil_pix.b<=bound(o_v_bil_t.b,8+FRAC); + + -- BICUBIC ----------------------------------------- + -- C9 : Bicubic coefficients A,B,C,D + -- C9 : Bicubic calc T1 = X.D + C + o_v_bic_abcd1<=bic_calc0(o_vfrac,o_vpixq); + o_v_bic_tt1<=bic_calc1(o_vfrac,bic_calc0(o_vfrac,o_vpixq)); + + -- C10 : Bicubic calc T2 = X.T1 + B + o_v_bic_abcd2<=o_v_bic_abcd1; + o_v_bic_tt2<=bic_calc2(o_vfrac,o_v_bic_tt1,o_v_bic_abcd1); + + -- C11 : Bicubic final Y = X.T2 + A + o_v_bic_pix<=bic_calc3(o_vfrac,o_v_bic_tt2,o_v_bic_abcd2); + + -- POLYPHASE --------------------------------------- + -- C3 : Setup luminance + o_v_lum_pix<=o_vpix_inner(0); + + -- C4-C9 in PolyFetch + + -- C10 : Apply polyphase + o_v_poly_t<=poly_calc(o_v_poly_phase,o_vpixq); + + -- C11 : Bound + o_v_poly_pix<=poly_final(o_v_poly_t); + + -- CYCLE 12 ----------------------------------------- + o_hs<=o_hsv(11); + o_vs<=o_vsv(11); + o_de<=o_dev(11); + o_vbl<=o_end(11); + o_r<=x"00"; + o_g<=x"00"; + o_b<=x"00"; + o_brd<= not o_pev(11); + + CASE o_vmode(2 DOWNTO 0) IS + WHEN "000" => -- Nearest + IF MASK(MASK_NEAREST)='1' THEN + o_r<=o_v_poly_pix.r; + o_g<=o_v_poly_pix.g; + o_b<=o_v_poly_pix.b; + END IF; + WHEN "001" | "010" => -- Bilinear | Sharp Bilinear + IF MASK(MASK_BILINEAR)='1' OR + MASK(MASK_SHARP_BILINEAR)='1' THEN + o_r<=o_v_bil_pix.r; + o_g<=o_v_bil_pix.g; + o_b<=o_v_bil_pix.b; + END IF; + WHEN "011" => -- BiCubic + IF MASK(MASK_BICUBIC)='1' THEN + o_r<=o_v_bic_pix.r; + o_g<=o_v_bic_pix.g; + o_b<=o_v_bic_pix.b; + END IF; + + WHEN OTHERS => -- Polyphase + IF MASK(MASK_POLY)='1' THEN + o_r<=o_v_poly_pix.r; + o_g<=o_v_poly_pix.g; + o_b<=o_v_poly_pix.b; + END IF; + END CASE; + + IF o_pev(11)='0' THEN + o_r<=o_border(23 DOWNTO 16); -- Copy border colour + o_g<=o_border(15 DOWNTO 8); + o_b<=o_border(7 DOWNTO 0); + END IF; + + ---------------------------------------------------- + END IF; + END IF; + END PROCESS VSCAL; + + ----------------------------------------------------------------------------- + -- Low Lag syntoniser interface + o_lltune<=(0 => i_vss, + 1 => i_pde, + 2 => i_inter, + 3 => i_flm, + 4 => o_vss, + 5 => i_pce, + 6 => i_clk, + 7 => o_clk, + OTHERS =>'0'); + + ---------------------------------------------------------------------------- END ARCHITECTURE rtl; diff --git a/sys/build_id.tcl b/sys/build_id.tcl index bb2dc67..b43b9d9 100644 --- a/sys/build_id.tcl +++ b/sys/build_id.tcl @@ -1,73 +1,73 @@ - -# Build TimeStamp Verilog Module -# Jeff Wiencrot - 8/1/2011 -# Sorgelig - 02/11/2019 -proc generateBuildID_Verilog {} { - - # Get the timestamp (see: http://www.altera.com/support/examples/tcl/tcl-date-time-stamp.html) - set buildDate "`define BUILD_DATE \"[clock format [ clock seconds ] -format %y%m%d]\"" - - # Create a Verilog file for output - set outputFileName "build_id.v" - - set fileData "" - if { [file exists $outputFileName]} { - set outputFile [open $outputFileName "r"] - set fileData [read $outputFile] - close $outputFile - } - - if {$buildDate ne $fileData} { - set outputFile [open $outputFileName "w"] - puts -nonewline $outputFile $buildDate - close $outputFile - # Send confirmation message to the Messages window - post_message "Generated: [pwd]/$outputFileName: $buildDate" - } -} - -# Build CDF file -# Sorgelig - 17/2/2018 -proc generateCDF {revision device outpath} { - - set outputFileName "jtag.cdf" - set outputFile [open $outputFileName "w"] - - puts $outputFile "JedecChain;" - puts $outputFile " FileRevision(JESD32A);" - puts $outputFile " DefaultMfr(6E);" - puts $outputFile "" - puts $outputFile " P ActionCode(Ign)" - puts $outputFile " Device PartName(SOCVHPS) MfrSpec(OpMask(0));" - puts $outputFile " P ActionCode(Cfg)" - puts $outputFile " Device PartName($device) Path(\"$outpath/\") File(\"$revision.sof\") MfrSpec(OpMask(1));" - puts $outputFile "ChainEnd;" - puts $outputFile "" - puts $outputFile "AlteraBegin;" - puts $outputFile " ChainType(JTAG);" - puts $outputFile "AlteraEnd;" -} - -set project_name [lindex $quartus(args) 1] -set revision [lindex $quartus(args) 2] - -if {[project_exists $project_name]} { - if {[string equal "" $revision]} { - project_open $project_name -revision [get_current_revision $project_name] - } else { - project_open $project_name -revision $revision - } -} else { - post_message -type error "Project $project_name does not exist" - exit -} - -set device [get_global_assignment -name DEVICE] -set outpath [get_global_assignment -name PROJECT_OUTPUT_DIRECTORY] - -if [is_project_open] { - project_close -} - -generateBuildID_Verilog -generateCDF $revision $device $outpath + +# Build TimeStamp Verilog Module +# Jeff Wiencrot - 8/1/2011 +# Sorgelig - 02/11/2019 +proc generateBuildID_Verilog {} { + + # Get the timestamp (see: http://www.altera.com/support/examples/tcl/tcl-date-time-stamp.html) + set buildDate "`define BUILD_DATE \"[clock format [ clock seconds ] -format %y%m%d]\"" + + # Create a Verilog file for output + set outputFileName "build_id.v" + + set fileData "" + if { [file exists $outputFileName]} { + set outputFile [open $outputFileName "r"] + set fileData [read $outputFile] + close $outputFile + } + + if {$buildDate ne $fileData} { + set outputFile [open $outputFileName "w"] + puts -nonewline $outputFile $buildDate + close $outputFile + # Send confirmation message to the Messages window + post_message "Generated: [pwd]/$outputFileName: $buildDate" + } +} + +# Build CDF file +# Sorgelig - 17/2/2018 +proc generateCDF {revision device outpath} { + + set outputFileName "jtag.cdf" + set outputFile [open $outputFileName "w"] + + puts $outputFile "JedecChain;" + puts $outputFile " FileRevision(JESD32A);" + puts $outputFile " DefaultMfr(6E);" + puts $outputFile "" + puts $outputFile " P ActionCode(Ign)" + puts $outputFile " Device PartName(SOCVHPS) MfrSpec(OpMask(0));" + puts $outputFile " P ActionCode(Cfg)" + puts $outputFile " Device PartName($device) Path(\"$outpath/\") File(\"$revision.sof\") MfrSpec(OpMask(1));" + puts $outputFile "ChainEnd;" + puts $outputFile "" + puts $outputFile "AlteraBegin;" + puts $outputFile " ChainType(JTAG);" + puts $outputFile "AlteraEnd;" +} + +set project_name [lindex $quartus(args) 1] +set revision [lindex $quartus(args) 2] + +if {[project_exists $project_name]} { + if {[string equal "" $revision]} { + project_open $project_name -revision [get_current_revision $project_name] + } else { + project_open $project_name -revision $revision + } +} else { + post_message -type error "Project $project_name does not exist" + exit +} + +set device [get_global_assignment -name DEVICE] +set outpath [get_global_assignment -name PROJECT_OUTPUT_DIRECTORY] + +if [is_project_open] { + project_close +} + +generateBuildID_Verilog +generateCDF $revision $device $outpath diff --git a/sys/ddr_svc.sv b/sys/ddr_svc.sv index abcd4fa..ed24d4e 100644 --- a/sys/ddr_svc.sv +++ b/sys/ddr_svc.sv @@ -1,108 +1,108 @@ -// -// Copyright (c) 2020 Alexey Melnikov -// -// -// This source file is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This source file is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -// -// ------------------------------------------ -// - -// 16-bit version - -module ddr_svc -( - input clk, - - input ram_waitrequest, - output [7:0] ram_burstcnt, - output [28:0] ram_addr, - input [63:0] ram_readdata, - input ram_read_ready, - output reg ram_read, - output [63:0] ram_writedata, - output [7:0] ram_byteenable, - output reg ram_write, - - output [7:0] ram_bcnt, - - input [31:3] ch0_addr, - input [7:0] ch0_burst, - output [63:0] ch0_data, - input ch0_req, - output ch0_ready, - - input [31:3] ch1_addr, - input [7:0] ch1_burst, - output [63:0] ch1_data, - input ch1_req, - output ch1_ready -); - -assign ram_burstcnt = ram_burst; -assign ram_byteenable = 8'hFF; -assign ram_addr = ram_address; -assign ram_writedata = 0; - -assign ch0_data = ram_q[0]; -assign ch1_data = ram_q[1]; -assign ch0_ready = ready[0]; -assign ch1_ready = ready[1]; - -reg [7:0] ram_burst; -reg [63:0] ram_q[2]; -reg [31:3] ram_address; -reg [1:0] ack = 0; -reg [1:0] ready; -reg state = 0; -reg ch = 0; - -always @(posedge clk) begin - ready <= 0; - - if(!ram_waitrequest) begin - ram_read <= 0; - ram_write <= 0; - - case(state) - 0: if(ch0_req != ack[0]) begin - ack[0] <= ch0_req; - ram_address <= ch0_addr; - ram_burst <= ch0_burst; - ram_read <= 1; - ch <= 0; - ram_bcnt <= 8'hFF; - state <= 1; - end - else if(ch1_req != ack[1]) begin - ack[1] <= ch1_req; - ram_address <= ch1_addr; - ram_burst <= ch1_burst; - ram_read <= 1; - ch <= 1; - ram_bcnt <= 8'hFF; - state <= 1; - end - 1: begin - if(ram_read_ready) begin - ram_bcnt <= ram_bcnt + 1'd1; - ram_q[ch] <= ram_readdata; - ready[ch] <= 1; - if ((ram_bcnt+2'd2) == ram_burst) state <= 0; - end - end - endcase - end -end - -endmodule +// +// Copyright (c) 2020 Alexey Melnikov +// +// +// This source file is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This source file is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// ------------------------------------------ +// + +// 16-bit version + +module ddr_svc +( + input clk, + + input ram_waitrequest, + output [7:0] ram_burstcnt, + output [28:0] ram_addr, + input [63:0] ram_readdata, + input ram_read_ready, + output reg ram_read, + output [63:0] ram_writedata, + output [7:0] ram_byteenable, + output reg ram_write, + + output [7:0] ram_bcnt, + + input [31:3] ch0_addr, + input [7:0] ch0_burst, + output [63:0] ch0_data, + input ch0_req, + output ch0_ready, + + input [31:3] ch1_addr, + input [7:0] ch1_burst, + output [63:0] ch1_data, + input ch1_req, + output ch1_ready +); + +assign ram_burstcnt = ram_burst; +assign ram_byteenable = 8'hFF; +assign ram_addr = ram_address; +assign ram_writedata = 0; + +assign ch0_data = ram_q[0]; +assign ch1_data = ram_q[1]; +assign ch0_ready = ready[0]; +assign ch1_ready = ready[1]; + +reg [7:0] ram_burst; +reg [63:0] ram_q[2]; +reg [31:3] ram_address; +reg [1:0] ack = 0; +reg [1:0] ready; +reg state = 0; +reg ch = 0; + +always @(posedge clk) begin + ready <= 0; + + if(!ram_waitrequest) begin + ram_read <= 0; + ram_write <= 0; + + case(state) + 0: if(ch0_req != ack[0]) begin + ack[0] <= ch0_req; + ram_address <= ch0_addr; + ram_burst <= ch0_burst; + ram_read <= 1; + ch <= 0; + ram_bcnt <= 8'hFF; + state <= 1; + end + else if(ch1_req != ack[1]) begin + ack[1] <= ch1_req; + ram_address <= ch1_addr; + ram_burst <= ch1_burst; + ram_read <= 1; + ch <= 1; + ram_bcnt <= 8'hFF; + state <= 1; + end + 1: begin + if(ram_read_ready) begin + ram_bcnt <= ram_bcnt + 1'd1; + ram_q[ch] <= ram_readdata; + ready[ch] <= 1; + if ((ram_bcnt+2'd2) == ram_burst) state <= 0; + end + end + endcase + end +end + +endmodule diff --git a/sys/f2sdram_safe_terminator.sv b/sys/f2sdram_safe_terminator.sv new file mode 100644 index 0000000..3586365 --- /dev/null +++ b/sys/f2sdram_safe_terminator.sv @@ -0,0 +1,250 @@ +// ============================================================================ +// +// f2sdram_safe_terminator for MiSTer platform +// +// ============================================================================ +// Copyright (c) 2021 bellwood420 +// +// Background: +// +// Terminating a transaction of burst writing(/reading) in its midstream +// seems to cause an illegal state to f2sdram interface. +// +// Forced reset request that occurs when loading other core is inevitable. +// +// So if it happens exactly within the transaction period, +// unexpected issues with accessing to f2sdram interface will be caused +// in next loaded core. +// +// It seems that only way to reset broken f2sdram interface is to reset +// whole SDRAM Controller Subsystem from HPS via permodrst register +// in Reset Manager. +// But it cannot be done safely while Linux is running. +// It is usually done when cold or warm reset is issued in HPS. +// +// Main_MiSTer is issuing reset for FPGA <> HPS bridges +// via brgmodrst register in Reset Manager when loading rbf. +// But it has no effect on f2sdram interface. +// f2sdram interface seems to belong to SDRAM Controller Subsystem +// rather than FPGA-to-HPS bridge. +// +// Main_MiSTer is also trying to issuing reset for f2sdram ports +// via fpgaportrst register in SDRAM Controller Subsystem when loading rbf. +// But according to the Intel's document, fpgaportrst register can be +// used to stretch the port reset. +// It seems that it cannot be used to assert the port reset. +// +// According to the Intel's document, there seems to be a reset port on +// Avalon-MM slave interface, but it cannot be found in Qsys generated HDL. +// +// To conclude, the only thing FPGA can do is not to break the transaction. +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// +// Purpose: +// To prevent the issue, this module completes ongoing transaction +// on behalf of user logic, when reset is asserted. +// +// Usage: +// Insert this module into the bus line between +// f2sdram (Avalon-MM slave) and user logic (Avalon-MM master). +// +// Notice: +// Asynchronous reset request is not supported. +// Please feed reset request synchronized to clock. +// +module f2sdram_safe_terminator #( + parameter DATA_WIDTH = 64, + parameter BURSTCOUNT_WIDTH = 8 +) ( + // clk should be the same as one provided to f2sdram port + // clk should not be stop when reset is asserted + input clk, + // rst_req_sync should be synchronized to clk + // Asynchronous reset request is not supported + input rst_req_sync, + + // Master port: connecting to Alavon-MM slave(f2sdram) + input waitrequest_master, + output [BURSTCOUNT_WIDTH-1:0] burstcount_master, + output [ADDRESS_WITDH-1:0] address_master, + input [DATA_WIDTH-1:0] readdata_master, + input readdatavalid_master, + output read_master, + output [DATA_WIDTH-1:0] writedata_master, + output [BYTEENABLE_WIDTH-1:0] byteenable_master, + output write_master, + + // Slave port: connecting to Alavon-MM master(user logic) + output waitrequest_slave, + input [BURSTCOUNT_WIDTH-1:0] burstcount_slave, + input [ADDRESS_WITDH-1:0] address_slave, + output [DATA_WIDTH-1:0] readdata_slave, + output readdatavalid_slave, + input read_slave, + input [DATA_WIDTH-1:0] writedata_slave, + input [BYTEENABLE_WIDTH-1:0] byteenable_slave, + input write_slave +); + +localparam BYTEENABLE_WIDTH = DATA_WIDTH/8; +localparam ADDRESS_WITDH = 32-$clog2(BYTEENABLE_WIDTH); + +/* +* Capture init reset deaseert +*/ +reg init_reset_deasserted = 1'b0; + +always_ff @(posedge clk) begin + if (!rst_req_sync) begin + init_reset_deasserted <= 1'b1; + end +end + +/* +* Lock stage +*/ +reg lock_stage = 1'b0; + +always_ff @(posedge clk) begin + if (rst_req_sync) begin + // Reset assert + if (init_reset_deasserted) begin + lock_stage <= 1'b1; + end + end + else begin + // Reset deassert + lock_stage <= 1'b0; + end +end + +/* +* Write burst transaction observer +*/ +reg state_write = 1'b0; +wire next_state_write; + +wire burst_write_start = !state_write && next_state_write; +wire valid_write_data = state_write && !waitrequest_master; +wire burst_write_end = state_write && (write_burstcounter == write_burstcount_latch - 1'd1); +wire valid_non_burst_write = !state_write && write_slave && (burstcount_slave == 1) && !waitrequest_master; + +reg [BURSTCOUNT_WIDTH-1:0] write_burstcounter = 0; +reg [BURSTCOUNT_WIDTH-1:0] write_burstcount_latch = 0; +reg [ADDRESS_WITDH-1:0] write_address_latch = 0; + +always_ff @(posedge clk) begin + state_write <= next_state_write; + + if (burst_write_start) begin + write_burstcounter <= waitrequest_master ? 1'd0 : 1'd1; + write_burstcount_latch <= burstcount_slave; + write_address_latch <= address_slave; + end + else if (valid_write_data) begin + write_burstcounter <= write_burstcounter + 1'd1; + end +end + +always_comb begin + if (!state_write) begin + if (valid_non_burst_write) + next_state_write = 1'b0; + else if (write_slave) + next_state_write = 1'b1; + else + next_state_write = 1'b0; + end + else begin + if (burst_write_end) + next_state_write = 1'b0; + else + next_state_write = 1'b1; + end +end + +reg [BURSTCOUNT_WIDTH-1:0] write_terminate_counter = 0; +reg [BURSTCOUNT_WIDTH-1:0] burstcount_latch = 0; +reg [ADDRESS_WITDH-1:0] address_latch = 0; + +reg terminating = 0; +reg read_terminating = 0; +reg write_terminating = 0; + +wire on_write_transaction = state_write && next_state_write; +wire on_start_write_transaction = !state_write && next_state_write; + +always_ff @(posedge clk) begin + if (rst_req_sync) begin + // Reset assert + if (init_reset_deasserted) begin + if (!lock_stage) begin + // Even not knowing reading is in progress or not, + // if it is in progress, it will finish at some point, and no need to do anything. + // Assume that reading is in progress when we are not on write transaction. + burstcount_latch <= burstcount_slave; + address_latch <= address_slave; + terminating <= 1; + + if (on_write_transaction) begin + write_terminating <= 1; + burstcount_latch <= write_burstcount_latch; + address_latch <= write_address_latch; + write_terminate_counter <= waitrequest_master ? write_burstcounter : write_burstcounter + 1'd1; + end + else if (on_start_write_transaction) begin + if (!valid_non_burst_write) begin + write_terminating <= 1; + write_terminate_counter <= waitrequest_master ? 1'd0 : 1'd1; + end + end + else if (read_slave && waitrequest_master) begin + // Need to keep read signal, burstcount and address until waitrequest_master deasserted + read_terminating <= 1; + end + end + else if (!waitrequest_master) begin + read_terminating <= 0; + end + end + end + else begin + // Reset deassert + if (!write_terminating) terminating <= 0; + read_terminating <= 0; + end + + if (write_terminating) begin + // Continue write transaction until the end + if (!waitrequest_master) write_terminate_counter <= write_terminate_counter + 1'd1; + if (write_terminate_counter == burstcount_latch - 1'd1) write_terminating <= 0; + end +end + +/* +* Bus mux depending on the stage. +*/ +always_comb begin + if (terminating) begin + burstcount_master = burstcount_latch; + address_master = address_latch; + read_master = read_terminating; + write_master = write_terminating; + byteenable_master = 0; + end + else begin + burstcount_master = burstcount_slave; + address_master = address_slave; + read_master = read_slave; + byteenable_master = byteenable_slave; + write_master = write_slave; + end +end + +// Just passing master <-> slave +assign writedata_master = writedata_slave; +assign readdata_slave = readdata_master; +assign readdatavalid_slave = readdatavalid_master; +assign waitrequest_slave = waitrequest_master; + +endmodule diff --git a/sys/gamma_corr.sv b/sys/gamma_corr.sv index 7fd9368..321b83f 100644 --- a/sys/gamma_corr.sv +++ b/sys/gamma_corr.sv @@ -32,8 +32,10 @@ always @(posedge clk_vid) begin reg [7:0] R_gamma, G_gamma; reg hs,vs,hb,vb; reg [1:0] ctr = 0; + reg old_ce; - if(ce_pix) begin + old_ce <= ce_pix; + if(~old_ce & ce_pix) begin {R_in,G_in,B_in} <= RGB_in; hs <= HSync; vs <= VSync; hb <= HBlank; vb <= VBlank; diff --git a/sys/hdmi_config.sv b/sys/hdmi_config.sv deleted file mode 100644 index 775a560..0000000 --- a/sys/hdmi_config.sv +++ /dev/null @@ -1,239 +0,0 @@ - -module hdmi_config -( - // Host Side - input iCLK, - input iRST_N, - - input dvi_mode, - input audio_96k, - input [1:0] limited, - input ypbpr, - - output reg done, - - // I2C Side - output I2C_SCL, - inout I2C_SDA -); - -// Internal Registers/Wires -reg mI2C_GO = 0; -wire mI2C_END; -wire mI2C_ACK; -reg [15:0] LUT_DATA; -reg [7:0] LUT_INDEX = 0; - -i2c #(50_000_000, 20_000) i2c_av -( - .CLK(iCLK), - - .I2C_SCL(I2C_SCL), // I2C CLOCK - .I2C_SDA(I2C_SDA), // I2C DATA - - .I2C_ADDR('h39), // 0x39 is the Slave Address of the ADV7513 chip! - .I2C_WLEN(1), - .I2C_WDATA1(init_data[LUT_INDEX][15:8]), // SUB_ADDR - .I2C_WDATA2(init_data[LUT_INDEX][7:0]), // DATA - .START(mI2C_GO), // START transfer - .READ(0), - .END(mI2C_END), // END transfer - .ACK(mI2C_ACK) // ACK -); - -////////////////////// Config Control //////////////////////////// -always@(posedge iCLK or negedge iRST_N) begin - reg [1:0] mSetup_ST = 0; - - if(!iRST_N) begin - LUT_INDEX <= 0; - mSetup_ST <= 0; - mI2C_GO <= 0; - done <= 0; - end else begin - if(init_data[LUT_INDEX] != 16'hFFFF) begin - case(mSetup_ST) - 0: begin - mI2C_GO <= 1; - mSetup_ST <= 1; - end - 1: if(~mI2C_END) mSetup_ST <= 2; - 2: begin - mI2C_GO <= 0; - if(mI2C_END) begin - mSetup_ST <= 0; - if(!mI2C_ACK) LUT_INDEX <= LUT_INDEX + 8'd1; - end - end - endcase - end - else done <= 1; - end -end - -//////////////////////////////////////////////////////////////////// -///////////////////// Config Data LUT ////////////////////////// - -wire [15:0] init_data[82] = -'{ - 16'h9803, // ADI required Write. - - {8'hD6, 8'b1100_0000}, // [7:6] HPD Control... - // 00 = HPD is from both HPD pin or CDC HPD - // 01 = HPD is from CDC HPD - // 10 = HPD is from HPD pin - // 11 = HPD is always high - - 16'h4110, // Power Down control - 16'h9A70, // ADI required Write. - 16'h9C30, // ADI required Write. - {8'h9D, 8'b0110_0001}, // [7:4] must be b0110!. - // [3:2] b00 = Input clock not divided. b01 = Clk divided by 2. b10 = Clk divided by 4. b11 = invalid! - // [1:0] must be b01! - 16'hA2A4, // ADI required Write. - 16'hA3A4, // ADI required Write. - 16'hE0D0, // ADI required Write. - - - 16'h35_40, - 16'h36_D9, - 16'h37_0A, - 16'h38_00, - 16'h39_2D, - 16'h3A_00, - - {8'h16, 8'b0011_1000}, // Output Format 444 [7]=0. - // [6] must be 0! - // Colour Depth for Input Video data [5:4] b11 = 8-bit. - // Input Style [3:2] b10 = Style 1 (ignored when using 444 input). - // DDR Input Edge falling [1]=0 (not using DDR atm). - // Output Colour Space RGB [0]=0. - - {8'h17, 8'b01100010}, // Aspect ratio 16:9 [1]=1, 4:3 [1]=0 - - {8'h18, ypbpr ? 8'h88 : limited[0] ? 8'h8D : limited[1] ? 8'h8E : 8'h00}, // CSC Scaling Factors and Coefficients for RGB Full->Limited. - {8'h19, ypbpr ? 8'h2E : limited[0] ? 8'hBC : 8'hFE}, // Taken from table in ADV7513 Programming Guide. - {8'h1A, ypbpr ? 8'h18 : 8'h00}, // CSC Channel A. - {8'h1B, ypbpr ? 8'h93 : 8'h00}, - {8'h1C, ypbpr ? 8'h1F : 8'h00}, - {8'h1D, ypbpr ? 8'h3F : 8'h00}, - {8'h1E, ypbpr ? 8'h08 : 8'h01}, - {8'h1F, 8'h00}, - - {8'h20, ypbpr ? 8'h03 : 8'h00}, // CSC Channel B. - {8'h21, ypbpr ? 8'h67 : 8'h00}, - {8'h22, ypbpr ? 8'h0B : limited[0] ? 8'h0D : 8'h0E}, - {8'h23, ypbpr ? 8'h71 : limited[0] ? 8'hBC : 8'hFE}, - {8'h24, ypbpr ? 8'h01 : 8'h00}, - {8'h25, ypbpr ? 8'h28 : 8'h00}, - {8'h26, ypbpr ? 8'h00 : 8'h01}, - {8'h27, 8'h00}, - - {8'h28, ypbpr ? 8'h1E : 8'h00}, // CSC Channel C. - {8'h29, ypbpr ? 8'h21 : 8'h00}, - {8'h2A, ypbpr ? 8'h19 : 8'h00}, - {8'h2B, ypbpr ? 8'hB2 : 8'h00}, - {8'h2C, ypbpr ? 8'h08 : limited[0] ? 8'h0D : 8'h0E}, - {8'h2D, ypbpr ? 8'h2D : limited[0] ? 8'hBC : 8'hFE}, - {8'h2E, ypbpr ? 8'h08 : 8'h01}, - {8'h2F, 8'h00}, - - {8'h3B, 8'b0000_0000}, // Pixel repetition [6:5] b00 AUTO. [4:3] b00 x1 mult of input clock. [2:1] b00 x1 pixel rep to send to HDMI Rx. - - 16'h4000, // General Control Packet Enable - - {8'h48, 8'b0000_1000}, // [6]=0 Normal bus order! - // [5] DDR Alignment. - // [4:3] b01 Data right justified (for YCbCr 422 input modes). - - 16'h49A8, // ADI required Write. - 16'h4C00, // ADI required Write. - - {8'h55, 8'b0001_0000}, // [7] must be 0!. Set RGB444 in AVinfo Frame [6:5], Set active format [4]. - // AVI InfoFrame Valid [4]. - // Bar Info [3:2] b00 Bars invalid. b01 Bars vertical. b10 Bars horizontal. b11 Bars both. - // Scan Info [1:0] b00 (No data). b01 TV. b10 PC. b11 None. - - {8'h57, 1'b0, // [7] IT Content. 0 - No. 1 - Yes (type set in register h59). - 3'b000, // [6:4] Color space (ignored for RGB) - (ypbpr | limited) ? 2'b01 : 2'b10, // [3:2] RGB Quantization range - 2'b00}, // [1:0] Non-Uniform Scaled: 00 - None. 01 - Horiz. 10 - Vert. 11 - Both. - - 16'h7301, - - {8'h94, 8'b1000_0000}, // [7]=1 HPD Interrupt ENabled. - - 16'h9902, // ADI required Write. - 16'h9B18, // ADI required Write. - - 16'h9F00, // ADI required Write. - - {8'hA1, 8'b0000_0000}, // [6]=1 Monitor Sense Power Down DISabled. - - 16'hA408, // ADI required Write. - 16'hA504, // ADI required Write. - 16'hA600, // ADI required Write. - 16'hA700, // ADI required Write. - 16'hA800, // ADI required Write. - 16'hA900, // ADI required Write. - 16'hAA00, // ADI required Write. - 16'hAB40, // ADI required Write. - - {8'hAF, 6'b0000_01,~dvi_mode,1'b0}, // [7]=0 HDCP Disabled. - // [6:5] must be b00! - // [4]=0 Current frame is unencrypted - // [3:2] must be b01! - // [1]=1 HDMI Mode. - // [0] must be b0! - - 16'hB900, // ADI required Write. - - {8'hBA, 8'b0110_0000}, // [7:5] Input Clock delay... - // b000 = -1.2ns. - // b001 = -0.8ns. - // b010 = -0.4ns. - // b011 = No delay. - // b100 = 0.4ns. - // b101 = 0.8ns. - // b110 = 1.2ns. - // b111 = 1.6ns. - - 16'hBB00, // ADI required Write. - - 16'hDE9C, // ADI required Write. - 16'hE460, // ADI required Write. - 16'hFA7D, // Nbr of times to search for good phase - - - // (Audio stuff on Programming Guide, Page 66)... - - {8'h0A, 8'b0000_0000}, // [6:4] Audio Select. b000 = I2S. - // [3:2] Audio Mode. (HBR stuff, leave at 00!). - - {8'h0B, 8'b0000_1110}, // - - {8'h0C, 8'b0000_0100}, // [7] 0 = Use sampling rate from I2S stream. 1 = Use samp rate from I2C Register. - // [6] 0 = Use Channel Status bits from stream. 1 = Use Channel Status bits from I2C register. - // [2] 1 = I2S0 Enable. - // [1:0] I2S Format: 00 = Standard. 01 = Right Justified. 10 = Left Justified. 11 = AES. - - {8'h0D, 8'b0001_0000}, // [4:0] I2S Bit (Word) Width for Right-Justified. - {8'h14, 8'b0000_0010}, // [3:0] Audio Word Length. b0010 = 16 bits. - {8'h15, audio_96k, 7'b010_0000}, // I2S Sampling Rate [7:4]. b0000 = (44.1KHz). b0010 = 48KHz. - // Input ID [3:1] b000 (0) = 24-bit RGB 444 or YCrCb 444 with Separate Syncs. - - // Audio Clock Config - 16'h0100, // - audio_96k ? 16'h0230 : 16'h0218, // Set N Value 12288/6144 - 16'h0300, // - - 16'h0701, // - 16'h0822, // Set CTS Value 74250 - 16'h090A, // - - 16'hFFFF // END -}; - -//////////////////////////////////////////////////////////////////// - -endmodule \ No newline at end of file diff --git a/sys/hps_io.v b/sys/hps_io.sv similarity index 74% rename from sys/hps_io.v rename to sys/hps_io.sv index 23ade3f..92cdf77 100644 --- a/sys/hps_io.v +++ b/sys/hps_io.sv @@ -24,14 +24,13 @@ // Use buffer to access SD card. It's time-critical part. // // WIDE=1 for 16 bit file I/O -// VDNUM 1-4 -module hps_io #(parameter STRLEN=0, PS2DIV=0, WIDE=0, VDNUM=1, PS2WE=0) +// VDNUM 1..10 +// BLKSZ 0..7: 0 = 128, 1 = 256, 2 = 512(default), .. 7 = 16384 +// +module hps_io #(parameter CONF_STR, CONF_STR_BRAM=0, PS2DIV=0, WIDE=0, VDNUM=1, BLKSZ=2, PS2WE=0, STRLEN=$size(CONF_STR)>>3) ( input clk_sys, - inout [45:0] HPS_BUS, - - // parameter STRLEN and the actual length of conf_str have to match - input [(8*STRLEN)-1:0] conf_str, + inout [48:0] HPS_BUS, // buttons up to 32 output reg [31:0] joystick_0, @@ -40,14 +39,28 @@ module hps_io #(parameter STRLEN=0, PS2DIV=0, WIDE=0, VDNUM=1, PS2WE=0) output reg [31:0] joystick_3, output reg [31:0] joystick_4, output reg [31:0] joystick_5, - + // analog -127..+127, Y: [15:8], X: [7:0] - output reg [15:0] joystick_analog_0, - output reg [15:0] joystick_analog_1, - output reg [15:0] joystick_analog_2, - output reg [15:0] joystick_analog_3, - output reg [15:0] joystick_analog_4, - output reg [15:0] joystick_analog_5, + output reg [15:0] joystick_l_analog_0, + output reg [15:0] joystick_l_analog_1, + output reg [15:0] joystick_l_analog_2, + output reg [15:0] joystick_l_analog_3, + output reg [15:0] joystick_l_analog_4, + output reg [15:0] joystick_l_analog_5, + + output reg [15:0] joystick_r_analog_0, + output reg [15:0] joystick_r_analog_1, + output reg [15:0] joystick_r_analog_2, + output reg [15:0] joystick_r_analog_3, + output reg [15:0] joystick_r_analog_4, + output reg [15:0] joystick_r_analog_5, + + input [15:0] joystick_0_rumble, // 15:8 - 'large' rumble motor magnitude, 7:0 'small' rumble motor magnitude + input [15:0] joystick_1_rumble, + input [15:0] joystick_2_rumble, + input [15:0] joystick_3_rumble, + input [15:0] joystick_4_rumble, + input [15:0] joystick_5_rumble, // paddle 0..255 output reg [7:0] paddle_0, @@ -65,69 +78,6 @@ module hps_io #(parameter STRLEN=0, PS2DIV=0, WIDE=0, VDNUM=1, PS2WE=0) output reg [8:0] spinner_4, output reg [8:0] spinner_5, - output [1:0] buttons, - output forced_scandoubler, - output direct_video, - - output reg [63:0] status, - input [63:0] status_in, - input status_set, - input [15:0] status_menumask, - - input info_req, - input [7:0] info, - - //toggle to force notify of video mode change - input new_vmode, - - // SD config - output reg [VD:0] img_mounted, // signaling that new image has been mounted - output reg img_readonly, // mounted as read only. valid only for active bit in img_mounted - output reg [63:0] img_size, // size of image in bytes. valid only for active bit in img_mounted - - // SD block level access - input [31:0] sd_lba, - input [VD:0] sd_rd, // only single sd_rd can be active at any given time - input [VD:0] sd_wr, // only single sd_wr can be active at any given time - output reg sd_ack, - - // do not use in new projects. - // CID and CSD are fake except CSD image size field. - input sd_conf, - output reg sd_ack_conf, - - // SD byte level access. Signals for 2-PORT altsyncram. - output reg [AW:0] sd_buff_addr, - output reg [DW:0] sd_buff_dout, - input [DW:0] sd_buff_din, - output reg sd_buff_wr, - input [15:0] sd_req_type, - - // ARM -> FPGA download - output reg ioctl_download = 0, // signal indicating an active download - output reg [15:0] ioctl_index, // menu index used to upload the file - output reg ioctl_wr, - output reg [26:0] ioctl_addr, // in WIDE mode address will be incremented by 2 - output reg [DW:0] ioctl_dout, - output reg ioctl_upload = 0, // signal indicating an active upload - input [DW:0] ioctl_din, - output reg ioctl_rd, - output reg [31:0] ioctl_file_ext, - input ioctl_wait, - - // [15]: 0 - unset, 1 - set. [1:0]: 0 - none, 1 - 32MB, 2 - 64MB, 3 - 128MB - // [14]: debug mode: [8]: 1 - phase up, 0 - phase down. [7:0]: amount of shift. - output reg [15:0] sdram_sz, - - // RTC MSM6242B layout - output reg [64:0] RTC, - - // Seconds since 1970-01-01 00:00:00 - output reg [32:0] TIMESTAMP, - - // UART flags - input [15:0] uart_mode, - // ps2 keyboard emulation output ps2_kbd_clk_out, output ps2_kbd_data_out, @@ -151,8 +101,70 @@ module hps_io #(parameter STRLEN=0, PS2DIV=0, WIDE=0, VDNUM=1, PS2WE=0) output reg [24:0] ps2_mouse = 0, output reg [15:0] ps2_mouse_ext = 0, // 15:8 - reserved(additional buttons), 7:0 - wheel movements + output [1:0] buttons, + output forced_scandoubler, + output direct_video, + input video_rotated, + + //toggle to force notify of video mode change + input new_vmode, + inout [21:0] gamma_bus, + output reg [127:0] status, + input [127:0] status_in, + input status_set, + input [15:0] status_menumask, + + input info_req, + input [7:0] info, + + // SD config + output reg [VD:0] img_mounted, // signaling that new image has been mounted + output reg img_readonly, // mounted as read only. valid only for active bit in img_mounted + output reg [63:0] img_size, // size of image in bytes. valid only for active bit in img_mounted + + // SD block level access + input [31:0] sd_lba[VDNUM], + input [5:0] sd_blk_cnt[VDNUM], // number of blocks-1, total size ((sd_blk_cnt+1)*(1<<(BLKSZ+7))) must be <= 16384! + input [VD:0] sd_rd, + input [VD:0] sd_wr, + output reg [VD:0] sd_ack, + + // SD byte level access. Signals for 2-PORT altsyncram. + output reg [AW:0] sd_buff_addr, + output reg [DW:0] sd_buff_dout, + input [DW:0] sd_buff_din[VDNUM], + output reg sd_buff_wr, + + // ARM -> FPGA download + output reg ioctl_download = 0, // signal indicating an active download + output reg [15:0] ioctl_index, // menu index used to upload the file + output reg ioctl_wr, + output reg [26:0] ioctl_addr, // in WIDE mode address will be incremented by 2 + output reg [DW:0] ioctl_dout, + output reg ioctl_upload = 0, // signal indicating an active upload + input ioctl_upload_req, // request to save (must be supported on HPS side for specific core) + input [7:0] ioctl_upload_index, + input [DW:0] ioctl_din, + output reg ioctl_rd, + output reg [31:0] ioctl_file_ext, + input ioctl_wait, + + // [15]: 0 - unset, 1 - set. [1:0]: 0 - none, 1 - 32MB, 2 - 64MB, 3 - 128MB + // [14]: debug mode: [8]: 1 - phase up, 0 - phase down. [7:0]: amount of shift. + output reg [15:0] sdram_sz, + + // RTC MSM6242B layout + output reg [64:0] RTC, + + // Seconds since 1970-01-01 00:00:00 + output reg [32:0] TIMESTAMP, + + // UART flags + output reg [7:0] uart_mode, + output reg [31:0] uart_speed, + // for core-specific extensions inout [35:0] EXT_BUS ); @@ -160,10 +172,8 @@ module hps_io #(parameter STRLEN=0, PS2DIV=0, WIDE=0, VDNUM=1, PS2WE=0) assign EXT_BUS[31:16] = HPS_BUS[31:16]; assign EXT_BUS[35:33] = HPS_BUS[35:33]; -localparam MAX_W = $clog2((512 > (STRLEN+1)) ? 512 : (STRLEN+1))-1; - localparam DW = (WIDE) ? 15 : 7; -localparam AW = (WIDE) ? 7 : 8; +localparam AW = (WIDE) ? 12 : 13; localparam VD = VDNUM-1; wire io_strobe= HPS_BUS[33]; @@ -186,22 +196,18 @@ assign forced_scandoubler = cfg[4]; //cfg[5] - ypbpr handled in sys_top assign direct_video = cfg[10]; -// command byte read by the io controller -wire [15:0] sd_cmd = -{ - 2'b00, - (VDNUM>=4) ? sd_wr[3] : 1'b0, - (VDNUM>=3) ? sd_wr[2] : 1'b0, - (VDNUM>=2) ? sd_wr[1] : 1'b0, +reg [3:0] sdn; +reg [3:0] sd_rrb = 0; +always_comb begin + int n, i; - (VDNUM>=4) ? sd_rd[3] : 1'b0, - (VDNUM>=3) ? sd_rd[2] : 1'b0, - (VDNUM>=2) ? sd_rd[1] : 1'b0, - - 4'h5, sd_conf, 1'b1, - sd_wr[0], - sd_rd[0] -}; + sdn = 0; + for(i = VDNUM - 1; i >= 0; i = i - 1) begin + n = i + sd_rrb; + if(n >= VDNUM) n = n - VDNUM; + if(sd_wr[n] | sd_rd[n]) sdn = n[3:0]; + end +end ///////////////////////////////////////////////////////// @@ -218,13 +224,26 @@ video_calc video_calc .vs_hdmi(HPS_BUS[44]), .f1(HPS_BUS[45]), .new_vmode(new_vmode), + .video_rotated(video_rotated), - .par_num(byte_cnt[3:0]), + .par_num(byte_cnt[4:0]), .dout(vc_dout) ); ///////////////////////////////////////////////////////// +localparam MAX_W = $clog2((64 > (STRLEN+2)) ? 64 : (STRLEN+2))-1; + +wire [7:0] conf_byte; +generate + if(CONF_STR_BRAM) begin + confstr_rom #(CONF_STR, STRLEN) confstr_rom(.*, .conf_addr(byte_cnt - 1'd1)); + end + else begin + assign conf_byte = CONF_STR[{(STRLEN - byte_cnt),3'b000} +:8]; + end +endgenerate + assign gamma_bus[20:0] = {clk_sys, gamma_en, gamma_wr, gamma_wr_addr, gamma_value}; reg gamma_en; reg gamma_wr; @@ -236,6 +255,8 @@ wire pressed = (ps2_key_raw[15:8] != 8'hf0); wire extended = (~pressed ? (ps2_key_raw[23:16] == 8'he0) : (ps2_key_raw[15:8] == 8'he0)); reg [MAX_W:0] byte_cnt; +reg [3:0] sdn_ack; +wire [15:0] disk = 16'd1 << io_din[11:8]; always@(posedge clk_sys) begin : uio_block reg [15:0] cmd; @@ -244,10 +265,15 @@ always@(posedge clk_sys) begin : uio_block reg [3:0] pdsp_idx; reg ps2skip = 0; reg [3:0] stflg = 0; - reg [63:0] status_req; + reg[127:0] status_req; reg old_status_set = 0; + reg old_upload_req = 0; + reg upload_req = 0; reg old_info = 0; reg [7:0] info_n = 0; + reg [15:0] tmp1; + reg [7:0] tmp2; + reg [3:0] sdn_r; old_status_set <= status_set; if(~old_status_set & status_set) begin @@ -255,6 +281,9 @@ always@(posedge clk_sys) begin : uio_block status_req <= status_in; end + old_upload_req <= ioctl_upload_req; + if(~old_upload_req & ioctl_upload_req) upload_req <= 1; + old_info <= info_req; if(~old_info & info_req) info_n <= info; @@ -279,7 +308,6 @@ always@(posedge clk_sys) begin : uio_block cmd <= 0; byte_cnt <= 0; sd_ack <= 0; - sd_ack_conf <= 0; io_dout <= 0; ps2skip <= 0; img_mounted <= 0; @@ -292,23 +320,35 @@ always@(posedge clk_sys) begin : uio_block if(byte_cnt == 0) begin cmd <= io_din; - case(io_din) - 'h19: sd_ack_conf <= 1; - 'h17, - 'h18: sd_ack <= 1; - 'h29: io_dout <= {4'hA, stflg}; - 'h2B: io_dout <= 1; - 'h2F: io_dout <= 1; - 'h32: io_dout <= gamma_bus[21]; - 'h36: begin io_dout <= info_n; info_n <= 0; end - 'h39: io_dout <= 1; + casex(io_din) + 'h16: begin io_dout <= {1'b1, sd_blk_cnt[sdn], BLKSZ[2:0], sdn, sd_wr[sdn], sd_rd[sdn]}; sdn_r <= sdn; end + 'h0X17, + 'h0X18: begin sd_ack <= disk[VD:0]; sdn_ack <= io_din[11:8]; end + 'h29: io_dout <= {4'hA, stflg}; +`ifdef MISTER_DISABLE_ADAPTIVE + 'h2B: io_dout <= {HPS_BUS[48:46],4'b0110}; +`else + 'h2B: io_dout <= {HPS_BUS[48:46],4'b0111}; +`endif + 'h2F: io_dout <= 1; + 'h32: io_dout <= gamma_bus[21]; + 'h36: begin io_dout <= info_n; info_n <= 0; end + 'h39: io_dout <= 1; + 'h3C: if(upload_req) begin io_dout <= {ioctl_upload_index, 8'd1}; upload_req <= 0; end + 'h3E: io_dout <= 1; // shadow mask + 'h003F: io_dout <= joystick_0_rumble; + 'h013F: io_dout <= joystick_1_rumble; + 'h023F: io_dout <= joystick_2_rumble; + 'h033F: io_dout <= joystick_3_rumble; + 'h043F: io_dout <= joystick_4_rumble; + 'h053F: io_dout <= joystick_5_rumble; endcase sd_buff_addr <= 0; if(io_din == 5) ps2_key_raw <= 0; end else begin - case(cmd) + casex(cmd) // buttons and switches 'h01: cfg <= io_din; 'h02: if(byte_cnt==1) joystick_0[15:0] <= io_din; else joystick_0[31:16] <= io_din; @@ -350,47 +390,41 @@ always@(posedge clk_sys) begin : uio_block end // reading config string, returning a byte from string - 'h14: if(byte_cnt < STRLEN + 1) io_dout[7:0] <= conf_str[(STRLEN - byte_cnt)<<3 +:8]; + 'h14: if(byte_cnt <= STRLEN) io_dout[7:0] <= conf_byte; // reading sd card status - 'h16: if(!byte_cnt[MAX_W:3]) begin - case(byte_cnt[2:0]) - 1: io_dout <= sd_cmd; - 2: io_dout <= sd_lba[15:0]; - 3: io_dout <= sd_lba[31:16]; - 4: io_dout <= sd_req_type; + 'h16: if(!byte_cnt[MAX_W:2]) begin + case(byte_cnt[1:0]) + 1: sd_rrb <= (sd_rrb == VD) ? 4'd0 : (sd_rrb + 1'd1); + 2: io_dout <= sd_lba[sdn_r][15:0]; + 3: io_dout <= sd_lba[sdn_r][31:16]; endcase end - // send SD config IO -> FPGA - // flag that download begins - // sd card knows data is config if sd_dout_strobe is asserted - // with sd_ack still being inactive (low) - 'h19, // send sector IO -> FPGA // flag that download begins - 'h17: begin + 'h0X17: begin sd_buff_dout <= io_din[DW:0]; b_wr <= 1; end // reading sd card write data - 'h18: begin + 'h0X18: begin if(~&sd_buff_addr) sd_buff_addr <= sd_buff_addr + 1'b1; - io_dout <= sd_buff_din; + io_dout <= sd_buff_din[sdn_ack]; end - // joystick analog + // joystick left analog 'h1a: if(!byte_cnt[MAX_W:2]) begin case(byte_cnt[1:0]) 1: {pdsp_idx,stick_idx} <= io_din[7:0]; // first byte is joystick index 2: case(stick_idx) - 0: joystick_analog_0 <= io_din; - 1: joystick_analog_1 <= io_din; - 2: joystick_analog_2 <= io_din; - 3: joystick_analog_3 <= io_din; - 4: joystick_analog_4 <= io_din; - 5: joystick_analog_5 <= io_din; + 0: joystick_l_analog_0 <= io_din; + 1: joystick_l_analog_1 <= io_din; + 2: joystick_l_analog_2 <= io_din; + 3: joystick_l_analog_3 <= io_din; + 4: joystick_l_analog_4 <= io_din; + 5: joystick_l_analog_5 <= io_din; 15: case(pdsp_idx) 0: paddle_0 <= io_din[7:0]; 1: paddle_1 <= io_din[7:0]; @@ -409,6 +443,21 @@ always@(posedge clk_sys) begin : uio_block endcase end + // joystick right analog + 'h3d: if(!byte_cnt[MAX_W:2]) begin + case(byte_cnt[1:0]) + 1: stick_idx <= io_din[3:0]; // first byte is joystick index + 2: case(stick_idx) + 0: joystick_r_analog_0 <= io_din; + 1: joystick_r_analog_1 <= io_din; + 2: joystick_r_analog_2 <= io_din; + 3: joystick_r_analog_3 <= io_din; + 4: joystick_r_analog_4 <= io_din; + 5: joystick_r_analog_5 <= io_din; + endcase + endcase + end + // notify image selection 'h1c: begin img_mounted <= io_din[VD:0] ? io_din[VD:0] : 1'b1; @@ -418,13 +467,17 @@ always@(posedge clk_sys) begin : uio_block // send image info 'h1d: if(byte_cnt<5) img_size[{byte_cnt-1'b1, 4'b0000} +:16] <= io_din; - // status, 64bit version - 'h1e: if(!byte_cnt[MAX_W:3]) begin - case(byte_cnt[2:0]) - 1: status[15:00] <= io_din; - 2: status[31:16] <= io_din; - 3: status[47:32] <= io_din; - 4: status[63:48] <= io_din; + // status, 128bit version + 'h1e: if(!byte_cnt[MAX_W:4]) begin + case(byte_cnt[3:0]) + 1: status[15:00] <= io_din; + 2: status[31:16] <= io_din; + 3: status[47:32] <= io_din; + 4: status[63:48] <= io_din; + 5: status[79:64] <= io_din; + 6: status[95:80] <= io_din; + 7: status[111:96] <= io_din; + 8: status[127:112] <= io_din; endcase end @@ -448,27 +501,28 @@ always@(posedge clk_sys) begin : uio_block 'h22: RTC[(byte_cnt-6'd1)<<4 +:16] <= io_din; //Video res. - 'h23: if(!byte_cnt[MAX_W:4]) io_dout <= vc_dout; + 'h23: if(!byte_cnt[MAX_W:5]) io_dout <= vc_dout; //RTC 'h24: TIMESTAMP[(byte_cnt-6'd1)<<4 +:16] <= io_din; - //UART flags - 'h28: io_dout <= uart_mode; - //status set - 'h29: if(!byte_cnt[MAX_W:3]) begin - case(byte_cnt[2:0]) + 'h29: if(!byte_cnt[MAX_W:4]) begin + case(byte_cnt[3:0]) 1: io_dout <= status_req[15:00]; 2: io_dout <= status_req[31:16]; 3: io_dout <= status_req[47:32]; 4: io_dout <= status_req[63:48]; + 5: io_dout <= status_req[79:64]; + 6: io_dout <= status_req[95:80]; + 7: io_dout <= status_req[111:96]; + 8: io_dout <= status_req[127:112]; endcase end //menu mask 'h2E: if(byte_cnt == 1) io_dout <= status_menumask; - + //sdram size set 'h31: if(byte_cnt == 1) sdram_sz <= io_din; @@ -479,6 +533,15 @@ always@(posedge clk_sys) begin : uio_block {gamma_wr, gamma_value} <= {1'b1,io_din[7:0]}; if (byte_cnt[1:0] == 3) byte_cnt <= 1; end + + // UART + 'h3b: if(!byte_cnt[MAX_W:2]) begin + case(byte_cnt[1:0]) + 1: tmp2 <= io_din[7:0]; + 2: tmp1 <= io_din; + 3: {uart_speed, uart_mode} <= {io_din, tmp1, tmp2}; + endcase + end endcase end end @@ -566,7 +629,7 @@ always@(posedge clk_sys) begin : fio_block reg has_cmd; reg [26:0] addr; reg wr; - + ioctl_rd <= 0; ioctl_wr <= wr; wr <= 0; @@ -599,7 +662,7 @@ always@(posedge clk_sys) begin : fio_block FIO_FILE_TX: begin cnt <= cnt + 1'd1; - case(cnt) + case(cnt) 0: if(io_din[7:0] == 8'hAA) begin ioctl_addr <= 0; ioctl_upload <= 1; @@ -806,14 +869,15 @@ module video_calc input vs_hdmi, input f1, input new_vmode, + input video_rotated, - input [3:0] par_num, + input [4:0] par_num, output reg [15:0] dout ); always @(posedge clk_sys) begin case(par_num) - 1: dout <= {|vid_int, vid_nres}; + 1: dout <= {video_rotated, |vid_int, vid_nres}; 2: dout <= vid_hcnt[15:0]; 3: dout <= vid_hcnt[31:16]; 4: dout <= vid_vcnt[15:0]; @@ -826,29 +890,58 @@ always @(posedge clk_sys) begin 11: dout <= vid_pix[31:16]; 12: dout <= vid_vtime_hdmi[15:0]; 13: dout <= vid_vtime_hdmi[31:16]; + 14: dout <= vid_ccnt[15:0]; + 15: dout <= vid_ccnt[31:16]; + 16: dout <= vid_pixrep; + 17: dout <= vid_de_h; + 18: dout <= vid_de_v; default dout <= 0; endcase end reg [31:0] vid_hcnt = 0; reg [31:0] vid_vcnt = 0; +reg [31:0] vid_ccnt = 0; reg [7:0] vid_nres = 0; reg [1:0] vid_int = 0; +reg [7:0] vid_pixrep; +reg [15:0] vid_de_h; +reg [7:0] vid_de_v; always @(posedge clk_vid) begin integer hcnt; integer vcnt; - reg old_vs= 0, old_de = 0, old_vmode = 0; + integer ccnt; + reg [7:0] pcnt; + reg [7:0] de_v; + reg [15:0] de_h; + reg old_vs = 0, old_hs = 0, old_hs_vclk = 0, old_de = 0, old_de_vclk = 0, old_de1 = 0, old_vmode = 0; reg [3:0] resto = 0; reg calch = 0; + if(calch & de) ccnt <= ccnt + 1; + pcnt <= pcnt + 1'd1; + + old_hs_vclk <= hs; + de_h <= de_h + 1'd1; + if(old_hs_vclk & ~hs) de_h <= 1; + + old_de_vclk <= de; + if(calch & ~old_de_vclk & de) vid_de_h <= de_h; + if(ce_pix) begin old_vs <= vs; + old_hs <= hs; old_de <= de; + old_de1 <= old_de; + pcnt <= 1; if(~vs & ~old_de & de) vcnt <= vcnt + 1; if(calch & de) hcnt <= hcnt + 1; if(old_de & ~de) calch <= 0; + if(~old_de1 & old_de) vid_pixrep <= pcnt; + if(old_hs & ~hs) de_v <= de_v + 1'd1; + if(calch & ~old_de & de) vid_de_v <= de_v; if(old_vs & ~vs) begin vid_int <= {vid_int[0],f1}; @@ -862,10 +955,13 @@ always @(posedge clk_vid) begin if(&resto) vid_nres <= vid_nres + 1'd1; vid_hcnt <= hcnt; vid_vcnt <= vcnt; + vid_ccnt <= ccnt; end vcnt <= 0; hcnt <= 0; + ccnt <= 0; calch <= 1; + de_v <= 0; end end end @@ -927,3 +1023,23 @@ always @(posedge clk_100) begin end endmodule + +module confstr_rom #(parameter CONF_STR, STRLEN) +( + input clk_sys, + input [$clog2(STRLEN+1)-1:0] conf_addr, + output reg [7:0] conf_byte +); + +reg [7:0] rom[STRLEN]; + +initial begin + if( CONF_STR=="" ) + $readmemh("cfgstr.hex",rom); + else + for(int i = 0; i < STRLEN; i++) rom[i] = CONF_STR[((STRLEN-i)*8)-1 -:8]; +end + +always @ (posedge clk_sys) conf_byte <= rom[conf_addr]; + +endmodule diff --git a/sys/i2c.v b/sys/i2c.v index 01076c6..6da6a14 100644 --- a/sys/i2c.v +++ b/sys/i2c.v @@ -1,96 +1,103 @@ - -module i2c -( - input CLK, - - input START, - input READ, - input [6:0] I2C_ADDR, - input I2C_WLEN, // 0 - one byte, 1 - two bytes - input [7:0] I2C_WDATA1, - input [7:0] I2C_WDATA2, - output [7:0] I2C_RDATA, - output reg END = 1, - output reg ACK = 0, - - //I2C bus - output I2C_SCL, - inout I2C_SDA -); - - -// Clock Setting -parameter CLK_Freq = 50_000_000; // 50 MHz -parameter I2C_Freq = 400_000; // 400 KHz - -localparam I2C_FreqX2 = I2C_Freq*2; - -reg I2C_CLOCK; -reg [31:0] cnt; -wire [31:0] cnt_next = cnt + I2C_FreqX2; - -always @(posedge CLK) begin - cnt <= cnt_next; - if(cnt_next >= CLK_Freq) begin - cnt <= cnt_next - CLK_Freq; - I2C_CLOCK <= ~I2C_CLOCK; - end -end - -assign I2C_SCL = SCLK | I2C_CLOCK; -assign I2C_SDA = SDO[3] ? 1'bz : 1'b0; - -reg SCLK = 1; -reg [3:0] SDO = 4'b1111; -reg [0:7] rdata; - -assign I2C_RDATA = rdata; - -always @(posedge CLK) begin - reg old_clk; - reg old_st; - reg rd,len; - - reg [5:0] SD_COUNTER = 'b111111; - reg [0:31] SD; - - old_clk <= I2C_CLOCK; - old_st <= START; - - // delay to make sure SDA changed while SCL is stabilized at low - if(old_clk && ~I2C_CLOCK && ~SD_COUNTER[5]) SDO[0] <= SD[SD_COUNTER[4:0]]; - SDO[3:1] <= SDO[2:0]; - - if(~old_st && START) begin - SCLK <= 1; - SDO <= 4'b1111; - ACK <= 0; - END <= 0; - rd <= READ; - len <= I2C_WLEN; - if(READ) SD <= {2'b10, I2C_ADDR, 1'b1, 1'b1, 8'b11111111, 1'b0, 3'b011, 9'b111111111}; - else SD <= {2'b10, I2C_ADDR, 1'b0, 1'b1, I2C_WDATA1, 1'b1, I2C_WDATA2, 4'b1011}; - SD_COUNTER <= 0; - end else begin - if(~old_clk && I2C_CLOCK && ~&SD_COUNTER) begin - SD_COUNTER <= SD_COUNTER + 6'd1; - case(SD_COUNTER) - 01: SCLK <= 0; - 10: ACK <= ACK | I2C_SDA; - 19: if(~rd) begin - ACK <= ACK | I2C_SDA; - if(~len) SD_COUNTER <= 29; - end - 20: if(rd) SCLK <= 1; - 23: if(rd) END <= 1; - 28: if(~rd) ACK <= ACK | I2C_SDA; - 29: if(~rd) SCLK <= 1; - 32: if(~rd) END <= 1; - endcase - - if(SD_COUNTER >= 11 && SD_COUNTER <= 18) rdata[SD_COUNTER[4:0]-11] <= I2C_SDA; - end - end -end - -endmodule + +module i2c +( + input CLK, + + input START, + input READ, + input [6:0] I2C_ADDR, + input I2C_WLEN, // 0 - one byte, 1 - two bytes + input [7:0] I2C_WDATA1, + input [7:0] I2C_WDATA2, + output [7:0] I2C_RDATA, + output reg END = 1, + output reg ACK = 0, + + //I2C bus + output I2C_SCL, + inout I2C_SDA +); + + +// Clock Setting +parameter CLK_Freq = 50_000_000; // 50 MHz +parameter I2C_Freq = 400_000; // 400 KHz + +localparam I2C_FreqX2 = I2C_Freq*2; + +reg I2C_CLOCK; +reg [31:0] cnt; +wire [31:0] cnt_next = cnt + I2C_FreqX2; + +always @(posedge CLK) begin + cnt <= cnt_next; + if(cnt_next >= CLK_Freq) begin + cnt <= cnt_next - CLK_Freq; + I2C_CLOCK <= ~I2C_CLOCK; + end +end + +assign I2C_SCL = (SCLK | I2C_CLOCK) ? 1'bZ : 1'b0; +assign I2C_SDA = SDO[3] ? 1'bz : 1'b0; + +reg SCLK; +reg [3:0] SDO; +reg [0:7] rdata; + +reg [5:0] SD_COUNTER; +reg [0:31] SD; + +initial begin + SD_COUNTER = 'b111111; + SD = 'hFFFF; + SCLK = 1; + SDO = 4'b1111; +end + +assign I2C_RDATA = rdata; + +always @(posedge CLK) begin + reg old_clk; + reg old_st; + reg rd,len; + + old_clk <= I2C_CLOCK; + old_st <= START; + + // delay to make sure SDA changed while SCL is stabilized at low + if(old_clk && ~I2C_CLOCK && ~SD_COUNTER[5]) SDO[0] <= SD[SD_COUNTER[4:0]]; + SDO[3:1] <= SDO[2:0]; + + if(~old_st && START) begin + SCLK <= 1; + SDO <= 4'b1111; + ACK <= 0; + END <= 0; + rd <= READ; + len <= I2C_WLEN; + if(READ) SD <= {2'b10, I2C_ADDR, 1'b1, 1'b1, 8'b11111111, 1'b1, 3'b011, 9'b111111111}; + else SD <= {2'b10, I2C_ADDR, 1'b0, 1'b1, I2C_WDATA1, 1'b1, I2C_WDATA2, 4'b1011}; + SD_COUNTER <= 0; + end else begin + if(~old_clk && I2C_CLOCK && ~&SD_COUNTER) begin + SD_COUNTER <= SD_COUNTER + 6'd1; + case(SD_COUNTER) + 01: SCLK <= 0; + 10: ACK <= ACK | I2C_SDA; + 19: if(~rd) begin + ACK <= ACK | I2C_SDA; + if(~len) SD_COUNTER <= 29; + end + 20: if(rd) SCLK <= 1; + 23: if(rd) END <= 1; + 28: if(~rd) ACK <= ACK | I2C_SDA; + 29: if(~rd) SCLK <= 1; + 32: if(~rd) END <= 1; + endcase + + if(SD_COUNTER >= 11 && SD_COUNTER <= 18) rdata[SD_COUNTER[4:0]-11] <= I2C_SDA; + end + end +end + +endmodule diff --git a/sys/iir_filter.v b/sys/iir_filter.v index a5336e9..b8bcf4f 100644 --- a/sys/iir_filter.v +++ b/sys/iir_filter.v @@ -1,213 +1,213 @@ - -// 3-tap IIR filter for 2 channels. -// Copyright (C) 2020 Sorgelig -// -// This program is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by the Free -// Software Foundation; either version 2 of the License, or (at your option) -// any later version. -// -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -// more details. -// -// You should have received a copy of the GNU General Public License along -// with this program; if not, write to the Free Software Foundation, Inc., -// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -// -// Can be converted to 2-tap (coeff_x2 = 0, coeff_y2 = 0) or 1-tap (coeff_x1,2 = 0, coeff_y1,2 = 0) -// -module IIR_filter -#( - parameter use_params = 1, // set to 1 to use following parameters, 0 for input port variables. - parameter stereo = 1, // 0 for mono (input_l) - - parameter coeff_x = 0.00000774701983513660, // Base gain value for X. Float. Range: 0.0 ... 0.999(9) - parameter coeff_x0 = 3, // Gain scale factor for X0. Integer. Range -7 ... +7 - parameter coeff_x1 = 3, // Gain scale factor for X1. Integer. Range -7 ... +7 - parameter coeff_x2 = 1, // Gain scale factor for X2. Integer. Range -7 ... +7 - parameter coeff_y0 = -2.96438150626551080000, // Coefficient for Y0. Float. Range -3.999(9) ... 3.999(9) - parameter coeff_y1 = 2.92939452735121100000, // Coefficient for Y1. Float. Range -3.999(9) ... 3.999(9) - parameter coeff_y2 = -0.96500747158831091000 // Coefficient for Y2. Float. Range -3.999(9) ... 3.999(9) -) -( - input clk, - input reset, - - input ce, // must be double of calculated rate for stereo! - input sample_ce, // desired output sample rate - - input [39:0] cx, - input [7:0] cx0, - input [7:0] cx1, - input [7:0] cx2, - input [23:0] cy0, - input [23:0] cy1, - input [23:0] cy2, - - input [15:0] input_l, input_r, // signed samples - output [15:0] output_l, output_r // signed samples -); - -localparam [39:0] pcoeff_x = coeff_x * 40'h8000000000; -localparam [31:0] pcoeff_y0 = coeff_y0 * 24'h200000; -localparam [31:0] pcoeff_y1 = coeff_y1 * 24'h200000; -localparam [31:0] pcoeff_y2 = coeff_y2 * 24'h200000; - -wire [39:0] vcoeff = use_params ? pcoeff_x : cx; -wire [23:0] vcoeff_y0 = use_params ? pcoeff_y0[23:0] : cy0; -wire [23:0] vcoeff_y1 = use_params ? pcoeff_y1[23:0] : cy1; -wire [23:0] vcoeff_y2 = use_params ? pcoeff_y2[23:0] : cy2; - -wire [59:0] inp_mul = $signed(inp) * $signed(vcoeff); - -wire [39:0] x = inp_mul[59:20]; -wire [39:0] y = x + tap0; - -wire [39:0] tap0; -iir_filter_tap iir_tap_0 -( - .clk(clk), - .reset(reset), - .ce(ce), - .ch(ch), - .cx(use_params ? coeff_x0[7:0] : cx0), - .cy(vcoeff_y0), - .x(x), - .y(y), - .z(tap1), - .tap(tap0) -); - -wire [39:0] tap1; -iir_filter_tap iir_tap_1 -( - .clk(clk), - .reset(reset), - .ce(ce), - .ch(ch), - .cx(use_params ? coeff_x1[7:0] : cx1), - .cy(vcoeff_y1), - .x(x), - .y(y), - .z(tap2), - .tap(tap1) -); - -wire [39:0] tap2; -iir_filter_tap iir_tap_2 -( - .clk(clk), - .reset(reset), - .ce(ce), - .ch(ch), - .cx(use_params ? coeff_x2[7:0] : cx2), - .cy(vcoeff_y2), - .x(x), - .y(y), - .z(0), - .tap(tap2) -); - -wire [15:0] y_clamp = (~y[39] & |y[38:35]) ? 16'h7FFF : (y[39] & ~&y[38:35]) ? 16'h8000 : y[35:20]; - -reg ch = 0; -reg [15:0] out_l, out_r, out_m; -reg [15:0] inp, inp_m; -always @(posedge clk) if (ce) begin - if(!stereo) begin - ch <= 0; - inp <= input_l; - out_l <= y_clamp; - out_r <= y_clamp; - end - else begin - ch <= ~ch; - if(ch) begin - out_m <= y_clamp; - inp <= inp_m; - end - else begin - out_l <= out_m; - out_r <= y_clamp; - inp <= input_l; - inp_m <= input_r; - end - end -end - -reg [31:0] out; -always @(posedge clk) if (sample_ce) out <= {out_l, out_r}; - -assign {output_l, output_r} = out; - -endmodule - -module iir_filter_tap -( - input clk, - input reset, - - input ce, - input ch, - - input [7:0] cx, - input [23:0] cy, - - input [39:0] x, - input [39:0] y, - input [39:0] z, - output [39:0] tap -); - -wire signed [60:0] y_mul = $signed(y[36:0]) * $signed(cy); - -function [39:0] x_mul; - input [39:0] x; -begin - x_mul = 0; - if(cx[0]) x_mul = x_mul + {{4{x[39]}}, x[39:4]}; - if(cx[1]) x_mul = x_mul + {{3{x[39]}}, x[39:3]}; - if(cx[2]) x_mul = x_mul + {{2{x[39]}}, x[39:2]}; - if(cx[7]) x_mul = ~x_mul; //cheap NEG -end -endfunction - -(* ramstyle = "logic" *) reg [39:0] intreg[2]; -always @(posedge clk, posedge reset) begin - if(reset) {intreg[0],intreg[1]} <= 80'd0; - else if(ce) intreg[ch] <= x_mul(x) - y_mul[60:21] + z; -end - -assign tap = intreg[ch]; - -endmodule - -// simplified IIR 1-tap. -module DC_blocker -( - input clk, - input ce, // 48/96 KHz - input mute, - - input sample_rate, - input [15:0] din, - output [15:0] dout -); - -wire [39:0] x = {din[15], din, 23'd0}; -wire [39:0] x0 = x - (sample_rate ? {{11{x[39]}}, x[39:11]} : {{10{x[39]}}, x[39:10]}); -wire [39:0] y1 = y - (sample_rate ? {{10{y[39]}}, y[39:10]} : {{09{y[39]}}, y[39:09]}); -wire [39:0] y0 = x0 - x1 + y1; - -reg [39:0] x1, y; -always @(posedge clk) if(ce) begin - x1 <= x0; - y <= ^y0[39:38] ? {{2{y0[39]}},{38{y0[38]}}} : y0; -end - -assign dout = mute ? 16'd0 : y[38:23]; - -endmodule + +// 3-tap IIR filter for 2 channels. +// Copyright (C) 2020 Sorgelig +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +// +// Can be converted to 2-tap (coeff_x2 = 0, coeff_y2 = 0) or 1-tap (coeff_x1,2 = 0, coeff_y1,2 = 0) +// +module IIR_filter +#( + parameter use_params = 1, // set to 1 to use following parameters, 0 for input port variables. + parameter stereo = 1, // 0 for mono (input_l) + + parameter coeff_x = 0.00000774701983513660, // Base gain value for X. Float. Range: 0.0 ... 0.999(9) + parameter coeff_x0 = 3, // Gain scale factor for X0. Integer. Range -7 ... +7 + parameter coeff_x1 = 3, // Gain scale factor for X1. Integer. Range -7 ... +7 + parameter coeff_x2 = 1, // Gain scale factor for X2. Integer. Range -7 ... +7 + parameter coeff_y0 = -2.96438150626551080000, // Coefficient for Y0. Float. Range -3.999(9) ... 3.999(9) + parameter coeff_y1 = 2.92939452735121100000, // Coefficient for Y1. Float. Range -3.999(9) ... 3.999(9) + parameter coeff_y2 = -0.96500747158831091000 // Coefficient for Y2. Float. Range -3.999(9) ... 3.999(9) +) +( + input clk, + input reset, + + input ce, // must be double of calculated rate for stereo! + input sample_ce, // desired output sample rate + + input [39:0] cx, + input [7:0] cx0, + input [7:0] cx1, + input [7:0] cx2, + input [23:0] cy0, + input [23:0] cy1, + input [23:0] cy2, + + input [15:0] input_l, input_r, // signed samples + output [15:0] output_l, output_r // signed samples +); + +localparam [39:0] pcoeff_x = coeff_x * 40'h8000000000; +localparam [31:0] pcoeff_y0 = coeff_y0 * 24'h200000; +localparam [31:0] pcoeff_y1 = coeff_y1 * 24'h200000; +localparam [31:0] pcoeff_y2 = coeff_y2 * 24'h200000; + +wire [39:0] vcoeff = use_params ? pcoeff_x : cx; +wire [23:0] vcoeff_y0 = use_params ? pcoeff_y0[23:0] : cy0; +wire [23:0] vcoeff_y1 = use_params ? pcoeff_y1[23:0] : cy1; +wire [23:0] vcoeff_y2 = use_params ? pcoeff_y2[23:0] : cy2; + +wire [59:0] inp_mul = $signed(inp) * $signed(vcoeff); + +wire [39:0] x = inp_mul[59:20]; +wire [39:0] y = x + tap0; + +wire [39:0] tap0; +iir_filter_tap iir_tap_0 +( + .clk(clk), + .reset(reset), + .ce(ce), + .ch(ch), + .cx(use_params ? coeff_x0[7:0] : cx0), + .cy(vcoeff_y0), + .x(x), + .y(y), + .z(tap1), + .tap(tap0) +); + +wire [39:0] tap1; +iir_filter_tap iir_tap_1 +( + .clk(clk), + .reset(reset), + .ce(ce), + .ch(ch), + .cx(use_params ? coeff_x1[7:0] : cx1), + .cy(vcoeff_y1), + .x(x), + .y(y), + .z(tap2), + .tap(tap1) +); + +wire [39:0] tap2; +iir_filter_tap iir_tap_2 +( + .clk(clk), + .reset(reset), + .ce(ce), + .ch(ch), + .cx(use_params ? coeff_x2[7:0] : cx2), + .cy(vcoeff_y2), + .x(x), + .y(y), + .z(0), + .tap(tap2) +); + +wire [15:0] y_clamp = (~y[39] & |y[38:35]) ? 16'h7FFF : (y[39] & ~&y[38:35]) ? 16'h8000 : y[35:20]; + +reg ch = 0; +reg [15:0] out_l, out_r, out_m; +reg [15:0] inp, inp_m; +always @(posedge clk) if (ce) begin + if(!stereo) begin + ch <= 0; + inp <= input_l; + out_l <= y_clamp; + out_r <= y_clamp; + end + else begin + ch <= ~ch; + if(ch) begin + out_m <= y_clamp; + inp <= inp_m; + end + else begin + out_l <= out_m; + out_r <= y_clamp; + inp <= input_l; + inp_m <= input_r; + end + end +end + +reg [31:0] out; +always @(posedge clk) if (sample_ce) out <= {out_l, out_r}; + +assign {output_l, output_r} = out; + +endmodule + +module iir_filter_tap +( + input clk, + input reset, + + input ce, + input ch, + + input [7:0] cx, + input [23:0] cy, + + input [39:0] x, + input [39:0] y, + input [39:0] z, + output [39:0] tap +); + +wire signed [60:0] y_mul = $signed(y[36:0]) * $signed(cy); + +function [39:0] x_mul; + input [39:0] x; +begin + x_mul = 0; + if(cx[0]) x_mul = x_mul + {{4{x[39]}}, x[39:4]}; + if(cx[1]) x_mul = x_mul + {{3{x[39]}}, x[39:3]}; + if(cx[2]) x_mul = x_mul + {{2{x[39]}}, x[39:2]}; + if(cx[7]) x_mul = ~x_mul; //cheap NEG +end +endfunction + +(* ramstyle = "logic" *) reg [39:0] intreg[2]; +always @(posedge clk, posedge reset) begin + if(reset) {intreg[0],intreg[1]} <= 80'd0; + else if(ce) intreg[ch] <= x_mul(x) - y_mul[60:21] + z; +end + +assign tap = intreg[ch]; + +endmodule + +// simplified IIR 1-tap. +module DC_blocker +( + input clk, + input ce, // 48/96 KHz + input mute, + + input sample_rate, + input [15:0] din, + output [15:0] dout +); + +wire [39:0] x = {din[15], din, 23'd0}; +wire [39:0] x0 = x - (sample_rate ? {{11{x[39]}}, x[39:11]} : {{10{x[39]}}, x[39:10]}); +wire [39:0] y1 = y - (sample_rate ? {{10{y[39]}}, y[39:10]} : {{09{y[39]}}, y[39:09]}); +wire [39:0] y0 = x0 - x1 + y1; + +reg [39:0] x1, y; +always @(posedge clk) if(ce) begin + x1 <= x0; + y <= ^y0[39:38] ? {{2{y0[39]}},{38{y0[38]}}} : y0; +end + +assign dout = mute ? 16'd0 : y[38:23]; + +endmodule diff --git a/sys/ltc2308.sv b/sys/ltc2308.sv index 33134fd..4d3ccc1 100644 --- a/sys/ltc2308.sv +++ b/sys/ltc2308.sv @@ -102,19 +102,19 @@ end endmodule -module ltc2308_tape #(parameter HIST_LOW = 16, HIST_HIGH = 64, ADC_RATE = 48000, CLK_RATE = 50000000) +module ltc2308_tape #(parameter HIST_LOW = 16, HIST_HIGH = 64, ADC_RATE = 48000, CLK_RATE = 50000000, NUM_CH = 1) ( - input reset, - input clk, + input reset, + input clk, - inout [3:0] ADC_BUS, - output reg dout, - output active + inout [3:0] ADC_BUS, + output reg dout, + output active, + output adc_sync, + output [(NUM_CH*12)-1:0] adc_data ); -wire [11:0] adc_data; -wire adc_sync; -ltc2308 #(1, ADC_RATE, CLK_RATE) adc +ltc2308 #(NUM_CH, ADC_RATE, CLK_RATE) adc ( .reset(reset), .clk(clk), @@ -133,8 +133,8 @@ always @(posedge clk) begin data1 <= data2; data2 <= data3; data3 <= data4; - data4 <= adc_data; - + data4 <= adc_data[11:0]; + sum <= data1+data2+data3+data4; if(sum[13:2]CLK_RATE) begin onesec <= 0; diff --git a/sys/math.sv b/sys/math.sv new file mode 100644 index 0000000..e7c0144 --- /dev/null +++ b/sys/math.sv @@ -0,0 +1,109 @@ + +// result = num/div +module sys_udiv +#( + parameter NB_NUM, + parameter NB_DIV +) +( + input clk, + input start, + output busy, + + input [NB_NUM-1:0] num, + input [NB_DIV-1:0] div, + output reg [NB_NUM-1:0] result, + output reg [NB_DIV-1:0] remainder +); + +reg run; +assign busy = run; + +always @(posedge clk) begin + reg [5:0] cpt; + reg [NB_NUM+NB_DIV+1:0] rem; + + if (start) begin + cpt <= 0; + run <= 1; + rem <= num; + end + else if (run) begin + cpt <= cpt + 1'd1; + run <= (cpt != NB_NUM + 1'd1); + remainder <= rem[NB_NUM+NB_DIV:NB_NUM+1]; + if (!rem[NB_DIV + NB_NUM + 1'd1]) + rem <= {rem[NB_DIV+NB_NUM:0] - (div << NB_NUM),1'b0}; + else + rem <= {rem[NB_DIV+NB_NUM:0] + (div << NB_NUM),1'b0}; + result <= {result[NB_NUM-2:0], !rem[NB_DIV + NB_NUM + 1'd1]}; + end +end + +endmodule + +// result = mul1*mul2 +module sys_umul +#( + parameter NB_MUL1, + parameter NB_MUL2 +) +( + input clk, + input start, + output busy, + + input [NB_MUL1-1:0] mul1, + input [NB_MUL2-1:0] mul2, + output reg [NB_MUL1+NB_MUL2-1:0] result +); + +reg run; +assign busy = run; + +always @(posedge clk) begin + reg [NB_MUL1+NB_MUL2-1:0] add; + reg [NB_MUL2-1:0] map; + + if (start) begin + run <= 1; + result <= 0; + add <= mul1; + map <= mul2; + end + else if (run) begin + if(!map) run <= 0; + if(map[0]) result <= result + add; + add <= add << 1; + map <= map >> 1; + end +end + +endmodule + +// result = (mul1*mul2)/div +module sys_umuldiv +#( + parameter NB_MUL1, + parameter NB_MUL2, + parameter NB_DIV +) +( + input clk, + input start, + output busy, + + input [NB_MUL1-1:0] mul1, + input [NB_MUL2-1:0] mul2, + input [NB_DIV-1:0] div, + output [NB_MUL1+NB_MUL2-1:0] result, + output [NB_DIV-1:0] remainder +); + +wire mul_run; +wire [NB_MUL1+NB_MUL2-1:0] mul_res; +sys_umul #(NB_MUL1,NB_MUL2) umul(clk,start,mul_run,mul1,mul2,mul_res); + +sys_udiv #(NB_MUL1+NB_MUL2,NB_DIV) udiv(clk,start|mul_run,busy,mul_res,div,result,remainder); + +endmodule diff --git a/sys/mcp23009.sv b/sys/mcp23009.sv index 40cbf5e..82eaf37 100644 --- a/sys/mcp23009.sv +++ b/sys/mcp23009.sv @@ -8,10 +8,12 @@ module mcp23009 output reg [2:0] btn, input [2:0] led, - output reg sd_cd, + output reg flg_sd_cd, + output reg flg_present, + output reg flg_mode, - output scl, - inout sda + output scl, + inout sda ); @@ -50,7 +52,9 @@ always@(posedge clk) begin idx <= 0; btn <= 0; rw <= 0; - sd_cd <= 1; + flg_sd_cd <= 1; + flg_present <= 0; + flg_mode <= 1; end else begin if(~&init_data[idx]) begin @@ -84,7 +88,10 @@ always@(posedge clk) begin state <= 0; rw <= 0; if(!error) begin - if(rw) {sd_cd, btn} <= {dout[7], dout[5:3]}; + if(rw) begin + {flg_sd_cd, flg_mode, btn} <= {dout[7:3]}; + flg_present <= 1; + end rw <= ~rw; end end diff --git a/sys/mt32pi.sv b/sys/mt32pi.sv new file mode 100644 index 0000000..6704807 --- /dev/null +++ b/sys/mt32pi.sv @@ -0,0 +1,283 @@ +// +// Communication module to MT32-pi (external MIDI emulator on RPi) +// (C) 2020 Sorgelig, Kitrinx +// +// https://github.com/dwhinham/mt32-pi +// + +module mt32pi +( + input CLK_AUDIO, + + input CLK_VIDEO, + input CE_PIXEL, + input VGA_VS, + input VGA_DE, + + input [6:0] USER_IN, + output [6:0] USER_OUT, + + input reset, + input midi_tx, + output midi_rx, + + output reg [15:0] mt32_i2s_r, + output reg [15:0] mt32_i2s_l, + + output reg mt32_available, + + input mt32_mode_req, + input [1:0] mt32_rom_req, + input [7:0] mt32_sf_req, + + output reg [7:0] mt32_mode, + output reg [7:0] mt32_rom, + output reg [7:0] mt32_sf, + output reg mt32_newmode, + + output reg mt32_lcd_en, + output reg mt32_lcd_pix, + output reg mt32_lcd_update +); + +// +// Pin | USB Name | Signal +// ----+----------+-------------- +// 0 | D+ | I/O I2C_SDA / RX (midi in) +// 1 | D- | O TX (midi out) +// 2 | TX- | I I2S_WS (1 == right) +// 3 | GND_d | I I2C_SCL +// 4 | RX+ | I I2S_BCLK +// 5 | RX- | I I2S_DAT +// 6 | TX+ | - none +// + +assign USER_OUT[0] = sda_out; +assign USER_OUT[1] = midi_tx; +assign USER_OUT[6:2] = '1; + + +// +// crossed/straight cable selection +// + +generate + genvar i; + for(i = 0; i<2; i++) begin : clk_rate + wire clk_in = i ? USER_IN[6] : USER_IN[4]; + reg [4:0] cnt; + always @(posedge CLK_AUDIO) begin : clkr + reg clk_sr, clk, old_clk; + reg [4:0] cnt_tmp; + + clk_sr <= clk_in; + if (clk_sr == clk_in) clk <= clk_sr; + + if(~&cnt_tmp) cnt_tmp <= cnt_tmp + 1'd1; + else cnt <= '1; + + old_clk <= clk; + if(~old_clk & clk) begin + cnt <= cnt_tmp; + cnt_tmp <= 0; + end + end + end + + reg crossed; + always @(posedge CLK_AUDIO) crossed <= (clk_rate[0].cnt <= clk_rate[1].cnt); +endgenerate + +wire i2s_ws = crossed ? USER_IN[2] : USER_IN[5]; +wire i2s_data = crossed ? USER_IN[5] : USER_IN[2]; +wire i2s_bclk = crossed ? USER_IN[4] : USER_IN[6]; +assign midi_rx = ~mt32_available ? USER_IN[0] : crossed ? USER_IN[6] : USER_IN[4]; + + +// +// i2s receiver +// + +always @(posedge CLK_AUDIO) begin : i2s_proc + reg [15:0] i2s_buf = 0; + reg [4:0] i2s_cnt = 0; + reg clk_sr; + reg i2s_clk = 0; + reg old_clk, old_ws; + reg i2s_next = 0; + + // Debounce clock + clk_sr <= i2s_bclk; + if (clk_sr == i2s_bclk) i2s_clk <= clk_sr; + + // Latch data and ws on rising edge + old_clk <= i2s_clk; + if (i2s_clk && ~old_clk) begin + + if (~i2s_cnt[4]) begin + i2s_cnt <= i2s_cnt + 1'd1; + i2s_buf[~i2s_cnt[3:0]] <= i2s_data; + end + + // Word Select will change 1 clock before the new word starts + old_ws <= i2s_ws; + if (old_ws != i2s_ws) i2s_next <= 1; + end + + if (i2s_next) begin + i2s_next <= 0; + i2s_cnt <= 0; + i2s_buf <= 0; + + if (i2s_ws) mt32_i2s_l <= i2s_buf; + else mt32_i2s_r <= i2s_buf; + end + + if (reset) begin + i2s_buf <= 0; + mt32_i2s_l <= 0; + mt32_i2s_r <= 0; + end +end + + +// +// i2c slave +// + +reg sda_out; +reg [7:0] lcd_data[1024]; +reg lcd_sz; + +reg reset_r = 0; +wire [7:0] mode_req = reset_r ? 8'hA0 : mt32_mode_req ? 8'hA2 : 8'hA1; +wire [7:0] rom_req = {6'd0, mt32_rom_req}; + +always @(posedge CLK_AUDIO) begin : i2c_slave + reg sda_sr, scl_sr; + reg old_sda, old_scl; + reg sda, scl; + reg [7:0] tmp; + reg [3:0] cnt = 0; + reg [10:0] bcnt = 0; + reg ack; + reg i2c_rw; + reg disp, dispdata; + reg [2:0] div; + reg old_reset; + + old_reset <= reset; + if(old_reset & ~reset) sda_out <= 1; + + div <= div + 1'd1; + if(!div) begin + sda_sr <= USER_IN[0]; + if(sda_sr == USER_IN[0]) sda <= sda_sr; + old_sda <= sda; + + scl_sr <= USER_IN[3]; + if(scl_sr == USER_IN[3]) scl <= scl_sr; + old_scl <= scl; + + //start + if(old_scl & scl & old_sda & ~sda) begin + cnt <= 9; + bcnt <= 0; + ack <= 0; + i2c_rw <= 0; + disp <= 0; + dispdata <= 0; + end + + //stop + if(old_scl & scl & ~old_sda & sda) begin + cnt <= 0; + if(dispdata) begin + lcd_sz <= ~bcnt[9]; + mt32_lcd_update <= ~mt32_lcd_update; + end + end + + //data latch + if(~old_scl && scl && cnt) begin + tmp <= {tmp[6:0], sda}; + cnt <= cnt - 1'd1; + end + + if(!cnt) sda_out <= 1; + + //data set + if(old_scl && ~scl) begin + sda_out <= 1; + if(cnt == 1) begin + if(!bcnt) begin + if(tmp[7:1] == 'h45 || tmp[7:1] == 'h3c) begin + disp <= (tmp[7:1] == 'h3c); + sda_out <= 0; + mt32_available <= 1; + ack <= 1; + i2c_rw <= tmp[0]; + bcnt <= bcnt + 1'd1; + cnt <= 10; + end + else begin + // wrong address, stop + cnt <= 0; + end + end + else if(ack) begin + if(~i2c_rw) begin + if(disp) begin + if(bcnt == 1) dispdata <= (tmp[7:6] == 2'b01); + else if(dispdata) lcd_data[bcnt[9:0] - 2'd2] <= tmp; + end + else begin + if(bcnt == 1) mt32_mode <= tmp; + if(bcnt == 2) mt32_rom <= tmp; + if(bcnt == 3) mt32_sf <= tmp; + if(bcnt == 3) mt32_newmode <= ~mt32_newmode; + end + end + if(~&bcnt) bcnt <= bcnt + 1'd1; + sda_out <= 0; + cnt <= 10; + end + end + else if(i2c_rw && ack && cnt && ~disp) begin + if(bcnt == 1) sda_out <= mode_req[cnt[2:0] - 2'd2]; + if(bcnt == 2) sda_out <= rom_req[cnt[2:0] - 2'd2]; + if(bcnt == 3) sda_out <= mt32_sf_req[cnt[2:0] - 2'd2]; + if(bcnt == 3) reset_r <= 0; + end + end + end + + if(reset) begin + reset_r <= 1; + mt32_available <= 0; + end +end + +always @(posedge CLK_VIDEO) begin + reg old_de, old_vs; + reg [7:0] hcnt; + reg [6:0] vcnt; + reg [7:0] sh; + + if(CE_PIXEL) begin + old_de <= VGA_DE; + old_vs <= VGA_VS; + + if(~&hcnt) hcnt <= hcnt + 1'd1; + sh <= (sh << 1) | (~old_de & VGA_DE); + if(sh[7]) hcnt <= 0; + + if(old_de & ~VGA_DE & ~&vcnt) vcnt <= vcnt + 1'd1; + if(~old_vs & VGA_VS) vcnt <= 0; + + mt32_lcd_en <= mt32_available & ~hcnt[7] && (lcd_sz ? !vcnt[6] : !vcnt[6:5]); + mt32_lcd_pix <= lcd_data[{vcnt[5:3],hcnt[6:0]}][vcnt[2:0]]; + end +end + +endmodule diff --git a/sys/osd.v b/sys/osd.v index a4fbdde..c354f6f 100644 --- a/sys/osd.v +++ b/sys/osd.v @@ -72,7 +72,7 @@ always@(posedge clk_sys) begin // command 0x40: OSDCMDENABLE, OSDCMDDISABLE if(io_din[7:4] == 4) begin if(!io_din[0]) {osd_status,highres} <= 0; - else {osd_status,info} <= {~io_din[2],io_din[2]}; + else {osd_status,info} <= {~io_din[2] & ~io_din[3],io_din[2]}; bcnt <= 0; end // command 0x20: OSDCMDWRITE @@ -131,7 +131,7 @@ wire [21:0] osd_h_hdr = (info || rot) ? osd_h : (osd_h + OSD_HDR); // pipeline the comparisons a bit always @(posedge clk_video) if(ce_pix) begin - v_cnt_h <= v_cnt < osd_t; + v_cnt_h <= v_cnt <= osd_t; v_cnt_1 <= v_cnt < 320; v_cnt_2 <= v_cnt < 640; v_cnt_3 <= v_cnt < 960; diff --git a/sys/pll_audio.v b/sys/pll_audio.v index e96b248..185a94c 100644 --- a/sys/pll_audio.v +++ b/sys/pll_audio.v @@ -1,252 +1,252 @@ -// megafunction wizard: %Altera PLL v17.0% -// GENERATION: XML -// pll_audio.v - -// Generated using ACDS version 17.0 602 - -`timescale 1 ps / 1 ps -module pll_audio ( - input wire refclk, // refclk.clk - input wire rst, // reset.reset - output wire outclk_0 // outclk0.clk - ); - - pll_audio_0002 pll_audio_inst ( - .refclk (refclk), // refclk.clk - .rst (rst), // reset.reset - .outclk_0 (outclk_0), // outclk0.clk - .locked () // (terminated) - ); - -endmodule -// Retrieval info: -// -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// IPFS_FILES : pll_audio.vo -// RELATED_FILES: pll_audio.v, pll_audio_0002.v +// megafunction wizard: %Altera PLL v17.0% +// GENERATION: XML +// pll_audio.v + +// Generated using ACDS version 17.0 602 + +`timescale 1 ps / 1 ps +module pll_audio ( + input wire refclk, // refclk.clk + input wire rst, // reset.reset + output wire outclk_0 // outclk0.clk + ); + + pll_audio_0002 pll_audio_inst ( + .refclk (refclk), // refclk.clk + .rst (rst), // reset.reset + .outclk_0 (outclk_0), // outclk0.clk + .locked () // (terminated) + ); + +endmodule +// Retrieval info: +// +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// IPFS_FILES : pll_audio.vo +// RELATED_FILES: pll_audio.v, pll_audio_0002.v diff --git a/sys/pll_audio/pll_audio_0002.v b/sys/pll_audio/pll_audio_0002.v index 37eea13..7898914 100644 --- a/sys/pll_audio/pll_audio_0002.v +++ b/sys/pll_audio/pll_audio_0002.v @@ -1,87 +1,87 @@ -`timescale 1ns/10ps -module pll_audio_0002( - - // interface 'refclk' - input wire refclk, - - // interface 'reset' - input wire rst, - - // interface 'outclk0' - output wire outclk_0, - - // interface 'locked' - output wire locked -); - - altera_pll #( - .fractional_vco_multiplier("true"), - .reference_clock_frequency("50.0 MHz"), - .operation_mode("direct"), - .number_of_clocks(1), - .output_clock_frequency0("24.576000 MHz"), - .phase_shift0("0 ps"), - .duty_cycle0(50), - .output_clock_frequency1("0 MHz"), - .phase_shift1("0 ps"), - .duty_cycle1(50), - .output_clock_frequency2("0 MHz"), - .phase_shift2("0 ps"), - .duty_cycle2(50), - .output_clock_frequency3("0 MHz"), - .phase_shift3("0 ps"), - .duty_cycle3(50), - .output_clock_frequency4("0 MHz"), - .phase_shift4("0 ps"), - .duty_cycle4(50), - .output_clock_frequency5("0 MHz"), - .phase_shift5("0 ps"), - .duty_cycle5(50), - .output_clock_frequency6("0 MHz"), - .phase_shift6("0 ps"), - .duty_cycle6(50), - .output_clock_frequency7("0 MHz"), - .phase_shift7("0 ps"), - .duty_cycle7(50), - .output_clock_frequency8("0 MHz"), - .phase_shift8("0 ps"), - .duty_cycle8(50), - .output_clock_frequency9("0 MHz"), - .phase_shift9("0 ps"), - .duty_cycle9(50), - .output_clock_frequency10("0 MHz"), - .phase_shift10("0 ps"), - .duty_cycle10(50), - .output_clock_frequency11("0 MHz"), - .phase_shift11("0 ps"), - .duty_cycle11(50), - .output_clock_frequency12("0 MHz"), - .phase_shift12("0 ps"), - .duty_cycle12(50), - .output_clock_frequency13("0 MHz"), - .phase_shift13("0 ps"), - .duty_cycle13(50), - .output_clock_frequency14("0 MHz"), - .phase_shift14("0 ps"), - .duty_cycle14(50), - .output_clock_frequency15("0 MHz"), - .phase_shift15("0 ps"), - .duty_cycle15(50), - .output_clock_frequency16("0 MHz"), - .phase_shift16("0 ps"), - .duty_cycle16(50), - .output_clock_frequency17("0 MHz"), - .phase_shift17("0 ps"), - .duty_cycle17(50), - .pll_type("General"), - .pll_subtype("General") - ) altera_pll_i ( - .rst (rst), - .outclk ({outclk_0}), - .locked (locked), - .fboutclk ( ), - .fbclk (1'b0), - .refclk (refclk) - ); -endmodule - +`timescale 1ns/10ps +module pll_audio_0002( + + // interface 'refclk' + input wire refclk, + + // interface 'reset' + input wire rst, + + // interface 'outclk0' + output wire outclk_0, + + // interface 'locked' + output wire locked +); + + altera_pll #( + .fractional_vco_multiplier("true"), + .reference_clock_frequency("50.0 MHz"), + .operation_mode("direct"), + .number_of_clocks(1), + .output_clock_frequency0("24.576000 MHz"), + .phase_shift0("0 ps"), + .duty_cycle0(50), + .output_clock_frequency1("0 MHz"), + .phase_shift1("0 ps"), + .duty_cycle1(50), + .output_clock_frequency2("0 MHz"), + .phase_shift2("0 ps"), + .duty_cycle2(50), + .output_clock_frequency3("0 MHz"), + .phase_shift3("0 ps"), + .duty_cycle3(50), + .output_clock_frequency4("0 MHz"), + .phase_shift4("0 ps"), + .duty_cycle4(50), + .output_clock_frequency5("0 MHz"), + .phase_shift5("0 ps"), + .duty_cycle5(50), + .output_clock_frequency6("0 MHz"), + .phase_shift6("0 ps"), + .duty_cycle6(50), + .output_clock_frequency7("0 MHz"), + .phase_shift7("0 ps"), + .duty_cycle7(50), + .output_clock_frequency8("0 MHz"), + .phase_shift8("0 ps"), + .duty_cycle8(50), + .output_clock_frequency9("0 MHz"), + .phase_shift9("0 ps"), + .duty_cycle9(50), + .output_clock_frequency10("0 MHz"), + .phase_shift10("0 ps"), + .duty_cycle10(50), + .output_clock_frequency11("0 MHz"), + .phase_shift11("0 ps"), + .duty_cycle11(50), + .output_clock_frequency12("0 MHz"), + .phase_shift12("0 ps"), + .duty_cycle12(50), + .output_clock_frequency13("0 MHz"), + .phase_shift13("0 ps"), + .duty_cycle13(50), + .output_clock_frequency14("0 MHz"), + .phase_shift14("0 ps"), + .duty_cycle14(50), + .output_clock_frequency15("0 MHz"), + .phase_shift15("0 ps"), + .duty_cycle15(50), + .output_clock_frequency16("0 MHz"), + .phase_shift16("0 ps"), + .duty_cycle16(50), + .output_clock_frequency17("0 MHz"), + .phase_shift17("0 ps"), + .duty_cycle17(50), + .pll_type("General"), + .pll_subtype("General") + ) altera_pll_i ( + .rst (rst), + .outclk ({outclk_0}), + .locked (locked), + .fboutclk ( ), + .fbclk (1'b0), + .refclk (refclk) + ); +endmodule + diff --git a/sys/pll_cfg.qip b/sys/pll_cfg.qip index c3394be..0b560f9 100644 --- a/sys/pll_cfg.qip +++ b/sys/pll_cfg.qip @@ -1,44 +1,5 @@ -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_TOOL_NAME "altera_pll_reconfig" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_TOOL_VERSION "17.0" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_TOOL_ENV "mwpim" -set_global_assignment -library "pll_cfg" -name MISC_FILE [file join $::quartus(qip_path) "pll_cfg.cmp"] -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_TARGETED_DEVICE_FAMILY "Cyclone V" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_GENERATED_DEVICE_FAMILY "{Cyclone V}" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_QSYS_MODE "UNKNOWN" set_global_assignment -name SYNTHESIS_ONLY_QIP ON -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_NAME "cGxsX2hkbWlfY2Zn" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_DISPLAY_NAME "QWx0ZXJhIFBMTCBSZWNvbmZpZw==" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_REPORT_HIERARCHY "Off" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_INTERNAL "Off" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_AUTHOR "QWx0ZXJhIENvcnBvcmF0aW9u" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_VERSION "MTcuMA==" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_DESCRIPTION "QWx0ZXJhIFBoYXNlLUxvY2tlZCBMb29wIFJlY29uZmlndXJhdGlvbiBCbG9jayhBTFRFUkFfUExMX1JFQ09ORklHKQ==" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "RU5BQkxFX0JZVEVFTkFCTEU=::ZmFsc2U=::QWRkIGJ5dGVlbmFibGUgcG9ydA==" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "QllURUVOQUJMRV9XSURUSA==::NA==::QllURUVOQUJMRV9XSURUSA==" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "UkVDT05GSUdfQUREUl9XSURUSA==::Ng==::UkVDT05GSUdfQUREUl9XSURUSA==" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "UkVDT05GSUdfREFUQV9XSURUSA==::MzI=::UkVDT05GSUdfREFUQV9XSURUSA==" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "cmVjb25mX3dpZHRo::NjQ=::cmVjb25mX3dpZHRo" -set_global_assignment -entity "pll_cfg" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "V0FJVF9GT1JfTE9DSw==::dHJ1ZQ==::V0FJVF9GT1JfTE9DSw==" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_NAME "YWx0ZXJhX3BsbF9yZWNvbmZpZ190b3A=" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_DISPLAY_NAME "QWx0ZXJhIFBMTCBSZWNvbmZpZw==" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_REPORT_HIERARCHY "Off" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_INTERNAL "Off" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_AUTHOR "QWx0ZXJhIENvcnBvcmF0aW9u" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_VERSION "MTcuMA==" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_DESCRIPTION "QWx0ZXJhIFBoYXNlLUxvY2tlZCBMb29wIFJlY29uZmlndXJhdGlvbiBCbG9jayhBTFRFUkFfUExMX1JFQ09ORklHKQ==" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "ZGV2aWNlX2ZhbWlseQ==::Q3ljbG9uZSBW::ZGV2aWNlX2ZhbWlseQ==" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "RU5BQkxFX01JRg==::ZmFsc2U=::RW5hYmxlIE1JRiBTdHJlYW1pbmc=" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "RU5BQkxFX0JZVEVFTkFCTEU=::ZmFsc2U=::QWRkIGJ5dGVlbmFibGUgcG9ydA==" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "QllURUVOQUJMRV9XSURUSA==::NA==::QllURUVOQUJMRV9XSURUSA==" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "UkVDT05GSUdfQUREUl9XSURUSA==::Ng==::UkVDT05GSUdfQUREUl9XSURUSA==" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "UkVDT05GSUdfREFUQV9XSURUSA==::MzI=::UkVDT05GSUdfREFUQV9XSURUSA==" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "cmVjb25mX3dpZHRo::NjQ=::cmVjb25mX3dpZHRo" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_COMPONENT_PARAMETER "V0FJVF9GT1JfTE9DSw==::dHJ1ZQ==::V0FJVF9GT1JfTE9DSw==" - -set_global_assignment -library "pll_cfg" -name VERILOG_FILE [file join $::quartus(qip_path) "pll_cfg.v"] +set_global_assignment -library "pll_cfg" -name VERILOG_FILE [file join $::quartus(qip_path) "pll_cfg/pll_cfg.v"] +set_global_assignment -library "pll_cfg" -name VERILOG_FILE [file join $::quartus(qip_path) "pll_cfg/pll_cfg_hdmi.v"] set_global_assignment -library "pll_cfg" -name VERILOG_FILE [file join $::quartus(qip_path) "pll_cfg/altera_pll_reconfig_top.v"] set_global_assignment -library "pll_cfg" -name VERILOG_FILE [file join $::quartus(qip_path) "pll_cfg/altera_pll_reconfig_core.v"] - -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_TOOL_NAME "altera_pll_reconfig" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_TOOL_VERSION "17.0" -set_global_assignment -entity "altera_pll_reconfig_top" -library "pll_cfg" -name IP_TOOL_ENV "mwpim" diff --git a/sys/pll_cfg/altera_pll_reconfig_core.v b/sys/pll_cfg/altera_pll_reconfig_core.v index d06a746..a9e2b8c 100644 --- a/sys/pll_cfg/altera_pll_reconfig_core.v +++ b/sys/pll_cfg/altera_pll_reconfig_core.v @@ -11,2174 +11,2174 @@ // agreement for further details. -`timescale 1ps/1ps - -module altera_pll_reconfig_core -#( - parameter reconf_width = 64, - parameter device_family = "Stratix V", - // MIF Streaming parameters - parameter RECONFIG_ADDR_WIDTH = 6, - parameter RECONFIG_DATA_WIDTH = 32, - parameter ROM_ADDR_WIDTH = 9, - parameter ROM_DATA_WIDTH = 32, - parameter ROM_NUM_WORDS = 512 -) ( - - //input - input wire mgmt_clk, - input wire mgmt_reset, - - - //conduits - output wire [reconf_width-1:0] reconfig_to_pll, - input wire [reconf_width-1:0] reconfig_from_pll, - - // user data (avalon-MM slave interface) - output wire [31:0] mgmt_readdata, - output wire mgmt_waitrequest, - input wire [5:0] mgmt_address, - input wire mgmt_read, - input wire mgmt_write, - input wire [31:0] mgmt_writedata, - - //other - output wire mif_start_out, - output reg [ROM_ADDR_WIDTH-1:0] mif_base_addr -); - localparam mode_WR = 1'b0; - localparam mode_POLL = 1'b1; - localparam MODE_REG = 6'b000000; - localparam STATUS_REG = 6'b000001; - localparam START_REG = 6'b000010; - localparam N_REG = 6'b000011; - localparam M_REG = 6'b000100; - localparam C_COUNTERS_REG = 6'b000101; - localparam DPS_REG = 6'b000110; - localparam DSM_REG = 6'b000111; - localparam BWCTRL_REG = 6'b001000; - localparam CP_CURRENT_REG = 6'b001001; - localparam ANY_DPRIO = 6'b100000; - localparam CNT_BASE = 5'b001010; - localparam VCO_REG = 6'b011100; - localparam MIF_REG = 6'b011111; - - //C Counters - localparam number_of_counters = 5'd18; - localparam CNT_0 = 1'd0, CNT_1 = 5'd1, CNT_2 = 5'd2, - CNT_3 = 5'd3, CNT_4 = 5'd4, CNT_5 = 5'd5, - CNT_6 = 5'd6, CNT_7 = 5'd7, CNT_8 = 5'd8, - CNT_9 = 5'd9, CNT_10 = 5'd10, CNT_11 = 5'd11, - CNT_12 = 5'd12, CNT_13 = 5'd13, CNT_14 = 5'd14, - CNT_15 = 5'd15, CNT_16 = 5'd16, CNT_17 = 5'd17; - //C counter addresses - localparam C_CNT_0_DIV_ADDR = 5'h00; - localparam C_CNT_0_DIV_ADDR_DPRIO_1 = 5'h11; - localparam C_CNT_0_3_BYPASS_EN_ADDR = 5'h15; - localparam C_CNT_0_3_ODD_DIV_EN_ADDR = 5'h17; - localparam C_CNT_4_17_BYPASS_EN_ADDR = 5'h14; - localparam C_CNT_4_17_ODD_DIV_EN_ADDR = 5'h16; - //N counter addresses - localparam N_CNT_DIV_ADDR = 5'h13; - localparam N_CNT_BYPASS_EN_ADDR = 5'h15; - localparam N_CNT_ODD_DIV_EN_ADDR = 5'h17; - //M counter addresses - localparam M_CNT_DIV_ADDR = 5'h12; - localparam M_CNT_BYPASS_EN_ADDR = 5'h15; - localparam M_CNT_ODD_DIV_EN_ADDR = 5'h17; - - //DSM address - localparam DSM_K_FRACTIONAL_DIVISION_ADDR_0 = 5'h18; - localparam DSM_K_FRACTIONAL_DIVISION_ADDR_1 = 5'h19; - localparam DSM_K_READY_ADDR = 5'h17; - localparam DSM_K_DITHER_ADDR = 5'h17; - localparam DSM_OUT_SEL_ADDR = 6'h30; - - //Other DSM params - localparam DSM_K_READY_BIT_INDEX = 4'd11; - //BWCTRL address - //Bit 0-3 of addr - localparam BWCTRL_ADDR = 6'h30; - //CP_CURRENT address - //Bit 0-2 of addr - localparam CP_CURRENT_ADDR = 6'h31; - - // VCODIV address - localparam VCO_ADDR = 5'h17; - - localparam DPRIO_IDLE = 3'd0, ONE = 3'd1, TWO = 3'd2, THREE = 3'd3, FOUR = 3'd4, - FIVE = 3'd5, SIX = 3'd6, SEVEN = 3'd7, EIGHT = 4'd8, NINE = 4'd9, TEN = 4'd10, - ELEVEN = 4'd11, TWELVE = 4'd12, THIRTEEN = 4'd13, FOURTEEN = 4'd14, DPRIO_DONE = 4'd15; - localparam IDLE = 2'b00, WAIT_ON_LOCK = 2'b01, LOCKED = 2'b10; - - wire clk; - wire reset; - wire gnd; - - wire [5: 0] slave_address; - wire slave_read; - wire slave_write; - wire [31: 0] slave_writedata; - - reg [31: 0] slave_readdata_d; - reg [31: 0] slave_readdata_q; - wire slave_waitrequest; - reg slave_mode; - - assign clk = mgmt_clk; - - assign slave_address = mgmt_address; - assign slave_read = mgmt_read; - assign slave_write = mgmt_write; - assign slave_writedata = mgmt_writedata; - - reg read_waitrequest; - // Outputs - assign mgmt_readdata = slave_readdata_q; - assign mgmt_waitrequest = slave_waitrequest | read_waitrequest; //Read waitrequest asserted in polling mode - - //internal signals - wire locked_orig; - wire locked; - - wire pll_start; - wire pll_start_valid; - reg status_read; - wire read_slave_mode_asserted; - - wire pll_start_asserted; - - reg [1:0] current_state; - reg [1:0] next_state; - - reg status;//0=busy, 1=ready - //user_mode_init user_mode_init_inst (clk, reset, dprio_mdio_dis, ser_shift_load); - //declaring the init wires. These will have 0 on them for 64 clk cycles - wire [ 5:0] init_dprio_address; - wire init_dprio_read; - wire [ 1:0] init_dprio_byteen; - wire init_dprio_write; - wire [15:0] init_dprio_writedata; - - wire init_atpgmode; - wire init_mdio_dis; - wire init_scanen; - wire init_ser_shift_load; - wire dprio_init_done; - - //DPRIO output signals after initialization is done - wire dprio_clk; - reg avmm_dprio_write; - reg avmm_dprio_read; - reg [5:0] avmm_dprio_address; - reg [15:0] avmm_dprio_writedata; - reg [1:0] avmm_dprio_byteen; - wire avmm_atpgmode; - wire avmm_mdio_dis; - wire avmm_scanen; - - //Final output wires that are muxed between the init and avmm wires. - wire dprio_init_reset; - wire [5:0] dprio_address /*synthesis keep*/; - wire dprio_read/*synthesis keep*/; - wire [1:0] dprio_byteen/*synthesis keep*/; - wire dprio_write/*synthesis keep*/; - wire [15:0] dprio_writedata/*synthesis keep*/; - wire dprio_mdio_dis/*synthesis keep*/; - wire dprio_ser_shift_load/*synthesis keep*/; - wire dprio_atpgmode/*synthesis keep*/; - wire dprio_scanen/*synthesis keep*/; - - - //other PLL signals for dyn ph shift - wire phase_done/*synthesis keep*/; - wire phase_en/*synthesis keep*/; - wire up_dn/*synthesis keep*/; - wire [4:0] cnt_sel; - - //DPRIO input signals - wire [15:0] dprio_readdata; - - //internal logic signals - //storage registers for user sent data - reg dprio_temp_read_1; - reg dprio_temp_read_2; - reg dprio_start; - reg mif_start_assert; - reg dps_start_assert; - wire usr_valid_changes; - reg [3:0] dprio_cur_state; - reg [3:0] dprio_next_state; - reg [15:0] dprio_temp_m_n_c_readdata_1_d; - reg [15:0] dprio_temp_m_n_c_readdata_2_d; - reg [15:0] dprio_temp_m_n_c_readdata_1_q; - reg [15:0] dprio_temp_m_n_c_readdata_2_q; - reg dprio_write_done; - //C counters signals - reg [7:0] usr_c_cnt_lo; - reg [7:0] usr_c_cnt_hi; - reg usr_c_cnt_bypass_en; - reg usr_c_cnt_odd_duty_div_en; - reg [7:0] temp_c_cnt_lo [0:17]; - reg [7:0] temp_c_cnt_hi [0:17]; - reg temp_c_cnt_bypass_en [0:17]; - reg temp_c_cnt_odd_duty_div_en [0:17]; - reg any_c_cnt_changed; - reg all_c_cnt_done_q; - reg all_c_cnt_done_d; - reg [17:0] c_cnt_changed; - reg [17:0] c_cnt_done_d; - reg [17:0] c_cnt_done_q; - //N counter signals - reg [7:0] usr_n_cnt_lo; - reg [7:0] usr_n_cnt_hi; - reg usr_n_cnt_bypass_en; - reg usr_n_cnt_odd_duty_div_en; - reg n_cnt_changed; - reg n_cnt_done_d; - reg n_cnt_done_q; - //M counter signals - reg [7:0] usr_m_cnt_lo; - reg [7:0] usr_m_cnt_hi; - reg usr_m_cnt_bypass_en; - reg usr_m_cnt_odd_duty_div_en; - reg m_cnt_changed; - reg m_cnt_done_d; - reg m_cnt_done_q; - //dyn phase regs - reg [15:0] usr_num_shifts; - reg [4:0] usr_cnt_sel /*synthesis preserve*/; - reg usr_up_dn; - reg dps_changed; - wire dps_changed_valid; - wire dps_done; - - //DSM Signals - reg [31:0] usr_k_value; - reg dsm_k_changed; - reg dsm_k_done_d; - reg dsm_k_done_q; - reg dsm_k_ready_false_done_d; - //BW signals - reg [3:0] usr_bwctrl_value; - reg bwctrl_changed; - reg bwctrl_done_d; - reg bwctrl_done_q; - //CP signals - reg [2:0] usr_cp_current_value; - reg cp_current_changed; - reg cp_current_done_d; - reg cp_current_done_q; - //VCO signals - reg usr_vco_value; - reg vco_changed; - reg vco_done_d; - reg vco_done_q; - //Manual DPRIO signals - reg manual_dprio_done_q; - reg manual_dprio_done_d; - reg manual_dprio_changed; - reg [5:0] usr_dprio_address; - reg [15:0] usr_dprio_writedata_0; - reg usr_r_w; - //keeping track of which operation happened last - reg [5:0] operation_address; - // Address wires for all C_counter DPRIO registers - // These are outputs of LUTS, changing depending - // on whether PLL_0 or PLL_1 being used - - - //Fitter will tell if FPLL1 is being used - wire fpll_1; - - // other - reg mif_reg_asserted; - // MAIN FSM - - // Synchronize locked signal - altera_std_synchronizer #( - .depth(3) - ) altera_std_synchronizer_inst ( - .clk(mgmt_clk), - .reset_n(~mgmt_reset), - .din(locked_orig), - .dout(locked) - ); - - always @(posedge clk) - begin - if (reset) - begin - dprio_cur_state <= DPRIO_IDLE; - current_state <= IDLE; - end - else - begin - current_state <= next_state; - dprio_cur_state <= dprio_next_state; - end - end - - always @(*) - begin - case(current_state) - IDLE: - begin - if (pll_start & !slave_waitrequest & usr_valid_changes) - next_state = WAIT_ON_LOCK; - else - next_state = IDLE; - end - WAIT_ON_LOCK: - begin - if (locked & dps_done & dprio_write_done) // received locked high from PLL - begin - if (slave_mode==mode_WR) //if the mode is waitrequest, then - // goto IDLE state directly - next_state = IDLE; - else - next_state = LOCKED; //otherwise go the locked state - end - else - next_state = WAIT_ON_LOCK; - end - - LOCKED: - begin - if (status_read) // stay in LOCKED until user reads status - next_state = IDLE; - else - next_state = LOCKED; - end - - default: next_state = 2'bxx; - - endcase - end - - - // ask the pll to start reconfig - assign pll_start = (pll_start_asserted & (current_state==IDLE)) ; - assign pll_start_valid = (pll_start & (next_state==WAIT_ON_LOCK)) ; - - - - // WRITE OPERATIONS - assign pll_start_asserted = slave_write & (slave_address == START_REG); - assign mif_start_out = pll_start & mif_reg_asserted; - - //reading the mode register to determine what mode the slave will operate - //in. - always @(posedge clk) - begin - if (reset) - slave_mode <= mode_WR; - else if (slave_write & (slave_address == MODE_REG) & !slave_waitrequest) - slave_mode <= slave_writedata[0]; - end - - //record which values user wants to change. - - //reading in the actual values that need to be reconfigged and sending - //them to the PLL - always @(posedge clk) - begin - if (reset) - begin - //reset all regs here - //BW signals reset - usr_bwctrl_value <= 0; - bwctrl_changed <= 0; - bwctrl_done_q <= 0; - //CP signals reset - usr_cp_current_value <= 0; - cp_current_changed <= 0; - cp_current_done_q <= 0; - //VCO signals reset - usr_vco_value <= 0; - vco_changed <= 0; - vco_done_q <= 0; - //DSM signals reset - usr_k_value <= 0; - dsm_k_changed <= 0; - dsm_k_done_q <= 0; - //N counter signals reset - usr_n_cnt_lo <= 0; - usr_n_cnt_hi <= 0; - usr_n_cnt_bypass_en <= 0; - usr_n_cnt_odd_duty_div_en <= 0; - n_cnt_changed <= 0; - n_cnt_done_q <= 0; - //M counter signals reset - usr_m_cnt_lo <= 0; - usr_m_cnt_hi <= 0; - usr_m_cnt_bypass_en <= 0; - usr_m_cnt_odd_duty_div_en <= 0; - m_cnt_changed <= 0; - m_cnt_done_q <= 0; - //C counter signals reset - usr_c_cnt_lo <= 0; - usr_c_cnt_hi <= 0; - usr_c_cnt_bypass_en <= 0; - usr_c_cnt_odd_duty_div_en <= 0; - any_c_cnt_changed <= 0; - all_c_cnt_done_q <= 0; - c_cnt_done_q <= 0; - //generic signals - dprio_start <= 0; - mif_start_assert <= 0; - dps_start_assert <= 0; - dprio_temp_m_n_c_readdata_1_q <= 0; - dprio_temp_m_n_c_readdata_2_q <= 0; - c_cnt_done_q <= 0; - //DPS signals - usr_up_dn <= 0; - usr_cnt_sel <= 0; - usr_num_shifts <= 0; - dps_changed <= 0; - //manual DPRIO signals - manual_dprio_changed <= 0; - usr_dprio_address <= 0; - usr_dprio_writedata_0 <= 0; - usr_r_w <= 0; - operation_address <= 0; - mif_reg_asserted <= 0; - mif_base_addr <= 0; - end - else - begin - if (dprio_temp_read_1) - begin - dprio_temp_m_n_c_readdata_1_q <= dprio_temp_m_n_c_readdata_1_d; - end - if (dprio_temp_read_2) - begin - dprio_temp_m_n_c_readdata_2_q <= dprio_temp_m_n_c_readdata_2_d; - end - if ((dps_done)) dps_changed <= 0; - if (dsm_k_done_d) dsm_k_done_q <= dsm_k_done_d; - if (n_cnt_done_d) n_cnt_done_q <= n_cnt_done_d; - if (m_cnt_done_d) m_cnt_done_q <= m_cnt_done_d; - if (all_c_cnt_done_d) all_c_cnt_done_q <= all_c_cnt_done_d; - if (c_cnt_done_d != 0) c_cnt_done_q <= c_cnt_done_q | c_cnt_done_d; - if (bwctrl_done_d) bwctrl_done_q <= bwctrl_done_d; - if (cp_current_done_d) cp_current_done_q <= cp_current_done_d; - if (vco_done_d) vco_done_q <= vco_done_d; - if (manual_dprio_done_d) manual_dprio_done_q <= manual_dprio_done_d; - - if (mif_start_out == 1'b1) - mif_start_assert <= 0; // Signaled MIF block to start, so deassert on next cycle - - if (dps_done != 1'b1) - dps_start_assert <= 0; // DPS has started, so dessert its start signal on next cycle - - if (dprio_next_state == ONE) - dprio_start <= 0; - if (dprio_write_done) - begin - bwctrl_done_q <= 0; - cp_current_done_q <= 0; - vco_done_q <= 0; - dsm_k_done_q <= 0; - dsm_k_done_q <= 0; - n_cnt_done_q <= 0; - m_cnt_done_q <= 0; - all_c_cnt_done_q <= 0; - c_cnt_done_q <= 0; - dsm_k_changed <= 0; - n_cnt_changed <= 0; - m_cnt_changed <= 0; - any_c_cnt_changed <= 0; - bwctrl_changed <= 0; - cp_current_changed <= 0; - vco_changed <= 0; - manual_dprio_changed <= 0; - manual_dprio_done_q <= 0; - if (dps_changed | dps_changed_valid | !dps_done ) - begin - usr_cnt_sel <= usr_cnt_sel; - end - else - begin - usr_cnt_sel <= 0; - end - mif_reg_asserted <= 0; - end - else - begin - dsm_k_changed <= dsm_k_changed; - n_cnt_changed <= n_cnt_changed; - m_cnt_changed <= m_cnt_changed; - any_c_cnt_changed <= any_c_cnt_changed; - manual_dprio_changed <= manual_dprio_changed; - mif_reg_asserted <= mif_reg_asserted; - usr_cnt_sel <= usr_cnt_sel; - end - - - if(slave_write & !slave_waitrequest) - begin - case(slave_address) - //read in the values here from the user and act on them - DSM_REG: - begin - operation_address <= DSM_REG; - usr_k_value <= slave_writedata[31:0]; - dsm_k_changed <= 1'b1; - dsm_k_done_q <= 0; - dprio_start <= 1'b1; - end - N_REG: - begin - operation_address <= N_REG; - usr_n_cnt_lo <= slave_writedata[7:0]; - usr_n_cnt_hi <= slave_writedata[15:8]; - usr_n_cnt_bypass_en <= slave_writedata[16]; - usr_n_cnt_odd_duty_div_en <= slave_writedata[17]; - n_cnt_changed <= 1'b1; - n_cnt_done_q <= 0; - dprio_start <= 1'b1; - end - M_REG: - begin - operation_address <= M_REG; - usr_m_cnt_lo <= slave_writedata[7:0]; - usr_m_cnt_hi <= slave_writedata[15:8]; - usr_m_cnt_bypass_en <= slave_writedata[16]; - usr_m_cnt_odd_duty_div_en <= slave_writedata[17]; - m_cnt_changed <= 1'b1; - m_cnt_done_q <= 0; - dprio_start <= 1'b1; - end - DPS_REG: - begin - operation_address <= DPS_REG; - usr_num_shifts <= slave_writedata[15:0]; - usr_cnt_sel <= slave_writedata[20:16]; - usr_up_dn <= slave_writedata[21]; - dps_changed <= 1; - dps_start_assert <= 1; - end - C_COUNTERS_REG: - begin - operation_address <= C_COUNTERS_REG; - usr_c_cnt_lo <= slave_writedata[7:0]; - usr_c_cnt_hi <= slave_writedata[15:8]; - usr_c_cnt_bypass_en <= slave_writedata[16]; - usr_c_cnt_odd_duty_div_en <= slave_writedata[17]; - usr_cnt_sel <= slave_writedata[22:18]; - any_c_cnt_changed <= 1'b1; - all_c_cnt_done_q <= 0; - dprio_start <= 1'b1; - end - BWCTRL_REG: - begin - usr_bwctrl_value <= slave_writedata[3:0]; - bwctrl_changed <= 1'b1; - bwctrl_done_q <= 0; - dprio_start <= 1'b1; - operation_address <= BWCTRL_REG; - end - CP_CURRENT_REG: - begin - usr_cp_current_value <= slave_writedata[2:0]; - cp_current_changed <= 1'b1; - cp_current_done_q <= 0; - dprio_start <= 1'b1; - operation_address <= CP_CURRENT_REG; - end - VCO_REG: - begin - usr_vco_value <= slave_writedata[0]; - vco_changed <= 1'b1; - vco_done_q <= 0; - dprio_start <= 1'b1; - operation_address <= VCO_REG; - end - ANY_DPRIO: - begin - operation_address <= ANY_DPRIO; - manual_dprio_changed <= 1'b1; - usr_dprio_address <= slave_writedata[5:0]; - usr_dprio_writedata_0 <= slave_writedata[21:6]; - usr_r_w <= slave_writedata[22]; - manual_dprio_done_q <= 0; - dprio_start <= 1'b1; - end - MIF_REG: - begin - mif_reg_asserted <= 1'b1; - mif_base_addr <= slave_writedata[ROM_ADDR_WIDTH-1:0]; - mif_start_assert <= 1'b1; - end - endcase - end - end - end - //C Counter assigning values to the 2-d array of values for each C counter - - reg [4:0] j; - always @(posedge clk) - begin - - if (reset) - begin - c_cnt_changed[17:0] <= 0; - for (j = 0; j < number_of_counters; j = j + 1'b1) - begin : c_cnt_reset - temp_c_cnt_bypass_en[j] <= 0; - temp_c_cnt_odd_duty_div_en[j] <= 0; - temp_c_cnt_lo[j][7:0] <= 0; - temp_c_cnt_hi[j][7:0] <= 0; - end - end - else - begin - if (dprio_write_done) - begin - c_cnt_changed <= 0; - end - if (any_c_cnt_changed && (operation_address == C_COUNTERS_REG)) - begin - case (cnt_sel) - CNT_0: - begin - temp_c_cnt_lo [0] <= usr_c_cnt_lo; - temp_c_cnt_hi [0] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [0] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [0] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [0] <= 1'b1; - end - CNT_1: - begin - temp_c_cnt_lo [1] <= usr_c_cnt_lo; - temp_c_cnt_hi [1] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [1] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [1] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [1] <= 1'b1; - end - CNT_2: - begin - temp_c_cnt_lo [2] <= usr_c_cnt_lo; - temp_c_cnt_hi [2] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [2] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [2] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [2] <= 1'b1; - end - CNT_3: - begin - temp_c_cnt_lo [3] <= usr_c_cnt_lo; - temp_c_cnt_hi [3] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [3] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [3] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [3] <= 1'b1; - end - CNT_4: - begin - temp_c_cnt_lo [4] <= usr_c_cnt_lo; - temp_c_cnt_hi [4] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [4] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [4] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [4] <= 1'b1; - end - CNT_5: - begin - temp_c_cnt_lo [5] <= usr_c_cnt_lo; - temp_c_cnt_hi [5] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [5] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [5] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [5] <= 1'b1; - end - CNT_6: - begin - temp_c_cnt_lo [6] <= usr_c_cnt_lo; - temp_c_cnt_hi [6] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [6] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [6] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [6] <= 1'b1; - end - CNT_7: - begin - temp_c_cnt_lo [7] <= usr_c_cnt_lo; - temp_c_cnt_hi [7] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [7] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [7] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [7] <= 1'b1; - end - CNT_8: - begin - temp_c_cnt_lo [8] <= usr_c_cnt_lo; - temp_c_cnt_hi [8] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [8] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [8] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [8] <= 1'b1; - end - CNT_9: - begin - temp_c_cnt_lo [9] <= usr_c_cnt_lo; - temp_c_cnt_hi [9] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [9] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [9] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [9] <= 1'b1; - end - CNT_10: - begin - temp_c_cnt_lo [10] <= usr_c_cnt_lo; - temp_c_cnt_hi [10] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [10] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [10] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [10] <= 1'b1; - end - CNT_11: - begin - temp_c_cnt_lo [11] <= usr_c_cnt_lo; - temp_c_cnt_hi [11] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [11] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [11] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [11] <= 1'b1; - end - CNT_12: - begin - temp_c_cnt_lo [12] <= usr_c_cnt_lo; - temp_c_cnt_hi [12] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [12] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [12] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [12] <= 1'b1; - end - CNT_13: - begin - temp_c_cnt_lo [13] <= usr_c_cnt_lo; - temp_c_cnt_hi [13] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [13] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [13] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [13] <= 1'b1; - end - CNT_14: - begin - temp_c_cnt_lo [14] <= usr_c_cnt_lo; - temp_c_cnt_hi [14] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [14] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [14] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [14] <= 1'b1; - end - CNT_15: - begin - temp_c_cnt_lo [15] <= usr_c_cnt_lo; - temp_c_cnt_hi [15] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [15] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [15] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [15] <= 1'b1; - end - CNT_16: - begin - temp_c_cnt_lo [16] <= usr_c_cnt_lo; - temp_c_cnt_hi [16] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [16] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [16] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [16] <= 1'b1; - end - CNT_17: - begin - temp_c_cnt_lo [17] <= usr_c_cnt_lo; - temp_c_cnt_hi [17] <= usr_c_cnt_hi; - temp_c_cnt_bypass_en [17] <= usr_c_cnt_bypass_en; - temp_c_cnt_odd_duty_div_en [17] <= usr_c_cnt_odd_duty_div_en; - c_cnt_changed [17] <= 1'b1; - end - endcase - - end - end - end - - - //logic to handle which writes the user indicated and wants to start. - assign usr_valid_changes =dsm_k_changed| any_c_cnt_changed |n_cnt_changed | m_cnt_changed | dps_changed_valid |manual_dprio_changed |cp_current_changed|bwctrl_changed|vco_changed; - - - //start the reconfig operations by writing to the DPRIO - reg break_loop; - reg [4:0] i; - always @(*) - begin - dprio_temp_read_1 = 0; - dprio_temp_read_2 = 0; - dprio_temp_m_n_c_readdata_1_d = 0; - dprio_temp_m_n_c_readdata_2_d = 0; - break_loop = 0; - dprio_next_state = DPRIO_IDLE; - avmm_dprio_write = 0; - avmm_dprio_read = 0; - avmm_dprio_address = 0; - avmm_dprio_writedata = 0; - avmm_dprio_byteen = 0; - dprio_write_done = 1; - manual_dprio_done_d = 0; - n_cnt_done_d = 0; - dsm_k_done_d = 0; - dsm_k_ready_false_done_d = 0; - m_cnt_done_d = 0; - c_cnt_done_d[17:0] = 0; - all_c_cnt_done_d = 0; - bwctrl_done_d = 0; - cp_current_done_d = 0; - vco_done_d = 0; - i = 0; - - // Deassert dprio_write_done so it doesn't reset mif_reg_asserted (toggled writes) - if (dprio_start | mif_start_assert) - dprio_write_done = 0; - - if (current_state == WAIT_ON_LOCK) - begin - case (dprio_cur_state) - ONE: - begin - if (n_cnt_changed & !n_cnt_done_q) - begin - dprio_write_done = 0; - avmm_dprio_write = 1'b1; - avmm_dprio_byteen = 2'b11; - dprio_next_state = TWO; - avmm_dprio_address = N_CNT_DIV_ADDR; - avmm_dprio_writedata[7:0] = usr_n_cnt_lo; - avmm_dprio_writedata[15:8] = usr_n_cnt_hi; - end - else if (m_cnt_changed & !m_cnt_done_q) - begin - dprio_write_done = 0; - avmm_dprio_write = 1'b1; - avmm_dprio_byteen = 2'b11; - dprio_next_state = TWO; - avmm_dprio_address = M_CNT_DIV_ADDR; - avmm_dprio_writedata[7:0] = usr_m_cnt_lo; - avmm_dprio_writedata[15:8] = usr_m_cnt_hi; - end - else if (any_c_cnt_changed & !all_c_cnt_done_q) - begin - - for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) - begin : c_cnt_write_hilo - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - dprio_write_done = 0; - avmm_dprio_write = 1'b1; - avmm_dprio_byteen = 2'b11; - dprio_next_state = TWO; - if (fpll_1) avmm_dprio_address = C_CNT_0_DIV_ADDR + C_CNT_0_DIV_ADDR_DPRIO_1 - i; - else avmm_dprio_address = C_CNT_0_DIV_ADDR + i; - avmm_dprio_writedata[7:0] = temp_c_cnt_lo[i]; - avmm_dprio_writedata[15:8] = temp_c_cnt_hi[i]; - //To break from the loop, since only one counter - //is addressed at a time - break_loop = 1'b1; - end - end - end - else if (dsm_k_changed & !dsm_k_done_q) - begin - dprio_write_done = 0; - avmm_dprio_write = 0; - dprio_next_state = TWO; - end - else if (bwctrl_changed & !bwctrl_done_q) - begin - dprio_write_done = 0; - avmm_dprio_write = 0; - dprio_next_state = TWO; - end - else if (cp_current_changed & !cp_current_done_q) - begin - dprio_write_done = 0; - avmm_dprio_write = 0; - dprio_next_state = TWO; - end - else if (vco_changed & !vco_done_q) - begin - dprio_write_done = 0; - avmm_dprio_write = 0; - dprio_next_state = TWO; - end - else if (manual_dprio_changed & !manual_dprio_done_q) - begin - dprio_write_done = 0; - avmm_dprio_byteen = 2'b11; - dprio_next_state = TWO; - avmm_dprio_write = usr_r_w; - avmm_dprio_address = usr_dprio_address; - avmm_dprio_writedata[15:0] = usr_dprio_writedata_0; - end - else dprio_next_state = DPRIO_IDLE; - end - - TWO: - begin - //handle reading the two setting bits on n_cnt, then - //writing them back while preserving other bits. - //Issue two consecutive reads then wait; readLatency=3 - dprio_write_done = 0; - dprio_next_state = THREE; - avmm_dprio_byteen = 2'b11; - avmm_dprio_read = 1'b1; - if (n_cnt_changed & !n_cnt_done_q) - begin - avmm_dprio_address = N_CNT_BYPASS_EN_ADDR; - end - else if (m_cnt_changed & !m_cnt_done_q) - begin - avmm_dprio_address = M_CNT_BYPASS_EN_ADDR; - end - - else if (any_c_cnt_changed & !all_c_cnt_done_q) - begin - for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) - begin : c_cnt_read_bypass - if (fpll_1) - begin - if (i > 13) - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; - break_loop = 1'b1; - end - end - else - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; - break_loop = 1'b1; - end - end - end - else - begin - if (i < 4) - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; - break_loop = 1'b1; - end - end - else - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; - break_loop = 1'b1; - end - end - end - end - end - //reading the K ready 16 bit word. Need to write 0 to it - //afterwards to indicate that K has not been done writing - else if (dsm_k_changed & !dsm_k_done_q) - begin - avmm_dprio_address = DSM_K_READY_ADDR; - dprio_next_state = FOUR; - end - else if (bwctrl_changed & !bwctrl_done_q) - begin - avmm_dprio_address = BWCTRL_ADDR; - dprio_next_state = FOUR; - end - else if (cp_current_changed & !cp_current_done_q) - begin - avmm_dprio_address = CP_CURRENT_ADDR; - dprio_next_state = FOUR; - end - else if (vco_changed & !vco_done_q) - begin - avmm_dprio_address = VCO_ADDR; - dprio_next_state = FOUR; - end - else if (manual_dprio_changed & !manual_dprio_done_q) - begin - avmm_dprio_read = ~usr_r_w; - avmm_dprio_address = usr_dprio_address; - dprio_next_state = DPRIO_DONE; - end - else dprio_next_state = DPRIO_IDLE; - end - THREE: - begin - dprio_write_done = 0; - avmm_dprio_byteen = 2'b11; - avmm_dprio_read = 1'b1; - dprio_next_state = FOUR; - if (n_cnt_changed & !n_cnt_done_q) - begin - avmm_dprio_address = N_CNT_ODD_DIV_EN_ADDR; - end - else if (m_cnt_changed & !m_cnt_done_q) - begin - avmm_dprio_address = M_CNT_ODD_DIV_EN_ADDR; - end - else if (any_c_cnt_changed & !all_c_cnt_done_q) - begin - for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) - begin : c_cnt_read_odd_div - if (fpll_1) - begin - if (i > 13) - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; - break_loop = 1'b1; - end - end - else - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; - break_loop = 1'b1; - end - end - end - else - begin - if (i < 4) - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; - break_loop = 1'b1; - end - end - else - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; - break_loop = 1'b1; - end - end - end - end - end - else dprio_next_state = DPRIO_IDLE; - end - FOUR: - begin - dprio_temp_read_1 = 1'b1; - dprio_write_done = 0; - if (vco_changed|cp_current_changed|bwctrl_changed|dsm_k_changed|n_cnt_changed|m_cnt_changed|any_c_cnt_changed) - begin - dprio_temp_m_n_c_readdata_1_d = dprio_readdata; - dprio_next_state = FIVE; - end - else dprio_next_state = DPRIO_IDLE; - end - FIVE: - begin - dprio_write_done = 0; - dprio_temp_read_2 = 1'b1; - if (vco_changed|cp_current_changed|bwctrl_changed|dsm_k_changed|n_cnt_changed|m_cnt_changed|any_c_cnt_changed) - begin - //this is where DSM ready value comes. - //Need to store in a register to be used later - dprio_temp_m_n_c_readdata_2_d = dprio_readdata; - dprio_next_state = SIX; - end - else dprio_next_state = DPRIO_IDLE; - end - SIX: - begin - dprio_write_done = 0; - avmm_dprio_write = 1'b1; - avmm_dprio_byteen = 2'b11; - dprio_next_state = SEVEN; - avmm_dprio_writedata = dprio_temp_m_n_c_readdata_1_q; - if (n_cnt_changed & !n_cnt_done_q) - begin - avmm_dprio_address = N_CNT_BYPASS_EN_ADDR; - avmm_dprio_writedata[5] = usr_n_cnt_bypass_en; - end - else if (m_cnt_changed & !m_cnt_done_q) - begin - avmm_dprio_address = M_CNT_BYPASS_EN_ADDR; - avmm_dprio_writedata[4] = usr_m_cnt_bypass_en; - end - else if (any_c_cnt_changed & !all_c_cnt_done_q) - begin - for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) - begin : c_cnt_write_bypass - if (fpll_1) - begin - if (i > 13) - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; - avmm_dprio_writedata[i-14] = temp_c_cnt_bypass_en[i]; - break_loop = 1'b1; - end - end - else - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; - avmm_dprio_writedata[i] = temp_c_cnt_bypass_en[i]; - break_loop = 1'b1; - end - end - end - else - begin - if (i < 4) - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; - avmm_dprio_writedata[3-i] = temp_c_cnt_bypass_en[i]; - break_loop = 1'b1; - end - end - else - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; - avmm_dprio_writedata[17-i] = temp_c_cnt_bypass_en[i]; - break_loop = 1'b1; - end - end - end - end - end - else if (dsm_k_changed & !dsm_k_done_q) - begin - avmm_dprio_write = 0; - end - else if (bwctrl_changed & !bwctrl_done_q) - begin - avmm_dprio_write = 0; - end - else if (cp_current_changed & !cp_current_done_q) - begin - avmm_dprio_write = 0; - end - else if (vco_changed & !vco_done_q) - begin - avmm_dprio_write = 0; - end - else dprio_next_state = DPRIO_IDLE; - end - SEVEN: - begin - dprio_write_done = 0; - dprio_next_state = EIGHT; - avmm_dprio_write = 1'b1; - avmm_dprio_byteen = 2'b11; - avmm_dprio_writedata = dprio_temp_m_n_c_readdata_2_q; - if (n_cnt_changed & !n_cnt_done_q) - begin - avmm_dprio_address = N_CNT_ODD_DIV_EN_ADDR; - avmm_dprio_writedata[5] = usr_n_cnt_odd_duty_div_en; - n_cnt_done_d = 1'b1; - end - else if (m_cnt_changed & !m_cnt_done_q) - begin - avmm_dprio_address = M_CNT_ODD_DIV_EN_ADDR; - avmm_dprio_writedata[4] = usr_m_cnt_odd_duty_div_en; - m_cnt_done_d = 1'b1; - end - - else if (any_c_cnt_changed & !all_c_cnt_done_q) - begin - for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) - begin : c_cnt_write_odd_div - if (fpll_1) - begin - if (i > 13) - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; - avmm_dprio_writedata[i-14] = temp_c_cnt_odd_duty_div_en[i]; - c_cnt_done_d[i] = 1'b1; - //have to OR the signals to prevent - //overwriting of previous dones - c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; - break_loop = 1'b1; - end - end - else - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; - avmm_dprio_writedata[i] = temp_c_cnt_odd_duty_div_en[i]; - c_cnt_done_d[i] = 1'b1; - c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; - break_loop = 1'b1; - end - end - end - else - begin - if (i < 4) - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; - avmm_dprio_writedata[3-i] = temp_c_cnt_odd_duty_div_en[i]; - c_cnt_done_d[i] = 1'b1; - //have to OR the signals to prevent - //overwriting of previous dones - c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; - break_loop = 1'b1; - end - end - else - begin - if (c_cnt_changed[i] & !c_cnt_done_q[i]) - begin - avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; - avmm_dprio_writedata[17-i] = temp_c_cnt_odd_duty_div_en[i]; - c_cnt_done_d[i] = 1'b1; - c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; - break_loop = 1'b1; - end - end - end - end - end - else if (dsm_k_changed & !dsm_k_done_q) - begin - avmm_dprio_address = DSM_K_READY_ADDR; - avmm_dprio_writedata[DSM_K_READY_BIT_INDEX] = 1'b0; - dsm_k_ready_false_done_d = 1'b1; - end - else if (bwctrl_changed & !bwctrl_done_q) - begin - avmm_dprio_address = BWCTRL_ADDR; - avmm_dprio_writedata[3:0] = usr_bwctrl_value; - bwctrl_done_d = 1'b1; - end - else if (cp_current_changed & !cp_current_done_q) - begin - avmm_dprio_address = CP_CURRENT_ADDR; - avmm_dprio_writedata[2:0] = usr_cp_current_value; - cp_current_done_d = 1'b1; - end - else if (vco_changed & !vco_done_q) - begin - avmm_dprio_address = VCO_ADDR; - avmm_dprio_writedata[8] = usr_vco_value; - vco_done_d = 1'b1; - end - - - //if all C_cnt that were changed are done, then assert all_c_cnt_done - if (c_cnt_done_d == c_cnt_changed) - all_c_cnt_done_d = 1'b1; - if (n_cnt_changed & n_cnt_done_d) - dprio_next_state = DPRIO_DONE; - if (any_c_cnt_changed & !all_c_cnt_done_d & !all_c_cnt_done_q) - dprio_next_state = ONE; - else if (m_cnt_changed & !m_cnt_done_d & !m_cnt_done_q) - dprio_next_state = ONE; - else if (dsm_k_changed & !dsm_k_ready_false_done_d) - dprio_next_state = TWO; - else if (dsm_k_changed & !dsm_k_done_q) - dprio_next_state = EIGHT; - else if (bwctrl_changed & !bwctrl_done_d) - dprio_next_state = TWO; - else if (cp_current_changed & !cp_current_done_d) - dprio_next_state = TWO; - else if (vco_changed & !vco_done_d) - dprio_next_state = TWO; - else - begin - dprio_next_state = DPRIO_DONE; - dprio_write_done = 1'b1; - end - end - //finish the rest of the DSM reads/writes - //writing k value, writing k_ready to 1. - EIGHT: - begin - dprio_write_done = 0; - dprio_next_state = NINE; - avmm_dprio_write = 1'b1; - avmm_dprio_byteen = 2'b11; - if (dsm_k_changed & !dsm_k_done_q) - begin - avmm_dprio_address = DSM_K_FRACTIONAL_DIVISION_ADDR_0; - avmm_dprio_writedata[15:0] = usr_k_value[15:0]; - end - end - NINE: - begin - dprio_write_done = 0; - dprio_next_state = TEN; - avmm_dprio_write = 1'b1; - avmm_dprio_byteen = 2'b11; - if (dsm_k_changed & !dsm_k_done_q) - begin - avmm_dprio_address = DSM_K_FRACTIONAL_DIVISION_ADDR_1; - avmm_dprio_writedata[15:0] = usr_k_value[31:16]; - end - end - TEN: - begin - dprio_write_done = 0; - dprio_next_state = ONE; - avmm_dprio_write = 1'b1; - avmm_dprio_byteen = 2'b11; - if (dsm_k_changed & !dsm_k_done_q) - begin - avmm_dprio_address = DSM_K_READY_ADDR; - //already have the readdata for DSM_K_READY_ADDR since we read it - //earlier. Just reuse here - avmm_dprio_writedata = dprio_temp_m_n_c_readdata_2_q; - avmm_dprio_writedata[DSM_K_READY_BIT_INDEX] = 1'b1; - dsm_k_done_d = 1'b1; - end - end - DPRIO_DONE: - begin - dprio_write_done = 1'b1; - if (dprio_start) dprio_next_state = DPRIO_IDLE; - else dprio_next_state = DPRIO_DONE; - end - DPRIO_IDLE: - begin - if (dprio_start) dprio_next_state = ONE; - else dprio_next_state = DPRIO_IDLE; - end - default: dprio_next_state = 4'bxxxx; - endcase - end - - end - - - //assert the waitreq signal according to the state of the slave - assign slave_waitrequest = (slave_mode==mode_WR) ? ((locked === 1'b1) ? (((current_state==WAIT_ON_LOCK) & !dprio_write_done) | !dps_done |reset|!dprio_init_done) : 1'b1) : 1'b0; - - // Read operations - always @(*) - begin - status = 0; - if (slave_mode == mode_POLL) - //asserting status to 1 if the slave is done. - status = (current_state == LOCKED); - end - //************************************************************// - //************************************************************// - //******************** READ STATE MACHINE ********************// - //************************************************************// - //************************************************************// - reg [1:0] current_read_state; - reg [1:0] next_read_state; - reg [5:0] slave_address_int_d; - reg [5:0] slave_address_int_q; - reg dprio_read_1; - reg [5:0] dprio_address_1; - reg [1:0] dprio_byteen_1; - reg [4:0] usr_cnt_sel_1; - localparam READ = 2'b00, READ_WAIT = 2'b01, READ_IDLE = 2'b10, READ_POST_WAIT = 2'b11; - - always @(*) - begin - if(next_read_state == READ_IDLE) - begin - read_waitrequest <= 1'b0; - end - else - begin - read_waitrequest <= 1'b1; - end - end - - always @(posedge clk) - begin - if (reset) - begin - current_read_state <= READ_IDLE; - slave_address_int_q <= 0; - slave_readdata_q <= 0; - end - else - begin - current_read_state <= next_read_state; - slave_address_int_q <= slave_address_int_d; - slave_readdata_q <= slave_readdata_d; - end - end - always @(*) - begin - dprio_read_1 = 0; - dprio_address_1 = 0; - dprio_byteen_1 = 0; - slave_address_int_d = 0; - slave_readdata_d = 0; - status_read = 0; - usr_cnt_sel_1 = 0; - case(current_read_state) - READ_IDLE: - begin - slave_address_int_d = 0; - next_read_state = READ_IDLE; - if ((current_state != WAIT_ON_LOCK) && slave_read) - begin - slave_address_int_d = slave_address; - if ((slave_address >= CNT_BASE) && (slave_address < CNT_BASE+18)) - begin - next_read_state = READ_WAIT; - dprio_byteen_1 = 2'b11; - dprio_read_1 = 1'b1; - usr_cnt_sel_1 = (slave_address[4:0] - CNT_BASE); - if (fpll_1) dprio_address_1 = C_CNT_0_DIV_ADDR + C_CNT_0_DIV_ADDR_DPRIO_1 - cnt_sel; - else dprio_address_1 = C_CNT_0_DIV_ADDR + cnt_sel; - end - else - begin - case (slave_address) - MODE_REG: - begin - next_read_state = READ_WAIT; - slave_readdata_d = slave_mode; - end - STATUS_REG: - begin - next_read_state = READ_WAIT; - status_read = 1'b1; - slave_readdata_d = status; - end - N_REG: - begin - dprio_byteen_1 = 2'b11; - dprio_read_1 = 1'b1; - dprio_address_1 = N_CNT_DIV_ADDR; - next_read_state = READ_WAIT; - end - M_REG: - begin - dprio_byteen_1 = 2'b11; - dprio_read_1 = 1'b1; - dprio_address_1 = M_CNT_DIV_ADDR; - next_read_state = READ_WAIT; - end - BWCTRL_REG: - begin - dprio_byteen_1 = 2'b11; - dprio_read_1 = 1'b1; - dprio_address_1 = BWCTRL_ADDR; - next_read_state = READ_WAIT; - end - CP_CURRENT_REG: - begin - dprio_byteen_1 = 2'b11; - dprio_read_1 = 1'b1; - dprio_address_1 = CP_CURRENT_ADDR; - next_read_state = READ_WAIT; - end - VCO_REG: - begin - dprio_byteen_1 = 2'b11; - dprio_read_1 = 1'b1; - dprio_address_1 = VCO_ADDR; - next_read_state = READ_WAIT; - end - ANY_DPRIO: - begin - dprio_byteen_1 = 2'b11; - dprio_read_1 = ~slave_writedata[22]; - dprio_address_1 = slave_writedata[5:0]; - next_read_state = READ_WAIT; - end - default : next_read_state = READ_IDLE; - endcase - end - end - else - next_read_state = READ_IDLE; - end - READ_WAIT: - begin - next_read_state = READ; - slave_address_int_d = slave_address_int_q; - case (slave_address_int_q) - MODE_REG: - begin - slave_readdata_d = slave_readdata_q; - end - STATUS_REG: - begin - slave_readdata_d = slave_readdata_q; - end - endcase - end - READ: - begin - next_read_state = READ_POST_WAIT; - slave_address_int_d = slave_address_int_q; - slave_readdata_d = dprio_readdata; - case (slave_address_int_q) - MODE_REG: - begin - slave_readdata_d = slave_readdata_q; - end - STATUS_REG: - begin - slave_readdata_d = slave_readdata_q; - end - BWCTRL_REG: - begin - slave_readdata_d = dprio_readdata[3:0]; - end - CP_CURRENT_REG: - begin - slave_readdata_d = dprio_readdata[2:0]; - end - VCO_REG: - begin - slave_readdata_d = dprio_readdata[8]; - end - ANY_DPRIO: - begin - slave_readdata_d = dprio_readdata; - end - endcase - end - READ_POST_WAIT: - begin - next_read_state = READ_IDLE; - end - default: next_read_state = 2'bxx; - endcase - end - - - dyn_phase_shift dyn_phase_shift_inst ( - .clk(clk), - .reset(reset), - .phase_done(phase_done), - .pll_start_valid(pll_start_valid), - .dps_changed(dps_changed), - .dps_changed_valid(dps_changed_valid), - .dprio_write_done(dprio_write_done), - .usr_num_shifts(usr_num_shifts), - .usr_cnt_sel(usr_cnt_sel|usr_cnt_sel_1), - .usr_up_dn(usr_up_dn), - .locked(locked), - .dps_done(dps_done), - .phase_en(phase_en), - .up_dn(up_dn), - .cnt_sel(cnt_sel)); - defparam dyn_phase_shift_inst.device_family = device_family; - - assign dprio_clk = clk; - self_reset self_reset_inst (mgmt_reset, clk, reset, dprio_init_reset); - - dprio_mux dprio_mux_inst ( - .init_dprio_address(init_dprio_address), - .init_dprio_read(init_dprio_read), - .init_dprio_byteen(init_dprio_byteen), - .init_dprio_write(init_dprio_write), - .init_dprio_writedata(init_dprio_writedata), - - - .init_atpgmode(init_atpgmode), - .init_mdio_dis(init_mdio_dis), - .init_scanen(init_scanen), - .init_ser_shift_load(init_ser_shift_load), - .dprio_init_done(dprio_init_done), - - // Inputs from avmm master - .avmm_dprio_address(avmm_dprio_address | dprio_address_1), - .avmm_dprio_read(avmm_dprio_read | dprio_read_1), - .avmm_dprio_byteen(avmm_dprio_byteen | dprio_byteen_1), - .avmm_dprio_write(avmm_dprio_write), - .avmm_dprio_writedata(avmm_dprio_writedata), - - .avmm_atpgmode(avmm_atpgmode), - .avmm_mdio_dis(avmm_mdio_dis), - .avmm_scanen(avmm_scanen), - - // Outputs to fpll - .dprio_address(dprio_address), - .dprio_read(dprio_read), - .dprio_byteen(dprio_byteen), - .dprio_write(dprio_write), - .dprio_writedata(dprio_writedata), - - .atpgmode(dprio_atpgmode), - .mdio_dis(dprio_mdio_dis), - .scanen(dprio_scanen), - .ser_shift_load(dprio_ser_shift_load) - ); - - - fpll_dprio_init fpll_dprio_init_inst ( - .clk(clk), - .reset_n(~reset), - .locked(locked), - - //outputs - .dprio_address(init_dprio_address), - .dprio_read(init_dprio_read), - .dprio_byteen(init_dprio_byteen), - .dprio_write(init_dprio_write), - .dprio_writedata(init_dprio_writedata), - - .atpgmode(init_atpgmode), - .mdio_dis(init_mdio_dis), - .scanen(init_scanen), - .ser_shift_load(init_ser_shift_load), - .dprio_init_done(dprio_init_done)); - - //address luts, to be reconfigged by the Fitter - //FPLL_1 or 0 address lut - generic_lcell_comb lcell_fpll_0_1 ( - .dataa(1'b0), - .combout (fpll_1)); - defparam lcell_fpll_0_1.lut_mask = 64'hAAAAAAAAAAAAAAAA; - defparam lcell_fpll_0_1.dont_touch = "on"; - defparam lcell_fpll_0_1.family = device_family; - - - wire dprio_read_combout; - generic_lcell_comb lcell_dprio_read ( - .dataa(fpll_1), - .datab(dprio_read), - .datac(1'b0), - .datad(1'b0), - .datae(1'b0), - .dataf(1'b0), - .combout (dprio_read_combout)); - defparam lcell_dprio_read.lut_mask = 64'hCCCCCCCCCCCCCCCC; - defparam lcell_dprio_read.dont_touch = "on"; - defparam lcell_dprio_read.family = device_family; - - - - - - //assign reconfig_to_pll signals - assign reconfig_to_pll[0] = dprio_clk; - assign reconfig_to_pll[1] = ~dprio_init_reset; - assign reconfig_to_pll[2] = dprio_write; - assign reconfig_to_pll[3] = dprio_read_combout; - assign reconfig_to_pll[9:4] = dprio_address; - assign reconfig_to_pll[25:10] = dprio_writedata; - assign reconfig_to_pll[27:26] = dprio_byteen; - assign reconfig_to_pll[28] = dprio_ser_shift_load; - assign reconfig_to_pll[29] = dprio_mdio_dis; - assign reconfig_to_pll[30] = phase_en; - assign reconfig_to_pll[31] = up_dn; - assign reconfig_to_pll[36:32] = cnt_sel; - assign reconfig_to_pll[37] = dprio_scanen; - assign reconfig_to_pll[38] = dprio_atpgmode; - //assign reconfig_to_pll[40:37] = clken; - assign reconfig_to_pll[63:39] = 0; - - //assign reconfig_from_pll signals - assign dprio_readdata = reconfig_from_pll [15:0]; - assign locked_orig = reconfig_from_pll [16]; - assign phase_done = reconfig_from_pll [17]; - -endmodule -module self_reset (input wire mgmt_reset, input wire clk, output wire reset, output wire init_reset); - - localparam RESET_COUNTER_VALUE = 3'd2; - localparam INITIAL_WAIT_VALUE = 9'd340; - reg [9:0]counter; - reg local_reset; - reg usr_mode_init_wait; - initial - begin - local_reset = 1'b1; - counter = 0; - usr_mode_init_wait = 0; - end - - always @(posedge clk) - begin - if (mgmt_reset) - begin - counter <= 0; - end - else - begin - if (!usr_mode_init_wait) - begin - if (counter == INITIAL_WAIT_VALUE) - begin - local_reset <= 0; - usr_mode_init_wait <= 1'b1; - counter <= 0; - end - else - begin - counter <= counter + 1'b1; - end - end - else - begin - if (counter == RESET_COUNTER_VALUE) - local_reset <= 0; - else - counter <= counter + 1'b1; - end - end - end - assign reset = mgmt_reset | local_reset; - assign init_reset = local_reset; -endmodule - -module dprio_mux ( - // Inputs from init block - input [ 5:0] init_dprio_address, - input init_dprio_read, - input [ 1:0] init_dprio_byteen, - input init_dprio_write, - input [15:0] init_dprio_writedata, - - input init_atpgmode, - input init_mdio_dis, - input init_scanen, - input init_ser_shift_load, - input dprio_init_done, - - // Inputs from avmm master - input [ 5:0] avmm_dprio_address, - input avmm_dprio_read, - input [ 1:0] avmm_dprio_byteen, - input avmm_dprio_write, - input [15:0] avmm_dprio_writedata, - - input avmm_atpgmode, - input avmm_mdio_dis, - input avmm_scanen, - input avmm_ser_shift_load, - - // Outputs to fpll - output [ 5:0] dprio_address, - output dprio_read, - output [ 1:0] dprio_byteen, - output dprio_write, - output [15:0] dprio_writedata, - - output atpgmode, - output mdio_dis, - output scanen, - output ser_shift_load -); - - assign dprio_address = dprio_init_done ? avmm_dprio_address : init_dprio_address; - assign dprio_read = dprio_init_done ? avmm_dprio_read : init_dprio_read; - assign dprio_byteen = dprio_init_done ? avmm_dprio_byteen : init_dprio_byteen; - assign dprio_write = dprio_init_done ? avmm_dprio_write : init_dprio_write; - assign dprio_writedata = dprio_init_done ? avmm_dprio_writedata : init_dprio_writedata; - - assign atpgmode = init_atpgmode; - assign scanen = init_scanen; - assign mdio_dis = init_mdio_dis; - assign ser_shift_load = init_ser_shift_load ; -endmodule -module fpll_dprio_init ( - input clk, - input reset_n, - input locked, - - output [ 5:0] dprio_address, - output dprio_read, - output [ 1:0] dprio_byteen, - output dprio_write, - output [15:0] dprio_writedata, - - output reg atpgmode, - output reg mdio_dis, - output reg scanen, - output reg ser_shift_load, - output reg dprio_init_done -); - - reg [1:0] rst_n = 2'b00; - reg [6:0] count = 7'd0; - reg init_done_forever; - - // Internal versions of control signals - wire int_mdio_dis; - wire int_ser_shift_load; - wire int_dprio_init_done; - wire int_atpgmode/*synthesis keep*/; - wire int_scanen/*synthesis keep*/; - - - assign dprio_address = count[6] ? 5'b0 : count[5:0] ; - assign dprio_byteen = 2'b11; // always enabled - assign dprio_write = ~count[6] & reset_n ; // write for first 64 cycles - assign dprio_read = 1'b0; - assign dprio_writedata = 16'd0; - - assign int_ser_shift_load = count[6] ? |count[2:1] : 1'b1; - assign int_mdio_dis = count[6] ? ~count[2] : 1'b1; - assign int_dprio_init_done = ~init_done_forever ? (count[6] ? &count[2:0] : 1'b0) - : 1'b1; - assign int_atpgmode = 0; - assign int_scanen = 0; - - initial begin - count = 7'd0; - init_done_forever = 0; - mdio_dis = 1'b1; - ser_shift_load = 1'b1; - dprio_init_done = 1'b0; - scanen = 1'b0; - atpgmode = 1'b0; - end - - // reset synch. - always @(posedge clk or negedge reset_n) - if(!reset_n) rst_n <= 2'b00; - else rst_n <= {rst_n[0],1'b1}; - - // counter - always @(posedge clk) - begin - if (!rst_n[1]) - init_done_forever <= 1'b0; - else - begin - if (count[6] && &count[1:0]) - init_done_forever <= 1'b1; - end - end - always @(posedge clk or negedge rst_n[1]) - begin - if(!rst_n[1]) - begin - count <= 7'd0; - end - else if(~int_dprio_init_done) - begin - count <= count + 7'd1; - end - else - begin - count <= count; - end - end - - // outputs - always @(posedge clk) begin - mdio_dis <= int_mdio_dis; - ser_shift_load <= int_ser_shift_load; - dprio_init_done <= int_dprio_init_done; - atpgmode <= int_atpgmode; - scanen <= int_scanen; - end - -endmodule -module dyn_phase_shift -#( - parameter device_family = "Stratix V" -) ( - - input wire clk, - input wire reset, - input wire phase_done, - input wire pll_start_valid, - input wire dps_changed, - input wire dprio_write_done, - input wire [15:0] usr_num_shifts, - input wire [4:0] usr_cnt_sel, - input wire usr_up_dn, - input wire locked, - - //output - output wire dps_done, - output reg phase_en, - output wire up_dn, - output wire dps_changed_valid, - output wire [4:0] cnt_sel); - - - - reg first_phase_shift_d; - reg first_phase_shift_q; - reg [15:0] phase_en_counter; - reg [3:0] dps_current_state; - reg [3:0] dps_next_state; - localparam DPS_START = 4'd0, DPS_WAIT_PHASE_DONE = 4'd1, DPS_DONE = 4'd2, DPS_WAIT_PHASE_EN = 4'd3, DPS_WAIT_DPRIO_WRITING = 4'd4, DPS_CHANGED = 4'd5; - localparam PHASE_EN_WAIT_COUNTER = 5'd1; - - reg [15:0] shifts_done_counter; - reg phase_done_final; - wire gnd /*synthesis keep*/; - - //fsm - //always block controlling the state regs - always @(posedge clk) - begin - if (reset) - begin - dps_current_state <= DPS_DONE; - end - else - begin - dps_current_state <= dps_next_state; - end - end - //the combinational part. assigning the next state - //this turns on the phase_done_final signal when phase_done does this: - //_____ ______ - // |______| - always @(*) - begin - phase_done_final = 0; - first_phase_shift_d = 0; - phase_en = 0; - dps_next_state = DPS_DONE; - case (dps_current_state) - DPS_START: - begin - phase_en = 1'b1; - dps_next_state = DPS_WAIT_PHASE_EN; - end - DPS_WAIT_PHASE_EN: - begin - phase_en = 1'b1; - if (first_phase_shift_q) - begin - first_phase_shift_d = 1'b1; - dps_next_state = DPS_WAIT_PHASE_EN; - end - else - begin - if (phase_en_counter == PHASE_EN_WAIT_COUNTER) - dps_next_state = DPS_WAIT_PHASE_DONE; - else dps_next_state = DPS_WAIT_PHASE_EN; - end - end - DPS_WAIT_PHASE_DONE: - begin - if (!phase_done | !locked) - begin - dps_next_state = DPS_WAIT_PHASE_DONE; - end - else - begin - if ((usr_num_shifts != shifts_done_counter) & (usr_num_shifts != 0)) - begin - dps_next_state = DPS_START; - phase_done_final = 1'b1; - end - else - begin - dps_next_state = DPS_DONE; - end - - end - end - DPS_DONE: - begin - phase_done_final = 0; - if (dps_changed) - dps_next_state = DPS_CHANGED; - else dps_next_state = DPS_DONE; - - end - DPS_CHANGED: - begin - if (pll_start_valid) - dps_next_state = DPS_WAIT_DPRIO_WRITING; - else - dps_next_state = DPS_CHANGED; - end - DPS_WAIT_DPRIO_WRITING: - begin - if (dprio_write_done) - dps_next_state = DPS_START; - else - dps_next_state = DPS_WAIT_DPRIO_WRITING; - end - - default: dps_next_state = 4'bxxxx; - endcase - - - end - - always @(posedge clk) - begin - - - if (dps_current_state == DPS_WAIT_PHASE_DONE) - phase_en_counter <= 0; - else if (dps_current_state == DPS_WAIT_PHASE_EN) - phase_en_counter <= phase_en_counter + 1'b1; - - if (reset) - begin - phase_en_counter <= 0; - shifts_done_counter <= 1'b1; - first_phase_shift_q <= 1; - end - else - begin - if (first_phase_shift_d) - first_phase_shift_q <= 0; - if (dps_done) - begin - shifts_done_counter <= 1'b1; - end - else - begin - if (phase_done_final & (dps_next_state!= DPS_DONE)) - shifts_done_counter <= shifts_done_counter + 1'b1; - else - shifts_done_counter <= shifts_done_counter; - end - end - end - - assign dps_changed_valid = (dps_current_state == DPS_CHANGED); - assign dps_done =(dps_current_state == DPS_DONE) | (dps_current_state == DPS_CHANGED); - assign up_dn = usr_up_dn; - assign gnd = 1'b0; - - //cnt select luts (5) - generic_lcell_comb lcell_cnt_sel_0 ( - .dataa(usr_cnt_sel[0]), - .datab(usr_cnt_sel[1]), - .datac(usr_cnt_sel[2]), - .datad(usr_cnt_sel[3]), - .datae(usr_cnt_sel[4]), - .dataf(gnd), - .combout (cnt_sel[0])); - defparam lcell_cnt_sel_0.lut_mask = 64'hAAAAAAAAAAAAAAAA; - defparam lcell_cnt_sel_0.dont_touch = "on"; - defparam lcell_cnt_sel_0.family = device_family; - generic_lcell_comb lcell_cnt_sel_1 ( - .dataa(usr_cnt_sel[0]), - .datab(usr_cnt_sel[1]), - .datac(usr_cnt_sel[2]), - .datad(usr_cnt_sel[3]), - .datae(usr_cnt_sel[4]), - .dataf(gnd), - .combout (cnt_sel[1])); - defparam lcell_cnt_sel_1.lut_mask = 64'hCCCCCCCCCCCCCCCC; - defparam lcell_cnt_sel_1.dont_touch = "on"; - defparam lcell_cnt_sel_1.family = device_family; - generic_lcell_comb lcell_cnt_sel_2 ( - .dataa(usr_cnt_sel[0]), - .datab(usr_cnt_sel[1]), - .datac(usr_cnt_sel[2]), - .datad(usr_cnt_sel[3]), - .datae(usr_cnt_sel[4]), - .dataf(gnd), - .combout (cnt_sel[2])); - defparam lcell_cnt_sel_2.lut_mask = 64'hF0F0F0F0F0F0F0F0; - defparam lcell_cnt_sel_2.dont_touch = "on"; - defparam lcell_cnt_sel_2.family = device_family; - generic_lcell_comb lcell_cnt_sel_3 ( - .dataa(usr_cnt_sel[0]), - .datab(usr_cnt_sel[1]), - .datac(usr_cnt_sel[2]), - .datad(usr_cnt_sel[3]), - .datae(usr_cnt_sel[4]), - .dataf(gnd), - .combout (cnt_sel[3])); - defparam lcell_cnt_sel_3.lut_mask = 64'hFF00FF00FF00FF00; - defparam lcell_cnt_sel_3.dont_touch = "on"; - defparam lcell_cnt_sel_3.family = device_family; - generic_lcell_comb lcell_cnt_sel_4 ( - .dataa(usr_cnt_sel[0]), - .datab(usr_cnt_sel[1]), - .datac(usr_cnt_sel[2]), - .datad(usr_cnt_sel[3]), - .datae(usr_cnt_sel[4]), - .dataf(gnd), - .combout (cnt_sel[4])); - defparam lcell_cnt_sel_4.lut_mask = 64'hFFFF0000FFFF0000; - defparam lcell_cnt_sel_4.dont_touch = "on"; - defparam lcell_cnt_sel_4.family = device_family; - - -endmodule - -module generic_lcell_comb -#( - //parameter - parameter family = "Stratix V", - parameter lut_mask = 64'hAAAAAAAAAAAAAAAA, - parameter dont_touch = "on" -) ( - - input dataa, - input datab, - input datac, - input datad, - input datae, - input dataf, - - output combout -); - - generate - if (family == "Stratix V") - begin - stratixv_lcell_comb lcell_inst ( - .dataa(dataa), - .datab(datab), - .datac(datac), - .datad(datad), - .datae(datae), - .dataf(dataf), - .combout (combout)); - defparam lcell_inst.lut_mask = lut_mask; - defparam lcell_inst.dont_touch = dont_touch; - end - else if (family == "Arria V") - begin - arriav_lcell_comb lcell_inst ( - .dataa(dataa), - .datab(datab), - .datac(datac), - .datad(datad), - .datae(datae), - .dataf(dataf), - .combout (combout)); - defparam lcell_inst.lut_mask = lut_mask; - defparam lcell_inst.dont_touch = dont_touch; - end - else if (family == "Arria V GZ") - begin - arriavgz_lcell_comb lcell_inst ( - .dataa(dataa), - .datab(datab), - .datac(datac), - .datad(datad), - .datae(datae), - .dataf(dataf), - .combout (combout)); - defparam lcell_inst.lut_mask = lut_mask; - defparam lcell_inst.dont_touch = dont_touch; - end - else if (family == "Cyclone V") - begin - cyclonev_lcell_comb lcell_inst ( - .dataa(dataa), - .datab(datab), - .datac(datac), - .datad(datad), - .datae(datae), - .dataf(dataf), - .combout (combout)); - defparam lcell_inst.lut_mask = lut_mask; - defparam lcell_inst.dont_touch = dont_touch; - end - endgenerate -endmodule +`timescale 1ps/1ps + +module altera_pll_reconfig_core +#( + parameter reconf_width = 64, + parameter device_family = "Cyclone V", + // MIF Streaming parameters + parameter RECONFIG_ADDR_WIDTH = 6, + parameter RECONFIG_DATA_WIDTH = 32, + parameter ROM_ADDR_WIDTH = 9, + parameter ROM_DATA_WIDTH = 32, + parameter ROM_NUM_WORDS = 512 +) ( + + //input + input wire mgmt_clk, + input wire mgmt_reset, + + + //conduits + output wire [reconf_width-1:0] reconfig_to_pll, + input wire [reconf_width-1:0] reconfig_from_pll, + + // user data (avalon-MM slave interface) + output wire [31:0] mgmt_readdata, + output wire mgmt_waitrequest, + input wire [5:0] mgmt_address, + input wire mgmt_read, + input wire mgmt_write, + input wire [31:0] mgmt_writedata, + + //other + output wire mif_start_out, + output reg [ROM_ADDR_WIDTH-1:0] mif_base_addr +); + localparam mode_WR = 1'b0; + localparam mode_POLL = 1'b1; + localparam MODE_REG = 6'b000000; + localparam STATUS_REG = 6'b000001; + localparam START_REG = 6'b000010; + localparam N_REG = 6'b000011; + localparam M_REG = 6'b000100; + localparam C_COUNTERS_REG = 6'b000101; + localparam DPS_REG = 6'b000110; + localparam DSM_REG = 6'b000111; + localparam BWCTRL_REG = 6'b001000; + localparam CP_CURRENT_REG = 6'b001001; + localparam ANY_DPRIO = 6'b100000; + localparam CNT_BASE = 5'b001010; + localparam VCO_REG = 6'b011100; + localparam MIF_REG = 6'b011111; + + //C Counters + localparam number_of_counters = 5'd18; + localparam CNT_0 = 1'd0, CNT_1 = 5'd1, CNT_2 = 5'd2, + CNT_3 = 5'd3, CNT_4 = 5'd4, CNT_5 = 5'd5, + CNT_6 = 5'd6, CNT_7 = 5'd7, CNT_8 = 5'd8, + CNT_9 = 5'd9, CNT_10 = 5'd10, CNT_11 = 5'd11, + CNT_12 = 5'd12, CNT_13 = 5'd13, CNT_14 = 5'd14, + CNT_15 = 5'd15, CNT_16 = 5'd16, CNT_17 = 5'd17; + //C counter addresses + localparam C_CNT_0_DIV_ADDR = 5'h00; + localparam C_CNT_0_DIV_ADDR_DPRIO_1 = 5'h11; + localparam C_CNT_0_3_BYPASS_EN_ADDR = 5'h15; + localparam C_CNT_0_3_ODD_DIV_EN_ADDR = 5'h17; + localparam C_CNT_4_17_BYPASS_EN_ADDR = 5'h14; + localparam C_CNT_4_17_ODD_DIV_EN_ADDR = 5'h16; + //N counter addresses + localparam N_CNT_DIV_ADDR = 5'h13; + localparam N_CNT_BYPASS_EN_ADDR = 5'h15; + localparam N_CNT_ODD_DIV_EN_ADDR = 5'h17; + //M counter addresses + localparam M_CNT_DIV_ADDR = 5'h12; + localparam M_CNT_BYPASS_EN_ADDR = 5'h15; + localparam M_CNT_ODD_DIV_EN_ADDR = 5'h17; + + //DSM address + localparam DSM_K_FRACTIONAL_DIVISION_ADDR_0 = 5'h18; + localparam DSM_K_FRACTIONAL_DIVISION_ADDR_1 = 5'h19; + localparam DSM_K_READY_ADDR = 5'h17; + localparam DSM_K_DITHER_ADDR = 5'h17; + localparam DSM_OUT_SEL_ADDR = 6'h30; + + //Other DSM params + localparam DSM_K_READY_BIT_INDEX = 4'd11; + //BWCTRL address + //Bit 0-3 of addr + localparam BWCTRL_ADDR = 6'h30; + //CP_CURRENT address + //Bit 0-2 of addr + localparam CP_CURRENT_ADDR = 6'h31; + + // VCODIV address + localparam VCO_ADDR = 5'h17; + + localparam DPRIO_IDLE = 3'd0, ONE = 3'd1, TWO = 3'd2, THREE = 3'd3, FOUR = 3'd4, + FIVE = 3'd5, SIX = 3'd6, SEVEN = 3'd7, EIGHT = 4'd8, NINE = 4'd9, TEN = 4'd10, + ELEVEN = 4'd11, TWELVE = 4'd12, THIRTEEN = 4'd13, FOURTEEN = 4'd14, DPRIO_DONE = 4'd15; + localparam IDLE = 2'b00, WAIT_ON_LOCK = 2'b01, LOCKED = 2'b10; + + wire clk; + wire reset; + wire gnd; + + wire [5: 0] slave_address; + wire slave_read; + wire slave_write; + wire [31: 0] slave_writedata; + + reg [31: 0] slave_readdata_d; + reg [31: 0] slave_readdata_q; + wire slave_waitrequest; + reg slave_mode; + + assign clk = mgmt_clk; + + assign slave_address = mgmt_address; + assign slave_read = mgmt_read; + assign slave_write = mgmt_write; + assign slave_writedata = mgmt_writedata; + + reg read_waitrequest; + // Outputs + assign mgmt_readdata = slave_readdata_q; + assign mgmt_waitrequest = slave_waitrequest | read_waitrequest; //Read waitrequest asserted in polling mode + + //internal signals + wire locked_orig; + wire locked; + + wire pll_start; + wire pll_start_valid; + reg status_read; + wire read_slave_mode_asserted; + + wire pll_start_asserted; + + reg [1:0] current_state; + reg [1:0] next_state; + + reg status;//0=busy, 1=ready + //user_mode_init user_mode_init_inst (clk, reset, dprio_mdio_dis, ser_shift_load); + //declaring the init wires. These will have 0 on them for 64 clk cycles + wire [ 5:0] init_dprio_address; + wire init_dprio_read; + wire [ 1:0] init_dprio_byteen; + wire init_dprio_write; + wire [15:0] init_dprio_writedata; + + wire init_atpgmode; + wire init_mdio_dis; + wire init_scanen; + wire init_ser_shift_load; + wire dprio_init_done; + + //DPRIO output signals after initialization is done + wire dprio_clk; + reg avmm_dprio_write; + reg avmm_dprio_read; + reg [5:0] avmm_dprio_address; + reg [15:0] avmm_dprio_writedata; + reg [1:0] avmm_dprio_byteen; + wire avmm_atpgmode; + wire avmm_mdio_dis; + wire avmm_scanen; + + //Final output wires that are muxed between the init and avmm wires. + wire dprio_init_reset; + wire [5:0] dprio_address /*synthesis keep*/; + wire dprio_read/*synthesis keep*/; + wire [1:0] dprio_byteen/*synthesis keep*/; + wire dprio_write/*synthesis keep*/; + wire [15:0] dprio_writedata/*synthesis keep*/; + wire dprio_mdio_dis/*synthesis keep*/; + wire dprio_ser_shift_load/*synthesis keep*/; + wire dprio_atpgmode/*synthesis keep*/; + wire dprio_scanen/*synthesis keep*/; + + + //other PLL signals for dyn ph shift + wire phase_done/*synthesis keep*/; + wire phase_en/*synthesis keep*/; + wire up_dn/*synthesis keep*/; + wire [4:0] cnt_sel; + + //DPRIO input signals + wire [15:0] dprio_readdata; + + //internal logic signals + //storage registers for user sent data + reg dprio_temp_read_1; + reg dprio_temp_read_2; + reg dprio_start; + reg mif_start_assert; + reg dps_start_assert; + wire usr_valid_changes; + reg [3:0] dprio_cur_state; + reg [3:0] dprio_next_state; + reg [15:0] dprio_temp_m_n_c_readdata_1_d; + reg [15:0] dprio_temp_m_n_c_readdata_2_d; + reg [15:0] dprio_temp_m_n_c_readdata_1_q; + reg [15:0] dprio_temp_m_n_c_readdata_2_q; + reg dprio_write_done; + //C counters signals + reg [7:0] usr_c_cnt_lo; + reg [7:0] usr_c_cnt_hi; + reg usr_c_cnt_bypass_en; + reg usr_c_cnt_odd_duty_div_en; + reg [7:0] temp_c_cnt_lo [0:17]; + reg [7:0] temp_c_cnt_hi [0:17]; + reg temp_c_cnt_bypass_en [0:17]; + reg temp_c_cnt_odd_duty_div_en [0:17]; + reg any_c_cnt_changed; + reg all_c_cnt_done_q; + reg all_c_cnt_done_d; + reg [17:0] c_cnt_changed; + reg [17:0] c_cnt_done_d; + reg [17:0] c_cnt_done_q; + //N counter signals + reg [7:0] usr_n_cnt_lo; + reg [7:0] usr_n_cnt_hi; + reg usr_n_cnt_bypass_en; + reg usr_n_cnt_odd_duty_div_en; + reg n_cnt_changed; + reg n_cnt_done_d; + reg n_cnt_done_q; + //M counter signals + reg [7:0] usr_m_cnt_lo; + reg [7:0] usr_m_cnt_hi; + reg usr_m_cnt_bypass_en; + reg usr_m_cnt_odd_duty_div_en; + reg m_cnt_changed; + reg m_cnt_done_d; + reg m_cnt_done_q; + //dyn phase regs + reg [15:0] usr_num_shifts; + reg [4:0] usr_cnt_sel /*synthesis preserve*/; + reg usr_up_dn; + reg dps_changed; + wire dps_changed_valid; + wire dps_done; + + //DSM Signals + reg [31:0] usr_k_value; + reg dsm_k_changed; + reg dsm_k_done_d; + reg dsm_k_done_q; + reg dsm_k_ready_false_done_d; + //BW signals + reg [3:0] usr_bwctrl_value; + reg bwctrl_changed; + reg bwctrl_done_d; + reg bwctrl_done_q; + //CP signals + reg [2:0] usr_cp_current_value; + reg cp_current_changed; + reg cp_current_done_d; + reg cp_current_done_q; + //VCO signals + reg usr_vco_value; + reg vco_changed; + reg vco_done_d; + reg vco_done_q; + //Manual DPRIO signals + reg manual_dprio_done_q; + reg manual_dprio_done_d; + reg manual_dprio_changed; + reg [5:0] usr_dprio_address; + reg [15:0] usr_dprio_writedata_0; + reg usr_r_w; + //keeping track of which operation happened last + reg [5:0] operation_address; + // Address wires for all C_counter DPRIO registers + // These are outputs of LUTS, changing depending + // on whether PLL_0 or PLL_1 being used + + + //Fitter will tell if FPLL1 is being used + wire fpll_1; + + // other + reg mif_reg_asserted; + // MAIN FSM + + // Synchronize locked signal + altera_std_synchronizer #( + .depth(3) + ) altera_std_synchronizer_inst ( + .clk(mgmt_clk), + .reset_n(~mgmt_reset), + .din(locked_orig), + .dout(locked) + ); + + always @(posedge clk) + begin + if (reset) + begin + dprio_cur_state <= DPRIO_IDLE; + current_state <= IDLE; + end + else + begin + current_state <= next_state; + dprio_cur_state <= dprio_next_state; + end + end + + always @(*) + begin + case(current_state) + IDLE: + begin + if (pll_start & !slave_waitrequest & usr_valid_changes) + next_state = WAIT_ON_LOCK; + else + next_state = IDLE; + end + WAIT_ON_LOCK: + begin + if (locked & dps_done & dprio_write_done) // received locked high from PLL + begin + if (slave_mode==mode_WR) //if the mode is waitrequest, then + // goto IDLE state directly + next_state = IDLE; + else + next_state = LOCKED; //otherwise go the locked state + end + else + next_state = WAIT_ON_LOCK; + end + + LOCKED: + begin + if (status_read) // stay in LOCKED until user reads status + next_state = IDLE; + else + next_state = LOCKED; + end + + default: next_state = 2'bxx; + + endcase + end + + + // ask the pll to start reconfig + assign pll_start = (pll_start_asserted & (current_state==IDLE)) ; + assign pll_start_valid = (pll_start & (next_state==WAIT_ON_LOCK)) ; + + + + // WRITE OPERATIONS + assign pll_start_asserted = slave_write & (slave_address == START_REG); + assign mif_start_out = pll_start & mif_reg_asserted; + + //reading the mode register to determine what mode the slave will operate + //in. + always @(posedge clk) + begin + if (reset) + slave_mode <= mode_WR; + else if (slave_write & (slave_address == MODE_REG) & !slave_waitrequest) + slave_mode <= slave_writedata[0]; + end + + //record which values user wants to change. + + //reading in the actual values that need to be reconfigged and sending + //them to the PLL + always @(posedge clk) + begin + if (reset) + begin + //reset all regs here + //BW signals reset + usr_bwctrl_value <= 0; + bwctrl_changed <= 0; + bwctrl_done_q <= 0; + //CP signals reset + usr_cp_current_value <= 0; + cp_current_changed <= 0; + cp_current_done_q <= 0; + //VCO signals reset + usr_vco_value <= 0; + vco_changed <= 0; + vco_done_q <= 0; + //DSM signals reset + usr_k_value <= 0; + dsm_k_changed <= 0; + dsm_k_done_q <= 0; + //N counter signals reset + usr_n_cnt_lo <= 0; + usr_n_cnt_hi <= 0; + usr_n_cnt_bypass_en <= 0; + usr_n_cnt_odd_duty_div_en <= 0; + n_cnt_changed <= 0; + n_cnt_done_q <= 0; + //M counter signals reset + usr_m_cnt_lo <= 0; + usr_m_cnt_hi <= 0; + usr_m_cnt_bypass_en <= 0; + usr_m_cnt_odd_duty_div_en <= 0; + m_cnt_changed <= 0; + m_cnt_done_q <= 0; + //C counter signals reset + usr_c_cnt_lo <= 0; + usr_c_cnt_hi <= 0; + usr_c_cnt_bypass_en <= 0; + usr_c_cnt_odd_duty_div_en <= 0; + any_c_cnt_changed <= 0; + all_c_cnt_done_q <= 0; + c_cnt_done_q <= 0; + //generic signals + dprio_start <= 0; + mif_start_assert <= 0; + dps_start_assert <= 0; + dprio_temp_m_n_c_readdata_1_q <= 0; + dprio_temp_m_n_c_readdata_2_q <= 0; + c_cnt_done_q <= 0; + //DPS signals + usr_up_dn <= 0; + usr_cnt_sel <= 0; + usr_num_shifts <= 0; + dps_changed <= 0; + //manual DPRIO signals + manual_dprio_changed <= 0; + usr_dprio_address <= 0; + usr_dprio_writedata_0 <= 0; + usr_r_w <= 0; + operation_address <= 0; + mif_reg_asserted <= 0; + mif_base_addr <= 0; + end + else + begin + if (dprio_temp_read_1) + begin + dprio_temp_m_n_c_readdata_1_q <= dprio_temp_m_n_c_readdata_1_d; + end + if (dprio_temp_read_2) + begin + dprio_temp_m_n_c_readdata_2_q <= dprio_temp_m_n_c_readdata_2_d; + end + if ((dps_done)) dps_changed <= 0; + if (dsm_k_done_d) dsm_k_done_q <= dsm_k_done_d; + if (n_cnt_done_d) n_cnt_done_q <= n_cnt_done_d; + if (m_cnt_done_d) m_cnt_done_q <= m_cnt_done_d; + if (all_c_cnt_done_d) all_c_cnt_done_q <= all_c_cnt_done_d; + if (c_cnt_done_d != 0) c_cnt_done_q <= c_cnt_done_q | c_cnt_done_d; + if (bwctrl_done_d) bwctrl_done_q <= bwctrl_done_d; + if (cp_current_done_d) cp_current_done_q <= cp_current_done_d; + if (vco_done_d) vco_done_q <= vco_done_d; + if (manual_dprio_done_d) manual_dprio_done_q <= manual_dprio_done_d; + + if (mif_start_out == 1'b1) + mif_start_assert <= 0; // Signaled MIF block to start, so deassert on next cycle + + if (dps_done != 1'b1) + dps_start_assert <= 0; // DPS has started, so dessert its start signal on next cycle + + if (dprio_next_state == ONE) + dprio_start <= 0; + if (dprio_write_done) + begin + bwctrl_done_q <= 0; + cp_current_done_q <= 0; + vco_done_q <= 0; + dsm_k_done_q <= 0; + dsm_k_done_q <= 0; + n_cnt_done_q <= 0; + m_cnt_done_q <= 0; + all_c_cnt_done_q <= 0; + c_cnt_done_q <= 0; + dsm_k_changed <= 0; + n_cnt_changed <= 0; + m_cnt_changed <= 0; + any_c_cnt_changed <= 0; + bwctrl_changed <= 0; + cp_current_changed <= 0; + vco_changed <= 0; + manual_dprio_changed <= 0; + manual_dprio_done_q <= 0; + if (dps_changed | dps_changed_valid | !dps_done ) + begin + usr_cnt_sel <= usr_cnt_sel; + end + else + begin + usr_cnt_sel <= 0; + end + mif_reg_asserted <= 0; + end + else + begin + dsm_k_changed <= dsm_k_changed; + n_cnt_changed <= n_cnt_changed; + m_cnt_changed <= m_cnt_changed; + any_c_cnt_changed <= any_c_cnt_changed; + manual_dprio_changed <= manual_dprio_changed; + mif_reg_asserted <= mif_reg_asserted; + usr_cnt_sel <= usr_cnt_sel; + end + + + if(slave_write & !slave_waitrequest) + begin + case(slave_address) + //read in the values here from the user and act on them + DSM_REG: + begin + operation_address <= DSM_REG; + usr_k_value <= slave_writedata[31:0]; + dsm_k_changed <= 1'b1; + dsm_k_done_q <= 0; + dprio_start <= 1'b1; + end + N_REG: + begin + operation_address <= N_REG; + usr_n_cnt_lo <= slave_writedata[7:0]; + usr_n_cnt_hi <= slave_writedata[15:8]; + usr_n_cnt_bypass_en <= slave_writedata[16]; + usr_n_cnt_odd_duty_div_en <= slave_writedata[17]; + n_cnt_changed <= 1'b1; + n_cnt_done_q <= 0; + dprio_start <= 1'b1; + end + M_REG: + begin + operation_address <= M_REG; + usr_m_cnt_lo <= slave_writedata[7:0]; + usr_m_cnt_hi <= slave_writedata[15:8]; + usr_m_cnt_bypass_en <= slave_writedata[16]; + usr_m_cnt_odd_duty_div_en <= slave_writedata[17]; + m_cnt_changed <= 1'b1; + m_cnt_done_q <= 0; + dprio_start <= 1'b1; + end + DPS_REG: + begin + operation_address <= DPS_REG; + usr_num_shifts <= slave_writedata[15:0]; + usr_cnt_sel <= slave_writedata[20:16]; + usr_up_dn <= slave_writedata[21]; + dps_changed <= 1; + dps_start_assert <= 1; + end + C_COUNTERS_REG: + begin + operation_address <= C_COUNTERS_REG; + usr_c_cnt_lo <= slave_writedata[7:0]; + usr_c_cnt_hi <= slave_writedata[15:8]; + usr_c_cnt_bypass_en <= slave_writedata[16]; + usr_c_cnt_odd_duty_div_en <= slave_writedata[17]; + usr_cnt_sel <= slave_writedata[22:18]; + any_c_cnt_changed <= 1'b1; + all_c_cnt_done_q <= 0; + dprio_start <= 1'b1; + end + BWCTRL_REG: + begin + usr_bwctrl_value <= slave_writedata[3:0]; + bwctrl_changed <= 1'b1; + bwctrl_done_q <= 0; + dprio_start <= 1'b1; + operation_address <= BWCTRL_REG; + end + CP_CURRENT_REG: + begin + usr_cp_current_value <= slave_writedata[2:0]; + cp_current_changed <= 1'b1; + cp_current_done_q <= 0; + dprio_start <= 1'b1; + operation_address <= CP_CURRENT_REG; + end + VCO_REG: + begin + usr_vco_value <= slave_writedata[0]; + vco_changed <= 1'b1; + vco_done_q <= 0; + dprio_start <= 1'b1; + operation_address <= VCO_REG; + end + ANY_DPRIO: + begin + operation_address <= ANY_DPRIO; + manual_dprio_changed <= 1'b1; + usr_dprio_address <= slave_writedata[5:0]; + usr_dprio_writedata_0 <= slave_writedata[21:6]; + usr_r_w <= slave_writedata[22]; + manual_dprio_done_q <= 0; + dprio_start <= 1'b1; + end + MIF_REG: + begin + mif_reg_asserted <= 1'b1; + mif_base_addr <= slave_writedata[ROM_ADDR_WIDTH-1:0]; + mif_start_assert <= 1'b1; + end + endcase + end + end + end + //C Counter assigning values to the 2-d array of values for each C counter + + reg [4:0] j; + always @(posedge clk) + begin + + if (reset) + begin + c_cnt_changed[17:0] <= 0; + for (j = 0; j < number_of_counters; j = j + 1'b1) + begin : c_cnt_reset + temp_c_cnt_bypass_en[j] <= 0; + temp_c_cnt_odd_duty_div_en[j] <= 0; + temp_c_cnt_lo[j][7:0] <= 0; + temp_c_cnt_hi[j][7:0] <= 0; + end + end + else + begin + if (dprio_write_done) + begin + c_cnt_changed <= 0; + end + if (any_c_cnt_changed && (operation_address == C_COUNTERS_REG)) + begin + case (cnt_sel) + CNT_0: + begin + temp_c_cnt_lo [0] <= usr_c_cnt_lo; + temp_c_cnt_hi [0] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [0] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [0] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [0] <= 1'b1; + end + CNT_1: + begin + temp_c_cnt_lo [1] <= usr_c_cnt_lo; + temp_c_cnt_hi [1] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [1] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [1] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [1] <= 1'b1; + end + CNT_2: + begin + temp_c_cnt_lo [2] <= usr_c_cnt_lo; + temp_c_cnt_hi [2] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [2] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [2] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [2] <= 1'b1; + end + CNT_3: + begin + temp_c_cnt_lo [3] <= usr_c_cnt_lo; + temp_c_cnt_hi [3] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [3] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [3] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [3] <= 1'b1; + end + CNT_4: + begin + temp_c_cnt_lo [4] <= usr_c_cnt_lo; + temp_c_cnt_hi [4] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [4] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [4] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [4] <= 1'b1; + end + CNT_5: + begin + temp_c_cnt_lo [5] <= usr_c_cnt_lo; + temp_c_cnt_hi [5] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [5] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [5] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [5] <= 1'b1; + end + CNT_6: + begin + temp_c_cnt_lo [6] <= usr_c_cnt_lo; + temp_c_cnt_hi [6] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [6] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [6] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [6] <= 1'b1; + end + CNT_7: + begin + temp_c_cnt_lo [7] <= usr_c_cnt_lo; + temp_c_cnt_hi [7] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [7] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [7] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [7] <= 1'b1; + end + CNT_8: + begin + temp_c_cnt_lo [8] <= usr_c_cnt_lo; + temp_c_cnt_hi [8] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [8] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [8] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [8] <= 1'b1; + end + CNT_9: + begin + temp_c_cnt_lo [9] <= usr_c_cnt_lo; + temp_c_cnt_hi [9] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [9] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [9] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [9] <= 1'b1; + end + CNT_10: + begin + temp_c_cnt_lo [10] <= usr_c_cnt_lo; + temp_c_cnt_hi [10] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [10] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [10] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [10] <= 1'b1; + end + CNT_11: + begin + temp_c_cnt_lo [11] <= usr_c_cnt_lo; + temp_c_cnt_hi [11] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [11] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [11] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [11] <= 1'b1; + end + CNT_12: + begin + temp_c_cnt_lo [12] <= usr_c_cnt_lo; + temp_c_cnt_hi [12] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [12] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [12] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [12] <= 1'b1; + end + CNT_13: + begin + temp_c_cnt_lo [13] <= usr_c_cnt_lo; + temp_c_cnt_hi [13] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [13] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [13] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [13] <= 1'b1; + end + CNT_14: + begin + temp_c_cnt_lo [14] <= usr_c_cnt_lo; + temp_c_cnt_hi [14] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [14] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [14] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [14] <= 1'b1; + end + CNT_15: + begin + temp_c_cnt_lo [15] <= usr_c_cnt_lo; + temp_c_cnt_hi [15] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [15] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [15] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [15] <= 1'b1; + end + CNT_16: + begin + temp_c_cnt_lo [16] <= usr_c_cnt_lo; + temp_c_cnt_hi [16] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [16] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [16] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [16] <= 1'b1; + end + CNT_17: + begin + temp_c_cnt_lo [17] <= usr_c_cnt_lo; + temp_c_cnt_hi [17] <= usr_c_cnt_hi; + temp_c_cnt_bypass_en [17] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [17] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [17] <= 1'b1; + end + endcase + + end + end + end + + + //logic to handle which writes the user indicated and wants to start. + assign usr_valid_changes =dsm_k_changed| any_c_cnt_changed |n_cnt_changed | m_cnt_changed | dps_changed_valid |manual_dprio_changed |cp_current_changed|bwctrl_changed|vco_changed; + + + //start the reconfig operations by writing to the DPRIO + reg break_loop; + reg [4:0] i; + always @(*) + begin + dprio_temp_read_1 = 0; + dprio_temp_read_2 = 0; + dprio_temp_m_n_c_readdata_1_d = 0; + dprio_temp_m_n_c_readdata_2_d = 0; + break_loop = 0; + dprio_next_state = DPRIO_IDLE; + avmm_dprio_write = 0; + avmm_dprio_read = 0; + avmm_dprio_address = 0; + avmm_dprio_writedata = 0; + avmm_dprio_byteen = 0; + dprio_write_done = 1; + manual_dprio_done_d = 0; + n_cnt_done_d = 0; + dsm_k_done_d = 0; + dsm_k_ready_false_done_d = 0; + m_cnt_done_d = 0; + c_cnt_done_d[17:0] = 0; + all_c_cnt_done_d = 0; + bwctrl_done_d = 0; + cp_current_done_d = 0; + vco_done_d = 0; + i = 0; + + // Deassert dprio_write_done so it doesn't reset mif_reg_asserted (toggled writes) + if (dprio_start | mif_start_assert) + dprio_write_done = 0; + + if (current_state == WAIT_ON_LOCK) + begin + case (dprio_cur_state) + ONE: + begin + if (n_cnt_changed & !n_cnt_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + dprio_next_state = TWO; + avmm_dprio_address = N_CNT_DIV_ADDR; + avmm_dprio_writedata[7:0] = usr_n_cnt_lo; + avmm_dprio_writedata[15:8] = usr_n_cnt_hi; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + dprio_next_state = TWO; + avmm_dprio_address = M_CNT_DIV_ADDR; + avmm_dprio_writedata[7:0] = usr_m_cnt_lo; + avmm_dprio_writedata[15:8] = usr_m_cnt_hi; + end + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + + for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_write_hilo + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + dprio_write_done = 0; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + dprio_next_state = TWO; + if (fpll_1) avmm_dprio_address = C_CNT_0_DIV_ADDR + C_CNT_0_DIV_ADDR_DPRIO_1 - i; + else avmm_dprio_address = C_CNT_0_DIV_ADDR + i; + avmm_dprio_writedata[7:0] = temp_c_cnt_lo[i]; + avmm_dprio_writedata[15:8] = temp_c_cnt_hi[i]; + //To break from the loop, since only one counter + //is addressed at a time + break_loop = 1'b1; + end + end + end + else if (dsm_k_changed & !dsm_k_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 0; + dprio_next_state = TWO; + end + else if (bwctrl_changed & !bwctrl_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 0; + dprio_next_state = TWO; + end + else if (cp_current_changed & !cp_current_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 0; + dprio_next_state = TWO; + end + else if (vco_changed & !vco_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 0; + dprio_next_state = TWO; + end + else if (manual_dprio_changed & !manual_dprio_done_q) + begin + dprio_write_done = 0; + avmm_dprio_byteen = 2'b11; + dprio_next_state = TWO; + avmm_dprio_write = usr_r_w; + avmm_dprio_address = usr_dprio_address; + avmm_dprio_writedata[15:0] = usr_dprio_writedata_0; + end + else dprio_next_state = DPRIO_IDLE; + end + + TWO: + begin + //handle reading the two setting bits on n_cnt, then + //writing them back while preserving other bits. + //Issue two consecutive reads then wait; readLatency=3 + dprio_write_done = 0; + dprio_next_state = THREE; + avmm_dprio_byteen = 2'b11; + avmm_dprio_read = 1'b1; + if (n_cnt_changed & !n_cnt_done_q) + begin + avmm_dprio_address = N_CNT_BYPASS_EN_ADDR; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + avmm_dprio_address = M_CNT_BYPASS_EN_ADDR; + end + + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_read_bypass + if (fpll_1) + begin + if (i > 13) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; + break_loop = 1'b1; + end + end + end + else + begin + if (i < 4) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; + break_loop = 1'b1; + end + end + end + end + end + //reading the K ready 16 bit word. Need to write 0 to it + //afterwards to indicate that K has not been done writing + else if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_READY_ADDR; + dprio_next_state = FOUR; + end + else if (bwctrl_changed & !bwctrl_done_q) + begin + avmm_dprio_address = BWCTRL_ADDR; + dprio_next_state = FOUR; + end + else if (cp_current_changed & !cp_current_done_q) + begin + avmm_dprio_address = CP_CURRENT_ADDR; + dprio_next_state = FOUR; + end + else if (vco_changed & !vco_done_q) + begin + avmm_dprio_address = VCO_ADDR; + dprio_next_state = FOUR; + end + else if (manual_dprio_changed & !manual_dprio_done_q) + begin + avmm_dprio_read = ~usr_r_w; + avmm_dprio_address = usr_dprio_address; + dprio_next_state = DPRIO_DONE; + end + else dprio_next_state = DPRIO_IDLE; + end + THREE: + begin + dprio_write_done = 0; + avmm_dprio_byteen = 2'b11; + avmm_dprio_read = 1'b1; + dprio_next_state = FOUR; + if (n_cnt_changed & !n_cnt_done_q) + begin + avmm_dprio_address = N_CNT_ODD_DIV_EN_ADDR; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + avmm_dprio_address = M_CNT_ODD_DIV_EN_ADDR; + end + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_read_odd_div + if (fpll_1) + begin + if (i > 13) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; + break_loop = 1'b1; + end + end + end + else + begin + if (i < 4) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; + break_loop = 1'b1; + end + end + end + end + end + else dprio_next_state = DPRIO_IDLE; + end + FOUR: + begin + dprio_temp_read_1 = 1'b1; + dprio_write_done = 0; + if (vco_changed|cp_current_changed|bwctrl_changed|dsm_k_changed|n_cnt_changed|m_cnt_changed|any_c_cnt_changed) + begin + dprio_temp_m_n_c_readdata_1_d = dprio_readdata; + dprio_next_state = FIVE; + end + else dprio_next_state = DPRIO_IDLE; + end + FIVE: + begin + dprio_write_done = 0; + dprio_temp_read_2 = 1'b1; + if (vco_changed|cp_current_changed|bwctrl_changed|dsm_k_changed|n_cnt_changed|m_cnt_changed|any_c_cnt_changed) + begin + //this is where DSM ready value comes. + //Need to store in a register to be used later + dprio_temp_m_n_c_readdata_2_d = dprio_readdata; + dprio_next_state = SIX; + end + else dprio_next_state = DPRIO_IDLE; + end + SIX: + begin + dprio_write_done = 0; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + dprio_next_state = SEVEN; + avmm_dprio_writedata = dprio_temp_m_n_c_readdata_1_q; + if (n_cnt_changed & !n_cnt_done_q) + begin + avmm_dprio_address = N_CNT_BYPASS_EN_ADDR; + avmm_dprio_writedata[5] = usr_n_cnt_bypass_en; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + avmm_dprio_address = M_CNT_BYPASS_EN_ADDR; + avmm_dprio_writedata[4] = usr_m_cnt_bypass_en; + end + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_write_bypass + if (fpll_1) + begin + if (i > 13) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; + avmm_dprio_writedata[i-14] = temp_c_cnt_bypass_en[i]; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; + avmm_dprio_writedata[i] = temp_c_cnt_bypass_en[i]; + break_loop = 1'b1; + end + end + end + else + begin + if (i < 4) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; + avmm_dprio_writedata[3-i] = temp_c_cnt_bypass_en[i]; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; + avmm_dprio_writedata[17-i] = temp_c_cnt_bypass_en[i]; + break_loop = 1'b1; + end + end + end + end + end + else if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_write = 0; + end + else if (bwctrl_changed & !bwctrl_done_q) + begin + avmm_dprio_write = 0; + end + else if (cp_current_changed & !cp_current_done_q) + begin + avmm_dprio_write = 0; + end + else if (vco_changed & !vco_done_q) + begin + avmm_dprio_write = 0; + end + else dprio_next_state = DPRIO_IDLE; + end + SEVEN: + begin + dprio_write_done = 0; + dprio_next_state = EIGHT; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + avmm_dprio_writedata = dprio_temp_m_n_c_readdata_2_q; + if (n_cnt_changed & !n_cnt_done_q) + begin + avmm_dprio_address = N_CNT_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[5] = usr_n_cnt_odd_duty_div_en; + n_cnt_done_d = 1'b1; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + avmm_dprio_address = M_CNT_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[4] = usr_m_cnt_odd_duty_div_en; + m_cnt_done_d = 1'b1; + end + + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_write_odd_div + if (fpll_1) + begin + if (i > 13) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[i-14] = temp_c_cnt_odd_duty_div_en[i]; + c_cnt_done_d[i] = 1'b1; + //have to OR the signals to prevent + //overwriting of previous dones + c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[i] = temp_c_cnt_odd_duty_div_en[i]; + c_cnt_done_d[i] = 1'b1; + c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; + break_loop = 1'b1; + end + end + end + else + begin + if (i < 4) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[3-i] = temp_c_cnt_odd_duty_div_en[i]; + c_cnt_done_d[i] = 1'b1; + //have to OR the signals to prevent + //overwriting of previous dones + c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[17-i] = temp_c_cnt_odd_duty_div_en[i]; + c_cnt_done_d[i] = 1'b1; + c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; + break_loop = 1'b1; + end + end + end + end + end + else if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_READY_ADDR; + avmm_dprio_writedata[DSM_K_READY_BIT_INDEX] = 1'b0; + dsm_k_ready_false_done_d = 1'b1; + end + else if (bwctrl_changed & !bwctrl_done_q) + begin + avmm_dprio_address = BWCTRL_ADDR; + avmm_dprio_writedata[3:0] = usr_bwctrl_value; + bwctrl_done_d = 1'b1; + end + else if (cp_current_changed & !cp_current_done_q) + begin + avmm_dprio_address = CP_CURRENT_ADDR; + avmm_dprio_writedata[2:0] = usr_cp_current_value; + cp_current_done_d = 1'b1; + end + else if (vco_changed & !vco_done_q) + begin + avmm_dprio_address = VCO_ADDR; + avmm_dprio_writedata[8] = usr_vco_value; + vco_done_d = 1'b1; + end + + + //if all C_cnt that were changed are done, then assert all_c_cnt_done + if (c_cnt_done_d == c_cnt_changed) + all_c_cnt_done_d = 1'b1; + if (n_cnt_changed & n_cnt_done_d) + dprio_next_state = DPRIO_DONE; + if (any_c_cnt_changed & !all_c_cnt_done_d & !all_c_cnt_done_q) + dprio_next_state = ONE; + else if (m_cnt_changed & !m_cnt_done_d & !m_cnt_done_q) + dprio_next_state = ONE; + else if (dsm_k_changed & !dsm_k_ready_false_done_d) + dprio_next_state = TWO; + else if (dsm_k_changed & !dsm_k_done_q) + dprio_next_state = EIGHT; + else if (bwctrl_changed & !bwctrl_done_d) + dprio_next_state = TWO; + else if (cp_current_changed & !cp_current_done_d) + dprio_next_state = TWO; + else if (vco_changed & !vco_done_d) + dprio_next_state = TWO; + else + begin + dprio_next_state = DPRIO_DONE; + dprio_write_done = 1'b1; + end + end + //finish the rest of the DSM reads/writes + //writing k value, writing k_ready to 1. + EIGHT: + begin + dprio_write_done = 0; + dprio_next_state = NINE; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_FRACTIONAL_DIVISION_ADDR_0; + avmm_dprio_writedata[15:0] = usr_k_value[15:0]; + end + end + NINE: + begin + dprio_write_done = 0; + dprio_next_state = TEN; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_FRACTIONAL_DIVISION_ADDR_1; + avmm_dprio_writedata[15:0] = usr_k_value[31:16]; + end + end + TEN: + begin + dprio_write_done = 0; + dprio_next_state = ONE; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_READY_ADDR; + //already have the readdata for DSM_K_READY_ADDR since we read it + //earlier. Just reuse here + avmm_dprio_writedata = dprio_temp_m_n_c_readdata_2_q; + avmm_dprio_writedata[DSM_K_READY_BIT_INDEX] = 1'b1; + dsm_k_done_d = 1'b1; + end + end + DPRIO_DONE: + begin + dprio_write_done = 1'b1; + if (dprio_start) dprio_next_state = DPRIO_IDLE; + else dprio_next_state = DPRIO_DONE; + end + DPRIO_IDLE: + begin + if (dprio_start) dprio_next_state = ONE; + else dprio_next_state = DPRIO_IDLE; + end + default: dprio_next_state = 4'bxxxx; + endcase + end + + end + + + //assert the waitreq signal according to the state of the slave + assign slave_waitrequest = (slave_mode==mode_WR) ? ((locked === 1'b1) ? (((current_state==WAIT_ON_LOCK) & !dprio_write_done) | !dps_done |reset|!dprio_init_done) : 1'b1) : 1'b0; + + // Read operations + always @(*) + begin + status = 0; + if (slave_mode == mode_POLL) + //asserting status to 1 if the slave is done. + status = (current_state == LOCKED); + end + //************************************************************// + //************************************************************// + //******************** READ STATE MACHINE ********************// + //************************************************************// + //************************************************************// + reg [1:0] current_read_state; + reg [1:0] next_read_state; + reg [5:0] slave_address_int_d; + reg [5:0] slave_address_int_q; + reg dprio_read_1; + reg [5:0] dprio_address_1; + reg [1:0] dprio_byteen_1; + reg [4:0] usr_cnt_sel_1; + localparam READ = 2'b00, READ_WAIT = 2'b01, READ_IDLE = 2'b10, READ_POST_WAIT = 2'b11; + + always @(*) + begin + if(next_read_state == READ_IDLE) + begin + read_waitrequest <= 1'b0; + end + else + begin + read_waitrequest <= 1'b1; + end + end + + always @(posedge clk) + begin + if (reset) + begin + current_read_state <= READ_IDLE; + slave_address_int_q <= 0; + slave_readdata_q <= 0; + end + else + begin + current_read_state <= next_read_state; + slave_address_int_q <= slave_address_int_d; + slave_readdata_q <= slave_readdata_d; + end + end + always @(*) + begin + dprio_read_1 = 0; + dprio_address_1 = 0; + dprio_byteen_1 = 0; + slave_address_int_d = 0; + slave_readdata_d = 0; + status_read = 0; + usr_cnt_sel_1 = 0; + case(current_read_state) + READ_IDLE: + begin + slave_address_int_d = 0; + next_read_state = READ_IDLE; + if ((current_state != WAIT_ON_LOCK) && slave_read) + begin + slave_address_int_d = slave_address; + if ((slave_address >= CNT_BASE) && (slave_address < CNT_BASE+18)) + begin + next_read_state = READ_WAIT; + dprio_byteen_1 = 2'b11; + dprio_read_1 = 1'b1; + usr_cnt_sel_1 = (slave_address[4:0] - CNT_BASE); + if (fpll_1) dprio_address_1 = C_CNT_0_DIV_ADDR + C_CNT_0_DIV_ADDR_DPRIO_1 - cnt_sel; + else dprio_address_1 = C_CNT_0_DIV_ADDR + cnt_sel; + end + else + begin + case (slave_address) + MODE_REG: + begin + next_read_state = READ_WAIT; + slave_readdata_d = slave_mode; + end + STATUS_REG: + begin + next_read_state = READ_WAIT; + status_read = 1'b1; + slave_readdata_d = status; + end + N_REG: + begin + dprio_byteen_1 = 2'b11; + dprio_read_1 = 1'b1; + dprio_address_1 = N_CNT_DIV_ADDR; + next_read_state = READ_WAIT; + end + M_REG: + begin + dprio_byteen_1 = 2'b11; + dprio_read_1 = 1'b1; + dprio_address_1 = M_CNT_DIV_ADDR; + next_read_state = READ_WAIT; + end + BWCTRL_REG: + begin + dprio_byteen_1 = 2'b11; + dprio_read_1 = 1'b1; + dprio_address_1 = BWCTRL_ADDR; + next_read_state = READ_WAIT; + end + CP_CURRENT_REG: + begin + dprio_byteen_1 = 2'b11; + dprio_read_1 = 1'b1; + dprio_address_1 = CP_CURRENT_ADDR; + next_read_state = READ_WAIT; + end + VCO_REG: + begin + dprio_byteen_1 = 2'b11; + dprio_read_1 = 1'b1; + dprio_address_1 = VCO_ADDR; + next_read_state = READ_WAIT; + end + ANY_DPRIO: + begin + dprio_byteen_1 = 2'b11; + dprio_read_1 = ~slave_writedata[22]; + dprio_address_1 = slave_writedata[5:0]; + next_read_state = READ_WAIT; + end + default : next_read_state = READ_IDLE; + endcase + end + end + else + next_read_state = READ_IDLE; + end + READ_WAIT: + begin + next_read_state = READ; + slave_address_int_d = slave_address_int_q; + case (slave_address_int_q) + MODE_REG: + begin + slave_readdata_d = slave_readdata_q; + end + STATUS_REG: + begin + slave_readdata_d = slave_readdata_q; + end + endcase + end + READ: + begin + next_read_state = READ_POST_WAIT; + slave_address_int_d = slave_address_int_q; + slave_readdata_d = dprio_readdata; + case (slave_address_int_q) + MODE_REG: + begin + slave_readdata_d = slave_readdata_q; + end + STATUS_REG: + begin + slave_readdata_d = slave_readdata_q; + end + BWCTRL_REG: + begin + slave_readdata_d = dprio_readdata[3:0]; + end + CP_CURRENT_REG: + begin + slave_readdata_d = dprio_readdata[2:0]; + end + VCO_REG: + begin + slave_readdata_d = dprio_readdata[8]; + end + ANY_DPRIO: + begin + slave_readdata_d = dprio_readdata; + end + endcase + end + READ_POST_WAIT: + begin + next_read_state = READ_IDLE; + end + default: next_read_state = 2'bxx; + endcase + end + + + dyn_phase_shift dyn_phase_shift_inst ( + .clk(clk), + .reset(reset), + .phase_done(phase_done), + .pll_start_valid(pll_start_valid), + .dps_changed(dps_changed), + .dps_changed_valid(dps_changed_valid), + .dprio_write_done(dprio_write_done), + .usr_num_shifts(usr_num_shifts), + .usr_cnt_sel(usr_cnt_sel|usr_cnt_sel_1), + .usr_up_dn(usr_up_dn), + .locked(locked), + .dps_done(dps_done), + .phase_en(phase_en), + .up_dn(up_dn), + .cnt_sel(cnt_sel)); + defparam dyn_phase_shift_inst.device_family = device_family; + + assign dprio_clk = clk; + self_reset self_reset_inst (mgmt_reset, clk, reset, dprio_init_reset); + + dprio_mux dprio_mux_inst ( + .init_dprio_address(init_dprio_address), + .init_dprio_read(init_dprio_read), + .init_dprio_byteen(init_dprio_byteen), + .init_dprio_write(init_dprio_write), + .init_dprio_writedata(init_dprio_writedata), + + + .init_atpgmode(init_atpgmode), + .init_mdio_dis(init_mdio_dis), + .init_scanen(init_scanen), + .init_ser_shift_load(init_ser_shift_load), + .dprio_init_done(dprio_init_done), + + // Inputs from avmm master + .avmm_dprio_address(avmm_dprio_address | dprio_address_1), + .avmm_dprio_read(avmm_dprio_read | dprio_read_1), + .avmm_dprio_byteen(avmm_dprio_byteen | dprio_byteen_1), + .avmm_dprio_write(avmm_dprio_write), + .avmm_dprio_writedata(avmm_dprio_writedata), + + .avmm_atpgmode(avmm_atpgmode), + .avmm_mdio_dis(avmm_mdio_dis), + .avmm_scanen(avmm_scanen), + + // Outputs to fpll + .dprio_address(dprio_address), + .dprio_read(dprio_read), + .dprio_byteen(dprio_byteen), + .dprio_write(dprio_write), + .dprio_writedata(dprio_writedata), + + .atpgmode(dprio_atpgmode), + .mdio_dis(dprio_mdio_dis), + .scanen(dprio_scanen), + .ser_shift_load(dprio_ser_shift_load) + ); + + + fpll_dprio_init fpll_dprio_init_inst ( + .clk(clk), + .reset_n(~reset), + .locked(locked), + + //outputs + .dprio_address(init_dprio_address), + .dprio_read(init_dprio_read), + .dprio_byteen(init_dprio_byteen), + .dprio_write(init_dprio_write), + .dprio_writedata(init_dprio_writedata), + + .atpgmode(init_atpgmode), + .mdio_dis(init_mdio_dis), + .scanen(init_scanen), + .ser_shift_load(init_ser_shift_load), + .dprio_init_done(dprio_init_done)); + + //address luts, to be reconfigged by the Fitter + //FPLL_1 or 0 address lut + generic_lcell_comb lcell_fpll_0_1 ( + .dataa(1'b0), + .combout (fpll_1)); + defparam lcell_fpll_0_1.lut_mask = 64'hAAAAAAAAAAAAAAAA; + defparam lcell_fpll_0_1.dont_touch = "on"; + defparam lcell_fpll_0_1.family = device_family; + + + wire dprio_read_combout; + generic_lcell_comb lcell_dprio_read ( + .dataa(fpll_1), + .datab(dprio_read), + .datac(1'b0), + .datad(1'b0), + .datae(1'b0), + .dataf(1'b0), + .combout (dprio_read_combout)); + defparam lcell_dprio_read.lut_mask = 64'hCCCCCCCCCCCCCCCC; + defparam lcell_dprio_read.dont_touch = "on"; + defparam lcell_dprio_read.family = device_family; + + + + + + //assign reconfig_to_pll signals + assign reconfig_to_pll[0] = dprio_clk; + assign reconfig_to_pll[1] = ~dprio_init_reset; + assign reconfig_to_pll[2] = dprio_write; + assign reconfig_to_pll[3] = dprio_read_combout; + assign reconfig_to_pll[9:4] = dprio_address; + assign reconfig_to_pll[25:10] = dprio_writedata; + assign reconfig_to_pll[27:26] = dprio_byteen; + assign reconfig_to_pll[28] = dprio_ser_shift_load; + assign reconfig_to_pll[29] = dprio_mdio_dis; + assign reconfig_to_pll[30] = phase_en; + assign reconfig_to_pll[31] = up_dn; + assign reconfig_to_pll[36:32] = cnt_sel; + assign reconfig_to_pll[37] = dprio_scanen; + assign reconfig_to_pll[38] = dprio_atpgmode; + //assign reconfig_to_pll[40:37] = clken; + assign reconfig_to_pll[63:39] = 0; + + //assign reconfig_from_pll signals + assign dprio_readdata = reconfig_from_pll [15:0]; + assign locked_orig = reconfig_from_pll [16]; + assign phase_done = reconfig_from_pll [17]; + +endmodule +module self_reset (input wire mgmt_reset, input wire clk, output wire reset, output wire init_reset); + + localparam RESET_COUNTER_VALUE = 3'd2; + localparam INITIAL_WAIT_VALUE = 9'd340; + reg [9:0]counter; + reg local_reset; + reg usr_mode_init_wait; + initial + begin + local_reset = 1'b1; + counter = 0; + usr_mode_init_wait = 0; + end + + always @(posedge clk) + begin + if (mgmt_reset) + begin + counter <= 0; + end + else + begin + if (!usr_mode_init_wait) + begin + if (counter == INITIAL_WAIT_VALUE) + begin + local_reset <= 0; + usr_mode_init_wait <= 1'b1; + counter <= 0; + end + else + begin + counter <= counter + 1'b1; + end + end + else + begin + if (counter == RESET_COUNTER_VALUE) + local_reset <= 0; + else + counter <= counter + 1'b1; + end + end + end + assign reset = mgmt_reset | local_reset; + assign init_reset = local_reset; +endmodule + +module dprio_mux ( + // Inputs from init block + input [ 5:0] init_dprio_address, + input init_dprio_read, + input [ 1:0] init_dprio_byteen, + input init_dprio_write, + input [15:0] init_dprio_writedata, + + input init_atpgmode, + input init_mdio_dis, + input init_scanen, + input init_ser_shift_load, + input dprio_init_done, + + // Inputs from avmm master + input [ 5:0] avmm_dprio_address, + input avmm_dprio_read, + input [ 1:0] avmm_dprio_byteen, + input avmm_dprio_write, + input [15:0] avmm_dprio_writedata, + + input avmm_atpgmode, + input avmm_mdio_dis, + input avmm_scanen, + input avmm_ser_shift_load, + + // Outputs to fpll + output [ 5:0] dprio_address, + output dprio_read, + output [ 1:0] dprio_byteen, + output dprio_write, + output [15:0] dprio_writedata, + + output atpgmode, + output mdio_dis, + output scanen, + output ser_shift_load +); + + assign dprio_address = dprio_init_done ? avmm_dprio_address : init_dprio_address; + assign dprio_read = dprio_init_done ? avmm_dprio_read : init_dprio_read; + assign dprio_byteen = dprio_init_done ? avmm_dprio_byteen : init_dprio_byteen; + assign dprio_write = dprio_init_done ? avmm_dprio_write : init_dprio_write; + assign dprio_writedata = dprio_init_done ? avmm_dprio_writedata : init_dprio_writedata; + + assign atpgmode = init_atpgmode; + assign scanen = init_scanen; + assign mdio_dis = init_mdio_dis; + assign ser_shift_load = init_ser_shift_load ; +endmodule +module fpll_dprio_init ( + input clk, + input reset_n, + input locked, + + output [ 5:0] dprio_address, + output dprio_read, + output [ 1:0] dprio_byteen, + output dprio_write, + output [15:0] dprio_writedata, + + output reg atpgmode, + output reg mdio_dis, + output reg scanen, + output reg ser_shift_load, + output reg dprio_init_done +); + + reg [1:0] rst_n = 2'b00; + reg [6:0] count = 7'd0; + reg init_done_forever; + + // Internal versions of control signals + wire int_mdio_dis; + wire int_ser_shift_load; + wire int_dprio_init_done; + wire int_atpgmode/*synthesis keep*/; + wire int_scanen/*synthesis keep*/; + + + assign dprio_address = count[6] ? 5'b0 : count[5:0] ; + assign dprio_byteen = 2'b11; // always enabled + assign dprio_write = ~count[6] & reset_n ; // write for first 64 cycles + assign dprio_read = 1'b0; + assign dprio_writedata = 16'd0; + + assign int_ser_shift_load = count[6] ? |count[2:1] : 1'b1; + assign int_mdio_dis = count[6] ? ~count[2] : 1'b1; + assign int_dprio_init_done = ~init_done_forever ? (count[6] ? &count[2:0] : 1'b0) + : 1'b1; + assign int_atpgmode = 0; + assign int_scanen = 0; + + initial begin + count = 7'd0; + init_done_forever = 0; + mdio_dis = 1'b1; + ser_shift_load = 1'b1; + dprio_init_done = 1'b0; + scanen = 1'b0; + atpgmode = 1'b0; + end + + // reset synch. + always @(posedge clk or negedge reset_n) + if(!reset_n) rst_n <= 2'b00; + else rst_n <= {rst_n[0],1'b1}; + + // counter + always @(posedge clk) + begin + if (!rst_n[1]) + init_done_forever <= 1'b0; + else + begin + if (count[6] && &count[1:0]) + init_done_forever <= 1'b1; + end + end + always @(posedge clk or negedge rst_n[1]) + begin + if(!rst_n[1]) + begin + count <= 7'd0; + end + else if(~int_dprio_init_done) + begin + count <= count + 7'd1; + end + else + begin + count <= count; + end + end + + // outputs + always @(posedge clk) begin + mdio_dis <= int_mdio_dis; + ser_shift_load <= int_ser_shift_load; + dprio_init_done <= int_dprio_init_done; + atpgmode <= int_atpgmode; + scanen <= int_scanen; + end + +endmodule +module dyn_phase_shift +#( + parameter device_family = "Cyclone V" +) ( + + input wire clk, + input wire reset, + input wire phase_done, + input wire pll_start_valid, + input wire dps_changed, + input wire dprio_write_done, + input wire [15:0] usr_num_shifts, + input wire [4:0] usr_cnt_sel, + input wire usr_up_dn, + input wire locked, + + //output + output wire dps_done, + output reg phase_en, + output wire up_dn, + output wire dps_changed_valid, + output wire [4:0] cnt_sel); + + + + reg first_phase_shift_d; + reg first_phase_shift_q; + reg [15:0] phase_en_counter; + reg [3:0] dps_current_state; + reg [3:0] dps_next_state; + localparam DPS_START = 4'd0, DPS_WAIT_PHASE_DONE = 4'd1, DPS_DONE = 4'd2, DPS_WAIT_PHASE_EN = 4'd3, DPS_WAIT_DPRIO_WRITING = 4'd4, DPS_CHANGED = 4'd5; + localparam PHASE_EN_WAIT_COUNTER = 5'd1; + + reg [15:0] shifts_done_counter; + reg phase_done_final; + wire gnd /*synthesis keep*/; + + //fsm + //always block controlling the state regs + always @(posedge clk) + begin + if (reset) + begin + dps_current_state <= DPS_DONE; + end + else + begin + dps_current_state <= dps_next_state; + end + end + //the combinational part. assigning the next state + //this turns on the phase_done_final signal when phase_done does this: + //_____ ______ + // |______| + always @(*) + begin + phase_done_final = 0; + first_phase_shift_d = 0; + phase_en = 0; + dps_next_state = DPS_DONE; + case (dps_current_state) + DPS_START: + begin + phase_en = 1'b1; + dps_next_state = DPS_WAIT_PHASE_EN; + end + DPS_WAIT_PHASE_EN: + begin + phase_en = 1'b1; + if (first_phase_shift_q) + begin + first_phase_shift_d = 1'b1; + dps_next_state = DPS_WAIT_PHASE_EN; + end + else + begin + if (phase_en_counter == PHASE_EN_WAIT_COUNTER) + dps_next_state = DPS_WAIT_PHASE_DONE; + else dps_next_state = DPS_WAIT_PHASE_EN; + end + end + DPS_WAIT_PHASE_DONE: + begin + if (!phase_done | !locked) + begin + dps_next_state = DPS_WAIT_PHASE_DONE; + end + else + begin + if ((usr_num_shifts != shifts_done_counter) & (usr_num_shifts != 0)) + begin + dps_next_state = DPS_START; + phase_done_final = 1'b1; + end + else + begin + dps_next_state = DPS_DONE; + end + + end + end + DPS_DONE: + begin + phase_done_final = 0; + if (dps_changed) + dps_next_state = DPS_CHANGED; + else dps_next_state = DPS_DONE; + + end + DPS_CHANGED: + begin + if (pll_start_valid) + dps_next_state = DPS_WAIT_DPRIO_WRITING; + else + dps_next_state = DPS_CHANGED; + end + DPS_WAIT_DPRIO_WRITING: + begin + if (dprio_write_done) + dps_next_state = DPS_START; + else + dps_next_state = DPS_WAIT_DPRIO_WRITING; + end + + default: dps_next_state = 4'bxxxx; + endcase + + + end + + always @(posedge clk) + begin + + + if (dps_current_state == DPS_WAIT_PHASE_DONE) + phase_en_counter <= 0; + else if (dps_current_state == DPS_WAIT_PHASE_EN) + phase_en_counter <= phase_en_counter + 1'b1; + + if (reset) + begin + phase_en_counter <= 0; + shifts_done_counter <= 1'b1; + first_phase_shift_q <= 1; + end + else + begin + if (first_phase_shift_d) + first_phase_shift_q <= 0; + if (dps_done) + begin + shifts_done_counter <= 1'b1; + end + else + begin + if (phase_done_final & (dps_next_state!= DPS_DONE)) + shifts_done_counter <= shifts_done_counter + 1'b1; + else + shifts_done_counter <= shifts_done_counter; + end + end + end + + assign dps_changed_valid = (dps_current_state == DPS_CHANGED); + assign dps_done =(dps_current_state == DPS_DONE) | (dps_current_state == DPS_CHANGED); + assign up_dn = usr_up_dn; + assign gnd = 1'b0; + + //cnt select luts (5) + generic_lcell_comb lcell_cnt_sel_0 ( + .dataa(usr_cnt_sel[0]), + .datab(usr_cnt_sel[1]), + .datac(usr_cnt_sel[2]), + .datad(usr_cnt_sel[3]), + .datae(usr_cnt_sel[4]), + .dataf(gnd), + .combout (cnt_sel[0])); + defparam lcell_cnt_sel_0.lut_mask = 64'hAAAAAAAAAAAAAAAA; + defparam lcell_cnt_sel_0.dont_touch = "on"; + defparam lcell_cnt_sel_0.family = device_family; + generic_lcell_comb lcell_cnt_sel_1 ( + .dataa(usr_cnt_sel[0]), + .datab(usr_cnt_sel[1]), + .datac(usr_cnt_sel[2]), + .datad(usr_cnt_sel[3]), + .datae(usr_cnt_sel[4]), + .dataf(gnd), + .combout (cnt_sel[1])); + defparam lcell_cnt_sel_1.lut_mask = 64'hCCCCCCCCCCCCCCCC; + defparam lcell_cnt_sel_1.dont_touch = "on"; + defparam lcell_cnt_sel_1.family = device_family; + generic_lcell_comb lcell_cnt_sel_2 ( + .dataa(usr_cnt_sel[0]), + .datab(usr_cnt_sel[1]), + .datac(usr_cnt_sel[2]), + .datad(usr_cnt_sel[3]), + .datae(usr_cnt_sel[4]), + .dataf(gnd), + .combout (cnt_sel[2])); + defparam lcell_cnt_sel_2.lut_mask = 64'hF0F0F0F0F0F0F0F0; + defparam lcell_cnt_sel_2.dont_touch = "on"; + defparam lcell_cnt_sel_2.family = device_family; + generic_lcell_comb lcell_cnt_sel_3 ( + .dataa(usr_cnt_sel[0]), + .datab(usr_cnt_sel[1]), + .datac(usr_cnt_sel[2]), + .datad(usr_cnt_sel[3]), + .datae(usr_cnt_sel[4]), + .dataf(gnd), + .combout (cnt_sel[3])); + defparam lcell_cnt_sel_3.lut_mask = 64'hFF00FF00FF00FF00; + defparam lcell_cnt_sel_3.dont_touch = "on"; + defparam lcell_cnt_sel_3.family = device_family; + generic_lcell_comb lcell_cnt_sel_4 ( + .dataa(usr_cnt_sel[0]), + .datab(usr_cnt_sel[1]), + .datac(usr_cnt_sel[2]), + .datad(usr_cnt_sel[3]), + .datae(usr_cnt_sel[4]), + .dataf(gnd), + .combout (cnt_sel[4])); + defparam lcell_cnt_sel_4.lut_mask = 64'hFFFF0000FFFF0000; + defparam lcell_cnt_sel_4.dont_touch = "on"; + defparam lcell_cnt_sel_4.family = device_family; + + +endmodule + +module generic_lcell_comb +#( + //parameter + parameter family = "Cyclone V", + parameter lut_mask = 64'hAAAAAAAAAAAAAAAA, + parameter dont_touch = "on" +) ( + + input dataa, + input datab, + input datac, + input datad, + input datae, + input dataf, + + output combout +); + + generate + if (family == "Stratix V") + begin + stratixv_lcell_comb lcell_inst ( + .dataa(dataa), + .datab(datab), + .datac(datac), + .datad(datad), + .datae(datae), + .dataf(dataf), + .combout (combout)); + defparam lcell_inst.lut_mask = lut_mask; + defparam lcell_inst.dont_touch = dont_touch; + end + else if (family == "Arria V") + begin + arriav_lcell_comb lcell_inst ( + .dataa(dataa), + .datab(datab), + .datac(datac), + .datad(datad), + .datae(datae), + .dataf(dataf), + .combout (combout)); + defparam lcell_inst.lut_mask = lut_mask; + defparam lcell_inst.dont_touch = dont_touch; + end + else if (family == "Arria V GZ") + begin + arriavgz_lcell_comb lcell_inst ( + .dataa(dataa), + .datab(datab), + .datac(datac), + .datad(datad), + .datae(datae), + .dataf(dataf), + .combout (combout)); + defparam lcell_inst.lut_mask = lut_mask; + defparam lcell_inst.dont_touch = dont_touch; + end + else if (family == "Cyclone V") + begin + cyclonev_lcell_comb lcell_inst ( + .dataa(dataa), + .datab(datab), + .datac(datac), + .datad(datad), + .datae(datae), + .dataf(dataf), + .combout (combout)); + defparam lcell_inst.lut_mask = lut_mask; + defparam lcell_inst.dont_touch = dont_touch; + end + endgenerate +endmodule diff --git a/sys/pll_cfg/altera_pll_reconfig_top.v b/sys/pll_cfg/altera_pll_reconfig_top.v index c6d27bf..843c970 100644 --- a/sys/pll_cfg/altera_pll_reconfig_top.v +++ b/sys/pll_cfg/altera_pll_reconfig_top.v @@ -11,418 +11,418 @@ // agreement for further details. -`timescale 1ps/1ps - -module altera_pll_reconfig_top -#( - parameter reconf_width = 64, - parameter device_family = "Stratix V", - parameter RECONFIG_ADDR_WIDTH = 6, - parameter RECONFIG_DATA_WIDTH = 32, - - parameter ROM_ADDR_WIDTH = 9, - parameter ROM_DATA_WIDTH = 32, - parameter ROM_NUM_WORDS = 512, - - parameter ENABLE_MIF = 0, - parameter MIF_FILE_NAME = "", - - parameter ENABLE_BYTEENABLE = 0, - parameter BYTEENABLE_WIDTH = 4, - parameter WAIT_FOR_LOCK = 1 -) ( - - //input - input wire mgmt_clk, - input wire mgmt_reset, - - - //conduits - output wire [reconf_width-1:0] reconfig_to_pll, - input wire [reconf_width-1:0] reconfig_from_pll, - - // user data (avalon-MM slave interface) - output wire [RECONFIG_DATA_WIDTH-1:0] mgmt_readdata, - output wire mgmt_waitrequest, - input wire [RECONFIG_ADDR_WIDTH-1:0] mgmt_address, - input wire mgmt_read, - input wire mgmt_write, - input wire [RECONFIG_DATA_WIDTH-1:0] mgmt_writedata, - - //conditional input - input wire [BYTEENABLE_WIDTH-1:0] mgmt_byteenable -); - -localparam NM28_START_REG = 6'b000010; -localparam NM20_START_REG = 9'b000000000; -localparam NM20_MIFSTART_ADDR = 9'b000010000; - -localparam MIF_STATE_DONE = 2'b00; -localparam MIF_STATE_START = 2'b01; -localparam MIF_STATE_BUSY = 2'b10; - -wire mgmt_byteenable_write; -assign mgmt_byteenable_write = (ENABLE_BYTEENABLE == 1) ? - ((mgmt_byteenable == {BYTEENABLE_WIDTH{1'b1}}) ? mgmt_write : 1'b0) : - mgmt_write; - -generate -if (device_family == "Arria 10") -begin:nm20_reconfig - if(ENABLE_MIF == 1) - begin:mif_reconfig_20nm // Generate Reconfig with MIF - - // MIF-related regs/wires - reg [RECONFIG_ADDR_WIDTH-1:0] reconfig_mgmt_addr; - reg reconfig_mgmt_read; - reg reconfig_mgmt_write; - reg [RECONFIG_DATA_WIDTH-1:0] reconfig_mgmt_writedata; - wire reconfig_mgmt_waitrequest; - wire [RECONFIG_DATA_WIDTH-1:0] reconfig_mgmt_readdata; - - wire [RECONFIG_ADDR_WIDTH-1:0] mif2reconfig_addr; - wire mif_busy; - wire mif2reconfig_read; - wire mif2reconfig_write; - wire [RECONFIG_DATA_WIDTH-1:0] mif2reconfig_writedata; - wire [ROM_ADDR_WIDTH-1:0] mif_base_addr; - reg mif_select; - //wire mif_user_start; // start signal provided by user to start mif - //reg user_start; - - reg [1:0] mif_curstate; - reg [1:0] mif_nextstate; - - wire mif_start; //start signal to mif reader - - assign mgmt_waitrequest = reconfig_mgmt_waitrequest | mif_busy;// | user_start; - // Don't output readdata if MIF streaming is taking place - assign mgmt_readdata = (mif_select) ? 32'b0 : reconfig_mgmt_readdata; - - //user must lower this by the time mif streaming is done - suggest to lower after 1 cycle - assign mif_start = mgmt_byteenable_write & (mgmt_address == NM20_MIFSTART_ADDR); - - //mif base addr is initially specified by the user - assign mif_base_addr = mgmt_writedata[ROM_ADDR_WIDTH-1:0]; - - //MIF statemachine - always @(posedge mgmt_clk) - begin - if(mgmt_reset) - mif_curstate <= MIF_STATE_DONE; - else - mif_curstate <= mif_nextstate; - end - - always @(*) - begin - case (mif_curstate) - MIF_STATE_DONE: - begin - if(mif_start) - mif_nextstate <= MIF_STATE_START; - else - mif_nextstate <= MIF_STATE_DONE; - end - MIF_STATE_START: - begin - mif_nextstate <= MIF_STATE_BUSY; - end - MIF_STATE_BUSY: - begin - if(mif_busy) - mif_nextstate <= MIF_STATE_BUSY; - else - mif_nextstate <= MIF_STATE_DONE; - end - endcase - end - - //Mif muxes - always @(*) - begin - if (mgmt_reset) - begin - reconfig_mgmt_addr <= 0; - reconfig_mgmt_read <= 0; - reconfig_mgmt_write <= 0; - reconfig_mgmt_writedata <= 0; - //user_start <= 0; - end - else - begin - reconfig_mgmt_addr <= (mif_select) ? mif2reconfig_addr : mgmt_address; - reconfig_mgmt_read <= (mif_select) ? mif2reconfig_read : mgmt_read; - reconfig_mgmt_write <= (mif_select) ? mif2reconfig_write : mgmt_byteenable_write; - reconfig_mgmt_writedata <= (mif_select) ? mif2reconfig_writedata : mgmt_writedata; - //user_start <= (mgmt_address == NM20_START_REG && mgmt_write == 1'b1) ? 1'b1 : 1'b0; - end - end - - always @(*) - begin - if (mgmt_reset) - begin - mif_select <= 0; - end - else - begin - mif_select <= (mif_start || mif_busy) ? 1'b1 : 1'b0; - end - end - - twentynm_pll_reconfig_mif_reader - #( - .RECONFIG_ADDR_WIDTH(RECONFIG_ADDR_WIDTH), - .RECONFIG_DATA_WIDTH(RECONFIG_DATA_WIDTH), - .ROM_ADDR_WIDTH(ROM_ADDR_WIDTH), - .ROM_DATA_WIDTH(ROM_DATA_WIDTH), - .ROM_NUM_WORDS(ROM_NUM_WORDS), - .DEVICE_FAMILY(device_family), - .ENABLE_MIF(ENABLE_MIF), - .MIF_FILE_NAME(MIF_FILE_NAME) - ) twentynm_pll_reconfig_mif_reader_inst0 ( - .mif_clk(mgmt_clk), - .mif_rst(mgmt_reset), - - //Altera_PLL Reconfig interface - //inputs - .reconfig_waitrequest(reconfig_mgmt_waitrequest), - //.reconfig_read_data(reconfig_mgmt_readdata), - //outputs - .reconfig_write_data(mif2reconfig_writedata), - .reconfig_addr(mif2reconfig_addr), - .reconfig_write(mif2reconfig_write), - .reconfig_read(mif2reconfig_read), - - //MIF Ctrl Interface - //inputs - .mif_base_addr(mif_base_addr), - .mif_start(mif_start), - //outputs - .mif_busy(mif_busy) - ); - - // ------ END MIF-RELATED MANAGEMENT ------ - - twentynm_iopll_reconfig_core - #( - .WAIT_FOR_LOCK(WAIT_FOR_LOCK) - ) twentynm_iopll_reconfig_core_inst ( - // Inputs - .mgmt_clk(mgmt_clk), - .mgmt_rst_n(~mgmt_reset), - .mgmt_read(reconfig_mgmt_read), - .mgmt_write(reconfig_mgmt_write), - .mgmt_address(reconfig_mgmt_addr), - .mgmt_writedata(reconfig_mgmt_writedata), - - // Outputs - .mgmt_readdata(reconfig_mgmt_readdata), - .mgmt_waitrequest(reconfig_mgmt_waitrequest), - - // PLL Conduits - .reconfig_to_pll(reconfig_to_pll), - .reconfig_from_pll(reconfig_from_pll) - ); - - end // End generate reconfig with MIF - else - begin:reconfig_core_20nm - twentynm_iopll_reconfig_core - #( - .WAIT_FOR_LOCK(WAIT_FOR_LOCK) - ) twentynm_iopll_reconfig_core_inst ( - // Inputs - .mgmt_clk(mgmt_clk), - .mgmt_rst_n(~mgmt_reset), - .mgmt_read(mgmt_read), - .mgmt_write(mgmt_byteenable_write), - .mgmt_address(mgmt_address), - .mgmt_writedata(mgmt_writedata), - - // Outputs - .mgmt_readdata(mgmt_readdata), - .mgmt_waitrequest(mgmt_waitrequest), - - // PLL Conduits - .reconfig_to_pll(reconfig_to_pll), - .reconfig_from_pll(reconfig_from_pll) - ); - end -end // 20nm reconfig -else -begin:NM28_reconfig - if (ENABLE_MIF == 1) - begin:mif_reconfig // Generate Reconfig with MIF - - // MIF-related regs/wires - reg [RECONFIG_ADDR_WIDTH-1:0] reconfig_mgmt_addr; - reg reconfig_mgmt_read; - reg reconfig_mgmt_write; - reg [RECONFIG_DATA_WIDTH-1:0] reconfig_mgmt_writedata; - wire reconfig_mgmt_waitrequest; - wire [RECONFIG_DATA_WIDTH-1:0] reconfig_mgmt_readdata; - - wire [RECONFIG_ADDR_WIDTH-1:0] mif2reconfig_addr; - wire mif2reconfig_busy; - wire mif2reconfig_read; - wire mif2reconfig_write; - wire [RECONFIG_DATA_WIDTH-1:0] mif2reconfig_writedata; - wire [ROM_ADDR_WIDTH-1:0] mif_base_addr; - reg mif_select; - reg user_start; - - wire reconfig2mif_start_out; - - assign mgmt_waitrequest = reconfig_mgmt_waitrequest | mif2reconfig_busy | user_start; - // Don't output readdata if MIF streaming is taking place - assign mgmt_readdata = (mif_select) ? 32'b0 : reconfig_mgmt_readdata; - - always @(posedge mgmt_clk) - begin - if (mgmt_reset) - begin - reconfig_mgmt_addr <= 0; - reconfig_mgmt_read <= 0; - reconfig_mgmt_write <= 0; - reconfig_mgmt_writedata <= 0; - user_start <= 0; - end - else - begin - reconfig_mgmt_addr <= (mif_select) ? mif2reconfig_addr : mgmt_address; - reconfig_mgmt_read <= (mif_select) ? mif2reconfig_read : mgmt_read; - reconfig_mgmt_write <= (mif_select) ? mif2reconfig_write : mgmt_byteenable_write; - reconfig_mgmt_writedata <= (mif_select) ? mif2reconfig_writedata : mgmt_writedata; - user_start <= (mgmt_address == NM28_START_REG && mgmt_byteenable_write == 1'b1) ? 1'b1 : 1'b0; - end - end - - always @(*) - begin - if (mgmt_reset) - begin - mif_select <= 0; - end - else - begin - mif_select <= (reconfig2mif_start_out || mif2reconfig_busy) ? 1'b1 : 1'b0; - end - end - - altera_pll_reconfig_mif_reader - #( - .RECONFIG_ADDR_WIDTH(RECONFIG_ADDR_WIDTH), - .RECONFIG_DATA_WIDTH(RECONFIG_DATA_WIDTH), - .ROM_ADDR_WIDTH(ROM_ADDR_WIDTH), - .ROM_DATA_WIDTH(ROM_DATA_WIDTH), - .ROM_NUM_WORDS(ROM_NUM_WORDS), - .DEVICE_FAMILY(device_family), - .ENABLE_MIF(ENABLE_MIF), - .MIF_FILE_NAME(MIF_FILE_NAME) - ) altera_pll_reconfig_mif_reader_inst0 ( - .mif_clk(mgmt_clk), - .mif_rst(mgmt_reset), - - //Altera_PLL Reconfig interface - //inputs - .reconfig_busy(reconfig_mgmt_waitrequest), - .reconfig_read_data(reconfig_mgmt_readdata), - //outputs - .reconfig_write_data(mif2reconfig_writedata), - .reconfig_addr(mif2reconfig_addr), - .reconfig_write(mif2reconfig_write), - .reconfig_read(mif2reconfig_read), - - //MIF Ctrl Interface - //inputs - .mif_base_addr(mif_base_addr), - .mif_start(reconfig2mif_start_out), - //outputs - .mif_busy(mif2reconfig_busy) - ); - - // ------ END MIF-RELATED MANAGEMENT ------ - - - altera_pll_reconfig_core - #( - .reconf_width(reconf_width), - .device_family(device_family), - .RECONFIG_ADDR_WIDTH(RECONFIG_ADDR_WIDTH), - .RECONFIG_DATA_WIDTH(RECONFIG_DATA_WIDTH), - .ROM_ADDR_WIDTH(ROM_ADDR_WIDTH), - .ROM_DATA_WIDTH(ROM_DATA_WIDTH), - .ROM_NUM_WORDS(ROM_NUM_WORDS) - ) altera_pll_reconfig_core_inst0 ( - //inputs - .mgmt_clk(mgmt_clk), - .mgmt_reset(mgmt_reset), - - //PLL interface conduits - .reconfig_to_pll(reconfig_to_pll), - .reconfig_from_pll(reconfig_from_pll), - - //User data outputs - .mgmt_readdata(reconfig_mgmt_readdata), - .mgmt_waitrequest(reconfig_mgmt_waitrequest), - - //User data inputs - .mgmt_address(reconfig_mgmt_addr), - .mgmt_read(reconfig_mgmt_read), - .mgmt_write(reconfig_mgmt_write), - .mgmt_writedata(reconfig_mgmt_writedata), - - // other - .mif_start_out(reconfig2mif_start_out), - .mif_base_addr(mif_base_addr) - ); - - end // End generate reconfig with MIF - else - begin:reconfig_core // Generate Reconfig core only - - wire reconfig2mif_start_out; - wire [ROM_ADDR_WIDTH-1:0] mif_base_addr; - - altera_pll_reconfig_core - #( - .reconf_width(reconf_width), - .device_family(device_family), - .RECONFIG_ADDR_WIDTH(RECONFIG_ADDR_WIDTH), - .RECONFIG_DATA_WIDTH(RECONFIG_DATA_WIDTH), - .ROM_ADDR_WIDTH(ROM_ADDR_WIDTH), - .ROM_DATA_WIDTH(ROM_DATA_WIDTH), - .ROM_NUM_WORDS(ROM_NUM_WORDS) - ) altera_pll_reconfig_core_inst0 ( - //inputs - .mgmt_clk(mgmt_clk), - .mgmt_reset(mgmt_reset), - - //PLL interface conduits - .reconfig_to_pll(reconfig_to_pll), - .reconfig_from_pll(reconfig_from_pll), - - //User data outputs - .mgmt_readdata(mgmt_readdata), - .mgmt_waitrequest(mgmt_waitrequest), - - //User data inputs - .mgmt_address(mgmt_address), - .mgmt_read(mgmt_read), - .mgmt_write(mgmt_byteenable_write), - .mgmt_writedata(mgmt_writedata), - - // other - .mif_start_out(reconfig2mif_start_out), - .mif_base_addr(mif_base_addr) - ); - - - end // End generate reconfig core only -end // End 28nm Reconfig -endgenerate - -endmodule - +`timescale 1ps/1ps + +module altera_pll_reconfig_top +#( + parameter reconf_width = 64, + parameter device_family = "Cyclone V", + parameter RECONFIG_ADDR_WIDTH = 6, + parameter RECONFIG_DATA_WIDTH = 32, + + parameter ROM_ADDR_WIDTH = 9, + parameter ROM_DATA_WIDTH = 32, + parameter ROM_NUM_WORDS = 512, + + parameter ENABLE_MIF = 0, + parameter MIF_FILE_NAME = "", + + parameter ENABLE_BYTEENABLE = 0, + parameter BYTEENABLE_WIDTH = 4, + parameter WAIT_FOR_LOCK = 1 +) ( + + //input + input wire mgmt_clk, + input wire mgmt_reset, + + + //conduits + output wire [reconf_width-1:0] reconfig_to_pll, + input wire [reconf_width-1:0] reconfig_from_pll, + + // user data (avalon-MM slave interface) + output wire [RECONFIG_DATA_WIDTH-1:0] mgmt_readdata, + output wire mgmt_waitrequest, + input wire [RECONFIG_ADDR_WIDTH-1:0] mgmt_address, + input wire mgmt_read, + input wire mgmt_write, + input wire [RECONFIG_DATA_WIDTH-1:0] mgmt_writedata, + + //conditional input + input wire [BYTEENABLE_WIDTH-1:0] mgmt_byteenable +); + +localparam NM28_START_REG = 6'b000010; +localparam NM20_START_REG = 9'b000000000; +localparam NM20_MIFSTART_ADDR = 9'b000010000; + +localparam MIF_STATE_DONE = 2'b00; +localparam MIF_STATE_START = 2'b01; +localparam MIF_STATE_BUSY = 2'b10; + +wire mgmt_byteenable_write; +assign mgmt_byteenable_write = (ENABLE_BYTEENABLE == 1) ? + ((mgmt_byteenable == {BYTEENABLE_WIDTH{1'b1}}) ? mgmt_write : 1'b0) : + mgmt_write; + +generate +if (device_family == "Arria 10") +begin:nm20_reconfig + if(ENABLE_MIF == 1) + begin:mif_reconfig_20nm // Generate Reconfig with MIF + + // MIF-related regs/wires + reg [RECONFIG_ADDR_WIDTH-1:0] reconfig_mgmt_addr; + reg reconfig_mgmt_read; + reg reconfig_mgmt_write; + reg [RECONFIG_DATA_WIDTH-1:0] reconfig_mgmt_writedata; + wire reconfig_mgmt_waitrequest; + wire [RECONFIG_DATA_WIDTH-1:0] reconfig_mgmt_readdata; + + wire [RECONFIG_ADDR_WIDTH-1:0] mif2reconfig_addr; + wire mif_busy; + wire mif2reconfig_read; + wire mif2reconfig_write; + wire [RECONFIG_DATA_WIDTH-1:0] mif2reconfig_writedata; + wire [ROM_ADDR_WIDTH-1:0] mif_base_addr; + reg mif_select; + //wire mif_user_start; // start signal provided by user to start mif + //reg user_start; + + reg [1:0] mif_curstate; + reg [1:0] mif_nextstate; + + wire mif_start; //start signal to mif reader + + assign mgmt_waitrequest = reconfig_mgmt_waitrequest | mif_busy;// | user_start; + // Don't output readdata if MIF streaming is taking place + assign mgmt_readdata = (mif_select) ? 32'b0 : reconfig_mgmt_readdata; + + //user must lower this by the time mif streaming is done - suggest to lower after 1 cycle + assign mif_start = mgmt_byteenable_write & (mgmt_address == NM20_MIFSTART_ADDR); + + //mif base addr is initially specified by the user + assign mif_base_addr = mgmt_writedata[ROM_ADDR_WIDTH-1:0]; + + //MIF statemachine + always @(posedge mgmt_clk) + begin + if(mgmt_reset) + mif_curstate <= MIF_STATE_DONE; + else + mif_curstate <= mif_nextstate; + end + + always @(*) + begin + case (mif_curstate) + MIF_STATE_DONE: + begin + if(mif_start) + mif_nextstate <= MIF_STATE_START; + else + mif_nextstate <= MIF_STATE_DONE; + end + MIF_STATE_START: + begin + mif_nextstate <= MIF_STATE_BUSY; + end + MIF_STATE_BUSY: + begin + if(mif_busy) + mif_nextstate <= MIF_STATE_BUSY; + else + mif_nextstate <= MIF_STATE_DONE; + end + endcase + end + + //Mif muxes + always @(*) + begin + if (mgmt_reset) + begin + reconfig_mgmt_addr <= 0; + reconfig_mgmt_read <= 0; + reconfig_mgmt_write <= 0; + reconfig_mgmt_writedata <= 0; + //user_start <= 0; + end + else + begin + reconfig_mgmt_addr <= (mif_select) ? mif2reconfig_addr : mgmt_address; + reconfig_mgmt_read <= (mif_select) ? mif2reconfig_read : mgmt_read; + reconfig_mgmt_write <= (mif_select) ? mif2reconfig_write : mgmt_byteenable_write; + reconfig_mgmt_writedata <= (mif_select) ? mif2reconfig_writedata : mgmt_writedata; + //user_start <= (mgmt_address == NM20_START_REG && mgmt_write == 1'b1) ? 1'b1 : 1'b0; + end + end + + always @(*) + begin + if (mgmt_reset) + begin + mif_select <= 0; + end + else + begin + mif_select <= (mif_start || mif_busy) ? 1'b1 : 1'b0; + end + end + + twentynm_pll_reconfig_mif_reader + #( + .RECONFIG_ADDR_WIDTH(RECONFIG_ADDR_WIDTH), + .RECONFIG_DATA_WIDTH(RECONFIG_DATA_WIDTH), + .ROM_ADDR_WIDTH(ROM_ADDR_WIDTH), + .ROM_DATA_WIDTH(ROM_DATA_WIDTH), + .ROM_NUM_WORDS(ROM_NUM_WORDS), + .DEVICE_FAMILY(device_family), + .ENABLE_MIF(ENABLE_MIF), + .MIF_FILE_NAME(MIF_FILE_NAME) + ) twentynm_pll_reconfig_mif_reader_inst0 ( + .mif_clk(mgmt_clk), + .mif_rst(mgmt_reset), + + //Altera_PLL Reconfig interface + //inputs + .reconfig_waitrequest(reconfig_mgmt_waitrequest), + //.reconfig_read_data(reconfig_mgmt_readdata), + //outputs + .reconfig_write_data(mif2reconfig_writedata), + .reconfig_addr(mif2reconfig_addr), + .reconfig_write(mif2reconfig_write), + .reconfig_read(mif2reconfig_read), + + //MIF Ctrl Interface + //inputs + .mif_base_addr(mif_base_addr), + .mif_start(mif_start), + //outputs + .mif_busy(mif_busy) + ); + + // ------ END MIF-RELATED MANAGEMENT ------ + + twentynm_iopll_reconfig_core + #( + .WAIT_FOR_LOCK(WAIT_FOR_LOCK) + ) twentynm_iopll_reconfig_core_inst ( + // Inputs + .mgmt_clk(mgmt_clk), + .mgmt_rst_n(~mgmt_reset), + .mgmt_read(reconfig_mgmt_read), + .mgmt_write(reconfig_mgmt_write), + .mgmt_address(reconfig_mgmt_addr), + .mgmt_writedata(reconfig_mgmt_writedata), + + // Outputs + .mgmt_readdata(reconfig_mgmt_readdata), + .mgmt_waitrequest(reconfig_mgmt_waitrequest), + + // PLL Conduits + .reconfig_to_pll(reconfig_to_pll), + .reconfig_from_pll(reconfig_from_pll) + ); + + end // End generate reconfig with MIF + else + begin:reconfig_core_20nm + twentynm_iopll_reconfig_core + #( + .WAIT_FOR_LOCK(WAIT_FOR_LOCK) + ) twentynm_iopll_reconfig_core_inst ( + // Inputs + .mgmt_clk(mgmt_clk), + .mgmt_rst_n(~mgmt_reset), + .mgmt_read(mgmt_read), + .mgmt_write(mgmt_byteenable_write), + .mgmt_address(mgmt_address), + .mgmt_writedata(mgmt_writedata), + + // Outputs + .mgmt_readdata(mgmt_readdata), + .mgmt_waitrequest(mgmt_waitrequest), + + // PLL Conduits + .reconfig_to_pll(reconfig_to_pll), + .reconfig_from_pll(reconfig_from_pll) + ); + end +end // 20nm reconfig +else +begin:NM28_reconfig + if (ENABLE_MIF == 1) + begin:mif_reconfig // Generate Reconfig with MIF + + // MIF-related regs/wires + reg [RECONFIG_ADDR_WIDTH-1:0] reconfig_mgmt_addr; + reg reconfig_mgmt_read; + reg reconfig_mgmt_write; + reg [RECONFIG_DATA_WIDTH-1:0] reconfig_mgmt_writedata; + wire reconfig_mgmt_waitrequest; + wire [RECONFIG_DATA_WIDTH-1:0] reconfig_mgmt_readdata; + + wire [RECONFIG_ADDR_WIDTH-1:0] mif2reconfig_addr; + wire mif2reconfig_busy; + wire mif2reconfig_read; + wire mif2reconfig_write; + wire [RECONFIG_DATA_WIDTH-1:0] mif2reconfig_writedata; + wire [ROM_ADDR_WIDTH-1:0] mif_base_addr; + reg mif_select; + reg user_start; + + wire reconfig2mif_start_out; + + assign mgmt_waitrequest = reconfig_mgmt_waitrequest | mif2reconfig_busy | user_start; + // Don't output readdata if MIF streaming is taking place + assign mgmt_readdata = (mif_select) ? 32'b0 : reconfig_mgmt_readdata; + + always @(posedge mgmt_clk) + begin + if (mgmt_reset) + begin + reconfig_mgmt_addr <= 0; + reconfig_mgmt_read <= 0; + reconfig_mgmt_write <= 0; + reconfig_mgmt_writedata <= 0; + user_start <= 0; + end + else + begin + reconfig_mgmt_addr <= (mif_select) ? mif2reconfig_addr : mgmt_address; + reconfig_mgmt_read <= (mif_select) ? mif2reconfig_read : mgmt_read; + reconfig_mgmt_write <= (mif_select) ? mif2reconfig_write : mgmt_byteenable_write; + reconfig_mgmt_writedata <= (mif_select) ? mif2reconfig_writedata : mgmt_writedata; + user_start <= (mgmt_address == NM28_START_REG && mgmt_byteenable_write == 1'b1) ? 1'b1 : 1'b0; + end + end + + always @(*) + begin + if (mgmt_reset) + begin + mif_select <= 0; + end + else + begin + mif_select <= (reconfig2mif_start_out || mif2reconfig_busy) ? 1'b1 : 1'b0; + end + end + + altera_pll_reconfig_mif_reader + #( + .RECONFIG_ADDR_WIDTH(RECONFIG_ADDR_WIDTH), + .RECONFIG_DATA_WIDTH(RECONFIG_DATA_WIDTH), + .ROM_ADDR_WIDTH(ROM_ADDR_WIDTH), + .ROM_DATA_WIDTH(ROM_DATA_WIDTH), + .ROM_NUM_WORDS(ROM_NUM_WORDS), + .DEVICE_FAMILY(device_family), + .ENABLE_MIF(ENABLE_MIF), + .MIF_FILE_NAME(MIF_FILE_NAME) + ) altera_pll_reconfig_mif_reader_inst0 ( + .mif_clk(mgmt_clk), + .mif_rst(mgmt_reset), + + //Altera_PLL Reconfig interface + //inputs + .reconfig_busy(reconfig_mgmt_waitrequest), + .reconfig_read_data(reconfig_mgmt_readdata), + //outputs + .reconfig_write_data(mif2reconfig_writedata), + .reconfig_addr(mif2reconfig_addr), + .reconfig_write(mif2reconfig_write), + .reconfig_read(mif2reconfig_read), + + //MIF Ctrl Interface + //inputs + .mif_base_addr(mif_base_addr), + .mif_start(reconfig2mif_start_out), + //outputs + .mif_busy(mif2reconfig_busy) + ); + + // ------ END MIF-RELATED MANAGEMENT ------ + + + altera_pll_reconfig_core + #( + .reconf_width(reconf_width), + .device_family(device_family), + .RECONFIG_ADDR_WIDTH(RECONFIG_ADDR_WIDTH), + .RECONFIG_DATA_WIDTH(RECONFIG_DATA_WIDTH), + .ROM_ADDR_WIDTH(ROM_ADDR_WIDTH), + .ROM_DATA_WIDTH(ROM_DATA_WIDTH), + .ROM_NUM_WORDS(ROM_NUM_WORDS) + ) altera_pll_reconfig_core_inst0 ( + //inputs + .mgmt_clk(mgmt_clk), + .mgmt_reset(mgmt_reset), + + //PLL interface conduits + .reconfig_to_pll(reconfig_to_pll), + .reconfig_from_pll(reconfig_from_pll), + + //User data outputs + .mgmt_readdata(reconfig_mgmt_readdata), + .mgmt_waitrequest(reconfig_mgmt_waitrequest), + + //User data inputs + .mgmt_address(reconfig_mgmt_addr), + .mgmt_read(reconfig_mgmt_read), + .mgmt_write(reconfig_mgmt_write), + .mgmt_writedata(reconfig_mgmt_writedata), + + // other + .mif_start_out(reconfig2mif_start_out), + .mif_base_addr(mif_base_addr) + ); + + end // End generate reconfig with MIF + else + begin:reconfig_core // Generate Reconfig core only + + wire reconfig2mif_start_out; + wire [ROM_ADDR_WIDTH-1:0] mif_base_addr; + + altera_pll_reconfig_core + #( + .reconf_width(reconf_width), + .device_family(device_family), + .RECONFIG_ADDR_WIDTH(RECONFIG_ADDR_WIDTH), + .RECONFIG_DATA_WIDTH(RECONFIG_DATA_WIDTH), + .ROM_ADDR_WIDTH(ROM_ADDR_WIDTH), + .ROM_DATA_WIDTH(ROM_DATA_WIDTH), + .ROM_NUM_WORDS(ROM_NUM_WORDS) + ) altera_pll_reconfig_core_inst0 ( + //inputs + .mgmt_clk(mgmt_clk), + .mgmt_reset(mgmt_reset), + + //PLL interface conduits + .reconfig_to_pll(reconfig_to_pll), + .reconfig_from_pll(reconfig_from_pll), + + //User data outputs + .mgmt_readdata(mgmt_readdata), + .mgmt_waitrequest(mgmt_waitrequest), + + //User data inputs + .mgmt_address(mgmt_address), + .mgmt_read(mgmt_read), + .mgmt_write(mgmt_byteenable_write), + .mgmt_writedata(mgmt_writedata), + + // other + .mif_start_out(reconfig2mif_start_out), + .mif_base_addr(mif_base_addr) + ); + + + end // End generate reconfig core only +end // End 28nm Reconfig +endgenerate + +endmodule + diff --git a/sys/pll_cfg.v b/sys/pll_cfg/pll_cfg.v similarity index 98% rename from sys/pll_cfg.v rename to sys/pll_cfg/pll_cfg.v index 2a2f078..0adc36f 100644 --- a/sys/pll_cfg.v +++ b/sys/pll_cfg/pll_cfg.v @@ -1,86 +1,86 @@ -// megafunction wizard: %Altera PLL Reconfig v17.0% -// GENERATION: XML -// pll_cfg.v - -// Generated using ACDS version 17.0 598 - -`timescale 1 ps / 1 ps -module pll_cfg #( - parameter ENABLE_BYTEENABLE = 0, - parameter BYTEENABLE_WIDTH = 4, - parameter RECONFIG_ADDR_WIDTH = 6, - parameter RECONFIG_DATA_WIDTH = 32, - parameter reconf_width = 64, - parameter WAIT_FOR_LOCK = 1 - ) ( - input wire mgmt_clk, // mgmt_clk.clk - input wire mgmt_reset, // mgmt_reset.reset - output wire mgmt_waitrequest, // mgmt_avalon_slave.waitrequest - input wire mgmt_read, // .read - input wire mgmt_write, // .write - output wire [31:0] mgmt_readdata, // .readdata - input wire [5:0] mgmt_address, // .address - input wire [31:0] mgmt_writedata, // .writedata - output wire [63:0] reconfig_to_pll, // reconfig_to_pll.reconfig_to_pll - input wire [63:0] reconfig_from_pll // reconfig_from_pll.reconfig_from_pll - ); - - altera_pll_reconfig_top #( - .device_family ("Cyclone V"), - .ENABLE_MIF (0), - .MIF_FILE_NAME ("sys/pll_cfg.mif"), - .ENABLE_BYTEENABLE (ENABLE_BYTEENABLE), - .BYTEENABLE_WIDTH (BYTEENABLE_WIDTH), - .RECONFIG_ADDR_WIDTH (RECONFIG_ADDR_WIDTH), - .RECONFIG_DATA_WIDTH (RECONFIG_DATA_WIDTH), - .reconf_width (reconf_width), - .WAIT_FOR_LOCK (WAIT_FOR_LOCK) - ) pll_cfg_inst ( - .mgmt_clk (mgmt_clk), // mgmt_clk.clk - .mgmt_reset (mgmt_reset), // mgmt_reset.reset - .mgmt_waitrequest (mgmt_waitrequest), // mgmt_avalon_slave.waitrequest - .mgmt_read (mgmt_read), // .read - .mgmt_write (mgmt_write), // .write - .mgmt_readdata (mgmt_readdata), // .readdata - .mgmt_address (mgmt_address), // .address - .mgmt_writedata (mgmt_writedata), // .writedata - .reconfig_to_pll (reconfig_to_pll), // reconfig_to_pll.reconfig_to_pll - .reconfig_from_pll (reconfig_from_pll), // reconfig_from_pll.reconfig_from_pll - .mgmt_byteenable (4'b0000) // (terminated) - ); - -endmodule -// Retrieval info: -// -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// IPFS_FILES : pll_cfg.vo -// RELATED_FILES: pll_cfg.v, altera_pll_reconfig_top.v, altera_pll_reconfig_core.v, altera_std_synchronizer.v +// megafunction wizard: %Altera PLL Reconfig v17.0% +// GENERATION: XML +// pll_cfg.v + +// Generated using ACDS version 17.0 598 + +`timescale 1 ps / 1 ps +module pll_cfg #( + parameter ENABLE_BYTEENABLE = 0, + parameter BYTEENABLE_WIDTH = 4, + parameter RECONFIG_ADDR_WIDTH = 6, + parameter RECONFIG_DATA_WIDTH = 32, + parameter reconf_width = 64, + parameter WAIT_FOR_LOCK = 1 + ) ( + input wire mgmt_clk, // mgmt_clk.clk + input wire mgmt_reset, // mgmt_reset.reset + output wire mgmt_waitrequest, // mgmt_avalon_slave.waitrequest + input wire mgmt_read, // .read + input wire mgmt_write, // .write + output wire [31:0] mgmt_readdata, // .readdata + input wire [5:0] mgmt_address, // .address + input wire [31:0] mgmt_writedata, // .writedata + output wire [63:0] reconfig_to_pll, // reconfig_to_pll.reconfig_to_pll + input wire [63:0] reconfig_from_pll // reconfig_from_pll.reconfig_from_pll + ); + + altera_pll_reconfig_top #( + .device_family ("Cyclone V"), + .ENABLE_MIF (0), + .MIF_FILE_NAME ("sys/pll_cfg.mif"), + .ENABLE_BYTEENABLE (ENABLE_BYTEENABLE), + .BYTEENABLE_WIDTH (BYTEENABLE_WIDTH), + .RECONFIG_ADDR_WIDTH (RECONFIG_ADDR_WIDTH), + .RECONFIG_DATA_WIDTH (RECONFIG_DATA_WIDTH), + .reconf_width (reconf_width), + .WAIT_FOR_LOCK (WAIT_FOR_LOCK) + ) pll_cfg_inst ( + .mgmt_clk (mgmt_clk), // mgmt_clk.clk + .mgmt_reset (mgmt_reset), // mgmt_reset.reset + .mgmt_waitrequest (mgmt_waitrequest), // mgmt_avalon_slave.waitrequest + .mgmt_read (mgmt_read), // .read + .mgmt_write (mgmt_write), // .write + .mgmt_readdata (mgmt_readdata), // .readdata + .mgmt_address (mgmt_address), // .address + .mgmt_writedata (mgmt_writedata), // .writedata + .reconfig_to_pll (reconfig_to_pll), // reconfig_to_pll.reconfig_to_pll + .reconfig_from_pll (reconfig_from_pll), // reconfig_from_pll.reconfig_from_pll + .mgmt_byteenable (4'b0000) // (terminated) + ); + +endmodule +// Retrieval info: +// +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// IPFS_FILES : pll_cfg.vo +// RELATED_FILES: pll_cfg.v, altera_pll_reconfig_top.v, altera_pll_reconfig_core.v, altera_std_synchronizer.v diff --git a/sys/pll_cfg/pll_cfg_hdmi.v b/sys/pll_cfg/pll_cfg_hdmi.v new file mode 100644 index 0000000..1912c2a --- /dev/null +++ b/sys/pll_cfg/pll_cfg_hdmi.v @@ -0,0 +1,1282 @@ +// (C) 2001-2017 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 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 Intel Program License Subscription +// Agreement, Intel 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 Intel and sold by +// Intel or its authorized distributors. Please refer to the applicable +// agreement for further details. + +// original file was altera_pll_reconfig_core.v +// not needed functionality was cut out to reduce ressource consumption + +module pll_cfg_hdmi +#( + parameter reconf_width = 64, + parameter device_family = "Cyclone V" +) ( + + //input + input wire mgmt_clk, + input wire mgmt_reset, + + + //conduits + output wire [reconf_width-1:0] reconfig_to_pll, + input wire [reconf_width-1:0] reconfig_from_pll, + + // user data (avalon-MM slave interface) + output wire mgmt_waitrequest, + input wire [5:0] mgmt_address, + input wire mgmt_write, + input wire [31:0] mgmt_writedata +); + localparam mode_WR = 1'b0; + localparam MODE_REG = 6'b000000; + localparam START_REG = 6'b000010; + localparam N_REG = 6'b000011; + localparam M_REG = 6'b000100; + localparam C_COUNTERS_REG = 6'b000101; + //localparam DPS_REG = 6'b000110; // unused + localparam DSM_REG = 6'b000111; + localparam BWCTRL_REG = 6'b001000; + localparam CP_CURRENT_REG = 6'b001001; + //localparam ANY_DPRIO = 6'b100000; // unused + //localparam CNT_BASE = 5'b001010; // unused + //localparam VCO_REG = 6'b011100; // unused + + //C Counters + localparam number_of_counters = 5'd6; + //C counter addresses + localparam C_CNT_0_DIV_ADDR = 5'h00; + localparam C_CNT_0_DIV_ADDR_DPRIO_1 = 5'h11; + localparam C_CNT_0_3_BYPASS_EN_ADDR = 5'h15; + localparam C_CNT_0_3_ODD_DIV_EN_ADDR = 5'h17; + localparam C_CNT_4_17_BYPASS_EN_ADDR = 5'h14; + localparam C_CNT_4_17_ODD_DIV_EN_ADDR = 5'h16; + //N counter addresses + localparam N_CNT_DIV_ADDR = 5'h13; + localparam N_CNT_BYPASS_EN_ADDR = 5'h15; + localparam N_CNT_ODD_DIV_EN_ADDR = 5'h17; + //M counter addresses + localparam M_CNT_DIV_ADDR = 5'h12; + localparam M_CNT_BYPASS_EN_ADDR = 5'h15; + localparam M_CNT_ODD_DIV_EN_ADDR = 5'h17; + + //DSM address + localparam DSM_K_FRACTIONAL_DIVISION_ADDR_0 = 5'h18; + localparam DSM_K_FRACTIONAL_DIVISION_ADDR_1 = 5'h19; + localparam DSM_K_READY_ADDR = 5'h17; + localparam DSM_K_DITHER_ADDR = 5'h17; + localparam DSM_OUT_SEL_ADDR = 6'h30; + + //Other DSM params + localparam DSM_K_READY_BIT_INDEX = 4'd11; + //BWCTRL address + //Bit 0-3 of addr + localparam BWCTRL_ADDR = 6'h30; + //CP_CURRENT address + //Bit 0-2 of addr + localparam CP_CURRENT_ADDR = 6'h31; + + // VCODIV address + localparam VCO_ADDR = 5'h17; + + localparam DPRIO_IDLE = 3'd0, ONE = 3'd1, TWO = 3'd2, THREE = 3'd3, FOUR = 3'd4, + FIVE = 3'd5, SIX = 3'd6, SEVEN = 3'd7, EIGHT = 4'd8, NINE = 4'd9, TEN = 4'd10, + ELEVEN = 4'd11, TWELVE = 4'd12, THIRTEEN = 4'd13, FOURTEEN = 4'd14, DPRIO_DONE = 4'd15; + localparam IDLE = 2'b00, WAIT_ON_LOCK = 2'b01, LOCKED = 2'b10; + + wire clk; + wire reset; + wire gnd; + + wire [5: 0] slave_address; + wire slave_write; + wire [31: 0] slave_writedata; + + wire slave_waitrequest; + reg slave_mode; + + assign clk = mgmt_clk; + + assign slave_address = mgmt_address; + assign slave_write = mgmt_write; + assign slave_writedata = mgmt_writedata; + + // Outputs + assign mgmt_waitrequest = slave_waitrequest; //Read waitrequest asserted in polling mode + + //internal signals + wire locked_orig; + wire locked; + + wire pll_start; + wire pll_start_valid; + + wire pll_start_asserted; + + reg [1:0] current_state; + reg [1:0] next_state; + + reg status;//0=busy, 1=ready + //user_mode_init user_mode_init_inst (clk, reset, dprio_mdio_dis, ser_shift_load); + //declaring the init wires. These will have 0 on them for 64 clk cycles + wire [ 5:0] init_dprio_address; + wire init_dprio_read; + wire [ 1:0] init_dprio_byteen; + wire init_dprio_write; + wire [15:0] init_dprio_writedata; + + wire init_atpgmode; + wire init_mdio_dis; + wire init_scanen; + wire init_ser_shift_load; + wire dprio_init_done; + + //DPRIO output signals after initialization is done + wire dprio_clk; + reg avmm_dprio_write; + reg avmm_dprio_read; + reg [5:0] avmm_dprio_address; + reg [15:0] avmm_dprio_writedata; + reg [1:0] avmm_dprio_byteen; + wire avmm_atpgmode; + wire avmm_mdio_dis; + wire avmm_scanen; + + //Final output wires that are muxed between the init and avmm wires. + wire dprio_init_reset; + wire [5:0] dprio_address /*synthesis keep*/; + wire dprio_read/*synthesis keep*/; + wire [1:0] dprio_byteen/*synthesis keep*/; + wire dprio_write/*synthesis keep*/; + wire [15:0] dprio_writedata/*synthesis keep*/; + wire dprio_mdio_dis/*synthesis keep*/; + wire dprio_ser_shift_load/*synthesis keep*/; + wire dprio_atpgmode/*synthesis keep*/; + wire dprio_scanen/*synthesis keep*/; + + + //other PLL signals for dyn ph shift + wire phase_done/*synthesis keep*/; + wire phase_en/*synthesis keep*/; + wire up_dn/*synthesis keep*/; + wire [4:0] cnt_sel; + + //DPRIO input signals + wire [15:0] dprio_readdata; + + //internal logic signals + //storage registers for user sent data + reg dprio_temp_read_1; + reg dprio_temp_read_2; + reg dprio_start; + wire usr_valid_changes; + reg [3:0] dprio_cur_state; + reg [3:0] dprio_next_state; + reg [15:0] dprio_temp_m_n_c_readdata_1_d; + reg [15:0] dprio_temp_m_n_c_readdata_2_d; + reg [15:0] dprio_temp_m_n_c_readdata_1_q; + reg [15:0] dprio_temp_m_n_c_readdata_2_q; + reg dprio_write_done; + //C counters signals + reg [7:0] usr_c_cnt_lo; + reg [7:0] usr_c_cnt_hi; + reg usr_c_cnt_bypass_en; + reg usr_c_cnt_odd_duty_div_en; + reg temp_c_cnt_bypass_en [0:17]; + reg temp_c_cnt_odd_duty_div_en [0:17]; + reg any_c_cnt_changed; + reg all_c_cnt_done_q; + reg all_c_cnt_done_d; + reg [17:0] c_cnt_changed; + reg [17:0] c_cnt_done_d; + reg [17:0] c_cnt_done_q; + //N counter signals + reg [7:0] usr_n_cnt_lo; + reg [7:0] usr_n_cnt_hi; + reg usr_n_cnt_bypass_en; + reg usr_n_cnt_odd_duty_div_en; + reg n_cnt_changed; + reg n_cnt_done_d; + reg n_cnt_done_q; + //M counter signals + reg [7:0] usr_m_cnt_lo; + reg [7:0] usr_m_cnt_hi; + reg usr_m_cnt_bypass_en; + reg usr_m_cnt_odd_duty_div_en; + reg m_cnt_changed; + reg m_cnt_done_d; + reg m_cnt_done_q; + //dyn phase regs + reg [15:0] usr_num_shifts; + reg [4:0] usr_cnt_sel /*synthesis preserve*/; + reg usr_up_dn; + reg dps_changed; + wire dps_changed_valid; + wire dps_done; + + //DSM Signals + reg [31:0] usr_k_value; + reg dsm_k_changed; + reg dsm_k_done_d; + reg dsm_k_done_q; + reg dsm_k_ready_false_done_d; + //BW signals + reg [3:0] usr_bwctrl_value; + reg bwctrl_changed; + reg bwctrl_done_d; + reg bwctrl_done_q; + //CP signals + reg [2:0] usr_cp_current_value; + reg cp_current_changed; + reg cp_current_done_d; + reg cp_current_done_q; + //VCO signals + reg usr_vco_value; + reg vco_changed; + reg vco_done_d; + reg vco_done_q; + //Manual DPRIO signals + reg manual_dprio_done_q; + reg manual_dprio_done_d; + reg manual_dprio_changed; + reg [5:0] usr_dprio_address; + reg [15:0] usr_dprio_writedata_0; + reg usr_r_w; + //keeping track of which operation happened last + reg [5:0] operation_address; + // Address wires for all C_counter DPRIO registers + // These are outputs of LUTS, changing depending + // on whether PLL_0 or PLL_1 being used + + + //Fitter will tell if FPLL1 is being used + wire fpll_1; + + // MAIN FSM + + // Synchronize locked signal + altera_std_synchronizer #( + .depth(3) + ) altera_std_synchronizer_inst ( + .clk(mgmt_clk), + .reset_n(~mgmt_reset), + .din(locked_orig), + .dout(locked) + ); + + always @(posedge clk) + begin + if (reset) + begin + dprio_cur_state <= DPRIO_IDLE; + current_state <= IDLE; + end + else + begin + current_state <= next_state; + dprio_cur_state <= dprio_next_state; + end + end + + always @(*) + begin + case(current_state) + IDLE: + begin + if (pll_start & !slave_waitrequest & usr_valid_changes) + next_state = WAIT_ON_LOCK; + else + next_state = IDLE; + end + WAIT_ON_LOCK: + begin + if (locked & dps_done & dprio_write_done) // received locked high from PLL + begin + if (slave_mode==mode_WR) //if the mode is waitrequest, then + // goto IDLE state directly + next_state = IDLE; + else + next_state = LOCKED; //otherwise go the locked state + end + else + next_state = WAIT_ON_LOCK; + end + + LOCKED: + begin + next_state = LOCKED; + end + + default: next_state = 2'bxx; + + endcase + end + + + // ask the pll to start reconfig + assign pll_start = (pll_start_asserted & (current_state==IDLE)) ; + assign pll_start_valid = (pll_start & (next_state==WAIT_ON_LOCK)) ; + + + + // WRITE OPERATIONS + assign pll_start_asserted = slave_write & (slave_address == START_REG); + + //reading the mode register to determine what mode the slave will operate + //in. + always @(posedge clk) + begin + if (reset) + slave_mode <= mode_WR; + else if (slave_write & (slave_address == MODE_REG) & !slave_waitrequest) + slave_mode <= slave_writedata[0]; + end + + //record which values user wants to change. + + //reading in the actual values that need to be reconfigged and sending + //them to the PLL + always @(posedge clk) + begin + if (reset) + begin + //reset all regs here + //BW signals reset + usr_bwctrl_value <= 0; + bwctrl_changed <= 0; + bwctrl_done_q <= 0; + //CP signals reset + usr_cp_current_value <= 0; + cp_current_changed <= 0; + cp_current_done_q <= 0; + //VCO signals reset + usr_vco_value <= 0; + vco_changed <= 0; + vco_done_q <= 0; + //DSM signals reset + usr_k_value <= 0; + dsm_k_changed <= 0; + dsm_k_done_q <= 0; + //N counter signals reset + usr_n_cnt_lo <= 0; + usr_n_cnt_hi <= 0; + usr_n_cnt_bypass_en <= 0; + usr_n_cnt_odd_duty_div_en <= 0; + n_cnt_changed <= 0; + n_cnt_done_q <= 0; + //M counter signals reset + usr_m_cnt_lo <= 0; + usr_m_cnt_hi <= 0; + usr_m_cnt_bypass_en <= 0; + usr_m_cnt_odd_duty_div_en <= 0; + m_cnt_changed <= 0; + m_cnt_done_q <= 0; + //C counter signals reset + usr_c_cnt_lo <= 0; + usr_c_cnt_hi <= 0; + usr_c_cnt_bypass_en <= 0; + usr_c_cnt_odd_duty_div_en <= 0; + any_c_cnt_changed <= 0; + all_c_cnt_done_q <= 0; + c_cnt_done_q <= 0; + //generic signals + dprio_start <= 0; + dprio_temp_m_n_c_readdata_1_q <= 0; + dprio_temp_m_n_c_readdata_2_q <= 0; + c_cnt_done_q <= 0; + //DPS signals + usr_up_dn <= 0; + usr_cnt_sel <= 0; + usr_num_shifts <= 0; + dps_changed <= 0; + //manual DPRIO signals + manual_dprio_changed <= 0; + usr_dprio_address <= 0; + usr_dprio_writedata_0 <= 0; + usr_r_w <= 0; + operation_address <= 0; + end + else + begin + if (dprio_temp_read_1) + begin + dprio_temp_m_n_c_readdata_1_q <= dprio_temp_m_n_c_readdata_1_d; + end + if (dprio_temp_read_2) + begin + dprio_temp_m_n_c_readdata_2_q <= dprio_temp_m_n_c_readdata_2_d; + end + if ((dps_done)) dps_changed <= 0; + if (dsm_k_done_d) dsm_k_done_q <= dsm_k_done_d; + if (n_cnt_done_d) n_cnt_done_q <= n_cnt_done_d; + if (m_cnt_done_d) m_cnt_done_q <= m_cnt_done_d; + if (all_c_cnt_done_d) all_c_cnt_done_q <= all_c_cnt_done_d; + if (c_cnt_done_d != 0) c_cnt_done_q <= c_cnt_done_q | c_cnt_done_d; + if (bwctrl_done_d) bwctrl_done_q <= bwctrl_done_d; + if (cp_current_done_d) cp_current_done_q <= cp_current_done_d; + if (vco_done_d) vco_done_q <= vco_done_d; + if (manual_dprio_done_d) manual_dprio_done_q <= manual_dprio_done_d; + + if (dprio_next_state == ONE) + dprio_start <= 0; + if (dprio_write_done) + begin + bwctrl_done_q <= 0; + cp_current_done_q <= 0; + vco_done_q <= 0; + dsm_k_done_q <= 0; + dsm_k_done_q <= 0; + n_cnt_done_q <= 0; + m_cnt_done_q <= 0; + all_c_cnt_done_q <= 0; + c_cnt_done_q <= 0; + dsm_k_changed <= 0; + n_cnt_changed <= 0; + m_cnt_changed <= 0; + any_c_cnt_changed <= 0; + bwctrl_changed <= 0; + cp_current_changed <= 0; + vco_changed <= 0; + manual_dprio_changed <= 0; + manual_dprio_done_q <= 0; + + end + else + begin + dsm_k_changed <= dsm_k_changed; + n_cnt_changed <= n_cnt_changed; + m_cnt_changed <= m_cnt_changed; + any_c_cnt_changed <= any_c_cnt_changed; + manual_dprio_changed <= manual_dprio_changed; + end + + + if(slave_write & !slave_waitrequest) + begin + case(slave_address) + //read in the values here from the user and act on them + DSM_REG: + begin + operation_address <= DSM_REG; + usr_k_value <= slave_writedata[31:0]; + dsm_k_changed <= 1'b1; + dsm_k_done_q <= 0; + dprio_start <= 1'b1; + end + N_REG: + begin + operation_address <= N_REG; + usr_n_cnt_lo <= slave_writedata[7:0]; + usr_n_cnt_hi <= slave_writedata[15:8]; + usr_n_cnt_bypass_en <= slave_writedata[16]; + usr_n_cnt_odd_duty_div_en <= slave_writedata[17]; + n_cnt_changed <= 1'b1; + n_cnt_done_q <= 0; + dprio_start <= 1'b1; + end + M_REG: + begin + operation_address <= M_REG; + usr_m_cnt_lo <= slave_writedata[7:0]; + usr_m_cnt_hi <= slave_writedata[15:8]; + usr_m_cnt_bypass_en <= slave_writedata[16]; + usr_m_cnt_odd_duty_div_en <= slave_writedata[17]; + m_cnt_changed <= 1'b1; + m_cnt_done_q <= 0; + dprio_start <= 1'b1; + end + //DPS_REG: + //begin + // operation_address <= DPS_REG; + // usr_num_shifts <= slave_writedata[15:0]; + // usr_up_dn <= slave_writedata[21]; + // dps_changed <= 1; + //end + C_COUNTERS_REG: + begin + operation_address <= C_COUNTERS_REG; + usr_c_cnt_lo <= slave_writedata[7:0]; + usr_c_cnt_hi <= slave_writedata[15:8]; + usr_c_cnt_bypass_en <= slave_writedata[16]; + usr_c_cnt_odd_duty_div_en <= slave_writedata[17]; + any_c_cnt_changed <= 1'b1; + all_c_cnt_done_q <= 0; + dprio_start <= 1'b1; + end + BWCTRL_REG: + begin + usr_bwctrl_value <= slave_writedata[3:0]; + bwctrl_changed <= 1'b1; + bwctrl_done_q <= 0; + dprio_start <= 1'b1; + operation_address <= BWCTRL_REG; + end + CP_CURRENT_REG: + begin + usr_cp_current_value <= slave_writedata[2:0]; + cp_current_changed <= 1'b1; + cp_current_done_q <= 0; + dprio_start <= 1'b1; + operation_address <= CP_CURRENT_REG; + end + //VCO_REG: + //begin + // usr_vco_value <= slave_writedata[0]; + // vco_changed <= 1'b1; + // vco_done_q <= 0; + // dprio_start <= 1'b1; + // operation_address <= VCO_REG; + //end + //ANY_DPRIO: + //begin + // operation_address <= ANY_DPRIO; + // manual_dprio_changed <= 1'b1; + // usr_dprio_address <= slave_writedata[5:0]; + // usr_dprio_writedata_0 <= slave_writedata[21:6]; + // usr_r_w <= slave_writedata[22]; + // manual_dprio_done_q <= 0; + // dprio_start <= 1'b1; + //end + endcase + end + end + end + //C Counter assigning values to the 2-d array of values for each C counter + + reg [4:0] j; + always @(posedge clk) + begin + + if (reset) + begin + c_cnt_changed[17:0] <= 0; + for (j = 0; j < number_of_counters; j = j + 1'b1) + begin : c_cnt_reset + temp_c_cnt_bypass_en[j] <= 0; + temp_c_cnt_odd_duty_div_en[j] <= 0; + end + end + else + begin + if (dprio_write_done) + begin + c_cnt_changed <= 0; + end + if (any_c_cnt_changed && (operation_address == C_COUNTERS_REG)) + begin + temp_c_cnt_bypass_en [5] <= usr_c_cnt_bypass_en; + temp_c_cnt_odd_duty_div_en [5] <= usr_c_cnt_odd_duty_div_en; + c_cnt_changed [5] <= 1'b1; + end + end + end + + + //logic to handle which writes the user indicated and wants to start. + assign usr_valid_changes =dsm_k_changed| any_c_cnt_changed |n_cnt_changed | m_cnt_changed | dps_changed_valid |manual_dprio_changed |cp_current_changed|bwctrl_changed|vco_changed; + + + //start the reconfig operations by writing to the DPRIO + reg break_loop; + reg [4:0] i; + always @(*) + begin + dprio_temp_read_1 = 0; + dprio_temp_read_2 = 0; + dprio_temp_m_n_c_readdata_1_d = 0; + dprio_temp_m_n_c_readdata_2_d = 0; + break_loop = 0; + dprio_next_state = DPRIO_IDLE; + avmm_dprio_write = 0; + avmm_dprio_read = 0; + avmm_dprio_address = 0; + avmm_dprio_writedata = 0; + avmm_dprio_byteen = 0; + dprio_write_done = 1; + manual_dprio_done_d = 0; + n_cnt_done_d = 0; + dsm_k_done_d = 0; + dsm_k_ready_false_done_d = 0; + m_cnt_done_d = 0; + c_cnt_done_d[17:0] = 0; + all_c_cnt_done_d = 0; + bwctrl_done_d = 0; + cp_current_done_d = 0; + vco_done_d = 0; + i = 0; + + // Deassert dprio_write_done so it doesn't reset mif_reg_asserted (toggled writes) + if (dprio_start) + dprio_write_done = 0; + + if (current_state == WAIT_ON_LOCK) + begin + case (dprio_cur_state) + ONE: + begin + if (n_cnt_changed & !n_cnt_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + dprio_next_state = TWO; + avmm_dprio_address = N_CNT_DIV_ADDR; + avmm_dprio_writedata[7:0] = usr_n_cnt_lo; + avmm_dprio_writedata[15:8] = usr_n_cnt_hi; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + dprio_next_state = TWO; + avmm_dprio_address = M_CNT_DIV_ADDR; + avmm_dprio_writedata[7:0] = usr_m_cnt_lo; + avmm_dprio_writedata[15:8] = usr_m_cnt_hi; + end + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + + for (i = 0; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_write_hilo + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + dprio_write_done = 0; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + dprio_next_state = TWO; + if (fpll_1) avmm_dprio_address = C_CNT_0_DIV_ADDR + C_CNT_0_DIV_ADDR_DPRIO_1 - i; + else avmm_dprio_address = C_CNT_0_DIV_ADDR + i; + avmm_dprio_writedata[7:0] = usr_c_cnt_lo; + avmm_dprio_writedata[15:8] = usr_c_cnt_hi; + //To break from the loop, since only one counter + //is addressed at a time + break_loop = 1'b1; + end + end + end + else if (dsm_k_changed & !dsm_k_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 0; + dprio_next_state = TWO; + end + else if (bwctrl_changed & !bwctrl_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 0; + dprio_next_state = TWO; + end + else if (cp_current_changed & !cp_current_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 0; + dprio_next_state = TWO; + end + else if (vco_changed & !vco_done_q) + begin + dprio_write_done = 0; + avmm_dprio_write = 0; + dprio_next_state = TWO; + end + else if (manual_dprio_changed & !manual_dprio_done_q) + begin + dprio_write_done = 0; + avmm_dprio_byteen = 2'b11; + dprio_next_state = TWO; + avmm_dprio_write = usr_r_w; + avmm_dprio_address = usr_dprio_address; + avmm_dprio_writedata[15:0] = usr_dprio_writedata_0; + end + else dprio_next_state = DPRIO_IDLE; + end + + TWO: + begin + //handle reading the two setting bits on n_cnt, then + //writing them back while preserving other bits. + //Issue two consecutive reads then wait; readLatency=3 + dprio_write_done = 0; + dprio_next_state = THREE; + avmm_dprio_byteen = 2'b11; + avmm_dprio_read = 1'b1; + if (n_cnt_changed & !n_cnt_done_q) + begin + avmm_dprio_address = N_CNT_BYPASS_EN_ADDR; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + avmm_dprio_address = M_CNT_BYPASS_EN_ADDR; + end + + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + for (i = 5; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_read_bypass + if (fpll_1) + begin + if (i > 13) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; + break_loop = 1'b1; + end + end + end + else + begin + if (i < 4) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; + break_loop = 1'b1; + end + end + end + end + end + //reading the K ready 16 bit word. Need to write 0 to it + //afterwards to indicate that K has not been done writing + else if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_READY_ADDR; + dprio_next_state = FOUR; + end + else if (bwctrl_changed & !bwctrl_done_q) + begin + avmm_dprio_address = BWCTRL_ADDR; + dprio_next_state = FOUR; + end + else if (cp_current_changed & !cp_current_done_q) + begin + avmm_dprio_address = CP_CURRENT_ADDR; + dprio_next_state = FOUR; + end + else if (vco_changed & !vco_done_q) + begin + avmm_dprio_address = VCO_ADDR; + dprio_next_state = FOUR; + end + else if (manual_dprio_changed & !manual_dprio_done_q) + begin + avmm_dprio_read = ~usr_r_w; + avmm_dprio_address = usr_dprio_address; + dprio_next_state = DPRIO_DONE; + end + else dprio_next_state = DPRIO_IDLE; + end + THREE: + begin + dprio_write_done = 0; + avmm_dprio_byteen = 2'b11; + avmm_dprio_read = 1'b1; + dprio_next_state = FOUR; + if (n_cnt_changed & !n_cnt_done_q) + begin + avmm_dprio_address = N_CNT_ODD_DIV_EN_ADDR; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + avmm_dprio_address = M_CNT_ODD_DIV_EN_ADDR; + end + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + for (i = 5; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_read_odd_div + if (fpll_1) + begin + if (i > 13) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; + break_loop = 1'b1; + end + end + end + else + begin + if (i < 4) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; + break_loop = 1'b1; + end + end + end + end + end + else dprio_next_state = DPRIO_IDLE; + end + FOUR: + begin + dprio_temp_read_1 = 1'b1; + dprio_write_done = 0; + if (vco_changed|cp_current_changed|bwctrl_changed|dsm_k_changed|n_cnt_changed|m_cnt_changed|any_c_cnt_changed) + begin + dprio_temp_m_n_c_readdata_1_d = dprio_readdata; + dprio_next_state = FIVE; + end + else dprio_next_state = DPRIO_IDLE; + end + FIVE: + begin + dprio_write_done = 0; + dprio_temp_read_2 = 1'b1; + if (vco_changed|cp_current_changed|bwctrl_changed|dsm_k_changed|n_cnt_changed|m_cnt_changed|any_c_cnt_changed) + begin + //this is where DSM ready value comes. + //Need to store in a register to be used later + dprio_temp_m_n_c_readdata_2_d = dprio_readdata; + dprio_next_state = SIX; + end + else dprio_next_state = DPRIO_IDLE; + end + SIX: + begin + dprio_write_done = 0; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + dprio_next_state = SEVEN; + avmm_dprio_writedata = dprio_temp_m_n_c_readdata_1_q; + if (n_cnt_changed & !n_cnt_done_q) + begin + avmm_dprio_address = N_CNT_BYPASS_EN_ADDR; + avmm_dprio_writedata[5] = usr_n_cnt_bypass_en; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + avmm_dprio_address = M_CNT_BYPASS_EN_ADDR; + avmm_dprio_writedata[4] = usr_m_cnt_bypass_en; + end + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + for (i = 5; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_write_bypass + if (fpll_1) + begin + if (i > 13) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; + avmm_dprio_writedata[i-14] = temp_c_cnt_bypass_en[i]; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; + avmm_dprio_writedata[i] = temp_c_cnt_bypass_en[i]; + break_loop = 1'b1; + end + end + end + else + begin + if (i < 4) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_BYPASS_EN_ADDR; + avmm_dprio_writedata[3-i] = temp_c_cnt_bypass_en[i]; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_BYPASS_EN_ADDR; + avmm_dprio_writedata[17-i] = temp_c_cnt_bypass_en[i]; + break_loop = 1'b1; + end + end + end + end + end + else if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_write = 0; + end + else if (bwctrl_changed & !bwctrl_done_q) + begin + avmm_dprio_write = 0; + end + else if (cp_current_changed & !cp_current_done_q) + begin + avmm_dprio_write = 0; + end + else if (vco_changed & !vco_done_q) + begin + avmm_dprio_write = 0; + end + else dprio_next_state = DPRIO_IDLE; + end + SEVEN: + begin + dprio_write_done = 0; + dprio_next_state = EIGHT; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + avmm_dprio_writedata = dprio_temp_m_n_c_readdata_2_q; + if (n_cnt_changed & !n_cnt_done_q) + begin + avmm_dprio_address = N_CNT_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[5] = usr_n_cnt_odd_duty_div_en; + n_cnt_done_d = 1'b1; + end + else if (m_cnt_changed & !m_cnt_done_q) + begin + avmm_dprio_address = M_CNT_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[4] = usr_m_cnt_odd_duty_div_en; + m_cnt_done_d = 1'b1; + end + + else if (any_c_cnt_changed & !all_c_cnt_done_q) + begin + for (i = 5; (i < number_of_counters) & !break_loop; i = i + 1'b1) + begin : c_cnt_write_odd_div + if (fpll_1) + begin + if (i > 13) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[i-14] = temp_c_cnt_odd_duty_div_en[i]; + c_cnt_done_d[i] = 1'b1; + //have to OR the signals to prevent + //overwriting of previous dones + c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[i] = temp_c_cnt_odd_duty_div_en[i]; + c_cnt_done_d[i] = 1'b1; + c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; + break_loop = 1'b1; + end + end + end + else + begin + if (i < 4) + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_0_3_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[3-i] = temp_c_cnt_odd_duty_div_en[i]; + c_cnt_done_d[i] = 1'b1; + //have to OR the signals to prevent + //overwriting of previous dones + c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; + break_loop = 1'b1; + end + end + else + begin + if (c_cnt_changed[i] & !c_cnt_done_q[i]) + begin + avmm_dprio_address = C_CNT_4_17_ODD_DIV_EN_ADDR; + avmm_dprio_writedata[17-i] = temp_c_cnt_odd_duty_div_en[i]; + c_cnt_done_d[i] = 1'b1; + c_cnt_done_d = c_cnt_done_d | c_cnt_done_q; + break_loop = 1'b1; + end + end + end + end + end + else if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_READY_ADDR; + avmm_dprio_writedata[DSM_K_READY_BIT_INDEX] = 1'b0; + dsm_k_ready_false_done_d = 1'b1; + end + else if (bwctrl_changed & !bwctrl_done_q) + begin + avmm_dprio_address = BWCTRL_ADDR; + avmm_dprio_writedata[3:0] = usr_bwctrl_value; + bwctrl_done_d = 1'b1; + end + else if (cp_current_changed & !cp_current_done_q) + begin + avmm_dprio_address = CP_CURRENT_ADDR; + avmm_dprio_writedata[2:0] = usr_cp_current_value; + cp_current_done_d = 1'b1; + end + else if (vco_changed & !vco_done_q) + begin + avmm_dprio_address = VCO_ADDR; + avmm_dprio_writedata[8] = usr_vco_value; + vco_done_d = 1'b1; + end + + + //if all C_cnt that were changed are done, then assert all_c_cnt_done + if (c_cnt_done_d == c_cnt_changed) + all_c_cnt_done_d = 1'b1; + if (n_cnt_changed & n_cnt_done_d) + dprio_next_state = DPRIO_DONE; + if (any_c_cnt_changed & !all_c_cnt_done_d & !all_c_cnt_done_q) + dprio_next_state = ONE; + else if (m_cnt_changed & !m_cnt_done_d & !m_cnt_done_q) + dprio_next_state = ONE; + else if (dsm_k_changed & !dsm_k_ready_false_done_d) + dprio_next_state = TWO; + else if (dsm_k_changed & !dsm_k_done_q) + dprio_next_state = EIGHT; + else if (bwctrl_changed & !bwctrl_done_d) + dprio_next_state = TWO; + else if (cp_current_changed & !cp_current_done_d) + dprio_next_state = TWO; + else if (vco_changed & !vco_done_d) + dprio_next_state = TWO; + else + begin + dprio_next_state = DPRIO_DONE; + dprio_write_done = 1'b1; + end + end + //finish the rest of the DSM reads/writes + //writing k value, writing k_ready to 1. + EIGHT: + begin + dprio_write_done = 0; + dprio_next_state = NINE; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_FRACTIONAL_DIVISION_ADDR_0; + avmm_dprio_writedata[15:0] = usr_k_value[15:0]; + end + end + NINE: + begin + dprio_write_done = 0; + dprio_next_state = TEN; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_FRACTIONAL_DIVISION_ADDR_1; + avmm_dprio_writedata[15:0] = usr_k_value[31:16]; + end + end + TEN: + begin + dprio_write_done = 0; + dprio_next_state = ONE; + avmm_dprio_write = 1'b1; + avmm_dprio_byteen = 2'b11; + if (dsm_k_changed & !dsm_k_done_q) + begin + avmm_dprio_address = DSM_K_READY_ADDR; + //already have the readdata for DSM_K_READY_ADDR since we read it + //earlier. Just reuse here + avmm_dprio_writedata = dprio_temp_m_n_c_readdata_2_q; + avmm_dprio_writedata[DSM_K_READY_BIT_INDEX] = 1'b1; + dsm_k_done_d = 1'b1; + end + end + DPRIO_DONE: + begin + dprio_write_done = 1'b1; + if (dprio_start) dprio_next_state = DPRIO_IDLE; + else dprio_next_state = DPRIO_DONE; + end + DPRIO_IDLE: + begin + if (dprio_start) dprio_next_state = ONE; + else dprio_next_state = DPRIO_IDLE; + end + default: dprio_next_state = 4'bxxxx; + endcase + end + + end + + + //assert the waitreq signal according to the state of the slave + assign slave_waitrequest = (slave_mode==mode_WR) ? ((locked === 1'b1) ? (((current_state==WAIT_ON_LOCK) & !dprio_write_done) | !dps_done |reset|!dprio_init_done) : 1'b1) : 1'b0; + + + dyn_phase_shift dyn_phase_shift_inst ( + .clk(clk), + .reset(reset), + .phase_done(phase_done), + .pll_start_valid(pll_start_valid), + .dps_changed(dps_changed), + .dps_changed_valid(dps_changed_valid), + .dprio_write_done(dprio_write_done), + .usr_num_shifts(usr_num_shifts), + .usr_cnt_sel(usr_cnt_sel), + .usr_up_dn(usr_up_dn), + .locked(locked), + .dps_done(dps_done), + .phase_en(phase_en), + .up_dn(up_dn), + .cnt_sel(cnt_sel)); + defparam dyn_phase_shift_inst.device_family = device_family; + + assign dprio_clk = clk; + self_reset self_reset_inst (mgmt_reset, clk, reset, dprio_init_reset); + + dprio_mux dprio_mux_inst ( + .init_dprio_address(init_dprio_address), + .init_dprio_read(init_dprio_read), + .init_dprio_byteen(init_dprio_byteen), + .init_dprio_write(init_dprio_write), + .init_dprio_writedata(init_dprio_writedata), + + + .init_atpgmode(init_atpgmode), + .init_mdio_dis(init_mdio_dis), + .init_scanen(init_scanen), + .init_ser_shift_load(init_ser_shift_load), + .dprio_init_done(dprio_init_done), + + // Inputs from avmm master + .avmm_dprio_address(avmm_dprio_address), + .avmm_dprio_read(avmm_dprio_read), + .avmm_dprio_byteen(avmm_dprio_byteen), + .avmm_dprio_write(avmm_dprio_write), + .avmm_dprio_writedata(avmm_dprio_writedata), + + .avmm_atpgmode(avmm_atpgmode), + .avmm_mdio_dis(avmm_mdio_dis), + .avmm_scanen(avmm_scanen), + + // Outputs to fpll + .dprio_address(dprio_address), + .dprio_read(dprio_read), + .dprio_byteen(dprio_byteen), + .dprio_write(dprio_write), + .dprio_writedata(dprio_writedata), + + .atpgmode(dprio_atpgmode), + .mdio_dis(dprio_mdio_dis), + .scanen(dprio_scanen), + .ser_shift_load(dprio_ser_shift_load) + ); + + + fpll_dprio_init fpll_dprio_init_inst ( + .clk(clk), + .reset_n(~reset), + .locked(locked), + + //outputs + .dprio_address(init_dprio_address), + .dprio_read(init_dprio_read), + .dprio_byteen(init_dprio_byteen), + .dprio_write(init_dprio_write), + .dprio_writedata(init_dprio_writedata), + + .atpgmode(init_atpgmode), + .mdio_dis(init_mdio_dis), + .scanen(init_scanen), + .ser_shift_load(init_ser_shift_load), + .dprio_init_done(dprio_init_done)); + + //address luts, to be reconfigged by the Fitter + //FPLL_1 or 0 address lut + generic_lcell_comb lcell_fpll_0_1 ( + .dataa(1'b0), + .combout (fpll_1)); + defparam lcell_fpll_0_1.lut_mask = 64'hAAAAAAAAAAAAAAAA; + defparam lcell_fpll_0_1.dont_touch = "on"; + defparam lcell_fpll_0_1.family = device_family; + + + wire dprio_read_combout; + generic_lcell_comb lcell_dprio_read ( + .dataa(fpll_1), + .datab(dprio_read), + .datac(1'b0), + .datad(1'b0), + .datae(1'b0), + .dataf(1'b0), + .combout (dprio_read_combout)); + defparam lcell_dprio_read.lut_mask = 64'hCCCCCCCCCCCCCCCC; + defparam lcell_dprio_read.dont_touch = "on"; + defparam lcell_dprio_read.family = device_family; + + + + + + //assign reconfig_to_pll signals + assign reconfig_to_pll[0] = dprio_clk; + assign reconfig_to_pll[1] = ~dprio_init_reset; + assign reconfig_to_pll[2] = dprio_write; + assign reconfig_to_pll[3] = dprio_read_combout; + assign reconfig_to_pll[9:4] = dprio_address; + assign reconfig_to_pll[25:10] = dprio_writedata; + assign reconfig_to_pll[27:26] = dprio_byteen; + assign reconfig_to_pll[28] = dprio_ser_shift_load; + assign reconfig_to_pll[29] = dprio_mdio_dis; + assign reconfig_to_pll[30] = phase_en; + assign reconfig_to_pll[31] = up_dn; + assign reconfig_to_pll[36:32] = cnt_sel; + assign reconfig_to_pll[37] = dprio_scanen; + assign reconfig_to_pll[38] = dprio_atpgmode; + //assign reconfig_to_pll[40:37] = clken; + assign reconfig_to_pll[63:39] = 0; + + //assign reconfig_from_pll signals + assign dprio_readdata = reconfig_from_pll [15:0]; + assign locked_orig = reconfig_from_pll [16]; + assign phase_done = reconfig_from_pll [17]; + +endmodule diff --git a/sys/pll_hdmi.v b/sys/pll_hdmi.v index 52a9de9..0cefd25 100644 --- a/sys/pll_hdmi.v +++ b/sys/pll_hdmi.v @@ -1,256 +1,256 @@ -// megafunction wizard: %Altera PLL v17.0% -// GENERATION: XML -// pll_hdmi.v - -// Generated using ACDS version 17.0 598 - -`timescale 1 ps / 1 ps -module pll_hdmi ( - input wire refclk, // refclk.clk - input wire rst, // reset.reset - output wire outclk_0, // outclk0.clk - input wire [63:0] reconfig_to_pll, // reconfig_to_pll.reconfig_to_pll - output wire [63:0] reconfig_from_pll // reconfig_from_pll.reconfig_from_pll - ); - - pll_hdmi_0002 pll_hdmi_inst ( - .refclk (refclk), // refclk.clk - .rst (rst), // reset.reset - .outclk_0 (outclk_0), // outclk0.clk - .reconfig_to_pll (reconfig_to_pll), // reconfig_to_pll.reconfig_to_pll - .reconfig_from_pll (reconfig_from_pll), // reconfig_from_pll.reconfig_from_pll - .locked () // (terminated) - ); - -endmodule -// Retrieval info: -// -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// Retrieval info: -// IPFS_FILES : pll_hdmi.vo -// RELATED_FILES: pll_hdmi.v, pll_hdmi_0002.v +// megafunction wizard: %Altera PLL v17.0% +// GENERATION: XML +// pll_hdmi.v + +// Generated using ACDS version 17.0 598 + +`timescale 1 ps / 1 ps +module pll_hdmi ( + input wire refclk, // refclk.clk + input wire rst, // reset.reset + output wire outclk_0, // outclk0.clk + input wire [63:0] reconfig_to_pll, // reconfig_to_pll.reconfig_to_pll + output wire [63:0] reconfig_from_pll // reconfig_from_pll.reconfig_from_pll + ); + + pll_hdmi_0002 pll_hdmi_inst ( + .refclk (refclk), // refclk.clk + .rst (rst), // reset.reset + .outclk_0 (outclk_0), // outclk0.clk + .reconfig_to_pll (reconfig_to_pll), // reconfig_to_pll.reconfig_to_pll + .reconfig_from_pll (reconfig_from_pll), // reconfig_from_pll.reconfig_from_pll + .locked () // (terminated) + ); + +endmodule +// Retrieval info: +// +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// Retrieval info: +// IPFS_FILES : pll_hdmi.vo +// RELATED_FILES: pll_hdmi.v, pll_hdmi_0002.v diff --git a/sys/pll_hdmi/pll_hdmi_0002.v b/sys/pll_hdmi/pll_hdmi_0002.v index dc63100..9347c76 100644 --- a/sys/pll_hdmi/pll_hdmi_0002.v +++ b/sys/pll_hdmi/pll_hdmi_0002.v @@ -1,241 +1,241 @@ -`timescale 1ns/10ps -module pll_hdmi_0002( - - // interface 'refclk' - input wire refclk, - - // interface 'reset' - input wire rst, - - // interface 'outclk0' - output wire outclk_0, - - // interface 'locked' - output wire locked, - - // interface 'reconfig_to_pll' - input wire [63:0] reconfig_to_pll, - - // interface 'reconfig_from_pll' - output wire [63:0] reconfig_from_pll -); - - altera_pll #( - .fractional_vco_multiplier("true"), - .reference_clock_frequency("50.0 MHz"), - .pll_fractional_cout(32), - .pll_dsm_out_sel("1st_order"), - .operation_mode("direct"), - .number_of_clocks(1), - .output_clock_frequency0("148.500000 MHz"), - .phase_shift0("0 ps"), - .duty_cycle0(50), - .output_clock_frequency1("0 MHz"), - .phase_shift1("0 ps"), - .duty_cycle1(50), - .output_clock_frequency2("0 MHz"), - .phase_shift2("0 ps"), - .duty_cycle2(50), - .output_clock_frequency3("0 MHz"), - .phase_shift3("0 ps"), - .duty_cycle3(50), - .output_clock_frequency4("0 MHz"), - .phase_shift4("0 ps"), - .duty_cycle4(50), - .output_clock_frequency5("0 MHz"), - .phase_shift5("0 ps"), - .duty_cycle5(50), - .output_clock_frequency6("0 MHz"), - .phase_shift6("0 ps"), - .duty_cycle6(50), - .output_clock_frequency7("0 MHz"), - .phase_shift7("0 ps"), - .duty_cycle7(50), - .output_clock_frequency8("0 MHz"), - .phase_shift8("0 ps"), - .duty_cycle8(50), - .output_clock_frequency9("0 MHz"), - .phase_shift9("0 ps"), - .duty_cycle9(50), - .output_clock_frequency10("0 MHz"), - .phase_shift10("0 ps"), - .duty_cycle10(50), - .output_clock_frequency11("0 MHz"), - .phase_shift11("0 ps"), - .duty_cycle11(50), - .output_clock_frequency12("0 MHz"), - .phase_shift12("0 ps"), - .duty_cycle12(50), - .output_clock_frequency13("0 MHz"), - .phase_shift13("0 ps"), - .duty_cycle13(50), - .output_clock_frequency14("0 MHz"), - .phase_shift14("0 ps"), - .duty_cycle14(50), - .output_clock_frequency15("0 MHz"), - .phase_shift15("0 ps"), - .duty_cycle15(50), - .output_clock_frequency16("0 MHz"), - .phase_shift16("0 ps"), - .duty_cycle16(50), - .output_clock_frequency17("0 MHz"), - .phase_shift17("0 ps"), - .duty_cycle17(50), - .pll_type("Cyclone V"), - .pll_subtype("Reconfigurable"), - .m_cnt_hi_div(4), - .m_cnt_lo_div(4), - .n_cnt_hi_div(256), - .n_cnt_lo_div(256), - .m_cnt_bypass_en("false"), - .n_cnt_bypass_en("true"), - .m_cnt_odd_div_duty_en("false"), - .n_cnt_odd_div_duty_en("false"), - .c_cnt_hi_div0(2), - .c_cnt_lo_div0(1), - .c_cnt_prst0(1), - .c_cnt_ph_mux_prst0(0), - .c_cnt_in_src0("ph_mux_clk"), - .c_cnt_bypass_en0("false"), - .c_cnt_odd_div_duty_en0("true"), - .c_cnt_hi_div1(1), - .c_cnt_lo_div1(1), - .c_cnt_prst1(1), - .c_cnt_ph_mux_prst1(0), - .c_cnt_in_src1("ph_mux_clk"), - .c_cnt_bypass_en1("true"), - .c_cnt_odd_div_duty_en1("false"), - .c_cnt_hi_div2(1), - .c_cnt_lo_div2(1), - .c_cnt_prst2(1), - .c_cnt_ph_mux_prst2(0), - .c_cnt_in_src2("ph_mux_clk"), - .c_cnt_bypass_en2("true"), - .c_cnt_odd_div_duty_en2("false"), - .c_cnt_hi_div3(1), - .c_cnt_lo_div3(1), - .c_cnt_prst3(1), - .c_cnt_ph_mux_prst3(0), - .c_cnt_in_src3("ph_mux_clk"), - .c_cnt_bypass_en3("true"), - .c_cnt_odd_div_duty_en3("false"), - .c_cnt_hi_div4(1), - .c_cnt_lo_div4(1), - .c_cnt_prst4(1), - .c_cnt_ph_mux_prst4(0), - .c_cnt_in_src4("ph_mux_clk"), - .c_cnt_bypass_en4("true"), - .c_cnt_odd_div_duty_en4("false"), - .c_cnt_hi_div5(1), - .c_cnt_lo_div5(1), - .c_cnt_prst5(1), - .c_cnt_ph_mux_prst5(0), - .c_cnt_in_src5("ph_mux_clk"), - .c_cnt_bypass_en5("true"), - .c_cnt_odd_div_duty_en5("false"), - .c_cnt_hi_div6(1), - .c_cnt_lo_div6(1), - .c_cnt_prst6(1), - .c_cnt_ph_mux_prst6(0), - .c_cnt_in_src6("ph_mux_clk"), - .c_cnt_bypass_en6("true"), - .c_cnt_odd_div_duty_en6("false"), - .c_cnt_hi_div7(1), - .c_cnt_lo_div7(1), - .c_cnt_prst7(1), - .c_cnt_ph_mux_prst7(0), - .c_cnt_in_src7("ph_mux_clk"), - .c_cnt_bypass_en7("true"), - .c_cnt_odd_div_duty_en7("false"), - .c_cnt_hi_div8(1), - .c_cnt_lo_div8(1), - .c_cnt_prst8(1), - .c_cnt_ph_mux_prst8(0), - .c_cnt_in_src8("ph_mux_clk"), - .c_cnt_bypass_en8("true"), - .c_cnt_odd_div_duty_en8("false"), - .c_cnt_hi_div9(1), - .c_cnt_lo_div9(1), - .c_cnt_prst9(1), - .c_cnt_ph_mux_prst9(0), - .c_cnt_in_src9("ph_mux_clk"), - .c_cnt_bypass_en9("true"), - .c_cnt_odd_div_duty_en9("false"), - .c_cnt_hi_div10(1), - .c_cnt_lo_div10(1), - .c_cnt_prst10(1), - .c_cnt_ph_mux_prst10(0), - .c_cnt_in_src10("ph_mux_clk"), - .c_cnt_bypass_en10("true"), - .c_cnt_odd_div_duty_en10("false"), - .c_cnt_hi_div11(1), - .c_cnt_lo_div11(1), - .c_cnt_prst11(1), - .c_cnt_ph_mux_prst11(0), - .c_cnt_in_src11("ph_mux_clk"), - .c_cnt_bypass_en11("true"), - .c_cnt_odd_div_duty_en11("false"), - .c_cnt_hi_div12(1), - .c_cnt_lo_div12(1), - .c_cnt_prst12(1), - .c_cnt_ph_mux_prst12(0), - .c_cnt_in_src12("ph_mux_clk"), - .c_cnt_bypass_en12("true"), - .c_cnt_odd_div_duty_en12("false"), - .c_cnt_hi_div13(1), - .c_cnt_lo_div13(1), - .c_cnt_prst13(1), - .c_cnt_ph_mux_prst13(0), - .c_cnt_in_src13("ph_mux_clk"), - .c_cnt_bypass_en13("true"), - .c_cnt_odd_div_duty_en13("false"), - .c_cnt_hi_div14(1), - .c_cnt_lo_div14(1), - .c_cnt_prst14(1), - .c_cnt_ph_mux_prst14(0), - .c_cnt_in_src14("ph_mux_clk"), - .c_cnt_bypass_en14("true"), - .c_cnt_odd_div_duty_en14("false"), - .c_cnt_hi_div15(1), - .c_cnt_lo_div15(1), - .c_cnt_prst15(1), - .c_cnt_ph_mux_prst15(0), - .c_cnt_in_src15("ph_mux_clk"), - .c_cnt_bypass_en15("true"), - .c_cnt_odd_div_duty_en15("false"), - .c_cnt_hi_div16(1), - .c_cnt_lo_div16(1), - .c_cnt_prst16(1), - .c_cnt_ph_mux_prst16(0), - .c_cnt_in_src16("ph_mux_clk"), - .c_cnt_bypass_en16("true"), - .c_cnt_odd_div_duty_en16("false"), - .c_cnt_hi_div17(1), - .c_cnt_lo_div17(1), - .c_cnt_prst17(1), - .c_cnt_ph_mux_prst17(0), - .c_cnt_in_src17("ph_mux_clk"), - .c_cnt_bypass_en17("true"), - .c_cnt_odd_div_duty_en17("false"), - .pll_vco_div(2), - .pll_cp_current(20), - .pll_bwctrl(4000), - .pll_output_clk_frequency("445.499999 MHz"), - .pll_fractional_division("3908420153"), - .mimic_fbclk_type("none"), - .pll_fbclk_mux_1("glb"), - .pll_fbclk_mux_2("m_cnt"), - .pll_m_cnt_in_src("ph_mux_clk"), - .pll_slf_rst("true") - ) altera_pll_i ( - .rst (rst), - .outclk ({outclk_0}), - .locked (locked), - .reconfig_to_pll (reconfig_to_pll), - .fboutclk ( ), - .fbclk (1'b0), - .refclk (refclk), - .reconfig_from_pll (reconfig_from_pll) - ); -endmodule - +`timescale 1ns/10ps +module pll_hdmi_0002( + + // interface 'refclk' + input wire refclk, + + // interface 'reset' + input wire rst, + + // interface 'outclk0' + output wire outclk_0, + + // interface 'locked' + output wire locked, + + // interface 'reconfig_to_pll' + input wire [63:0] reconfig_to_pll, + + // interface 'reconfig_from_pll' + output wire [63:0] reconfig_from_pll +); + + altera_pll #( + .fractional_vco_multiplier("true"), + .reference_clock_frequency("50.0 MHz"), + .pll_fractional_cout(32), + .pll_dsm_out_sel("1st_order"), + .operation_mode("direct"), + .number_of_clocks(1), + .output_clock_frequency0("148.500000 MHz"), + .phase_shift0("0 ps"), + .duty_cycle0(50), + .output_clock_frequency1("0 MHz"), + .phase_shift1("0 ps"), + .duty_cycle1(50), + .output_clock_frequency2("0 MHz"), + .phase_shift2("0 ps"), + .duty_cycle2(50), + .output_clock_frequency3("0 MHz"), + .phase_shift3("0 ps"), + .duty_cycle3(50), + .output_clock_frequency4("0 MHz"), + .phase_shift4("0 ps"), + .duty_cycle4(50), + .output_clock_frequency5("0 MHz"), + .phase_shift5("0 ps"), + .duty_cycle5(50), + .output_clock_frequency6("0 MHz"), + .phase_shift6("0 ps"), + .duty_cycle6(50), + .output_clock_frequency7("0 MHz"), + .phase_shift7("0 ps"), + .duty_cycle7(50), + .output_clock_frequency8("0 MHz"), + .phase_shift8("0 ps"), + .duty_cycle8(50), + .output_clock_frequency9("0 MHz"), + .phase_shift9("0 ps"), + .duty_cycle9(50), + .output_clock_frequency10("0 MHz"), + .phase_shift10("0 ps"), + .duty_cycle10(50), + .output_clock_frequency11("0 MHz"), + .phase_shift11("0 ps"), + .duty_cycle11(50), + .output_clock_frequency12("0 MHz"), + .phase_shift12("0 ps"), + .duty_cycle12(50), + .output_clock_frequency13("0 MHz"), + .phase_shift13("0 ps"), + .duty_cycle13(50), + .output_clock_frequency14("0 MHz"), + .phase_shift14("0 ps"), + .duty_cycle14(50), + .output_clock_frequency15("0 MHz"), + .phase_shift15("0 ps"), + .duty_cycle15(50), + .output_clock_frequency16("0 MHz"), + .phase_shift16("0 ps"), + .duty_cycle16(50), + .output_clock_frequency17("0 MHz"), + .phase_shift17("0 ps"), + .duty_cycle17(50), + .pll_type("Cyclone V"), + .pll_subtype("Reconfigurable"), + .m_cnt_hi_div(4), + .m_cnt_lo_div(4), + .n_cnt_hi_div(256), + .n_cnt_lo_div(256), + .m_cnt_bypass_en("false"), + .n_cnt_bypass_en("true"), + .m_cnt_odd_div_duty_en("false"), + .n_cnt_odd_div_duty_en("false"), + .c_cnt_hi_div0(2), + .c_cnt_lo_div0(1), + .c_cnt_prst0(1), + .c_cnt_ph_mux_prst0(0), + .c_cnt_in_src0("ph_mux_clk"), + .c_cnt_bypass_en0("false"), + .c_cnt_odd_div_duty_en0("true"), + .c_cnt_hi_div1(1), + .c_cnt_lo_div1(1), + .c_cnt_prst1(1), + .c_cnt_ph_mux_prst1(0), + .c_cnt_in_src1("ph_mux_clk"), + .c_cnt_bypass_en1("true"), + .c_cnt_odd_div_duty_en1("false"), + .c_cnt_hi_div2(1), + .c_cnt_lo_div2(1), + .c_cnt_prst2(1), + .c_cnt_ph_mux_prst2(0), + .c_cnt_in_src2("ph_mux_clk"), + .c_cnt_bypass_en2("true"), + .c_cnt_odd_div_duty_en2("false"), + .c_cnt_hi_div3(1), + .c_cnt_lo_div3(1), + .c_cnt_prst3(1), + .c_cnt_ph_mux_prst3(0), + .c_cnt_in_src3("ph_mux_clk"), + .c_cnt_bypass_en3("true"), + .c_cnt_odd_div_duty_en3("false"), + .c_cnt_hi_div4(1), + .c_cnt_lo_div4(1), + .c_cnt_prst4(1), + .c_cnt_ph_mux_prst4(0), + .c_cnt_in_src4("ph_mux_clk"), + .c_cnt_bypass_en4("true"), + .c_cnt_odd_div_duty_en4("false"), + .c_cnt_hi_div5(1), + .c_cnt_lo_div5(1), + .c_cnt_prst5(1), + .c_cnt_ph_mux_prst5(0), + .c_cnt_in_src5("ph_mux_clk"), + .c_cnt_bypass_en5("true"), + .c_cnt_odd_div_duty_en5("false"), + .c_cnt_hi_div6(1), + .c_cnt_lo_div6(1), + .c_cnt_prst6(1), + .c_cnt_ph_mux_prst6(0), + .c_cnt_in_src6("ph_mux_clk"), + .c_cnt_bypass_en6("true"), + .c_cnt_odd_div_duty_en6("false"), + .c_cnt_hi_div7(1), + .c_cnt_lo_div7(1), + .c_cnt_prst7(1), + .c_cnt_ph_mux_prst7(0), + .c_cnt_in_src7("ph_mux_clk"), + .c_cnt_bypass_en7("true"), + .c_cnt_odd_div_duty_en7("false"), + .c_cnt_hi_div8(1), + .c_cnt_lo_div8(1), + .c_cnt_prst8(1), + .c_cnt_ph_mux_prst8(0), + .c_cnt_in_src8("ph_mux_clk"), + .c_cnt_bypass_en8("true"), + .c_cnt_odd_div_duty_en8("false"), + .c_cnt_hi_div9(1), + .c_cnt_lo_div9(1), + .c_cnt_prst9(1), + .c_cnt_ph_mux_prst9(0), + .c_cnt_in_src9("ph_mux_clk"), + .c_cnt_bypass_en9("true"), + .c_cnt_odd_div_duty_en9("false"), + .c_cnt_hi_div10(1), + .c_cnt_lo_div10(1), + .c_cnt_prst10(1), + .c_cnt_ph_mux_prst10(0), + .c_cnt_in_src10("ph_mux_clk"), + .c_cnt_bypass_en10("true"), + .c_cnt_odd_div_duty_en10("false"), + .c_cnt_hi_div11(1), + .c_cnt_lo_div11(1), + .c_cnt_prst11(1), + .c_cnt_ph_mux_prst11(0), + .c_cnt_in_src11("ph_mux_clk"), + .c_cnt_bypass_en11("true"), + .c_cnt_odd_div_duty_en11("false"), + .c_cnt_hi_div12(1), + .c_cnt_lo_div12(1), + .c_cnt_prst12(1), + .c_cnt_ph_mux_prst12(0), + .c_cnt_in_src12("ph_mux_clk"), + .c_cnt_bypass_en12("true"), + .c_cnt_odd_div_duty_en12("false"), + .c_cnt_hi_div13(1), + .c_cnt_lo_div13(1), + .c_cnt_prst13(1), + .c_cnt_ph_mux_prst13(0), + .c_cnt_in_src13("ph_mux_clk"), + .c_cnt_bypass_en13("true"), + .c_cnt_odd_div_duty_en13("false"), + .c_cnt_hi_div14(1), + .c_cnt_lo_div14(1), + .c_cnt_prst14(1), + .c_cnt_ph_mux_prst14(0), + .c_cnt_in_src14("ph_mux_clk"), + .c_cnt_bypass_en14("true"), + .c_cnt_odd_div_duty_en14("false"), + .c_cnt_hi_div15(1), + .c_cnt_lo_div15(1), + .c_cnt_prst15(1), + .c_cnt_ph_mux_prst15(0), + .c_cnt_in_src15("ph_mux_clk"), + .c_cnt_bypass_en15("true"), + .c_cnt_odd_div_duty_en15("false"), + .c_cnt_hi_div16(1), + .c_cnt_lo_div16(1), + .c_cnt_prst16(1), + .c_cnt_ph_mux_prst16(0), + .c_cnt_in_src16("ph_mux_clk"), + .c_cnt_bypass_en16("true"), + .c_cnt_odd_div_duty_en16("false"), + .c_cnt_hi_div17(1), + .c_cnt_lo_div17(1), + .c_cnt_prst17(1), + .c_cnt_ph_mux_prst17(0), + .c_cnt_in_src17("ph_mux_clk"), + .c_cnt_bypass_en17("true"), + .c_cnt_odd_div_duty_en17("false"), + .pll_vco_div(2), + .pll_cp_current(20), + .pll_bwctrl(4000), + .pll_output_clk_frequency("445.499999 MHz"), + .pll_fractional_division("3908420153"), + .mimic_fbclk_type("none"), + .pll_fbclk_mux_1("glb"), + .pll_fbclk_mux_2("m_cnt"), + .pll_m_cnt_in_src("ph_mux_clk"), + .pll_slf_rst("true") + ) altera_pll_i ( + .rst (rst), + .outclk ({outclk_0}), + .locked (locked), + .reconfig_to_pll (reconfig_to_pll), + .fboutclk ( ), + .fbclk (1'b0), + .refclk (refclk), + .reconfig_from_pll (reconfig_from_pll) + ); +endmodule + diff --git a/sys/pll_q13.qip b/sys/pll_q13.qip index 13a7ed4..78e7e40 100644 --- a/sys/pll_q13.qip +++ b/sys/pll_q13.qip @@ -1,6 +1,4 @@ set_global_assignment -name QIP_FILE [file join $::quartus(qip_path) pll.13.qip ] set_global_assignment -name QIP_FILE [file join $::quartus(qip_path) pll_hdmi.13.qip ] set_global_assignment -name QIP_FILE [file join $::quartus(qip_path) pll_audio.13.qip ] -set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) pll_cfg.v ] -set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) pll_cfg/altera_pll_reconfig_core.v ] -set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) pll_cfg/altera_pll_reconfig_top.v ] +set_global_assignment -name QIP_FILE [file join $::quartus(qip_path) pll_cfg.qip ] diff --git a/sys/scandoubler.v b/sys/scandoubler.v index a1d5a44..81e7c3f 100644 --- a/sys/scandoubler.v +++ b/sys/scandoubler.v @@ -2,7 +2,7 @@ // scandoubler.v // // Copyright (c) 2015 Till Harbaum -// Copyright (c) 2017-2019 Sorgelig +// Copyright (c) 2017-2021 Alexey Melnikov // // This source file is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published @@ -23,23 +23,20 @@ module scandoubler #(parameter LENGTH, parameter HALF_DEPTH) ( // system interface input clk_vid, - input ce_pix, - output ce_pix_out, - input hq2x, // shifter video interface + input ce_pix, input hs_in, input vs_in, input hb_in, input vb_in, - input [DWIDTH:0] r_in, input [DWIDTH:0] g_in, input [DWIDTH:0] b_in, - input mono, // output interface + output ce_pix_out, output reg hs_out, output vs_out, output hb_out, @@ -109,7 +106,6 @@ Hq2x #(.LENGTH(LENGTH), .HALF_DEPTH(HALF_DEPTH)) Hq2x .ce_in(ce_x4i), .inputpixel({b_d,g_d,r_d}), - .mono(mono), .disable_hq2x(~hq2x), .reset_frame(vb_in), .reset_line(req_line_reset), diff --git a/sys/scanlines.v b/sys/scanlines.v index 59d29bd..43f890f 100644 --- a/sys/scanlines.v +++ b/sys/scanlines.v @@ -5,11 +5,11 @@ module scanlines #(parameter v2=0) input [1:0] scanlines, input [23:0] din, input hs_in,vs_in, - input de_in, + input de_in,ce_in, output reg [23:0] dout, output reg hs_out,vs_out, - output reg de_out + output reg de_out,ce_out ); reg [1:0] scanline; @@ -56,12 +56,13 @@ end always @(posedge clk) begin reg [23:0] dout1, dout2; - reg de1,de2,vs1,vs2,hs1,hs2; + reg de1,de2,vs1,vs2,hs1,hs2,ce1,ce2; dout <= dout2; dout2 <= dout1; dout1 <= d; vs_out <= vs2; vs2 <= vs1; vs1 <= vs_in; hs_out <= hs2; hs2 <= hs1; hs1 <= hs_in; de_out <= de2; de2 <= de1; de1 <= de_in; + ce_out <= ce2; ce2 <= ce1; ce1 <= ce_in; end endmodule diff --git a/sys/sd_card.sv b/sys/sd_card.sv index 734bd16..417d8d4 100644 --- a/sys/sd_card.sv +++ b/sys/sd_card.sv @@ -1,537 +1,463 @@ -// -// sd_card.v -// -// Copyright (c) 2014 Till Harbaum -// Copyright (c) 2015-2018 Sorgelig -// -// This source file is free software: you can redistribute it and/or modify -// it under the terms of the Lesser GNU General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This source file is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -// -// http://elm-chan.org/docs/mmc/mmc_e.html -// -///////////////////////////////////////////////////////////////////////// - -// -// Made module syncrhronous. Total code refactoring. (Sorgelig) -// clk_spi must be at least 4 x sck for proper work. - -module sd_card #(parameter WIDE = 0) -( - input clk_sys, - input reset, - - input sdhc, - - output [31:0] sd_lba, - output reg sd_rd, - output reg sd_wr, - input sd_ack, - input sd_ack_conf, - - input [AW:0] sd_buff_addr, - input [DW:0] sd_buff_dout, - output [DW:0] sd_buff_din, - input sd_buff_wr, - - // SPI interface - input clk_spi, - - input ss, - input sck, - input mosi, - output reg miso -); - -localparam AW = WIDE ? 7 : 8; -localparam DW = WIDE ? 15 : 7; - -assign sd_lba = sdhc ? lba : {9'd0, lba[31:9]}; - -wire[31:0] OCR = { 1'b1, sdhc, 30'd0 }; // bit30 = 1 -> high capaciry card (sdhc) // bit31 = 0 -> card power up finished -wire [7:0] READ_DATA_TOKEN = 8'hfe; -wire [7:0] WRITE_DATA_RESPONSE = 8'he5; - -// number of bytes to wait after a command before sending the reply -localparam NCR=3; - -localparam RD_STATE_IDLE = 0; -localparam RD_STATE_WAIT_IO = 1; -localparam RD_STATE_SEND_TOKEN = 2; -localparam RD_STATE_SEND_DATA = 3; -localparam RD_STATE_WAIT_M = 4; - -localparam WR_STATE_IDLE = 0; -localparam WR_STATE_EXP_DTOKEN = 1; -localparam WR_STATE_RECV_DATA = 2; -localparam WR_STATE_RECV_CRC0 = 3; -localparam WR_STATE_RECV_CRC1 = 4; -localparam WR_STATE_SEND_DRESP = 5; -localparam WR_STATE_BUSY = 6; - -sdbuf #(WIDE) buffer -( - .clock_a(clk_sys), - .address_a(sd_buff_addr), - .data_a(sd_buff_dout), - .wren_a(sd_ack & sd_buff_wr), - .q_a(sd_buff_din), - - .clock_b(clk_spi), - .address_b(buffer_ptr), - .data_b(buffer_din), - .wren_b(buffer_wr), - .q_b(buffer_dout) -); - -sdbuf #(WIDE) conf -( - .clock_a(clk_sys), - .address_a(sd_buff_addr), - .data_a(sd_buff_dout), - .wren_a(sd_ack_conf & sd_buff_wr), - - .clock_b(clk_spi), - .address_b(buffer_ptr), - .q_b(config_dout) -); - -reg [31:0] lba, new_lba; -reg [8:0] buffer_ptr; -reg [7:0] buffer_din; -wire [7:0] buffer_dout; -wire [7:0] config_dout; -reg buffer_wr; - -always @(posedge clk_spi) begin - reg [2:0] read_state; - reg [2:0] write_state; - reg [6:0] sbuf; - reg cmd55; - reg [7:0] cmd; - reg [2:0] bit_cnt; - reg [3:0] byte_cnt; - reg [7:0] reply; - reg [7:0] reply0, reply1, reply2, reply3; - reg [3:0] reply_len; - reg tx_finish; - reg rx_finish; - reg old_sck; - reg synced; - reg [5:0] ack; - reg io_ack; - reg [4:0] idle_cnt = 0; - reg [2:0] wait_m_cnt; - - if(buffer_wr & ~&buffer_ptr) buffer_ptr <= buffer_ptr + 1'd1; - buffer_wr <= 0; - - ack <= {ack[4:0], sd_ack}; - if(ack[5:4] == 2'b10) io_ack <= 1; - if(ack[5:4] == 2'b01) {sd_rd,sd_wr} <= 0; - - old_sck <= sck; - - if(~ss) idle_cnt <= 31; - else if(~old_sck && sck && idle_cnt) idle_cnt <= idle_cnt - 1'd1; - - if(reset || !idle_cnt) begin - bit_cnt <= 0; - byte_cnt <= 15; - synced <= 0; - miso <= 1; - sbuf <= 7'b1111111; - tx_finish <= 0; - rx_finish <= 0; - read_state <= RD_STATE_IDLE; - write_state <= WR_STATE_IDLE; - end - - if(old_sck & ~sck & ~ss) begin - tx_finish <= 0; - miso <= 1; // default: send 1's (busy/wait) - - if(byte_cnt == 5+NCR) begin - miso <= reply[~bit_cnt]; - - if(bit_cnt == 7) begin - // these three commands all have a reply_len of 0 and will thus - // not send more than a single reply byte - - // CMD9: SEND_CSD - // CMD10: SEND_CID - if((cmd == 'h49) | (cmd == 'h4a)) - read_state <= RD_STATE_SEND_TOKEN; // jump directly to data transmission - - // CMD17/CMD18 - if((cmd == 'h51) | (cmd == 'h52)) begin - io_ack <= 0; - read_state <= RD_STATE_WAIT_IO; // start waiting for data from io controller - lba <= new_lba; - sd_rd <= 1; // trigger request to io controller - end - end - end - else if((reply_len > 0) && (byte_cnt == 5+NCR+1)) miso <= reply0[~bit_cnt]; - else if((reply_len > 1) && (byte_cnt == 5+NCR+2)) miso <= reply1[~bit_cnt]; - else if((reply_len > 2) && (byte_cnt == 5+NCR+3)) miso <= reply2[~bit_cnt]; - else if((reply_len > 3) && (byte_cnt == 5+NCR+4)) miso <= reply3[~bit_cnt]; - else begin - if(byte_cnt > 5+NCR && read_state==RD_STATE_IDLE && write_state==WR_STATE_IDLE) tx_finish <= 1; - end - - // ---------- read state machine processing ------------- - - case(read_state) - RD_STATE_IDLE: ; // do nothing - - - // waiting for io controller to return data - RD_STATE_WAIT_IO: begin - if(io_ack & (bit_cnt == 7)) read_state <= RD_STATE_SEND_TOKEN; - end - - // send data token - RD_STATE_SEND_TOKEN: begin - miso <= READ_DATA_TOKEN[~bit_cnt]; - - if(bit_cnt == 7) begin - read_state <= RD_STATE_SEND_DATA; // next: send data - buffer_ptr <= 0; - if(cmd == 'h49) buffer_ptr <= 16; - end - end - - // send data - RD_STATE_SEND_DATA: begin - - miso <= ((cmd == 'h49) | (cmd == 'h4A)) ? config_dout[~bit_cnt] : buffer_dout[~bit_cnt]; - - if(bit_cnt == 7) begin - - // sent 512 sector data bytes? - if((cmd == 'h51) & &buffer_ptr) read_state <= RD_STATE_IDLE; - else if((cmd == 'h52) & &buffer_ptr) begin - read_state <= RD_STATE_WAIT_M; - wait_m_cnt <= 0; - end - - // sent 16 cid/csd data bytes? - else if(((cmd == 'h49) | (cmd == 'h4a)) & (&buffer_ptr[3:0])) read_state <= RD_STATE_IDLE; - - // not done yet -> trigger read of next data byte - else buffer_ptr <= buffer_ptr + 1'd1; - end - end - - RD_STATE_WAIT_M: begin - if(bit_cnt == 7) begin - wait_m_cnt <= wait_m_cnt + 1'd1; - if(&wait_m_cnt) begin - lba <= lba + 1; - io_ack <= 0; - sd_rd <= 1; - read_state <= RD_STATE_WAIT_IO; - end - end - end - endcase - - // ------------------ write support ---------------------- - // send write data response - if(write_state == WR_STATE_SEND_DRESP) miso <= WRITE_DATA_RESPONSE[~bit_cnt]; - - // busy after write until the io controller sends ack - if(write_state == WR_STATE_BUSY) miso <= 0; - end - - if(~old_sck & sck & ~ss) begin - - if(synced) bit_cnt <= bit_cnt + 1'd1; - - // assemble byte - if(bit_cnt != 7) begin - sbuf[6:0] <= { sbuf[5:0], mosi }; - - // resync while waiting for token - if(write_state==WR_STATE_EXP_DTOKEN) begin - if(cmd == 'h58) begin - if({sbuf,mosi} == 8'hfe) begin - write_state <= WR_STATE_RECV_DATA; - buffer_ptr <= 0; - bit_cnt <= 0; - end - end - else begin - if({sbuf,mosi} == 8'hfc) begin - write_state <= WR_STATE_RECV_DATA; - buffer_ptr <= 0; - bit_cnt <= 0; - end - if({sbuf,mosi} == 8'hfd) begin - write_state <= WR_STATE_IDLE; - rx_finish <= 1; - bit_cnt <= 0; - end - end - end - end - else begin - // finished reading one byte - // byte counter runs against 15 byte boundary - if(byte_cnt != 15) byte_cnt <= byte_cnt + 1'd1; - - // byte_cnt > 6 -> complete command received - // first byte of valid command is 01xxxxxx - // don't accept new commands once a write or read command has been accepted - if((byte_cnt > 5) & (write_state == WR_STATE_IDLE) & (read_state == RD_STATE_IDLE) && !rx_finish) begin - byte_cnt <= 0; - cmd <= { sbuf, mosi}; - - // set cmd55 flag if previous command was 55 - cmd55 <= (cmd == 'h77); - end - - if((byte_cnt > 5) & (read_state == RD_STATE_WAIT_M) && ({sbuf, mosi} == 8'h4c)) begin - byte_cnt <= 0; - rx_finish <= 0; - cmd <= {sbuf, mosi}; - read_state <= RD_STATE_IDLE; - end - - // parse additional command bytes - if(byte_cnt == 0) new_lba[31:24] <= { sbuf, mosi}; - if(byte_cnt == 1) new_lba[23:16] <= { sbuf, mosi}; - if(byte_cnt == 2) new_lba[15:8] <= { sbuf, mosi}; - if(byte_cnt == 3) new_lba[7:0] <= { sbuf, mosi}; - - // last byte (crc) received, evaluate - if(byte_cnt == 4) begin - - // default: - reply <= 4; // illegal command - reply_len <= 0; // no extra reply bytes - rx_finish <= 1; - - case(cmd) - // CMD0: GO_IDLE_STATE - 'h40: reply <= 1; // ok, busy - - // CMD1: SEND_OP_COND - 'h41: reply <= 0; // ok, not busy - - // CMD8: SEND_IF_COND (V2 only) - 'h48: begin - reply <= 1; // ok, busy - - reply0 <= 'h00; - reply1 <= 'h00; - reply2 <= 'h01; - reply3 <= 'hAA; - reply_len <= 4; - end - - // CMD9: SEND_CSD - 'h49: reply <= 0; // ok - - // CMD10: SEND_CID - 'h4a: reply <= 0; // ok - - // CMD12: STOP_TRANSMISSION - 'h4c: reply <= 0; // ok - - // CMD13: SEND_STATUS - 'h4d: begin - reply <= 'h00; // ok - reply0 <='h00; - reply_len <= 1; - end - - // CMD16: SET_BLOCKLEN - 'h50: begin - // we only support a block size of 512 - if(new_lba == 512) reply <= 0; // ok - else reply <= 'h40; // parmeter error - end - - // CMD17: READ_SINGLE_BLOCK - 'h51: reply <= 0; // ok - - // CMD18: READ_MULTIPLE - 'h52: reply <= 0; // ok - // ACMD23: SET_WR_BLK_ERASE_COUNT - 'h57: reply <= 0; //ok - - // CMD24: WRITE_BLOCK - 'h58, - // CMD25: WRITE_MULTIPLE - 'h59: begin - reply <= 0; // ok - write_state <= WR_STATE_EXP_DTOKEN; // expect data token - rx_finish <=0; - lba <= new_lba; - end - - // ACMD41: APP_SEND_OP_COND - 'h69: if(cmd55) reply <= 0; // ok, not busy - - // CMD55: APP_COND - 'h77: reply <= 1; // ok, busy - - // CMD58: READ_OCR - 'h7a: begin - reply <= 0; // ok - - reply0 <= OCR[31:24]; // bit 30 = 1 -> high capacity card - reply1 <= OCR[23:16]; - reply2 <= OCR[15:8]; - reply3 <= OCR[7:0]; - reply_len <= 4; - end - - // CMD59: CRC_ON_OFF - 'h7b: reply <= 0; // ok - endcase - end - - // ---------- handle write ----------- - case(write_state) - // do nothing in idle state - WR_STATE_IDLE: ; - - // waiting for data token - WR_STATE_EXP_DTOKEN: begin - buffer_ptr <= 0; - if(cmd == 'h58) begin - if({sbuf,mosi} == 8'hfe) write_state <= WR_STATE_RECV_DATA; - end - else begin - if({sbuf,mosi} == 8'hfc) write_state <= WR_STATE_RECV_DATA; - if({sbuf,mosi} == 8'hfd) begin - write_state <= WR_STATE_IDLE; - rx_finish <= 1; - end - end - end - - // transfer 512 bytes - WR_STATE_RECV_DATA: begin - // push one byte into local buffer - buffer_wr <= 1; - buffer_din <= {sbuf, mosi}; - - // all bytes written? - if(&buffer_ptr) write_state <= WR_STATE_RECV_CRC0; - end - - // transfer 1st crc byte - WR_STATE_RECV_CRC0: - write_state <= WR_STATE_RECV_CRC1; - - // transfer 2nd crc byte - WR_STATE_RECV_CRC1: - write_state <= WR_STATE_SEND_DRESP; - - // send data response - WR_STATE_SEND_DRESP: begin - write_state <= WR_STATE_BUSY; - io_ack <= 0; - sd_wr <= 1; - end - - // wait for io controller to accept data - WR_STATE_BUSY: - if(io_ack) begin - if(cmd == 'h59) begin - write_state <= WR_STATE_EXP_DTOKEN; - lba <= lba + 1; - end - else begin - write_state <= WR_STATE_IDLE; - rx_finish <= 1; - end - end - endcase - end - - // wait for first 0 bit until start counting bits - if(!synced && !mosi) begin - synced <= 1; - bit_cnt <= 1; // byte assembly prepare for next time loop - sbuf <= 7'b1111110; // byte assembly prepare for next time loop - rx_finish<= 0; - end else if (synced && tx_finish && rx_finish ) begin - synced <= 0; - bit_cnt <= 0; - rx_finish<= 0; - end - end -end - -endmodule - -module sdbuf #(parameter WIDE) -( - input clock_a, - input [AW:0] address_a, - input [DW:0] data_a, - input wren_a, - output reg [DW:0] q_a, - - input clock_b, - input [8:0] address_b, - input [7:0] data_b, - input wren_b, - output reg [7:0] q_b -); - -localparam AW = WIDE ? 7 : 8; -localparam DW = WIDE ? 15 : 7; - -always@(posedge clock_a) begin - if(wren_a) begin - ram[address_a] <= data_a; - q_a <= data_a; - end - else begin - q_a <= ram[address_a]; - end -end - -generate - if(WIDE) begin - reg [1:0][7:0] ram[1<<8]; - always@(posedge clock_b) begin - if(wren_b) begin - ram[address_b[8:1]][address_b[0]] <= data_b; - q_b <= data_b; - end - else begin - q_b <= ram[address_b[8:1]][address_b[0]]; - end - end - end - else begin - reg [7:0] ram[1<<9]; - always@(posedge clock_b) begin - if(wren_b) begin - ram[address_b] <= data_b; - q_b <= data_b; - end - else begin - q_b <= ram[address_b]; - end - end - end -endgenerate - -endmodule +// +// sd_card.v +// +// Copyright (c) 2014 Till Harbaum +// Copyright (c) 2015-2018 Sorgelig +// +// This source file is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This source file is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// http://elm-chan.org/docs/mmc/mmc_e.html +// +///////////////////////////////////////////////////////////////////////// + +// +// Made module syncrhronous. Total code refactoring. (Sorgelig) +// clk_spi must be at least 2 x sck for proper work. + +module sd_card #(parameter WIDE = 0, OCTAL=0) +( + input clk_sys, + input reset, + + input sdhc, + input img_mounted, + input [63:0] img_size, + + output reg [31:0] sd_lba, + output reg sd_rd, + output reg sd_wr, + input sd_ack, + + input [AW:0] sd_buff_addr, + input [DW:0] sd_buff_dout, + output [DW:0] sd_buff_din, + input sd_buff_wr, + + // SPI interface + input clk_spi, + + input ss, + input sck, + input [SW:0] mosi, + output reg [SW:0] miso +); + +localparam AW = WIDE ? 7 : 8; +localparam DW = WIDE ? 15 : 7; +localparam SZ = OCTAL ? 8 : 1; +localparam SW = SZ-1; + +localparam DATA_TOKEN_CMD25 = 8'hfc; +localparam STOP_TRAN = 8'hfd; +localparam DATA_TOKEN = 8'hfe; +localparam WRITE_DATA_RESPONSE = 8'he5; + +// number of bytes to wait after a command before sending the reply +localparam NCR = 5+3; // 5 bytes are required (command length) + +localparam RD_STATE_IDLE = 0; +localparam RD_STATE_START = 1; +localparam RD_STATE_WAIT_IO = 2; +localparam RD_STATE_SEND_TOKEN = 3; +localparam RD_STATE_SEND_DATA = 4; +localparam RD_STATE_WAIT_M = 5; + +localparam WR_STATE_IDLE = 0; +localparam WR_STATE_EXP_DTOKEN = 1; +localparam WR_STATE_RECV_DATA = 2; +localparam WR_STATE_RECV_CRC0 = 3; +localparam WR_STATE_RECV_CRC1 = 4; +localparam WR_STATE_SEND_DRESP = 5; +localparam WR_STATE_BUSY = 6; + +localparam PREF_STATE_IDLE = 0; +localparam PREF_STATE_RD = 1; +localparam PREF_STATE_FINISH = 2; + +altsyncram sdbuf +( + .clock0 (clk_sys), + .address_a ({sd_buf,sd_buff_addr}), + .data_a (sd_buff_dout), + .wren_a (sd_ack & sd_buff_wr), + .q_a (sd_buff_din), + + .clock1 (clk_spi), + .address_b ({spi_buf,buffer_ptr}), + .data_b (buffer_din), + .wren_b (buffer_wr), + .q_b (buffer_dout), + + .aclr0(1'b0), + .aclr1(1'b0), + .addressstall_a(1'b0), + .addressstall_b(1'b0), + .byteena_a(1'b1), + .byteena_b(1'b1), + .clocken0(1'b1), + .clocken1(1'b1), + .clocken2(1'b1), + .clocken3(1'b1), + .eccstatus(), + .rden_a(1'b1), + .rden_b(1'b1) +); +defparam + sdbuf.numwords_a = 1<<(AW+3), + sdbuf.widthad_a = AW+3, + sdbuf.width_a = DW+1, + sdbuf.numwords_b = 2048, + sdbuf.widthad_b = 11, + sdbuf.width_b = 8, + sdbuf.address_reg_b = "CLOCK1", + sdbuf.clock_enable_input_a = "BYPASS", + sdbuf.clock_enable_input_b = "BYPASS", + sdbuf.clock_enable_output_a = "BYPASS", + sdbuf.clock_enable_output_b = "BYPASS", + sdbuf.indata_reg_b = "CLOCK1", + sdbuf.intended_device_family = "Cyclone V", + sdbuf.lpm_type = "altsyncram", + sdbuf.operation_mode = "BIDIR_DUAL_PORT", + sdbuf.outdata_aclr_a = "NONE", + sdbuf.outdata_aclr_b = "NONE", + sdbuf.outdata_reg_a = "UNREGISTERED", + sdbuf.outdata_reg_b = "UNREGISTERED", + sdbuf.power_up_uninitialized = "FALSE", + sdbuf.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ", + sdbuf.read_during_write_mode_port_b = "NEW_DATA_NO_NBE_READ", + sdbuf.width_byteena_a = 1, + sdbuf.width_byteena_b = 1, + sdbuf.wrcontrol_wraddress_reg_b = "CLOCK1"; + +reg [26:0] csd_size; +reg csd_sdhc; +always @(posedge clk_sys) begin + if (img_mounted) begin + csd_sdhc <= sdhc; + if (sdhc) begin + csd_size[0] <= 0; + csd_size[22:1] <= img_size[40:19]; // in 512K units + csd_size[26:23] <= 0; + end + else begin + csd_size[2:0] <= 7; // C_SIZE_MULT + csd_size[14:3] <= 12'b101101101101; + csd_size[26:15] <= img_size[29:18]; // in 256K units ((2**(C_SIZE_MULT+2))*512) + end + end +end + +wire [127:0] CSD = {1'b0,csd_sdhc,6'h00,8'h0e,8'h00,8'h32,8'h5b,8'h59,6'h00,csd_size,7'h7f,8'h80,8'h0a,8'h40,8'h40,8'hf1}; +wire [127:0] CID = {8'hcd,8'hc7,8'h00,8'h93,8'h6f,8'h2f,8'h73,8'h00,8'h00,8'h44,8'h32,8'h38,8'h34,8'h00,8'h00,8'h3e}; + +reg [8:0] buffer_ptr; +reg [7:0] buffer_din; +wire [7:0] buffer_dout; +reg buffer_wr; + +reg [1:0] sd_buf, spi_buf; + +reg [6:0] sbuf; +reg [2:0] bit_cnt; + +wire last_bit = &bit_cnt || OCTAL; +wire [7:0] ibuf = OCTAL ? mosi : {sbuf,mosi[0]}; + +always @(posedge clk_spi) begin + reg [2:0] read_state; + reg [2:0] write_state; + reg [1:0] pref_state; + reg [5:0] cmd; + reg cmd55; + reg [39:0] reply; + reg [3:0] byte_cnt; + reg old_sck; + reg [2:0] ack; + reg [2:0] wait_m_cnt; + reg [31:0] arg; + + ack[1:0] <= {ack[0],sd_ack}; + if(ack[1] == ack[0]) ack[2] <= ack[1]; + + if(~ack[2] & ack[1]) {sd_rd,sd_wr} <= 0; + if( ack[2] & ~ack[1]) begin + sd_buf <= sd_buf + 1'd1; + sd_lba <= sd_lba + 1; + end + + buffer_wr <= 0; + + if(reset) begin + bit_cnt <= 0; + byte_cnt <= '1; + miso <= '1; + cmd <= 0; + sd_wr <= 0; + sd_rd <= 0; + read_state <= RD_STATE_IDLE; + write_state <= WR_STATE_IDLE; + pref_state <= PREF_STATE_IDLE; + end + else begin + + if(buffer_wr) begin + if(~&buffer_ptr) buffer_ptr <= buffer_ptr + 1'd1; + else begin + spi_buf <= spi_buf + 1'd1; + sd_wr <= 1; + end + end + + case(pref_state) + PREF_STATE_IDLE: + if(((sd_buf - spi_buf) <= 1) && (read_state != RD_STATE_IDLE) && (cmd == 17 || cmd == 18)) begin + sd_rd <= 1; + pref_state <= PREF_STATE_RD; + end + + PREF_STATE_RD: + if(read_state == RD_STATE_IDLE) begin + pref_state <= PREF_STATE_IDLE; + end + else if(ack[2] & ~ack[1]) begin + pref_state <= (cmd == 18) ? PREF_STATE_IDLE : PREF_STATE_FINISH; + end + + PREF_STATE_FINISH: + if(read_state == RD_STATE_IDLE) begin + pref_state <= PREF_STATE_IDLE; + end + endcase + + old_sck <= sck; + if(ss) begin + bit_cnt <= 0; + byte_cnt <= '1; + miso <= '1; + end + else if(old_sck & ~sck) begin + miso <= '1; // default: send 1's (busy/wait) + if(byte_cnt >= NCR) {miso,reply} <= {reply, {SZ{1'b1}}}; + + // ---------- read state machine processing ------------- + case(read_state) + RD_STATE_IDLE: ; + + RD_STATE_START: begin + if(byte_cnt == NCR && last_bit) read_state <= (cmd == 9 || cmd == 10) ? RD_STATE_SEND_TOKEN : RD_STATE_WAIT_IO; + end + + // waiting for io controller to return data + RD_STATE_WAIT_IO: begin + if(sd_buf != spi_buf && last_bit) read_state <= RD_STATE_SEND_TOKEN; + end + + // send data token + RD_STATE_SEND_TOKEN: begin + miso <= DATA_TOKEN[~bit_cnt -:SZ]; + if(last_bit) begin + read_state <= RD_STATE_SEND_DATA; // next: send data + buffer_ptr <= 0; + end + end + + // send data + RD_STATE_SEND_DATA: begin + + miso <= (cmd == 9) ? CSD[{buffer_ptr[3:0],~bit_cnt} -:SZ] : (cmd == 10) ? CID[{buffer_ptr[3:0],~bit_cnt} -:SZ] : buffer_dout[~bit_cnt -:SZ]; + + if(last_bit) begin + + // sent 512 sector data bytes? + if(cmd == 17 && &buffer_ptr) read_state <= RD_STATE_IDLE; + else if(cmd == 18 && &buffer_ptr) begin + read_state <= RD_STATE_WAIT_M; + wait_m_cnt <= 0; + end + + // sent 16 cid/csd data bytes? + else if((cmd == 9 || cmd == 10) && &buffer_ptr[3:0]) read_state <= RD_STATE_IDLE; + + // not done yet -> trigger read of next data byte + else buffer_ptr <= buffer_ptr + 1'd1; + end + end + + RD_STATE_WAIT_M: begin + if(last_bit) begin + wait_m_cnt <= wait_m_cnt + 1'd1; + if(&wait_m_cnt) begin + spi_buf <= spi_buf + 1'd1; + read_state <= RD_STATE_WAIT_IO; + end + end + end + endcase + + // ------------------ write support ---------------------- + // send write data response + if(write_state == WR_STATE_SEND_DRESP) miso <= WRITE_DATA_RESPONSE[~bit_cnt -:SZ]; + + // busy after write until the io controller sends ack + if(write_state == WR_STATE_BUSY) miso <= 0; + end + else if(~old_sck & sck) begin + + sbuf[6:0] <= {sbuf[5:0],mosi[0]}; + bit_cnt <= bit_cnt + SZ[2:0]; + + if(last_bit) begin + // finished reading one byte + // byte counter runs against 15 byte boundary + if(~&byte_cnt) byte_cnt <= byte_cnt + 1'd1; + + // byte_cnt > 6 -> complete command received + // first byte of valid command is 01xxxxxx + // don't accept new commands once a write or read command has been accepted + if(byte_cnt > 5 && + ((write_state == WR_STATE_IDLE && read_state == RD_STATE_IDLE && ibuf[7:6] == 1) || + (read_state != RD_STATE_IDLE && ibuf == 8'h4c))) begin + byte_cnt <= 0; + cmd <= ibuf[5:0]; + cmd55 <= (cmd == 55); // set cmd55 flag if previous command was 55 + if(ibuf[5:0] == 12) read_state <= RD_STATE_IDLE; + end + + // parse additional command bytes + if(byte_cnt == 0) arg[31:24] <= ibuf; + if(byte_cnt == 1) arg[23:16] <= ibuf; + if(byte_cnt == 2) arg[15:8] <= ibuf; + if(byte_cnt == 3) arg[7:0] <= ibuf; + + // last byte (crc) received, evaluate + if(byte_cnt == 4) begin + + // default: + reply <= 40'h04FFFFFFFF; // illegal command + + case(cmd) + // CMD0: GO_IDLE_STATE + 0: reply[39:32] <= 1; // ok, busy + + // CMD1: SEND_OP_COND + 1: reply[39:32] <= 0; + + // CMD8: SEND_IF_COND (V2 only) + 8: reply <= 40'h01000001AA; // ok, busy + + // CMD9: SEND_CSD + 9, + // CMD10: SEND_CID + 10: begin + reply[39:32] <= 0; + read_state <= RD_STATE_START; + end + + // CMD12: STOP_TRANSMISSION + 12: reply[39:32] <= 0; + + // CMD13: SEND_STATUS + 13: reply[39:24] <= 16'h0000; + + // CMD16: SET_BLOCKLEN + 16: reply[39:32] <= (arg == 512) ? 8'h00 : 8'h40; // we only support a block size of 512 + + // CMD17: READ_SINGLE_BLOCK + 17, + // CMD18: READ_MULTIPLE + 18: begin + reply[39:32] <= 0; + read_state <= RD_STATE_START; + spi_buf <= 0; + sd_buf <= 0; + sd_lba <= csd_sdhc ? arg : {9'd0, arg[31:9]}; + end + + // ACMD23: SET_WR_BLK_ERASE_COUNT + 23: reply[39:32] <= 0; + + // CMD24: WRITE_BLOCK + 24, + // CMD25: WRITE_MULTIPLE + 25: begin + reply[39:32] <= 0; + write_state <= WR_STATE_EXP_DTOKEN; // expect data token + spi_buf <= 0; + sd_buf <= 0; + sd_lba <= csd_sdhc ? arg : {9'd0, arg[31:9]}; + end + + // ACMD41: APP_SEND_OP_COND + 41: if(cmd55) reply[39:32] <= 0; // ok, not busy + + // CMD55: APP_COND + 55: reply[39:32] <= 1; // ok, busy + + // CMD58: READ_OCR + 58: reply <= { 8'h00, 1'b1, csd_sdhc, 30'd0 }; // bit 30 = 1 -> high capacity card + + // CMD59: CRC_ON_OFF + 59: reply[39:32] <= 0; + endcase + end + + // ---------- handle write ----------- + case(write_state) + // do nothing in idle state + WR_STATE_IDLE: ; + + // waiting for data token + WR_STATE_EXP_DTOKEN: begin + buffer_ptr <= 0; + if(cmd == 24) begin + if(ibuf == DATA_TOKEN) write_state <= WR_STATE_RECV_DATA; + end + else begin + if(ibuf == DATA_TOKEN_CMD25) write_state <= WR_STATE_RECV_DATA; + if(ibuf == STOP_TRAN) write_state <= WR_STATE_IDLE; + end + end + + // transfer 512 bytes + WR_STATE_RECV_DATA: begin + // push one byte into local buffer + buffer_wr <= 1; + buffer_din <= ibuf; + + // all bytes written? + if(&buffer_ptr) write_state <= WR_STATE_RECV_CRC0; + end + + // transfer 1st crc byte + WR_STATE_RECV_CRC0: + write_state <= WR_STATE_RECV_CRC1; + + // transfer 2nd crc byte + WR_STATE_RECV_CRC1: + write_state <= WR_STATE_SEND_DRESP; + + // send data response + WR_STATE_SEND_DRESP: + write_state <= WR_STATE_BUSY; + + // wait for io controller to accept data + WR_STATE_BUSY: + if(spi_buf == sd_buf) write_state <= (cmd == 25) ? WR_STATE_EXP_DTOKEN : WR_STATE_IDLE; + endcase + end + end + end +end + +endmodule diff --git a/sys/shadowmask.sv b/sys/shadowmask.sv new file mode 100644 index 0000000..572679c --- /dev/null +++ b/sys/shadowmask.sv @@ -0,0 +1,136 @@ +module shadowmask +( + input clk, + input clk_sys, + + input cmd_wr, + input [15:0] cmd_in, + + input [23:0] din, + input hs_in,vs_in, + input de_in, + input brd_in, + input enable, + + output reg [23:0] dout, + output reg hs_out,vs_out, + output reg de_out +); + + +reg [4:0] hmax; +reg [4:0] vmax; +reg [7:0] mask_idx; +reg mask_2x; +reg mask_rotate; +reg mask_enable; +reg [10:0] mask_lut[256]; + +always @(posedge clk) begin + reg [4:0] hcount; + reg [4:0] vcount; + reg [3:0] hindex; + reg [3:0] vindex; + reg [4:0] hmax2; + reg [4:0] vmax2; + reg [11:0] pcnt,pde; + reg old_hs, old_vs, old_brd; + reg next_v; + + old_hs <= hs_in; + old_vs <= vs_in; + old_brd<= brd_in; + + // hcount and vcount counts pixel rows and columns + // hindex and vindex half the value of the counters for double size patterns + // hindex2, vindex2 swap the h and v counters for drawing rotated masks + hindex <= mask_2x ? hcount[4:1] : hcount[3:0]; + vindex <= mask_2x ? vcount[4:1] : vcount[3:0]; + mask_idx <= mask_rotate ? {hindex,vindex} : {vindex,hindex}; + + // hmax and vmax store these sizes + // hmax2 and vmax2 swap the values to handle rotation + hmax2 <= ((mask_rotate ? vmax : hmax) << mask_2x) | mask_2x; + vmax2 <= ((mask_rotate ? hmax : vmax) << mask_2x) | mask_2x; + + pcnt <= pcnt+1'd1; + if(old_brd && ~brd_in) pde <= pcnt-4'd3; + + hcount <= hcount+1'b1; + if(hcount == hmax2 || pde == pcnt) hcount <= 0; + + if(~old_brd && brd_in) next_v <= 1; + if(old_vs && ~vs_in) vcount <= 0; + if(old_hs && ~hs_in) begin + vcount <= vcount + next_v; + next_v <= 0; + pcnt <= 0; + if (vcount == vmax2) vcount <= 0; + end +end + +reg [4:0] r_mul, g_mul, b_mul; // 1.4 fixed point multipliers +always @(posedge clk) begin + reg [10:0] lut; + + lut <= mask_lut[mask_idx]; + + r_mul <= 5'b10000; g_mul <= 5'b10000; b_mul <= 5'b10000; // default 100% to all channels + if (mask_enable) begin + r_mul <= lut[10] ? {1'b1,lut[7:4]} : {1'b0,lut[3:0]}; + g_mul <= lut[9] ? {1'b1,lut[7:4]} : {1'b0,lut[3:0]}; + b_mul <= lut[8] ? {1'b1,lut[7:4]} : {1'b0,lut[3:0]}; + end +end + +always @(posedge clk) begin + reg [11:0] vid; + reg [7:0] r1, g1, b1; + reg [7:0] r2, g2, b2; + reg [7:0] r3_x, g3_x, b3_x; // 6.25% + 12.5% + reg [8:0] r3_y, g3_y, b3_y; // 25% + 50% + 100% + reg [8:0] r4, g4, b4; + + // C1 - data input + {r1,g1,b1} <= din; + vid <= {vid[8:0],vs_in, hs_in, de_in}; + + // C2 - relax timings + {r2,g2,b2} <= {r1,g1,b1}; + + // C3 - perform multiplications + r3_x <= ({4{r_mul[0]}} & r2[7:4]) + ({8{r_mul[1]}} & r2[7:3]); + r3_y <= ({6{r_mul[2]}} & r2[7:2]) + ({7{r_mul[3]}} & r2[7:1]) + ({9{r_mul[4]}} & r2[7:0]); + g3_x <= ({4{g_mul[0]}} & g2[7:4]) + ({8{g_mul[1]}} & g2[7:3]); + g3_y <= ({6{g_mul[2]}} & g2[7:2]) + ({7{g_mul[3]}} & g2[7:1]) + ({9{g_mul[4]}} & g2[7:0]); + b3_x <= ({4{b_mul[0]}} & b2[7:4]) + ({8{b_mul[1]}} & b2[7:3]); + b3_y <= ({6{b_mul[2]}} & b2[7:2]) + ({7{b_mul[3]}} & b2[7:1]) + ({9{b_mul[4]}} & b2[7:0]); + + // C4 - combine results + r4 <= r3_x + r3_y; + g4 <= g3_x + g3_y; + b4 <= b3_x + b3_y; + + // C5 - clamp and output + dout <= {{8{r4[8]}} | r4[7:0], {8{g4[8]}} | g4[7:0], {8{b4[8]}} | b4[7:0]}; + {vs_out,hs_out,de_out} <= vid[11:9]; +end + +// clock in mask commands +always @(posedge clk_sys) begin + reg m_enable; + reg [7:0] idx; + + if (cmd_wr) begin + case(cmd_in[15:13]) + 3'b000: begin {m_enable, mask_rotate, mask_2x} <= cmd_in[3:1]; idx <= 0; end + 3'b001: vmax <= cmd_in[3:0]; + 3'b010: hmax <= cmd_in[3:0]; + 3'b011: begin mask_lut[idx] <= cmd_in[10:0]; idx <= idx + 1'd1; end + endcase + end + + mask_enable <= m_enable & enable; +end + +endmodule diff --git a/sys/spdif.v b/sys/spdif.v index d50c2da..eee2b08 100644 --- a/sys/spdif.v +++ b/sys/spdif.v @@ -67,6 +67,8 @@ reg spdif_out_q; reg [5:0] parity_count_q; +reg channel_status_bit_q; + //----------------------------------------------------------------- // Subframe Counter //----------------------------------------------------------------- @@ -142,19 +144,20 @@ assign subframe_w[28] = 1'b0; // Valid assign subframe_w[29] = 1'b0; // Timeslots 30 = Channel status bit -assign subframe_w[30] = 1'b0; +assign subframe_w[30] = channel_status_bit_q ; //was constant 1'b0 enabling copy-bit; // Timeslots 31 = Even Parity bit (31:4) assign subframe_w[31] = 1'b0; //----------------------------------------------------------------- -// Preamble +// Preamble and Channel status bit //----------------------------------------------------------------- -localparam PREAMBLE_Z = 8'b00010111; -localparam PREAMBLE_Y = 8'b00100111; -localparam PREAMBLE_X = 8'b01000111; +localparam PREAMBLE_Z = 8'b00010111; // "B" channel A data at start of block +localparam PREAMBLE_Y = 8'b00100111; // "W" channel B data +localparam PREAMBLE_X = 8'b01000111; // "M" channel A data not at start of block reg [7:0] preamble_r; +reg channel_status_bit_r; always @ * begin @@ -168,13 +171,30 @@ begin // Left Channel (but not start of block)? else preamble_r = PREAMBLE_X; // X(M) + + if (subframe_count_q[8:1] == 8'd2) // frame 2 => subframes 4 and 5 => 0 = copy inhibited, 1 = copy permitted + channel_status_bit_r = 1'b1; + else if (subframe_count_q[8:1] == 8'd15) // frame 15 => 0 = no indication, 1 = original media + channel_status_bit_r = 1'b1; + else if (subframe_count_q[8:1] == 8'd25) // frame 24 to 27 => sample frequency, 0100 = 48kHz, 0000 = 44kHz (l2r) + channel_status_bit_r = 1'b1; + else + channel_status_bit_r = 1'b0; // everything else defaults to 0 end always @ (posedge rst_i or posedge clk_i ) -if (rst_i == 1'b1) - preamble_q <= 8'h00; -else if (load_subframe_q) - preamble_q <= preamble_r; +begin + if (rst_i == 1'b1) + begin + preamble_q <= 8'h00; + channel_status_bit_q <= 1'b0; + end + else if (load_subframe_q) + begin + preamble_q <= preamble_r; + channel_status_bit_q <= channel_status_bit_r; + end +end //----------------------------------------------------------------- // Parity Counter diff --git a/sys/sys.qip b/sys/sys.qip index 9a28ae0..ced8e8b 100644 --- a/sys/sys.qip +++ b/sys/sys.qip @@ -3,15 +3,20 @@ set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) s set_global_assignment -name SDC_FILE [file join $::quartus(qip_path) sys_top.sdc ] set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) ascal.vhd ] set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) pll_hdmi_adj.vhd ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) math.sv ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) hq2x.sv ] set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) scandoubler.v ] set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) scanlines.v ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) shadowmask.sv ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) video_cleaner.sv ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) gamma_corr.sv ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) video_mixer.sv ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) video_freak.sv ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) video_freezer.sv ] set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) arcade_video.v ] set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) osd.v ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) vga_out.sv ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) yc_out.sv ] set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) i2c.v ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) alsa.sv ] set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) i2s.v ] @@ -20,9 +25,10 @@ set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) a set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) iir_filter.v ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) ltc2308.sv ] set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) sigma_delta_dac.v ] -set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) hdmi_config.sv ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) mt32pi.sv ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) mcp23009.sv ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) f2sdram_safe_terminator.sv ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) ddr_svc.sv ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) sysmem.sv ] set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) sd_card.sv ] -set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) hps_io.v ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) hps_io.sv ] diff --git a/sys/sys.tcl b/sys/sys.tcl index 6e2b24b..93b6247 100644 --- a/sys/sys.tcl +++ b/sys/sys.tcl @@ -1,226 +1,220 @@ -set_global_assignment -name FAMILY "Cyclone V" -set_global_assignment -name DEVICE 5CSEBA6U23I7 -set_global_assignment -name DEVICE_FILTER_PACKAGE UFBGA -set_global_assignment -name DEVICE_FILTER_PIN_COUNT 672 -set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 7 - -#============================================================ -# ADC -#============================================================ -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_CONVST -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SCK -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SDI -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SDO -set_location_assignment PIN_U9 -to ADC_CONVST -set_location_assignment PIN_V10 -to ADC_SCK -set_location_assignment PIN_AC4 -to ADC_SDI -set_location_assignment PIN_AD4 -to ADC_SDO - -#============================================================ -# ARDUINO -#============================================================ -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[*] -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ARDUINO_IO[*] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to ARDUINO_IO[*] - -#============================================================ -# I2C LEDS/BUTTONS -#============================================================ -set_location_assignment PIN_U14 -to IO_SCL -set_location_assignment PIN_AG9 -to IO_SDA -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to IO_S* -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to IO_S* -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to IO_S* - -#============================================================ -# USER PORT -#============================================================ -set_location_assignment PIN_AF17 -to USER_IO[6] -set_location_assignment PIN_AF15 -to USER_IO[5] -set_location_assignment PIN_AG16 -to USER_IO[4] -set_location_assignment PIN_AH11 -to USER_IO[3] -set_location_assignment PIN_AH12 -to USER_IO[2] -set_location_assignment PIN_AH9 -to USER_IO[1] -set_location_assignment PIN_AG11 -to USER_IO[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to USER_IO[*] -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to USER_IO[*] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to USER_IO[*] - -#============================================================ -# SDIO_CD or SPDIF_OUT -#============================================================ -set_location_assignment PIN_AH7 -to SDCD_SPDIF -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDCD_SPDIF -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SDCD_SPDIF -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SDCD_SPDIF - -#============================================================ -# SDRAM -#============================================================ -set_location_assignment PIN_Y11 -to SDRAM_A[0] -set_location_assignment PIN_AA26 -to SDRAM_A[1] -set_location_assignment PIN_AA13 -to SDRAM_A[2] -set_location_assignment PIN_AA11 -to SDRAM_A[3] -set_location_assignment PIN_W11 -to SDRAM_A[4] -set_location_assignment PIN_Y19 -to SDRAM_A[5] -set_location_assignment PIN_AB23 -to SDRAM_A[6] -set_location_assignment PIN_AC23 -to SDRAM_A[7] -set_location_assignment PIN_AC22 -to SDRAM_A[8] -set_location_assignment PIN_C12 -to SDRAM_A[9] -set_location_assignment PIN_AB26 -to SDRAM_A[10] -set_location_assignment PIN_AD17 -to SDRAM_A[11] -set_location_assignment PIN_D12 -to SDRAM_A[12] -set_location_assignment PIN_Y17 -to SDRAM_BA[0] -set_location_assignment PIN_AB25 -to SDRAM_BA[1] -set_location_assignment PIN_E8 -to SDRAM_DQ[0] -set_location_assignment PIN_V12 -to SDRAM_DQ[1] -set_location_assignment PIN_D11 -to SDRAM_DQ[2] -set_location_assignment PIN_W12 -to SDRAM_DQ[3] -set_location_assignment PIN_AH13 -to SDRAM_DQ[4] -set_location_assignment PIN_D8 -to SDRAM_DQ[5] -set_location_assignment PIN_AH14 -to SDRAM_DQ[6] -set_location_assignment PIN_AF7 -to SDRAM_DQ[7] -set_location_assignment PIN_AE24 -to SDRAM_DQ[8] -set_location_assignment PIN_AD23 -to SDRAM_DQ[9] -set_location_assignment PIN_AE6 -to SDRAM_DQ[10] -set_location_assignment PIN_AE23 -to SDRAM_DQ[11] -set_location_assignment PIN_AG14 -to SDRAM_DQ[12] -set_location_assignment PIN_AD5 -to SDRAM_DQ[13] -set_location_assignment PIN_AF4 -to SDRAM_DQ[14] -set_location_assignment PIN_AH3 -to SDRAM_DQ[15] -set_location_assignment PIN_AG13 -to SDRAM_DQML -set_location_assignment PIN_AF13 -to SDRAM_DQMH -set_location_assignment PIN_AD20 -to SDRAM_CLK -set_location_assignment PIN_AG10 -to SDRAM_CKE -set_location_assignment PIN_AA19 -to SDRAM_nWE -set_location_assignment PIN_AA18 -to SDRAM_nCAS -set_location_assignment PIN_Y18 -to SDRAM_nCS -set_location_assignment PIN_W14 -to SDRAM_nRAS - -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SDRAM_* -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_* -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_* -set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM_DQ[*] -set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM_DQ[*] -set_instance_assignment -name ALLOW_SYNCH_CTRL_USAGE OFF -to *|SDRAM_* - -#============================================================ -# SPI SD -#============================================================ -set_location_assignment PIN_AE15 -to SD_SPI_CS -set_location_assignment PIN_AH8 -to SD_SPI_MISO -set_location_assignment PIN_AG8 -to SD_SPI_CLK -set_location_assignment PIN_U13 -to SD_SPI_MOSI -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SD_SPI* -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SD_SPI* -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SD_SPI* - - -#============================================================ -# CLOCK -#============================================================ -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK1_50 -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK2_50 -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK3_50 -set_location_assignment PIN_V11 -to FPGA_CLK1_50 -set_location_assignment PIN_Y13 -to FPGA_CLK2_50 -set_location_assignment PIN_E11 -to FPGA_CLK3_50 - -#============================================================ -# HDMI -#============================================================ -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_I2C_* -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_I2S -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_LRCLK -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_MCLK -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_SCLK -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_TX_* -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_D[*] -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_DE -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_HS -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_VS -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_CLK -set_location_assignment PIN_U10 -to HDMI_I2C_SCL -set_location_assignment PIN_AA4 -to HDMI_I2C_SDA -set_location_assignment PIN_T13 -to HDMI_I2S -set_location_assignment PIN_T11 -to HDMI_LRCLK -set_location_assignment PIN_U11 -to HDMI_MCLK -set_location_assignment PIN_T12 -to HDMI_SCLK -set_location_assignment PIN_AG5 -to HDMI_TX_CLK -set_location_assignment PIN_AD19 -to HDMI_TX_DE -set_location_assignment PIN_AD12 -to HDMI_TX_D[0] -set_location_assignment PIN_AE12 -to HDMI_TX_D[1] -set_location_assignment PIN_W8 -to HDMI_TX_D[2] -set_location_assignment PIN_Y8 -to HDMI_TX_D[3] -set_location_assignment PIN_AD11 -to HDMI_TX_D[4] -set_location_assignment PIN_AD10 -to HDMI_TX_D[5] -set_location_assignment PIN_AE11 -to HDMI_TX_D[6] -set_location_assignment PIN_Y5 -to HDMI_TX_D[7] -set_location_assignment PIN_AF10 -to HDMI_TX_D[8] -set_location_assignment PIN_Y4 -to HDMI_TX_D[9] -set_location_assignment PIN_AE9 -to HDMI_TX_D[10] -set_location_assignment PIN_AB4 -to HDMI_TX_D[11] -set_location_assignment PIN_AE7 -to HDMI_TX_D[12] -set_location_assignment PIN_AF6 -to HDMI_TX_D[13] -set_location_assignment PIN_AF8 -to HDMI_TX_D[14] -set_location_assignment PIN_AF5 -to HDMI_TX_D[15] -set_location_assignment PIN_AE4 -to HDMI_TX_D[16] -set_location_assignment PIN_AH2 -to HDMI_TX_D[17] -set_location_assignment PIN_AH4 -to HDMI_TX_D[18] -set_location_assignment PIN_AH5 -to HDMI_TX_D[19] -set_location_assignment PIN_AH6 -to HDMI_TX_D[20] -set_location_assignment PIN_AG6 -to HDMI_TX_D[21] -set_location_assignment PIN_AF9 -to HDMI_TX_D[22] -set_location_assignment PIN_AE8 -to HDMI_TX_D[23] -set_location_assignment PIN_T8 -to HDMI_TX_HS -set_location_assignment PIN_AF11 -to HDMI_TX_INT -set_location_assignment PIN_V13 -to HDMI_TX_VS - -#============================================================ -# KEY -#============================================================ -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY[1] -set_location_assignment PIN_AH17 -to KEY[0] -set_location_assignment PIN_AH16 -to KEY[1] - -#============================================================ -# LED -#============================================================ -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[3] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[4] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[5] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[6] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[7] -set_location_assignment PIN_W15 -to LED[0] -set_location_assignment PIN_AA24 -to LED[1] -set_location_assignment PIN_V16 -to LED[2] -set_location_assignment PIN_V15 -to LED[3] -set_location_assignment PIN_AF26 -to LED[4] -set_location_assignment PIN_AE26 -to LED[5] -set_location_assignment PIN_Y16 -to LED[6] -set_location_assignment PIN_AA23 -to LED[7] - -#============================================================ -# SW -#============================================================ -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[0] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[1] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[2] -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[3] -set_location_assignment PIN_Y24 -to SW[0] -set_location_assignment PIN_W24 -to SW[1] -set_location_assignment PIN_W21 -to SW[2] -set_location_assignment PIN_W20 -to SW[3] - -set_instance_assignment -name HPS_LOCATION HPSINTERFACEPERIPHERALSPIMASTER_X52_Y72_N111 -entity sys_top -to spi -set_instance_assignment -name HPS_LOCATION HPSINTERFACEPERIPHERALUART_X52_Y67_N111 -entity sys_top -to uart - -set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:sys/build_id.tcl" - -set_global_assignment -name CDF_FILE jtag.cdf -set_global_assignment -name QIP_FILE sys/sys.qip - +set_global_assignment -name FAMILY "Cyclone V" +set_global_assignment -name DEVICE 5CSEBA6U23I7 +set_global_assignment -name DEVICE_FILTER_PACKAGE UFBGA +set_global_assignment -name DEVICE_FILTER_PIN_COUNT 672 +set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 7 + +#============================================================ +# ADC +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_CONVST +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SCK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SDI +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SDO +set_location_assignment PIN_U9 -to ADC_CONVST +set_location_assignment PIN_V10 -to ADC_SCK +set_location_assignment PIN_AC4 -to ADC_SDI +set_location_assignment PIN_AD4 -to ADC_SDO + +#============================================================ +# I2C LEDS/BUTTONS +#============================================================ +set_location_assignment PIN_U14 -to IO_SCL +set_location_assignment PIN_AG9 -to IO_SDA +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to IO_S* +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to IO_S* +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to IO_S* + +#============================================================ +# USER PORT +#============================================================ +set_location_assignment PIN_AF17 -to USER_IO[6] +set_location_assignment PIN_AF15 -to USER_IO[5] +set_location_assignment PIN_AG16 -to USER_IO[4] +set_location_assignment PIN_AH11 -to USER_IO[3] +set_location_assignment PIN_AH12 -to USER_IO[2] +set_location_assignment PIN_AH9 -to USER_IO[1] +set_location_assignment PIN_AG11 -to USER_IO[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to USER_IO[*] +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to USER_IO[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to USER_IO[*] + +#============================================================ +# SDIO_CD or SPDIF_OUT +#============================================================ +set_location_assignment PIN_AH7 -to SDCD_SPDIF +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDCD_SPDIF +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SDCD_SPDIF +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SDCD_SPDIF + +#============================================================ +# SDRAM +#============================================================ +set_location_assignment PIN_Y11 -to SDRAM_A[0] +set_location_assignment PIN_AA26 -to SDRAM_A[1] +set_location_assignment PIN_AA13 -to SDRAM_A[2] +set_location_assignment PIN_AA11 -to SDRAM_A[3] +set_location_assignment PIN_W11 -to SDRAM_A[4] +set_location_assignment PIN_Y19 -to SDRAM_A[5] +set_location_assignment PIN_AB23 -to SDRAM_A[6] +set_location_assignment PIN_AC23 -to SDRAM_A[7] +set_location_assignment PIN_AC22 -to SDRAM_A[8] +set_location_assignment PIN_C12 -to SDRAM_A[9] +set_location_assignment PIN_AB26 -to SDRAM_A[10] +set_location_assignment PIN_AD17 -to SDRAM_A[11] +set_location_assignment PIN_D12 -to SDRAM_A[12] +set_location_assignment PIN_Y17 -to SDRAM_BA[0] +set_location_assignment PIN_AB25 -to SDRAM_BA[1] +set_location_assignment PIN_E8 -to SDRAM_DQ[0] +set_location_assignment PIN_V12 -to SDRAM_DQ[1] +set_location_assignment PIN_D11 -to SDRAM_DQ[2] +set_location_assignment PIN_W12 -to SDRAM_DQ[3] +set_location_assignment PIN_AH13 -to SDRAM_DQ[4] +set_location_assignment PIN_D8 -to SDRAM_DQ[5] +set_location_assignment PIN_AH14 -to SDRAM_DQ[6] +set_location_assignment PIN_AF7 -to SDRAM_DQ[7] +set_location_assignment PIN_AE24 -to SDRAM_DQ[8] +set_location_assignment PIN_AD23 -to SDRAM_DQ[9] +set_location_assignment PIN_AE6 -to SDRAM_DQ[10] +set_location_assignment PIN_AE23 -to SDRAM_DQ[11] +set_location_assignment PIN_AG14 -to SDRAM_DQ[12] +set_location_assignment PIN_AD5 -to SDRAM_DQ[13] +set_location_assignment PIN_AF4 -to SDRAM_DQ[14] +set_location_assignment PIN_AH3 -to SDRAM_DQ[15] +set_location_assignment PIN_AG13 -to SDRAM_DQML +set_location_assignment PIN_AF13 -to SDRAM_DQMH +set_location_assignment PIN_AD20 -to SDRAM_CLK +set_location_assignment PIN_AG10 -to SDRAM_CKE +set_location_assignment PIN_AA19 -to SDRAM_nWE +set_location_assignment PIN_AA18 -to SDRAM_nCAS +set_location_assignment PIN_Y18 -to SDRAM_nCS +set_location_assignment PIN_W14 -to SDRAM_nRAS + +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SDRAM_* +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_* +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_* +set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name ALLOW_SYNCH_CTRL_USAGE OFF -to *|SDRAM_* + +#============================================================ +# SPI SD +#============================================================ +set_location_assignment PIN_AE15 -to SD_SPI_CS +set_location_assignment PIN_AH8 -to SD_SPI_MISO +set_location_assignment PIN_AG8 -to SD_SPI_CLK +set_location_assignment PIN_U13 -to SD_SPI_MOSI +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SD_SPI* +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SD_SPI* +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SD_SPI* + + +#============================================================ +# CLOCK +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK1_50 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK2_50 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK3_50 +set_location_assignment PIN_V11 -to FPGA_CLK1_50 +set_location_assignment PIN_Y13 -to FPGA_CLK2_50 +set_location_assignment PIN_E11 -to FPGA_CLK3_50 + +#============================================================ +# HDMI +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_I2C_* +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_I2S +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_LRCLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_MCLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_SCLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HDMI_TX_* +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_D[*] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_DE +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_HS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_VS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_CLK +set_location_assignment PIN_U10 -to HDMI_I2C_SCL +set_location_assignment PIN_AA4 -to HDMI_I2C_SDA +set_location_assignment PIN_T13 -to HDMI_I2S +set_location_assignment PIN_T11 -to HDMI_LRCLK +set_location_assignment PIN_U11 -to HDMI_MCLK +set_location_assignment PIN_T12 -to HDMI_SCLK +set_location_assignment PIN_AG5 -to HDMI_TX_CLK +set_location_assignment PIN_AD19 -to HDMI_TX_DE +set_location_assignment PIN_AD12 -to HDMI_TX_D[0] +set_location_assignment PIN_AE12 -to HDMI_TX_D[1] +set_location_assignment PIN_W8 -to HDMI_TX_D[2] +set_location_assignment PIN_Y8 -to HDMI_TX_D[3] +set_location_assignment PIN_AD11 -to HDMI_TX_D[4] +set_location_assignment PIN_AD10 -to HDMI_TX_D[5] +set_location_assignment PIN_AE11 -to HDMI_TX_D[6] +set_location_assignment PIN_Y5 -to HDMI_TX_D[7] +set_location_assignment PIN_AF10 -to HDMI_TX_D[8] +set_location_assignment PIN_Y4 -to HDMI_TX_D[9] +set_location_assignment PIN_AE9 -to HDMI_TX_D[10] +set_location_assignment PIN_AB4 -to HDMI_TX_D[11] +set_location_assignment PIN_AE7 -to HDMI_TX_D[12] +set_location_assignment PIN_AF6 -to HDMI_TX_D[13] +set_location_assignment PIN_AF8 -to HDMI_TX_D[14] +set_location_assignment PIN_AF5 -to HDMI_TX_D[15] +set_location_assignment PIN_AE4 -to HDMI_TX_D[16] +set_location_assignment PIN_AH2 -to HDMI_TX_D[17] +set_location_assignment PIN_AH4 -to HDMI_TX_D[18] +set_location_assignment PIN_AH5 -to HDMI_TX_D[19] +set_location_assignment PIN_AH6 -to HDMI_TX_D[20] +set_location_assignment PIN_AG6 -to HDMI_TX_D[21] +set_location_assignment PIN_AF9 -to HDMI_TX_D[22] +set_location_assignment PIN_AE8 -to HDMI_TX_D[23] +set_location_assignment PIN_T8 -to HDMI_TX_HS +set_location_assignment PIN_AF11 -to HDMI_TX_INT +set_location_assignment PIN_V13 -to HDMI_TX_VS + +#============================================================ +# KEY +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY[1] +set_location_assignment PIN_AH17 -to KEY[0] +set_location_assignment PIN_AH16 -to KEY[1] + +#============================================================ +# LED +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[7] +set_location_assignment PIN_W15 -to LED[0] +set_location_assignment PIN_AA24 -to LED[1] +set_location_assignment PIN_V16 -to LED[2] +set_location_assignment PIN_V15 -to LED[3] +set_location_assignment PIN_AF26 -to LED[4] +set_location_assignment PIN_AE26 -to LED[5] +set_location_assignment PIN_Y16 -to LED[6] +set_location_assignment PIN_AA23 -to LED[7] + +#============================================================ +# SW +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[3] +set_location_assignment PIN_Y24 -to SW[0] +set_location_assignment PIN_W24 -to SW[1] +set_location_assignment PIN_W21 -to SW[2] +set_location_assignment PIN_W20 -to SW[3] + +set_instance_assignment -name HPS_LOCATION HPSINTERFACEPERIPHERALSPIMASTER_X52_Y72_N111 -entity sys_top -to spi +set_instance_assignment -name HPS_LOCATION HPSINTERFACEPERIPHERALUART_X52_Y67_N111 -entity sys_top -to uart +set_instance_assignment -name HPS_LOCATION HPSINTERFACEPERIPHERALI2C_X52_Y60_N111 -entity sys_top -to hdmi_i2c + +set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:sys/build_id.tcl" + +set_global_assignment -name CDF_FILE jtag.cdf +set_global_assignment -name QIP_FILE sys/sys.qip + diff --git a/sys/sys_analog.tcl b/sys/sys_analog.tcl index 7ffb3ec..692043f 100644 --- a/sys/sys_analog.tcl +++ b/sys/sys_analog.tcl @@ -1,71 +1,71 @@ -#============================================================ -# SDIO -#============================================================ -set_location_assignment PIN_AF25 -to SDIO_DAT[0] -set_location_assignment PIN_AF23 -to SDIO_DAT[1] -set_location_assignment PIN_AD26 -to SDIO_DAT[2] -set_location_assignment PIN_AF28 -to SDIO_DAT[3] -set_location_assignment PIN_AF27 -to SDIO_CMD -set_location_assignment PIN_AH26 -to SDIO_CLK -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDIO_* - -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SDIO_* -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SDIO_DAT[*] -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SDIO_CMD - -#============================================================ -# VGA -#============================================================ -set_location_assignment PIN_AE17 -to VGA_R[0] -set_location_assignment PIN_AE20 -to VGA_R[1] -set_location_assignment PIN_AF20 -to VGA_R[2] -set_location_assignment PIN_AH18 -to VGA_R[3] -set_location_assignment PIN_AH19 -to VGA_R[4] -set_location_assignment PIN_AF21 -to VGA_R[5] - -set_location_assignment PIN_AE19 -to VGA_G[0] -set_location_assignment PIN_AG15 -to VGA_G[1] -set_location_assignment PIN_AF18 -to VGA_G[2] -set_location_assignment PIN_AG18 -to VGA_G[3] -set_location_assignment PIN_AG19 -to VGA_G[4] -set_location_assignment PIN_AG20 -to VGA_G[5] - -set_location_assignment PIN_AG21 -to VGA_B[0] -set_location_assignment PIN_AA20 -to VGA_B[1] -set_location_assignment PIN_AE22 -to VGA_B[2] -set_location_assignment PIN_AF22 -to VGA_B[3] -set_location_assignment PIN_AH23 -to VGA_B[4] -set_location_assignment PIN_AH21 -to VGA_B[5] - -set_location_assignment PIN_AH22 -to VGA_HS -set_location_assignment PIN_AG24 -to VGA_VS - -set_location_assignment PIN_AH27 -to VGA_EN -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to VGA_EN - -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_* -set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to VGA_* - -#============================================================ -# AUDIO -#============================================================ -set_location_assignment PIN_AC24 -to AUDIO_L -set_location_assignment PIN_AE25 -to AUDIO_R -set_location_assignment PIN_AG26 -to AUDIO_SPDIF -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUDIO_* -set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to AUDIO_* - -#============================================================ -# I/O #1 -#============================================================ -set_location_assignment PIN_Y15 -to LED_USER -set_location_assignment PIN_AA15 -to LED_HDD -set_location_assignment PIN_AG28 -to LED_POWER - -set_location_assignment PIN_AH24 -to BTN_USER -set_location_assignment PIN_AG25 -to BTN_OSD -set_location_assignment PIN_AG23 -to BTN_RESET - -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_* -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to BTN_* -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to BTN_* +#============================================================ +# SDIO +#============================================================ +set_location_assignment PIN_AF25 -to SDIO_DAT[0] +set_location_assignment PIN_AF23 -to SDIO_DAT[1] +set_location_assignment PIN_AD26 -to SDIO_DAT[2] +set_location_assignment PIN_AF28 -to SDIO_DAT[3] +set_location_assignment PIN_AF27 -to SDIO_CMD +set_location_assignment PIN_AH26 -to SDIO_CLK +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDIO_* + +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SDIO_* +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SDIO_DAT[*] +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SDIO_CMD + +#============================================================ +# VGA +#============================================================ +set_location_assignment PIN_AE17 -to VGA_R[0] +set_location_assignment PIN_AE20 -to VGA_R[1] +set_location_assignment PIN_AF20 -to VGA_R[2] +set_location_assignment PIN_AH18 -to VGA_R[3] +set_location_assignment PIN_AH19 -to VGA_R[4] +set_location_assignment PIN_AF21 -to VGA_R[5] + +set_location_assignment PIN_AE19 -to VGA_G[0] +set_location_assignment PIN_AG15 -to VGA_G[1] +set_location_assignment PIN_AF18 -to VGA_G[2] +set_location_assignment PIN_AG18 -to VGA_G[3] +set_location_assignment PIN_AG19 -to VGA_G[4] +set_location_assignment PIN_AG20 -to VGA_G[5] + +set_location_assignment PIN_AG21 -to VGA_B[0] +set_location_assignment PIN_AA20 -to VGA_B[1] +set_location_assignment PIN_AE22 -to VGA_B[2] +set_location_assignment PIN_AF22 -to VGA_B[3] +set_location_assignment PIN_AH23 -to VGA_B[4] +set_location_assignment PIN_AH21 -to VGA_B[5] + +set_location_assignment PIN_AH22 -to VGA_HS +set_location_assignment PIN_AG24 -to VGA_VS + +set_location_assignment PIN_AH27 -to VGA_EN +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to VGA_EN + +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_* +set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to VGA_* + +#============================================================ +# AUDIO +#============================================================ +set_location_assignment PIN_AC24 -to AUDIO_L +set_location_assignment PIN_AE25 -to AUDIO_R +set_location_assignment PIN_AG26 -to AUDIO_SPDIF +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUDIO_* +set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to AUDIO_* + +#============================================================ +# I/O #1 +#============================================================ +set_location_assignment PIN_Y15 -to LED_USER +set_location_assignment PIN_AA15 -to LED_HDD +set_location_assignment PIN_AG28 -to LED_POWER + +set_location_assignment PIN_AH24 -to BTN_USER +set_location_assignment PIN_AG25 -to BTN_OSD +set_location_assignment PIN_AG23 -to BTN_RESET + +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_* +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to BTN_* +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to BTN_* diff --git a/sys/sys_dual_sdram.tcl b/sys/sys_dual_sdram.tcl index 06124e7..cf90eab 100644 --- a/sys/sys_dual_sdram.tcl +++ b/sys/sys_dual_sdram.tcl @@ -1,50 +1,51 @@ -#============================================================ -# Secondary SDRAM -#============================================================ -set_location_assignment PIN_Y15 -to SDRAM2_DQ[0] -set_location_assignment PIN_AC24 -to SDRAM2_DQ[1] -set_location_assignment PIN_AA15 -to SDRAM2_DQ[2] -set_location_assignment PIN_AD26 -to SDRAM2_DQ[3] -set_location_assignment PIN_AG28 -to SDRAM2_DQ[4] -set_location_assignment PIN_AF28 -to SDRAM2_DQ[5] -set_location_assignment PIN_AE25 -to SDRAM2_DQ[6] -set_location_assignment PIN_AF27 -to SDRAM2_DQ[7] -set_location_assignment PIN_AG26 -to SDRAM2_DQ[14] -set_location_assignment PIN_AH27 -to SDRAM2_DQ[15] - -set_location_assignment PIN_AG25 -to SDRAM2_DQ[13] -set_location_assignment PIN_AH26 -to SDRAM2_DQ[12] -set_location_assignment PIN_AH24 -to SDRAM2_DQ[11] -set_location_assignment PIN_AF25 -to SDRAM2_DQ[10] -set_location_assignment PIN_AG23 -to SDRAM2_DQ[9] -set_location_assignment PIN_AF23 -to SDRAM2_DQ[8] -set_location_assignment PIN_AG24 -to SDRAM2_A[12] -set_location_assignment PIN_AH22 -to SDRAM2_CLK -set_location_assignment PIN_AH21 -to SDRAM2_A[9] -set_location_assignment PIN_AG21 -to SDRAM2_A[11] -set_location_assignment PIN_AH23 -to SDRAM2_A[7] -set_location_assignment PIN_AA20 -to SDRAM2_A[8] -set_location_assignment PIN_AF22 -to SDRAM2_A[5] -set_location_assignment PIN_AE22 -to SDRAM2_A[6] -set_location_assignment PIN_AG20 -to SDRAM2_nWE -set_location_assignment PIN_AF21 -to SDRAM2_A[4] - -set_location_assignment PIN_AG19 -to SDRAM2_nCAS -set_location_assignment PIN_AH19 -to SDRAM2_nRAS -set_location_assignment PIN_AG18 -to SDRAM2_nCS -set_location_assignment PIN_AH18 -to SDRAM2_BA[0] -set_location_assignment PIN_AF18 -to SDRAM2_BA[1] -set_location_assignment PIN_AF20 -to SDRAM2_A[10] -set_location_assignment PIN_AG15 -to SDRAM2_A[0] -set_location_assignment PIN_AE20 -to SDRAM2_A[1] -set_location_assignment PIN_AE19 -to SDRAM2_A[2] -set_location_assignment PIN_AE17 -to SDRAM2_A[3] - -set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SDRAM2_* -set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM2_* -set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM2_* -set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM2_DQ[*] -set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM2_DQ[*] -set_instance_assignment -name ALLOW_SYNCH_CTRL_USAGE OFF -to *|SDRAM2_* - -set_global_assignment -name VERILOG_MACRO "DUAL_SDRAM=1" +#============================================================ +# Secondary SDRAM +#============================================================ +set_location_assignment PIN_Y15 -to SDRAM2_DQ[0] +set_location_assignment PIN_AC24 -to SDRAM2_DQ[1] +set_location_assignment PIN_AA15 -to SDRAM2_DQ[2] +set_location_assignment PIN_AD26 -to SDRAM2_DQ[3] +set_location_assignment PIN_AG28 -to SDRAM2_DQ[4] +set_location_assignment PIN_AF28 -to SDRAM2_DQ[5] +set_location_assignment PIN_AE25 -to SDRAM2_DQ[6] +set_location_assignment PIN_AF27 -to SDRAM2_DQ[7] +set_location_assignment PIN_AG26 -to SDRAM2_DQ[14] +set_location_assignment PIN_AH27 -to SDRAM2_DQ[15] + +set_location_assignment PIN_AG25 -to SDRAM2_DQ[13] +set_location_assignment PIN_AH26 -to SDRAM2_DQ[12] +set_location_assignment PIN_AH24 -to SDRAM2_DQ[11] +set_location_assignment PIN_AF25 -to SDRAM2_DQ[10] +set_location_assignment PIN_AG23 -to SDRAM2_DQ[9] +set_location_assignment PIN_AF23 -to SDRAM2_DQ[8] +set_location_assignment PIN_AG24 -to SDRAM2_A[12] +set_location_assignment PIN_AH22 -to SDRAM2_CLK +set_location_assignment PIN_AH21 -to SDRAM2_A[9] +set_location_assignment PIN_AG21 -to SDRAM2_A[11] +set_location_assignment PIN_AH23 -to SDRAM2_A[7] +set_location_assignment PIN_AA20 -to SDRAM2_A[8] +set_location_assignment PIN_AF22 -to SDRAM2_A[5] +set_location_assignment PIN_AE22 -to SDRAM2_A[6] +set_location_assignment PIN_AG20 -to SDRAM2_nWE +set_location_assignment PIN_AF21 -to SDRAM2_A[4] + +set_location_assignment PIN_AG19 -to SDRAM2_nCAS +set_location_assignment PIN_AH19 -to SDRAM2_nRAS +set_location_assignment PIN_AG18 -to SDRAM2_nCS +set_location_assignment PIN_AH18 -to SDRAM2_BA[0] +set_location_assignment PIN_AF18 -to SDRAM2_BA[1] +set_location_assignment PIN_AF20 -to SDRAM2_A[10] +set_location_assignment PIN_AG15 -to SDRAM2_A[0] +set_location_assignment PIN_AE20 -to SDRAM2_A[1] +set_location_assignment PIN_AE19 -to SDRAM2_A[2] +set_location_assignment PIN_AE17 -to SDRAM2_A[3] + +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SDRAM2_* +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM2_* +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM2_* +set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM2_DQ[*] +set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM2_DQ[*] +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to SDRAM2_DQ[*] +set_instance_assignment -name ALLOW_SYNCH_CTRL_USAGE OFF -to *|SDRAM2_* + +set_global_assignment -name VERILOG_MACRO "MISTER_DUAL_SDRAM=1" diff --git a/sys/sys_top.sdc b/sys/sys_top.sdc index 0954613..ac21334 100644 --- a/sys/sys_top.sdc +++ b/sys/sys_top.sdc @@ -1,54 +1,77 @@ -# Specify root clocks -create_clock -period "50.0 MHz" [get_ports FPGA_CLK1_50] -create_clock -period "50.0 MHz" [get_ports FPGA_CLK2_50] -create_clock -period "50.0 MHz" [get_ports FPGA_CLK3_50] -create_clock -period "100.0 MHz" [get_pins -compatibility_mode *|h2f_user0_clk] -create_clock -period "100.0 MHz" [get_pins -compatibility_mode spi|sclk_out] -name spi_sck - -derive_pll_clocks -derive_clock_uncertainty - -# Decouple different clock groups (to simplify routing) -set_clock_groups -exclusive \ - -group [get_clocks { *|pll|pll_inst|altera_pll_i|*[*].*|divclk}] \ - -group [get_clocks { pll_hdmi|pll_hdmi_inst|altera_pll_i|*[0].*|divclk}] \ - -group [get_clocks { pll_audio|pll_audio_inst|altera_pll_i|*[0].*|divclk}] \ - -group [get_clocks { spi_sck}] \ - -group [get_clocks { *|h2f_user0_clk}] \ - -group [get_clocks { FPGA_CLK1_50 }] \ - -group [get_clocks { FPGA_CLK2_50 }] \ - -group [get_clocks { FPGA_CLK3_50 }] - -set_false_path -from [get_ports {KEY*}] -set_false_path -from [get_ports {BTN_*}] -set_false_path -to [get_ports {LED_*}] -set_false_path -to [get_ports {VGA_*}] -set_false_path -to [get_ports {AUDIO_SPDIF}] -set_false_path -to [get_ports {AUDIO_L}] -set_false_path -to [get_ports {AUDIO_R}] -set_false_path -to {cfg[*]} -set_false_path -from {cfg[*]} -set_false_path -from {VSET[*]} -set_false_path -to {wcalc[*] hcalc[*]} -set_false_path -to {width[*] height[*]} - -set_multicycle_path -to {*_osd|osd_vcnt*} -setup 2 -set_multicycle_path -to {*_osd|osd_vcnt*} -hold 1 -set_false_path -to {*_osd|v_cnt*} -set_false_path -to {*_osd|v_osd_start*} -set_false_path -to {*_osd|v_info_start*} -set_false_path -to {*_osd|h_osd_start*} -set_false_path -from {*_osd|v_osd_start*} -set_false_path -from {*_osd|v_info_start*} -set_false_path -from {*_osd|h_osd_start*} -set_false_path -from {*_osd|rot*} -set_false_path -from {*_osd|dsp_width*} -set_false_path -to {*_osd|half} - -set_false_path -to {WIDTH[*] HFP[*] HS[*] HBP[*] HEIGHT[*] VFP[*] VS[*] VBP[*]} -set_false_path -from {WIDTH[*] HFP[*] HS[*] HBP[*] HEIGHT[*] VFP[*] VS[*] VBP[*]} -set_false_path -to {FB_BASE[*] FB_BASE[*] FB_WIDTH[*] FB_HEIGHT[*] LFB_HMIN[*] LFB_HMAX[*] LFB_VMIN[*] LFB_VMAX[*]} -set_false_path -from {FB_BASE[*] FB_BASE[*] FB_WIDTH[*] FB_HEIGHT[*] LFB_HMIN[*] LFB_HMAX[*] LFB_VMIN[*] LFB_VMAX[*]} -set_false_path -to {vol_att[*] scaler_flt[*] led_overtake[*] led_state[*]} -set_false_path -from {vol_att[*] scaler_flt[*] led_overtake[*] led_state[*]} -set_false_path -from {aflt_* acx* acy* areset*} +# Specify root clocks +create_clock -period "50.0 MHz" [get_ports FPGA_CLK1_50] +create_clock -period "50.0 MHz" [get_ports FPGA_CLK2_50] +create_clock -period "50.0 MHz" [get_ports FPGA_CLK3_50] +create_clock -period "100.0 MHz" [get_pins -compatibility_mode *|h2f_user0_clk] +create_clock -period "100.0 MHz" [get_pins -compatibility_mode spi|sclk_out] -name spi_sck +create_clock -period "10.0 MHz" [get_pins -compatibility_mode hdmi_i2c|out_clk] -name hdmi_sck + +derive_pll_clocks +derive_clock_uncertainty + +# Decouple different clock groups (to simplify routing) +set_clock_groups -exclusive \ + -group [get_clocks { *|pll|pll_inst|altera_pll_i|*[*].*|divclk}] \ + -group [get_clocks { pll_hdmi|pll_hdmi_inst|altera_pll_i|*[0].*|divclk}] \ + -group [get_clocks { pll_audio|pll_audio_inst|altera_pll_i|*[0].*|divclk}] \ + -group [get_clocks { spi_sck}] \ + -group [get_clocks { hdmi_sck}] \ + -group [get_clocks { *|h2f_user0_clk}] \ + -group [get_clocks { FPGA_CLK1_50 }] \ + -group [get_clocks { FPGA_CLK2_50 }] \ + -group [get_clocks { FPGA_CLK3_50 }] + +set_false_path -from [get_ports {KEY*}] +set_false_path -from [get_ports {BTN_*}] +set_false_path -to [get_ports {LED_*}] +set_false_path -to [get_ports {VGA_*}] +set_false_path -from [get_ports {VGA_EN}] +set_false_path -to [get_ports {AUDIO_SPDIF}] +set_false_path -to [get_ports {AUDIO_L}] +set_false_path -to [get_ports {AUDIO_R}] +set_false_path -from {get_ports {SW[*]}} +set_false_path -to {cfg[*]} +set_false_path -from {cfg[*]} +set_false_path -from {VSET[*]} +set_false_path -to {wcalc[*] hcalc[*]} +set_false_path -to {hdmi_width[*] hdmi_height[*]} +set_false_path -to {deb_* btn_en btn_up} + +set_multicycle_path -to {*_osd|osd_vcnt*} -setup 2 +set_multicycle_path -to {*_osd|osd_vcnt*} -hold 1 + +set_false_path -to {*_osd|v_cnt*} +set_false_path -to {*_osd|v_osd_start*} +set_false_path -to {*_osd|v_info_start*} +set_false_path -to {*_osd|h_osd_start*} +set_false_path -from {*_osd|v_osd_start*} +set_false_path -from {*_osd|v_info_start*} +set_false_path -from {*_osd|h_osd_start*} +set_false_path -from {*_osd|rot*} +set_false_path -from {*_osd|dsp_width*} +set_false_path -to {*_osd|half} + +set_false_path -to {WIDTH[*] HFP[*] HS[*] HBP[*] HEIGHT[*] VFP[*] VS[*] VBP[*]} +set_false_path -from {WIDTH[*] HFP[*] HS[*] HBP[*] HEIGHT[*] VFP[*] VS[*] VBP[*]} +set_false_path -to {FB_BASE[*] FB_BASE[*] FB_WIDTH[*] FB_HEIGHT[*] LFB_HMIN[*] LFB_HMAX[*] LFB_VMIN[*] LFB_VMAX[*]} +set_false_path -from {FB_BASE[*] FB_BASE[*] FB_WIDTH[*] FB_HEIGHT[*] LFB_HMIN[*] LFB_HMAX[*] LFB_VMIN[*] LFB_VMAX[*]} +set_false_path -to {vol_att[*] scaler_flt[*] led_overtake[*] led_state[*]} +set_false_path -from {vol_att[*] scaler_flt[*] led_overtake[*] led_state[*]} +set_false_path -from {aflt_* acx* acy* areset* arc*} +set_false_path -from {arx* ary*} +set_false_path -from {vs_line*} +set_false_path -from {ColorBurst_Range* PhaseInc* pal_en cvbs yc_en} + +set_false_path -from {ascal|o_ihsize*} +set_false_path -from {ascal|o_ivsize*} +set_false_path -from {ascal|o_format*} +set_false_path -from {ascal|o_hdown} +set_false_path -from {ascal|o_vdown} +set_false_path -from {ascal|o_hmin* ascal|o_hmax* ascal|o_vmin* ascal|o_vmax* ascal|o_vrrmax* ascal|o_vrr} +set_false_path -from {ascal|o_hdisp* ascal|o_vdisp*} +set_false_path -from {ascal|o_htotal* ascal|o_vtotal*} +set_false_path -from {ascal|o_hsstart* ascal|o_vsstart* ascal|o_hsend* ascal|o_vsend*} +set_false_path -from {ascal|o_hsize* ascal|o_vsize*} + +set_false_path -from {mcp23009|flg_*} +set_false_path -to {sysmem|fpga_interfaces|clocks_resets*} diff --git a/sys/sys_top.v b/sys/sys_top.v index c795a6b..d322d37 100644 --- a/sys/sys_top.v +++ b/sys/sys_top.v @@ -19,18 +19,6 @@ // //============================================================================ -`ifndef ARCADE_SYS - `define USE_DDRAM - `define USE_SDRAM -`endif - -`ifndef USE_DDRAM - `ifdef USE_FB - `define USE_DDRAM - `endif -`endif - - module sys_top ( /////////// CLOCK ////////// @@ -68,7 +56,7 @@ module sys_top output SDRAM_CLK, output SDRAM_CKE, -`ifdef DUAL_SDRAM +`ifdef MISTER_DUAL_SDRAM ////////// SDR #2 ////////// output [12:0] SDRAM2_A, inout [15:0] SDRAM2_DQ, @@ -84,7 +72,7 @@ module sys_top output [5:0] VGA_R, output [5:0] VGA_G, output [5:0] VGA_B, - inout VGA_HS, // VGA_HS is secondary SD card detect when VGA_EN = 1 (inactive) + inout VGA_HS, output VGA_VS, input VGA_EN, // active low @@ -137,34 +125,23 @@ module sys_top ); ////////////////////// Secondary SD /////////////////////////////////// -wire SD_CS, SD_CLK, SD_MOSI; +wire SD_CS, SD_CLK, SD_MOSI, SD_MISO, SD_CD; -`ifdef ARCADE_SYS - assign SD_CS = 1'bZ; - assign SD_CLK = 1'bZ; - assign SD_MOSI = 1'bZ; +`ifndef MISTER_DUAL_SDRAM + assign SD_CD = mcp_en ? mcp_sdcd : SDCD_SPDIF; + assign SD_MISO = SD_CD | (mcp_en ? SD_SPI_MISO : (VGA_EN | SDIO_DAT[0])); + assign SD_SPI_CS = mcp_en ? (mcp_sdcd ? 1'bZ : SD_CS) : (sog & ~cs1 & ~VGA_EN) ? 1'b1 : 1'bZ; + assign SD_SPI_CLK = (~mcp_en | mcp_sdcd) ? 1'bZ : SD_CLK; + assign SD_SPI_MOSI = (~mcp_en | mcp_sdcd) ? 1'bZ : SD_MOSI; + assign {SDIO_CLK,SDIO_CMD,SDIO_DAT} = av_dis ? 6'bZZZZZZ : (mcp_en | (SDCD_SPDIF & ~SW[2])) ? {vga_g,vga_r,vga_b} : {SD_CLK,SD_MOSI,SD_CS,3'bZZZ}; `else - `ifndef DUAL_SDRAM - wire sd_miso = SW[3] | SDIO_DAT[0]; - `else - wire sd_miso = 1; - `endif - wire SD_MISO = mcp_sdcd ? sd_miso : SD_SPI_MISO; + assign SD_CD = mcp_sdcd; + assign SD_MISO = mcp_sdcd | SD_SPI_MISO; + assign SD_SPI_CS = mcp_sdcd ? 1'bZ : SD_CS; + assign SD_SPI_CLK = mcp_sdcd ? 1'bZ : SD_CLK; + assign SD_SPI_MOSI = mcp_sdcd ? 1'bZ : SD_MOSI; `endif -`ifndef DUAL_SDRAM - assign SDIO_DAT[2:1]= 2'bZZ; - assign SDIO_DAT[3] = SW[3] ? 1'bZ : SD_CS; - assign SDIO_CLK = SW[3] ? 1'bZ : SD_CLK; - assign SDIO_CMD = SW[3] ? 1'bZ : SD_MOSI; - assign SD_SPI_CS = mcp_sdcd ? ((~VGA_EN & sog & ~cs1) ? 1'b1 : 1'bZ) : SD_CS; -`else - assign SD_SPI_CS = mcp_sdcd ? 1'bZ : SD_CS; -`endif - -assign SD_SPI_CLK = mcp_sdcd ? 1'bZ : SD_CLK; -assign SD_SPI_MOSI = mcp_sdcd ? 1'bZ : SD_MOSI; - ////////////////////// LEDs/Buttons /////////////////////////////////// reg [7:0] led_overtake = 0; @@ -175,36 +152,59 @@ wire led_d = led_disk[1] ? ~led_disk[0] : ~(led_disk[0] | gp_out[29]); wire led_u = ~led_user; wire led_locked; -`ifndef DUAL_SDRAM - assign LED_POWER = (SW[3] | led_p) ? 1'bZ : 1'b0; - assign LED_HDD = (SW[3] | led_d) ? 1'bZ : 1'b0; - assign LED_USER = (SW[3] | led_u) ? 1'bZ : 1'b0; -`endif - -//LEDs on main board +//LEDs on de10-nano board assign LED = (led_overtake & led_state) | (~led_overtake & {1'b0,led_locked,1'b0, ~led_p, 1'b0, ~led_d, 1'b0, ~led_u}); -wire btn_r, btn_o, btn_u; -`ifdef DUAL_SDRAM - assign {btn_r,btn_o,btn_u} = {mcp_btn[1],mcp_btn[2],mcp_btn[0]}; -`else - assign {btn_r,btn_o,btn_u} = ~{BTN_RESET,BTN_OSD,BTN_USER} | {mcp_btn[1],mcp_btn[2],mcp_btn[0]}; -`endif - wire [2:0] mcp_btn; wire mcp_sdcd; +wire mcp_en; +wire mcp_mode; mcp23009 mcp23009 ( .clk(FPGA_CLK2_50), .btn(mcp_btn), .led({led_p, led_d, led_u}), - .sd_cd(mcp_sdcd), + .flg_sd_cd(mcp_sdcd), + .flg_present(mcp_en), + .flg_mode(mcp_mode), .scl(IO_SCL), .sda(IO_SDA) ); +wire io_dig = mcp_en ? mcp_mode : SW[3]; + +`ifndef MISTER_DUAL_SDRAM + wire av_dis = io_dig | VGA_EN; + assign LED_POWER = av_dis ? 1'bZ : mcp_en ? de1 : led_p ? 1'bZ : 1'b0; + assign LED_HDD = av_dis ? 1'bZ : mcp_en ? (sog & ~cs1) : led_d ? 1'bZ : 1'b0; + //assign LED_USER = av_dis ? 1'bZ : mcp_en ? ~vga_tx_clk : led_u ? 1'bZ : 1'b0; + assign LED_USER = VGA_TX_CLK; + wire BTN_DIS = VGA_EN; +`else + wire BTN_RESET = 1'b1; + wire BTN_OSD = 1'b1; + wire BTN_USER = 1'b1; + wire BTN_DIS = 1'b1; +`endif + +reg BTN_EN = 0; +reg [25:0] btn_timeout = 0; +initial btn_timeout = 0; +always @(posedge FPGA_CLK2_50) begin + reg btn_up = 0; + reg btn_en = 0; + + btn_up <= BTN_RESET & BTN_OSD & BTN_USER; + if(~reset & btn_up & ~&btn_timeout) btn_timeout <= btn_timeout + 1'd1; + btn_en <= ~BTN_DIS; + BTN_EN <= &btn_timeout & btn_en; +end + +wire btn_r = (mcp_en | SW[3]) ? mcp_btn[1] : (BTN_EN & ~BTN_RESET); +wire btn_o = (mcp_en | SW[3]) ? mcp_btn[2] : (BTN_EN & ~BTN_OSD ); +wire btn_u = (mcp_en | SW[3]) ? mcp_btn[0] : (BTN_EN & ~BTN_USER ); reg btn_user, btn_osd; always @(posedge FPGA_CLK2_50) begin @@ -230,21 +230,21 @@ end // gp_in[31] = 0 - quick flag that FPGA is initialized (HPS reads 1 when FPGA is not in user mode) // used to avoid lockups while JTAG loading -wire [31:0] gp_in = {1'b0, btn_user | btn[1], btn_osd | btn[0], SW[3], 8'd0, io_ver, io_ack, io_wide, io_dout}; +wire [31:0] gp_in = {1'b0, btn_user | btn[1], btn_osd | btn[0], io_dig, 8'd0, io_ver, io_ack, io_wide, io_dout | io_dout_sys}; wire [31:0] gp_out; -wire [1:0] io_ver = 1; // 0 - standard MiST I/O (for quick porting of complex MiST cores). 1 - optimized HPS I/O. 2,3 - reserved for future. +wire [1:0] io_ver = 1; // 0 - obsolete. 1 - optimized HPS I/O. 2,3 - reserved for future. wire io_wait; wire io_wide; -wire [15:0] io_dout; +wire [15:0] io_dout; wire [15:0] io_din = gp_outr[15:0]; wire io_clk = gp_outr[17]; wire io_ss0 = gp_outr[18]; wire io_ss1 = gp_outr[19]; wire io_ss2 = gp_outr[20]; -`ifndef DEBUG_NOHDMI -wire io_osd_hdmi = io_ss1 & ~io_ss0; +`ifndef MISTER_DEBUG_NOHDMI + wire io_osd_hdmi = io_ss1 & ~io_ss0; `endif wire io_fpga = ~io_ss1 & io_ss0; @@ -268,7 +268,7 @@ always @(posedge clk_sys) begin gp_outd <= gp_out; end -`ifdef DUAL_SDRAM +`ifdef MISTER_DUAL_SDRAM wire [7:0] core_type = 'hA8; // generic core, dual SDRAM. `else wire [7:0] core_type = 'hA4; // generic core. @@ -285,48 +285,53 @@ cyclonev_hps_interface_mpu_general_purpose h2f_gp reg [15:0] cfg; - reg cfg_set = 0; -wire vga_fb = cfg[12]; -wire [1:0] hdmi_limited = {cfg[11],cfg[8]}; -`ifdef DEBUG_NOHDMI -wire direct_video = 1; +`ifdef MISTER_DEBUG_NOHDMI + wire vga_fb = 0; + wire direct_video = 1; `else -wire direct_video = cfg[10]; + wire vga_fb = cfg[12] | vga_force_scaler; + wire direct_video = cfg[10]; `endif -wire dvi_mode = cfg[7]; wire audio_96k = cfg[6]; wire csync_en = cfg[3]; -wire ypbpr_en = cfg[5]; wire io_osd_vga = io_ss1 & ~io_ss2; -`ifndef DUAL_SDRAM +`ifndef MISTER_DUAL_SDRAM + wire ypbpr_en = cfg[5]; wire sog = cfg[9]; - wire vga_scaler = cfg[2]; + `ifdef MISTER_DEBUG_NOHDMI + wire vga_scaler = 0; + `else + wire vga_scaler = cfg[2] | vga_force_scaler; + `endif `endif reg cfg_custom_t = 0; reg [5:0] cfg_custom_p1; reg [31:0] cfg_custom_p2; -reg [4:0] vol_att = 0; +reg [4:0] vol_att; +initial vol_att = 5'b11111; -reg [6:0] coef_addr; -reg [8:0] coef_data; +reg [11:0] coef_addr; +reg [9:0] coef_data; reg coef_wr = 0; -wire [7:0] ARX, ARY; +wire[12:0] ARX, ARY; reg [11:0] VSET = 0, HSET = 0; reg FREESCALE = 0; reg [2:0] scaler_flt; reg lowlat = 0; -reg cfg_dis = 0; +reg cfg_done = 0; reg vs_wait = 0; reg [11:0] vs_line = 0; reg scaler_out = 0; +reg vrr_mode = 0; +wire hdmi_blackout; reg [31:0] aflt_rate = 7056000; reg [39:0] acx = 4258969; @@ -337,27 +342,37 @@ reg [23:0] acy0 = -24'd6216759; reg [23:0] acy1 = 24'd6143386; reg [23:0] acy2 = -24'd2023767; reg areset = 0; +reg [12:0] arc1x = 0; +reg [12:0] arc1y = 0; +reg [12:0] arc2x = 0; +reg [12:0] arc2y = 0; +reg [15:0] io_dout_sys; always@(posedge clk_sys) begin reg [7:0] cmd; reg has_cmd; - reg old_strobe; reg [7:0] cnt = 0; reg vs_d0,vs_d1,vs_d2; reg [4:0] acx_att; + reg [7:0] fb_crc; - old_strobe <= io_strobe; coef_wr <= 0; +`ifndef MISTER_DEBUG_NOHDMI + shadowmask_wr <= 0; +`endif + if(~io_uio) begin has_cmd <= 0; cmd <= 0; areset <= 0; acx_att <= 0; acx <= acx >> acx_att; + io_dout_sys <= 0; end else - if(~old_strobe & io_strobe) begin + if(io_strobe) begin + io_dout_sys <= 0; if(!has_cmd) begin has_cmd <= 1; cmd <= io_din[7:0]; @@ -374,8 +389,13 @@ always@(posedge clk_sys) begin acy2 <= -24'd2023767; areset <= 1; end + if(io_din[7:0] == 'h20) io_dout_sys <= 'b11; +`ifndef MISTER_DEBUG_NOHDMI + if(io_din[7:0] == 'h40) io_dout_sys <= fb_crc; +`endif end else begin + cnt <= cnt + 1'd1; if(cmd == 1) begin cfg <= io_din; cfg_set <= 1; @@ -383,19 +403,18 @@ always@(posedge clk_sys) begin end if(cmd == 'h20) begin cfg_set <= 0; - cnt <= cnt + 1'd1; if(cnt<8) begin case(cnt[2:0]) - 0: if(WIDTH != io_din[11:0]) WIDTH <= io_din[11:0]; - 1: if(HFP != io_din[11:0]) HFP <= io_din[11:0]; - 2: if(HS != io_din[11:0]) HS <= io_din[11:0]; - 3: if(HBP != io_din[11:0]) HBP <= io_din[11:0]; - 4: if(HEIGHT != io_din[11:0]) HEIGHT <= io_din[11:0]; - 5: if(VFP != io_din[11:0]) VFP <= io_din[11:0]; - 6: if(VS != io_din[11:0]) VS <= io_din[11:0]; - 7: if(VBP != io_din[11:0]) VBP <= io_din[11:0]; + 0: {HDMI_PR,vrr_mode,WIDTH} <= {io_din[15:14], io_din[11:0]}; + 1: HFP <= io_din[11:0]; + 2: HS <= {io_din[15], io_din[11:0]}; + 3: HBP <= io_din[11:0]; + 4: HEIGHT <= io_din[11:0]; + 5: VFP <= io_din[11:0]; + 6: VS <= {io_din[15],io_din[11:0]}; + 7: VBP <= io_din[11:0]; endcase -`ifndef DEBUG_NOHDMI +`ifndef MISTER_DEBUG_NOHDMI if(cnt == 1) begin cfg_custom_p1 <= 0; cfg_custom_p2 <= 0; @@ -410,12 +429,11 @@ always@(posedge clk_sys) begin cfg_custom_t <= ~cfg_custom_t; cnt[2:0] <= 3'b100; end - if(cnt == 8) {lowlat,cfg_dis} <= io_din[15:14]; + if(cnt == 8) {lowlat,cfg_done} <= {io_din[15],1'b1}; `endif end end if(cmd == 'h2F) begin - cnt <= cnt + 1'd1; case(cnt[3:0]) 0: {LFB_EN,LFB_FLT,LFB_FMT} <= {io_din[15], io_din[14], io_din[5:0]}; 1: LFB_BASE[15:0] <= io_din[15:0]; @@ -426,17 +444,20 @@ always@(posedge clk_sys) begin 6: LFB_HMAX <= io_din[11:0]; 7: LFB_VMIN <= io_din[11:0]; 8: LFB_VMAX <= io_din[11:0]; + 9: LFB_STRIDE <= io_din[13:0]; endcase end if(cmd == 'h25) {led_overtake, led_state} <= io_din; if(cmd == 'h26) vol_att <= io_din[4:0]; if(cmd == 'h27) VSET <= io_din[11:0]; - if(cmd == 'h2A) {coef_wr,coef_addr,coef_data} <= {1'b1,io_din}; + if(cmd == 'h2A) begin + if(cnt[0]) {coef_wr,coef_data} <= {1'b1,io_din[9:0]}; + else coef_addr <= io_din[11:0]; + end if(cmd == 'h2B) scaler_flt <= io_din[2:0]; if(cmd == 'h37) {FREESCALE,HSET} <= {io_din[15],io_din[11:0]}; if(cmd == 'h38) vs_line <= io_din[11:0]; if(cmd == 'h39) begin - cnt <= cnt + 1'd1; case(cnt[3:0]) 0: acx_att <= io_din[4:0]; 1: aflt_rate[15:0] <= io_din; @@ -455,9 +476,52 @@ always@(posedge clk_sys) begin 14: acy2[23:16] <= io_din[7:0]; endcase end + if(cmd == 'h3A) begin + case(cnt[3:0]) + 0: arc1x <= io_din[12:0]; + 1: arc1y <= io_din[12:0]; + 2: arc2x <= io_din[12:0]; + 3: arc2y <= io_din[12:0]; + endcase + end +`ifndef MISTER_DEBUG_NOHDMI + if(cmd == 'h3E) {shadowmask_wr,shadowmask_data} <= {1'b1, io_din}; + if(cmd == 'h40) begin + case(cnt[3:0]) + 0: io_dout_sys <= {arxy, arx}; + 1: io_dout_sys <= {arxy, ary}; + 2: io_dout_sys <= {LFB_EN, FB_EN, FB_FMT}; + 3: io_dout_sys <= FB_WIDTH; + 4: io_dout_sys <= FB_HEIGHT; + 5: io_dout_sys <= FB_BASE[15:0]; + 6: io_dout_sys <= FB_BASE[31:16]; + 7: io_dout_sys <= FB_STRIDE; + endcase + end +`endif +`ifndef MISTER_DISABLE_YC + if(cmd == 'h41) begin + case(cnt[3:0]) + 0: {pal_en,cvbs,yc_en} <= io_din[2:0]; + 1: PhaseInc[15:0] <= io_din; + 2: PhaseInc[31:16] <= io_din; + 3: PhaseInc[39:32] <= io_din[7:0]; + 4: ColorBurst_Range[15:0] <= io_din; + 5: ColorBurst_Range[16] <= io_din[0]; + endcase + end +`endif end end +`ifndef MISTER_DEBUG_NOHDMI + fb_crc <= {LFB_EN, FB_EN, FB_FMT} + ^ FB_WIDTH[7:0] ^ FB_WIDTH[11:8] + ^ FB_HEIGHT[7:0] ^ FB_HEIGHT[11:8] + ^ arx[7:0] ^ arx[11:8] ^ arxy + ^ ary[7:0] ^ ary[11:8]; +`endif + vs_d0 <= HDMI_TX_VS; if(vs_d0 == HDMI_TX_VS) vs_d1 <= vs_d0; @@ -467,9 +531,7 @@ end cyclonev_hps_interface_peripheral_uart uart ( - .ri(0) -`ifndef ARCADE_SYS - , + .ri(0), .dsr(uart_dsr), .dcd(uart_dsr), .dtr(uart_dtr), @@ -478,18 +540,6 @@ cyclonev_hps_interface_peripheral_uart uart .rts(uart_rts), .rxd(uart_rxd), .txd(uart_txd) -`endif -); - -wire aspi_sck,aspi_mosi,aspi_ss,aspi_miso; -cyclonev_hps_interface_peripheral_spi_master spi -( - .sclk_out(aspi_sck), - .txd(aspi_mosi), // mosi - .rxd(aspi_miso), // miso - - .ss_0_n(aspi_ss), - .ss_in_n(1) ); wire [63:0] f2h_irq = {video_sync,HDMI_TX_VS}; @@ -533,7 +583,6 @@ sysmem_lite sysmem //DE10-nano has no reset signal on GPIO, so core has to emulate cold reset button. .reset_hps_cold_req(btn_r), -`ifdef USE_DDRAM //64-bit DDR3 RAM access .ram1_clk(ram_clk), .ram1_address(ram_address), @@ -545,7 +594,6 @@ sysmem_lite sysmem .ram1_writedata(ram_writedata), .ram1_byteenable(ram_byteenable), .ram1_write(ram_write), -`endif //64-bit DDR3 RAM access .ram2_clk(clk_audio), @@ -599,11 +647,13 @@ ddr_svc ddr_svc .ram_write(ram2_write), .ram_bcnt(ram2_bcnt), +`ifndef MISTER_DISABLE_ALSA .ch0_addr(alsa_address), .ch0_burst(1), .ch0_data(alsa_readdata), .ch0_req(alsa_req), .ch0_ready(alsa_ready), +`endif .ch1_addr(pal_addr), .ch1_burst(128), @@ -626,102 +676,125 @@ wire [15:0] vbuf_byteenable; wire vbuf_write; wire [23:0] hdmi_data; -wire hdmi_vs, hdmi_hs, hdmi_de, hdmi_vbl; +wire hdmi_vs, hdmi_hs, hdmi_de, hdmi_vbl, hdmi_brd; +wire freeze; -`ifndef DEBUG_NOHDMI -wire clk_hdmi = hdmi_clk_out; +`ifndef MISTER_DEBUG_NOHDMI + wire clk_hdmi = hdmi_clk_out; -ascal -#( - .RAMBASE(32'h20000000), -`ifndef USE_FB - .PALETTE2("false"), -`endif - .N_DW(128), - .N_AW(28) -) -ascal -( - .reset_na (~reset_req), - .run (1), - .freeze (0), + ascal + #( + .RAMBASE(32'h20000000), + `ifdef MISTER_SMALL_VBUF + .RAMSIZE(32'h00200000), + `else + .RAMSIZE(32'h00800000), + `endif + `ifndef MISTER_FB + .PALETTE2("false"), + `else + `ifndef MISTER_FB_PALETTE + .PALETTE2("false"), + `endif + `endif + `ifdef MISTER_DISABLE_ADAPTIVE + .ADAPTIVE("false"), + `endif + `ifdef MISTER_DOWNSCALE_NN + .DOWNSCALE_NN("true"), + `endif + .FRAC(8), + .N_DW(128), + .N_AW(28) + ) + ascal + ( + .reset_na (~reset_req), + .run (1), + .freeze (freeze), - .i_clk (clk_ihdmi), - .i_ce (ce_hpix), - .i_r (hr_out), - .i_g (hg_out), - .i_b (hb_out), - .i_hs (hhs_fix), - .i_vs (hvs_fix), - .i_fl (f1), - .i_de (hde_emu), - .iauto (1), - .himin (0), - .himax (0), - .vimin (0), - .vimax (0), + .i_clk (clk_ihdmi), + .i_ce (ce_hpix), + .i_r (hr_out), + .i_g (hg_out), + .i_b (hb_out), + .i_hs (hhs_fix), + .i_vs (hvs_fix), + .i_fl (f1), + .i_de (hde_emu), + .iauto (1), + .himin (0), + .himax (0), + .vimin (0), + .vimax (0), - .o_clk (clk_hdmi), - .o_ce (scaler_out), - .o_r (hdmi_data[23:16]), - .o_g (hdmi_data[15:8]), - .o_b (hdmi_data[7:0]), - .o_hs (hdmi_hs), - .o_vs (hdmi_vs), - .o_de (hdmi_de), - .o_vbl (hdmi_vbl), - .o_lltune (lltune), - .htotal (WIDTH + HFP + HBP + HS), - .hsstart (WIDTH + HFP), - .hsend (WIDTH + HFP + HS), - .hdisp (WIDTH), - .hmin (hmin), - .hmax (hmax), - .vtotal (HEIGHT + VFP + VBP + VS), - .vsstart (HEIGHT + VFP), - .vsend (HEIGHT + VFP + VS), - .vdisp (HEIGHT), - .vmin (vmin), - .vmax (vmax), + .o_clk (clk_hdmi), + .o_ce (scaler_out), + .o_r (hdmi_data[23:16]), + .o_g (hdmi_data[15:8]), + .o_b (hdmi_data[7:0]), + .o_hs (hdmi_hs), + .o_vs (hdmi_vs), + .o_de (hdmi_de), + .o_vbl (hdmi_vbl), + .o_brd (hdmi_brd), + .o_lltune (lltune), + .htotal (WIDTH + HFP + HBP + HS[11:0]), + .hsstart (WIDTH + HFP), + .hsend (WIDTH + HFP + HS[11:0]), + .hdisp (WIDTH), + .hmin (hmin), + .hmax (hmax), + .vtotal (HEIGHT + VFP + VBP + VS[11:0]), + .vsstart (HEIGHT + VFP), + .vsend (HEIGHT + VFP + VS[11:0]), + .vdisp (HEIGHT), + .vmin (vmin), + .vmax (vmax), + .vrr (vrr_mode), + .vrrmax (HEIGHT + VBP + VS[11:0] + 12'd1), + .swblack (hdmi_blackout), - .mode ({~lowlat,LFB_EN ? LFB_FLT : |scaler_flt,2'b00}), - .poly_clk (clk_sys), - .poly_a (coef_addr), - .poly_dw (coef_data), - .poly_wr (coef_wr), + .mode ({~lowlat,LFB_EN ? LFB_FLT : |scaler_flt,2'b00}), + .poly_clk (clk_sys), + .poly_a (coef_addr), + .poly_dw (coef_data), + .poly_wr (coef_wr), - .pal1_clk (clk_pal), - .pal1_dw (pal_d), - .pal1_a (pal_a), - .pal1_wr (pal_wr), + .pal1_clk (clk_pal), + .pal1_dw (pal_d), + .pal1_a (pal_a), + .pal1_wr (pal_wr), -`ifdef USE_FB - .pal2_clk (fb_pal_clk), - .pal2_dw (fb_pal_d), - .pal2_dr (fb_pal_q), - .pal2_a (fb_pal_a), - .pal2_wr (fb_pal_wr), - .pal_n (fb_en), -`endif + `ifdef MISTER_FB + `ifdef MISTER_FB_PALETTE + .pal2_clk (fb_pal_clk), + .pal2_dw (fb_pal_d), + .pal2_dr (fb_pal_q), + .pal2_a (fb_pal_a), + .pal2_wr (fb_pal_wr), + .pal_n (fb_en), + `endif + `endif - .o_fb_ena (FB_EN), - .o_fb_hsize (FB_WIDTH), - .o_fb_vsize (FB_HEIGHT), - .o_fb_format (FB_FMT), - .o_fb_base (FB_BASE), - .o_fb_stride (FB_STRIDE), + .o_fb_ena (FB_EN), + .o_fb_hsize (FB_WIDTH), + .o_fb_vsize (FB_HEIGHT), + .o_fb_format (FB_FMT), + .o_fb_base (FB_BASE), + .o_fb_stride (FB_STRIDE), - .avl_clk (clk_100m), - .avl_waitrequest (vbuf_waitrequest), - .avl_readdata (vbuf_readdata), - .avl_readdatavalid(vbuf_readdatavalid), - .avl_burstcount (vbuf_burstcount), - .avl_writedata (vbuf_writedata), - .avl_address (vbuf_address), - .avl_write (vbuf_write), - .avl_read (vbuf_read), - .avl_byteenable (vbuf_byteenable) -); + .avl_clk (clk_100m), + .avl_waitrequest (vbuf_waitrequest), + .avl_readdata (vbuf_readdata), + .avl_readdatavalid(vbuf_readdatavalid), + .avl_burstcount (vbuf_burstcount), + .avl_writedata (vbuf_writedata), + .avl_address (vbuf_address), + .avl_write (vbuf_write), + .avl_read (vbuf_read), + .avl_byteenable (vbuf_byteenable) + ); `endif reg LFB_EN = 0; @@ -734,6 +807,7 @@ reg [11:0] LFB_HMAX = 0; reg [11:0] LFB_VMIN = 0; reg [11:0] LFB_VMAX = 0; reg [31:0] LFB_BASE = 0; +reg [13:0] LFB_STRIDE = 0; reg FB_EN = 0; reg [5:0] FB_FMT = 0; @@ -749,7 +823,7 @@ always @(posedge clk_sys) begin FB_WIDTH <= LFB_WIDTH; FB_HEIGHT <= LFB_HEIGHT; FB_BASE <= LFB_BASE; - FB_STRIDE <= 0; + FB_STRIDE <= LFB_STRIDE; end else begin FB_FMT <= fb_fmt; @@ -760,77 +834,152 @@ always @(posedge clk_sys) begin end end -`ifdef USE_FB -reg fb_vbl; -always @(posedge clk_vid) fb_vbl <= hdmi_vbl; +`ifdef MISTER_FB + reg fb_vbl; + always @(posedge clk_vid) fb_vbl <= hdmi_vbl; `endif +reg ar_md_start; +wire ar_md_busy; +reg [11:0] ar_md_mul1, ar_md_mul2, ar_md_div; +wire [11:0] ar_md_res; + +sys_umuldiv #(12,12,12) ar_muldiv +( + .clk(clk_vid), + .start(ar_md_start), + .busy(ar_md_busy), + + .mul1(ar_md_mul1), + .mul2(ar_md_mul2), + .div(ar_md_div), + .result(ar_md_res) +); + reg [11:0] hmin; reg [11:0] hmax; reg [11:0] vmin; reg [11:0] vmax; +reg [11:0] hdmi_height; +reg [11:0] hdmi_width; + +reg [11:0] arx; +reg [11:0] ary; +reg arxy; always @(posedge clk_vid) begin - reg [31:0] wcalc; - reg [31:0] hcalc; + reg [11:0] hmini,hmaxi,vmini,vmaxi; + reg [11:0] wcalc,videow; + reg [11:0] hcalc,videoh; reg [2:0] state; - reg [11:0] videow; - reg [11:0] videoh; - reg [11:0] height; - reg [11:0] width; - height <= (VSET && (VSET < HEIGHT)) ? VSET : HEIGHT; - width <= (HSET && (HSET < WIDTH)) ? HSET : WIDTH; + hdmi_height <= (VSET && (VSET < HEIGHT)) ? VSET : HEIGHT; + hdmi_width <= (HSET && (HSET < WIDTH)) ? HSET << HDMI_PR : WIDTH << HDMI_PR; + if(!ARY) begin + if(ARX == 1) begin + arx <= arc1x[11:0]; + ary <= arc1y[11:0]; + arxy <= arc1x[12] | arc1y[12]; + end + else if(ARX == 2) begin + arx <= arc2x[11:0]; + ary <= arc2y[11:0]; + arxy <= arc2x[12] | arc2y[12]; + end + else begin + arx <= 0; + ary <= 0; + arxy <= 0; + end + end + else begin + arx <= ARX[11:0]; + ary <= ARY[11:0]; + arxy <= ARX[12] | ARY[12]; + end + + ar_md_start <= 0; state <= state + 1'd1; case(state) 0: if(LFB_EN) begin - hmin <= LFB_HMIN; - vmin <= LFB_VMIN; - hmax <= LFB_HMAX; - vmax <= LFB_VMAX; - state<= 0; + hmini <= LFB_HMIN; + vmini <= LFB_VMIN; + hmaxi <= LFB_HMAX; + vmaxi <= LFB_VMAX; + state <= 0; end - else if(ARX && ARY && !FREESCALE) begin - wcalc <= (height*ARX)/ARY; - hcalc <= (width*ARY)/ARX; + else if(FREESCALE || !arx || !ary) begin + wcalc <= hdmi_width; + hcalc <= hdmi_height; + state <= 6; end - else begin - wcalc <= width; - hcalc <= height; + else if(arxy) begin + wcalc <= arx; + hcalc <= ary; + state <= 6; end + + 1: begin + ar_md_mul1 <= hdmi_height; + ar_md_mul2 <= arx; + ar_md_div <= ary; + ar_md_start<= 1; + end + 2: begin + wcalc <= ar_md_res; + if(ar_md_start | ar_md_busy) state <= 2; + end + + 3: begin + ar_md_mul1 <= hdmi_width; + ar_md_mul2 <= ary; + ar_md_div <= arx; + ar_md_start<= 1; + end + 4: begin + hcalc <= ar_md_res; + if(ar_md_start | ar_md_busy) state <= 4; + end + 6: begin - videow <= (wcalc > width) ? width : wcalc[11:0]; - videoh <= (hcalc > height) ? height : hcalc[11:0]; + videow <= (wcalc > hdmi_width) ? (hdmi_width >> HDMI_PR) : (wcalc[11:0] >> HDMI_PR); + videoh <= (hcalc > hdmi_height) ? hdmi_height : hcalc[11:0]; end + 7: begin - hmin <= ((WIDTH - videow)>>1); - hmax <= ((WIDTH - videow)>>1) + videow - 1'd1; - vmin <= ((HEIGHT - videoh)>>1); - vmax <= ((HEIGHT - videoh)>>1) + videoh - 1'd1; + hmini <= ((WIDTH - videow)>>1); + hmaxi <= ((WIDTH - videow)>>1) + videow - 1'd1; + vmini <= ((HEIGHT - videoh)>>1); + vmaxi <= ((HEIGHT - videoh)>>1) + videoh - 1'd1; end endcase + + hmin <= hmini; + hmax <= hmaxi; + vmin <= vmini; + vmax <= vmaxi; end -`ifndef DEBUG_NOHDMI -wire [15:0] lltune; -pll_hdmi_adj pll_hdmi_adj -( - .clk(FPGA_CLK1_50), - .reset_na(~reset_req), +`ifndef MISTER_DEBUG_NOHDMI + wire [15:0] lltune; + pll_hdmi_adj pll_hdmi_adj + ( + .clk(FPGA_CLK1_50), + .reset_na(~reset_req), - .llena(lowlat), - .lltune({16{hdmi_config_done | cfg_dis}} & lltune), - .locked(led_locked), - .i_waitrequest(adj_waitrequest), - .i_write(adj_write), - .i_address(adj_address), - .i_writedata(adj_data), - .o_waitrequest(cfg_waitrequest), - .o_write(cfg_write), - .o_address(cfg_address), - .o_writedata(cfg_data) -); + .llena(lowlat), + .lltune({16{cfg_done}} & lltune), + .locked(led_locked), + .i_waitrequest(adj_waitrequest), + .i_write(adj_write), + .i_address(adj_address), + .i_writedata(adj_data), + .o_waitrequest(cfg_waitrequest), + .o_write(cfg_write), + .o_address(cfg_address), + .o_writedata(cfg_data) + ); `else assign led_locked = 0; `endif @@ -855,27 +1004,28 @@ end ///////////////////////// HDMI output ///////////////////////////////// -`ifndef DEBUG_NOHDMI -wire hdmi_clk_out; -pll_hdmi pll_hdmi -( - .refclk(FPGA_CLK1_50), - .rst(reset_req), - .reconfig_to_pll(reconfig_to_pll), - .reconfig_from_pll(reconfig_from_pll), - .outclk_0(hdmi_clk_out) -); +`ifndef MISTER_DEBUG_NOHDMI + wire hdmi_clk_out; + pll_hdmi pll_hdmi + ( + .refclk(FPGA_CLK1_50), + .rst(reset_req), + .reconfig_to_pll(reconfig_to_pll), + .reconfig_from_pll(reconfig_from_pll), + .outclk_0(hdmi_clk_out) + ); `endif //1920x1080@60 PCLK=148.5MHz CEA -reg [11:0] WIDTH = 1920; -reg [11:0] HFP = 88; -reg [11:0] HS = 48; -reg [11:0] HBP = 148; -reg [11:0] HEIGHT = 1080; -reg [11:0] VFP = 4; -reg [11:0] VS = 5; -reg [11:0] VBP = 36; +reg [11:0] WIDTH = 1920; +reg [11:0] HFP = 88; +reg [12:0] HS = 48; +reg [11:0] HBP = 148; +reg [11:0] HEIGHT = 1080; +reg [11:0] VFP = 4; +reg [12:0] VS = 5; +reg [11:0] VBP = 36; +reg HDMI_PR = 0; wire [63:0] reconfig_to_pll; wire [63:0] reconfig_from_pll; @@ -887,175 +1037,178 @@ reg adj_write; reg [5:0] adj_address; reg [31:0] adj_data; -`ifndef DEBUG_NOHDMI -pll_cfg pll_cfg -( - .mgmt_clk(FPGA_CLK1_50), - .mgmt_reset(reset_req), - .mgmt_waitrequest(cfg_waitrequest), - .mgmt_read(0), - .mgmt_readdata(), - .mgmt_write(cfg_write), - .mgmt_address(cfg_address), - .mgmt_writedata(cfg_data), - .reconfig_to_pll(reconfig_to_pll), - .reconfig_from_pll(reconfig_from_pll) -); +`ifndef MISTER_DEBUG_NOHDMI + pll_cfg_hdmi pll_cfg_hdmi + ( + .mgmt_clk(FPGA_CLK1_50), + .mgmt_reset(reset_req), + .mgmt_waitrequest(cfg_waitrequest), + .mgmt_write(cfg_write), + .mgmt_address(cfg_address), + .mgmt_writedata(cfg_data), + .reconfig_to_pll(reconfig_to_pll), + .reconfig_from_pll(reconfig_from_pll) + ); -reg cfg_got = 0; -always @(posedge clk_sys) begin - reg vsd, vsd2; - if(~cfg_ready || ~cfg_set) cfg_got <= cfg_set; - else begin - vsd <= HDMI_TX_VS; - vsd2 <= vsd; - if(~vsd2 & vsd) cfg_got <= cfg_set; - end -end - -reg cfg_ready = 0; -always @(posedge FPGA_CLK1_50) begin - reg gotd = 0, gotd2 = 0; - reg custd = 0, custd2 = 0; - reg old_wait = 0; - - gotd <= cfg_got; - gotd2 <= gotd; - - adj_write <= 0; - - custd <= cfg_custom_t; - custd2 <= custd; - if(custd2 != custd & ~gotd) begin - adj_address <= cfg_custom_p1; - adj_data <= cfg_custom_p2; - adj_write <= 1; + reg cfg_got = 0; + always @(posedge clk_sys) begin + reg vsd, vsd2; + if(~cfg_ready || ~cfg_set) cfg_got <= cfg_set; + else begin + vsd <= HDMI_TX_VS; + vsd2 <= vsd; + if(~vsd2 & vsd) cfg_got <= cfg_set; + end end - if(~gotd2 & gotd) begin - adj_address <= 2; - adj_data <= 0; - adj_write <= 1; + reg cfg_ready = 0; + always @(posedge FPGA_CLK1_50) begin + reg gotd = 0, gotd2 = 0; + reg custd = 0, custd2 = 0; + reg old_wait = 0; + + gotd <= cfg_got; + gotd2 <= gotd; + + adj_write <= 0; + + custd <= cfg_custom_t; + custd2 <= custd; + if(custd2 != custd & ~gotd) begin + adj_address <= cfg_custom_p1; + adj_data <= cfg_custom_p2; + adj_write <= 1; + end + + if(~gotd2 & gotd) begin + adj_address <= 2; + adj_data <= 0; + adj_write <= 1; + end + + old_wait <= adj_waitrequest; + if(old_wait & ~adj_waitrequest & gotd) cfg_ready <= 1; end - - old_wait <= adj_waitrequest; - if(old_wait & ~adj_waitrequest & gotd) cfg_ready <= 1; -end - `else - -wire cfg_ready = 1; - + wire cfg_ready = 1; `endif -wire hdmi_config_done; -hdmi_config hdmi_config +assign HDMI_I2C_SCL = hdmi_scl_en ? 1'b0 : 1'bZ; +assign HDMI_I2C_SDA = hdmi_sda_en ? 1'b0 : 1'bZ; + +wire hdmi_scl_en, hdmi_sda_en; +cyclonev_hps_interface_peripheral_i2c hdmi_i2c ( - .iCLK(FPGA_CLK1_50), - .iRST_N(cfg_ready & ~HDMI_TX_INT & ~cfg_dis), - .done(hdmi_config_done), - - .I2C_SCL(HDMI_I2C_SCL), - .I2C_SDA(HDMI_I2C_SDA), - - .dvi_mode(dvi_mode), - .audio_96k(audio_96k), - .limited(hdmi_limited), - .ypbpr(ypbpr_en & direct_video) + .out_clk(hdmi_scl_en), + .scl(HDMI_I2C_SCL), + .out_data(hdmi_sda_en), + .sda(HDMI_I2C_SDA) ); -`ifndef DEBUG_NOHDMI -wire [23:0] hdmi_data_sl; -wire hdmi_de_sl, hdmi_vs_sl, hdmi_hs_sl; +`ifndef MISTER_DEBUG_NOHDMI + `ifdef MISTER_FB + reg dis_output; + always @(posedge clk_hdmi) begin + reg dis; + dis <= fb_force_blank & ~LFB_EN; + dis_output <= dis; + end + `else + wire dis_output = 0; + `endif -`ifdef USE_FB -reg dis_output; -always @(posedge clk_hdmi) begin - reg dis; - dis <= fb_force_blank; - dis_output <= dis; -end -`else -wire dis_output = 0; + wire [23:0] hdmi_data_mask; + wire hdmi_de_mask, hdmi_vs_mask, hdmi_hs_mask; + + reg [15:0] shadowmask_data; + reg shadowmask_wr = 0; + + shadowmask HDMI_shadowmask + ( + .clk(clk_hdmi), + .clk_sys(clk_sys), + + .cmd_wr(shadowmask_wr), + .cmd_in(shadowmask_data), + + .din(dis_output ? 24'd0 : hdmi_data), + .hs_in(hdmi_hs), + .vs_in(hdmi_vs), + .de_in(hdmi_de), + .brd_in(hdmi_brd), + .enable(~LFB_EN), + + .dout(hdmi_data_mask), + .hs_out(hdmi_hs_mask), + .vs_out(hdmi_vs_mask), + .de_out(hdmi_de_mask) + ); + + wire [23:0] hdmi_data_osd; + wire hdmi_de_osd, hdmi_vs_osd, hdmi_hs_osd; + + osd hdmi_osd + ( + .clk_sys(clk_sys), + + .io_osd(io_osd_hdmi), + .io_strobe(io_strobe), + .io_din(io_din), + + .clk_video(clk_hdmi), + .din(hdmi_data_mask), + .hs_in(hdmi_hs_mask), + .vs_in(hdmi_vs_mask), + .de_in(hdmi_de_mask), + + .dout(hdmi_data_osd), + .hs_out(hdmi_hs_osd), + .vs_out(hdmi_vs_osd), + .de_out(hdmi_de_osd) + ); + + wire hdmi_cs_osd; + csync csync_hdmi(clk_hdmi, hdmi_hs_osd, hdmi_vs_osd, hdmi_cs_osd); `endif -scanlines #(1) HDMI_scanlines -( - .clk(clk_hdmi), - - .scanlines(scanlines), - .din(dis_output ? 24'd0 : hdmi_data), - .hs_in(hdmi_hs), - .vs_in(hdmi_vs), - .de_in(hdmi_de), - - .dout(hdmi_data_sl), - .hs_out(hdmi_hs_sl), - .vs_out(hdmi_vs_sl), - .de_out(hdmi_de_sl) -); - -wire [23:0] hdmi_data_osd; -wire hdmi_de_osd, hdmi_vs_osd, hdmi_hs_osd; - -osd hdmi_osd -( - .clk_sys(clk_sys), - - .io_osd(io_osd_hdmi), - .io_strobe(io_strobe), - .io_din(io_din), - - .clk_video(clk_hdmi), - .din(hdmi_data_sl), - .hs_in(hdmi_hs_sl), - .vs_in(hdmi_vs_sl), - .de_in(hdmi_de_sl), - - .dout(hdmi_data_osd), - .hs_out(hdmi_hs_osd), - .vs_out(hdmi_vs_osd), - .de_out(hdmi_de_osd) -`ifndef ARCADE_SYS - , - .osd_status(osd_status) -`endif -); -`endif - -wire hdmi_cs_osd; -csync csync_hdmi(clk_hdmi, hdmi_hs_osd, hdmi_vs_osd, hdmi_cs_osd); - reg [23:0] dv_data; reg dv_hs, dv_vs, dv_de; +wire [23:0] dv_data_osd; +wire dv_hs_osd, dv_vs_osd, dv_cs_osd; + always @(posedge clk_vid) begin reg [23:0] dv_d1, dv_d2; reg dv_de1, dv_de2, dv_hs1, dv_hs2, dv_vs1, dv_vs2; - reg [12:0] vsz, vcnt; + reg [12:0] vsz, vcnt, vcnt_l, vcnt_ll; reg old_hs, old_vs; reg vde; reg [3:0] hss; if(ce_pix) begin - hss <= (hss << 1) | vga_hs_osd; + hss <= (hss << 1) | dv_hs_osd; - old_hs <= vga_hs_osd; - if(~old_hs && vga_hs_osd) begin - old_vs <= vga_vs_osd; + old_hs <= dv_hs_osd; + if(~old_hs && dv_hs_osd) begin + old_vs <= dv_vs_osd; if(~&vcnt) vcnt <= vcnt + 1'd1; - if(~old_vs & vga_vs_osd & ~f1) vsz <= vcnt; - if(old_vs & ~vga_vs_osd) vcnt <= 0; + if(~old_vs & dv_vs_osd) begin + if (vcnt != vcnt_ll || vcnt < vcnt_l) vsz <= vcnt; + vcnt_l <= vcnt; + vcnt_ll <= vcnt_l; + end + if(old_vs & ~dv_vs_osd) vcnt <= 0; if(vcnt == 1) vde <= 1; if(vcnt == vsz - 3) vde <= 0; end - dv_de1 <= !{hss,vga_hs_osd} && vde; - dv_hs1 <= csync_en ? vga_cs_osd : vga_hs_osd; - dv_vs1 <= vga_vs_osd; + dv_de1 <= !{hss,dv_hs_osd} && vde; end - dv_d1 <= vga_data_osd; + dv_d1 <= dv_data_osd; + dv_hs1 <= csync_en ? dv_cs_osd : dv_hs_osd; + dv_vs1 <= dv_vs_osd; + dv_d2 <= dv_d1; dv_de2 <= dv_de1; dv_hs2 <= dv_hs1; @@ -1067,16 +1220,22 @@ always @(posedge clk_vid) begin dv_vs <= dv_vs2; end -wire hdmi_tx_clk; -`ifndef DEBUG_NOHDMI -cyclonev_clkselect hdmi_clk_sw -( - .clkselect({1'b1, ~vga_fb & direct_video}), - .inclk({clk_vid, hdmi_clk_out, 2'b00}), - .outclk(hdmi_tx_clk) -); +`ifndef MISTER_DISABLE_YC + assign {dv_data_osd, dv_hs_osd, dv_vs_osd, dv_cs_osd } = ~yc_en ? {vga_data_osd, vga_hs_osd, vga_vs_osd, vga_cs_osd } : {yc_o, yc_hs, yc_vs, yc_cs }; `else -assign hdmi_tx_clk = clk_vid; + assign {dv_data_osd, dv_hs_osd, dv_vs_osd, dv_cs_osd } = {vga_data_osd, vga_hs_osd, vga_vs_osd, vga_cs_osd }; +`endif + +wire hdmi_tx_clk; +`ifndef MISTER_DEBUG_NOHDMI + cyclonev_clkselect hdmi_clk_sw + ( + .clkselect({1'b1, ~vga_fb & direct_video}), + .inclk({clk_vid, hdmi_clk_out, 2'b00}), + .outclk(hdmi_tx_clk) + ); +`else + assign hdmi_tx_clk = clk_vid; `endif altddio_out @@ -1110,13 +1269,28 @@ reg hdmi_out_de; reg [23:0] hdmi_out_d; always @(posedge hdmi_tx_clk) begin + reg [23:0] hdmi_dv_data; + reg hdmi_dv_hs, hdmi_dv_vs, hdmi_dv_de; + reg hs,vs,de; reg [23:0] d; - hs <= (~vga_fb & direct_video) ? dv_hs : (direct_video & csync_en) ? hdmi_cs_osd : hdmi_hs_osd; - vs <= (~vga_fb & direct_video) ? dv_vs : hdmi_vs_osd; - de <= (~vga_fb & direct_video) ? dv_de : hdmi_de_osd; - d <= (~vga_fb & direct_video) ? dv_data : hdmi_data_osd; + hdmi_dv_data <= dv_data; + hdmi_dv_hs <= dv_hs; + hdmi_dv_vs <= dv_vs; + hdmi_dv_de <= dv_de; + +`ifndef MISTER_DEBUG_NOHDMI + hs <= (~vga_fb & direct_video) ? hdmi_dv_hs : (direct_video & csync_en) ? hdmi_cs_osd : hdmi_hs_osd; + vs <= (~vga_fb & direct_video) ? hdmi_dv_vs : hdmi_vs_osd; + de <= (~vga_fb & direct_video) ? hdmi_dv_de : hdmi_de_osd; + d <= (~vga_fb & direct_video) ? hdmi_dv_data : hdmi_data_osd; +`else + hs <= hdmi_dv_hs; + vs <= hdmi_dv_vs; + de <= hdmi_dv_de; + d <= hdmi_dv_data; +`endif hdmi_out_hs <= hs; hdmi_out_vs <= vs; @@ -1131,8 +1305,48 @@ assign HDMI_TX_D = hdmi_out_d; ///////////////////////// VGA output ////////////////////////////////// +`ifndef MISTER_DUAL_SDRAM + wire vga_tx_clk; + `ifndef MISTER_DEBUG_NOHDMI + cyclonev_clkselect vga_clk_sw + ( + .clkselect({1'b1, ~vga_fb & ~vga_scaler}), + .inclk({clk_vid, hdmi_clk_out, 2'b00}), + .outclk(vga_tx_clk) + ); + `else + assign vga_tx_clk = clk_vid; + `endif + + wire VGA_TX_CLK; + altddio_out + #( + .extend_oe_disable("OFF"), + .intended_device_family("Cyclone V"), + .invert_output("OFF"), + .lpm_hint("UNUSED"), + .lpm_type("altddio_out"), + .oe_reg("UNREGISTERED"), + .power_up_high("OFF"), + .width(1) + ) + vgaclk_ddr + ( + .datain_h(1'b0), + .datain_l(1'b1), + .outclock(vga_tx_clk), + .dataout(VGA_TX_CLK), + .aclr(~mcp_en & ~av_dis), + .aset(1'b0), + .oe(~av_dis & (mcp_en | ~led_u)), + .outclocken(1'b1), + .sclr(1'b0), + .sset(1'b0) + ); +`endif + wire [23:0] vga_data_sl; -wire vga_de_sl, vga_vs_sl, vga_hs_sl; +wire vga_de_sl, vga_ce_sl, vga_vs_sl, vga_hs_sl; scanlines #(0) VGA_scanlines ( .clk(clk_vid), @@ -1142,15 +1356,17 @@ scanlines #(0) VGA_scanlines .hs_in(hs_fix), .vs_in(vs_fix), .de_in(de_emu), + .ce_in(ce_pix), .dout(vga_data_sl), .hs_out(vga_hs_sl), .vs_out(vga_vs_sl), - .de_out(vga_de_sl) + .de_out(vga_de_sl), + .ce_out(vga_ce_sl) ); wire [23:0] vga_data_osd; -wire vga_vs_osd, vga_hs_osd; +wire vga_vs_osd, vga_hs_osd, vga_de_osd; osd vga_osd ( .clk_sys(clk_sys), @@ -1158,6 +1374,7 @@ osd vga_osd .io_osd(io_osd_vga), .io_strobe(io_strobe), .io_din(io_din), + .osd_status(osd_status), .clk_video(clk_vid), .din(vga_data_sl), @@ -1167,31 +1384,104 @@ osd vga_osd .dout(vga_data_osd), .hs_out(vga_hs_osd), - .vs_out(vga_vs_osd) + .vs_out(vga_vs_osd), + .de_out(vga_de_osd) ); wire vga_cs_osd; csync csync_vga(clk_vid, vga_hs_osd, vga_vs_osd, vga_cs_osd); -`ifndef DUAL_SDRAM - wire [23:0] vga_o; +`ifndef MISTER_DISABLE_YC + reg pal_en; + reg yc_en; + reg cvbs; + reg [16:0] ColorBurst_Range; + reg [39:0] PhaseInc; + wire [23:0] yc_o; + wire yc_hs, yc_vs, yc_cs, yc_de; + + yc_out yc_out + ( + .clk(clk_vid), + .PAL_EN(pal_en), + .CVBS(cvbs), + .PHASE_INC(PhaseInc), + .COLORBURST_RANGE(ColorBurst_Range), + .hsync(vga_hs_osd), + .vsync(vga_vs_osd), + .csync(vga_cs_osd), + .de(vga_de_osd), + .dout(yc_o), + .din(vga_data_osd), + .hsync_o(yc_hs), + .vsync_o(yc_vs), + .csync_o(yc_cs), + .de_o(yc_de) + ); +`endif + +`ifndef MISTER_DUAL_SDRAM + wire VGA_DISABLE; + wire [23:0] vgas_o; + wire vgas_hs, vgas_vs, vgas_cs, vgas_de; + `ifndef MISTER_DEBUG_NOHDMI + vga_out vga_scaler_out + ( + .clk(clk_hdmi), + .ypbpr_en(ypbpr_en), + .hsync(hdmi_hs_osd), + .vsync(hdmi_vs_osd), + .csync(hdmi_cs_osd), + .de(hdmi_de_osd), + .dout(vgas_o), + .din({24{hdmi_de_osd}} & hdmi_data_osd), + .hsync_o(vgas_hs), + .vsync_o(vgas_vs), + .csync_o(vgas_cs), + .de_o(vgas_de) + ); + `else + assign {vgas_o, vgas_hs, vgas_vs, vgas_cs, vgas_de} = 0; + `endif + + wire [23:0] vga_o, vga_o_t; + wire vga_hs, vga_vs, vga_cs, vga_de, vga_hs_t, vga_vs_t, vga_cs_t, vga_de_t; vga_out vga_out ( - .ypbpr_full(0), + .clk(clk_vid), .ypbpr_en(ypbpr_en), - .dout(vga_o), - .din((vga_fb | vga_scaler) ? {24{hdmi_de_osd}} & hdmi_data_osd : vga_data_osd) + .hsync(vga_hs_osd), + .vsync(vga_vs_osd), + .csync(vga_cs_osd), + .de(vga_de_osd), + .dout(vga_o_t), + .din(vga_data_osd), + .hsync_o(vga_hs_t), + .vsync_o(vga_vs_t), + .csync_o(vga_cs_t), + .de_o(vga_de_t) ); - wire vs1 = (vga_fb | vga_scaler) ? hdmi_vs_osd : vga_vs_osd; - wire hs1 = (vga_fb | vga_scaler) ? hdmi_hs_osd : vga_hs_osd; - wire cs1 = (vga_fb | vga_scaler) ? hdmi_cs_osd : vga_cs_osd; + `ifndef MISTER_DISABLE_YC + assign {vga_o, vga_hs, vga_vs, vga_cs, vga_de } = ~yc_en ? {vga_o_t, vga_hs_t, vga_vs_t, vga_cs_t, vga_de_t } : {yc_o, yc_hs, yc_vs, yc_cs, yc_de }; + `else + assign {vga_o, vga_hs, vga_vs, vga_cs, vga_de } = {vga_o_t, vga_hs_t, vga_vs_t, vga_cs_t, vga_de_t } ; + `endif - assign VGA_VS = (VGA_EN | SW[3]) ? 1'bZ : csync_en ? 1'b1 : ~vs1; - assign VGA_HS = (VGA_EN | SW[3]) ? 1'bZ : csync_en ? ~cs1 : ~hs1; - assign VGA_R = (VGA_EN | SW[3]) ? 6'bZZZZZZ : vga_o[23:18]; - assign VGA_G = (VGA_EN | SW[3]) ? 6'bZZZZZZ : vga_o[15:10]; - assign VGA_B = (VGA_EN | SW[3]) ? 6'bZZZZZZ : vga_o[7:2]; + wire vgas_en = vga_fb | vga_scaler; + + wire cs1 = vgas_en ? vgas_cs : vga_cs; + wire de1 = vgas_en ? vgas_de : vga_de; + + assign VGA_VS = av_dis ? 1'bZ : ((vgas_en ? (~vgas_vs ^ VS[12]) : VGA_DISABLE ? 1'd1 : ~vga_vs) | csync_en); + assign VGA_HS = av_dis ? 1'bZ : (vgas_en ? ((csync_en ? ~vgas_cs : ~vgas_hs) ^ HS[12]) : VGA_DISABLE ? 1'd1 : (csync_en ? ~vga_cs : ~vga_hs)); + assign VGA_R = av_dis ? 6'bZZZZZZ : vgas_en ? vgas_o[23:18] : VGA_DISABLE ? 6'd0 : vga_o[23:18]; + assign VGA_G = av_dis ? 6'bZZZZZZ : vgas_en ? vgas_o[15:10] : VGA_DISABLE ? 6'd0 : vga_o[15:10]; + assign VGA_B = av_dis ? 6'bZZZZZZ : vgas_en ? vgas_o[7:2] : VGA_DISABLE ? 6'd0 : vga_o[7:2] ; + + wire [1:0] vga_r = vgas_en ? vgas_o[17:16] : VGA_DISABLE ? 2'd0 : vga_o[17:16]; + wire [1:0] vga_g = vgas_en ? vgas_o[9:8] : VGA_DISABLE ? 2'd0 : vga_o[9:8]; + wire [1:0] vga_b = vgas_en ? vgas_o[1:0] : VGA_DISABLE ? 2'd0 : vga_o[1:0]; `endif reg video_sync = 0; @@ -1221,14 +1511,14 @@ end ///////////////////////// Audio output //////////////////////////////// -assign SDCD_SPDIF =(SW[3] & ~spdif) ? 1'b0 : 1'bZ; +assign SDCD_SPDIF = (mcp_en & ~spdif) ? 1'b0 : 1'bZ; -`ifndef DUAL_SDRAM +`ifndef MISTER_DUAL_SDRAM wire analog_l, analog_r; - assign AUDIO_SPDIF = SW[3] ? 1'bZ : SW[0] ? HDMI_LRCLK : spdif; - assign AUDIO_R = SW[3] ? 1'bZ : SW[0] ? HDMI_I2S : analog_r; - assign AUDIO_L = SW[3] ? 1'bZ : SW[0] ? HDMI_SCLK : analog_l; + assign AUDIO_SPDIF = av_dis ? 1'bZ : (SW[0] | mcp_en) ? HDMI_LRCLK : spdif; + assign AUDIO_R = av_dis ? 1'bZ : (SW[0] | mcp_en) ? HDMI_I2S : analog_r; + assign AUDIO_L = av_dis ? 1'bZ : (SW[0] | mcp_en) ? HDMI_SCLK : analog_l; `endif assign HDMI_MCLK = clk_audio; @@ -1264,13 +1554,15 @@ audio_out audio_out .core_l(audio_l), .core_r(audio_r), +`ifndef MISTER_DISABLE_ALSA .alsa_l(alsa_l), .alsa_r(alsa_r), +`endif .i2s_bclk(HDMI_SCLK), .i2s_lrclk(HDMI_LRCLK), .i2s_data(HDMI_I2S), -`ifndef DUAL_SDRAM +`ifndef MISTER_DUAL_SDRAM .dac_l(analog_l), .dac_r(analog_r), `endif @@ -1278,32 +1570,45 @@ audio_out audio_out ); -wire [28:0] alsa_address; -wire [63:0] alsa_readdata; -wire alsa_ready; -wire alsa_req; -wire alsa_late; +`ifndef MISTER_DISABLE_ALSA + wire aspi_sck,aspi_mosi,aspi_ss,aspi_miso; + cyclonev_hps_interface_peripheral_spi_master spi + ( + .sclk_out(aspi_sck), + .txd(aspi_mosi), // mosi + .rxd(aspi_miso), // miso -wire [15:0] alsa_l, alsa_r; + .ss_0_n(aspi_ss), + .ss_in_n(1) + ); -alsa alsa -( - .reset(reset), - .clk(clk_audio), + wire [28:0] alsa_address; + wire [63:0] alsa_readdata; + wire alsa_ready; + wire alsa_req; + wire alsa_late; - .ram_address(alsa_address), - .ram_data(alsa_readdata), - .ram_req(alsa_req), - .ram_ready(alsa_ready), + wire [15:0] alsa_l, alsa_r; - .spi_ss(aspi_ss), - .spi_sck(aspi_sck), - .spi_mosi(aspi_mosi), - .spi_miso(aspi_miso), + alsa alsa + ( + .reset(reset), + .clk(clk_audio), - .pcm_l(alsa_l), - .pcm_r(alsa_r) -); + .ram_address(alsa_address), + .ram_data(alsa_readdata), + .ram_req(alsa_req), + .ram_ready(alsa_ready), + + .spi_ss(aspi_ss), + .spi_sck(aspi_sck), + .spi_mosi(aspi_mosi), + .spi_miso(aspi_miso), + + .pcm_l(alsa_l), + .pcm_r(alsa_r) + ); +`endif //////////////// User I/O (USB 3.0 connector) ///////////////////////// @@ -1335,19 +1640,18 @@ wire [7:0] r_out, g_out, b_out, hr_out, hg_out, hb_out; wire vs_fix, hs_fix, de_emu, vs_emu, hs_emu, f1; wire hvs_fix, hhs_fix, hde_emu; wire clk_vid, ce_pix, clk_ihdmi, ce_hpix; +wire vga_force_scaler; -`ifdef USE_DDRAM - wire ram_clk; - wire [28:0] ram_address; - wire [7:0] ram_burstcount; - wire ram_waitrequest; - wire [63:0] ram_readdata; - wire ram_readdatavalid; - wire ram_read; - wire [63:0] ram_writedata; - wire [7:0] ram_byteenable; - wire ram_write; -`endif +wire ram_clk; +wire [28:0] ram_address; +wire [7:0] ram_burstcount; +wire ram_waitrequest; +wire [63:0] ram_readdata; +wire ram_readdatavalid; +wire ram_read; +wire [63:0] ram_writedata; +wire [7:0] ram_byteenable; +wire ram_write; wire led_user; wire [1:0] led_power; @@ -1359,32 +1663,23 @@ sync_fix sync_h(clk_vid, hs_emu, hs_fix); wire [6:0] user_out, user_in; -`ifndef USE_SDRAM -assign {SDRAM_DQ, SDRAM_A, SDRAM_BA, SDRAM_CLK, SDRAM_CKE, SDRAM_DQML, SDRAM_DQMH, SDRAM_nWE, SDRAM_nCAS, SDRAM_nRAS, SDRAM_nCS} = {39'bZ}; -`endif - assign clk_ihdmi= clk_vid; -assign ce_hpix = ce_pix; -assign hr_out = r_out; -assign hg_out = g_out; -assign hb_out = b_out; -assign hhs_fix = hs_fix; -assign hvs_fix = vs_fix; -assign hde_emu = de_emu; +assign ce_hpix = vga_ce_sl; +assign hr_out = vga_data_sl[23:16]; +assign hg_out = vga_data_sl[15:8]; +assign hb_out = vga_data_sl[7:0]; +assign hhs_fix = vga_hs_sl; +assign hvs_fix = vga_vs_sl; +assign hde_emu = vga_de_sl; -`ifdef ARCADE_SYS - assign audio_mix = 0; - assign {ADC_SCK, ADC_SDI, ADC_CONVST} = 0; - assign btn = 0; -`else - wire uart_dtr; - wire uart_dsr; - wire uart_cts; - wire uart_rts; - wire uart_rxd; - wire uart_txd; - wire osd_status; -`endif +wire uart_dtr; +wire uart_dsr; +wire uart_cts; +wire uart_rts; +wire uart_rxd; +wire uart_txd; + +wire osd_status; wire fb_en; wire [4:0] fb_fmt; @@ -1393,13 +1688,16 @@ wire [11:0] fb_height; wire [31:0] fb_base; wire [13:0] fb_stride; -`ifdef USE_FB - wire fb_pal_clk; - wire [7:0] fb_pal_a; - wire [23:0] fb_pal_d; - wire [23:0] fb_pal_q; - wire fb_pal_wr; - wire fb_force_blank; + +`ifdef MISTER_FB + `ifdef MISTER_FB_PALETTE + wire fb_pal_clk; + wire [7:0] fb_pal_a; + wire [23:0] fb_pal_d; + wire [23:0] fb_pal_q; + wire fb_pal_wr; + `endif + wire fb_force_blank; `else assign fb_en = 0; assign fb_fmt = 0; @@ -1409,11 +1707,18 @@ wire [13:0] fb_stride; assign fb_stride = 0; `endif +reg [1:0] sl_r; +wire [1:0] sl = sl_r; +always @(posedge clk_sys) sl_r <= FB_EN ? 2'b00 : scanlines; + emu emu ( .CLK_50M(FPGA_CLK2_50), .RESET(reset), - .HPS_BUS({f1, HDMI_TX_VS, clk_100m, clk_ihdmi, ce_hpix, hde_emu, hhs_fix, hvs_fix, io_wait, clk_sys, io_fpga, io_uio, io_strobe, io_wide, io_din, io_dout}), + .HPS_BUS({fb_en, sl, f1, HDMI_TX_VS, + clk_100m, clk_ihdmi, + ce_hpix, hde_emu, hhs_fix, hvs_fix, + io_wait, clk_sys, io_fpga, io_uio, io_strobe, io_wide, io_din, io_dout}), .VGA_R(r_out), .VGA_G(g_out), @@ -1422,6 +1727,16 @@ emu emu .VGA_VS(vs_emu), .VGA_DE(de_emu), .VGA_F1(f1), + .VGA_SCALER(vga_force_scaler), + +`ifndef MISTER_DUAL_SDRAM + .VGA_DISABLE(VGA_DISABLE), +`endif + + .HDMI_WIDTH(direct_video ? 12'd0 : hdmi_width), + .HDMI_HEIGHT(direct_video ? 12'd0 : hdmi_height), + .HDMI_FREEZE(freeze), + .HDMI_BLACKOUT(hdmi_blackout), .CLK_VIDEO(clk_vid), .CE_PIXEL(ce_pix), @@ -1429,7 +1744,7 @@ emu emu .VIDEO_ARX(ARX), .VIDEO_ARY(ARY), -`ifdef USE_FB +`ifdef MISTER_FB .FB_EN(fb_en), .FB_FORMAT(fb_fmt), .FB_WIDTH(fb_width), @@ -1440,11 +1755,14 @@ emu emu .FB_LL(lowlat), .FB_FORCE_BLANK(fb_force_blank), +`ifdef MISTER_FB_PALETTE .FB_PAL_CLK (fb_pal_clk), .FB_PAL_ADDR(fb_pal_a), .FB_PAL_DOUT(fb_pal_d), .FB_PAL_DIN (fb_pal_q), .FB_PAL_WR (fb_pal_wr), +`endif + `endif .LED_USER(led_user), @@ -1455,13 +1773,10 @@ emu emu .AUDIO_L(audio_l), .AUDIO_R(audio_r), .AUDIO_S(audio_s), - -`ifndef ARCADE_SYS .AUDIO_MIX(audio_mix), - .ADC_BUS({ADC_SCK,ADC_SDO,ADC_SDI,ADC_CONVST}), -`endif -`ifdef USE_DDRAM + .ADC_BUS({ADC_SCK,ADC_SDO,ADC_SDI,ADC_CONVST}), + .DDRAM_CLK(ram_clk), .DDRAM_ADDR(ram_address), .DDRAM_BURSTCNT(ram_burstcount), @@ -1472,9 +1787,7 @@ emu emu .DDRAM_DIN(ram_writedata), .DDRAM_BE(ram_byteenable), .DDRAM_WE(ram_write), -`endif -`ifdef USE_SDRAM .SDRAM_DQ(SDRAM_DQ), .SDRAM_A(SDRAM_A), .SDRAM_DQML(SDRAM_DQML), @@ -1486,9 +1799,8 @@ emu emu .SDRAM_nCAS(SDRAM_nCAS), .SDRAM_CLK(SDRAM_CLK), .SDRAM_CKE(SDRAM_CKE), -`endif -`ifdef DUAL_SDRAM +`ifdef MISTER_DUAL_SDRAM .SDRAM2_DQ(SDRAM2_DQ), .SDRAM2_A(SDRAM2_A), .SDRAM2_BA(SDRAM2_BA), @@ -1497,21 +1809,17 @@ emu emu .SDRAM2_nRAS(SDRAM2_nRAS), .SDRAM2_nCAS(SDRAM2_nCAS), .SDRAM2_CLK(SDRAM2_CLK), - .SDRAM2_EN(SW[3]), + .SDRAM2_EN(io_dig), `endif -`ifndef ARCADE_SYS .BUTTONS(btn), .OSD_STATUS(osd_status), + .SD_SCK(SD_CLK), .SD_MOSI(SD_MOSI), .SD_MISO(SD_MISO), .SD_CS(SD_CS), -`ifdef DUAL_SDRAM - .SD_CD(mcp_sdcd), -`else - .SD_CD(mcp_sdcd & (SW[0] ? VGA_HS : (SW[3] | SDCD_SPDIF))), -`endif + .SD_CD(SD_CD), .UART_CTS(uart_rts), .UART_RTS(uart_cts), @@ -1519,7 +1827,6 @@ emu emu .UART_TXD(uart_rxd), .UART_DTR(uart_dsr), .UART_DSR(uart_dtr), -`endif .USER_OUT(user_out), .USER_IN(user_in) @@ -1541,19 +1848,17 @@ assign sync_out = sync_in ^ pol; reg pol; always @(posedge clk) begin - integer pos = 0, neg = 0, cnt = 0; + reg [31:0] cnt; reg s1,s2; s1 <= sync_in; s2 <= s1; + cnt <= s2 ? (cnt - 1) : (cnt + 1); - if(~s2 & s1) neg <= cnt; - if(s2 & ~s1) pos <= cnt; - - cnt <= cnt + 1; - if(s2 != s1) cnt <= 0; - - pol <= pos > neg; + if(~s2 & s1) begin + cnt <= 0; + pol <= cnt[31]; + end end endmodule diff --git a/sys/sysmem.sv b/sys/sysmem.sv index c90395e..8c17e86 100644 --- a/sys/sysmem.sv +++ b/sys/sysmem.sv @@ -44,41 +44,182 @@ module sysmem_lite assign reset_out = ~init_reset_n | ~hps_h2f_reset_n | reset_core_req; +//////////////////////////////////////////////////////// +//// f2sdram_safe_terminator_ram1 //// +//////////////////////////////////////////////////////// +wire [28:0] f2h_ram1_address; +wire [7:0] f2h_ram1_burstcount; +wire f2h_ram1_waitrequest; +wire [63:0] f2h_ram1_readdata; +wire f2h_ram1_readdatavalid; +wire f2h_ram1_read; +wire [63:0] f2h_ram1_writedata; +wire [7:0] f2h_ram1_byteenable; +wire f2h_ram1_write; + +(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS"} *) reg ram1_reset_0 = 1'b1; +(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS"} *) reg ram1_reset_1 = 1'b1; +always @(posedge ram1_clk) begin + ram1_reset_0 <= reset_out; + ram1_reset_1 <= ram1_reset_0; +end + +f2sdram_safe_terminator #(64, 8) f2sdram_safe_terminator_ram1 +( + .clk (ram1_clk), + .rst_req_sync (ram1_reset_1), + + .waitrequest_slave (ram1_waitrequest), + .burstcount_slave (ram1_burstcount), + .address_slave (ram1_address), + .readdata_slave (ram1_readdata), + .readdatavalid_slave (ram1_readdatavalid), + .read_slave (ram1_read), + .writedata_slave (ram1_writedata), + .byteenable_slave (ram1_byteenable), + .write_slave (ram1_write), + + .waitrequest_master (f2h_ram1_waitrequest), + .burstcount_master (f2h_ram1_burstcount), + .address_master (f2h_ram1_address), + .readdata_master (f2h_ram1_readdata), + .readdatavalid_master (f2h_ram1_readdatavalid), + .read_master (f2h_ram1_read), + .writedata_master (f2h_ram1_writedata), + .byteenable_master (f2h_ram1_byteenable), + .write_master (f2h_ram1_write) +); + +//////////////////////////////////////////////////////// +//// f2sdram_safe_terminator_ram2 //// +//////////////////////////////////////////////////////// +wire [28:0] f2h_ram2_address; +wire [7:0] f2h_ram2_burstcount; +wire f2h_ram2_waitrequest; +wire [63:0] f2h_ram2_readdata; +wire f2h_ram2_readdatavalid; +wire f2h_ram2_read; +wire [63:0] f2h_ram2_writedata; +wire [7:0] f2h_ram2_byteenable; +wire f2h_ram2_write; + +(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS"} *) reg ram2_reset_0 = 1'b1; +(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS"} *) reg ram2_reset_1 = 1'b1; +always @(posedge ram2_clk) begin + ram2_reset_0 <= reset_out; + ram2_reset_1 <= ram2_reset_0; +end + +f2sdram_safe_terminator #(64, 8) f2sdram_safe_terminator_ram2 +( + .clk (ram2_clk), + .rst_req_sync (ram2_reset_1), + + .waitrequest_slave (ram2_waitrequest), + .burstcount_slave (ram2_burstcount), + .address_slave (ram2_address), + .readdata_slave (ram2_readdata), + .readdatavalid_slave (ram2_readdatavalid), + .read_slave (ram2_read), + .writedata_slave (ram2_writedata), + .byteenable_slave (ram2_byteenable), + .write_slave (ram2_write), + + .waitrequest_master (f2h_ram2_waitrequest), + .burstcount_master (f2h_ram2_burstcount), + .address_master (f2h_ram2_address), + .readdata_master (f2h_ram2_readdata), + .readdatavalid_master (f2h_ram2_readdatavalid), + .read_master (f2h_ram2_read), + .writedata_master (f2h_ram2_writedata), + .byteenable_master (f2h_ram2_byteenable), + .write_master (f2h_ram2_write) +); + +//////////////////////////////////////////////////////// +//// f2sdram_safe_terminator_vbuf //// +//////////////////////////////////////////////////////// +wire [27:0] f2h_vbuf_address; +wire [7:0] f2h_vbuf_burstcount; +wire f2h_vbuf_waitrequest; +wire [127:0] f2h_vbuf_readdata; +wire f2h_vbuf_readdatavalid; +wire f2h_vbuf_read; +wire [127:0] f2h_vbuf_writedata; +wire [15:0] f2h_vbuf_byteenable; +wire f2h_vbuf_write; + +(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS"} *) reg vbuf_reset_0 = 1'b1; +(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS"} *) reg vbuf_reset_1 = 1'b1; +always @(posedge vbuf_clk) begin + vbuf_reset_0 <= reset_out; + vbuf_reset_1 <= vbuf_reset_0; +end + +f2sdram_safe_terminator #(128, 8) f2sdram_safe_terminator_vbuf +( + .clk (vbuf_clk), + .rst_req_sync (vbuf_reset_1), + + .waitrequest_slave (vbuf_waitrequest), + .burstcount_slave (vbuf_burstcount), + .address_slave (vbuf_address), + .readdata_slave (vbuf_readdata), + .readdatavalid_slave (vbuf_readdatavalid), + .read_slave (vbuf_read), + .writedata_slave (vbuf_writedata), + .byteenable_slave (vbuf_byteenable), + .write_slave (vbuf_write), + + .waitrequest_master (f2h_vbuf_waitrequest), + .burstcount_master (f2h_vbuf_burstcount), + .address_master (f2h_vbuf_address), + .readdata_master (f2h_vbuf_readdata), + .readdatavalid_master (f2h_vbuf_readdatavalid), + .read_master (f2h_vbuf_read), + .writedata_master (f2h_vbuf_writedata), + .byteenable_master (f2h_vbuf_byteenable), + .write_master (f2h_vbuf_write) +); + +//////////////////////////////////////////////////////// +//// HPS <> FPGA interfaces //// +//////////////////////////////////////////////////////// sysmem_HPS_fpga_interfaces fpga_interfaces ( .f2h_cold_rst_req_n (~reset_hps_cold_req), .f2h_warm_rst_req_n (~reset_hps_warm_req), .h2f_user0_clk (clock), .h2f_rst_n (hps_h2f_reset_n), .f2h_sdram0_clk (vbuf_clk), - .f2h_sdram0_ADDRESS (vbuf_address), - .f2h_sdram0_BURSTCOUNT (vbuf_burstcount), - .f2h_sdram0_WAITREQUEST (vbuf_waitrequest), - .f2h_sdram0_READDATA (vbuf_readdata), - .f2h_sdram0_READDATAVALID (vbuf_readdatavalid), - .f2h_sdram0_READ (vbuf_read), - .f2h_sdram0_WRITEDATA (vbuf_writedata), - .f2h_sdram0_BYTEENABLE (vbuf_byteenable), - .f2h_sdram0_WRITE (vbuf_write), + .f2h_sdram0_ADDRESS (f2h_vbuf_address), + .f2h_sdram0_BURSTCOUNT (f2h_vbuf_burstcount), + .f2h_sdram0_WAITREQUEST (f2h_vbuf_waitrequest), + .f2h_sdram0_READDATA (f2h_vbuf_readdata), + .f2h_sdram0_READDATAVALID (f2h_vbuf_readdatavalid), + .f2h_sdram0_READ (f2h_vbuf_read), + .f2h_sdram0_WRITEDATA (f2h_vbuf_writedata), + .f2h_sdram0_BYTEENABLE (f2h_vbuf_byteenable), + .f2h_sdram0_WRITE (f2h_vbuf_write), .f2h_sdram1_clk (ram1_clk), - .f2h_sdram1_ADDRESS (ram1_address), - .f2h_sdram1_BURSTCOUNT (ram1_burstcount), - .f2h_sdram1_WAITREQUEST (ram1_waitrequest), - .f2h_sdram1_READDATA (ram1_readdata), - .f2h_sdram1_READDATAVALID (ram1_readdatavalid), - .f2h_sdram1_READ (ram1_read), - .f2h_sdram1_WRITEDATA (ram1_writedata), - .f2h_sdram1_BYTEENABLE (ram1_byteenable), - .f2h_sdram1_WRITE (ram1_write), + .f2h_sdram1_ADDRESS (f2h_ram1_address), + .f2h_sdram1_BURSTCOUNT (f2h_ram1_burstcount), + .f2h_sdram1_WAITREQUEST (f2h_ram1_waitrequest), + .f2h_sdram1_READDATA (f2h_ram1_readdata), + .f2h_sdram1_READDATAVALID (f2h_ram1_readdatavalid), + .f2h_sdram1_READ (f2h_ram1_read), + .f2h_sdram1_WRITEDATA (f2h_ram1_writedata), + .f2h_sdram1_BYTEENABLE (f2h_ram1_byteenable), + .f2h_sdram1_WRITE (f2h_ram1_write), .f2h_sdram2_clk (ram2_clk), - .f2h_sdram2_ADDRESS (ram2_address), - .f2h_sdram2_BURSTCOUNT (ram2_burstcount), - .f2h_sdram2_WAITREQUEST (ram2_waitrequest), - .f2h_sdram2_READDATA (ram2_readdata), - .f2h_sdram2_READDATAVALID (ram2_readdatavalid), - .f2h_sdram2_READ (ram2_read), - .f2h_sdram2_WRITEDATA (ram2_writedata), - .f2h_sdram2_BYTEENABLE (ram2_byteenable), - .f2h_sdram2_WRITE (ram2_write) + .f2h_sdram2_ADDRESS (f2h_ram2_address), + .f2h_sdram2_BURSTCOUNT (f2h_ram2_burstcount), + .f2h_sdram2_WAITREQUEST (f2h_ram2_waitrequest), + .f2h_sdram2_READDATA (f2h_ram2_readdata), + .f2h_sdram2_READDATAVALID (f2h_ram2_readdatavalid), + .f2h_sdram2_READ (f2h_ram2_read), + .f2h_sdram2_WRITEDATA (f2h_ram2_writedata), + .f2h_sdram2_BYTEENABLE (f2h_ram2_byteenable), + .f2h_sdram2_WRITE (f2h_ram2_write) ); wire hps_h2f_reset_n; diff --git a/sys/vga_out.sv b/sys/vga_out.sv index e316000..4160635 100644 --- a/sys/vga_out.sv +++ b/sys/vga_out.sv @@ -1,65 +1,73 @@ module vga_out ( - input ypbpr_full, + input clk, input ypbpr_en, + input hsync, + input vsync, + input csync, + input de, + input [23:0] din, - output [23:0] dout + output [23:0] dout, + + output reg hsync_o, + output reg vsync_o, + output reg csync_o, + output reg de_o ); -wire [5:0] yuv_full[225] = '{ - 6'd0, 6'd0, 6'd0, 6'd0, 6'd1, 6'd1, 6'd1, 6'd1, - 6'd2, 6'd2, 6'd2, 6'd3, 6'd3, 6'd3, 6'd3, 6'd4, - 6'd4, 6'd4, 6'd5, 6'd5, 6'd5, 6'd5, 6'd6, 6'd6, - 6'd6, 6'd7, 6'd7, 6'd7, 6'd7, 6'd8, 6'd8, 6'd8, - 6'd9, 6'd9, 6'd9, 6'd9, 6'd10, 6'd10, 6'd10, 6'd11, - 6'd11, 6'd11, 6'd11, 6'd12, 6'd12, 6'd12, 6'd13, 6'd13, - 6'd13, 6'd13, 6'd14, 6'd14, 6'd14, 6'd15, 6'd15, 6'd15, - 6'd15, 6'd16, 6'd16, 6'd16, 6'd17, 6'd17, 6'd17, 6'd17, - 6'd18, 6'd18, 6'd18, 6'd19, 6'd19, 6'd19, 6'd19, 6'd20, - 6'd20, 6'd20, 6'd21, 6'd21, 6'd21, 6'd21, 6'd22, 6'd22, - 6'd22, 6'd23, 6'd23, 6'd23, 6'd23, 6'd24, 6'd24, 6'd24, - 6'd25, 6'd25, 6'd25, 6'd25, 6'd26, 6'd26, 6'd26, 6'd27, - 6'd27, 6'd27, 6'd27, 6'd28, 6'd28, 6'd28, 6'd29, 6'd29, - 6'd29, 6'd29, 6'd30, 6'd30, 6'd30, 6'd31, 6'd31, 6'd31, - 6'd31, 6'd32, 6'd32, 6'd32, 6'd33, 6'd33, 6'd33, 6'd33, - 6'd34, 6'd34, 6'd34, 6'd35, 6'd35, 6'd35, 6'd35, 6'd36, - 6'd36, 6'd36, 6'd36, 6'd37, 6'd37, 6'd37, 6'd38, 6'd38, - 6'd38, 6'd38, 6'd39, 6'd39, 6'd39, 6'd40, 6'd40, 6'd40, - 6'd40, 6'd41, 6'd41, 6'd41, 6'd42, 6'd42, 6'd42, 6'd42, - 6'd43, 6'd43, 6'd43, 6'd44, 6'd44, 6'd44, 6'd44, 6'd45, - 6'd45, 6'd45, 6'd46, 6'd46, 6'd46, 6'd46, 6'd47, 6'd47, - 6'd47, 6'd48, 6'd48, 6'd48, 6'd48, 6'd49, 6'd49, 6'd49, - 6'd50, 6'd50, 6'd50, 6'd50, 6'd51, 6'd51, 6'd51, 6'd52, - 6'd52, 6'd52, 6'd52, 6'd53, 6'd53, 6'd53, 6'd54, 6'd54, - 6'd54, 6'd54, 6'd55, 6'd55, 6'd55, 6'd56, 6'd56, 6'd56, - 6'd56, 6'd57, 6'd57, 6'd57, 6'd58, 6'd58, 6'd58, 6'd58, - 6'd59, 6'd59, 6'd59, 6'd60, 6'd60, 6'd60, 6'd60, 6'd61, - 6'd61, 6'd61, 6'd62, 6'd62, 6'd62, 6'd62, 6'd63, 6'd63, - 6'd63 -}; - -wire [5:0] red = din[23:18]; -wire [5:0] green = din[15:10]; -wire [5:0] blue = din[7:2]; +wire [7:0] red = din[23:16]; +wire [7:0] green = din[15:8]; +wire [7:0] blue = din[7:0]; // http://marsee101.blog19.fc2.com/blog-entry-2311.html -// Y = 16 + 0.257*R + 0.504*G + 0.098*B (Y = 0.299*R + 0.587*G + 0.114*B) -// Pb = 128 - 0.148*R - 0.291*G + 0.439*B (Pb = -0.169*R - 0.331*G + 0.500*B) -// Pr = 128 + 0.439*R - 0.368*G - 0.071*B (Pr = 0.500*R - 0.419*G - 0.081*B) -wire [18:0] y_8 = 19'd04096 + ({red, 8'd0} + {red, 3'd0}) + ({green, 9'd0} + {green, 2'd0}) + ({blue, 6'd0} + {blue, 5'd0} + {blue, 2'd0}); -wire [18:0] pb_8 = 19'd32768 - ({red, 7'd0} + {red, 4'd0} + {red, 3'd0}) - ({green, 8'd0} + {green, 5'd0} + {green, 3'd0}) + ({blue, 8'd0} + {blue, 7'd0} + {blue, 6'd0}); -wire [18:0] pr_8 = 19'd32768 + ({red, 8'd0} + {red, 7'd0} + {red, 6'd0}) - ({green, 8'd0} + {green, 6'd0} + {green, 5'd0} + {green, 4'd0} + {green, 3'd0}) - ({blue, 6'd0} + {blue , 3'd0}); -wire [7:0] y = ( y_8[17:8] < 16) ? 8'd16 : ( y_8[17:8] > 235) ? 8'd235 : y_8[15:8]; -wire [7:0] pb = (pb_8[17:8] < 16) ? 8'd16 : (pb_8[17:8] > 240) ? 8'd240 : pb_8[15:8]; -wire [7:0] pr = (pr_8[17:8] < 16) ? 8'd16 : (pr_8[17:8] > 240) ? 8'd240 : pr_8[15:8]; +// Y = 0.301*R + 0.586*G + 0.113*B (Y = 0.299*R + 0.587*G + 0.114*B) +// Pb = 128 - 0.168*R - 0.332*G + 0.500*B (Pb = -0.169*R - 0.331*G + 0.500*B) +// Pr = 128 + 0.500*R - 0.418*G - 0.082*B (Pr = 0.500*R - 0.419*G - 0.081*B) -assign dout[23:16] = ypbpr_en ? {(ypbpr_full ? yuv_full[pr-8'd16] : pr[7:2]), 2'b00} : din[23:16]; -assign dout[15:8] = ypbpr_en ? {(ypbpr_full ? yuv_full[y -8'd16] : y[7:2]), 2'b00} : din[15:8]; -assign dout[7:0] = ypbpr_en ? {(ypbpr_full ? yuv_full[pb-8'd16] : pb[7:2]), 2'b00} : din[7:0]; +reg [7:0] y, pb, pr; +reg [23:0] rgb; +always @(posedge clk) begin + reg [18:0] y_1r, pb_1r, pr_1r; + reg [18:0] y_1g, pb_1g, pr_1g; + reg [18:0] y_1b, pb_1b, pr_1b; + reg [18:0] y_2, pb_2, pr_2; + reg [23:0] din1, din2; + reg hsync2, vsync2, csync2, de2; + reg hsync1, vsync1, csync1, de1; + y_1r <= {red, 6'd0} + {red, 3'd0} + {red, 2'd0} + red; + pb_1r <= 19'd32768 - ({red, 5'd0} + {red, 3'd0} + {red, 1'd0}); + pr_1r <= 19'd32768 + {red, 7'd0}; + + y_1g <= {green, 7'd0} + {green, 4'd0} + {green, 2'd0} + {green, 1'd0}; + pb_1g <= {green, 6'd0} + {green, 4'd0} + {green, 2'd0} + green; + pr_1g <= {green, 6'd0} + {green, 5'd0} + {green, 3'd0} + {green, 1'd0}; + + y_1b <= {blue, 4'd0} + {blue, 3'd0} + {blue, 2'd0} + blue; + pb_1b <= {blue, 7'd0}; + pr_1b <= {blue, 4'd0} + {blue, 2'd0} + blue; + + y_2 <= y_1r + y_1g + y_1b; + pb_2 <= pb_1r - pb_1g + pb_1b; + pr_2 <= pr_1r - pr_1g - pr_1b; + + y <= y_2[18] ? 8'd0 : y_2[16] ? 8'd255 : y_2[15:8]; + pb <= pb_2[18] ? 8'd0 : pb_2[16] ? 8'd255 : pb_2[15:8]; + pr <= pr_2[18] ? 8'd0 : pr_2[16] ? 8'd255 : pr_2[15:8]; + + hsync_o <= hsync2; hsync2 <= hsync1; hsync1 <= hsync; + vsync_o <= vsync2; vsync2 <= vsync1; vsync1 <= vsync; + csync_o <= csync2; csync2 <= csync1; csync1 <= csync; + de_o <= de2; de2 <= de1; de1 <= de; + + rgb <= din2; din2 <= din1; din1 <= din; +end + +assign dout = ypbpr_en ? {pr, y, pb} : rgb; endmodule diff --git a/sys/video_cleaner.sv b/sys/video_cleaner.sv index a99894c..4c057a8 100644 --- a/sys/video_cleaner.sv +++ b/sys/video_cleaner.sv @@ -1,99 +1,108 @@ -// -// -// Copyright (c) 2018 Sorgelig -// -// This program is GPL Licensed. See COPYING for the full license. -// -// -//////////////////////////////////////////////////////////////////////////////////////////////////////// - -`timescale 1ns / 1ps - -module video_cleaner -( - input clk_vid, - input ce_pix, - - input [7:0] R, - input [7:0] G, - input [7:0] B, - - input HSync, - input VSync, - input HBlank, - input VBlank, - - //optional de - input DE_in, - - // video output signals - output reg [7:0] VGA_R, - output reg [7:0] VGA_G, - output reg [7:0] VGA_B, - output reg VGA_VS, - output reg VGA_HS, - output VGA_DE, - - // optional aligned blank - output reg HBlank_out, - output reg VBlank_out, - - // optional aligned de - output reg DE_out -); - -wire hs, vs; -s_fix sync_v(clk_vid, HSync, hs); -s_fix sync_h(clk_vid, VSync, vs); - -wire hbl = hs | HBlank; -wire vbl = vs | VBlank; - -assign VGA_DE = ~(HBlank_out | VBlank_out); - -always @(posedge clk_vid) begin - if(ce_pix) begin - HBlank_out <= hbl; - - VGA_HS <= hs; - if(~VGA_HS & hs) VGA_VS <= vs; - - VGA_R <= R; - VGA_G <= G; - VGA_B <= B; - DE_out <= DE_in; - - if(HBlank_out & ~hbl) VBlank_out <= vbl; - end -end - -endmodule - -module s_fix -( - input clk, - - input sync_in, - output sync_out -); - -assign sync_out = sync_in ^ pol; - -reg pol; -always @(posedge clk) begin - integer pos = 0, neg = 0, cnt = 0; - reg s1,s2; - - s1 <= sync_in; - s2 <= s1; - - if(~s2 & s1) neg <= cnt; - if(s2 & ~s1) pos <= cnt; - - cnt <= cnt + 1; - if(s2 != s1) cnt <= 0; - - pol <= pos > neg; -end - -endmodule +// +// +// Copyright (c) 2018 Sorgelig +// +// This program is GPL Licensed. See COPYING for the full license. +// +// +//////////////////////////////////////////////////////////////////////////////////////////////////////// + +`timescale 1ns / 1ps + +module video_cleaner +( + input clk_vid, + input ce_pix, + + input [7:0] R, + input [7:0] G, + input [7:0] B, + + input HSync, + input VSync, + input HBlank, + input VBlank, + + //optional de + input DE_in, + + //optional interlace support + input interlace, + input f1, + + // video output signals + output reg [7:0] VGA_R, + output reg [7:0] VGA_G, + output reg [7:0] VGA_B, + output reg VGA_VS, + output reg VGA_HS, + output VGA_DE, + + // optional aligned blank + output reg HBlank_out, + output reg VBlank_out, + + // optional aligned de + output reg DE_out +); + +wire hs, vs; +s_fix sync_v(clk_vid, HSync, hs); +s_fix sync_h(clk_vid, VSync, vs); + +wire hbl = hs | HBlank; +wire vbl = vs | VBlank; + +assign VGA_DE = ~(HBlank_out | VBlank_out); + +always @(posedge clk_vid) begin + if(ce_pix) begin + HBlank_out <= hbl; + + VGA_HS <= hs; + + VGA_R <= R; + VGA_G <= G; + VGA_B <= B; + DE_out <= DE_in; + + if (interlace & f1) begin + VGA_VS <= vs; + VBlank_out <= vbl; + end else begin + if(~VGA_HS & hs) VGA_VS <= vs; + if(HBlank_out & ~hbl) VBlank_out <= vbl; + end + end +end + +endmodule + +module s_fix +( + input clk, + + input sync_in, + output sync_out +); + +assign sync_out = sync_in ^ pol; + +reg pol; +always @(posedge clk) begin + integer pos = 0, neg = 0, cnt = 0; + reg s1,s2; + + s1 <= sync_in; + s2 <= s1; + + if(~s2 & s1) neg <= cnt; + if(s2 & ~s1) pos <= cnt; + + cnt <= cnt + 1; + if(s2 != s1) cnt <= 0; + + pol <= pos > neg; +end + +endmodule diff --git a/sys/video_freak.sv b/sys/video_freak.sv new file mode 100644 index 0000000..65375cd --- /dev/null +++ b/sys/video_freak.sv @@ -0,0 +1,329 @@ +// +// +// Video crop +// Copyright (c) 2020 Grabulosaure, (c) 2021 Alexey Melnikov +// +// Integer scaling +// Copyright (c) 2021 Alexey Melnikov +// +// This program is GPL Licensed. See COPYING for the full license. +// +// +//////////////////////////////////////////////////////////////////////////////////////////////////////// + +`timescale 1ns / 1ps + +module video_freak +( + input CLK_VIDEO, + input CE_PIXEL, + input VGA_VS, + input [11:0] HDMI_WIDTH, + input [11:0] HDMI_HEIGHT, + output VGA_DE, + output reg [12:0] VIDEO_ARX, + output reg [12:0] VIDEO_ARY, + + input VGA_DE_IN, + input [11:0] ARX, + input [11:0] ARY, + input [11:0] CROP_SIZE, + input [4:0] CROP_OFF, // -16...+15 + input [2:0] SCALE //0 - normal, 1 - V-integer, 2 - HV-Integer-, 3 - HV-Integer+, 4 - HV-Integer +); + +reg mul_start; +wire mul_run; +reg [11:0] mul_arg1, mul_arg2; +wire [23:0] mul_res; +sys_umul #(12,12) mul(CLK_VIDEO,mul_start,mul_run, mul_arg1,mul_arg2,mul_res); + +reg vde; +reg [11:0] arxo,aryo; +reg [11:0] vsize; +reg [11:0] hsize; + +always @(posedge CLK_VIDEO) begin + reg old_de, old_vs,ovde; + reg [11:0] vtot,vcpt,vcrop,voff; + reg [11:0] hcpt; + reg [11:0] vadj; + reg [23:0] ARXG,ARYG; + reg [11:0] arx,ary; + reg [1:0] vcalc; + + if (CE_PIXEL) begin + old_de <= VGA_DE_IN; + old_vs <= VGA_VS; + if (VGA_VS & ~old_vs) begin + vcpt <= 0; + vtot <= vcpt; + vcalc <= 1; + vcrop <= (CROP_SIZE >= vcpt) ? 12'd0 : CROP_SIZE; + end + + if (VGA_DE_IN) hcpt <= hcpt + 1'd1; + if (~VGA_DE_IN & old_de) begin + vcpt <= vcpt + 1'd1; + if(!vcpt) hsize <= hcpt; + hcpt <= 0; + end + end + + arx <= ARX; + ary <= ARY; + + vsize <= vcrop ? vcrop : vtot; + + mul_start <= 0; + + if(!vcrop || !ary || !arx) begin + arxo <= arx; + aryo <= ary; + end + else if (vcalc) begin + if(~mul_start & ~mul_run) begin + vcalc <= vcalc + 1'd1; + case(vcalc) + 1: begin + mul_arg1 <= arx; + mul_arg2 <= vtot; + mul_start <= 1; + end + + 2: begin + ARXG <= mul_res; + mul_arg1 <= ary; + mul_arg2 <= vcrop; + mul_start <= 1; + end + + 3: begin + ARYG <= mul_res; + end + endcase + end + end + else if (ARXG[23] | ARYG[23]) begin + arxo <= ARXG[23:12]; + aryo <= ARYG[23:12]; + end + else begin + ARXG <= ARXG << 1; + ARYG <= ARYG << 1; + end + + vadj <= (vtot-vcrop) + {{6{CROP_OFF[4]}},CROP_OFF,1'b0}; + voff <= vadj[11] ? 12'd0 : ((vadj[11:1] + vcrop) > vtot) ? vtot-vcrop : vadj[11:1]; + ovde <= ((vcpt >= voff) && (vcpt < (vcrop + voff))) || !vcrop; + vde <= ovde; +end + +assign VGA_DE = vde & VGA_DE_IN; + +video_scale_int scale +( + .CLK_VIDEO(CLK_VIDEO), + .HDMI_WIDTH(HDMI_WIDTH), + .HDMI_HEIGHT(HDMI_HEIGHT), + .SCALE(SCALE), + .hsize(hsize), + .vsize(vsize), + .arx_i(arxo), + .ary_i(aryo), + .arx_o(VIDEO_ARX), + .ary_o(VIDEO_ARY) +); + +endmodule + + +module video_scale_int +( + input CLK_VIDEO, + + input [11:0] HDMI_WIDTH, + input [11:0] HDMI_HEIGHT, + + input [2:0] SCALE, + + input [11:0] hsize, + input [11:0] vsize, + + input [11:0] arx_i, + input [11:0] ary_i, + + output reg [12:0] arx_o, + output reg [12:0] ary_o +); + +reg div_start; +wire div_run; +reg [23:0] div_num; +reg [11:0] div_den; +wire [23:0] div_res; +sys_udiv #(24,12) div(CLK_VIDEO,div_start,div_run, div_num,div_den,div_res); + +reg mul_start; +wire mul_run; +reg [11:0] mul_arg1, mul_arg2; +wire [23:0] mul_res; +sys_umul #(12,12) mul(CLK_VIDEO,mul_start,mul_run, mul_arg1,mul_arg2,mul_res); + +always @(posedge CLK_VIDEO) begin + reg [11:0] oheight,htarget,wres,hinteger,wideres; + reg [12:0] arxf,aryf; + reg [3:0] cnt; + reg narrow; + + div_start <= 0; + mul_start <= 0; + + if (!SCALE || (!ary_i && arx_i)) begin + arxf <= arx_i; + aryf <= ary_i; + end + else if(~div_start & ~div_run & ~mul_start & ~mul_run) begin + cnt <= cnt + 1'd1; + case(cnt) + // example ideal and non-ideal cases: + // [1] 720x400 4:3 VGA 80x25 text-mode (non-square pixels) + // [2] 640x480 4:3 VGA graphics mode (square pixels) + // [3] 512x512 4:3 X68000 graphics mode (non-square pixels) + 0: begin + div_num <= HDMI_HEIGHT; + div_den <= vsize; + div_start <= 1; + end + // [1] 1080 / 400 -> 2 + // [2] 1080 / 480 -> 2 + // [3] 1080 / 512 -> 2 + + 1: if(!div_res[11:0]) begin + // screen resolution is lower than video resolution. + // Integer scaling is impossible. + arxf <= arx_i; + aryf <= ary_i; + cnt <= 0; + end + else begin + mul_arg1 <= vsize; + mul_arg2 <= div_res[11:0]; + mul_start <= 1; + end + // [1] 1080 / 400 * 400 -> 800 + // [2] 1080 / 480 * 480 -> 960 + // [3] 1080 / 512 * 512 -> 1024 + + 2: begin + oheight <= mul_res[11:0]; + if(!ary_i) begin + cnt <= 8; + end + end + + 3: begin + mul_arg1 <= mul_res[11:0]; + mul_arg2 <= arx_i; + mul_start <= 1; + end + // [1] 1080 / 400 * 400 * 4 -> 3200 + // [2] 1080 / 480 * 480 * 4 -> 3840 + // [3] 1080 / 512 * 512 * 4 -> 4096 + + 4: begin + div_num <= mul_res; + div_den <= ary_i; + div_start <= 1; + end + // [1] 1080 / 480 * 480 * 4 / 3 -> 1066 + // [2] 1080 / 480 * 480 * 4 / 3 -> 1280 + // [3] 1080 / 512 * 512 * 4 / 3 -> 1365 + // saved as htarget + + 5: begin + htarget <= div_res[11:0]; + div_num <= div_res; + div_den <= hsize; + div_start <= 1; + end + // computes wide scaling factor as a ceiling division + // [1] 1080 / 400 * 400 * 4 / 3 / 720 -> 1 + // [2] 1080 / 480 * 480 * 4 / 3 / 640 -> 2 + // [3] 1080 / 512 * 512 * 4 / 3 / 512 -> 2 + + 6: begin + mul_arg1 <= hsize; + mul_arg2 <= div_res[11:0] ? div_res[11:0] : 12'd1; + mul_start <= 1; + end + // [1] 1080 / 400 * 400 * 4 / 3 / 720 * 720 -> 720 + // [2] 1080 / 480 * 480 * 4 / 3 / 640 * 640 -> 1280 + // [3] 1080 / 512 * 512 * 4 / 3 / 512 * 512 -> 1024 + + 7: if(mul_res <= HDMI_WIDTH) begin + hinteger = mul_res[11:0]; + cnt <= 12; + end + + 8: begin + div_num <= HDMI_WIDTH; + div_den <= hsize; + div_start <= 1; + end + // [1] 1920 / 720 -> 2 + // [2] 1920 / 640 -> 3 + // [3] 1920 / 512 -> 3 + + 9: begin + mul_arg1 <= hsize; + mul_arg2 <= div_res[11:0] ? div_res[11:0] : 12'd1; + mul_start <= 1; + end + // [1] 1920 / 720 * 720 -> 1440 + // [2] 1920 / 640 * 640 -> 1920 + // [3] 1920 / 512 * 512 -> 1536 + + 10: begin + hinteger <= mul_res[11:0]; + mul_arg1 <= vsize; + mul_arg2 <= div_res[11:0] ? div_res[11:0] : 12'd1; + mul_start <= 1; + end + + 11: begin + oheight <= mul_res[11:0]; + end + + 12: begin + wideres <= hinteger + hsize; + narrow <= ((htarget - hinteger) <= (wideres - htarget)) || (wideres > HDMI_WIDTH); + wres <= hinteger == htarget ? hinteger : wideres; + end + // [1] 1066 - 720 = 346 <= 1440 - 1066 = 374 || 1440 > 1920 -> true + // [2] 1280 - 1280 = 0 <= 1920 - 1280 = 640 || 1920 > 1920 -> true + // [3] 1365 - 1024 = 341 <= 1536 - 1365 = 171 || 1536 > 1920 -> false + // 1. narrow flag is true when mul_res[11:0] narrow width is closer to + // htarget aspect ratio target width or when wideres wider width + // does not fit to the screen. + // 2. wres becomes wideres only when mul_res[11:0] narrow width not equal + // to target width, meaning it is not optimal for source aspect ratio. + // otherwise it is set to narrow width that is optimal. + + 13: begin + case(SCALE) + 2: arxf <= {1'b1, hinteger}; + 3: arxf <= {1'b1, (wres > HDMI_WIDTH) ? hinteger : wres}; + 4: arxf <= {1'b1, narrow ? hinteger : wres}; + default: arxf <= {1'b1, div_num[11:0]}; + endcase + aryf <= {1'b1, oheight}; + end + endcase + end + + arx_o <= arxf; + ary_o <= aryf; +end + +endmodule diff --git a/sys/video_freezer.sv b/sys/video_freezer.sv new file mode 100644 index 0000000..24d2c65 --- /dev/null +++ b/sys/video_freezer.sv @@ -0,0 +1,143 @@ +// +// video freeze with sync +// (C) Alexey Melnikov +// +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +module video_freezer +( + input clk, + + output sync, + input freeze, + + input hs_in, + input vs_in, + input hbl_in, + input vbl_in, + + output hs_out, + output vs_out, + output hbl_out, + output vbl_out +); + +sync_lock #(33) vs_lock +( + .clk(clk), + .sync_in(vs_in), + .sync_out(vs_out), + .de_in(vbl_in), + .de_out(vbl_out), + .freeze(freeze) +); + +wire sync_pt; +sync_lock #(21) hs_lock +( + .clk(clk), + .sync_in(hs_in), + .sync_out(hs_out), + .de_in(hbl_in), + .de_out(hbl_out), + .freeze(freeze), + .sync_pt(sync_pt) +); + +reg sync_o; +always @(posedge clk) begin + reg old_hs, old_vs; + reg vs_sync; + + old_vs <= vs_out; + + if(~old_vs & vs_out) vs_sync <= 1; + if(sync_pt & vs_sync) begin + vs_sync <= 0; + sync_o <= ~sync_o; + end +end + +assign sync = sync_o; + +endmodule + + +module sync_lock #(parameter WIDTH) +( + input clk, + + input sync_in, + input de_in, + + output sync_out, + output de_out, + + input freeze, + output sync_pt, + output valid +); + +reg [WIDTH-1:0] f_len, s_len, de_start, de_end; +reg sync_valid; + +reg old_sync; +always @(posedge clk) old_sync <= sync_in; + +always @(posedge clk) begin + reg [WIDTH-1:0] cnti; + reg f_valid; + reg old_de; + + cnti <= cnti + 1'd1; + if(~old_sync & sync_in) begin + if(sync_valid) f_len <= cnti; + f_valid <= 1; + sync_valid <= f_valid; + cnti <= 0; + end + + if(old_sync & ~sync_in & sync_valid) s_len <= cnti; + + old_de <= de_in; + if(~old_de & de_in & sync_valid) de_start <= cnti; + if(old_de & ~de_in & sync_valid) de_end <= cnti; + + if(freeze) {f_valid, sync_valid} <= 0; +end + +reg sync_o, de_o, sync_o_pre; +always @(posedge clk) begin + reg [WIDTH-1:0] cnto; + + cnto <= cnto + 1'd1; + if(old_sync & ~sync_in & sync_valid) cnto <= s_len + 2'd2; + if(cnto == f_len) cnto <= 0; + + sync_o_pre <= (cnto == (s_len>>1)); // middle in sync + if(cnto == f_len) sync_o <= 1; + if(cnto == s_len) sync_o <= 0; + if(cnto == de_start) de_o <= 1; + if(cnto == de_end) de_o <= 0; +end + +assign sync_out = freeze ? sync_o : sync_in; +assign valid = sync_valid; +assign sync_pt = sync_o_pre; +assign de_out = freeze ? de_o : de_in; + +endmodule diff --git a/sys/video_mixer.sv b/sys/video_mixer.sv index 82c9e51..e53e1c0 100644 --- a/sys/video_mixer.sv +++ b/sys/video_mixer.sv @@ -1,238 +1,219 @@ -// -// -// Copyright (c) 2017 Sorgelig -// -// This program is GPL Licensed. See COPYING for the full license. -// -// -//////////////////////////////////////////////////////////////////////////////////////////////////////// - -`timescale 1ns / 1ps - -// -// LINE_LENGTH: Length of display line in pixels -// Usually it's length from HSync to HSync. -// May be less if line_start is used. -// -// HALF_DEPTH: If =1 then color dept is 4 bits per component -// For half depth 8 bits monochrome is available with -// mono signal enabled and color = {G, R} -// -// altera message_off 10720 -// altera message_off 12161 - -module video_mixer -#( - parameter LINE_LENGTH = 768, - parameter HALF_DEPTH = 0, - parameter GAMMA = 0 -) -( - // video clock - // it should be multiple by (ce_pix*4). - input clk_vid, - - // Pixel clock or clock_enable (both are accepted). - input ce_pix, - output ce_pix_out, - - input scandoubler, - - // scanlines (00-none 01-25% 10-50% 11-75%) - input [1:0] scanlines, - - // High quality 2x scaling - input hq2x, - - // color - input [DWIDTH:0] R, - input [DWIDTH:0] G, - input [DWIDTH:0] B, - - // Monochrome mode (for HALF_DEPTH only) - input mono, - - inout [21:0] gamma_bus, - - // Positive pulses. - input HSync, - input VSync, - input HBlank, - input VBlank, - - // video output signals - output reg [7:0] VGA_R, - output reg [7:0] VGA_G, - output reg [7:0] VGA_B, - output reg VGA_VS, - output reg VGA_HS, - output reg VGA_DE -); - -localparam DWIDTH = HALF_DEPTH ? 3 : 7; -localparam DWIDTH_SD = GAMMA ? 7 : DWIDTH; -localparam HALF_DEPTH_SD = GAMMA ? 0 : HALF_DEPTH; - -generate - if(GAMMA && HALF_DEPTH) begin - wire [7:0] R_in = mono ? {G,R} : {R,R}; - wire [7:0] G_in = mono ? {G,R} : {G,G}; - wire [7:0] B_in = mono ? {G,R} : {B,B}; - end else begin - wire [DWIDTH:0] R_in = R; - wire [DWIDTH:0] G_in = G; - wire [DWIDTH:0] B_in = B; - end -endgenerate - - -wire hs_g, vs_g; -wire hb_g, vb_g; -wire [DWIDTH_SD:0] R_gamma, G_gamma, B_gamma; - -generate - if(GAMMA) begin - assign gamma_bus[21] = 1; - gamma_corr gamma( - .clk_sys(gamma_bus[20]), - .clk_vid(clk_vid), - .ce_pix(ce_pix), - - .gamma_en(gamma_bus[19]), - .gamma_wr(gamma_bus[18]), - .gamma_wr_addr(gamma_bus[17:8]), - .gamma_value(gamma_bus[7:0]), - - .HSync(HSync), - .VSync(VSync), - .HBlank(HBlank), - .VBlank(VBlank), - .RGB_in({R_in,G_in,B_in}), - - .HSync_out(hs_g), - .VSync_out(vs_g), - .HBlank_out(hb_g), - .VBlank_out(vb_g), - .RGB_out({R_gamma,G_gamma,B_gamma}) - ); - end else begin - assign gamma_bus[21] = 0; - assign {R_gamma,G_gamma,B_gamma} = {R_in,G_in,B_in}; - assign {hs_g, vs_g, hb_g, vb_g} = {HSync, VSync, HBlank, VBlank}; - end -endgenerate - - -wire [DWIDTH_SD:0] R_sd; -wire [DWIDTH_SD:0] G_sd; -wire [DWIDTH_SD:0] B_sd; -wire hs_sd, vs_sd, hb_sd, vb_sd, ce_pix_sd; - -scandoubler #(.LENGTH(LINE_LENGTH), .HALF_DEPTH(HALF_DEPTH_SD)) sd -( - .*, - .hs_in(hs_g), - .vs_in(vs_g), - .hb_in(hb_g), - .vb_in(vb_g), - .r_in(R_gamma), - .g_in(G_gamma), - .b_in(B_gamma), - - .ce_pix_out(ce_pix_sd), - .hs_out(hs_sd), - .vs_out(vs_sd), - .hb_out(hb_sd), - .vb_out(vb_sd), - .r_out(R_sd), - .g_out(G_sd), - .b_out(B_sd) -); - -wire [DWIDTH_SD:0] rt = (scandoubler ? R_sd : R_gamma); -wire [DWIDTH_SD:0] gt = (scandoubler ? G_sd : G_gamma); -wire [DWIDTH_SD:0] bt = (scandoubler ? B_sd : B_gamma); - -generate - if(!GAMMA && HALF_DEPTH) begin - wire [7:0] r = mono ? {gt,rt} : {rt,rt}; - wire [7:0] g = mono ? {gt,rt} : {gt,gt}; - wire [7:0] b = mono ? {gt,rt} : {bt,bt}; - end else begin - wire [7:0] r = rt; - wire [7:0] g = gt; - wire [7:0] b = bt; - end -endgenerate - -wire hs = (scandoubler ? hs_sd : hs_g); -wire vs = (scandoubler ? vs_sd : vs_g); - -assign ce_pix_out = scandoubler ? ce_pix_sd : ce_pix; - - -reg scanline = 0; -always @(posedge clk_vid) begin - reg old_hs, old_vs; - - old_hs <= hs; - old_vs <= vs; - - if(old_hs && ~hs) scanline <= ~scanline; - if(old_vs && ~vs) scanline <= 0; -end - -wire hde = scandoubler ? ~hb_sd : ~hb_g; -wire vde = scandoubler ? ~vb_sd : ~vb_g; - -reg [7:0] v_r,v_g,v_b; -reg v_vs,v_hs,v_de; -always @(posedge clk_vid) begin - reg old_hde; - - if(ce_pix_out) begin - case(scanlines & {scanline, scanline}) - 1: begin // reduce 25% = 1/2 + 1/4 - v_r <= {1'b0, r[7:1]} + {2'b00, r[7:2]}; - v_g <= {1'b0, g[7:1]} + {2'b00, g[7:2]}; - v_b <= {1'b0, b[7:1]} + {2'b00, b[7:2]}; - end - - 2: begin // reduce 50% = 1/2 - v_r <= {1'b0, r[7:1]}; - v_g <= {1'b0, g[7:1]}; - v_b <= {1'b0, b[7:1]}; - end - - 3: begin // reduce 75% = 1/4 - v_r <= {2'b00, r[7:2]}; - v_g <= {2'b00, g[7:2]}; - v_b <= {2'b00, b[7:2]}; - end - - default: begin - v_r <= r; - v_g <= g; - v_b <= b; - end - endcase - - v_vs <= vs; - v_hs <= hs; - - old_hde <= hde; - if(~old_hde && hde) v_de <= vde; - if(old_hde && ~hde) v_de <= 0; - end -end - -always @(posedge clk_vid) if(ce_pix_out) begin - VGA_R <= v_r; - VGA_G <= v_g; - VGA_B <= v_b; - VGA_HS <= v_hs; - VGA_VS <= v_vs; - VGA_DE <= v_de; -end - -endmodule +// +// +// Copyright (c) 2017,2021 Alexey Melnikov +// +// This program is GPL Licensed. See COPYING for the full license. +// +// +//////////////////////////////////////////////////////////////////////////////////////////////////////// + +`timescale 1ns / 1ps + +// +// LINE_LENGTH: Length of display line in pixels when HBlank = 0; +// HALF_DEPTH: If =1 then color dept is 4 bits per component +// +// altera message_off 10720 +// altera message_off 12161 + +module video_mixer +#( + parameter LINE_LENGTH = 768, + parameter HALF_DEPTH = 0, + parameter GAMMA = 0 +) +( + input CLK_VIDEO, // should be multiple by (ce_pix*4) + output reg CE_PIXEL, // output pixel clock enable + + input ce_pix, // input pixel clock or clock_enable + + input scandoubler, + input hq2x, // high quality 2x scaling + + inout [21:0] gamma_bus, + + // color + input [DWIDTH:0] R, + input [DWIDTH:0] G, + input [DWIDTH:0] B, + + // Positive pulses. + input HSync, + input VSync, + input HBlank, + input VBlank, + + // Freeze engine + // HDMI: displays last frame + // VGA: black screen with HSync and VSync + input HDMI_FREEZE, + output freeze_sync, + + // video output signals + output reg [7:0] VGA_R, + output reg [7:0] VGA_G, + output reg [7:0] VGA_B, + output reg VGA_VS, + output reg VGA_HS, + output reg VGA_DE +); + +localparam DWIDTH = HALF_DEPTH ? 3 : 7; +localparam DWIDTH_SD = GAMMA ? 7 : DWIDTH; +localparam HALF_DEPTH_SD = GAMMA ? 0 : HALF_DEPTH; + +wire frz_hs, frz_vs; +wire frz_hbl, frz_vbl; +video_freezer freezer +( + .clk(CLK_VIDEO), + .freeze(HDMI_FREEZE), + .hs_in(HSync), + .vs_in(VSync), + .hbl_in(HBlank), + .vbl_in(VBlank), + .sync(freeze_sync), + .hs_out(frz_hs), + .vs_out(frz_vs), + .hbl_out(frz_hbl), + .vbl_out(frz_vbl) +); + +reg frz; +always @(posedge CLK_VIDEO) begin + reg frz1; + + frz1 <= HDMI_FREEZE; + frz <= frz1; +end + +generate + if(GAMMA && HALF_DEPTH) begin + wire [7:0] R_in = frz ? 8'd0 : {R,R}; + wire [7:0] G_in = frz ? 8'd0 : {G,G}; + wire [7:0] B_in = frz ? 8'd0 : {B,B}; + end else begin + wire [DWIDTH:0] R_in = frz ? 1'd0 : R; + wire [DWIDTH:0] G_in = frz ? 1'd0 : G; + wire [DWIDTH:0] B_in = frz ? 1'd0 : B; + end +endgenerate + +wire hs_g, vs_g; +wire hb_g, vb_g; +wire [DWIDTH_SD:0] R_gamma, G_gamma, B_gamma; + +generate + if(GAMMA) begin + assign gamma_bus[21] = 1; + gamma_corr gamma( + .clk_sys(gamma_bus[20]), + .clk_vid(CLK_VIDEO), + .ce_pix(ce_pix), + + .gamma_en(gamma_bus[19]), + .gamma_wr(gamma_bus[18]), + .gamma_wr_addr(gamma_bus[17:8]), + .gamma_value(gamma_bus[7:0]), + + .HSync(frz_hs), + .VSync(frz_vs), + .HBlank(frz_hbl), + .VBlank(frz_vbl), + .RGB_in({R_in,G_in,B_in}), + + .HSync_out(hs_g), + .VSync_out(vs_g), + .HBlank_out(hb_g), + .VBlank_out(vb_g), + .RGB_out({R_gamma,G_gamma,B_gamma}) + ); + end else begin + assign gamma_bus[21] = 0; + assign {R_gamma,G_gamma,B_gamma} = {R_in,G_in,B_in}; + assign {hs_g, vs_g, hb_g, vb_g} = {frz_hs, frz_vs, frz_hbl, frz_vbl}; + end +endgenerate + +wire [DWIDTH_SD:0] R_sd; +wire [DWIDTH_SD:0] G_sd; +wire [DWIDTH_SD:0] B_sd; +wire hs_sd, vs_sd, hb_sd, vb_sd, ce_pix_sd; + +scandoubler #(.LENGTH(LINE_LENGTH), .HALF_DEPTH(HALF_DEPTH_SD)) sd +( + .clk_vid(CLK_VIDEO), + .hq2x(hq2x), + + .ce_pix(ce_pix), + .hs_in(hs_g), + .vs_in(vs_g), + .hb_in(hb_g), + .vb_in(vb_g), + .r_in(R_gamma), + .g_in(G_gamma), + .b_in(B_gamma), + + .ce_pix_out(ce_pix_sd), + .hs_out(hs_sd), + .vs_out(vs_sd), + .hb_out(hb_sd), + .vb_out(vb_sd), + .r_out(R_sd), + .g_out(G_sd), + .b_out(B_sd) +); + +wire [DWIDTH_SD:0] rt = (scandoubler ? R_sd : R_gamma); +wire [DWIDTH_SD:0] gt = (scandoubler ? G_sd : G_gamma); +wire [DWIDTH_SD:0] bt = (scandoubler ? B_sd : B_gamma); + +always @(posedge CLK_VIDEO) begin + reg [7:0] r,g,b; + reg hde,vde,hs,vs, old_vs; + reg old_hde; + reg old_ce; + reg ce_osc, fs_osc; + + old_ce <= ce_pix; + ce_osc <= ce_osc | (old_ce ^ ce_pix); + + old_vs <= vs; + if(~old_vs & vs) begin + fs_osc <= ce_osc; + ce_osc <= 0; + end + + CE_PIXEL <= scandoubler ? ce_pix_sd : fs_osc ? (~old_ce & ce_pix) : ce_pix; + + if(!GAMMA && HALF_DEPTH) begin + r <= {rt,rt}; + g <= {gt,gt}; + b <= {bt,bt}; + end + else begin + r <= rt; + g <= gt; + b <= bt; + end + + hde <= scandoubler ? ~hb_sd : ~hb_g; + vde <= scandoubler ? ~vb_sd : ~vb_g; + vs <= scandoubler ? vs_sd : vs_g; + hs <= scandoubler ? hs_sd : hs_g; + + if(CE_PIXEL) begin + VGA_R <= r; + VGA_G <= g; + VGA_B <= b; + + VGA_VS <= vs; + VGA_HS <= hs; + + old_hde <= hde; + if(old_hde ^ hde) VGA_DE <= vde & hde; + end +end + +endmodule diff --git a/sys/yc_out.sv b/sys/yc_out.sv new file mode 100644 index 0000000..984fc37 --- /dev/null +++ b/sys/yc_out.sv @@ -0,0 +1,233 @@ +//============================================================================ +// YC - Luma / Chroma Generation +// Copyright (C) 2022 Mike Simone +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +//============================================================================ +/* +Colorspace +Y 0.299R' + 0.587G' + 0.114B' +U 0.492(B' - Y) = 504 (X 1024) +V 0.877(R' - Y) = 898 (X 1024) +*/ +////////////////////////////////////////////////////////// + +module yc_out +( + input clk, + input [39:0] PHASE_INC, + input PAL_EN, + input CVBS, + input [16:0] COLORBURST_RANGE, + + input hsync, + input vsync, + input csync, + input de, + + input [23:0] din, + output [23:0] dout, + + output reg hsync_o, + output reg vsync_o, + output reg csync_o, + output reg de_o +); + +wire [7:0] red = din[23:16]; +wire [7:0] green = din[15:8]; +wire [7:0] blue = din[7:0]; + +logic [9:0] red_1, blue_1, green_1, red_2, blue_2, green_2; + +logic signed [20:0] yr = 0, yb = 0, yg = 0; + +typedef struct { + logic signed [20:0] y; + logic signed [20:0] c; + logic signed [20:0] u; + logic signed [20:0] v; + logic hsync; + logic vsync; + logic csync; + logic de; +} phase_t; + +localparam MAX_PHASES = 7'd8; + +phase_t phase[MAX_PHASES]; +reg unsigned [7:0] Y, C, c, U, V; + + +reg [10:0] cburst_phase; // colorburst counter +reg unsigned [7:0] vref = 'd128; // Voltage reference point (Used for Chroma) +logic [7:0] chroma_LUT_COS; // Chroma cos LUT reference +logic [7:0] chroma_LUT_SIN; // Chroma sin LUT reference +logic [7:0] chroma_LUT_BURST; // Chroma colorburst LUT reference +logic [7:0] chroma_LUT = 8'd0; + +/* +THe following LUT table was calculated by Sin(2*pi*t/2^8) where t: 0 - 255 +*/ + +/************************************* + 8 bit Sine look up Table +**************************************/ +wire signed [10:0] chroma_SIN_LUT[256] = '{ + 11'h000, 11'h006, 11'h00C, 11'h012, 11'h018, 11'h01F, 11'h025, 11'h02B, 11'h031, 11'h037, 11'h03D, 11'h044, 11'h04A, 11'h04F, + 11'h055, 11'h05B, 11'h061, 11'h067, 11'h06D, 11'h072, 11'h078, 11'h07D, 11'h083, 11'h088, 11'h08D, 11'h092, 11'h097, 11'h09C, + 11'h0A1, 11'h0A6, 11'h0AB, 11'h0AF, 11'h0B4, 11'h0B8, 11'h0BC, 11'h0C1, 11'h0C5, 11'h0C9, 11'h0CC, 11'h0D0, 11'h0D4, 11'h0D7, + 11'h0DA, 11'h0DD, 11'h0E0, 11'h0E3, 11'h0E6, 11'h0E9, 11'h0EB, 11'h0ED, 11'h0F0, 11'h0F2, 11'h0F4, 11'h0F5, 11'h0F7, 11'h0F8, + 11'h0FA, 11'h0FB, 11'h0FC, 11'h0FD, 11'h0FD, 11'h0FE, 11'h0FE, 11'h0FE, 11'h0FF, 11'h0FE, 11'h0FE, 11'h0FE, 11'h0FD, 11'h0FD, + 11'h0FC, 11'h0FB, 11'h0FA, 11'h0F8, 11'h0F7, 11'h0F5, 11'h0F4, 11'h0F2, 11'h0F0, 11'h0ED, 11'h0EB, 11'h0E9, 11'h0E6, 11'h0E3, + 11'h0E0, 11'h0DD, 11'h0DA, 11'h0D7, 11'h0D4, 11'h0D0, 11'h0CC, 11'h0C9, 11'h0C5, 11'h0C1, 11'h0BC, 11'h0B8, 11'h0B4, 11'h0AF, + 11'h0AB, 11'h0A6, 11'h0A1, 11'h09C, 11'h097, 11'h092, 11'h08D, 11'h088, 11'h083, 11'h07D, 11'h078, 11'h072, 11'h06D, 11'h067, + 11'h061, 11'h05B, 11'h055, 11'h04F, 11'h04A, 11'h044, 11'h03D, 11'h037, 11'h031, 11'h02B, 11'h025, 11'h01F, 11'h018, 11'h012, + 11'h00C, 11'h006, 11'h000, 11'h7F9, 11'h7F3, 11'h7ED, 11'h7E7, 11'h7E0, 11'h7DA, 11'h7D4, 11'h7CE, 11'h7C8, 11'h7C2, 11'h7BB, + 11'h7B5, 11'h7B0, 11'h7AA, 11'h7A4, 11'h79E, 11'h798, 11'h792, 11'h78D, 11'h787, 11'h782, 11'h77C, 11'h777, 11'h772, 11'h76D, + 11'h768, 11'h763, 11'h75E, 11'h759, 11'h754, 11'h750, 11'h74B, 11'h747, 11'h743, 11'h73E, 11'h73A, 11'h736, 11'h733, 11'h72F, + 11'h72B, 11'h728, 11'h725, 11'h722, 11'h71F, 11'h71C, 11'h719, 11'h716, 11'h714, 11'h712, 11'h70F, 11'h70D, 11'h70B, 11'h70A, + 11'h708, 11'h707, 11'h705, 11'h704, 11'h703, 11'h702, 11'h702, 11'h701, 11'h701, 11'h701, 11'h701, 11'h701, 11'h701, 11'h701, + 11'h702, 11'h702, 11'h703, 11'h704, 11'h705, 11'h707, 11'h708, 11'h70A, 11'h70B, 11'h70D, 11'h70F, 11'h712, 11'h714, 11'h716, + 11'h719, 11'h71C, 11'h71F, 11'h722, 11'h725, 11'h728, 11'h72B, 11'h72F, 11'h733, 11'h736, 11'h73A, 11'h73E, 11'h743, 11'h747, + 11'h74B, 11'h750, 11'h754, 11'h759, 11'h75E, 11'h763, 11'h768, 11'h76D, 11'h772, 11'h777, 11'h77C, 11'h782, 11'h787, 11'h78D, + 11'h792, 11'h798, 11'h79E, 11'h7A4, 11'h7AA, 11'h7B0, 11'h7B5, 11'h7BB, 11'h7C2, 11'h7C8, 11'h7CE, 11'h7D4, 11'h7DA, 11'h7E0, + 11'h7E7, 11'h7ED, 11'h7F3, 11'h7F9 +}; + +logic [39:0] phase_accum; +logic PAL_FLIP = 1'd0; +logic PAL_line_count = 1'd0; + +/************************************** + Generate Luma and Chroma Signals +***************************************/ + +always_ff @(posedge clk) begin + for (logic [3:0] x = 0; x < (MAX_PHASES - 1'd1); x = x + 1'd1) begin + phase[x + 1] <= phase[x]; + end + + // delay red / blue signals to align luma with U/V calculation (Fixes colorbleeding) + red_1 <= red; + blue_1 <= blue; + red_2 <= red_1; + blue_2 <= blue_1; + + // Calculate Luma signal + yr <= {red, 8'd0} + {red, 5'd0}+ {red, 4'd0} + {red, 1'd0}; + yg <= {green, 9'd0} + {green, 6'd0} + {green, 4'd0} + {green, 3'd0} + green; + yb <= {blue, 6'd0} + {blue, 5'd0} + {blue, 4'd0} + {blue, 2'd0} + blue; + phase[0].y <= yr + yg + yb; + + // Generate the LUT values using the phase accumulator reference. + phase_accum <= phase_accum + PHASE_INC; + chroma_LUT <= phase_accum[39:32]; + + // Adjust SINE carrier reference for PAL (Also adjust for PAL Switch) + if (PAL_EN) begin + if (PAL_FLIP) + chroma_LUT_BURST <= chroma_LUT + 8'd160; + else + chroma_LUT_BURST <= chroma_LUT + 8'd96; + end else // Adjust SINE carrier reference for NTSC + chroma_LUT_BURST <= chroma_LUT + 8'd128; + + // Prepare LUT values for sin / cos (+90 degress) + chroma_LUT_SIN <= chroma_LUT; + chroma_LUT_COS <= chroma_LUT + 8'd64; + + // Calculate for U, V - Bit Shift Multiple by u = by * 1024 x 0.492 = 504, v = ry * 1024 x 0.877 = 898 + phase[0].u <= $signed({2'b0 ,(blue_2)}) - $signed({2'b0 ,phase[0].y[17:10]}); + phase[0].v <= $signed({2'b0 , (red_2)}) - $signed({2'b0 ,phase[0].y[17:10]}); + phase[1].u <= 21'($signed({phase[0].u, 8'd0}) + $signed({phase[0].u, 7'd0}) + $signed({phase[0].u, 6'd0}) + $signed({phase[0].u, 5'd0}) + $signed({phase[0].u, 4'd0}) + $signed({phase[0].u, 3'd0})); + phase[1].v <= 21'($signed({phase[0].v, 9'd0}) + $signed({phase[0].v, 8'd0}) + $signed({phase[0].v, 7'd0}) + $signed({phase[0].v, 1'd0})); + + phase[0].c <= vref; + phase[1].c <= phase[0].c; + phase[2].c <= phase[1].c; + phase[3].c <= phase[2].c; + + if (hsync) begin // Reset colorburst counter, as well as the calculated cos / sin values. + cburst_phase <= 'd0; + phase[2].u <= 21'b0; + phase[2].v <= 21'b0; + phase[4].c <= phase[3].c; + + if (PAL_line_count) begin + PAL_FLIP <= ~PAL_FLIP; + PAL_line_count <= ~PAL_line_count; + end + end + else begin // Generate Colorburst for 9 cycles + if (cburst_phase >= COLORBURST_RANGE[16:10] && cburst_phase <= COLORBURST_RANGE[9:0]) begin // Start the color burst signal at 40 samples or 0.9 us + // COLORBURST SIGNAL GENERATION (9 CYCLES ONLY or between count 40 - 240) + phase[2].u <= $signed({chroma_SIN_LUT[chroma_LUT_BURST],5'd0}); + phase[2].v <= 21'b0; + + // Division to scale down the results to fit 8 bit. + if (PAL_EN) + phase[3].u <= $signed(phase[2].u[20:8]) + $signed(phase[2].u[20:10]) + $signed(phase[2].u[20:14]); + else + phase[3].u <= $signed(phase[2].u[20:8]) + $signed(phase[2].u[20:11]) + $signed(phase[2].u[20:12]) + $signed(phase[2].u[20:13]); + + phase[3].v <= phase[2].v; + end else begin // MODULATE U, V for chroma + /* + U,V are both multiplied by 1024 earlier to scale for the decimals in the YUV colorspace conversion. + U and V are both divided by 2^10 which introduce chroma subsampling of 4:1:1 (25% or from 8 bit to 6 bit) + */ + phase[2].u <= $signed((phase[1].u)>>>10) * $signed(chroma_SIN_LUT[chroma_LUT_SIN]); + phase[2].v <= $signed((phase[1].v)>>>10) * $signed(chroma_SIN_LUT[chroma_LUT_COS]); + + // Divide U*sin(wt) and V*cos(wt) to fit results to 8 bit + phase[3].u <= $signed(phase[2].u[20:9]) + $signed(phase[2].u[20:10]) + $signed(phase[2].u[20:14]); + phase[3].v <= $signed(phase[2].v[20:9]) + $signed(phase[2].v[20:10]) + $signed(phase[2].u[20:14]); + end + + // Stop the colorburst timer as its only needed for the initial pulse + if (cburst_phase <= COLORBURST_RANGE[9:0]) + cburst_phase <= cburst_phase + 9'd1; + + // Calculate for chroma (Note: "PAL SWITCH" routine flips V * COS(Wt) every other line) + if (PAL_EN) begin + if (PAL_FLIP) + phase[4].c <= vref + phase[3].u - phase[3].v; + else + phase[4].c <= vref + phase[3].u + phase[3].v; + PAL_line_count <= 1'd1; + end else + phase[4].c <= vref + phase[3].u + phase[3].v; + end + + // Adjust sync timing correctly + phase[1].hsync <= hsync; phase[1].vsync <= vsync; phase[1].csync <= csync; phase[1].de <= de; + phase[2].hsync <= phase[1].hsync; phase[2].vsync <= phase[1].vsync; phase[2].csync <= phase[1].csync; phase[2].de <= phase[1].de; + phase[3].hsync <= phase[2].hsync; phase[3].vsync <= phase[2].vsync; phase[3].csync <= phase[2].csync; phase[3].de <= phase[2].de; + phase[4].hsync <= phase[3].hsync; phase[4].vsync <= phase[3].vsync; phase[4].csync <= phase[3].csync; phase[4].de <= phase[3].de; + hsync_o <= phase[4].hsync; vsync_o <= phase[4].vsync; csync_o <= phase[4].csync; de_o <= phase[4].de; + + phase[1].y <= phase[0].y; phase[2].y <= phase[1].y; phase[3].y <= phase[2].y; phase[4].y <= phase[3].y; phase[5].y <= phase[4].y; + + // Set Chroma / Luma output + C <= CVBS ? 8'd0 : phase[4].c[7:0]; + Y <= CVBS ? ({1'b0, phase[5].y[17:11]} + {1'b0, phase[4].c[7:1]}) : phase[5].y[17:10]; +end + +assign dout = {C, Y, 8'd0}; + +endmodule +