diff --git a/hw/efinix_fpga/HexDriver.sv b/hw/efinix_fpga/HexDriver.sv new file mode 100644 index 0000000..0cce9d4 --- /dev/null +++ b/hw/efinix_fpga/HexDriver.sv @@ -0,0 +1,27 @@ +module HexDriver (input [3:0] In0, + output logic [6:0] Out0); + + always_comb + begin + unique case (In0) + 4'b0000 : Out0 = 7'b1000000; // '0' + 4'b0001 : Out0 = 7'b1111001; // '1' + 4'b0010 : Out0 = 7'b0100100; // '2' + 4'b0011 : Out0 = 7'b0110000; // '3' + 4'b0100 : Out0 = 7'b0011001; // '4' + 4'b0101 : Out0 = 7'b0010010; // '5' + 4'b0110 : Out0 = 7'b0000010; // '6' + 4'b0111 : Out0 = 7'b1111000; // '7' + 4'b1000 : Out0 = 7'b0000000; // '8' + 4'b1001 : Out0 = 7'b0010000; // '9' + 4'b1010 : Out0 = 7'b0001000; // 'A' + 4'b1011 : Out0 = 7'b0000011; // 'b' + 4'b1100 : Out0 = 7'b1000110; // 'C' + 4'b1101 : Out0 = 7'b0100001; // 'd' + 4'b1110 : Out0 = 7'b0000110; // 'E' + 4'b1111 : Out0 = 7'b0001110; // 'F' + default : Out0 = 7'bX; + endcase + end + +endmodule diff --git a/hw/efinix_fpga/SevenSeg.sv b/hw/efinix_fpga/SevenSeg.sv new file mode 100644 index 0000000..ff2179e --- /dev/null +++ b/hw/efinix_fpga/SevenSeg.sv @@ -0,0 +1,42 @@ +module SevenSeg( + input clk, + input rst, + + input rw, + + input [7:0] data, + input cs, + input [1:0] addr, + + output logic [6:0] HEX0, HEX1, HEX2, HEX3, HEX4, HEX5 +); + +logic [7:0] _data [3:0]; + +always_ff @(posedge clk) begin + if (rst) + _data = '{default:'0}; + if (~rw & cs) + _data[addr] <= data; +end + + +logic [3:0] hex_4[5:0]; + +assign {hex_4[5], hex_4[4]} = _data[2]; +assign {hex_4[3], hex_4[2]} = _data[1]; +assign {hex_4[1], hex_4[0]} = _data[0]; + +logic [6:0] _HEX0, _HEX1, _HEX2, _HEX3, _HEX4, _HEX5; + +HexDriver hex_drivers[5:0] (hex_4, {_HEX5, _HEX4, _HEX3, _HEX2, _HEX1, _HEX0}); + +assign HEX0 = _HEX0 | {7{~_data[3][0]}}; +assign HEX1 = _HEX1 | {7{~_data[3][1]}}; +assign HEX2 = _HEX2 | {7{~_data[3][2]}}; +assign HEX3 = _HEX3 | {7{~_data[3][3]}}; +assign HEX4 = _HEX4 | {7{~_data[3][4]}}; +assign HEX5 = _HEX5 | {7{~_data[3][5]}}; + + +endmodule diff --git a/hw/efinix_fpga/addr_decode.sv b/hw/efinix_fpga/addr_decode.sv new file mode 100644 index 0000000..bcfde85 --- /dev/null +++ b/hw/efinix_fpga/addr_decode.sv @@ -0,0 +1,24 @@ +module addr_decode( + input logic [23:0] addr, + output logic sdram_cs, + output logic rom_cs, + output logic hex_cs, + output logic uart_cs, + output logic irq_cs, + output logic board_io_cs, + output logic mm_cs1, + output logic mm_cs2, + output logic sd_cs +); + +assign rom_cs = addr >= 24'h008000 && addr < 24'h010000; +assign sdram_cs = addr < 24'h007fe0 || addr >= 24'h010000; +assign mm_cs1 = addr >= 24'h007fe0 && addr < 24'h007ff0; +assign hex_cs = addr >= 24'h007ff0 && addr < 24'h007ff4; +assign uart_cs = addr >= 24'h007ff4 && addr < 24'h007ff6; +assign board_io_cs = addr == 24'h007ff6; +assign mm_cs2 = addr == 24'h007ff7; +assign sd_cs = addr >= 24'h007ff8 && addr < 24'h007ffe; +assign irq_cs = addr == 24'h007fff; + +endmodule diff --git a/hw/efinix_fpga/board_io.sv b/hw/efinix_fpga/board_io.sv new file mode 100644 index 0000000..d83d1b3 --- /dev/null +++ b/hw/efinix_fpga/board_io.sv @@ -0,0 +1,27 @@ +module board_io( + input clk, + input rst, + + input rw, + + input [7:0] data_in, + input cs, + input [1:0] addr, + + output logic [7:0] data_out, + + output logic [7:0] led, + input [7:0] sw +); + +assign data_out = sw; + + +always_ff @(posedge clk) begin + if (rst) + led = '0; + if (~rw & cs) + led <= data_in; +end + +endmodule diff --git a/hw/efinix_fpga/crc7.sv b/hw/efinix_fpga/crc7.sv new file mode 100644 index 0000000..e009826 --- /dev/null +++ b/hw/efinix_fpga/crc7.sv @@ -0,0 +1,106 @@ +module crc7 #(parameter POLYNOMIAL = 8'h89) +( + input clk, + input rst, + + input load, + input [39:0] data_in, + + output logic [6:0] crc_out, + output logic valid +); + +logic [46:0] data; +logic [46:0] next_data; +logic [46:0] polyshift; + +typedef enum bit [1:0] {IDLE, WORKING, VALID} macro_t; +struct packed { + macro_t macro; + logic [5:0] count; +} state, next_state; + +always_ff @(posedge clk) begin + if (rst) begin + polyshift <= {POLYNOMIAL, 39'b0}; //start all the way at the left + data <= '0; + state.macro <= IDLE; + state.count <= '0; + end else begin + if (load) begin + data <= {data_in, 7'b0}; + end else begin + data <= next_data; + end + state <= next_state; + + if (state.macro == WORKING) begin + polyshift <= polyshift >> 1; + end + + if (state.macro == VALID) begin + polyshift <= {POLYNOMIAL, 39'b0}; + end + end +end + +always_comb begin + next_state = state; + + case (state.macro) + IDLE: begin + if (load) begin + next_state.macro = WORKING; + next_state.count = '0; + end + end + + WORKING: begin + if (state.count < 39) begin + next_state.count = state.count + 6'b1; + end else begin + next_state.macro = VALID; + next_state.count = '0; + end + end + + VALID: begin // Same as IDLE, but IDLE is just for reset. + if (load) begin + next_state.macro = WORKING; + next_state.count = '0; + end + end + + default:; + endcase +end + +always_comb begin + valid = 0; + next_data = '0; + crc_out = '0; + + case (state.macro) + IDLE: begin + valid = 0; + end + + WORKING: begin + if (data[6'd46 - state.count]) begin + next_data = data ^ polyshift; + end else begin + next_data = data; + end + end + + VALID: begin + valid = ~load; + next_data = data; + crc_out = data[6:0]; + end + + default:; + endcase +end + +endmodule diff --git a/hw/efinix_fpga/ip/sdram/sdram.v b/hw/efinix_fpga/ip/sdram/sdram.v new file mode 100644 index 0000000..57af1cf --- /dev/null +++ b/hw/efinix_fpga/ip/sdram/sdram.v @@ -0,0 +1,4236 @@ +// ============================================================================= +// Generated by efx_ipmgr +// Version: 2021.2.323 +// IP Version: 1.5 +// ============================================================================= + +//////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2013-2021 Efinix Inc. All rights reserved. +// +// This document contains proprietary information which is +// protected by copyright. All rights are reserved. This notice +// refers to original work by Efinix, Inc. which may be derivitive +// of other work distributed under license of the authors. In the +// case of derivative work, nothing in this notice overrides the +// original author's license agreement. Where applicable, the +// original license agreement is included in it's original +// unmodified form immediately below this header. +// +// WARRANTY DISCLAIMER. +// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND +// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH +// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES, +// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR +// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED +// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. +// +// LIMITATION OF LIABILITY. +// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY +// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT +// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY +// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT, +// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY +// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF +// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR +// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN +// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER +// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE +// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO +// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR +// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT +// APPLY TO LICENSEE. +// +//////////////////////////////////////////////////////////////////////////////// + +`define IP_UUID _2fa8b2362acf42f5841c22a03034c8fb +`define IP_NAME_CONCAT(a,b) a``b +`define IP_MODULE_NAME(name) `IP_NAME_CONCAT(name,`IP_UUID) +module sdram ( +input i_we, +input i_sysclk, +input i_arst, +input i_sdrclk, +input i_tACclk, +input i_pll_locked, +input i_re, +input i_last, +output o_dbg_tRTW_done, +output o_dbg_ref_req, +output o_dbg_wr_ack, +output o_dbg_rd_ack, +output [1:0] o_dbg_n_CS, +output [1:0] o_dbg_n_RAS, +output [1:0] o_dbg_n_CAS, +output [1:0] o_dbg_n_WE, +output [3:0] o_dbg_BA, +output [25:0] o_dbg_ADDR, +output [31:0] o_dbg_DATA_out, +output [31:0] o_dbg_DATA_in, +input [23:0] i_addr, +input [31:0] i_din, +output [31:0] o_dout, +output [3:0] o_sdr_state, +output o_sdr_init_done, +output o_wr_ack, +output o_rd_ack, +output o_ref_req, +output o_rd_valid, +output [1:0] o_sdr_CKE, +output [1:0] o_sdr_n_CS, +output [1:0] o_sdr_n_RAS, +output [1:0] o_sdr_n_CAS, +output [1:0] o_sdr_n_WE, +output [3:0] o_sdr_BA, +output [25:0] o_sdr_ADDR, +output [31:0] o_sdr_DATA, +output [31:0] o_sdr_DATA_oe, +input [31:0] i_sdr_DATA, +output [3:0] o_sdr_DQM, +output [5:0] o_dbg_dly_cnt_b, +output o_dbg_tRCD_done +); +`IP_MODULE_NAME(efx_sdram_controller) #( +.fSYS_MHz (100), +.fCK_MHz (200), +.tIORT_u (2), +.BL (1), +.DDIO_TYPE ("SOFT"), +.DQ_WIDTH (8), +.DQ_GROUP (2), +.BA_WIDTH (2), +.ROW_WIDTH (13), +.COL_WIDTH (9), +.tPWRUP (200000), +.tRAS (44), +.tRC (66), +.tRCD (20), +.tREF (64000000), +.tWR (2), +.tMRD (2), +.tRFC (66), +.tRAS_MAX (120000), +.DATA_RATE (2), +.AXI_ARADDR_WIDTH (24), +.SDRAM_MODE ("Native"), +.AXI_BUSER_WIDTH (2), +.AXI_BID_WIDTH (4), +.AXI_AWUSER_WIDTH (2), +.AXI_AWID_WIDTH (4), +.AXI_AWADDR_WIDTH (24), +.AXI_RDATA_WIDTH (32), +.AXI_WUSER_WIDTH (2), +.AXI_WDATA_WIDTH (32), +.AXI_RUSER_WIDTH (3), +.AXI_ARUSER_WIDTH (3), +.AXI_ARID_WIDTH (4), +.tRP (20), +.CL (3) +) u_efx_sdram_controller( +.i_we ( i_we ), +.i_sysclk ( i_sysclk ), +.i_arst ( i_arst ), +.i_sdrclk ( i_sdrclk ), +.i_tACclk ( i_tACclk ), +.i_pll_locked ( i_pll_locked ), +.i_re ( i_re ), +.i_last ( i_last ), +.o_dbg_tRTW_done ( o_dbg_tRTW_done ), +.o_dbg_ref_req ( o_dbg_ref_req ), +.o_dbg_wr_ack ( o_dbg_wr_ack ), +.o_dbg_rd_ack ( o_dbg_rd_ack ), +.o_dbg_n_CS ( o_dbg_n_CS ), +.o_dbg_n_RAS ( o_dbg_n_RAS ), +.o_dbg_n_CAS ( o_dbg_n_CAS ), +.o_dbg_n_WE ( o_dbg_n_WE ), +.o_dbg_BA ( o_dbg_BA ), +.o_dbg_ADDR ( o_dbg_ADDR ), +.o_dbg_DATA_out ( o_dbg_DATA_out ), +.o_dbg_DATA_in ( o_dbg_DATA_in ), +.i_addr ( i_addr ), +.i_din ( i_din ), +.o_dout ( o_dout ), +.o_sdr_state ( o_sdr_state ), +.o_sdr_init_done ( o_sdr_init_done ), +.o_wr_ack ( o_wr_ack ), +.o_rd_ack ( o_rd_ack ), +.o_ref_req ( o_ref_req ), +.o_rd_valid ( o_rd_valid ), +.o_sdr_CKE ( o_sdr_CKE ), +.o_sdr_n_CS ( o_sdr_n_CS ), +.o_sdr_n_RAS ( o_sdr_n_RAS ), +.o_sdr_n_CAS ( o_sdr_n_CAS ), +.o_sdr_n_WE ( o_sdr_n_WE ), +.o_sdr_BA ( o_sdr_BA ), +.o_sdr_ADDR ( o_sdr_ADDR ), +.o_sdr_DATA ( o_sdr_DATA ), +.o_sdr_DATA_oe ( o_sdr_DATA_oe ), +.i_sdr_DATA ( i_sdr_DATA ), +.o_sdr_DQM ( o_sdr_DQM ), +.o_dbg_dly_cnt_b ( o_dbg_dly_cnt_b ), +.o_dbg_tRCD_done ( o_dbg_tRCD_done ) +); + +endmodule + +///////////////////////////////////////////////////////////////////////////// +// _____ +// / _______ Copyright (C) 2013-2020 Efinix Inc. All rights reserved. +// / / \ +// / / .. / `IP_MODULE_NAME(axi4_sdram_controller).v +// / / .' / +// __/ /.' / Description: +// __ \ / sdram contronller top with AXI4 interface +// /_/ /\ \_____/ / +// ____/ \_______/ +// +// ******************************* +// Revisions: +// 1.0 Initial rev +// Support ONLY AXI 32-bit data to SDRAM total DQ x16 half rate +// +// ******************************* +///////////////////////////////////////////////////////////////////////////// +// AxSIZE +`define BYTES_TX_1 3'b000 +`define BYTES_TX_2 3'b001 +`define BYTES_TX_4 3'b010 +`define BYTES_TX_8 3'b011 +`define BYTES_TX_16 3'b100 +`define BYTES_TX_32 3'b101 +`define BYTES_TX_64 3'b110 +`define BYTES_TX_128 3'b111 +`define OKAY 2'b00 + +module `IP_MODULE_NAME(axi4_sdram_controller) +#( + parameter AXI_AWADDR_WIDTH = 32, + parameter AXI_WDATA_WIDTH = 32, + parameter AXI_ARADDR_WIDTH = 32, + parameter AXI_RDATA_WIDTH = 32, + + parameter fSYS_MHz = 100, + parameter fCK_MHz = 100, + parameter DDIO_TYPE = "SOFT", + parameter tPWRUP = 100, // 100 us + parameter tRAS = 44, // 44 ns + parameter tRAS_MAX = 120, // 120 us + parameter tRC = 66, // 66 ns + parameter tRCD = 20, // 20 ns + parameter tREF = 64, // 64 ms + parameter tRFC = 66, // 66 ns + parameter tRP = 20, // 20 ns + parameter tWR = 2, // 1 CK+7.5 ns + parameter tMRD = 2, // 2 CK + parameter CL = 3, // 3 CK + parameter BL = 1, + parameter DATA_RATE = 1, + parameter tIORT_u = 2, + parameter BA_WIDTH = 2, + parameter ROW_WIDTH = 10, + parameter COL_WIDTH = 10, + parameter DQ_WIDTH = 8, // x4, x8 + parameter DQ_GROUP = 8, + // x4 x8 x16 x32 + // DQ_WIDTH 4 8 8 8 + // DQ_GROUP 1 1 2 4 + // AXI not support DQ_WIDTH = 4 DQ_GROUP = 1 + + //----- parameter not configurable by user---- + parameter AXI_AWID_WIDTH = 4, + parameter AXI_AWUSER_WIDTH = 2, + parameter AXI_WUSER_WIDTH = 2, + parameter AXI_BID_WIDTH = 4, + parameter AXI_BUSER_WIDTH = 2, + parameter AXI_ARID_WIDTH = 4, + parameter AXI_ARUSER_WIDTH = 2, + parameter AXI_RUSER_WIDTH = 2 +) +( + input i_aresetn, + input i_sysclk, + input i_sdrclk, + input i_tACclk, + input i_pll_locked, + output o_pll_reset, + + // Compulsory + output o_AXI4_AWREADY, + input [AXI_AWADDR_WIDTH-1:0]i_AXI4_AWADDR, + input [2:0]i_AXI4_AWPROT, // Dummy + input i_AXI4_AWVALID, + + output o_AXI4_WREADY, + input [AXI_WDATA_WIDTH-1:0]i_AXI4_WDATA, + input i_AXI4_WLAST, + input i_AXI4_WVALID, + + output o_AXI4_BVALID, + input i_AXI4_BREADY, + + output o_AXI4_ARREADY, + input [AXI_ARADDR_WIDTH-1:0]i_AXI4_ARADDR, + input [2:0]i_AXI4_ARPROT, // Dummy + input i_AXI4_ARVALID, + + input i_AXI4_RREADY, + output [AXI_RDATA_WIDTH-1:0]o_AXI4_RDATA, + output o_AXI4_RLAST, + output o_AXI4_RVALID, + + // Optional + input [AXI_AWID_WIDTH-1:0]i_AXI4_AWID, + input [3:0]i_AXI4_AWREGION, // Dummy + input [7:0]i_AXI4_AWLEN, // Dummy + input [2:0]i_AXI4_AWSIZE, + input [1:0]i_AXI4_AWBURST, // Dummy + input i_AXI4_AWLOCK, // Dummy + input [3:0]i_AXI4_AWCACHE, // Dummy + input [3:0]i_AXI4_AWQOS, // Dummy + input [AXI_AWUSER_WIDTH-1:0]i_AXI4_AWUSER, // Dummy + + input [AXI_WDATA_WIDTH/8-1:0]i_AXI4_WSTRB, // Dummy + input [AXI_WUSER_WIDTH-1:0]i_AXI4_WUSER, // Dummy + + output [AXI_BID_WIDTH-1:0]o_AXI4_BID, + output [1:0]o_AXI4_BRESP, // Dummy + output [AXI_BUSER_WIDTH-1:0]o_AXI4_BUSER, // Dummy + + input [AXI_ARID_WIDTH-1:0]i_AXI4_ARID, + input [3:0]i_AXI4_ARREGION, // Dummy + input [7:0]i_AXI4_ARLEN, + input [2:0]i_AXI4_ARSIZE, + input [1:0]i_AXI4_ARBURST, // Dummy + input i_AXI4_ARLOCK, // Dummy + input [3:0]i_AXI4_ARCACHE, // Dummy + input [3:0]i_AXI4_ARQOS, // Dummy + input [AXI_ARUSER_WIDTH-1:0]i_AXI4_ARUSER, // Dummy + + output [AXI_ARID_WIDTH-1:0]o_AXI4_RID, + output [1:0]o_AXI4_RRESP, // Dummy + output [AXI_RUSER_WIDTH-1:0]o_AXI4_RUSER, // Dummy + + output [DATA_RATE -1:0] o_sdr_CKE, + output [DATA_RATE -1:0] o_sdr_n_CS, + output [DATA_RATE -1:0] o_sdr_n_RAS, + output [DATA_RATE -1:0] o_sdr_n_CAS, + output [DATA_RATE -1:0] o_sdr_n_WE, + output [DATA_RATE *BA_WIDTH -1:0] o_sdr_BA, + output [DATA_RATE *ROW_WIDTH -1:0] o_sdr_ADDR, + output [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] o_sdr_DATA, + output [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] o_sdr_DATA_oe, + input [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] i_sdr_DATA, + output [DATA_RATE *DQ_GROUP -1:0] o_sdr_DQM, + + // Debug port + output [3:0]o_sdr_state, + output o_dbg_we, + output o_dbg_re, + output o_dbg_last, + output [BA_WIDTH+ROW_WIDTH+COL_WIDTH-1:0]o_dbg_addr, + output [AXI_WDATA_WIDTH-1:0]o_dbg_din, + output o_dbg_wr_ack, + output o_dbg_rd_ack, + output o_sdr_rd_valid, + output o_dbg_ref_req, + output [DATA_RATE*DQ_GROUP*DQ_WIDTH+AXI_ARID_WIDTH:0]o_sdr_dout, + output [1:0]o_axi4_wrstate, + output o_dbg_axi4_wlast, + output [1:0]o_axi4_rastate, + output [1:0]o_axi4_rdstate, + output o_axi4_nwr, + output o_re_lock, + output [6:0]o_shift_cnt, + output [7:0]o_axi4_arlen, + output o_fifo_wr, + output o_fifo_full, + output o_fifo_empty, + output o_dbg_fifo_we, + output [7:0]o_dbg_fifo_waddr, + output o_dbg_fifo_re, + output [7:0]o_dbg_fifo_raddr, + + output [DATA_RATE -1:0] o_dbg_n_CS, + output [DATA_RATE -1:0] o_dbg_n_RAS, + output [DATA_RATE -1:0] o_dbg_n_CAS, + output [DATA_RATE -1:0] o_dbg_n_WE, + output [DATA_RATE *BA_WIDTH -1:0] o_dbg_BA, + output [DATA_RATE *ROW_WIDTH -1:0] o_dbg_ADDR, + output [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] o_dbg_DATA_out, + output [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] o_dbg_DATA_in +); + +function integer log2; + input integer val; + integer i; + begin + log2 = 0; + for (i=0; 2**i= AXI_BID_WIDTH) + r_AXI4_BID_1P <= i_AXI4_AWID[AXI_BID_WIDTH-1:0]; + else + r_AXI4_BID_1P <= {{AXI_BID_WIDTH-AXI_AWID_WIDTH{1'b0}}, i_AXI4_AWID}; + + r_we_1P <= 1'b1; + // TODO AXI different width support + if (SDR_BWIDTH > AXI_WDATA_WIDTH) + begin + r_addr_1P[0+:BA_WIDTH+ROW_WIDTH+COL_WIDTH-(0-SDR_BWIDTH/AXI_WDATA_WIDTH+1)] <= i_AXI4_AWADDR[BA_WIDTH+ROW_WIDTH+COL_WIDTH-1:0-SDR_BWIDTH/AXI_WDATA_WIDTH+1]; + $display("foo_gt\n"); + end + else if (SDR_BWIDTH == AXI_WDATA_WIDTH) + begin + //r_addr_1P <= {i_AXI4_AWADDR[BA_WIDTH+ROW_WIDTH+COL_WIDTH-1:COL_WIDTH], {(DATA_RATE-1){1'b0}}, i_AXI4_AWADDR[COL_WIDTH-1:DATA_RATE-1]}; + r_addr_1P <= i_AXI4_AWADDR; + $display("foo_eq\n"); + end + + if (SDR_BWIDTH > AXI_WDATA_WIDTH) + begin + //r_AXI4_WREADY_c <= 1'b1; + r_size_1P <= SDR_BWIDTH/AXI_WDATA_WIDTH-1'b1; + r_shift_cnt_1P <= SDR_BWIDTH/AXI_WDATA_WIDTH-1'b1; + $display("SDR_BWIDTH %d > AXI_WDATA_WIDTH %d\n", SDR_BWIDTH, AXI_WDATA_WIDTH); + end + else if (SDR_BWIDTH == AXI_WDATA_WIDTH) + begin + if (i_AXI4_WLAST) + begin + r_din_1P <= i_AXI4_WDATA; + r_last_1P <= 1'b1; + end + r_size_1P <= SDR_BWIDTH/AXI_WDATA_WIDTH-1'b1; + r_shift_cnt_1P <= {7{1'b0}}; + $display("SDR_BWIDTH %d = AXI_WDATA_WIDTH %d\n", SDR_BWIDTH, AXI_WDATA_WIDTH); + end + else + begin + //r_AXI4_WREADY_c <= 1'b1; + r_size_1P <= AXI_WDATA_WIDTH/SDR_BWIDTH-1'b1; + r_shift_cnt_1P <= AXI_WDATA_WIDTH/SDR_BWIDTH-1'b1; + $display("SDR_BWIDTH %d < AXI_WDATA_WIDTH %d\n", SDR_BWIDTH, AXI_WDATA_WIDTH); + end + end + end + + s_WR_SHIFT: + begin + if (SDR_BWIDTH > AXI_WDATA_WIDTH) + begin + if (r_shift_cnt_1P != 7'd0) + begin + if (r_AXI4_WREADY_c) + r_shift_cnt_1P <= r_shift_cnt_1P-1'b1; + end + else + begin + r_shift_cnt_1P <= r_size_1P; + end + end + else if (SDR_BWIDTH == AXI_WDATA_WIDTH) + begin + if (r_AXI4_WREADY_2P) + r_addr_1P <= r_addr_1P+c_addr_increment; + + if (r_AXI4_WREADY_c) + r_din_1P <= i_AXI4_WDATA; + + if (~r_AXI4_WREADY_c & r_AXI4_WREADY_2P & i_AXI4_WLAST) + begin + r_din_1P <= i_AXI4_WDATA; + end + end + + if (w_wr_ack) + begin + /*if (SDR_BWIDTH < AXI_WDATA_WIDTH) + begin + if (r_size_1P != `BYTES_TX_1) + r_addr_1P <= r_addr_1P+c_addr_increment; + else if (~r_wr_ack_1P) + r_addr_1P <= r_addr_1P+c_addr_increment; + else if (r_AXI4_WREADY_2P) + r_addr_1P <= r_addr_1P+c_addr_increment; + + r_shift_cnt_1P <= r_shift_cnt_1P-1'b1; + if (r_AXI4_WLAST_1P && r_shift_cnt_1P == 7'd1) + r_last_1P <= 1'b1; + end + else if (SDR_BWIDTH == AXI_WDATA_WIDTH) + begin + r_AXI4_WREADY_c <= 1'b1; + end + else + begin + r_AXI4_WREADY_c <= 1'b1; + + if (r_AXI4_WREADY_c) + r_addr_1P <= r_addr_1P+1'b1; + + if (r_shift_cnt_1P == 7'd1) + begin + if (i_AXI4_WLAST || r_AXI4_WLAST_1P) + begin + r_axi4_wrstate_1P <= s_WR_RESP; + r_AXI4_WREADY_c <= 1'b0; + r_AXI4_WLAST_1P <= 1'b0; + r_AXI4_BVALID_1P <= 1'b1; + + r_last_1P <= 1'b1; + end + end + end*/ + + if (r_shift_cnt_1P == 7'd0) + begin + //r_AXI4_WREADY_c <= 1'b1; + + r_AXI4_WLAST_1P <= i_AXI4_WLAST; + r_shift_cnt_1P <= r_size_1P; + + if (i_AXI4_WLAST && r_size_1P == {7{1'b0}} && r_AXI4_AWLEN_1P) + begin + r_axi4_wrstate_1P <= s_WR_RESP; + //r_AXI4_WREADY_c <= ~r_AXI4_WREADY_c; + r_AXI4_WLAST_1P <= 1'b0; + r_AXI4_BVALID_1P <= 1'b1; + + r_we_1P <= 1'b1; + r_last_1P <= 1'b1; + end + else if (r_AXI4_WLAST_1P) + begin + r_axi4_wrstate_1P <= s_WR_RESP; + //r_AXI4_WREADY_c <= ~r_AXI4_WREADY_c; + r_AXI4_WLAST_1P <= 1'b0; + r_AXI4_BVALID_1P <= 1'b1; + + r_we_1P <= 1'b0; + r_last_1P <= 1'b0; + end + end + end + end + + s_WR_RESP: + begin + r_we_1P <= 1'b0; + r_last_1P <= 1'b0; + + if (i_AXI4_BREADY) + begin + r_axi4_wrstate_1P <= s_IDLE; + r_AXI4_BVALID_1P <= 1'b0; + end + end + endcase + + case (r_axi4_rastate_1P) + s_INIT: + begin + if (w_sdr_init_done) + r_axi4_rastate_1P <= s_IDLE; + end + + s_IDLE: + begin + if (i_AXI4_ARVALID && r_axi4_nwr_1P + && ~r_we_1P && ~w_afull && ~r_AXI4_RVALID_1P) + begin + r_axi4_rastate_1P <= s_RD_ADDR; + r_AXI4_ARREADY_1P <= 1'b1; + r_AXI4_RID_1P <= i_AXI4_ARID; + + r_re_1P <= 1'b1; + r_re_lock_1P <= 1'b1; + if (i_AXI4_ARLEN == 8'd0 && (SDR_BWIDTH == AXI_RDATA_WIDTH)) + r_last_1P <= 1'b1; + + // TODO AXI different width support + if (SDR_BWIDTH > AXI_RDATA_WIDTH) + begin + r_addr_1P[0+:BA_WIDTH+ROW_WIDTH+COL_WIDTH-(0-SDR_BWIDTH/AXI_RDATA_WIDTH+1)] <= i_AXI4_ARADDR[BA_WIDTH+ROW_WIDTH+COL_WIDTH-1:0-SDR_BWIDTH/AXI_RDATA_WIDTH+1]; + end + else if (SDR_BWIDTH == AXI_RDATA_WIDTH) + begin + //r_addr_1P <= {i_AXI4_ARADDR[BA_WIDTH+ROW_WIDTH+COL_WIDTH-1:COL_WIDTH], {(DATA_RATE-1){1'b0}}, i_AXI4_ARADDR[COL_WIDTH-1:DATA_RATE-1]}; + r_addr_1P <= i_AXI4_ARADDR; + end + + if (SDR_BWIDTH > AXI_WDATA_WIDTH) + begin + r_size_1P <= SDR_BWIDTH/AXI_RDATA_WIDTH-1'b1; + r_shift_cnt_1P <= SDR_BWIDTH/AXI_RDATA_WIDTH-1'b1; + r_addr_cnt_1P <= SDR_BWIDTH/AXI_RDATA_WIDTH-1'b1; + end + else if (SDR_BWIDTH == AXI_WDATA_WIDTH) + begin + r_AXI4_ARLEN_1P <= i_AXI4_ARLEN; + r_size_1P <= 7'd0; + r_shift_cnt_1P <= 7'd0; + r_addr_cnt_1P <= 7'd0; + r_arlen_cnt_1P <= i_AXI4_ARLEN; + end + else + begin + r_AXI4_ARLEN_1P <= i_AXI4_ARLEN; + r_size_1P <= AXI_RDATA_WIDTH/SDR_BWIDTH-1'b1; + r_shift_cnt_1P <= AXI_RDATA_WIDTH/SDR_BWIDTH-1'b1; + r_addr_cnt_1P <= AXI_RDATA_WIDTH/SDR_BWIDTH-1'b1; + r_arlen_cnt_1P <= i_AXI4_ARLEN; + end + end + end + + s_RD_ADDR: + begin + if (~w_afull) + r_re_1P <= 1'b1; + + if (w_rd_ack) + begin + if (w_afull) + r_re_1P <= 1'b0; + if (SDR_BWIDTH < AXI_WDATA_WIDTH) + r_addr_1P <= r_addr_1P+c_addr_increment; + else if (SDR_BWIDTH == AXI_WDATA_WIDTH) + r_addr_1P <= r_addr_1P+c_addr_increment; + else + r_addr_1P <= r_addr_1P+1'b1; + + r_addr_cnt_1P <= r_addr_cnt_1P-1'b1; + if (r_addr_cnt_1P == 7'd0) + begin + r_addr_cnt_1P <= r_size_1P; + r_arlen_cnt_1P <= r_arlen_cnt_1P-1'b1; + end + + if (r_arlen_cnt_1P == 8'd1 && (SDR_BWIDTH == AXI_RDATA_WIDTH)) + r_last_1P <= 1'b1; + + if (r_arlen_cnt_1P == 8'd0) + begin + if (r_addr_cnt_1P == 8'd1) + r_last_1P <= 1'b1; + + if (r_addr_cnt_1P == 8'd0) + begin + r_axi4_rastate_1P <= s_IDLE; + + r_re_1P <= 1'b0; + r_last_1P <= 1'b0; + r_re_lock_1P <= 1'b0; + end + end + end + end + endcase + + if (w_rd_valid) + begin + if (SDR_BWIDTH >= AXI_RDATA_WIDTH) + begin + r_dout_1P[DOUT_WIDTH-1:0] <= w_dout; + end + + r_dout_1P[DOUT_WIDTH+AXI_ARID_WIDTH-1:DOUT_WIDTH] <= r_AXI4_RID[CL+tIORT+1]; + + r_shift_cnt_1P <= r_shift_cnt_1P-1'b1; + + if (r_shift_cnt_1P == 7'd0) + begin + r_fifo_wr_1P <= 1'b1; + if (r_AXI4_ARLEN_1P == 7'd0) + r_dout_1P[DOUT_WIDTH+AXI_ARID_WIDTH] <= 1'b1; + else + r_AXI4_ARLEN_1P <= r_AXI4_ARLEN_1P-1'b1; + r_shift_cnt_1P <= r_size_1P; + end + end + + case (r_axi4_rdstate_1P) + s_INIT: + begin + if (w_sdr_init_done) + r_axi4_rdstate_1P <= s_IDLE; + end + + s_IDLE: + begin + if (~w_empty & r_dout_1P[DOUT_WIDTH+AXI_ARID_WIDTH]) + begin + r_axi4_rdstate_1P <= s_RD_SHIFT; + r_fifo_rd_1P <= 1'b1; + r_dout_1P[DOUT_WIDTH+AXI_ARID_WIDTH] <= 1'b0; + end + end + + s_RD_SHIFT: + begin + r_AXI4_RVALID_1P <= 1'b1; + + if (i_AXI4_RREADY) + begin + if (w_empty) + begin + r_axi4_rdstate_1P <= s_IDLE; + r_AXI4_RVALID_1P <= 1'b0; + end + + if (w_fifo_dout[AXI_RDATA_WIDTH+AXI_ARID_WIDTH]) + begin + r_axi4_rdstate_1P <= s_IDLE; + r_AXI4_RVALID_1P <= 1'b0; + end + end + end + endcase + end +end + +genvar i; +generate + for (i=0; i 1) begin + `IP_MODULE_NAME(sdram_io_block) + #( + .DATA_RATE (DATA_RATE), + .BA_WIDTH (BA_WIDTH), + .ROW_WIDTH (ROW_WIDTH), + .COL_WIDTH (COL_WIDTH), + .DQ_WIDTH (DQ_WIDTH), + .DQ_GROUP (DQ_GROUP) + ) + inst_sdram_io_block + ( + .i_arst (i_arst), + .i_sysclk (i_sysclk), + .i_sdrclk (i_sdrclk), + .i_tACclk (i_tACclk), + .i_pll_locked (i_pll_locked), + + .i_sdr_CKE_core (w_sdr_CKE), + .i_sdr_n_CS_core (w_sdr_n_CS), + .i_sdr_n_RAS_core (w_sdr_n_RAS), + .i_sdr_n_CAS_core (w_sdr_n_CAS), + .i_sdr_n_WE_core (w_sdr_n_WE), + .i_sdr_BA_core (w_sdr_BA), + .i_sdr_ADDR_core (w_sdr_ADDR), + .i_sdr_DATA_core (w_sdr_DATA_out), + .i_sdr_DATA_oe_core (w_sdr_DATA_oe), + .o_sdr_DATA_core (w_sdr_DATA_in), + .i_sdr_DQM_core (w_sdr_DQM), + + .o_sdr_CKE_pad (o_sdr_CKE), + .o_sdr_n_CS_pad (o_sdr_n_CS), + .o_sdr_n_RAS_pad (o_sdr_n_RAS), + .o_sdr_n_CAS_pad (o_sdr_n_CAS), + .o_sdr_n_WE_pad (o_sdr_n_WE), + .o_sdr_BA_pad (o_sdr_BA), + .o_sdr_ADDR_pad (o_sdr_ADDR), + .o_sdr_DATA_pad (o_sdr_DATA), + .o_sdr_DATA_oe_pad (o_sdr_DATA_oe), + .i_sdr_DATA_pad (i_sdr_DATA), + .o_sdr_DQM_pad (o_sdr_DQM) + ); +end +else begin + reg [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0]r_sdr_DATA_in_tACclk_1P; + + always@(posedge i_arst or posedge i_tACclk) + begin + if (i_arst) + r_sdr_DATA_in_tACclk_1P <= {DATA_RATE*DQ_GROUP*DQ_WIDTH{1'b0}}; + else + r_sdr_DATA_in_tACclk_1P <= i_sdr_DATA; + end + + assign w_sdr_DATA_in = r_sdr_DATA_in_tACclk_1P; + assign o_sdr_CKE = w_sdr_CKE; + assign o_sdr_n_CS = w_sdr_n_CS; + assign o_sdr_n_RAS = w_sdr_n_RAS; + assign o_sdr_n_CAS = w_sdr_n_CAS; + assign o_sdr_n_WE = w_sdr_n_WE; + assign o_sdr_BA = w_sdr_BA; + assign o_sdr_ADDR = w_sdr_ADDR; + assign o_sdr_DATA = w_sdr_DATA_out; + assign o_sdr_DATA_oe = w_sdr_DATA_oe; + assign o_sdr_DQM = w_sdr_DQM; +end +endgenerate + +assign o_dbg_DATA_out = w_sdr_DATA_out; +assign o_dbg_DATA_in = w_sdr_DATA_in; + +endmodule + +////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2013-2019 Efinix Inc. All rights reserved. +// +// This document contains proprietary information which is +// protected by copyright. All rights are reserved. This notice +// refers to original work by Efinix, Inc. which may be derivitive +// of other work distributed under license of the authors. In the +// case of derivative work, nothing in this notice overrides the +// original author's license agreement. Where applicable, the +// original license agreement is included in it's original +// unmodified form immediately below this header. +// +// WARRANTY DISCLAIMER. +// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND +// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH +// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES, +// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR +// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED +// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. +// +// LIMITATION OF LIABILITY. +// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY +// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT +// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY +// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT, +// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY +// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF +// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR +// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN +// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER +// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE +// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO +// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR +// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT +// APPLY TO LICENSEE. +// +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// _____ +// / _______ Copyright (C) 2013-2020 Efinix Inc. All rights reserved. +// / / \ +// / / .. / `IP_MODULE_NAME(sdram_fsm).v +// / / .' / +// __/ /.' / Description: +// __ \ / sdram controller state machine +// /_/ /\ \_____/ / +// ____/ \_______/ +// +// ******************************* +// Revisions: +// 1.0 Initial rev +// +// ******************************* + +module `IP_MODULE_NAME(sdram_fsm) +#( + parameter fSYS_MHz = 100, + parameter fCK_MHz = 200, // MHz + parameter DLY_CNT_A_WIDTH = 6, + parameter DLY_CNT_B_WIDTH = 6, + parameter CHECK_ACT_BA = 4, + parameter REF_LATENCY = 2, // + + parameter tPWRUP = 200, // 100 us + parameter tRAS = 44, // 44 ns + parameter tRAS_MAX = 120000, // 120 us + parameter tRC = 66, // 66 ns + parameter tRCD = 20, // 20 ns + parameter tREF = 64, // 64 ms + parameter tRFC = 66, // 66 ns + parameter tRP = 20, // 20 ns + parameter tWR = 2, // 1 CK+7.5 ns + parameter tMRD = 2, // 2 CK + parameter CL = 3, // 3 CK + parameter BL = 1, + parameter tIORT = 2, + parameter DDIO_TYPE = "SOFT", + parameter DATA_RATE = 2, + parameter BA_WIDTH = 2, + parameter ROW_WIDTH = 13, + parameter COL_WIDTH = 10, + parameter DQ_WIDTH = 8, // x4, x8 + parameter DQ_GROUP = 4 + // x4 x8 x16 x32 + // DQ_WIDTH 4 8 8 8 + // DQ_GROUP 1 1 2 4 +) +( + input i_arst, + input i_sysclk, + input i_pll_locked, + + input i_we, + input i_re, + input i_last, + input [ (BA_WIDTH+ROW_WIDTH+COL_WIDTH) -1:0] i_addr, + input [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] i_din, + output [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] o_dout, + output [3:0]o_sdr_state, + output o_sdr_init_done, + output o_wr_ack, + output o_rd_ack, + output o_ref_req, + output o_rd_valid, + + output [DATA_RATE -1:0] o_sdr_CKE, + output [DATA_RATE -1:0] o_sdr_n_CS, + output [DATA_RATE -1:0] o_sdr_n_RAS, + output [DATA_RATE -1:0] o_sdr_n_CAS, + output [DATA_RATE -1:0] o_sdr_n_WE, + output [DATA_RATE *BA_WIDTH -1:0] o_sdr_BA, + output [DATA_RATE *ROW_WIDTH -1:0] o_sdr_ADDR, + output [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] o_sdr_DATA, + output [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] o_sdr_DATA_oe, + input [DATA_RATE *DQ_GROUP *DQ_WIDTH -1:0] i_sdr_DATA, + output [DATA_RATE *DQ_GROUP -1:0] o_sdr_DQM, + + output [5:0]o_dbg_dly_cnt_b, + output o_dbg_tRCD_done, + output o_dbg_tRTW_done, + output o_dbg_ref_req, + output o_dbg_wr_ack, + output o_dbg_rd_ack, + output [DATA_RATE -1:0] o_dbg_n_CS, + output [DATA_RATE -1:0] o_dbg_n_RAS, + output [DATA_RATE -1:0] o_dbg_n_CAS, + output [DATA_RATE -1:0] o_dbg_n_WE, + output [DATA_RATE *BA_WIDTH -1:0] o_dbg_BA, + output [DATA_RATE *ROW_WIDTH -1:0] o_dbg_ADDR +); + +function integer log2; + input integer val; + integer i; + begin + log2 = 0; + for (i=0; 2**i> b; + end + end + end + + r_sdr_dq_1P <= i_din; + r_sdr_dqoe_1P <= {DATA_RATE*DQ_GROUP*DQ_WIDTH{1'b1}}; + + r_dly_cnt_b_1P <= {DLY_CNT_B_WIDTH{1'b0}}; + r_tWR_done_1P <= 1'b0; + + r_wr_ack_1P <= ~r_ref_req_1P[0]; + + if (REF_LATENCY > 2) begin + if (r_ref_req_1P[REF_LATENCY-2] || r_tRAS_MAX_done_1P[REF_LATENCY-2] || (i_last)) + begin + r_sdr_cmd_1P <= {DATA_RATE{c_NOP}}; + r_sdr_dqoe_1P <= {DATA_RATE*DQ_GROUP*DQ_WIDTH{1'b0}}; + r_wr_ack_1P <= 1'b0; + end + end + else begin + if (r_ref_req_1P[REF_LATENCY-2] || r_tRAS_MAX_done_1P[REF_LATENCY-2] || (i_last & r_wr_ack_1P)) + begin + r_sdr_cmd_1P <= {DATA_RATE{c_NOP}}; + r_sdr_dqoe_1P <= {DATA_RATE*DQ_GROUP*DQ_WIDTH{1'b0}}; + r_wr_ack_1P <= 1'b0; + end + end + + end + else if (~i_we && i_re) + begin + if (DATA_RATE == 1) + begin + r_sdr_cmd_1P <= c_RD; + r_sdr_ba_2P <= i_addr[BA_MSB:BA_LSB]; + r_sdr_addr_2P <= i_addr[COL_MSB:COL_LSB]; + end + else + begin + for (c=0; c> b; + end + end + end + + r_dly_cnt_b_1P <= {DLY_CNT_B_WIDTH{1'b0}}; + r_tRTW_done_1P <= 1'b0; + r_tRC_done_1P <= 1'b0; + + r_rd_ack_P[0] <= ~r_ref_req_1P[0]; + + if (REF_LATENCY > 2) begin + if (r_ref_req_1P[REF_LATENCY-2] || r_tRAS_MAX_done_1P[REF_LATENCY-2] || (i_last)) + begin + if (r_rd_ack_P[0]) + begin + r_sdr_cmd_1P <= {DATA_RATE{c_NOP}}; + r_sdr_dqoe_1P <= {DATA_RATE*DQ_GROUP*DQ_WIDTH{1'b0}}; + r_rd_ack_P[0] <= 1'b0; + end + end + end + else begin + if (r_ref_req_1P[REF_LATENCY-2] || r_tRAS_MAX_done_1P[REF_LATENCY-2] || (i_last & r_rd_ack_P[0])) + begin + if (r_rd_ack_P[0]) + begin + r_sdr_cmd_1P <= {DATA_RATE{c_NOP}}; + r_sdr_dqoe_1P <= {DATA_RATE*DQ_GROUP*DQ_WIDTH{1'b0}}; + r_rd_ack_P[0] <= 1'b0; + end + end + end + end + end + end + end + + s_PRE: + begin + if (r_dly_cnt_a_1P == nRP-1'b1) + begin + if (r_ref_req_1P[REF_LATENCY-1]) + begin + if (r_pre_allbank) // check if the previous PRE is ALL_BANK or SINGLE_BANK + begin + r_sdr_state_1P <= s_REF; + r_sdr_cmd_1P[CYC_A+:4] <= c_REF; + r_pre_allbank <= 1'b0; + r_dly_cnt_a_1P <= {DLY_CNT_A_WIDTH{1'b0}}; + end + else + begin // if the previous PRE is SINGLE_BANK, issue PRE to ALL_BANK before trigger AUTO-refresh + r_sdr_state_1P <= s_PRE; + r_sdr_cmd_1P[CYC_A+:4] <= c_PRE; + r_sdr_addr_1P[CYC_A+10] <= PRE_ALL; + r_pre_allbank <= 1'b1; + if (CHECK_ACT_BA == 4) + begin + r_act_row_1P[0][ROW_WIDTH] <= 1'b0; + r_act_row_1P[1][ROW_WIDTH] <= 1'b0; + r_act_row_1P[2][ROW_WIDTH] <= 1'b0; + r_act_row_1P[3][ROW_WIDTH] <= 1'b0; + end + r_dly_cnt_a_1P <= {DLY_CNT_A_WIDTH{1'b0}}; + end + end + else + begin + r_sdr_state_1P <= s_IDLE; + end + end + end + + s_REF: + begin + if (r_dly_cnt_a_1P == nRFC) + begin + r_sdr_state_1P <= s_IDLE; + r_ref_req_1P[0] <= 1'b0; + r_dly_cnt_d_1P <= {DLY_CNT_D_WIDTH{1'b0}}; + end + end + endcase + end +end + +assign o_sdr_state = r_sdr_state_1P; +assign o_sdr_init_done = r_sdr_init_done_1P; +assign o_wr_ack = r_wr_ack_1P; +genvar i; +generate + for (i=1; i<=RD_PIPE; i=i+1) + begin: readback + always@(posedge i_arst or posedge i_sysclk) + begin + if (i_arst) + r_rd_ack_P[i] <= 1'b0; + else + r_rd_ack_P[i] <= r_rd_ack_P[i-1]; + end + end +endgenerate +assign o_rd_ack = r_rd_ack_P[0]; +assign o_ref_req = r_ref_req_1P[0]; +assign o_rd_valid = r_rd_ack_P[RD_PIPE]; +assign o_dout = r_sdr_dqin_1P; + +assign o_sdr_CKE = r_sdr_cke_1P; +genvar j; +generate + for (j=0; j i_we, +i_sysclk => i_sysclk, +i_arst => i_arst, +i_sdrclk => i_sdrclk, +i_tACclk => i_tACclk, +i_pll_locked => i_pll_locked, +i_re => i_re, +i_last => i_last, +o_dbg_tRTW_done => o_dbg_tRTW_done, +o_dbg_ref_req => o_dbg_ref_req, +o_dbg_wr_ack => o_dbg_wr_ack, +o_dbg_rd_ack => o_dbg_rd_ack, +o_dbg_n_CS => o_dbg_n_CS, +o_dbg_n_RAS => o_dbg_n_RAS, +o_dbg_n_CAS => o_dbg_n_CAS, +o_dbg_n_WE => o_dbg_n_WE, +o_dbg_BA => o_dbg_BA, +o_dbg_ADDR => o_dbg_ADDR, +o_dbg_DATA_out => o_dbg_DATA_out, +o_dbg_DATA_in => o_dbg_DATA_in, +i_addr => i_addr, +i_din => i_din, +o_dout => o_dout, +o_sdr_state => o_sdr_state, +o_sdr_init_done => o_sdr_init_done, +o_wr_ack => o_wr_ack, +o_rd_ack => o_rd_ack, +o_ref_req => o_ref_req, +o_rd_valid => o_rd_valid, +o_sdr_CKE => o_sdr_CKE, +o_sdr_n_CS => o_sdr_n_CS, +o_sdr_n_RAS => o_sdr_n_RAS, +o_sdr_n_CAS => o_sdr_n_CAS, +o_sdr_n_WE => o_sdr_n_WE, +o_sdr_BA => o_sdr_BA, +o_sdr_ADDR => o_sdr_ADDR, +o_sdr_DATA => o_sdr_DATA, +o_sdr_DATA_oe => o_sdr_DATA_oe, +i_sdr_DATA => i_sdr_DATA, +o_sdr_DQM => o_sdr_DQM, +o_dbg_dly_cnt_b => o_dbg_dly_cnt_b, +o_dbg_tRCD_done => o_dbg_tRCD_done); +------------------------ End INSTANTIATION Template --------- diff --git a/hw/efinix_fpga/ip/sdram/settings.json b/hw/efinix_fpga/ip/sdram/settings.json new file mode 100644 index 0000000..b869f62 --- /dev/null +++ b/hw/efinix_fpga/ip/sdram/settings.json @@ -0,0 +1,44 @@ +{ + "args": [ + "-o", + "sdram", + "--base_path", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip", + "--vlnv", + { + "vendor": "efinixinc.com", + "library": "memory_controller", + "name": "efx_sdram_controller", + "version": "1.5" + } + ], + "conf": { + "fCK_MHz": "200", + "tIORT_u": "2", + "CL": "3", + "DDIO_TYPE": "0", + "DQ_GROUP": "2", + "ROW_WIDTH": "13", + "COL_WIDTH": "9", + "tPWRUP": "200000", + "tRAS": "44", + "tRAS_MAX": "120000", + "tRC": "66", + "tRCD": "20", + "tREF": "64000000", + "tRFC ": "66", + "tRP": "20", + "SDRAM_MODE": "0", + "DATA_RATE": "2" + }, + "output": { + "external_source": [ + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram_define.vh", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram_tmpl.vhd", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram_tmpl.v" + ] + }, + "sw_version": "2021.2.323", + "generated_date": "2022-06-12T00:16:17.036312" +} \ No newline at end of file diff --git a/hw/efinix_fpga/memory_mapper.sv b/hw/efinix_fpga/memory_mapper.sv new file mode 100644 index 0000000..00858d7 --- /dev/null +++ b/hw/efinix_fpga/memory_mapper.sv @@ -0,0 +1,58 @@ +/* + * This is based off of the 74LS610, but is not identical. + Some of the inputs are flipped so that they are all active high, + and some outputs are reordered. + Notably, when MM is low, MA is present on MO0-MO4, not 8 to 11. + */ + +module memory_mapper( + input clk, + input rst, + + input rw, + input cs, + + input MM_cs, + + input [3:0] RS, + + input [3:0] MA, + + input logic [11:0] data_in, + output logic [11:0] data_out, + + output logic [11:0] MO +); + +logic [11:0] RAM [16]; + +logic MM; + + +always_ff @(posedge clk) begin + if (rst) begin + MM <= '0; + end else begin + if (MM_cs & ~rw) begin // can't read MM but do you really need too? + MM = |data_in; + end + + if (cs & ~rw) begin // write to registers + RAM[RS] <= data_in; + end else if (cs & rw) begin // read registers + data_out <= RAM[RS]; + end + end +end + + +always_comb begin + if (MM) begin // normal mode + MO = RAM[MA]; + end else begin // passthrough mode + MO = {8'b0, MA}; + end +end + +endmodule + diff --git a/hw/efinix_fpga/outflow/super6502.err.log b/hw/efinix_fpga/outflow/super6502.err.log new file mode 100644 index 0000000..d9c4ab7 --- /dev/null +++ b/hw/efinix_fpga/outflow/super6502.err.log @@ -0,0 +1,159 @@ + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 09, 2022 21:36:12 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] instantiating unknown module 'cpu_clk' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:92) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 09, 2022 21:36:40 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] instantiating unknown module 'memory_mapper' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:118) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 09, 2022 21:42:28 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] instantiating unknown module 'sdram_platform' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram.sv:85) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 12:05:39 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] instantiating unknown module 'sdram_platform' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram.sv:85) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:19:40 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] overwriting previous definition of module 'sdram' (VERI-1206) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:174) +[EFX-0010 VERI-ERROR] module 'axi4_sdram_controller_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:1006) +[EFX-0010 VERI-ERROR] module 'dual_clock_fifo_wrapper_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:1327) +[EFX-0010 VERI-ERROR] module 'dual_clock_fifo_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:1740) +[EFX-0010 VERI-ERROR] module 'efx_sdram_controller_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:2308) +[EFX-0010 VERI-ERROR] module 'sdram_controller_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:2585) +[EFX-0010 VERI-ERROR] module 'sdram_fsm_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:3419) +[EFX-0010 VERI-ERROR] module 'sdram_io_block_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:3784) +[EFX-0010 VERI-ERROR] module 'sdram_simple_dual_port_ram_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:3948) +[EFX-0010 VERI-ERROR] module 'sync_ddio_group_in_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:4066) +[EFX-0010 VERI-ERROR] module 'sync_ddio_group_out_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:4194) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:20:04 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] cannot find port 'rst' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:155) +[EFX-0010 VERI-ERROR] cannot find port 'clk_50' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:156) +[EFX-0010 VERI-ERROR] cannot find port 'cpu_clk' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:157) +[EFX-0010 VERI-ERROR] cannot find port 'addr' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:158) +[EFX-0010 VERI-ERROR] cannot find port 'sdram_cs' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:159) +[EFX-0010 VERI-ERROR] cannot find port 'rwb' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:160) +[EFX-0010 VERI-ERROR] cannot find port 'data_in' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:161) +[EFX-0010 VERI-ERROR] cannot find port 'data_out' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:162) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CLK' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:165) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_ADDR' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:166) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_BA' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:167) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:168) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CKE' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:169) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:170) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_DQ' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:171) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_UDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:172) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_LDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:173) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_RAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:174) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_WE_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:175) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:20:55 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] cannot find port 'rst' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:155) +[EFX-0010 VERI-ERROR] cannot find port 'clk_50' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:156) +[EFX-0010 VERI-ERROR] cannot find port 'cpu_clk' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:157) +[EFX-0010 VERI-ERROR] cannot find port 'addr' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:158) +[EFX-0010 VERI-ERROR] cannot find port 'sdram_cs' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:159) +[EFX-0010 VERI-ERROR] cannot find port 'rwb' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:160) +[EFX-0010 VERI-ERROR] cannot find port 'data_in' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:161) +[EFX-0010 VERI-ERROR] cannot find port 'data_out' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:162) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CLK' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:165) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_ADDR' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:166) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_BA' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:167) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:168) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CKE' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:169) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:170) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_DQ' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:171) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_UDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:172) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_LDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:173) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_RAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:174) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_WE_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:175) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:21:29 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] instantiating unknown module 'sdram_platform' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:85) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:21:33 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] instantiating unknown module 'sdram_platform' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:85) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 13, 2022 19:05:46 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] 'DQ_GROUP' is not a constant (VERI-1188) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:49) +[EFX-0010 VERI-ERROR] module 'sdram_adapter' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:68) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 13, 2022 19:08:09 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] 'DQ_GROUP' is not a constant (VERI-1188) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:49) +[EFX-0010 VERI-ERROR] module 'sdram_adapter' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:68) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 13, 2022 19:08:21 +/////////////////////////////////// + +[EFX-0010 VERI-ERROR] cannot find port 'rst' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:155) +[EFX-0010 VERI-ERROR] cannot find port 'clk_50' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:156) +[EFX-0010 VERI-ERROR] cannot find port 'cpu_clk' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:157) +[EFX-0010 VERI-ERROR] cannot find port 'addr' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:158) +[EFX-0010 VERI-ERROR] cannot find port 'sdram_cs' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:159) +[EFX-0010 VERI-ERROR] cannot find port 'rwb' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:160) +[EFX-0010 VERI-ERROR] cannot find port 'data_in' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:161) +[EFX-0010 VERI-ERROR] cannot find port 'data_out' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:162) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CLK' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:165) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_ADDR' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:166) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_BA' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:167) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:168) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CKE' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:169) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:170) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_DQ' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:171) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_UDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:172) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_LDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:173) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_RAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:174) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_WE_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:175) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. diff --git a/hw/efinix_fpga/outflow/super6502.info.log b/hw/efinix_fpga/outflow/super6502.info.log new file mode 100644 index 0000000..05dc356 --- /dev/null +++ b/hw/efinix_fpga/outflow/super6502.info.log @@ -0,0 +1,397 @@ + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 09, 2022 21:36:12 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0012 VERI-INFO] compiling module 'super6502' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0010 VERI-ERROR] instantiating unknown module 'cpu_clk' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:92) +[EFX-0012 VERI-INFO] module 'super6502' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 09, 2022 21:36:40 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0012 VERI-INFO] compiling module 'super6502' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0010 VERI-ERROR] instantiating unknown module 'memory_mapper' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:118) +[EFX-0012 VERI-INFO] module 'super6502' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 09, 2022 21:42:28 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0012 VERI-INFO] compiling module 'super6502' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0012 VERI-INFO] compiling module 'memory_mapper' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/memory_mapper.sv:8) +[EFX-0012 VERI-INFO] extracting RAM for identifier 'RAM' (VERI-2571) (/home/byron/Projects/super6502/hw/efinix_fpga/memory_mapper.sv:27) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_in' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:115) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_out' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:116) +[EFX-0012 VERI-INFO] compiling module 'addr_decode' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/addr_decode.sv:1) +[EFX-0012 VERI-INFO] compiling module 'sdram' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram.sv:1) +[EFX-0010 VERI-ERROR] instantiating unknown module 'sdram_platform' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram.sv:85) +[EFX-0012 VERI-INFO] module 'sdram' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram.sv:1) +[EFX-0012 VERI-INFO] module 'super6502' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 12:05:39 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0012 VERI-INFO] compiling module 'super6502' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0012 VERI-INFO] compiling module 'memory_mapper' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/memory_mapper.sv:8) +[EFX-0012 VERI-INFO] extracting RAM for identifier 'RAM' (VERI-2571) (/home/byron/Projects/super6502/hw/efinix_fpga/memory_mapper.sv:27) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_in' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:115) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_out' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:116) +[EFX-0012 VERI-INFO] compiling module 'addr_decode' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/addr_decode.sv:1) +[EFX-0012 VERI-INFO] compiling module 'sdram' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram.sv:1) +[EFX-0010 VERI-ERROR] instantiating unknown module 'sdram_platform' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram.sv:85) +[EFX-0012 VERI-INFO] module 'sdram' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram.sv:1) +[EFX-0012 VERI-INFO] module 'super6502' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:19:40 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0010 VERI-ERROR] overwriting previous definition of module 'sdram' (VERI-1206) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:174) +[EFX-0012 VERI-INFO] previous definition of design element 'sdram' is here (VERI-2142) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:87) +[EFX-0010 VERI-ERROR] module 'axi4_sdram_controller_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:1006) +[EFX-0010 VERI-ERROR] module 'dual_clock_fifo_wrapper_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:1327) +[EFX-0010 VERI-ERROR] module 'dual_clock_fifo_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:1740) +[EFX-0010 VERI-ERROR] module 'efx_sdram_controller_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:2308) +[EFX-0010 VERI-ERROR] module 'sdram_controller_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:2585) +[EFX-0010 VERI-ERROR] module 'sdram_fsm_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:3419) +[EFX-0010 VERI-ERROR] module 'sdram_io_block_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:3784) +[EFX-0010 VERI-ERROR] module 'sdram_simple_dual_port_ram_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:3948) +[EFX-0010 VERI-ERROR] module 'sync_ddio_group_in_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:4066) +[EFX-0010 VERI-ERROR] module 'sync_ddio_group_out_2fa8b2362acf42f5841c22a03034c8fb' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:4194) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:20:04 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0010 VERI-ERROR] cannot find port 'rst' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:155) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'clk_50' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:156) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'cpu_clk' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:157) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'addr' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:158) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'sdram_cs' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:159) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'rwb' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:160) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'data_in' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:161) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'data_out' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:162) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CLK' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:165) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_ADDR' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:166) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_BA' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:167) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:168) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CKE' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:169) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:170) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_DQ' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:171) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_UDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:172) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_LDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:173) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_RAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:174) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_WE_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:175) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0011 VERI-WARNING] port 'i_we' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'o_dbg_tRTW_done' remains unconnected for this instance (VERI-1927) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:20:55 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0010 VERI-ERROR] cannot find port 'rst' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:155) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'clk_50' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:156) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'cpu_clk' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:157) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'addr' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:158) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'sdram_cs' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:159) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'rwb' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:160) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'data_in' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:161) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'data_out' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:162) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CLK' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:165) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_ADDR' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:166) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_BA' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:167) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:168) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CKE' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:169) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:170) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_DQ' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:171) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_UDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:172) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_LDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:173) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_RAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:174) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_WE_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:175) +[EFX-0012 VERI-INFO] 'sdram' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v:49) +[EFX-0011 VERI-WARNING] port 'i_we' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'o_dbg_tRTW_done' remains unconnected for this instance (VERI-1927) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:21:29 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0012 VERI-INFO] compiling module 'super6502' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0012 VERI-INFO] compiling module 'memory_mapper' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/memory_mapper.sv:8) +[EFX-0012 VERI-INFO] extracting RAM for identifier 'RAM' (VERI-2571) (/home/byron/Projects/super6502/hw/efinix_fpga/memory_mapper.sv:27) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_in' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:115) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_out' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:116) +[EFX-0012 VERI-INFO] compiling module 'addr_decode' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/addr_decode.sv:1) +[EFX-0012 VERI-INFO] compiling module 'sdram_adapter' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] instantiating unknown module 'sdram_platform' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:85) +[EFX-0012 VERI-INFO] module 'sdram_adapter' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0012 VERI-INFO] module 'super6502' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:21:33 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0012 VERI-INFO] compiling module 'super6502' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0012 VERI-INFO] compiling module 'memory_mapper' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/memory_mapper.sv:8) +[EFX-0012 VERI-INFO] extracting RAM for identifier 'RAM' (VERI-2571) (/home/byron/Projects/super6502/hw/efinix_fpga/memory_mapper.sv:27) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_in' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:115) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_out' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:116) +[EFX-0012 VERI-INFO] compiling module 'addr_decode' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/addr_decode.sv:1) +[EFX-0012 VERI-INFO] compiling module 'sdram_adapter' (VERI-1018) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] instantiating unknown module 'sdram_platform' (VERI-1063) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:85) +[EFX-0012 VERI-INFO] module 'sdram_adapter' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0012 VERI-INFO] module 'super6502' remains a black box due to errors in its contents (VERI-1073) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:2) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 13, 2022 19:05:46 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0012 VERI-INFO] undeclared symbol 'w_areset', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:21) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sysclk', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:22) +[EFX-0012 VERI-INFO] undeclared symbol 'r_we_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:27) +[EFX-0012 VERI-INFO] undeclared symbol 'r_re_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:28) +[EFX-0012 VERI-INFO] undeclared symbol 'r_last_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:29) +[EFX-0012 VERI-INFO] undeclared symbol 'r_addr_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:30) +[EFX-0012 VERI-INFO] undeclared symbol 'r_din_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:31) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dout', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:32) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_state', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:33) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_init_done', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:34) +[EFX-0012 VERI-INFO] undeclared symbol 'w_wr_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:35) +[EFX-0012 VERI-INFO] undeclared symbol 'w_rd_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:36) +[EFX-0012 VERI-INFO] undeclared symbol 'w_rd_valid', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:38) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_CKE', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:40) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_CS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:41) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_RAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:42) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_CAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:43) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_WE', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:44) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_BA', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:45) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_ADDR', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:46) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_DATA', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:47) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_DATA_oe', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:48) +[EFX-0012 VERI-INFO] undeclared symbol 'DQ_GROUP', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:49) +[EFX-0012 VERI-INFO] undeclared symbol 'DQ_WIDTH', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:49) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_DQM', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:50) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_dly_cnt_b', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:52) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_tRCD_done', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:53) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_tRTW_done', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:54) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_ref_req', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:55) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_wr_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:56) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_rd_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:57) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_CS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:58) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_RAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:59) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_CAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:60) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_WE', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:61) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_BA', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:62) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_ADDR', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:63) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_DATA_out', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:64) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_DATA_in', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:65) +[EFX-0010 VERI-ERROR] 'DQ_GROUP' is not a constant (VERI-1188) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:49) +[EFX-0010 VERI-ERROR] module 'sdram_adapter' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:68) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 13, 2022 19:08:09 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0012 VERI-INFO] undeclared symbol 'w_areset', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:21) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sysclk', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:22) +[EFX-0012 VERI-INFO] undeclared symbol 'r_we_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:27) +[EFX-0012 VERI-INFO] undeclared symbol 'r_re_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:28) +[EFX-0012 VERI-INFO] undeclared symbol 'r_last_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:29) +[EFX-0012 VERI-INFO] undeclared symbol 'r_addr_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:30) +[EFX-0012 VERI-INFO] undeclared symbol 'r_din_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:31) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dout', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:32) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_state', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:33) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_init_done', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:34) +[EFX-0012 VERI-INFO] undeclared symbol 'w_wr_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:35) +[EFX-0012 VERI-INFO] undeclared symbol 'w_rd_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:36) +[EFX-0012 VERI-INFO] undeclared symbol 'w_rd_valid', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:38) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_CKE', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:40) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_CS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:41) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_RAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:42) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_CAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:43) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_WE', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:44) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_BA', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:45) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_ADDR', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:46) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_DATA', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:47) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_DATA_oe', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:48) +[EFX-0012 VERI-INFO] undeclared symbol 'DQ_GROUP', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:49) +[EFX-0012 VERI-INFO] undeclared symbol 'DQ_WIDTH', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:49) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_DQM', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:50) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_dly_cnt_b', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:52) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_tRCD_done', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:53) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_tRTW_done', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:54) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_ref_req', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:55) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_wr_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:56) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_rd_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:57) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_CS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:58) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_RAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:59) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_CAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:60) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_WE', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:61) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_BA', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:62) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_ADDR', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:63) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_DATA_out', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:64) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_DATA_in', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:65) +[EFX-0010 VERI-ERROR] 'DQ_GROUP' is not a constant (VERI-1188) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:49) +[EFX-0010 VERI-ERROR] module 'sdram_adapter' is ignored due to previous errors (VERI-1072) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:68) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 13, 2022 19:08:21 +/////////////////////////////////// + +[EFX-0012 VERI-INFO] default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +[EFX-0012 VERI-INFO] undeclared symbol 'w_areset', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:21) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sysclk', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:22) +[EFX-0012 VERI-INFO] undeclared symbol 'r_we_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:27) +[EFX-0012 VERI-INFO] undeclared symbol 'r_re_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:28) +[EFX-0012 VERI-INFO] undeclared symbol 'r_last_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:29) +[EFX-0012 VERI-INFO] undeclared symbol 'r_addr_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:30) +[EFX-0012 VERI-INFO] undeclared symbol 'r_din_1P', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:31) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dout', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:32) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_state', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:33) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_init_done', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:34) +[EFX-0012 VERI-INFO] undeclared symbol 'w_wr_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:35) +[EFX-0012 VERI-INFO] undeclared symbol 'w_rd_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:36) +[EFX-0012 VERI-INFO] undeclared symbol 'w_rd_valid', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:38) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_CKE', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:40) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_CS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:41) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_RAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:42) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_CAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:43) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_n_WE', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:44) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_BA', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:45) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_ADDR', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:46) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_DATA', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:47) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_DATA_oe', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:48) +[EFX-0012 VERI-INFO] undeclared symbol 'w_sdr_DQM', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:50) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_dly_cnt_b', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:52) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_tRCD_done', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:53) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_tRTW_done', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:54) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_ref_req', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:55) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_wr_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:56) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_rd_ack', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:57) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_CS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:58) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_RAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:59) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_CAS', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:60) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_n_WE', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:61) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_BA', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:62) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_ADDR', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:63) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_DATA_out', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:64) +[EFX-0012 VERI-INFO] undeclared symbol 'w_dbg_DATA_in', assumed default net type 'wire' (VERI-2561) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:65) +[EFX-0010 VERI-ERROR] cannot find port 'rst' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:155) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'clk_50' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:156) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'cpu_clk' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:157) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'addr' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:158) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'sdram_cs' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:159) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'rwb' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:160) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'data_in' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:161) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'data_out' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:162) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CLK' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:165) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_ADDR' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:166) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_BA' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:167) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:168) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CKE' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:169) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_CS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:170) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_DQ' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:171) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_UDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:172) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_LDQM' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:173) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_RAS_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:174) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0010 VERI-ERROR] cannot find port 'DRAM_WE_N' on this module (VERI-1010) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:175) +[EFX-0012 VERI-INFO] 'sdram_adapter' is declared here (VERI-1310) (/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv:1) +[EFX-0011 VERI-WARNING] port 'i_sysclk' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'o_pll_reset' remains unconnected for this instance (VERI-1927) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. diff --git a/hw/efinix_fpga/outflow/super6502.map.out b/hw/efinix_fpga/outflow/super6502.map.out new file mode 100644 index 0000000..515046e --- /dev/null +++ b/hw/efinix_fpga/outflow/super6502.map.out @@ -0,0 +1,113 @@ +[EFX-0000 INFO] Efinix FPGA Synthesis. +[EFX-0000 INFO] Version: 2021.2.323.4.6 +[EFX-0000 INFO] Compiled: May 12 2022. +[EFX-0000 INFO] +[EFX-0000 INFO] Copyright (C) 2013 - 2021 Efinix Inc. All rights reserved. + +INFO: Read project database "/home/byron/Projects/super6502/hw/efinix_fpga/super6502.xml" +INFO: ***** Beginning Analysis ... ***** +INFO: default VHDL library search path is now "/home/byron/Software/efinity/2021.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504) +-- Analyzing Verilog file '/home/byron/Software/efinity/2021.2/sim_models/maplib/efinix_maplib.v' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/crc7.sv' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/memory_mapper.sv' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/uart.sv' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/HexDriver.sv' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/addr_decode.sv' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/board_io.sv' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/SevenSeg.sv' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/sd_controller.sv' (VERI-1482) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv' (VERI-1482) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(21): INFO: undeclared symbol 'w_areset', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(22): INFO: undeclared symbol 'w_sysclk', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(27): INFO: undeclared symbol 'r_we_1P', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(28): INFO: undeclared symbol 'r_re_1P', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(29): INFO: undeclared symbol 'r_last_1P', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(30): INFO: undeclared symbol 'r_addr_1P', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(31): INFO: undeclared symbol 'r_din_1P', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(32): INFO: undeclared symbol 'w_dout', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(33): INFO: undeclared symbol 'w_sdr_state', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(34): INFO: undeclared symbol 'w_sdr_init_done', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(35): INFO: undeclared symbol 'w_wr_ack', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(36): INFO: undeclared symbol 'w_rd_ack', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(38): INFO: undeclared symbol 'w_rd_valid', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(40): INFO: undeclared symbol 'w_sdr_CKE', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(41): INFO: undeclared symbol 'w_sdr_n_CS', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(42): INFO: undeclared symbol 'w_sdr_n_RAS', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(43): INFO: undeclared symbol 'w_sdr_n_CAS', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(44): INFO: undeclared symbol 'w_sdr_n_WE', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(45): INFO: undeclared symbol 'w_sdr_BA', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(46): INFO: undeclared symbol 'w_sdr_ADDR', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(47): INFO: undeclared symbol 'w_sdr_DATA', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(48): INFO: undeclared symbol 'w_sdr_DATA_oe', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(50): INFO: undeclared symbol 'w_sdr_DQM', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(52): INFO: undeclared symbol 'w_dbg_dly_cnt_b', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(53): INFO: undeclared symbol 'w_dbg_tRCD_done', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(54): INFO: undeclared symbol 'w_dbg_tRTW_done', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(55): INFO: undeclared symbol 'w_dbg_ref_req', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(56): INFO: undeclared symbol 'w_dbg_wr_ack', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(57): INFO: undeclared symbol 'w_dbg_rd_ack', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(58): INFO: undeclared symbol 'w_dbg_n_CS', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(59): INFO: undeclared symbol 'w_dbg_n_RAS', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(60): INFO: undeclared symbol 'w_dbg_n_CAS', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(61): INFO: undeclared symbol 'w_dbg_n_WE', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(62): INFO: undeclared symbol 'w_dbg_BA', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(63): INFO: undeclared symbol 'w_dbg_ADDR', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(64): INFO: undeclared symbol 'w_dbg_DATA_out', assumed default net type 'wire' (VERI-2561) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(65): INFO: undeclared symbol 'w_dbg_DATA_in', assumed default net type 'wire' (VERI-2561) +-- Analyzing Verilog file '/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram/sdram.v' (VERI-1482) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(155): ERROR: cannot find port 'rst' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(156): ERROR: cannot find port 'clk_50' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(157): ERROR: cannot find port 'cpu_clk' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(158): ERROR: cannot find port 'addr' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(159): ERROR: cannot find port 'sdram_cs' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(160): ERROR: cannot find port 'rwb' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(161): ERROR: cannot find port 'data_in' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(162): ERROR: cannot find port 'data_out' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(165): ERROR: cannot find port 'DRAM_CLK' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(166): ERROR: cannot find port 'DRAM_ADDR' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(167): ERROR: cannot find port 'DRAM_BA' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(168): ERROR: cannot find port 'DRAM_CAS_N' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(169): ERROR: cannot find port 'DRAM_CKE' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(170): ERROR: cannot find port 'DRAM_CS_N' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(171): ERROR: cannot find port 'DRAM_DQ' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(172): ERROR: cannot find port 'DRAM_UDQM' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(173): ERROR: cannot find port 'DRAM_LDQM' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(174): ERROR: cannot find port 'DRAM_RAS_N' on this module (VERI-1010) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(175): ERROR: cannot find port 'DRAM_WE_N' on this module (VERI-1010) +[EFX-0021 ERROR] Verific elaboration of module 'super6502' failed. +INFO: Analysis took 0.0226114 seconds. +INFO: Analysis took 0.02 seconds (approximately) in total CPU time. +INFO: Analysis virtual memory usage: begin = 186.592 MB, end = 187.592 MB, delta = 1 MB +INFO: Analysis resident set memory usage: begin = 73.968 MB, end = 77.944 MB, delta = 3.976 MB +INFO: Analysis peak resident set memory usage = 634.104 MB +INFO: ***** Ending Analysis ... ***** +INFO: ***** Beginning Elaboration ... ***** +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/sdram_adapter.sv(1): INFO: 'sdram_adapter' is declared here (VERI-1310) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(176): WARNING: port 'i_sysclk' is not connected on this instance (VERI-2435) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(176): WARNING: port 'o_pll_reset' remains unconnected for this instance (VERI-1927) +/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv(204): WARNING: port 'addr' is not connected on this instance (VERI-2435) +INFO: Elaboration took 0.00132981 seconds. +INFO: Elaboration took 0 seconds (approximately) in total CPU time. +INFO: Elaboration virtual memory usage: begin = 187.592 MB, end = 187.592 MB, delta = 0 MB +INFO: Elaboration resident set memory usage: begin = 77.944 MB, end = 77.944 MB, delta = 0 MB +INFO: Elaboration peak resident set memory usage = 634.104 MB +INFO: ***** Ending Elaboration ... ***** diff --git a/hw/efinix_fpga/outflow/super6502.warn.log b/hw/efinix_fpga/outflow/super6502.warn.log new file mode 100644 index 0000000..b8458e9 --- /dev/null +++ b/hw/efinix_fpga/outflow/super6502.warn.log @@ -0,0 +1,93 @@ + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 09, 2022 21:36:12 +/////////////////////////////////// + + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 09, 2022 21:36:40 +/////////////////////////////////// + + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 09, 2022 21:42:28 +/////////////////////////////////// + +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_in' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:115) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_out' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:116) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 12:05:39 +/////////////////////////////////// + +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_in' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:115) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_out' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:116) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:19:40 +/////////////////////////////////// + + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:20:04 +/////////////////////////////////// + +[EFX-0011 VERI-WARNING] port 'i_we' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'o_dbg_tRTW_done' remains unconnected for this instance (VERI-1927) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:20:55 +/////////////////////////////////// + +[EFX-0011 VERI-WARNING] port 'i_we' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'o_dbg_tRTW_done' remains unconnected for this instance (VERI-1927) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:21:29 +/////////////////////////////////// + +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_in' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:115) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_out' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:116) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 11, 2022 19:21:33 +/////////////////////////////////// + +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_in' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:115) +[EFX-0011 VERI-WARNING] actual bit length 8 differs from formal bit length 12 for port 'data_out' (VERI-1330) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:116) + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 13, 2022 19:05:46 +/////////////////////////////////// + + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 13, 2022 19:08:09 +/////////////////////////////////// + + +/////////////////////////////////// +// Efinity Synthesis Started +// Jun 13, 2022 19:08:21 +/////////////////////////////////// + +[EFX-0011 VERI-WARNING] port 'i_sysclk' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'o_pll_reset' remains unconnected for this instance (VERI-1927) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:176) +[EFX-0011 VERI-WARNING] port 'addr' is not connected on this instance (VERI-2435) (/home/byron/Projects/super6502/hw/efinix_fpga/super6502.sv:204) diff --git a/hw/efinix_fpga/sd_controller.sv b/hw/efinix_fpga/sd_controller.sv new file mode 100644 index 0000000..54b7001 --- /dev/null +++ b/hw/efinix_fpga/sd_controller.sv @@ -0,0 +1,235 @@ +module sd_controller( + input clk, + input sd_clk, + input rst, + + input [2:0] addr, + input [7:0] data, + input cs, + input rw, + + input i_sd_cmd, + output logic o_sd_cmd, + + input i_sd_data, + output logic o_sd_data, + + output logic [7:0] data_out +); + +logic [31:0] arg; +logic [5:0] cmd; + +logic [47:0] rxcmd_buf; +logic [31:0] rx_val; + +logic [7:0] rxdata_buf [512]; +logic [8:0] data_count; + +logic [15:0] data_crc; + + +assign rx_val = rxcmd_buf[39:8]; + +always_comb begin + data_out = 'x; + + if (addr < 4'h4) begin + data_out = rx_val[8 * addr +: 8]; + end else if (addr == 4'h4) begin + data_out = {data_flag, read_flag}; + end else if (addr == 4'h5) begin + data_out = rxdata_buf[data_count]; + end +end + +logic read_flag, next_read_flag; +logic data_flag, next_data_flag; + +typedef enum bit [2:0] {IDLE, LOAD, CRC, TXCMD, RXCMD, TXDATA, RXDATA, RXDCRC} macro_t; +struct packed { + macro_t macro; + logic [8:0] count; + logic [2:0] d_bit_count; +} state, next_state; + +always_ff @(posedge clk) begin + if (rst) begin + state.macro <= IDLE; + state.count <= '0; + state.d_bit_count <= '1; + read_flag <= '0; + data_flag <= '0; + data_count <= '0; + end else begin + if (state.macro == TXCMD || state.macro == CRC) begin + if (sd_clk) begin + state <= next_state; + end + end else if (state.macro == RXCMD || state.macro == RXDATA || state.macro == RXDCRC) begin + if (~sd_clk) begin + state <= next_state; + end + end else begin + state <= next_state; + end + end + + if (sd_clk) begin + read_flag <= next_read_flag; + data_flag <= next_data_flag; + end + + if (cs & ~rw) begin + if (addr < 4'h4) begin + arg[8 * addr +: 8] <= data; + end else if (addr == 4'h4) begin + cmd <= data[6:0]; + end + end + + if (cs & addr == 4'h5 && sd_clk) begin + data_count <= data_count + 8'b1; + end + + if (state.macro == RXCMD) begin + rxcmd_buf[6'd46-state.count] <= i_sd_cmd; //we probabily missed bit 47 + end + + if (state.macro == RXDATA && ~sd_clk) begin + rxdata_buf[state.count][state.d_bit_count] <= i_sd_data; + end + + if (state.macro == RXDCRC && ~sd_clk) begin + data_crc[4'd15-state.count] <= i_sd_data; + data_count <= '0; + end + +end + +logic [6:0] crc; +logic load_crc; +logic crc_valid; +logic [39:0] _packet; +assign _packet = {1'b0, 1'b1, cmd, arg}; +logic [47:0] packet_crc; +assign packet_crc = {_packet, crc, 1'b1}; + +crc7 u_crc7( + .clk(clk), + .rst(rst), + .load(load_crc), + .data_in(_packet), + .crc_out(crc), + .valid(crc_valid) +); + +always_comb begin + next_state = state; + next_read_flag = read_flag; + next_data_flag = data_flag; + + case (state.macro) + IDLE: begin + if (~i_sd_cmd) begin // receive data if sd pulls cmd low + next_state.macro = RXCMD; + end + + if (~i_sd_data) begin + next_state.d_bit_count = '1; + next_state.macro = RXDATA; + end + + if (addr == 4'h4 & cs & ~rw) begin // transmit if cpu writes to cmd + next_state.macro = LOAD; + end + + if (addr == 4'h4 & cs & rw) begin + next_read_flag = '0; + end + + if (addr == 4'h5 & cs) begin + next_data_flag = '0; + end + end + + LOAD: begin + next_state.macro = CRC; + end + + CRC: begin + next_state.macro = TXCMD; + end + + TXCMD: begin + if (state.count < 47) begin + next_state.count = state.count + 6'b1; + end else begin + next_state.macro = IDLE; + next_state.count = '0; + end + end + + RXCMD: begin + if (state.count < 47) begin + next_state.count = state.count + 6'b1; + end else begin + next_read_flag = '1; + next_state.macro = IDLE; + next_state.count = '0; + end + end + + RXDATA: begin + if (state.count < 511 || (state.count == 511 && state.d_bit_count > 0)) begin + if (state.d_bit_count == 8'h0) begin + next_state.count = state.count + 9'b1; + end + next_state.d_bit_count = state.d_bit_count - 3'h1; + end else begin + next_data_flag = '1; + next_state.macro = RXDCRC; + next_state.count = '0; + end + end + + RXDCRC: begin + if (state.count < 16) begin + next_state.count = state.count + 9'b1; + end else begin + next_state.macro = IDLE; + next_state.count = '0; + end + end + + default: begin + next_state.macro = IDLE; + next_state.count = '0; + end + endcase +end + +always_comb begin + o_sd_cmd = '1; //default to 1 + o_sd_data = '1; + + load_crc = '0; + + case (state.macro) + IDLE:; + + CRC: begin + load_crc = '1; + end + + TXCMD: begin + o_sd_cmd = packet_crc[6'd47 - state.count]; + end + + RXCMD:; + + default:; + endcase +end + +endmodule diff --git a/hw/efinix_fpga/sdram_adapter.sv b/hw/efinix_fpga/sdram_adapter.sv new file mode 100644 index 0000000..ace4eba --- /dev/null +++ b/hw/efinix_fpga/sdram_adapter.sv @@ -0,0 +1,68 @@ +module sdram_adapter( + input i_sysclk, + input i_sdrclk, + input i_tACclk, + input i_pll_locked, + output o_pll_reset, + output o_sdr_CKE, + output o_sdr_n_CS, + output o_sdr_n_WE, + output o_sdr_n_RAS, + output o_sdr_n_CAS, + output [1:0]o_sdr_BA, + output [12:0]o_sdr_ADDR, + input [15:0]i_sdr_DATA, + output [15:0]o_sdr_DATA, + output [15:0]o_sdr_DATA_oe, + output [1:0]o_sdr_DQM +); + +sdram u_sdram ( + .i_arst (w_areset), + .i_sysclk (w_sysclk), + .i_sdrclk (i_sdrclk), + .i_tACclk (i_tACclk), + .i_pll_locked (1'b1), + + .i_we (r_we_1P), + .i_re (r_re_1P), + .i_last (r_last_1P), + .i_addr (r_addr_1P), + .i_din (r_din_1P), + .o_dout (w_dout), + .o_sdr_state (w_sdr_state), + .o_sdr_init_done (w_sdr_init_done), + .o_wr_ack (w_wr_ack), + .o_rd_ack (w_rd_ack), + .o_ref_req (), + .o_rd_valid (w_rd_valid), + + .o_sdr_CKE (w_sdr_CKE), + .o_sdr_n_CS (w_sdr_n_CS), + .o_sdr_n_RAS (w_sdr_n_RAS), + .o_sdr_n_CAS (w_sdr_n_CAS), + .o_sdr_n_WE (w_sdr_n_WE), + .o_sdr_BA (w_sdr_BA), + .o_sdr_ADDR (w_sdr_ADDR), + .o_sdr_DATA (w_sdr_DATA), + .o_sdr_DATA_oe (w_sdr_DATA_oe), + .i_sdr_DATA ({{16{1'b0}}, i_sdr_DATA}), + .o_sdr_DQM (w_sdr_DQM), + + .o_dbg_dly_cnt_b (w_dbg_dly_cnt_b), + .o_dbg_tRCD_done (w_dbg_tRCD_done), + .o_dbg_tRTW_done (w_dbg_tRTW_done), + .o_dbg_ref_req (w_dbg_ref_req), + .o_dbg_wr_ack (w_dbg_wr_ack), + .o_dbg_rd_ack (w_dbg_rd_ack), + .o_dbg_n_CS (w_dbg_n_CS), + .o_dbg_n_RAS (w_dbg_n_RAS), + .o_dbg_n_CAS (w_dbg_n_CAS), + .o_dbg_n_WE (w_dbg_n_WE), + .o_dbg_BA (w_dbg_BA), + .o_dbg_ADDR (w_dbg_ADDR), + .o_dbg_DATA_out (w_dbg_DATA_out), + .o_dbg_DATA_in (w_dbg_DATA_in) +); + +endmodule diff --git a/hw/efinix_fpga/super6502.peri.pre_import.xml b/hw/efinix_fpga/super6502.peri.pre_import.xml new file mode 100644 index 0000000..8a7e173 --- /dev/null +++ b/hw/efinix_fpga/super6502.peri.pre_import.xml @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hw/efinix_fpga/super6502.peri.xml b/hw/efinix_fpga/super6502.peri.xml new file mode 100644 index 0000000..105f9ed --- /dev/null +++ b/hw/efinix_fpga/super6502.peri.xml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hw/efinix_fpga/super6502.sv b/hw/efinix_fpga/super6502.sv new file mode 100644 index 0000000..89f3a74 --- /dev/null +++ b/hw/efinix_fpga/super6502.sv @@ -0,0 +1,256 @@ + +module super6502( + input clk_50, + input pll_inst1_CLKOUT0, + input logic rst_n, + input logic button_1, + + input logic [15:0] cpu_addr, + inout logic [7:0] cpu_data, + + input logic cpu_vpb, + input logic cpu_mlb, + input logic cpu_rwb, + input logic cpu_sync, + + output logic cpu_led, + output logic cpu_resb, + output logic cpu_rdy, + output logic cpu_sob, + output logic cpu_irqb, + output logic cpu_phi2, + output logic cpu_be, + output logic cpu_nmib, + + output logic [6:0] HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, + + input logic UART_RXD, + output logic UART_TXD, + + input [7:0] SW, + output logic [7:0] LED, + + inout logic [15: 2] ARDUINO_IO, + + ///////// SDRAM ///////// + output DRAM_CLK, + output DRAM_CKE, + output [12: 0] DRAM_ADDR, + output [ 1: 0] DRAM_BA, + inout [15: 0] DRAM_DQ, + output DRAM_LDQM, + output DRAM_UDQM, + output DRAM_CS_N, + output DRAM_WE_N, + output DRAM_CAS_N, + output DRAM_RAS_N + ); + +logic rst; +assign rst = ~rst_n; + +logic clk; + +logic [7:0] cpu_data_in; +assign cpu_data_in = cpu_data; + +logic [7:0] cpu_data_out; +assign cpu_data = cpu_rwb ? cpu_data_out : 'z; + +logic o_sd_cmd, i_sd_cmd; +logic o_sd_data, i_sd_data; + +assign ARDUINO_IO[11] = o_sd_cmd ? 1'bz : 1'b0; +assign ARDUINO_IO[12] = o_sd_data ? 1'bz : 1'b0; +assign ARDUINO_IO[13] = cpu_phi2; +assign ARDUINO_IO[6] = 1'b1; + +assign i_sd_cmd = ARDUINO_IO[11]; +assign i_sd_data = ARDUINO_IO[12]; + +logic [7:0] rom_data_out; +logic [7:0] sdram_data_out; +logic [7:0] uart_data_out; +logic [7:0] irq_data_out; +logic [7:0] board_io_data_out; +logic [7:0] mm_data_out; +logic [7:0] sd_data_out; + +logic sdram_cs; +logic rom_cs; +logic hex_cs; +logic uart_cs; +logic irq_cs; +logic board_io_cs; +logic mm_cs1; +logic mm_cs2; +logic sd_cs; + +assign clk = pll_inst1_CLKOUT0; + +always @(posedge clk) begin + cpu_phi2 <= ~cpu_phi2; +end + +assign cpu_rdy = '1; +assign cpu_sob = '0; +assign cpu_resb = rst_n; +assign cpu_be = '1; +assign cpu_nmib = '1; +assign cpu_irqb = irq_data_out == 0; + +logic [11:0] mm_MO; + +logic [23:0] mm_addr; +assign mm_addr = {mm_MO, cpu_addr[11:0]}; + +memory_mapper memory_mapper( + .clk(clk), + .rst(rst), + .rw(cpu_rwb), + .cs(mm_cs1), + .MM_cs(mm_cs2), + .RS(cpu_addr[3:0]), + .MA(cpu_addr[15:12]), + .data_in(cpu_data_in), + .data_out(mm_data_out), + .MO(mm_MO) +); + +addr_decode decode( + .addr(mm_addr), + .sdram_cs(sdram_cs), + .rom_cs(rom_cs), + .hex_cs(hex_cs), + .uart_cs(uart_cs), + .irq_cs(irq_cs), + .board_io_cs(board_io_cs), + .mm_cs1(mm_cs1), + .mm_cs2(mm_cs2), + .sd_cs(sd_cs) +); + + +always_comb begin + if (sdram_cs) + cpu_data_out = sdram_data_out; + else if (rom_cs) + cpu_data_out = rom_data_out; + else if (uart_cs) + cpu_data_out = uart_data_out; + else if (irq_cs) + cpu_data_out = irq_data_out; + else if (board_io_cs) + cpu_data_out = board_io_data_out; + else if (mm_cs1) + cpu_data_out = mm_data_out; + else if (sd_cs) + cpu_data_out = sd_data_out; + else + cpu_data_out = 'x; +end + + +sdram_adapter u_sdram_adapter( + .rst(rst), + .clk_50(clk_50), + .cpu_clk(cpu_phi2), + .addr(mm_addr), + .sdram_cs(sdram_cs), + .rwb(cpu_rwb), + .data_in(cpu_data_in), + .data_out(sdram_data_out), + + //SDRAM + .DRAM_CLK(DRAM_CLK), //clk_sdram.clk + .DRAM_ADDR(DRAM_ADDR), //sdram_wire.addr + .DRAM_BA(DRAM_BA), //.ba + .DRAM_CAS_N(DRAM_CAS_N), //.cas_n + .DRAM_CKE(DRAM_CKE), //.cke + .DRAM_CS_N(DRAM_CS_N), //.cs_n + .DRAM_DQ(DRAM_DQ), //.dq + .DRAM_UDQM(DRAM_UDQM), //.dqm + .DRAM_LDQM(DRAM_LDQM), + .DRAM_RAS_N(DRAM_RAS_N), //.ras_n + .DRAM_WE_N(DRAM_WE_N) //.we_n +); + + +rom boot_rom( + .address(cpu_addr[14:0]), + .clock(clk), + .q(rom_data_out) +); + +SevenSeg segs( + .clk(clk), + .rst(rst), + .rw(cpu_rwb), + .data(cpu_data_in), + .cs(hex_cs), + .addr(cpu_addr[1:0]), + .HEX0(HEX0), .HEX1(HEX1), .HEX2(HEX2), .HEX3(HEX3), .HEX4(HEX4), .HEX5(HEX5) +); + +board_io board_io( + .clk(clk), + .rst(rst), + .rw(cpu_rwb), + .data_in(cpu_data_in), + .data_out(board_io_data_out), + .cs(board_io_cs), + .led(LED), + .sw(SW) +); + +logic uart_irq; + +uart uart( + .clk_50(clk_50), + .clk(clk), + .rst(rst), + .rw(cpu_rwb), + .data_in(cpu_data_in), + .cs(uart_cs), + .addr(cpu_addr[1:0]), + .RXD(UART_RXD), + .TXD(UART_TXD), + .irq(uart_irq), + .data_out(uart_data_out) +); + +sd_controller sd_controller( + .clk(clk), + .sd_clk(cpu_phi2), + .rst(rst), + .addr(cpu_addr[2:0]), + .data(cpu_data_in), + .cs(sd_cs), + .rw(cpu_rwb), + + .i_sd_cmd(i_sd_cmd), + .o_sd_cmd(o_sd_cmd), + + .i_sd_data(i_sd_data), + .o_sd_data(o_sd_data), + + .data_out(sd_data_out) +); + +always_ff @(posedge clk_50) begin + if (rst) + irq_data_out <= '0; + else if (irq_cs && ~cpu_rwb) + irq_data_out <= irq_data_out & cpu_data_in; + + else begin + if (~button_1) + irq_data_out[0] <= '1; + if (uart_irq) + irq_data_out[1] <= '1; + end + +end + +endmodule + diff --git a/hw/efinix_fpga/super6502.xml b/hw/efinix_fpga/super6502.xml new file mode 100644 index 0000000..d4bea2a --- /dev/null +++ b/hw/efinix_fpga/super6502.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hw/efinix_fpga/uart.sv b/hw/efinix_fpga/uart.sv new file mode 100644 index 0000000..e0a3922 --- /dev/null +++ b/hw/efinix_fpga/uart.sv @@ -0,0 +1,228 @@ +module uart( + input clk_50, + input clk, + input rst, + + input cs, + input rw, + input [7:0] data_in, + input [1:0] addr, + + input RXD, + + output logic TXD, + + output logic irq, + output logic [7:0] data_out +); + +//Handle reading and writing registers + +logic [7:0] tx_buf; +logic [7:0] rx_buf; +logic [7:0] status; + +logic tx_flag; +logic rx_flag; + +logic tx_flag_set; +logic tx_flag_clear; +logic rx_flag_set; +logic rx_flag_clear; + +assign status[0] = tx_flag | tx_flag_clear; +assign status[1] = rx_flag | rx_flag_set; + +assign irq = status[1]; + +always_ff @(posedge clk) begin + if (rst) begin + tx_flag_set <= '0; + rx_flag_clear <= '0; + tx_buf <= '0; + status[7:2] <= '0; + end + + if (cs) begin + if (~rw) begin + if (addr == 0) + tx_buf <= data_in; + end else begin + if (addr == 0) + data_out <= rx_buf; + if (addr == 1) + data_out <= status; + end + end + + if (~rw & cs && addr == 0) + tx_flag_set <= '1; + else + tx_flag_set <= '0; + + if (rw & cs && addr == 0) + rx_flag_clear <= '1; + else + rx_flag_clear <= '0; +end + +// tx state controller +typedef enum bit [2:0] {START, DATA, PARITY, STOP, IDLE} macro_t; +struct packed { + macro_t macro; + logic [3:0] count; +} tx_state, tx_next_state, rx_state, rx_next_state; +localparam logic [3:0] maxcount = 4'h7; + +// baud rate: 9600 +localparam baud = 9600; +localparam count = (50000000/baud)-1; +logic [14:0] tx_clkdiv; + +always_ff @(posedge clk_50) begin + if (rst) begin + tx_clkdiv <= 0; + tx_state.macro <= IDLE; + tx_state.count <= 3'b0; + tx_flag <= '0; + end else begin + if (tx_flag_set) + tx_flag <= '1; + else if (tx_flag_clear) + tx_flag <= '0; + + if (tx_clkdiv == count) begin + tx_clkdiv <= 0; + tx_state <= tx_next_state; + end else begin + tx_clkdiv <= tx_clkdiv + 15'b1; + end + end +end + +always_comb begin + tx_next_state = tx_state; + + unique case (tx_state.macro) + START: begin + tx_next_state.macro = DATA; + tx_next_state.count = 3'b0; + end + DATA: begin + if (tx_state.count == maxcount) begin + tx_next_state.macro = STOP; // or PARITY + tx_next_state.count = 3'b0; + end else begin + tx_next_state.count = tx_state.count + 3'b1; + tx_next_state.macro = DATA; + end + end + PARITY: begin + end + STOP: begin + tx_next_state.macro = IDLE; + tx_next_state.count = '0; + end + IDLE: begin + if (tx_flag) + tx_next_state.macro = START; + else + tx_next_state.macro = IDLE; + end + + default:; + endcase +end + +always_comb begin + TXD = '1; + tx_flag_clear = '0; + + unique case (tx_state.macro) + START: begin + TXD = '0; + end + DATA: begin + TXD = tx_buf[tx_state.count]; + end + PARITY: begin + + end + STOP: begin + tx_flag_clear = '1; + TXD = '1; + end + IDLE: begin + TXD = '1; + end + + default:; + endcase +end + +//basically in idle state we need to sample RXD very fast, +//then as soon as we detect that RXD is low, we start clkdiv +//going and then go into the start state. + +logic [14:0] rx_clkdiv; + +always_ff @(posedge clk_50) begin + if (rst) begin + rx_buf <= '0; + rx_clkdiv <= 0; + rx_state.macro <= IDLE; + rx_state.count <= 3'b0; + end else begin + if (rx_flag_set) + rx_flag <= '1; + else if (rx_flag_clear) + rx_flag <= '0; + + if (rx_state.macro == IDLE) begin // Sample constantly in idle state + rx_state <= rx_next_state; + rx_clkdiv <= count/15'h2; // offset rx clock by 1/2 phase + end else begin + if (rx_clkdiv == count) begin // other states are as usual + rx_clkdiv <= 0; + rx_state <= rx_next_state; + if (rx_state.macro == DATA) + rx_buf[rx_state.count] = RXD; + end else begin + rx_clkdiv <= rx_clkdiv + 15'b1; + end + end + end +end + +always_comb begin + rx_next_state = rx_state; + rx_flag_set = '0; + + unique case (rx_state.macro) + IDLE: begin + if (~RXD) + rx_next_state.macro = START; + end + START: begin + rx_next_state.macro = DATA; + rx_next_state.count = 3'b0; + end + DATA: begin + if (rx_state.count == maxcount) begin + rx_next_state.macro = STOP; + rx_next_state.count = 3'b0; + end else begin + rx_next_state.count = rx_state.count + 3'b1; + rx_next_state.macro = DATA; + end + end + PARITY: begin + end + STOP: begin + rx_flag_set = '1; + rx_next_state.macro = IDLE; + end + endcase +end + +endmodule diff --git a/hw/efinix_fpga/work_pt/peri_load.bak b/hw/efinix_fpga/work_pt/peri_load.bak new file mode 100644 index 0000000..b65d11b --- /dev/null +++ b/hw/efinix_fpga/work_pt/peri_load.bak @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hw/efinix_fpga/work_pt/peri_res.json b/hw/efinix_fpga/work_pt/peri_res.json new file mode 100644 index 0000000..da6bd0e --- /dev/null +++ b/hw/efinix_fpga/work_pt/peri_res.json @@ -0,0 +1,3 @@ +{ + "migration_launch_pt": "normal" +} \ No newline at end of file diff --git a/hw/efinix_fpga/work_syn/run_efx_map.sh b/hw/efinix_fpga/work_syn/run_efx_map.sh new file mode 100755 index 0000000..ac2d51b --- /dev/null +++ b/hw/efinix_fpga/work_syn/run_efx_map.sh @@ -0,0 +1 @@ +"/home/byron/Software/efinity/2021.2/bin/efx_map" --project "super6502" --root "super6502" --write-efx-verilog "/home/byron/Projects/super6502/hw/efinix_fpga/outflow/super6502.map.v" --write-premap-module "/home/byron/Projects/super6502/hw/efinix_fpga/outflow/super6502.elab.vdb" --binary-db "/home/byron/Projects/super6502/hw/efinix_fpga/super6502.vdb" --device "T20F256" --family "Trion" --mode "speed" --max_ram "-1" --max_mult "-1" --infer-clk-enable "3" --infer-sync-set-reset "1" --fanout-limit "0" --bram_output_regs_packing "1" --retiming "1" --seq_opt "1" --blast_const_operand_adders "1" --operator-sharing "0" --optimize-adder-tree "0" --mult_input_regs_packing "1" --mult_output_regs_packing "1" --veri_option "verilog_mode=sv_09,vhdl_mode=vhdl_2008" --work-dir "/home/byron/Projects/super6502/hw/efinix_fpga/work_syn" --output-dir "/home/byron/Projects/super6502/hw/efinix_fpga/outflow" --project-xml "/home/byron/Projects/super6502/hw/efinix_fpga/super6502.xml" --I "/home/byron/Projects/super6502/hw/efinix_fpga" --I "/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram" \ No newline at end of file diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_154311.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_154311.zip new file mode 100644 index 0000000..8c09de2 Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_154311.zip differ diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_154853.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_154853.zip new file mode 100644 index 0000000..667b507 Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_154853.zip differ diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_155543.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_155543.zip new file mode 100644 index 0000000..c9976a3 Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_155543.zip differ diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_160229.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_160229.zip new file mode 100644 index 0000000..049d22c Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_160229.zip differ diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_212515.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_212515.zip new file mode 100644 index 0000000..8306c22 Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-13_212515.zip differ diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-23_205544.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-23_205544.zip new file mode 100644 index 0000000..8306c22 Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-06-23_205544.zip differ diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-01_180601.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-01_180601.zip new file mode 100644 index 0000000..580c3a6 Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-01_180601.zip differ diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-01_183247.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-01_183247.zip new file mode 100644 index 0000000..580c3a6 Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-01_183247.zip differ diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-03_164127.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-03_164127.zip new file mode 100644 index 0000000..e4d7303 Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-03_164127.zip differ diff --git a/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-05_140907.zip b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-05_140907.zip new file mode 100644 index 0000000..e4d7303 Binary files /dev/null and b/hw/efinix_shield/efinix_shield-backups/efinix_shield-2022-08-05_140907.zip differ diff --git a/hw/efinix_shield/efinix_shield.kicad_pcb b/hw/efinix_shield/efinix_shield.kicad_pcb new file mode 100644 index 0000000..28b47a1 --- /dev/null +++ b/hw/efinix_shield/efinix_shield.kicad_pcb @@ -0,0 +1,2 @@ +(kicad_pcb (version 20211014) (generator pcbnew) +) \ No newline at end of file diff --git a/hw/efinix_shield/efinix_shield.kicad_prl b/hw/efinix_shield/efinix_shield.kicad_prl new file mode 100644 index 0000000..d84353e --- /dev/null +++ b/hw/efinix_shield/efinix_shield.kicad_prl @@ -0,0 +1,75 @@ +{ + "board": { + "active_layer": 0, + "active_layer_preset": "All Layers", + "auto_track_width": true, + "hidden_nets": [], + "high_contrast_mode": 0, + "net_color_mode": 1, + "opacity": { + "pads": 1.0, + "tracks": 1.0, + "vias": 1.0, + "zones": 0.6 + }, + "ratsnest_display_mode": 0, + "selection_filter": { + "dimensions": true, + "footprints": true, + "graphics": true, + "keepouts": true, + "lockedItems": true, + "otherItems": true, + "pads": true, + "text": true, + "tracks": true, + "vias": true, + "zones": true + }, + "visible_items": [ + 0, + 1, + 2, + 3, + 4, + 5, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 32, + 33, + 34, + 35, + 36 + ], + "visible_layers": "fffffff_ffffffff", + "zone_display_mode": 0 + }, + "meta": { + "filename": "efinix_shield.kicad_prl", + "version": 3 + }, + "project": { + "files": [] + } +} diff --git a/hw/efinix_shield/efinix_shield.kicad_pro b/hw/efinix_shield/efinix_shield.kicad_pro new file mode 100644 index 0000000..7893105 --- /dev/null +++ b/hw/efinix_shield/efinix_shield.kicad_pro @@ -0,0 +1,326 @@ +{ + "board": { + "design_settings": { + "defaults": { + "board_outline_line_width": 0.1, + "copper_line_width": 0.2, + "copper_text_size_h": 1.5, + "copper_text_size_v": 1.5, + "copper_text_thickness": 0.3, + "other_line_width": 0.15, + "silk_line_width": 0.15, + "silk_text_size_h": 1.0, + "silk_text_size_v": 1.0, + "silk_text_thickness": 0.15 + }, + "diff_pair_dimensions": [], + "drc_exclusions": [], + "rules": { + "min_copper_edge_clearance": 0.0, + "solder_mask_clearance": 0.0, + "solder_mask_min_width": 0.0 + }, + "track_widths": [], + "via_dimensions": [] + }, + "layer_presets": [] + }, + "boards": [], + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_label_syntax": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "extra_units": "error", + "global_label_dangling": "warning", + "hier_label_mismatch": "error", + "label_dangling": "error", + "lib_symbol_issues": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "warning", + "power_pin_not_driven": "error", + "similar_labels": "warning", + "unannotated": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "efinix_shield.kicad_pro", + "version": 1 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12.0, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.25, + "via_diameter": 0.8, + "via_drill": 0.4, + "wire_width": 6.0 + } + ], + "meta": { + "version": 2 + }, + "net_colors": null + }, + "pcbnew": { + "last_paths": { + "gencad": "", + "idf": "", + "netlist": "", + "specctra_dsn": "", + "step": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "drawing": { + "default_line_thickness": 6.0, + "default_text_size": 50.0, + "field_names": [], + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.375, + "pin_symbol_size": 25.0, + "text_offset_ratio": 0.15 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "net_format_name": "", + "ngspice": { + "fix_include_paths": true, + "fix_passive_vals": false, + "meta": { + "version": 0 + }, + "model_mode": 0, + "workbook_filename": "" + }, + "page_layout_descr_file": "", + "plot_directory": "", + "spice_adjust_passive_values": false, + "spice_external_command": "spice \"%I\"", + "subpart_first_id": 65, + "subpart_id_separator": 0 + }, + "sheets": [ + [ + "48e8c44b-591b-48c2-81bb-62294ee42805", + "" + ] + ], + "text_variables": {} +} diff --git a/hw/efinix_shield/efinix_shield.kicad_sch b/hw/efinix_shield/efinix_shield.kicad_sch new file mode 100644 index 0000000..dfc5038 --- /dev/null +++ b/hw/efinix_shield/efinix_shield.kicad_sch @@ -0,0 +1,2602 @@ +(kicad_sch (version 20211123) (generator eeschema) + + (uuid 48e8c44b-591b-48c2-81bb-62294ee42805) + + (paper "A3") + + (title_block + (title "Trion T20F256 Super6502 Shield") + ) + + (lib_symbols + (symbol "Connector:DB15_Female_HighDensity_MountingHoles" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "J" (id 0) (at 0 21.59 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "DB15_Female_HighDensity_MountingHoles" (id 1) (at 0 19.05 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at -24.13 10.16 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" " ~" (id 3) (at -24.13 10.16 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "connector db15 female D-SUB VGA" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "15-pin female D-SUB connector, High density (3 columns), Triple Row, Generic, VGA-connector, Mounting Hole" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "DSUB*Female*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "DB15_Female_HighDensity_MountingHoles_0_1" + (circle (center -1.905 -10.16) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.905 -5.08) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.905 0) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.905 5.08) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.905 10.16) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 0 -7.62) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 0 -2.54) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.175 7.62) + (xy -0.635 7.62) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -0.635 -7.62) + (xy -3.175 -7.62) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -0.635 -2.54) + (xy -3.175 -2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -0.635 2.54) + (xy -3.175 2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -0.635 12.7) + (xy -3.175 12.7) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 17.78) + (xy -3.81 -15.24) + (xy 3.81 -12.7) + (xy 3.81 15.24) + (xy -3.81 17.78) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (circle (center 0 2.54) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 0 7.62) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 0 12.7) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.905 -10.16) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.905 -5.08) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.905 0) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.905 5.08) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.905 10.16) (radius 0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "DB15_Female_HighDensity_MountingHoles_1_1" + (pin passive line (at 0 -17.78 90) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "0" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 10.16 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -7.62 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 10.16 180) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 5.08 180) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 0 180) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 -5.08 180) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 -10.16 180) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 5.08 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 0 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -5.08 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -10.16 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 12.7 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 7.62 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 2.54 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -2.54 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Connector:Micro_SD_Card" (pin_names (offset 1.016)) (in_bom yes) (on_board yes) + (property "Reference" "J" (id 0) (at -16.51 15.24 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Micro_SD_Card" (id 1) (at 16.51 15.24 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (id 2) (at 29.21 7.62 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://katalog.we-online.de/em/datasheet/693072010801.pdf" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "connector SD microsd" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Micro SD Card Socket" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "microSD*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Micro_SD_Card_0_1" + (rectangle (start -7.62 -9.525) (end -5.08 -10.795) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -7.62 -6.985) (end -5.08 -8.255) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -7.62 -4.445) (end -5.08 -5.715) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -7.62 -1.905) (end -5.08 -3.175) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -7.62 0.635) (end -5.08 -0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -7.62 3.175) (end -5.08 1.905) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -7.62 5.715) (end -5.08 4.445) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -7.62 8.255) (end -5.08 6.985) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (polyline + (pts + (xy 16.51 12.7) + (xy 16.51 13.97) + (xy -19.05 13.97) + (xy -19.05 -16.51) + (xy 16.51 -16.51) + (xy 16.51 -11.43) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -8.89 -11.43) + (xy -8.89 8.89) + (xy -1.27 8.89) + (xy 2.54 12.7) + (xy 3.81 12.7) + (xy 3.81 11.43) + (xy 6.35 11.43) + (xy 7.62 12.7) + (xy 20.32 12.7) + (xy 20.32 -11.43) + (xy -8.89 -11.43) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + ) + (symbol "Micro_SD_Card_1_1" + (pin bidirectional line (at -22.86 7.62 0) (length 3.81) + (name "DAT2" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -22.86 5.08 0) (length 3.81) + (name "DAT3/CD" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -22.86 2.54 0) (length 3.81) + (name "CMD" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -22.86 0 0) (length 3.81) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -22.86 -2.54 0) (length 3.81) + (name "CLK" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -22.86 -5.08 0) (length 3.81) + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -22.86 -7.62 0) (length 3.81) + (name "DAT0" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -22.86 -10.16 0) (length 3.81) + (name "DAT1" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 20.32 -15.24 180) (length 3.81) + (name "SHIELD" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Connector:SD_Card" (pin_names (offset 1.016)) (in_bom yes) (on_board yes) + (property "Reference" "J" (id 0) (at -16.51 13.97 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "SD_Card" (id 1) (at 15.24 -13.97 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://portal.fciconnect.com/Comergent//fci/drawing/10067847.pdf" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "connector SD" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "SD Card Reader" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SD*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "SD_Card_0_1" + (rectangle (start -8.89 -9.525) (end -6.35 -10.795) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -8.89 -6.985) (end -6.35 -8.255) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -8.89 -4.445) (end -6.35 -5.715) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -8.89 -1.905) (end -6.35 -3.175) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -8.89 0.635) (end -6.35 -0.635) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -8.89 3.175) (end -6.35 1.905) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -8.89 5.715) (end -6.35 4.445) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -8.89 8.255) (end -6.35 6.985) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (rectangle (start -7.62 10.795) (end -5.08 9.525) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type outline)) + ) + (polyline + (pts + (xy -10.16 8.89) + (xy -7.62 11.43) + (xy 20.32 11.43) + (xy 20.32 -11.43) + (xy -10.16 -11.43) + (xy -10.16 8.89) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (polyline + (pts + (xy 16.51 11.43) + (xy 16.51 12.7) + (xy -20.32 12.7) + (xy -20.32 -12.7) + (xy 16.51 -12.7) + (xy 16.51 -11.43) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "SD_Card_1_1" + (pin input line (at -22.86 7.62 0) (length 2.54) + (name "CD/DAT3" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at 22.86 5.08 180) (length 2.54) + (name "CARD_DETECT" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at 22.86 2.54 180) (length 2.54) + (name "WRITE_PROTECT" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at 22.86 -2.54 180) (length 2.54) + (name "SHELL1" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at 22.86 -5.08 180) (length 2.54) + (name "SHELL2" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -22.86 5.08 0) (length 2.54) + (name "CMD" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -22.86 2.54 0) (length 2.54) + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -22.86 0 0) (length 2.54) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -22.86 -2.54 0) (length 2.54) + (name "CLK" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -22.86 -5.08 0) (length 2.54) + (name "VSS" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -22.86 -7.62 0) (length 2.54) + (name "DAT0" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -22.86 -10.16 0) (length 2.54) + (name "DAT1" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -22.86 10.16 0) (length 2.54) + (name "DAT2" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "R" (id 0) (at 2.032 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R" (id 1) (at 0 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at -1.778 0 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "R res resistor" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Resistor" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "R_*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "R_0_1" + (rectangle (start -1.016 -2.54) (end 1.016 2.54) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "R_1_1" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:R_Pack04" (pin_names (offset 0) hide) (in_bom yes) (on_board yes) + (property "Reference" "RN" (id 0) (at -7.62 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R_Pack04" (id 1) (at 5.08 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 6.985 0 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "R network parallel topology isolated" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "4 resistor network, parallel topology" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "DIP* SOIC* R*Array*Concave* R*Array*Convex*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "R_Pack04_0_1" + (rectangle (start -6.35 -2.413) (end 3.81 2.413) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (rectangle (start -5.715 1.905) (end -4.445 -1.905) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (rectangle (start -3.175 1.905) (end -1.905 -1.905) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (rectangle (start -0.635 1.905) (end 0.635 -1.905) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -5.08 -2.54) + (xy -5.08 -1.905) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -5.08 1.905) + (xy -5.08 2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 -2.54) + (xy -2.54 -1.905) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 1.905) + (xy -2.54 2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 -2.54) + (xy 0 -1.905) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 1.905) + (xy 0 2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy 2.54 -2.54) + (xy 2.54 -1.905) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy 2.54 1.905) + (xy 2.54 2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (rectangle (start 1.905 1.905) (end 3.175 -1.905) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "R_Pack04_1_1" + (pin passive line (at -5.08 -5.08 90) (length 2.54) + (name "R1.1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -2.54 -5.08 90) (length 2.54) + (name "R2.1" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -5.08 90) (length 2.54) + (name "R3.1" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 2.54 -5.08 90) (length 2.54) + (name "R4.1" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 2.54 5.08 270) (length 2.54) + (name "R4.2" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 5.08 270) (length 2.54) + (name "R3.2" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -2.54 5.08 270) (length 2.54) + (name "R2.2" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 5.08 270) (length 2.54) + (name "R1.2" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Header:T20BGA256_DEV_GPIO_1B1C" (in_bom yes) (on_board yes) + (property "Reference" "U" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "T20BGA256_DEV_GPIO_1B1C" (id 1) (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_2x18_P2.54mm_Vertical" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "T20BGA256_DEV_GPIO_1B1C_1_1" + (rectangle (start -12.7 -1.27) (end 13.97 -50.8) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (pin power_in line (at 17.78 -3.81 180) (length 3.81) + (name "VCCIO1B_1C" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -13.97 0) (length 3.81) + (name "GPIOL_14" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -16.51 180) (length 3.81) + (name "GPIOL_39" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -16.51 0) (length 3.81) + (name "GPIOL_15" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -19.05 180) (length 3.81) + (name "GPIOL_37" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -19.05 0) (length 3.81) + (name "GPIOL_16" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -21.59 180) (length 3.81) + (name "GPIOL_36" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -21.59 0) (length 3.81) + (name "GPIOL_18" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -24.13 180) (length 3.81) + (name "GPIOL_35" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -24.13 0) (length 3.81) + (name "GPIOL_19" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -26.67 180) (length 3.81) + (name "GPIOL_34" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -16.51 -3.81 0) (length 3.81) + (name "VCCIO1B_1C" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -26.67 0) (length 3.81) + (name "GPIOL_20" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -29.21 180) (length 3.81) + (name "GPIOL_33" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -29.21 0) (length 3.81) + (name "GPIOL_21" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -31.75 180) (length 3.81) + (name "GPIOL_32" (effects (font (size 1.27 1.27)))) + (number "23" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -31.75 0) (length 3.81) + (name "GPIOL_22" (effects (font (size 1.27 1.27)))) + (number "24" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -34.29 180) (length 3.81) + (name "GPIOL_31" (effects (font (size 1.27 1.27)))) + (number "25" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -34.29 0) (length 3.81) + (name "GPIOL_23" (effects (font (size 1.27 1.27)))) + (number "26" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -36.83 180) (length 3.81) + (name "GPIOL_30" (effects (font (size 1.27 1.27)))) + (number "27" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -36.83 0) (length 3.81) + (name "GPIOL_24" (effects (font (size 1.27 1.27)))) + (number "28" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -39.37 180) (length 3.81) + (name "GPIOL_29" (effects (font (size 1.27 1.27)))) + (number "29" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -6.35 180) (length 3.81) + (name "GPIOL_43" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -39.37 0) (length 3.81) + (name "GPIOL_25" (effects (font (size 1.27 1.27)))) + (number "30" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -41.91 180) (length 3.81) + (name "GPIOL_28" (effects (font (size 1.27 1.27)))) + (number "31" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -41.91 0) (length 3.81) + (name "GPIOL_26" (effects (font (size 1.27 1.27)))) + (number "32" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -44.45 180) (length 3.81) + (name "GPIOL_27" (effects (font (size 1.27 1.27)))) + (number "33" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -16.51 -44.45 0) (length 3.81) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "34" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 17.78 -46.99 180) (length 3.81) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "35" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -16.51 -46.99 0) (length 3.81) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "36" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -6.35 0) (length 3.81) + (name "GPIOL_11" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -8.89 180) (length 3.81) + (name "GPIOL_42" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -8.89 0) (length 3.81) + (name "GPIOL_12" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -11.43 180) (length 3.81) + (name "GPIOL_41" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -11.43 0) (length 3.81) + (name "GPIOL_13" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -13.97 180) (length 3.81) + (name "GPIOL_40" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Header:T20BGA256_DEV_GPIO_1D1E" (in_bom yes) (on_board yes) + (property "Reference" "U" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "T20BGA256_DEV_GPIO_1D1E" (id 1) (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_2x18_P2.54mm_Vertical" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "T20BGA256_DEV_GPIO_1D1E_1_1" + (rectangle (start -12.7 -2.54) (end 13.97 -52.07) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (pin power_in line (at 17.78 -5.08 180) (length 3.81) + (name "VCCIO1D_1E" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -15.24 0) (length 3.81) + (name "GPIOL_67" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -17.78 180) (length 3.81) + (name "GPIOL_66" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -17.78 0) (length 3.81) + (name "GPIOL_65" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -20.32 180) (length 3.81) + (name "GPIOL_64" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -20.32 0) (length 3.81) + (name "GPIOL_63" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -22.86 180) (length 3.81) + (name "GPIOL_62" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin no_connect line (at -16.51 -22.86 0) (length 3.81) + (name "NC" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -25.4 180) (length 3.81) + (name "GPIOL_60" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -25.4 0) (length 3.81) + (name "GPIOL_61" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -27.94 180) (length 3.81) + (name "GPIOL_58" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -16.51 -5.08 0) (length 3.81) + (name "VCCIO1D_1E" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -27.94 0) (length 3.81) + (name "GPIOL_59" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -30.48 180) (length 3.81) + (name "GPIOL_56" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -30.48 0) (length 3.81) + (name "GPIOL_57" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -33.02 180) (length 3.81) + (name "GPIOL_54" (effects (font (size 1.27 1.27)))) + (number "23" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -33.02 0) (length 3.81) + (name "GPIOL_55" (effects (font (size 1.27 1.27)))) + (number "24" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -35.56 180) (length 3.81) + (name "GPIOL_52" (effects (font (size 1.27 1.27)))) + (number "25" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -35.56 0) (length 3.81) + (name "GPIOL_53" (effects (font (size 1.27 1.27)))) + (number "26" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -38.1 180) (length 3.81) + (name "GPIOL_50" (effects (font (size 1.27 1.27)))) + (number "27" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -38.1 0) (length 3.81) + (name "GPIOL_51" (effects (font (size 1.27 1.27)))) + (number "28" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -40.64 180) (length 3.81) + (name "GPIOL_48" (effects (font (size 1.27 1.27)))) + (number "29" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -7.62 180) (length 3.81) + (name "GPIOL_74" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -40.64 0) (length 3.81) + (name "GPIOL_49" (effects (font (size 1.27 1.27)))) + (number "30" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -43.18 180) (length 3.81) + (name "GPIOL_46" (effects (font (size 1.27 1.27)))) + (number "31" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -43.18 0) (length 3.81) + (name "GPIOL_47" (effects (font (size 1.27 1.27)))) + (number "32" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -45.72 180) (length 3.81) + (name "GPIOL_44" (effects (font (size 1.27 1.27)))) + (number "33" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -45.72 0) (length 3.81) + (name "GPIOL_45" (effects (font (size 1.27 1.27)))) + (number "34" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 17.78 -48.26 180) (length 3.81) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "35" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -16.51 -48.26 0) (length 3.81) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "36" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -7.62 0) (length 3.81) + (name "GPIOL_73" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -10.16 180) (length 3.81) + (name "GPIOL_72" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -16.51 -10.16 0) (length 3.81) + (name "NSTATUS" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -12.7 180) (length 3.81) + (name "GPIOL_70" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -16.51 -12.7 0) (length 3.81) + (name "GPIOL_69" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 17.78 -15.24 180) (length 3.81) + (name "GPIOL_68" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Header:T20BGA256_DEV_GPIO_3" (in_bom yes) (on_board yes) + (property "Reference" "U" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "T20BGA256_DEV_GPIO_3" (id 1) (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_2x16_P2.54mm_Vertical" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "T20BGA256_DEV_GPIO_3_1_1" + (rectangle (start -13.97 -2.54) (end 12.7 -45.72) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (pin power_in line (at 16.51 -5.08 180) (length 3.81) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -15.24 0) (length 3.81) + (name "GPIOR_105" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -17.78 180) (length 3.81) + (name "GPIOR_110" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -17.78 0) (length 3.81) + (name "GPIOR_111" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -20.32 180) (length 3.81) + (name "GPIOR_113" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -20.32 0) (length 3.81) + (name "GPIOR_117" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -22.86 180) (length 3.81) + (name "GPIOR_118" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -22.86 0) (length 3.81) + (name "GPIOR_120" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -25.4 180) (length 3.81) + (name "GPIOR_121" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -25.4 0) (length 3.81) + (name "GPIOR_122" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -27.94 180) (length 3.81) + (name "GPIOR_123" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -17.78 -5.08 0) (length 3.81) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -27.94 0) (length 3.81) + (name "GPIOR_124" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -30.48 180) (length 3.81) + (name "GPIOR_126" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -30.48 0) (length 3.81) + (name "GPIOR_127" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -33.02 180) (length 3.81) + (name "GPIOR_149" (effects (font (size 1.27 1.27)))) + (number "23" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -33.02 0) (length 3.81) + (name "GPIOR_150" (effects (font (size 1.27 1.27)))) + (number "24" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -35.56 180) (length 3.81) + (name "GPIOR_151" (effects (font (size 1.27 1.27)))) + (number "25" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -35.56 0) (length 3.81) + (name "GPIOR_153" (effects (font (size 1.27 1.27)))) + (number "26" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -38.1 180) (length 3.81) + (name "GPIOR_154" (effects (font (size 1.27 1.27)))) + (number "27" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -38.1 0) (length 3.81) + (name "GPIOR_155" (effects (font (size 1.27 1.27)))) + (number "28" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -40.64 180) (length 3.81) + (name "GPIOR_156" (effects (font (size 1.27 1.27)))) + (number "29" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -7.62 180) (length 3.81) + (name "GPIOR_76" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -40.64 0) (length 3.81) + (name "GPIOR_158" (effects (font (size 1.27 1.27)))) + (number "30" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 16.51 -43.18 180) (length 3.81) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "31" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -17.78 -43.18 0) (length 3.81) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "32" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -7.62 0) (length 3.81) + (name "GPIOR_77" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -10.16 180) (length 3.81) + (name "GPIOR_78" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -10.16 0) (length 3.81) + (name "GPIOR_79" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin no_connect line (at 16.51 -12.7 180) (length 3.81) + (name "NC" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -17.78 -12.7 0) (length 3.81) + (name "GPIOR_81" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -15.24 180) (length 3.81) + (name "GPIOR_104" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:+3V3" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (id 0) (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3V3" (id 1) (at 0 3.556 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "power-flag" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"+3V3\"" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "+3V3_0_1" + (polyline + (pts + (xy -0.762 1.27) + (xy 0 2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0) + (xy 0 2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.54) + (xy 0.762 1.27) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "+3V3_1_1" + (pin power_in line (at 0 0 90) (length 0) hide + (name "+3V3" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (id 0) (at 0 -6.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 0 -3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "power-flag" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) + (xy 0 -1.27) + (xy 1.27 -1.27) + (xy 0 -2.54) + (xy -1.27 -1.27) + (xy 0 -1.27) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "GND_1_1" + (pin power_in line (at 0 0 270) (length 0) hide + (name "GND" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + ) + + (junction (at 77.47 62.23) (diameter 0) (color 0 0 0 0) + (uuid 057507e0-3143-48fd-9d2e-53016cf0feb5) + ) + (junction (at 77.47 57.15) (diameter 0) (color 0 0 0 0) + (uuid 1514004f-eccb-4575-8c8c-dfe896ed0558) + ) + (junction (at 113.665 52.07) (diameter 0) (color 0 0 0 0) + (uuid 21f63e5b-30ca-4f56-ba57-7fa9f5a5e88d) + ) + (junction (at 67.31 119.38) (diameter 0) (color 0 0 0 0) + (uuid 284b4ecc-a62e-42a2-b81a-cb5119258afb) + ) + (junction (at 91.44 57.15) (diameter 0) (color 0 0 0 0) + (uuid 2c14fb63-a102-4120-8b1d-90bc183049e1) + ) + (junction (at 77.47 59.69) (diameter 0) (color 0 0 0 0) + (uuid 343781bf-fbd8-4b00-ba65-10902b53e7ba) + ) + (junction (at 113.665 29.845) (diameter 0) (color 0 0 0 0) + (uuid 34406118-346f-4e34-a386-a84ba9c7a0ae) + ) + (junction (at 127.635 27.305) (diameter 0) (color 0 0 0 0) + (uuid 411c5f9e-1e81-42a1-bd7c-7283f3f8006c) + ) + (junction (at 55.245 49.53) (diameter 0) (color 0 0 0 0) + (uuid 4181c033-b53b-48d7-8283-94f207eea7f4) + ) + (junction (at 73.025 127) (diameter 0) (color 0 0 0 0) + (uuid 475476ea-4ee0-40ba-af49-8a0e6b999ec6) + ) + (junction (at 55.245 54.61) (diameter 0) (color 0 0 0 0) + (uuid 5e8f5aa5-a9b5-4111-9798-614409726054) + ) + (junction (at 113.665 32.385) (diameter 0) (color 0 0 0 0) + (uuid 671842f7-25eb-40d7-b18c-d65156c92a30) + ) + (junction (at 78.105 24.765) (diameter 0) (color 0 0 0 0) + (uuid 746749b0-8d49-44c1-be55-ac6dc08034fb) + ) + (junction (at 77.47 71.12) (diameter 0) (color 0 0 0 0) + (uuid 79a10484-8359-4b23-86f0-c14b6828ee2b) + ) + (junction (at 78.74 137.16) (diameter 0) (color 0 0 0 0) + (uuid 99ed1e7b-d59e-4b2c-b5a0-dbcb0b74045c) + ) + (junction (at 14.605 132.08) (diameter 0) (color 0 0 0 0) + (uuid 9a28a7ca-6b8e-45af-9912-6e75b0fdedd6) + ) + (junction (at 71.12 163.195) (diameter 0) (color 0 0 0 0) + (uuid 9fb4e9d5-9d40-4375-9e65-9f6657185c60) + ) + (junction (at 113.665 41.275) (diameter 0) (color 0 0 0 0) + (uuid a30e5308-85b9-43f3-8d89-09598e0fcb80) + ) + (junction (at 74.93 129.54) (diameter 0) (color 0 0 0 0) + (uuid ad8efbaa-82fc-41a8-ba9a-f3639d0b1e0e) + ) + (junction (at 55.245 67.31) (diameter 0) (color 0 0 0 0) + (uuid b459c3f5-3953-4470-b84b-c9646deab8d0) + ) + (junction (at 78.105 27.305) (diameter 0) (color 0 0 0 0) + (uuid b57bebe5-38e8-427b-b195-b045bc946d22) + ) + (junction (at 69.215 121.92) (diameter 0) (color 0 0 0 0) + (uuid bacd4d05-9b0f-44dc-abe6-86acf780487a) + ) + (junction (at 361.95 70.485) (diameter 0) (color 0 0 0 0) + (uuid ca19f683-cba9-402d-983b-d01a06d0649b) + ) + (junction (at 65.405 116.84) (diameter 0) (color 0 0 0 0) + (uuid cae1a5f4-2d8c-4447-8a67-765f636927fd) + ) + (junction (at 78.105 46.99) (diameter 0) (color 0 0 0 0) + (uuid dd5f2f61-8e2f-4d9b-9708-dd4fb54c4953) + ) + (junction (at 78.105 36.195) (diameter 0) (color 0 0 0 0) + (uuid df2b6445-772c-48a6-b02f-c53ebd3c197e) + ) + (junction (at 92.075 22.225) (diameter 0) (color 0 0 0 0) + (uuid e5e65469-147f-49e7-aff6-e7810b5d255e) + ) + (junction (at 71.12 132.08) (diameter 0) (color 0 0 0 0) + (uuid f4eb5586-1ec3-4260-868a-61bf3e9cf9fb) + ) + (junction (at 76.835 134.62) (diameter 0) (color 0 0 0 0) + (uuid f50ecb62-0b83-46c3-bd64-b72697dbc8dc) + ) + (junction (at 55.245 64.77) (diameter 0) (color 0 0 0 0) + (uuid f9e9c0f5-f5cc-4933-b0cf-2869777ef59d) + ) + + (no_connect (at 92.075 43.815) (uuid 03b36987-2751-42dc-9270-7d14d492a560)) + (no_connect (at 38.735 52.07) (uuid 1617038c-2243-4e36-a072-5f094961daee)) + (no_connect (at 38.735 46.99) (uuid 1617038c-2243-4e36-a072-5f094961daee)) + (no_connect (at 53.975 62.23) (uuid 1617038c-2243-4e36-a072-5f094961daee)) + (no_connect (at 38.735 67.31) (uuid 1617038c-2243-4e36-a072-5f094961daee)) + (no_connect (at 81.915 29.845) (uuid 46c445e1-4243-4256-9b5f-a846de7a077b)) + (no_connect (at 81.28 64.77) (uuid 56038685-eaf4-483c-b838-6be496650510)) + (no_connect (at 117.475 48.895) (uuid 5c4cb486-b778-4a4a-b5c5-fe505d579de1)) + (no_connect (at 91.44 64.77) (uuid 6dcbdab1-c307-44eb-ad4e-36a2df457550)) + (no_connect (at 92.075 29.845) (uuid 74b41048-9e64-45c6-8552-abbca5e9323e)) + (no_connect (at 127.635 34.925) (uuid ac7ea1f2-364b-405f-9acf-cd995ce72e2d)) + (no_connect (at 117.475 34.925) (uuid ac7ea1f2-364b-405f-9acf-cd995ce72e2d)) + (no_connect (at 15.875 124.46) (uuid d03d0a3e-e5e2-4fdb-85cd-f9e88647144c)) + (no_connect (at 127.635 48.895) (uuid d6fc7b4c-e15b-48d1-bfa2-5f099c8b1785)) + (no_connect (at 53.975 59.69) (uuid dd636cad-c577-4aac-8868-27d8f49f1172)) + (no_connect (at 15.875 121.92) (uuid dec13573-505f-471d-a764-be5faeedcec5)) + (no_connect (at 81.915 43.815) (uuid df84d651-f86b-47d5-a78d-0fb7f018357f)) + (no_connect (at 91.44 78.74) (uuid e6392d41-fe6d-4d76-91f2-79242055204c)) + (no_connect (at 81.28 78.74) (uuid eff42c43-fc6b-46c1-9c59-b78e3a6b2c0c)) + + (wire (pts (xy 71.12 163.195) (xy 62.865 163.195)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 00479ac1-789f-471d-a76b-6cc685c0dcd6) + ) + (wire (pts (xy 127.635 46.355) (xy 130.175 46.355)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0193bd75-6df0-4731-9456-c10e903a4860) + ) + (wire (pts (xy 113.665 41.275) (xy 113.665 32.385)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 04b4122c-f1a4-489b-b0d5-fe7dbf1a0d59) + ) + (wire (pts (xy 65.405 116.84) (xy 61.595 116.84)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 06c65f06-4671-40aa-bad8-545912984608) + ) + (wire (pts (xy 79.375 73.66) (xy 79.375 76.2)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 08e2bd86-837b-489f-8d63-fdfe4c0e69db) + ) + (wire (pts (xy 77.47 59.69) (xy 81.28 59.69)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 091ec41f-06b0-4c79-9db5-a35756703c69) + ) + (wire (pts (xy 71.12 124.46) (xy 71.12 132.08)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0b061f32-e656-4baa-87a8-df13b56741ae) + ) + (wire (pts (xy 78.105 36.195) (xy 78.105 27.305)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0c59179f-b5be-4972-a4b7-909517fea9b6) + ) + (wire (pts (xy 361.95 71.755) (xy 361.95 70.485)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0cf3dc8c-fe33-47df-ad7b-de44c71c0bdc) + ) + (wire (pts (xy 127.635 43.815) (xy 144.78 43.815)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 1013a57f-9229-43bb-a8a4-35d33d4ea1c9) + ) + (wire (pts (xy 14.605 133.35) (xy 14.605 132.08)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 103d291b-5c1d-4f31-800f-e7958c0d56fd) + ) + (wire (pts (xy 91.44 57.15) (xy 91.44 59.69)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 13e29454-a071-468c-962a-4df357e33b32) + ) + (wire (pts (xy 53.975 52.07) (xy 113.665 52.07)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 1405ffb8-7941-440c-92a1-ecf2543a573f) + ) + (wire (pts (xy 78.74 137.16) (xy 78.74 168.275)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 156fc478-b0d8-4fc6-aadd-e25f8316780d) + ) + (wire (pts (xy 361.95 70.485) (xy 363.22 70.485)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 15fa0017-e152-42f5-ac44-76cd2c645444) + ) + (wire (pts (xy 113.665 32.385) (xy 117.475 32.385)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 174a3cd4-0f32-4b3b-8067-5657e06e383b) + ) + (wire (pts (xy 61.595 124.46) (xy 71.12 124.46)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 180aa0e7-a523-432e-9daf-864c530434d3) + ) + (wire (pts (xy 92.075 38.735) (xy 109.22 38.735)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 23a5192d-9817-431f-a2b4-b55079f46918) + ) + (wire (pts (xy 113.665 27.305) (xy 117.475 27.305)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 24ac06ef-6c6f-416b-9aff-ba3235389d2e) + ) + (wire (pts (xy 65.405 150.495) (xy 65.405 116.84)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2d624ef4-a3d2-4000-94f1-610dd9c419a3) + ) + (wire (pts (xy 55.245 68.58) (xy 55.245 67.31)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2f54664e-ff09-4f8b-884d-f04b46fe763a) + ) + (wire (pts (xy 61.595 137.16) (xy 78.74 137.16)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 31db3f4d-3db7-454d-b1f0-311fe64c2031) + ) + (wire (pts (xy 77.47 81.915) (xy 77.47 71.12)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 31e15f49-63fe-4615-84a6-f9f6265876d7) + ) + (wire (pts (xy 53.975 64.77) (xy 55.245 64.77)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3317af0b-cde8-4e02-961a-8aa4bd87acc2) + ) + (wire (pts (xy 231.14 147.955) (xy 231.14 146.685)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 331cc089-fa02-46b6-afe3-93511ff59960) + ) + (wire (pts (xy 55.245 49.53) (xy 55.245 54.61)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 347c4075-e349-478e-8326-286d690ab884) + ) + (wire (pts (xy 78.74 168.275) (xy 62.865 168.275)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 356bb2fc-77ae-44d3-ac10-d3378223b381) + ) + (wire (pts (xy 115.57 43.815) (xy 115.57 46.355)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3580293b-0e3c-4ca8-a3a0-7a64e7aaed8b) + ) + (wire (pts (xy 127.635 27.305) (xy 144.78 27.305)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3600ff65-3ec5-4e7a-9423-4276ced0b9cd) + ) + (wire (pts (xy 91.44 71.12) (xy 108.585 71.12)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 38e899f0-2c84-4c0b-9847-a89b0f0c3a9b) + ) + (wire (pts (xy 61.595 129.54) (xy 74.93 129.54)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3cf9a5eb-4d9a-418d-9f22-a5596e0b7793) + ) + (wire (pts (xy 14.605 132.08) (xy 15.875 132.08)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 444bb6eb-0b9f-4910-9a0b-e035172a44c2) + ) + (wire (pts (xy 61.595 132.08) (xy 71.12 132.08)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4497c54a-1ba7-4559-aff5-487c6ea43915) + ) + (wire (pts (xy 73.025 127) (xy 73.025 158.115)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 44ad00ee-e21f-4d6d-a3ce-0ce8cea95fbd) + ) + (wire (pts (xy 18.415 174.625) (xy 18.415 173.355)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4505b2e0-e71e-4535-8d40-e26569e8cc5f) + ) + (wire (pts (xy 92.075 22.225) (xy 109.22 22.225)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 492e0e43-a450-4070-aff4-a4bea2cde5c1) + ) + (wire (pts (xy 94.615 41.275) (xy 94.615 46.99)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4b9d14af-449e-4c1b-a4b3-1db4848febb7) + ) + (wire (pts (xy 76.835 134.62) (xy 99.06 134.62)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4d8944c5-97f7-4937-9aa0-c4bdbe4fdb62) + ) + (wire (pts (xy 61.595 121.92) (xy 69.215 121.92)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4ec8e291-74bc-430d-8452-0e11e7d5716d) + ) + (wire (pts (xy 117.475 43.815) (xy 115.57 43.815)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 510b554c-c4b4-43ed-a51a-1fe1bbdf64dd) + ) + (wire (pts (xy 65.405 116.84) (xy 99.06 116.84)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 53ed0c7b-b2a8-4fea-96d0-ffde2f5d558d) + ) + (wire (pts (xy 55.245 67.31) (xy 53.975 67.31)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 55798b70-d310-4ed1-b758-9a6943303500) + ) + (wire (pts (xy 67.31 153.035) (xy 67.31 119.38)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 55a391b8-ea8b-4c11-b2dd-141c26084b65) + ) + (wire (pts (xy 62.865 153.035) (xy 67.31 153.035)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 58264ca8-861a-40b0-b31b-b360f642aa91) + ) + (wire (pts (xy 130.175 46.355) (xy 130.175 52.07)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 5aab4030-95ba-4002-b5a2-b6ab9b4b6f3e) + ) + (wire (pts (xy 80.01 38.735) (xy 80.01 41.275)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 5cb1b951-ac51-4a03-b264-7d1190a8ecfe) + ) + (wire (pts (xy 91.44 76.2) (xy 93.98 76.2)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 63c0a490-127b-46db-a2a3-06011acdf267) + ) + (wire (pts (xy 77.47 71.12) (xy 81.28 71.12)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 648277e4-f671-4482-a93e-f4d6934869b8) + ) + (wire (pts (xy 69.215 121.92) (xy 69.215 155.575)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6768c2a1-21fd-4579-9d34-38573f7bc13d) + ) + (wire (pts (xy 113.665 29.845) (xy 113.665 27.305)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 677fc0e7-9871-4a9e-9724-6f9686fc614c) + ) + (wire (pts (xy 361.95 70.485) (xy 361.95 67.945)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6920e394-712d-491d-adf6-e33ecd9639b3) + ) + (wire (pts (xy 398.78 70.485) (xy 397.51 70.485)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 697713bf-391a-4cec-a849-d583caf75d92) + ) + (wire (pts (xy 93.98 81.915) (xy 77.47 81.915)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6b1a9e90-5662-4302-a3d7-8bb55a6fc004) + ) + (wire (pts (xy 71.12 163.195) (xy 71.12 170.18)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 726502e7-989b-4c72-bb3a-ac231d0c4043) + ) + (wire (pts (xy 14.605 129.54) (xy 15.875 129.54)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 73a08dbf-ee19-4b73-89fa-b125dc1e1382) + ) + (wire (pts (xy 81.28 73.66) (xy 79.375 73.66)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 787264a4-d108-4d72-ba39-f97f798ed461) + ) + (wire (pts (xy 228.6 72.39) (xy 229.87 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7a466b0f-56e1-4885-a189-b635548ae885) + ) + (wire (pts (xy 92.075 27.305) (xy 109.22 27.305)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7f0889ab-499a-4b05-9f5e-cc4487d77861) + ) + (wire (pts (xy 93.98 76.2) (xy 93.98 81.915)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 802a2ae4-1103-441d-82a2-c69b310f6897) + ) + (wire (pts (xy 113.665 41.275) (xy 117.475 41.275)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 81097d48-c8b1-4e0f-87fe-e50c035992bf) + ) + (wire (pts (xy 69.215 155.575) (xy 62.865 155.575)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 81c87b74-9133-407d-a0b2-97925441383c) + ) + (wire (pts (xy 74.93 160.655) (xy 62.865 160.655)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 82809eb7-9b17-4c47-bcfb-0f38b7bf3793) + ) + (wire (pts (xy 265.43 72.39) (xy 264.16 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 84aef4e1-cb87-4558-946c-a16085659693) + ) + (wire (pts (xy 76.835 134.62) (xy 76.835 165.735)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 86da3034-06dd-4c57-9bfa-e5da85bd1302) + ) + (wire (pts (xy 67.31 119.38) (xy 99.06 119.38)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 892c8cdb-a9e5-4418-858c-c5347a5f67ff) + ) + (wire (pts (xy 76.835 165.735) (xy 62.865 165.735)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8b0077bd-7691-47c0-8e95-db22430f7d74) + ) + (wire (pts (xy 16.51 62.23) (xy 27.305 62.23)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8bba2ebb-d39b-40ec-95ef-7a723d28bc74) + ) + (wire (pts (xy 91.44 73.66) (xy 108.585 73.66)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8e1ad01a-85eb-4d6a-86f6-88afebe1afd1) + ) + (wire (pts (xy 77.47 59.69) (xy 77.47 62.23)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8eead62e-5f31-4eaa-aab4-e850a0f75d89) + ) + (wire (pts (xy 34.925 57.15) (xy 38.735 57.15)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8fd89165-4ddd-436c-b764-ea9443926143) + ) + (wire (pts (xy 127.635 41.275) (xy 144.78 41.275)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 905e866b-0fbb-47ea-9f95-e6623a8f26a0) + ) + (wire (pts (xy 53.975 46.99) (xy 78.105 46.99)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 90ea89a8-3f09-44b2-ae35-f9a3c19c0105) + ) + (wire (pts (xy 55.245 54.61) (xy 55.245 64.77)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 96f3c853-45c5-42ba-8fb5-296fd49e83aa) + ) + (wire (pts (xy 73.025 158.115) (xy 62.865 158.115)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 98eb410e-6d19-4fac-ae97-e6826e51749a) + ) + (wire (pts (xy 78.105 46.99) (xy 78.105 36.195)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9918adb7-0ced-404c-84c0-292a294646f3) + ) + (wire (pts (xy 265.43 73.66) (xy 265.43 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9cd5d46f-23c6-499b-bd02-1d4f846ae5ad) + ) + (wire (pts (xy 55.245 64.77) (xy 55.245 67.31)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a19e4352-bf70-4c4a-9471-227e2f9ef35f) + ) + (wire (pts (xy 55.245 44.45) (xy 55.245 49.53)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a2c7e3e1-40ea-4d52-86c6-b062c59b0265) + ) + (wire (pts (xy 69.215 121.92) (xy 99.06 121.92)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a3571be1-9ff7-422b-ba59-f30940fd6ce1) + ) + (wire (pts (xy 94.615 46.99) (xy 78.105 46.99)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a41570a0-2b3e-496a-aefc-87aa085c61b3) + ) + (wire (pts (xy 71.12 132.08) (xy 71.12 163.195)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a5de9052-d49f-4c9f-91e0-39bfc8c4c419) + ) + (wire (pts (xy 78.105 24.765) (xy 81.915 24.765)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a665b4d4-e282-4dcb-8069-019411c581ad) + ) + (wire (pts (xy 127.635 27.305) (xy 127.635 29.845)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a66f7a87-660f-44cc-8059-37fc13722415) + ) + (wire (pts (xy 16.51 57.15) (xy 27.305 57.15)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid aabf13bc-7f36-4e82-bb73-54df8749ec27) + ) + (wire (pts (xy 91.44 57.15) (xy 108.585 57.15)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid adb3f497-22ce-41e6-8e65-51ed5b71df12) + ) + (wire (pts (xy 80.01 41.275) (xy 81.915 41.275)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b1a9137b-2b56-48ac-8852-90f2ece829d3) + ) + (wire (pts (xy 74.93 129.54) (xy 74.93 160.655)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b2720a13-33b2-4394-8199-1ee806b36b69) + ) + (wire (pts (xy 130.175 52.07) (xy 113.665 52.07)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b3e82a10-bb7e-47e9-b277-92adea352002) + ) + (wire (pts (xy 92.075 36.195) (xy 109.22 36.195)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b40369e7-01fc-4a70-b567-c19bd4522f47) + ) + (wire (pts (xy 74.93 129.54) (xy 99.06 129.54)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b4752eee-01bc-4e6d-a585-78d0e0803933) + ) + (wire (pts (xy 92.075 41.275) (xy 94.615 41.275)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b758726d-6723-422e-9123-c576088b275c) + ) + (wire (pts (xy 53.975 57.15) (xy 77.47 57.15)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bb5ccee2-9f48-4656-8557-11f39937db53) + ) + (wire (pts (xy 81.915 38.735) (xy 80.01 38.735)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bf20c5ea-adec-456f-bb33-3240d4f75f4b) + ) + (wire (pts (xy 231.14 146.685) (xy 232.41 146.685)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bf331de4-82fe-4815-aa7d-b9bad4b5d265) + ) + (wire (pts (xy 92.075 22.225) (xy 92.075 24.765)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c225f15c-0be6-4528-bb53-2e23604e4f13) + ) + (wire (pts (xy 267.97 147.955) (xy 267.97 146.685)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c5b15a94-8438-4643-8c22-26e1f620f61d) + ) + (wire (pts (xy 127.635 32.385) (xy 144.78 32.385)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid caf31c82-42ba-40a2-910d-6e22fd4b9805) + ) + (wire (pts (xy 267.97 146.685) (xy 266.7 146.685)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid cb61bf83-71d8-4949-b86a-3cf7908e23e6) + ) + (wire (pts (xy 53.975 54.61) (xy 55.245 54.61)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid cc02d3a3-fd9d-43b8-8912-d3cbcccfe527) + ) + (wire (pts (xy 77.47 62.23) (xy 77.47 71.12)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid cd181458-9899-4e0d-bc77-ddc9b9fa29c5) + ) + (wire (pts (xy 46.355 74.93) (xy 46.355 76.835)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ce7737a4-8523-4376-b155-73bc96295ec2) + ) + (wire (pts (xy 78.105 27.305) (xy 81.915 27.305)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid cf8eed72-5bf9-4e65-950b-e234a13b039e) + ) + (wire (pts (xy 91.44 62.23) (xy 108.585 62.23)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d36628a0-66b6-458a-aba4-70f57ed58a25) + ) + (wire (pts (xy 61.595 134.62) (xy 76.835 134.62)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d4cb6490-b04c-4884-bbc6-70c94776edd7) + ) + (wire (pts (xy 398.78 71.755) (xy 398.78 70.485)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d52bf217-669d-42bf-b5ad-f1de99a57a8b) + ) + (wire (pts (xy 77.47 57.15) (xy 81.28 57.15)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d7bb4234-9c6b-47bd-958a-050da81cdd26) + ) + (wire (pts (xy 61.595 127) (xy 73.025 127)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d81ff3f5-758f-48db-9a13-0aef70bf1bfc) + ) + (wire (pts (xy 53.975 44.45) (xy 55.245 44.45)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d96febfa-10ea-43d7-a961-07336b702b40) + ) + (wire (pts (xy 77.47 57.15) (xy 77.47 59.69)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid de0e8714-c168-4876-9e23-1b44bc4425b8) + ) + (wire (pts (xy 14.605 132.08) (xy 14.605 129.54)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid de33ec42-2754-47d3-865e-0bc664076473) + ) + (wire (pts (xy 228.6 73.66) (xy 228.6 72.39)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid deb450f3-b733-4f66-9c84-e716a7b4ac16) + ) + (wire (pts (xy 113.665 32.385) (xy 113.665 29.845)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ded6d037-a840-410f-9e1c-0fcfc4f9b8a2) + ) + (wire (pts (xy 53.975 49.53) (xy 55.245 49.53)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid df43d862-94dc-40cf-a4cf-88a380f314e2) + ) + (wire (pts (xy 61.595 119.38) (xy 67.31 119.38)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid df627568-fa35-4a85-83cf-5ffac6a49e01) + ) + (wire (pts (xy 79.375 76.2) (xy 81.28 76.2)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e19107db-7e7b-4aba-a7cc-ebaa8a3fdf3b) + ) + (wire (pts (xy 113.665 52.07) (xy 113.665 41.275)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e3f398ea-c9e4-4703-970f-6d78aa7a6a4a) + ) + (wire (pts (xy 34.925 62.23) (xy 38.735 62.23)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e7e10b9a-b0ee-4231-a640-df2c847f0c06) + ) + (wire (pts (xy 78.105 36.195) (xy 81.915 36.195)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e8038eb2-6f5e-470d-be92-b93173748406) + ) + (wire (pts (xy 77.47 62.23) (xy 81.28 62.23)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ea4631bb-4aa7-46b0-9938-784ca1e33e18) + ) + (wire (pts (xy 78.105 22.225) (xy 81.915 22.225)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ea5aaae7-62ce-43dc-8e09-7cc6955736c5) + ) + (wire (pts (xy 78.105 27.305) (xy 78.105 24.765)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid eafe41d0-4b0b-4886-82c5-48162fbf89ba) + ) + (wire (pts (xy 113.665 29.845) (xy 117.475 29.845)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f01d5749-746e-4265-9154-39bc2ecb9b4c) + ) + (wire (pts (xy 18.415 173.355) (xy 19.685 173.355)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f1502f2c-cc7f-4a7c-807a-b450be0a2a0e) + ) + (wire (pts (xy 73.025 112.395) (xy 73.025 127)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f19ceaad-4c7a-436d-a263-76d8005c6a3a) + ) + (wire (pts (xy 361.95 67.945) (xy 363.22 67.945)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f3a0ceee-7c32-4c5e-85a4-4861505f1459) + ) + (wire (pts (xy 78.74 137.16) (xy 99.06 137.16)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f4cd7693-78ff-4cd9-81d1-a3a8c3230c8a) + ) + (wire (pts (xy 78.105 24.765) (xy 78.105 22.225)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f4e43a2e-b459-4ec5-8c51-dbe0c83347a3) + ) + (wire (pts (xy 62.865 150.495) (xy 65.405 150.495)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid fa162d38-af49-49b2-9aec-55c3fa4de2fb) + ) + (wire (pts (xy 115.57 46.355) (xy 117.475 46.355)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid fbd68918-1459-4096-a0a5-7032a5e1c7b5) + ) + + (label "VGA_BLUE_1" (at 108.585 71.12 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 097a7f16-eb0a-4cda-9b0e-82544140128f) + ) + (label "VGA_RED" (at 64.135 46.99 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 09bb160a-e167-4b42-b70f-9754f7e7ea28) + ) + (label "VGA_GREEN_2" (at 144.78 32.385 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 0c655ad9-960d-4a1f-8071-c297709159f5) + ) + (label "VGA_GREEN_0" (at 144.78 43.815 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 1084e720-7d97-4382-b1df-fcf71e7feaf4) + ) + (label "SD_DAT0" (at 99.06 134.62 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 2f2859a2-58ed-4c0a-a6b4-607a711cdeff) + ) + (label "VGA_BLUE_2" (at 108.585 62.23 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 568368ea-90f6-400f-8544-420a4c6dc098) + ) + (label "VGA_BLUE" (at 64.135 57.15 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 5c3ba644-d8a5-4adc-b195-1632d6f3b8f2) + ) + (label "VGA_RED_1" (at 109.22 36.195 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 5e8e3bbb-6879-4b63-b748-86a38208fad4) + ) + (label "VGA_BLUE_0" (at 108.585 73.66 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 617e5836-e735-4661-9dde-3484a422af56) + ) + (label "SD_CLK" (at 99.06 129.54 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 62feb7ad-96cd-4455-ae53-e17f0f002098) + ) + (label "VGA_RED_0" (at 109.22 38.735 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 63ff0fcf-8df7-45d0-91b5-d6ba65439489) + ) + (label "VGA_GREEN_3" (at 144.78 27.305 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 716ec85d-8956-4dd1-b105-3f0e5820428c) + ) + (label "SD_DAT1" (at 99.06 137.16 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 7268b070-9c05-47d0-9be3-d6d241b468a9) + ) + (label "VGA_HS" (at 16.51 57.15 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 8af00850-3351-4184-9da0-86cb164fde5a) + ) + (label "SD_DAT2" (at 99.06 116.84 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 9b575138-6a30-49dd-97fc-a7492f4876a0) + ) + (label "VGA_GREEN_1" (at 144.78 41.275 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid b7b9dcb0-8892-47ae-88bd-e128eefb9a62) + ) + (label "VGA_GREEN" (at 64.135 52.07 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid c5777251-2b22-47b3-b7be-74ce71804c28) + ) + (label "VGA_RED_2" (at 109.22 27.305 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid d76db9f2-7b18-4243-bb15-0e9d0184df74) + ) + (label "SD_DAT3" (at 99.06 119.38 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid d87ca2db-dabf-4303-b7dd-7ff7dc5ef4e8) + ) + (label "VGA_RED_3" (at 109.22 22.225 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid dc6b5def-ec3e-40d4-9702-ee43f462a30a) + ) + (label "VGA_BLUE_3" (at 108.585 57.15 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid e52bfb01-c5c8-433e-acd1-6d69ede94075) + ) + (label "SD_CMD" (at 99.06 121.92 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid e84c87c7-4bfa-4868-ba84-e327c27faac0) + ) + (label "VGA_VS" (at 16.51 62.23 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid f0b55094-469f-4c5b-b956-a959c62f316b) + ) + + (symbol (lib_id "Device:R_Pack04") (at 86.995 27.305 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid 00a34619-4b85-4d3a-a21a-f8a6740a2565) + (property "Reference" "RN1" (id 0) (at 90.17 19.685 90)) + (property "Value" "1k" (id 1) (at 84.455 19.05 90)) + (property "Footprint" "" (id 2) (at 86.995 34.29 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 86.995 27.305 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 63eaf4ee-41ba-49af-b08c-1dff7b58fd12)) + (pin "2" (uuid a2f69cd4-5b52-455d-bb53-f34d6e850dce)) + (pin "3" (uuid bae79c36-c05b-4938-8a96-1489f2835ba2)) + (pin "4" (uuid d6b6df20-b965-4e20-8012-151dc4cf63d4)) + (pin "5" (uuid 51208da1-e445-407c-b988-c381c5969b17)) + (pin "6" (uuid ddb495d5-f516-4755-8902-52fbeb3d74a8)) + (pin "7" (uuid ef92f2ba-bf35-4aad-a1ea-9b3f2d03a8be)) + (pin "8" (uuid 7bdd5281-3838-4c80-9544-8b1a9a20d7be)) + ) + + (symbol (lib_id "Device:R") (at 31.115 57.15 90) (unit 1) + (in_bom yes) (on_board yes) + (uuid 0adac5e3-3d8a-43a6-b17d-8e16cf684c6e) + (property "Reference" "R1" (id 0) (at 26.67 54.61 90)) + (property "Value" "120" (id 1) (at 31.115 57.15 90)) + (property "Footprint" "" (id 2) (at 31.115 58.928 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 31.115 57.15 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ffdb33fd-77d9-4d20-ab09-bc06c002e64e)) + (pin "2" (uuid a8b043a0-4d20-4c58-98dd-cd630d4d4bf6)) + ) + + (symbol (lib_id "power:+3V3") (at 73.025 112.395 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 18a88cdc-8e27-451b-abe5-99ec4c2a108f) + (property "Reference" "#PWR?" (id 0) (at 73.025 116.205 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3V3" (id 1) (at 73.025 106.68 0)) + (property "Footprint" "" (id 2) (at 73.025 112.395 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 73.025 112.395 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e7ac3005-be42-43cf-8010-254d537853b0)) + ) + + (symbol (lib_id "Header:T20BGA256_DEV_GPIO_1B1C") (at 379.73 23.495 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 18e6a82d-f9ae-4f72-b2c4-c51d742a18a0) + (property "Reference" "U2" (id 0) (at 380.365 19.05 0)) + (property "Value" "T20BGA256_DEV_GPIO_1B1C" (id 1) (at 380.365 21.59 0)) + (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_2x18_P2.54mm_Vertical" (id 2) (at 379.73 23.495 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 379.73 23.495 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6fe77485-c995-4baf-8432-fda100657fee)) + (pin "10" (uuid ae55fb6f-067d-44b3-8738-88fbcbe5d187)) + (pin "11" (uuid a74a4094-46e6-45c6-9ff4-d07088647a03)) + (pin "12" (uuid fe6e3570-f13a-4d55-9cc1-a16558c00168)) + (pin "13" (uuid d20ef643-85f6-4b64-9f2b-2c9e7bb274a1)) + (pin "14" (uuid d777a9f3-abdb-4868-a6c7-f2b93245fae5)) + (pin "15" (uuid 1e422942-8006-45c7-adaa-d2466f70e748)) + (pin "16" (uuid 2422001b-5ffd-4142-ab59-11be8ab496b6)) + (pin "17" (uuid 10f1d706-e828-4231-a8c4-6e98fd9a7d2a)) + (pin "18" (uuid 5337dfe9-37fb-4b91-8004-6f8d34c77500)) + (pin "19" (uuid 4912ae09-9920-42b7-a863-2c5bff3769fe)) + (pin "2" (uuid 244eb55e-8ee4-4b5c-a00d-58e043a5d917)) + (pin "20" (uuid e86759dd-14a6-483f-a2b4-741a2b09a2b6)) + (pin "21" (uuid 869c2803-bc68-47c4-8391-cdff5c28727a)) + (pin "22" (uuid cd97f9d6-8d5f-426e-a981-35b131738ba4)) + (pin "23" (uuid 46ce5bcd-2124-4cd4-b6cb-6aeede7257c5)) + (pin "24" (uuid 418a1fa9-15cb-4a37-8f8e-ff0ae63a4993)) + (pin "25" (uuid 43760f81-3291-472f-8a6c-f3a49577e352)) + (pin "26" (uuid df557d42-a386-402b-90a8-c610eabd6e25)) + (pin "27" (uuid 9851a852-1130-4f34-9443-53f0f0021230)) + (pin "28" (uuid 6ee48f65-cb0a-45e8-9d11-53c7062c0b8e)) + (pin "29" (uuid a082f614-80e9-4dfa-af92-018356cef646)) + (pin "3" (uuid 897eeb7a-f2bc-4d7e-a238-1cf984824621)) + (pin "30" (uuid 5e2b3034-ca85-47d9-9dfa-271bb9d52301)) + (pin "31" (uuid 59aef4af-c07c-466a-8e4d-fa86aaf9b5ee)) + (pin "32" (uuid 7fd49fc2-4459-4d38-aae4-d29b45612a0e)) + (pin "33" (uuid 79c6e9fe-b4ed-4f63-8996-f912ed2d3b0b)) + (pin "34" (uuid 783ef069-c05e-4c2b-ba19-4ed6e10db321)) + (pin "35" (uuid e81b79c8-01e2-4058-b660-4c3749d34130)) + (pin "36" (uuid f37edc20-ca30-4f68-9fec-8e1fcd3731b5)) + (pin "4" (uuid cdfa9eec-dbea-4305-b408-4b6d9bdbdb6f)) + (pin "5" (uuid 9655f59d-3fef-4e0d-b139-3a22ef36e202)) + (pin "6" (uuid 426d1e23-e394-4eb3-bf22-20f26ad34dca)) + (pin "7" (uuid 35860e9f-0474-4ecb-8afc-c25381f81863)) + (pin "8" (uuid 2aa53f54-9488-4aaf-99eb-f5d7a30eaeb0)) + (pin "9" (uuid da9e5be8-d447-4013-9fc7-03ed08ed3bbd)) + ) + + (symbol (lib_id "Device:R_Pack04") (at 122.555 32.385 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid 402d479d-b3fb-4e3f-8043-e07c5c382025) + (property "Reference" "RN2" (id 0) (at 125.73 24.765 90)) + (property "Value" "1k" (id 1) (at 120.015 24.13 90)) + (property "Footprint" "" (id 2) (at 122.555 39.37 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 122.555 32.385 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c001c7ad-0a5a-44b4-a170-3e823633f00c)) + (pin "2" (uuid c0a7218a-6120-4abd-8e5e-c687e1840817)) + (pin "3" (uuid 798b1a97-3b74-4913-918d-42494d5b7146)) + (pin "4" (uuid c09eaaaf-e83b-48d1-9884-57ddf597e982)) + (pin "5" (uuid 1b267d07-fd64-4423-a0e2-71800e65efd5)) + (pin "6" (uuid 453b2173-4750-441c-a921-afbdc3018584)) + (pin "7" (uuid c96cd2d1-e06f-4293-a279-530021fdcff7)) + (pin "8" (uuid 630ad7ac-1ecc-4974-b74b-95528b9be3ef)) + ) + + (symbol (lib_id "Device:R_Pack04") (at 86.36 62.23 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid 4c5fec20-7362-4634-9a84-1e4aeb524405) + (property "Reference" "RN5" (id 0) (at 89.535 54.61 90)) + (property "Value" "1k" (id 1) (at 83.82 53.975 90)) + (property "Footprint" "" (id 2) (at 86.36 69.215 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 86.36 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 76a3852f-b072-4dc1-8253-df8c6989311c)) + (pin "2" (uuid 38623e9b-5c97-4b41-a88b-10e66e964042)) + (pin "3" (uuid faa9aee3-c276-4429-898b-b19fb1523142)) + (pin "4" (uuid 68bb13a5-bbf5-45e6-9b57-485b9335d903)) + (pin "5" (uuid f9bc640e-f006-4417-889d-9b533418cbba)) + (pin "6" (uuid 187204ff-1607-4ec6-bd4c-fa03f90fdb37)) + (pin "7" (uuid 4c4a9c89-d4e8-446a-b78b-7adb689a09b0)) + (pin "8" (uuid 332d6874-7352-48e5-949f-11fe81979326)) + ) + + (symbol (lib_id "power:GND") (at 398.78 71.755 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 4c8d3429-c415-4367-a44a-fc1bf968c5b4) + (property "Reference" "#PWR06" (id 0) (at 398.78 78.105 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 398.78 76.2 0)) + (property "Footprint" "" (id 2) (at 398.78 71.755 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 398.78 71.755 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c13f0c14-49ce-4b0a-b571-085f22be9ed3)) + ) + + (symbol (lib_id "power:GND") (at 265.43 73.66 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 4fee6b83-5f12-4418-83ed-2774803956be) + (property "Reference" "#PWR04" (id 0) (at 265.43 80.01 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 265.43 78.74 0)) + (property "Footprint" "" (id 2) (at 265.43 73.66 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 265.43 73.66 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 17795b5f-35c9-424a-b33a-afbc0edf711e)) + ) + + (symbol (lib_id "power:GND") (at 361.95 71.755 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 56b82d6f-08dd-4a0a-bd4d-8e161541e4bf) + (property "Reference" "#PWR05" (id 0) (at 361.95 78.105 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 361.95 76.2 0)) + (property "Footprint" "" (id 2) (at 361.95 71.755 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 361.95 71.755 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 06d949a0-5dde-42d1-9a31-30981406c01f)) + ) + + (symbol (lib_id "power:GND") (at 55.245 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 574f0cd7-4f5a-4fd4-9005-fc45d8a0d960) + (property "Reference" "#PWR01" (id 0) (at 55.245 74.93 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 55.245 73.025 0)) + (property "Footprint" "" (id 2) (at 55.245 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 55.245 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0e986a88-7c13-4281-951b-57bfedd63240)) + ) + + (symbol (lib_id "power:GND") (at 267.97 147.955 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 610374ad-71c2-4236-9105-05f3b73c72ec) + (property "Reference" "#PWR08" (id 0) (at 267.97 154.305 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 267.97 153.035 0)) + (property "Footprint" "" (id 2) (at 267.97 147.955 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 267.97 147.955 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid cb38b461-9c91-403c-b6ac-f837749fe7bd)) + ) + + (symbol (lib_id "Device:R_Pack04") (at 86.36 76.2 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid 79bc1ad9-fa8c-403c-a93d-0dbf2f562882) + (property "Reference" "RN6" (id 0) (at 90.17 68.58 90)) + (property "Value" "2k" (id 1) (at 83.82 68.58 90)) + (property "Footprint" "" (id 2) (at 86.36 83.185 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 86.36 76.2 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0049ad84-ed22-40c4-99e2-bbbc012aa410)) + (pin "2" (uuid 91f5dff8-8963-4d10-ad9d-437896460de5)) + (pin "3" (uuid 3bdfa8d4-a55f-4cd6-b86e-2497db03769a)) + (pin "4" (uuid 75ea4609-e31b-4236-b9d7-ba5fa194a5b3)) + (pin "5" (uuid ae18f3b3-5d86-4770-95d7-c12ec4088596)) + (pin "6" (uuid 705bcd87-60a8-4ecf-845a-3086a2748e76)) + (pin "7" (uuid 874a5781-036f-4371-abc7-b64bcc484c6c)) + (pin "8" (uuid d1fb182a-0ae1-4de4-8e42-61fc2cb656c9)) + ) + + (symbol (lib_id "Device:R_Pack04") (at 86.995 41.275 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid 7c69a070-d611-4829-91c9-d6c8bcababfb) + (property "Reference" "RN3" (id 0) (at 90.805 33.655 90)) + (property "Value" "2k" (id 1) (at 84.455 33.655 90)) + (property "Footprint" "" (id 2) (at 86.995 48.26 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 86.995 41.275 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2eabdfcf-50a5-4c8d-b153-d56ced0c2522)) + (pin "2" (uuid b7d3b803-d696-41c2-8ca1-433b91188afe)) + (pin "3" (uuid 032d21ea-95fd-449e-94b3-b930f59023bf)) + (pin "4" (uuid 87f56629-ec5d-4618-bde5-11a07aadcdfc)) + (pin "5" (uuid b243a4f2-2e52-4f7e-a29c-71d3609b9b9c)) + (pin "6" (uuid a1013517-036a-4e04-a9c2-b04781d088ec)) + (pin "7" (uuid 8bfdf1dc-981d-467d-8f61-be0cf5bb69d3)) + (pin "8" (uuid fe8090d3-deeb-431a-a7a4-21361ba088d4)) + ) + + (symbol (lib_id "Device:R_Pack04") (at 122.555 46.355 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid 8195dcfa-90bd-4214-95e0-4ff112e7b91e) + (property "Reference" "RN4" (id 0) (at 126.365 38.735 90)) + (property "Value" "2k" (id 1) (at 120.015 38.735 90)) + (property "Footprint" "" (id 2) (at 122.555 53.34 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 122.555 46.355 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0ec86947-bf68-41c7-ab72-4b19b09de17a)) + (pin "2" (uuid 60f9aa2a-78e1-4fd3-ab65-6a15f71052dc)) + (pin "3" (uuid 216bf330-b1d6-455d-bcad-65137a0c1866)) + (pin "4" (uuid ee65ab23-fb15-4aac-a86b-4a62be004f5b)) + (pin "5" (uuid 341d1a78-d8e1-4c8f-a556-84b7ed2bfd29)) + (pin "6" (uuid a8845893-4d05-4df6-baf8-275e84fb7a88)) + (pin "7" (uuid 5a7d4869-d283-42f5-90dd-c30017097b25)) + (pin "8" (uuid 4f135a24-5591-4072-8db1-b1f4367610f5)) + ) + + (symbol (lib_id "Connector:DB15_Female_HighDensity_MountingHoles") (at 46.355 57.15 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 83e6c9e8-cf1c-4bee-a197-b11cec8dcf84) + (property "Reference" "J1" (id 0) (at 46.355 34.29 0)) + (property "Value" "DB15_Female_HighDensity_MountingHoles" (id 1) (at 46.355 36.83 0)) + (property "Footprint" "" (id 2) (at 70.485 46.99 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" " ~" (id 3) (at 70.485 46.99 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "0" (uuid 2fa41194-6f2f-4415-a278-cf6bf092c254)) + (pin "1" (uuid 1e22be44-2e68-4ba0-8c74-b53bd12069ab)) + (pin "10" (uuid ab5531f8-84a5-4e70-b6df-d52a51cd416b)) + (pin "11" (uuid 603b411f-efc5-4f2c-acca-98c55e21b6e5)) + (pin "12" (uuid a928f1e3-de40-4e7d-a4c3-ca434f3e6ba7)) + (pin "13" (uuid dfa558ed-da56-40ce-9e08-0a55323c9694)) + (pin "14" (uuid de103ca1-f329-45b7-ac1a-5c42c23106c2)) + (pin "15" (uuid 52bc6300-8193-41fc-8663-191db7980f63)) + (pin "2" (uuid 10de0d4e-76b2-4c4f-90ad-479411865f4d)) + (pin "3" (uuid 71ffc03f-1135-4374-bffc-fbfe162eedd4)) + (pin "4" (uuid 183caedf-9742-42bf-9d12-c8163063a45e)) + (pin "5" (uuid 4dd65195-bcd8-4132-9965-cbe54c4e121e)) + (pin "6" (uuid 8de6a1a2-1512-47d7-bda4-bde4a082c904)) + (pin "7" (uuid 22736876-f13d-40d1-b809-ebf2cb84a67e)) + (pin "8" (uuid 06870aef-c046-4091-8f90-0b8cacc7228b)) + (pin "9" (uuid 7a7afe3f-de28-4085-941c-42730be319ec)) + ) + + (symbol (lib_id "power:GND") (at 71.12 170.18 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 8e850c5e-ee72-4d3d-8d0c-c81c6f8602e4) + (property "Reference" "#PWR?" (id 0) (at 71.12 176.53 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 71.12 175.26 0)) + (property "Footprint" "" (id 2) (at 71.12 170.18 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 71.12 170.18 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 740fb733-b234-423c-878c-7adbc54bf9aa)) + ) + + (symbol (lib_id "power:GND") (at 228.6 73.66 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 9c0516cc-3f40-45fe-b195-d8db33a27cdd) + (property "Reference" "#PWR03" (id 0) (at 228.6 80.01 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 228.6 78.74 0)) + (property "Footprint" "" (id 2) (at 228.6 73.66 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 228.6 73.66 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f1435fcf-68eb-4272-b6ac-d8d7c525781c)) + ) + + (symbol (lib_id "Device:R") (at 31.115 62.23 90) (unit 1) + (in_bom yes) (on_board yes) + (uuid 9e373180-e93e-4f4f-bb69-a31604a2ec88) + (property "Reference" "R2" (id 0) (at 26.67 59.69 90)) + (property "Value" "120" (id 1) (at 31.115 62.23 90)) + (property "Footprint" "" (id 2) (at 31.115 64.008 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 31.115 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6f18359c-df77-4da5-8ec9-066de2076d83)) + (pin "2" (uuid 3bfa5356-d76f-4af6-a667-40f973d095da)) + ) + + (symbol (lib_id "Connector:SD_Card") (at 38.735 127 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid a0eb9593-3322-4153-9b3d-fc9385acb14a) + (property "Reference" "J?" (id 0) (at 38.735 109.22 0)) + (property "Value" "SD_Card" (id 1) (at 38.735 111.76 0)) + (property "Footprint" "" (id 2) (at 38.735 127 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://portal.fciconnect.com/Comergent//fci/drawing/10067847.pdf" (id 3) (at 38.735 127 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d1786050-dac2-4dc0-86e5-f59a955781db)) + (pin "10" (uuid ca501173-8459-42d1-af0c-c6174fb8f487)) + (pin "11" (uuid 02a6a9cf-fbda-4b16-b195-ee1aa3711dd9)) + (pin "12" (uuid d55c17f1-8173-45bc-a3c9-ae65f8d25794)) + (pin "13" (uuid be63e1b6-043f-4212-bce3-95c7ad957831)) + (pin "2" (uuid dd3edc0f-c343-42c6-be84-5f9421e07009)) + (pin "3" (uuid e39f5a9d-2186-4a4f-b2f5-e3005111c0d8)) + (pin "4" (uuid afb9b195-7bb9-458d-8327-6a4a187926a4)) + (pin "5" (uuid b6e289ef-5f66-49b6-b93b-f8fbbe69b9ea)) + (pin "6" (uuid 28d2f591-8a52-415d-891d-4f8e808ad44c)) + (pin "7" (uuid 8a3dca66-69c2-47da-930a-f7589f773e1d)) + (pin "8" (uuid 51f8cb56-2687-41a0-811d-8fb613e280d1)) + (pin "9" (uuid 271e8cb2-a69b-4aab-a008-6c33488ad772)) + ) + + (symbol (lib_id "power:GND") (at 231.14 147.955 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid aa82ad4f-5ecc-4369-a780-cf06bb10cdb0) + (property "Reference" "#PWR07" (id 0) (at 231.14 154.305 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 231.14 153.035 0)) + (property "Footprint" "" (id 2) (at 231.14 147.955 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 231.14 147.955 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 032bd07a-b8ef-4c04-966e-ee57c8b8a7c7)) + ) + + (symbol (lib_id "Header:T20BGA256_DEV_GPIO_3") (at 250.19 103.505 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid c3cf08d3-7b3d-4100-80a5-b4871588e46a) + (property "Reference" "U3" (id 0) (at 249.555 100.965 0)) + (property "Value" "T20BGA256_DEV_GPIO_3" (id 1) (at 249.555 103.505 0)) + (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_2x16_P2.54mm_Vertical" (id 2) (at 250.19 103.505 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 250.19 103.505 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6f89fec9-489c-4b32-a468-9a2f964b408a)) + (pin "10" (uuid c7cdec4c-606a-41ea-ac32-5bb79b20baa1)) + (pin "11" (uuid 24cdfe57-cd40-45be-aeec-cfd158fa6392)) + (pin "12" (uuid a9c1c37d-dda9-42f6-9b23-45a6fba98c46)) + (pin "13" (uuid f7cb3492-af35-402e-8573-bdf5256821ab)) + (pin "14" (uuid 6431bffd-4ee2-41dd-9937-ff18e87f5d7e)) + (pin "15" (uuid dab9eff9-f54b-4806-ab61-abfc1f69eddf)) + (pin "16" (uuid f63141ea-e707-438d-8606-56f9f5778025)) + (pin "17" (uuid 3300eae5-d006-48f1-aa60-f61456fe60a2)) + (pin "18" (uuid 8298a431-014a-4337-8ceb-f1765e8188d4)) + (pin "19" (uuid 91c88e15-a8c7-4a6c-8311-5b693ec8e8c0)) + (pin "2" (uuid d9210da6-ba90-4ce9-b0bc-2fad0fe50d6e)) + (pin "20" (uuid dc6c8d3a-5598-45fe-b788-e0a246a1c542)) + (pin "21" (uuid 36a1b6a1-d4c6-4af9-98b5-b625b5ef41bc)) + (pin "22" (uuid dd8ef35b-aff8-48f0-b6d7-ca81fe18ade7)) + (pin "23" (uuid 8b1b038b-4ccd-4a64-b73a-4a6ba57a8a10)) + (pin "24" (uuid d7966103-fa64-4685-8f1d-1dfe51abb115)) + (pin "25" (uuid c02a1a4b-0922-456b-ae8f-ca4a139b27d5)) + (pin "26" (uuid 0b7eadd9-8eac-4a41-9886-87352ae924ee)) + (pin "27" (uuid b383ac93-eb82-4235-838c-bfdcd19eeaa8)) + (pin "28" (uuid cd9f16d7-2f94-493e-8318-a8f651d1e0fd)) + (pin "29" (uuid a9548a52-6416-44bc-8754-7a9e2c637554)) + (pin "3" (uuid 7c3799d7-54d7-4d47-a420-f16f42e94843)) + (pin "30" (uuid 89284693-6c45-421b-9a20-bb5758a9a0dc)) + (pin "31" (uuid 3d174592-3274-4ea7-a69e-67b4fdb5d405)) + (pin "32" (uuid 3649aa5c-70f4-4244-9f6a-b06024f4c06a)) + (pin "4" (uuid ad387e5a-5f41-4057-bcfe-85873a5f3c0d)) + (pin "5" (uuid b9dd2c37-74a2-4cb6-9236-a99e77eecf21)) + (pin "6" (uuid 303daeae-c039-4cdc-af3d-5ad6321acac5)) + (pin "7" (uuid da574a35-d313-4e49-ba30-e3cbae0abc1d)) + (pin "8" (uuid e8af860e-2aa2-4e0f-9dea-e882d525feb6)) + (pin "9" (uuid 0ad30a76-be01-45f3-99d8-3d11ff2e2057)) + ) + + (symbol (lib_id "power:GND") (at 46.355 76.835 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid c40dac7a-6e4b-4096-b52f-edb7ec9cb3b2) + (property "Reference" "#PWR02" (id 0) (at 46.355 83.185 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 46.355 81.915 0)) + (property "Footprint" "" (id 2) (at 46.355 76.835 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 46.355 76.835 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 8e52922f-62cc-4f4a-bf8e-734f9b419d8f)) + ) + + (symbol (lib_id "power:GND") (at 18.415 174.625 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid da440c22-0df4-4b7f-8046-fa1facb63f02) + (property "Reference" "#PWR?" (id 0) (at 18.415 180.975 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 18.415 179.07 0)) + (property "Footprint" "" (id 2) (at 18.415 174.625 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 18.415 174.625 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e07013bf-30e3-4df2-ac09-f1c4fd4cfa82)) + ) + + (symbol (lib_id "Connector:Micro_SD_Card") (at 40.005 158.115 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid e51c959f-a8c0-43ac-bd2e-265982ec9487) + (property "Reference" "J?" (id 0) (at 39.37 138.43 0)) + (property "Value" "Micro_SD_Card" (id 1) (at 39.37 140.97 0)) + (property "Footprint" "" (id 2) (at 10.795 150.495 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://katalog.we-online.de/em/datasheet/693072010801.pdf" (id 3) (at 40.005 158.115 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 824a3116-9ab0-4833-aab7-e73eed74d7fb)) + (pin "2" (uuid d91fdd60-a3e2-4313-b2e7-5d7bea76c68f)) + (pin "3" (uuid 639c1ecb-305b-4f76-a3ad-2e35609444b1)) + (pin "4" (uuid 9d836932-e028-43ce-be2b-8170d33e7748)) + (pin "5" (uuid 1f7acdf4-dff5-4f3a-a8c2-bf6953298ee4)) + (pin "6" (uuid de65e8c0-e030-49e0-9a6d-23143e86eaf4)) + (pin "7" (uuid 0d8cc103-9982-4fee-b796-522416dfdadf)) + (pin "8" (uuid 72552db5-c1a9-42e1-af2a-9f4da4a227bf)) + (pin "9" (uuid fdef8ad7-04eb-4bb6-a634-278f963a6959)) + ) + + (symbol (lib_id "Header:T20BGA256_DEV_GPIO_1D1E") (at 246.38 24.13 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid e79177f4-1eec-4664-b34c-b0db7e93f018) + (property "Reference" "U1" (id 0) (at 247.015 21.59 0)) + (property "Value" "T20BGA256_DEV_GPIO_1D1E" (id 1) (at 247.015 24.13 0)) + (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_2x18_P2.54mm_Vertical" (id 2) (at 246.38 24.13 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 246.38 24.13 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 50346f6b-97b1-4370-99a7-63d81c44625c)) + (pin "10" (uuid f6b3a0a8-2093-42cc-b6cd-a8d3a18dcc10)) + (pin "11" (uuid 9b74d638-66e5-4f7f-97e2-d7f23e3797e6)) + (pin "12" (uuid 6f09b8c6-9e20-4cd9-98ec-9df84d8c8cc4)) + (pin "13" (uuid 3410ce80-99ad-4ea5-9125-d2a37bc44da3)) + (pin "14" (uuid ea31179c-addf-4a2c-ac5e-497c3d823668)) + (pin "15" (uuid e9d05bfa-3742-4893-a191-fb2b7928d161)) + (pin "16" (uuid 42b02f51-2595-4389-beb4-778d49896863)) + (pin "17" (uuid 96c7f554-7b03-40de-a4d8-85e41d7e86bb)) + (pin "18" (uuid 097205b3-b304-4242-b2cd-7ea593ea6702)) + (pin "19" (uuid d92b2eb2-2168-42a1-8007-3a052c4319d2)) + (pin "2" (uuid a0f7ae9d-5221-4616-8654-77479da72b85)) + (pin "20" (uuid b084e5c7-fc25-468f-b7c7-439eee2fcfa0)) + (pin "21" (uuid 68b42af9-8fc8-44d6-93b7-0e61bc4df071)) + (pin "22" (uuid b7ce67be-1fcf-40d4-9b5e-94559651ca16)) + (pin "23" (uuid 1f6fcc79-0aed-495e-9a44-f2434a8db81f)) + (pin "24" (uuid 5e4c58ab-3c5b-4bea-baf4-908410e92dbb)) + (pin "25" (uuid 988e21fd-7d02-4e35-935f-4e0ce1c394db)) + (pin "26" (uuid 8b66f4ae-f786-4c17-a8c0-c921adbb5436)) + (pin "27" (uuid 6eed5a74-0d44-44e0-a21c-a490313ca33c)) + (pin "28" (uuid 907c903b-a703-4db1-8a68-96f0d71ec58a)) + (pin "29" (uuid e118d3f7-732e-4e6a-b39c-3ba33f7f419c)) + (pin "3" (uuid 4a3fa383-9008-4d19-9227-3b51c7fb5345)) + (pin "30" (uuid 80d76c05-0dc9-4b84-bf13-dfdcb4597024)) + (pin "31" (uuid eba5cd5f-2dfd-4032-8592-071de38625bd)) + (pin "32" (uuid f4ff9156-68c9-4f31-8295-396cd93432c7)) + (pin "33" (uuid aca63c75-69b4-4756-b6a8-695fdc68fccd)) + (pin "34" (uuid 9982b3f6-ec34-4b6a-b28e-3502f1e975c7)) + (pin "35" (uuid a2c776b6-3cbc-4040-8f17-18c25cfef76f)) + (pin "36" (uuid 990c001a-6126-4f0b-915d-25c58ad145bc)) + (pin "4" (uuid ba434336-8d44-4e86-b500-11af175c1c7f)) + (pin "5" (uuid 65571691-baa9-47b9-8420-01f414696ce6)) + (pin "6" (uuid c8e4792e-24d8-4cb8-a9df-eca664afdd5c)) + (pin "7" (uuid b19a3c8f-bccd-4dba-a63b-15a678b2e3f5)) + (pin "8" (uuid fbe0dd48-13a6-4bd6-903e-99efa4fd0c3f)) + (pin "9" (uuid 7df78ea1-9bba-4991-868f-48d68e759050)) + ) + + (symbol (lib_id "power:GND") (at 14.605 133.35 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid ee9b66dd-4faa-43da-869b-1ce25cc7ae2f) + (property "Reference" "#PWR?" (id 0) (at 14.605 139.7 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 14.605 138.43 0)) + (property "Footprint" "" (id 2) (at 14.605 133.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 14.605 133.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid be976913-5bed-4050-9fa8-dcf42060a9c1)) + ) + + (sheet_instances + (path "/" (page "1")) + ) + + (symbol_instances + (path "/574f0cd7-4f5a-4fd4-9005-fc45d8a0d960" + (reference "#PWR01") (unit 1) (value "GND") (footprint "") + ) + (path "/c40dac7a-6e4b-4096-b52f-edb7ec9cb3b2" + (reference "#PWR02") (unit 1) (value "GND") (footprint "") + ) + (path "/9c0516cc-3f40-45fe-b195-d8db33a27cdd" + (reference "#PWR03") (unit 1) (value "GND") (footprint "") + ) + (path "/4fee6b83-5f12-4418-83ed-2774803956be" + (reference "#PWR04") (unit 1) (value "GND") (footprint "") + ) + (path "/56b82d6f-08dd-4a0a-bd4d-8e161541e4bf" + (reference "#PWR05") (unit 1) (value "GND") (footprint "") + ) + (path "/4c8d3429-c415-4367-a44a-fc1bf968c5b4" + (reference "#PWR06") (unit 1) (value "GND") (footprint "") + ) + (path "/aa82ad4f-5ecc-4369-a780-cf06bb10cdb0" + (reference "#PWR07") (unit 1) (value "GND") (footprint "") + ) + (path "/610374ad-71c2-4236-9105-05f3b73c72ec" + (reference "#PWR08") (unit 1) (value "GND") (footprint "") + ) + (path "/18a88cdc-8e27-451b-abe5-99ec4c2a108f" + (reference "#PWR?") (unit 1) (value "+3V3") (footprint "") + ) + (path "/8e850c5e-ee72-4d3d-8d0c-c81c6f8602e4" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/da440c22-0df4-4b7f-8046-fa1facb63f02" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/ee9b66dd-4faa-43da-869b-1ce25cc7ae2f" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/83e6c9e8-cf1c-4bee-a197-b11cec8dcf84" + (reference "J1") (unit 1) (value "DB15_Female_HighDensity_MountingHoles") (footprint "") + ) + (path "/a0eb9593-3322-4153-9b3d-fc9385acb14a" + (reference "J?") (unit 1) (value "SD_Card") (footprint "") + ) + (path "/e51c959f-a8c0-43ac-bd2e-265982ec9487" + (reference "J?") (unit 1) (value "Micro_SD_Card") (footprint "") + ) + (path "/0adac5e3-3d8a-43a6-b17d-8e16cf684c6e" + (reference "R1") (unit 1) (value "120") (footprint "") + ) + (path "/9e373180-e93e-4f4f-bb69-a31604a2ec88" + (reference "R2") (unit 1) (value "120") (footprint "") + ) + (path "/00a34619-4b85-4d3a-a21a-f8a6740a2565" + (reference "RN1") (unit 1) (value "1k") (footprint "") + ) + (path "/402d479d-b3fb-4e3f-8043-e07c5c382025" + (reference "RN2") (unit 1) (value "1k") (footprint "") + ) + (path "/7c69a070-d611-4829-91c9-d6c8bcababfb" + (reference "RN3") (unit 1) (value "2k") (footprint "") + ) + (path "/8195dcfa-90bd-4214-95e0-4ff112e7b91e" + (reference "RN4") (unit 1) (value "2k") (footprint "") + ) + (path "/4c5fec20-7362-4634-9a84-1e4aeb524405" + (reference "RN5") (unit 1) (value "1k") (footprint "") + ) + (path "/79bc1ad9-fa8c-403c-a93d-0dbf2f562882" + (reference "RN6") (unit 1) (value "2k") (footprint "") + ) + (path "/e79177f4-1eec-4664-b34c-b0db7e93f018" + (reference "U1") (unit 1) (value "T20BGA256_DEV_GPIO_1D1E") (footprint "Connector_PinSocket_2.54mm:PinSocket_2x18_P2.54mm_Vertical") + ) + (path "/18e6a82d-f9ae-4f72-b2c4-c51d742a18a0" + (reference "U2") (unit 1) (value "T20BGA256_DEV_GPIO_1B1C") (footprint "Connector_PinSocket_2.54mm:PinSocket_2x18_P2.54mm_Vertical") + ) + (path "/c3cf08d3-7b3d-4100-80a5-b4871588e46a" + (reference "U3") (unit 1) (value "T20BGA256_DEV_GPIO_3") (footprint "Connector_PinSocket_2.54mm:PinSocket_2x16_P2.54mm_Vertical") + ) + ) +) diff --git a/hw/efinix_shield/fp-info-cache b/hw/efinix_shield/fp-info-cache new file mode 100644 index 0000000..573541a --- /dev/null +++ b/hw/efinix_shield/fp-info-cache @@ -0,0 +1 @@ +0 diff --git a/hw/efinix_shield/sym-lib-table b/hw/efinix_shield/sym-lib-table new file mode 100644 index 0000000..8dc0c30 --- /dev/null +++ b/hw/efinix_shield/sym-lib-table @@ -0,0 +1,208 @@ +(sym_lib_table + (lib (name "4xxx")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/4xxx.kicad_sym")(options "")(descr "")) + (lib (name "4xxx_IEEE")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/4xxx_IEEE.kicad_sym")(options "")(descr "")) + (lib (name "74xGxx")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/74xGxx.kicad_sym")(options "")(descr "")) + (lib (name "74xx")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/74xx.kicad_sym")(options "")(descr "")) + (lib (name "74xx_IEEE")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/74xx_IEEE.kicad_sym")(options "")(descr "")) + (lib (name "Amplifier_Audio")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Amplifier_Audio.kicad_sym")(options "")(descr "")) + (lib (name "Amplifier_Buffer")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Amplifier_Buffer.kicad_sym")(options "")(descr "")) + (lib (name "Amplifier_Current")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Amplifier_Current.kicad_sym")(options "")(descr "")) + (lib (name "Amplifier_Difference")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Amplifier_Difference.kicad_sym")(options "")(descr "")) + (lib (name "Amplifier_Instrumentation")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Amplifier_Instrumentation.kicad_sym")(options "")(descr "")) + (lib (name "Amplifier_Operational")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Amplifier_Operational.kicad_sym")(options "")(descr "")) + (lib (name "Amplifier_Video")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Amplifier_Video.kicad_sym")(options "")(descr "")) + (lib (name "Analog")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Analog.kicad_sym")(options "")(descr "")) + (lib (name "Analog_ADC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Analog_ADC.kicad_sym")(options "")(descr "")) + (lib (name "Analog_DAC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Analog_DAC.kicad_sym")(options "")(descr "")) + (lib (name "Analog_Switch")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Analog_Switch.kicad_sym")(options "")(descr "")) + (lib (name "Audio")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Audio.kicad_sym")(options "")(descr "")) + (lib (name "Battery_Management")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Battery_Management.kicad_sym")(options "")(descr "")) + (lib (name "Buffer")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Buffer.kicad_sym")(options "")(descr "")) + (lib (name "Comparator")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Comparator.kicad_sym")(options "")(descr "")) + (lib (name "Connector")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Connector.kicad_sym")(options "")(descr "")) + (lib (name "Connector_Generic")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Connector_Generic.kicad_sym")(options "")(descr "")) + (lib (name "Connector_Generic_MountingPin")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Connector_Generic_MountingPin.kicad_sym")(options "")(descr "")) + (lib (name "Connector_Generic_Shielded")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Connector_Generic_Shielded.kicad_sym")(options "")(descr "")) + (lib (name "Converter_ACDC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Converter_ACDC.kicad_sym")(options "")(descr "")) + (lib (name "Converter_DCDC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Converter_DCDC.kicad_sym")(options "")(descr "")) + (lib (name "CPLD_Altera")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/CPLD_Altera.kicad_sym")(options "")(descr "")) + (lib (name "CPLD_Microchip")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/CPLD_Microchip.kicad_sym")(options "")(descr "")) + (lib (name "CPLD_Xilinx")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/CPLD_Xilinx.kicad_sym")(options "")(descr "")) + (lib (name "CPU")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/CPU.kicad_sym")(options "")(descr "")) + (lib (name "CPU_NXP_6800")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/CPU_NXP_6800.kicad_sym")(options "")(descr "")) + (lib (name "CPU_NXP_68000")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/CPU_NXP_68000.kicad_sym")(options "")(descr "")) + (lib (name "CPU_NXP_IMX")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/CPU_NXP_IMX.kicad_sym")(options "")(descr "")) + (lib (name "CPU_PowerPC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/CPU_PowerPC.kicad_sym")(options "")(descr "")) + (lib (name "Device")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Device.kicad_sym")(options "")(descr "")) + (lib (name "Diode")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Diode.kicad_sym")(options "")(descr "")) + (lib (name "Diode_Bridge")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Diode_Bridge.kicad_sym")(options "")(descr "")) + (lib (name "Diode_Laser")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Diode_Laser.kicad_sym")(options "")(descr "")) + (lib (name "Display_Character")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Display_Character.kicad_sym")(options "")(descr "")) + (lib (name "Display_Graphic")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Display_Graphic.kicad_sym")(options "")(descr "")) + (lib (name "Driver_Display")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Driver_Display.kicad_sym")(options "")(descr "")) + (lib (name "Driver_FET")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Driver_FET.kicad_sym")(options "")(descr "")) + (lib (name "Driver_Haptic")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Driver_Haptic.kicad_sym")(options "")(descr "")) + (lib (name "Driver_LED")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Driver_LED.kicad_sym")(options "")(descr "")) + (lib (name "Driver_Motor")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Driver_Motor.kicad_sym")(options "")(descr "")) + (lib (name "Driver_Relay")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Driver_Relay.kicad_sym")(options "")(descr "")) + (lib (name "Driver_TEC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Driver_TEC.kicad_sym")(options "")(descr "")) + (lib (name "DSP_AnalogDevices")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/DSP_AnalogDevices.kicad_sym")(options "")(descr "")) + (lib (name "DSP_Freescale")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/DSP_Freescale.kicad_sym")(options "")(descr "")) + (lib (name "DSP_Microchip_DSPIC33")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/DSP_Microchip_DSPIC33.kicad_sym")(options "")(descr "")) + (lib (name "DSP_Motorola")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/DSP_Motorola.kicad_sym")(options "")(descr "")) + (lib (name "DSP_Texas")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/DSP_Texas.kicad_sym")(options "")(descr "")) + (lib (name "Fiber_Optic")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Fiber_Optic.kicad_sym")(options "")(descr "")) + (lib (name "Filter")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Filter.kicad_sym")(options "")(descr "")) + (lib (name "FPGA_Lattice")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/FPGA_Lattice.kicad_sym")(options "")(descr "")) + (lib (name "FPGA_Microsemi")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/FPGA_Microsemi.kicad_sym")(options "")(descr "")) + (lib (name "FPGA_Xilinx")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/FPGA_Xilinx.kicad_sym")(options "")(descr "")) + (lib (name "FPGA_Xilinx_Artix7")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/FPGA_Xilinx_Artix7.kicad_sym")(options "")(descr "")) + (lib (name "FPGA_Xilinx_Kintex7")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/FPGA_Xilinx_Kintex7.kicad_sym")(options "")(descr "")) + (lib (name "FPGA_Xilinx_Spartan6")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/FPGA_Xilinx_Spartan6.kicad_sym")(options "")(descr "")) + (lib (name "FPGA_Xilinx_Virtex5")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/FPGA_Xilinx_Virtex5.kicad_sym")(options "")(descr "")) + (lib (name "FPGA_Xilinx_Virtex6")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/FPGA_Xilinx_Virtex6.kicad_sym")(options "")(descr "")) + (lib (name "FPGA_Xilinx_Virtex7")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/FPGA_Xilinx_Virtex7.kicad_sym")(options "")(descr "")) + (lib (name "GPU")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/GPU.kicad_sym")(options "")(descr "")) + (lib (name "Graphic")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Graphic.kicad_sym")(options "")(descr "")) + (lib (name "Header")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Header.kicad_sym")(options "")(descr "")) + (lib (name "IC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/IC.kicad_sym")(options "")(descr "")) + (lib (name "Interface")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface.kicad_sym")(options "")(descr "")) + (lib (name "Interface_CAN_LIN")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_CAN_LIN.kicad_sym")(options "")(descr "")) + (lib (name "Interface_CurrentLoop")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_CurrentLoop.kicad_sym")(options "")(descr "")) + (lib (name "Interface_Ethernet")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_Ethernet.kicad_sym")(options "")(descr "")) + (lib (name "Interface_Expansion")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_Expansion.kicad_sym")(options "")(descr "")) + (lib (name "Interface_HDMI")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_HDMI.kicad_sym")(options "")(descr "")) + (lib (name "Interface_HID")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_HID.kicad_sym")(options "")(descr "")) + (lib (name "Interface_LineDriver")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_LineDriver.kicad_sym")(options "")(descr "")) + (lib (name "Interface_Optical")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_Optical.kicad_sym")(options "")(descr "")) + (lib (name "Interface_Telecom")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_Telecom.kicad_sym")(options "")(descr "")) + (lib (name "Interface_UART")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_UART.kicad_sym")(options "")(descr "")) + (lib (name "Interface_USB")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Interface_USB.kicad_sym")(options "")(descr "")) + (lib (name "Isolator")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Isolator.kicad_sym")(options "")(descr "")) + (lib (name "Isolator_Analog")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Isolator_Analog.kicad_sym")(options "")(descr "")) + (lib (name "Jumper")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Jumper.kicad_sym")(options "")(descr "")) + (lib (name "LED")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/LED.kicad_sym")(options "")(descr "")) + (lib (name "Logic_LevelTranslator")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Logic_LevelTranslator.kicad_sym")(options "")(descr "")) + (lib (name "Logic_Programmable")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Logic_Programmable.kicad_sym")(options "")(descr "")) + (lib (name "MCU_AnalogDevices")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_AnalogDevices.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Cypress")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Cypress.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Dialog")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Dialog.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Espressif")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Espressif.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Intel")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Intel.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_8051")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_8051.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_ATmega")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_ATmega.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_ATtiny")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_ATtiny.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_AVR")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_AVR.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_PIC10")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_PIC10.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_PIC12")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_PIC12.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_PIC16")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_PIC16.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_PIC18")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_PIC18.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_PIC24")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_PIC24.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_PIC32")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_PIC32.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_SAMA")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_SAMA.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_SAMD")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_SAMD.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_SAME")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_SAME.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_SAML")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_SAML.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Microchip_SAMV")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Microchip_SAMV.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Module")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Module.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Nordic")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Nordic.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_ColdFire")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_ColdFire.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_HC11")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_HC11.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_HC12")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_HC12.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_HCS12")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_HCS12.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_Kinetis")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_Kinetis.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_LPC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_LPC.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_MAC7100")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_MAC7100.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_MCore")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_MCore.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_NTAG")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_NTAG.kicad_sym")(options "")(descr "")) + (lib (name "MCU_NXP_S08")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_NXP_S08.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Parallax")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Parallax.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Renesas_Synergy_S1")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Renesas_Synergy_S1.kicad_sym")(options "")(descr "")) + (lib (name "MCU_SiFive")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_SiFive.kicad_sym")(options "")(descr "")) + (lib (name "MCU_SiliconLabs")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_SiliconLabs.kicad_sym")(options "")(descr "")) + (lib (name "MCU_STC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_STC.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM8")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM8.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32F0")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32F0.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32F1")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32F1.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32F2")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32F2.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32F3")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32F3.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32F4")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32F4.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32F7")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32F7.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32G0")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32G0.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32H7")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32H7.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32L0")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32L0.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32L1")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32L1.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32L4")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32L4.kicad_sym")(options "")(descr "")) + (lib (name "MCU_ST_STM32L4+")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_ST_STM32L4+.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Texas")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Texas.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Texas_MSP430")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Texas_MSP430.kicad_sym")(options "")(descr "")) + (lib (name "MCU_Texas_SimpleLink")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/MCU_Texas_SimpleLink.kicad_sym")(options "")(descr "")) + (lib (name "Mechanical")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Mechanical.kicad_sym")(options "")(descr "")) + (lib (name "Memory_EEPROM")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Memory_EEPROM.kicad_sym")(options "")(descr "")) + (lib (name "Memory_EPROM")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Memory_EPROM.kicad_sym")(options "")(descr "")) + (lib (name "Memory_Flash")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Memory_Flash.kicad_sym")(options "")(descr "")) + (lib (name "Memory_NVRAM")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Memory_NVRAM.kicad_sym")(options "")(descr "")) + (lib (name "Memory_RAM")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Memory_RAM.kicad_sym")(options "")(descr "")) + (lib (name "Memory_ROM")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Memory_ROM.kicad_sym")(options "")(descr "")) + (lib (name "Memory_UniqueID")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Memory_UniqueID.kicad_sym")(options "")(descr "")) + (lib (name "Motor")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Motor.kicad_sym")(options "")(descr "")) + (lib (name "Oscillator")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Oscillator.kicad_sym")(options "")(descr "")) + (lib (name "Potentiometer_Digital")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Potentiometer_Digital.kicad_sym")(options "")(descr "")) + (lib (name "power")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/power.kicad_sym")(options "")(descr "")) + (lib (name "Power_Management")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Power_Management.kicad_sym")(options "")(descr "")) + (lib (name "Power_Protection")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Power_Protection.kicad_sym")(options "")(descr "")) + (lib (name "Power_Supervisor")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Power_Supervisor.kicad_sym")(options "")(descr "")) + (lib (name "pspice")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/pspice.kicad_sym")(options "")(descr "")) + (lib (name "Reference_Current")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Reference_Current.kicad_sym")(options "")(descr "")) + (lib (name "Reference_Voltage")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Reference_Voltage.kicad_sym")(options "")(descr "")) + (lib (name "Regulator_Controller")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Regulator_Controller.kicad_sym")(options "")(descr "")) + (lib (name "Regulator_Current")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Regulator_Current.kicad_sym")(options "")(descr "")) + (lib (name "Regulator_Linear")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Regulator_Linear.kicad_sym")(options "")(descr "")) + (lib (name "Regulator_SwitchedCapacitor")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Regulator_SwitchedCapacitor.kicad_sym")(options "")(descr "")) + (lib (name "Regulator_Switching")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Regulator_Switching.kicad_sym")(options "")(descr "")) + (lib (name "Relay")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Relay.kicad_sym")(options "")(descr "")) + (lib (name "Relay_SolidState")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Relay_SolidState.kicad_sym")(options "")(descr "")) + (lib (name "RF")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF.kicad_sym")(options "")(descr "")) + (lib (name "RF_AM_FM")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_AM_FM.kicad_sym")(options "")(descr "")) + (lib (name "RF_Amplifier")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_Amplifier.kicad_sym")(options "")(descr "")) + (lib (name "RF_Bluetooth")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_Bluetooth.kicad_sym")(options "")(descr "")) + (lib (name "RF_Filter")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_Filter.kicad_sym")(options "")(descr "")) + (lib (name "RF_GPS")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_GPS.kicad_sym")(options "")(descr "")) + (lib (name "RF_GSM")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_GSM.kicad_sym")(options "")(descr "")) + (lib (name "RF_Mixer")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_Mixer.kicad_sym")(options "")(descr "")) + (lib (name "RF_Module")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_Module.kicad_sym")(options "")(descr "")) + (lib (name "RF_NFC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_NFC.kicad_sym")(options "")(descr "")) + (lib (name "RF_RFID")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_RFID.kicad_sym")(options "")(descr "")) + (lib (name "RF_Switch")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_Switch.kicad_sym")(options "")(descr "")) + (lib (name "RF_WiFi")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_WiFi.kicad_sym")(options "")(descr "")) + (lib (name "RF_ZigBee")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/RF_ZigBee.kicad_sym")(options "")(descr "")) + (lib (name "Security")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Security.kicad_sym")(options "")(descr "")) + (lib (name "Sensor")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Audio")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Audio.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Current")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Current.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Distance")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Distance.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Gas")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Gas.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Humidity")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Humidity.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Magnetic")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Magnetic.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Motion")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Motion.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Optical")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Optical.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Pressure")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Pressure.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Proximity")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Proximity.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Temperature")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Temperature.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Touch")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Touch.kicad_sym")(options "")(descr "")) + (lib (name "Sensor_Voltage")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Sensor_Voltage.kicad_sym")(options "")(descr "")) + (lib (name "Simulation_SPICE")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Simulation_SPICE.kicad_sym")(options "")(descr "")) + (lib (name "Switch")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Switch.kicad_sym")(options "")(descr "")) + (lib (name "Timer")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Timer.kicad_sym")(options "")(descr "")) + (lib (name "Timer_PLL")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Timer_PLL.kicad_sym")(options "")(descr "")) + (lib (name "Timer_RTC")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Timer_RTC.kicad_sym")(options "")(descr "")) + (lib (name "Transformer")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Transformer.kicad_sym")(options "")(descr "")) + (lib (name "Transistor_Array")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Transistor_Array.kicad_sym")(options "")(descr "")) + (lib (name "Transistor_BJT")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Transistor_BJT.kicad_sym")(options "")(descr "")) + (lib (name "Transistor_FET")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Transistor_FET.kicad_sym")(options "")(descr "")) + (lib (name "Transistor_IGBT")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Transistor_IGBT.kicad_sym")(options "")(descr "")) + (lib (name "Transistor_Power_Module")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Transistor_Power_Module.kicad_sym")(options "")(descr "")) + (lib (name "Triac_Thyristor")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Triac_Thyristor.kicad_sym")(options "")(descr "")) + (lib (name "Valve")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Valve.kicad_sym")(options "")(descr "")) + (lib (name "Video")(type "KiCad")(uri "/home/byron/Projects/super6502/hw/kicad_library/symbols/Video.kicad_sym")(options "")(descr "")) +) diff --git a/hw/kicad_library b/hw/kicad_library new file mode 160000 index 0000000..5733f37 --- /dev/null +++ b/hw/kicad_library @@ -0,0 +1 @@ +Subproject commit 5733f3776534107de5533b0e5c1d09ed32643e7e diff --git a/sw/cc65 b/sw/cc65 index 23a984f..9dc33cf 160000 --- a/sw/cc65 +++ b/sw/cc65 @@ -1 +1 @@ -Subproject commit 23a984f0ddd00712bb29bc0568e2e14cca637ed8 +Subproject commit 9dc33cff22a9cf7e5bdd67324694882bd322e53a