Merge branch 'first_start' into 'master'

Get the FPGA part working

See merge request bslathi19/super6502!1
This commit is contained in:
Byron Lathi
2022-03-13 01:44:41 +00:00
38 changed files with 808 additions and 15758 deletions

6
hw/fpga/.gitignore vendored
View File

@@ -26,6 +26,10 @@
# *.vhd
# *.v
# Don't keep signal tap files.
*.stp
*.vcd
# ignore Quartus II generated files
*_generation_script*
*_inst.vhd
@@ -59,7 +63,7 @@
# ignore Quartus II generated folders
*/db/
*/incremental_db/
*/simulation/
*/*/simulation/
*/timing/
*/testbench/
*/*_sim/

27
hw/fpga/HexDriver.sv Normal file
View File

@@ -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

32
hw/fpga/SevenSeg.sv Normal file
View File

@@ -0,0 +1,32 @@
module SevenSeg(
input clk,
input rst,
input rw,
input [7:0] data,
input cs,
input addr,
output logic [6:0] HEX0, HEX1, HEX2, HEX3
);
logic [7:0] _data [2];
always_ff @(posedge clk) begin
if (rst)
_data = '{default:'0};
if (~rw & cs)
_data[addr] <= data;
end
logic [3:0] hex_4[3:0];
assign {hex_4[3], hex_4[2]} = _data[1];
assign {hex_4[1], hex_4[0]} = _data[0];
HexDriver hex_drivers[3:0] (hex_4, {HEX3, HEX2, HEX1, HEX0});
endmodule

View File

@@ -2,11 +2,11 @@ module addr_decode(
input logic [15:0] addr,
output logic ram_cs,
output logic rom_cs,
output logic io_cs
output logic hex_cs
);
assign rom_cs = addr[15];
assign ram_cs = ~addr[15] && addr < 16'h7ff0;
assign io_cs = addr >= 16'h7ff0 && addr < 16'h8000;
assign hex_cs = addr >= 16'h7ff0 && addr < 16'h7ff2;
endmodule

9
hw/fpga/cpu_clk.ppf Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE pinplan>
<pinplan intended_family="MAX 10" variation_name="cpu_clk" megafunction_name="ALTPLL" specifies="all_ports">
<global>
<pin name="inclk0" direction="input" scope="external" source="clock" />
<pin name="c0" direction="output" scope="external" source="clock" />
</global>
</pinplan>

5
hw/fpga/cpu_clk.qip Normal file
View File

@@ -0,0 +1,5 @@
set_global_assignment -name IP_TOOL_NAME "ALTPLL"
set_global_assignment -name IP_TOOL_VERSION "18.1"
set_global_assignment -name IP_GENERATED_DEVICE_FAMILY "{MAX 10}"
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "cpu_clk.v"]
set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "cpu_clk.ppf"]

305
hw/fpga/cpu_clk.v Normal file
View File

@@ -0,0 +1,305 @@
// megafunction wizard: %ALTPLL%
// GENERATION: STANDARD
// VERSION: WM1.0
// MODULE: altpll
// ============================================================
// File Name: cpu_clk.v
// Megafunction Name(s):
// altpll
//
// Simulation Library Files(s):
// altera_mf
// ============================================================
// ************************************************************
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
//
// 18.1.0 Build 625 09/12/2018 SJ Lite Edition
// ************************************************************
//Copyright (C) 2018 Intel Corporation. All rights reserved.
//Your use of Intel Corporation's design tools, logic functions
//and other software and tools, and its AMPP partner logic
//functions, and any output files from any of the foregoing
//(including device programming or simulation files), and any
//associated documentation or information are expressly subject
//to the terms and conditions of the Intel Program License
//Subscription Agreement, the Intel Quartus Prime License Agreement,
//the Intel FPGA IP License Agreement, or other applicable license
//agreement, including, without limitation, that your use is for
//the sole purpose of programming logic devices manufactured by
//Intel and sold by Intel or its authorized distributors. Please
//refer to the applicable agreement for further details.
// synopsys translate_off
`timescale 1 ps / 1 ps
// synopsys translate_on
module cpu_clk (
inclk0,
c0);
input inclk0;
output c0;
wire [4:0] sub_wire0;
wire [0:0] sub_wire4 = 1'h0;
wire [0:0] sub_wire1 = sub_wire0[0:0];
wire c0 = sub_wire1;
wire sub_wire2 = inclk0;
wire [1:0] sub_wire3 = {sub_wire4, sub_wire2};
altpll altpll_component (
.inclk (sub_wire3),
.clk (sub_wire0),
.activeclock (),
.areset (1'b0),
.clkbad (),
.clkena ({6{1'b1}}),
.clkloss (),
.clkswitch (1'b0),
.configupdate (1'b0),
.enable0 (),
.enable1 (),
.extclk (),
.extclkena ({4{1'b1}}),
.fbin (1'b1),
.fbmimicbidir (),
.fbout (),
.fref (),
.icdrclk (),
.locked (),
.pfdena (1'b1),
.phasecounterselect ({4{1'b1}}),
.phasedone (),
.phasestep (1'b1),
.phaseupdown (1'b1),
.pllena (1'b1),
.scanaclr (1'b0),
.scanclk (1'b0),
.scanclkena (1'b1),
.scandata (1'b0),
.scandataout (),
.scandone (),
.scanread (1'b0),
.scanwrite (1'b0),
.sclkout0 (),
.sclkout1 (),
.vcooverrange (),
.vcounderrange ());
defparam
altpll_component.bandwidth_type = "AUTO",
altpll_component.clk0_divide_by = 50,
altpll_component.clk0_duty_cycle = 50,
altpll_component.clk0_multiply_by = 1,
altpll_component.clk0_phase_shift = "0",
altpll_component.compensate_clock = "CLK0",
altpll_component.inclk0_input_frequency = 20000,
altpll_component.intended_device_family = "MAX 10",
altpll_component.lpm_hint = "CBX_MODULE_PREFIX=cpu_clk",
altpll_component.lpm_type = "altpll",
altpll_component.operation_mode = "NORMAL",
altpll_component.pll_type = "AUTO",
altpll_component.port_activeclock = "PORT_UNUSED",
altpll_component.port_areset = "PORT_UNUSED",
altpll_component.port_clkbad0 = "PORT_UNUSED",
altpll_component.port_clkbad1 = "PORT_UNUSED",
altpll_component.port_clkloss = "PORT_UNUSED",
altpll_component.port_clkswitch = "PORT_UNUSED",
altpll_component.port_configupdate = "PORT_UNUSED",
altpll_component.port_fbin = "PORT_UNUSED",
altpll_component.port_inclk0 = "PORT_USED",
altpll_component.port_inclk1 = "PORT_UNUSED",
altpll_component.port_locked = "PORT_UNUSED",
altpll_component.port_pfdena = "PORT_UNUSED",
altpll_component.port_phasecounterselect = "PORT_UNUSED",
altpll_component.port_phasedone = "PORT_UNUSED",
altpll_component.port_phasestep = "PORT_UNUSED",
altpll_component.port_phaseupdown = "PORT_UNUSED",
altpll_component.port_pllena = "PORT_UNUSED",
altpll_component.port_scanaclr = "PORT_UNUSED",
altpll_component.port_scanclk = "PORT_UNUSED",
altpll_component.port_scanclkena = "PORT_UNUSED",
altpll_component.port_scandata = "PORT_UNUSED",
altpll_component.port_scandataout = "PORT_UNUSED",
altpll_component.port_scandone = "PORT_UNUSED",
altpll_component.port_scanread = "PORT_UNUSED",
altpll_component.port_scanwrite = "PORT_UNUSED",
altpll_component.port_clk0 = "PORT_USED",
altpll_component.port_clk1 = "PORT_UNUSED",
altpll_component.port_clk2 = "PORT_UNUSED",
altpll_component.port_clk3 = "PORT_UNUSED",
altpll_component.port_clk4 = "PORT_UNUSED",
altpll_component.port_clk5 = "PORT_UNUSED",
altpll_component.port_clkena0 = "PORT_UNUSED",
altpll_component.port_clkena1 = "PORT_UNUSED",
altpll_component.port_clkena2 = "PORT_UNUSED",
altpll_component.port_clkena3 = "PORT_UNUSED",
altpll_component.port_clkena4 = "PORT_UNUSED",
altpll_component.port_clkena5 = "PORT_UNUSED",
altpll_component.port_extclk0 = "PORT_UNUSED",
altpll_component.port_extclk1 = "PORT_UNUSED",
altpll_component.port_extclk2 = "PORT_UNUSED",
altpll_component.port_extclk3 = "PORT_UNUSED",
altpll_component.width_clock = 5;
endmodule
// ============================================================
// CNX file retrieval info
// ============================================================
// Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0"
// Retrieval info: PRIVATE: BANDWIDTH STRING "1.000"
// Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz"
// Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low"
// Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1"
// Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0"
// Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0"
// Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0"
// Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0"
// Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0"
// Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0"
// Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0"
// Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0"
// Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0"
// Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "7"
// Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "1"
// Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000"
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "1.000000"
// Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0"
// Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0"
// Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1"
// Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0"
// Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0"
// Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575"
// Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1"
// Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "50.000"
// Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz"
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000"
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1"
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1"
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz"
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "MAX 10"
// Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1"
// Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "0"
// Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1"
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "Not Available"
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0"
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg"
// Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any"
// Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0"
// Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "1"
// Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1"
// Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "1.00000000"
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "1"
// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz"
// Retrieval info: PRIVATE: PHASE_RECONFIG_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: PHASE_RECONFIG_INPUTS_CHECK STRING "0"
// Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000"
// Retrieval info: PRIVATE: PHASE_SHIFT_STEP_ENABLED_CHECK STRING "0"
// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg"
// Retrieval info: PRIVATE: PLL_ADVANCED_PARAM_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1"
// Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PLL_FBMIMIC_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_TARGET_HARCOPY_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0"
// Retrieval info: PRIVATE: RECONFIG_FILE STRING "cpu_clk.mif"
// Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0"
// Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: SELF_RESET_LOCK_LOSS STRING "0"
// Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0"
// Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0"
// Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000"
// Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz"
// Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500"
// Retrieval info: PRIVATE: SPREAD_USE STRING "0"
// Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0"
// Retrieval info: PRIVATE: STICKY_CLK0 STRING "1"
// Retrieval info: PRIVATE: STICKY_CLK1 STRING "0"
// Retrieval info: PRIVATE: STICKY_CLK2 STRING "0"
// Retrieval info: PRIVATE: STICKY_CLK3 STRING "0"
// Retrieval info: PRIVATE: STICKY_CLK4 STRING "0"
// Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1"
// Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
// Retrieval info: PRIVATE: USE_CLK0 STRING "1"
// Retrieval info: PRIVATE: USE_CLKENA0 STRING "0"
// Retrieval info: PRIVATE: USE_MIL_SPEED_GRADE NUMERIC "0"
// Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0"
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
// Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO"
// Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "50"
// Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50"
// Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "1"
// Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0"
// Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0"
// Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "20000"
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "MAX 10"
// Retrieval info: CONSTANT: LPM_TYPE STRING "altpll"
// Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL"
// Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO"
// Retrieval info: CONSTANT: PORT_ACTIVECLOCK STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_ARESET STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKBAD0 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKBAD1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKLOSS STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKSWITCH STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CONFIGUPDATE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_FBIN STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_INCLK0 STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_INCLK1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PFDENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASECOUNTERSELECT STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASEDONE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASESTEP STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASEUPDOWN STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PLLENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANACLR STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANCLK STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANCLKENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANDATA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANDATAOUT STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANDONE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANREAD STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANWRITE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk0 STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_clk1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena0 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena4 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena5 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk0 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: WIDTH_CLOCK NUMERIC "5"
// Retrieval info: USED_PORT: @clk 0 0 5 0 OUTPUT_CLK_EXT VCC "@clk[4..0]"
// Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0"
// Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0"
// Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0
// Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0
// Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0
// Retrieval info: GEN_FILE: TYPE_NORMAL cpu_clk.v TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL cpu_clk.ppf TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL cpu_clk.inc FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL cpu_clk.cmp FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL cpu_clk.bsf FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL cpu_clk_inst.v FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL cpu_clk_bb.v FALSE
// Retrieval info: LIB_FILE: altera_mf
// Retrieval info: CBX_MODULE_PREFIX: ON

View File

@@ -1,12 +1,12 @@
ADDRESS_ACLR_A=NONE
CLOCK_ENABLE_INPUT_A=BYPASS
CLOCK_ENABLE_OUTPUT_A=BYPASS
INIT_FILE=../../sw/bootrom.hex
INTENDED_DEVICE_FAMILY="MAX 10"
NUMWORDS_A=32768
OPERATION_MODE=SINGLE_PORT
OPERATION_MODE=ROM
OUTDATA_ACLR_A=NONE
OUTDATA_REG_A=UNREGISTERED
POWER_UP_UNINITIALIZED=FALSE
READ_DURING_WRITE_MODE_PORT_A=NEW_DATA_NO_NBE_READ
WIDTHAD_A=15
WIDTH_A=8
WIDTH_BYTEENA_A=1

View File

@@ -7,7 +7,9 @@ timeprecision 1ns;
logic [15:0] addr;
logic ram_cs;
logic rom_cs;
logic io_cs;
logic hex_cs;
int cs_count = ram_cs + rom_cs + hex_cs;
addr_decode dut(.*);
@@ -16,13 +18,16 @@ initial begin : TEST_VECTORS
for (int i = 0; i < 2**16; i++) begin
addr <= i;
#1
assert(cs_count < 2)
else
$error("Multiple chip selects present!");
if (i < 16'h7ff0) begin
assert(ram_cs == '1)
else
$error("Bad CS! addr=%4x should have ram_cs!", addr);
end
if (i >= 16'h7ff0 && i < 16'h8000) begin
assert(io_cs == '1)
if (i >= 16'h7ff0 && i < 16'h7ff2) begin
assert(hex_cs == '1)
else
$error("Bad CS! addr=%4x should have io_cs!", addr);
end

View File

@@ -0,0 +1,13 @@
/* Quartus Prime Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition */
JedecChain;
FileRevision(JESD32A);
DefaultMfr(6E);
P ActionCode(Cfg)
Device PartName(10M50DAF484) Path("/home/byron/Projects/super6502/hw/fpga/output_files/") File("super6502.sof") MfrSpec(OpMask(1));
ChainEnd;
AlteraBegin;
ChainType(JTAG);
AlteraEnd;

View File

@@ -84,9 +84,9 @@ module rom (
altsyncram_component.clock_enable_input_a = "BYPASS",
altsyncram_component.clock_enable_output_a = "BYPASS",
`ifdef NO_PLI
altsyncram_component.init_file = "boot.rif"
altsyncram_component.init_file = "../../sw/bootrom.rif"
`else
altsyncram_component.init_file = "boot.hex"
altsyncram_component.init_file = "../../sw/bootrom.hex"
`endif
,
altsyncram_component.intended_device_family = "MAX 10",
@@ -123,7 +123,7 @@ endmodule
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "1"
// Retrieval info: PRIVATE: JTAG_ID STRING "ROM0"
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
// Retrieval info: PRIVATE: MIFfilename STRING "boot.hex"
// Retrieval info: PRIVATE: MIFfilename STRING "../../sw/bootrom.hex"
// Retrieval info: PRIVATE: NUMWORDS_A NUMERIC "32768"
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
// Retrieval info: PRIVATE: RegAddr NUMERIC "1"
@@ -138,7 +138,7 @@ endmodule
// Retrieval info: CONSTANT: ADDRESS_ACLR_A STRING "NONE"
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_A STRING "BYPASS"
// Retrieval info: CONSTANT: INIT_FILE STRING "boot.hex"
// Retrieval info: CONSTANT: INIT_FILE STRING "../../sw/bootrom.hex"
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "MAX 10"
// Retrieval info: CONSTANT: LPM_HINT STRING "ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=ROM0"
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"

View File

@@ -1,6 +1,8 @@
# ignore ModelSim generated files and directories (temp files and so on)
[_@]*
*.ini
# ignore compilation output of ModelSim
*.mti
*.dat
@@ -21,3 +23,7 @@ cov*/
transcript*
sc_dpiheader.h
vsim.dbg
*.sft
*.svo
*.xrf

View File

@@ -1,324 +0,0 @@
; Copyright 1991-2009 Mentor Graphics Corporation
;
; All Rights Reserved.
;
; THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS THE PROPERTY OF
; MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
;
[Library]
others = $MODEL_TECH/../modelsim.ini
; Altera Primitive libraries
;
; VHDL Section
;
;
; Verilog Section
;
work = rtl_work
[vcom]
; VHDL93 variable selects language version as the default.
; Default is VHDL-2002.
; Value of 0 or 1987 for VHDL-1987.
; Value of 1 or 1993 for VHDL-1993.
; Default or value of 2 or 2002 for VHDL-2002.
; Default or value of 3 or 2008 for VHDL-2008.
VHDL93 = 2002
; Show source line containing error. Default is off.
; Show_source = 1
; Turn off unbound-component warnings. Default is on.
; Show_Warning1 = 0
; Turn off process-without-a-wait-statement warnings. Default is on.
; Show_Warning2 = 0
; Turn off null-range warnings. Default is on.
; Show_Warning3 = 0
; Turn off no-space-in-time-literal warnings. Default is on.
; Show_Warning4 = 0
; Turn off multiple-drivers-on-unresolved-signal warnings. Default is on.
; Show_Warning5 = 0
; Turn off optimization for IEEE std_logic_1164 package. Default is on.
; Optimize_1164 = 0
; Turn on resolving of ambiguous function overloading in favor of the
; "explicit" function declaration (not the one automatically created by
; the compiler for each type declaration). Default is off.
; The .ini file has Explicit enabled so that std_logic_signed/unsigned
; will match the behavior of synthesis tools.
Explicit = 1
; Turn off acceleration of the VITAL packages. Default is to accelerate.
; NoVital = 1
; Turn off VITAL compliance checking. Default is checking on.
; NoVitalCheck = 1
; Ignore VITAL compliance checking errors. Default is to not ignore.
; IgnoreVitalErrors = 1
; Turn off VITAL compliance checking warnings. Default is to show warnings.
; Show_VitalChecksWarnings = 0
; Keep silent about case statement static warnings.
; Default is to give a warning.
; NoCaseStaticError = 1
; Keep silent about warnings caused by aggregates that are not locally static.
; Default is to give a warning.
; NoOthersStaticError = 1
; Turn off inclusion of debugging info within design units.
; Default is to include debugging info.
; NoDebug = 1
; Turn off "Loading..." messages. Default is messages on.
; Quiet = 1
; Turn on some limited synthesis rule compliance checking. Checks only:
; -- signals used (read) by a process must be in the sensitivity list
; CheckSynthesis = 1
; Activate optimizations on expressions that do not involve signals,
; waits, or function/procedure/task invocations. Default is off.
; ScalarOpts = 1
; Require the user to specify a configuration for all bindings,
; and do not generate a compile time default binding for the
; component. This will result in an elaboration error of
; 'component not bound' if the user fails to do so. Avoids the rare
; issue of a false dependency upon the unused default binding.
; RequireConfigForAllDefaultBinding = 1
; Inhibit range checking on subscripts of arrays. Range checking on
; scalars defined with subtypes is inhibited by default.
; NoIndexCheck = 1
; Inhibit range checks on all (implicit and explicit) assignments to
; scalar objects defined with subtypes.
; NoRangeCheck = 1
[vlog]
; Turn off inclusion of debugging info within design units.
; Default is to include debugging info.
; NoDebug = 1
; Turn off "loading..." messages. Default is messages on.
; Quiet = 1
; Turn on Verilog hazard checking (order-dependent accessing of global vars).
; Default is off.
; Hazard = 1
; Turn on converting regular Verilog identifiers to uppercase. Allows case
; insensitivity for module names. Default is no conversion.
; UpCase = 1
; Turn on incremental compilation of modules. Default is off.
; Incremental = 1
; Turns on lint-style checking.
; Show_Lint = 1
[vsim]
; Simulator resolution
; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100.
Resolution = ps
; User time unit for run commands
; Set to default, fs, ps, ns, us, ms, or sec. The default is to use the
; unit specified for Resolution. For example, if Resolution is 100ps,
; then UserTimeUnit defaults to ps.
; Should generally be set to default.
UserTimeUnit = default
; Default run length
RunLength = 100
; Maximum iterations that can be run without advancing simulation time
IterationLimit = 5000
; Directive to license manager:
; vhdl Immediately reserve a VHDL license
; vlog Immediately reserve a Verilog license
; plus Immediately reserve a VHDL and Verilog license
; nomgc Do not look for Mentor Graphics Licenses
; nomti Do not look for Model Technology Licenses
; noqueue Do not wait in the license queue when a license isn't available
; viewsim Try for viewer license but accept simulator license(s) instead
; of queuing for viewer license
; License = plus
; Stop the simulator after a VHDL/Verilog assertion message
; 0 = Note 1 = Warning 2 = Error 3 = Failure 4 = Fatal
BreakOnAssertion = 3
; Assertion Message Format
; %S - Severity Level
; %R - Report Message
; %T - Time of assertion
; %D - Delta
; %I - Instance or Region pathname (if available)
; %% - print '%' character
; AssertionFormat = "** %S: %R\n Time: %T Iteration: %D%I\n"
; Assertion File - alternate file for storing VHDL/Verilog assertion messages
; AssertFile = assert.log
; Default radix for all windows and commands...
; Set to symbolic, ascii, binary, octal, decimal, hex, unsigned
DefaultRadix = symbolic
; VSIM Startup command
; Startup = do startup.do
; File for saving command transcript
TranscriptFile = transcript
; File for saving command history
; CommandHistory = cmdhist.log
; Specify whether paths in simulator commands should be described
; in VHDL or Verilog format.
; For VHDL, PathSeparator = /
; For Verilog, PathSeparator = .
; Must not be the same character as DatasetSeparator.
PathSeparator = /
; Specify the dataset separator for fully rooted contexts.
; The default is ':'. For example, sim:/top
; Must not be the same character as PathSeparator.
DatasetSeparator = :
; Disable VHDL assertion messages
; IgnoreNote = 1
; IgnoreWarning = 1
; IgnoreError = 1
; IgnoreFailure = 1
; Default force kind. May be freeze, drive, deposit, or default
; or in other terms, fixed, wired, or charged.
; A value of "default" will use the signal kind to determine the
; force kind, drive for resolved signals, freeze for unresolved signals
; DefaultForceKind = freeze
; If zero, open files when elaborated; otherwise, open files on
; first read or write. Default is 0.
; DelayFileOpen = 1
; Control VHDL files opened for write.
; 0 = Buffered, 1 = Unbuffered
UnbufferedOutput = 0
; Control the number of VHDL files open concurrently.
; This number should always be less than the current ulimit
; setting for max file descriptors.
; 0 = unlimited
ConcurrentFileLimit = 40
; Control the number of hierarchical regions displayed as
; part of a signal name shown in the Wave window.
; A value of zero tells VSIM to display the full name.
; The default is 0.
; WaveSignalNameWidth = 0
; Turn off warnings from the std_logic_arith, std_logic_unsigned
; and std_logic_signed packages.
; StdArithNoWarnings = 1
; Turn off warnings from the IEEE numeric_std and numeric_bit packages.
; NumericStdNoWarnings = 1
; Control the format of the (VHDL) FOR generate statement label
; for each iteration. Do not quote it.
; The format string here must contain the conversion codes %s and %d,
; in that order, and no other conversion codes. The %s represents
; the generate_label; the %d represents the generate parameter value
; at a particular generate iteration (this is the position number if
; the generate parameter is of an enumeration type). Embedded whitespace
; is allowed (but discouraged); leading and trailing whitespace is ignored.
; Application of the format must result in a unique scope name over all
; such names in the design so that name lookup can function properly.
; GenerateFormat = %s__%d
; Specify whether checkpoint files should be compressed.
; The default is 1 (compressed).
; CheckpointCompressMode = 0
; List of dynamically loaded objects for Verilog PLI applications
; Veriuser = veriuser.sl
; Specify default options for the restart command. Options can be one
; or more of: -force -nobreakpoint -nolist -nolog -nowave
; DefaultRestartOptions = -force
; HP-UX 10.20 ONLY - Enable memory locking to speed up large designs
; (> 500 megabyte memory footprint). Default is disabled.
; Specify number of megabytes to lock.
; LockedMemory = 1000
; Turn on (1) or off (0) WLF file compression.
; The default is 1 (compress WLF file).
; WLFCompress = 0
; Specify whether to save all design hierarchy (1) in the WLF file
; or only regions containing logged signals (0).
; The default is 0 (save only regions with logged signals).
; WLFSaveAllRegions = 1
; WLF file time limit. Limit WLF file by time, as closely as possible,
; to the specified amount of simulation time. When the limit is exceeded
; the earliest times get truncated from the file.
; If both time and size limits are specified the most restrictive is used.
; UserTimeUnits are used if time units are not specified.
; The default is 0 (no limit). Example: WLFTimeLimit = {100 ms}
; WLFTimeLimit = 0
; WLF file size limit. Limit WLF file size, as closely as possible,
; to the specified number of megabytes. If both time and size limits
; are specified then the most restrictive is used.
; The default is 0 (no limit).
; WLFSizeLimit = 1000
; Specify whether or not a WLF file should be deleted when the
; simulation ends. A value of 1 will cause the WLF file to be deleted.
; The default is 0 (do not delete WLF file when simulation ends).
; WLFDeleteOnQuit = 1
; Automatic SDF compilation
; Disables automatic compilation of SDF files in flows that support it.
; Default is on, uncomment to turn off.
; NoAutoSDFCompile = 1
[lmc]
[msg_system]
; Change a message severity or suppress a message.
; The format is: <msg directive> = <msg number>[,<msg number>...]
; Examples:
; note = 3009
; warning = 3033
; error = 3010,3016
; fatal = 3016,3033
; suppress = 3009,3016,3043
; The command verror <msg number> can be used to get the complete
; description of a message.
; Control transcripting of elaboration/runtime messages.
; The default is to have messages appear in the transcript and
; recorded in the wlf file (messages that are recorded in the
; wlf file can be viewed in the MsgViewer). The other settings
; are to send messages only to the transcript or only to the
; wlf file. The valid values are
; both {default}
; tran {transcript only}
; wlf {wlf file only}
; msgmode = both

View File

@@ -1 +0,0 @@
set tool_name "ModelSim-Altera (SystemVerilog)"

File diff suppressed because it is too large Load Diff

View File

@@ -1,593 +0,0 @@
vendor_name = ModelSim
source_file = 1, /home/byron/Projects/super6502/hw/fpga/super6502.sv
source_file = 1, /home/byron/Projects/super6502/hw/fpga/ram.qip
source_file = 1, /home/byron/Projects/super6502/hw/fpga/ram.v
source_file = 1, /home/byron/Projects/super6502/hw/fpga/super6502.sdc
source_file = 1, /home/byron/Projects/super6502/hw/fpga/rom.qip
source_file = 1, /home/byron/Projects/super6502/hw/fpga/rom.v
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/altsyncram.tdf
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/stratix_ram_block.inc
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/lpm_mux.inc
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/lpm_decode.inc
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/aglobal181.inc
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/a_rdenreg.inc
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/altrom.inc
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/altram.inc
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/altdpram.inc
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/cbx.lst
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/altsyncram_okf1.tdf
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/decode_c7a.tdf
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/decode_5j9.tdf
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/mux_s1b.tdf
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/altsyncram_b7b1.tdf
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/altsyncram_kqc2.tdf
source_file = 1, /home/byron/Projects/super6502/hw/fpga/boot.hex
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/sld_mod_ram_rom.vhd
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/vhdl/ieee/prmtvs_b.vhd
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/vhdl/ieee/prmtvs_p.vhd
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/vhdl/ieee/timing_b.vhd
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/vhdl/ieee/timing_p.vhd
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/sld_jtag_endpoint_adapter.vhd
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/sld_jtag_endpoint_adapter_impl.sv
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/sld_rom_sr.vhd
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/sld_hub.vhd
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/ip/sld0cadc1a2/alt_sld_fab.v
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/ip/sld0cadc1a2/submodules/alt_sld_fab_alt_sld_fab.v
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/ip/sld0cadc1a2/submodules/alt_sld_fab_alt_sld_fab_ident.sv
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/ip/sld0cadc1a2/submodules/alt_sld_fab_alt_sld_fab_presplit.sv
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/ip/sld0cadc1a2/submodules/alt_sld_fab_alt_sld_fab_sldfabric.vhd
source_file = 1, /home/byron/Projects/super6502/hw/fpga/db/ip/sld0cadc1a2/submodules/alt_sld_fab_alt_sld_fab_splitter.sv
source_file = 1, /software/quartus-lite-18.1/quartus/libraries/megafunctions/sld_jtag_hub.vhd
design_name = super6502
instance = comp, \~QUARTUS_CREATED_GND~I , ~QUARTUS_CREATED_GND~I, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][6]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][6]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][7]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][7]~feeder, super6502, 1
instance = comp, \cpu_led~output , cpu_led~output, super6502, 1
instance = comp, \cpu_resb~output , cpu_resb~output, super6502, 1
instance = comp, \cpu_rdy~output , cpu_rdy~output, super6502, 1
instance = comp, \cpu_sob~output , cpu_sob~output, super6502, 1
instance = comp, \cpu_irqb~output , cpu_irqb~output, super6502, 1
instance = comp, \cpu_phi2~output , cpu_phi2~output, super6502, 1
instance = comp, \cpu_be~output , cpu_be~output, super6502, 1
instance = comp, \cpu_nmib~output , cpu_nmib~output, super6502, 1
instance = comp, \cpu_data[0]~output , cpu_data[0]~output, super6502, 1
instance = comp, \cpu_data[1]~output , cpu_data[1]~output, super6502, 1
instance = comp, \cpu_data[2]~output , cpu_data[2]~output, super6502, 1
instance = comp, \cpu_data[3]~output , cpu_data[3]~output, super6502, 1
instance = comp, \cpu_data[4]~output , cpu_data[4]~output, super6502, 1
instance = comp, \cpu_data[5]~output , cpu_data[5]~output, super6502, 1
instance = comp, \cpu_data[6]~output , cpu_data[6]~output, super6502, 1
instance = comp, \cpu_data[7]~output , cpu_data[7]~output, super6502, 1
instance = comp, \altera_reserved_tdo~output , altera_reserved_tdo~output, super6502, 1
instance = comp, \clk~input , clk~input, super6502, 1
instance = comp, \clk~inputclkctrl , clk~inputclkctrl, super6502, 1
instance = comp, \cpu_addr[13]~input , cpu_addr[13]~input, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_a[0] , boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_a[0], super6502, 1
instance = comp, \cpu_addr[15]~input , cpu_addr[15]~input, super6502, 1
instance = comp, \cpu_rwb~input , cpu_rwb~input, super6502, 1
instance = comp, \cpu_addr[14]~input , cpu_addr[14]~input, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|decode3|w_anode244w[2]~0 , main_memory|altsyncram_component|auto_generated|decode3|w_anode244w[2]~0, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|rden_decode|w_anode284w[2]~1 , main_memory|altsyncram_component|auto_generated|rden_decode|w_anode284w[2]~1, super6502, 1
instance = comp, \cpu_data[0]~input , cpu_data[0]~input, super6502, 1
instance = comp, \cpu_addr[0]~input , cpu_addr[0]~input, super6502, 1
instance = comp, \cpu_addr[1]~input , cpu_addr[1]~input, super6502, 1
instance = comp, \cpu_addr[2]~input , cpu_addr[2]~input, super6502, 1
instance = comp, \cpu_addr[3]~input , cpu_addr[3]~input, super6502, 1
instance = comp, \cpu_addr[4]~input , cpu_addr[4]~input, super6502, 1
instance = comp, \cpu_addr[5]~input , cpu_addr[5]~input, super6502, 1
instance = comp, \cpu_addr[6]~input , cpu_addr[6]~input, super6502, 1
instance = comp, \cpu_addr[7]~input , cpu_addr[7]~input, super6502, 1
instance = comp, \cpu_addr[8]~input , cpu_addr[8]~input, super6502, 1
instance = comp, \cpu_addr[9]~input , cpu_addr[9]~input, super6502, 1
instance = comp, \cpu_addr[10]~input , cpu_addr[10]~input, super6502, 1
instance = comp, \cpu_addr[11]~input , cpu_addr[11]~input, super6502, 1
instance = comp, \cpu_addr[12]~input , cpu_addr[12]~input, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a16 , main_memory|altsyncram_component|auto_generated|ram_block1a16, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_a[1]~feeder , boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_a[1]~feeder, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_a[1] , boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_a[1], super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|decode3|w_anode223w[2] , main_memory|altsyncram_component|auto_generated|decode3|w_anode223w[2], super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|rden_decode|w_anode261w[2]~0 , main_memory|altsyncram_component|auto_generated|rden_decode|w_anode261w[2]~0, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a0 , main_memory|altsyncram_component|auto_generated|ram_block1a0, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~2 , main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~2, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|decode3|w_anode236w[2]~0 , main_memory|altsyncram_component|auto_generated|decode3|w_anode236w[2]~0, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|rden_decode|w_anode284w[2]~0 , main_memory|altsyncram_component|auto_generated|rden_decode|w_anode284w[2]~0, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a8 , main_memory|altsyncram_component|auto_generated|ram_block1a8, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|decode3|w_anode252w[2]~0 , main_memory|altsyncram_component|auto_generated|decode3|w_anode252w[2]~0, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|rden_decode|w_anode284w[2]~2 , main_memory|altsyncram_component|auto_generated|rden_decode|w_anode284w[2]~2, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a24 , main_memory|altsyncram_component|auto_generated|ram_block1a24, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~3 , main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~3, super6502, 1
instance = comp, \altera_reserved_tms~input , altera_reserved_tms~input, super6502, 1
instance = comp, \altera_reserved_tck~input , altera_reserved_tck~input, super6502, 1
instance = comp, \altera_reserved_tdi~input , altera_reserved_tdi~input, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~6 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~6, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[6] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[6], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~7 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~7, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[7] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[7], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~8 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~8, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[8]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[8]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[8] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[8], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|node_ena_proc~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|node_ena_proc~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[9] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[9], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt~2 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|tms_cnt[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~9 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~9, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[10] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[10], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~10 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~10, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[11] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[11], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~11 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~11, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[12] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[12], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~12 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~12, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[13] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[13], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~13 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~13, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[14] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[14], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|virtual_ir_dr_scan_proc~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|virtual_ir_dr_scan_proc~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[15]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[15]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[15] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[15], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~2 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~3 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~3, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[3], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[0]~15 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[0]~15, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[1]~18 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[1]~18, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[2]~20 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[2]~20, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[3]~22 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[3]~22, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[4]~24 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[4]~24, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[5]~26 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[5]~26, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[6]~28 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[6]~28, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[7]~30 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[7]~30, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[8]~32 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[8]~32, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[9]~34 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[9]~34, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[10]~36 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[10]~36, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[11]~38 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[11]~38, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[12]~40 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[12]~40, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[13]~42 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[13]~42, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[14]~44 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[14]~44, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~0 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[1]~feeder , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[1]~feeder, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[1] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[9] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[9], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[8] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[8], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[7] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[7], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[6]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[6]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[6] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[6], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[5] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[5], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[4]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[4]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[4] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[4], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[3]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[3]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[2]~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[2]~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[1]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[1]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[0]~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[0]~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|jtag_ir_reg[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|Equal0~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|Equal0~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|Equal0~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|Equal0~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|Equal1~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|Equal1~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|virtual_ir_scan_reg , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|virtual_ir_scan_reg, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|reset_ena_reg_proc~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|reset_ena_reg_proc~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|reset_ena_reg~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|reset_ena_reg~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|reset_ena_reg , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|reset_ena_reg, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[1]~2 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[1]~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~4 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~4, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[4] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[4], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg~5 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg~5, super6502, 1
instance = comp, \~QIC_CREATED_GND~I , ~QIC_CREATED_GND~I, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[8] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[8], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[1]~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[1]~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[2]~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[2]~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[1]~3 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[1]~3, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[2]~4 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[2]~4, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[2]~5 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[2]~5, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|clr_reg_proc~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|clr_reg_proc~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|clr_reg , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|clr_reg, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[2]~2 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[2]~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg~6 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg~6, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_mode_reg[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3]~7 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3]~7, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3]~8 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3]~8, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[2]~feeder , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[2]~feeder, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[2] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3]~6 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3]~6, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3]~9 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3]~9, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][0]~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][0]~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|node_ena_proc~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|node_ena_proc~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|Equal0~2 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|Equal0~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|virtual_dr_scan_reg , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|virtual_dr_scan_reg, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|node_ena~2 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|node_ena~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|node_ena~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|node_ena~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|node_ena~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|node_ena~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|node_ena~3 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|node_ena~3, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|splitter_nodes_receive_0[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|splitter_nodes_receive_0[3], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~1 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~1, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[6] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[6], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg~13 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg~13, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[7] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[7], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[5] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[5], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg~12 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg~12, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[6] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[6], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[4]~feeder , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[4]~feeder, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[4] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[4], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg~11 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg~11, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[5] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[5], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[3] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg~10 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg~10, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[4] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[4], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][4]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][4]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][4] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][4], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|is_in_use_reg~0 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|is_in_use_reg~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|is_in_use_reg , boot_rom|altsyncram_component|auto_generated|mgl_prim2|is_in_use_reg, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg~3 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg~3, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][0], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~4 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~4, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][2]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][2]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][2], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_incr_addr~2 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_incr_addr~2, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_incr_addr~0 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_incr_addr~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][1], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~3 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~3, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[1]~0 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[1]~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[1] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[1], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[0]~2 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[0]~2, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[0] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[0], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[2]~1 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[2]~1, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[2] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_shift_cntr_reg[2], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_incr_addr~1 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_incr_addr~1, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[0]~17 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[0]~17, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[14] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[14], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[13] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[13], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[12] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[12], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[11] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[11], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[10] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[10], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[9] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[9], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[8] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[8], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[7] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[7], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[6] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[6], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[5] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[5], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[4] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[4], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[3] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[3], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[2] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[2], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[1] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[1], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[0] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_addr_reg[0], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[0] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ir_loaded_address_reg[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg~4 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg~4, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irsr_reg[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irsr_reg[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_bypass_reg~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_bypass_reg~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_bypass_reg , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_bypass_reg, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~9 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~9, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~10 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~10, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|clear_signal , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|clear_signal, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[0]~5 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[0]~5, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[1]~7 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[1]~7, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[4]~12 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[4]~12, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[1] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[1], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[2]~9 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[2]~9, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[2] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[2], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~7 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~7, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[3]~13 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[3]~13, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[3] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[3], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[4]~15 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[4]~15, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[4] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[4], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~3 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~3, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[4]~11 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[4]~11, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[0] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|word_counter[0], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~11 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~11, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~12 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~12, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~14 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~14, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~15 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~15, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~0 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~16 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~16, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~17 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~17, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~18 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~18, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[3]~6 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[3]~6, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[3] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[3], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~13 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~13, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[2] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[2], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~8 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~8, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~9 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~9, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~10 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~10, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[1] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[1], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~2 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~2, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~1 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~1, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~4 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~4, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~5 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR~5, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[0] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|\ram_rom_logic_gen:name_gen:info_rom_sr|WORD_SR[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][5] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][5], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|bypass_reg_out~0 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|bypass_reg_out~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|bypass_reg_out , boot_rom|altsyncram_component|auto_generated|mgl_prim2|bypass_reg_out, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|adapted_tdo~0 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|adapted_tdo~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~2 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|process_0~2, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode236w[2]~0 , boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode236w[2]~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a12 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a12, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_b[0]~feeder , boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_b[0]~feeder, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_b[0] , boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_b[0], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode252w[2] , boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode252w[2], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode252w[2]~0 , boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode252w[2]~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a28 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a28, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode223w[2] , boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode223w[2], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode223w[2]~0 , boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode223w[2]~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a4 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a4, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode244w[2] , boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode244w[2], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode244w[2]~0 , boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode244w[2]~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a20 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a20, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_b[1] , boot_rom|altsyncram_component|auto_generated|altsyncram1|address_reg_b[1], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[4]~8 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[4]~8, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[4]~9 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[4]~9, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a14 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a14, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a30 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a30, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a6 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a6, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a22 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a22, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[6]~12 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[6]~12, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[6]~13 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[6]~13, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a23 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a23, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a31 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a31, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a15 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a15, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a7 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a7, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[7]~14 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[7]~14, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[7]~15 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[7]~15, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~26 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~26, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[6]~19 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[6]~19, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[7] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[7], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~25 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~25, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[6] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[6], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a21 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a21, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a13 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a13, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a5 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a5, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[5]~10 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[5]~10, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a29 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a29, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[5]~11 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[5]~11, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~24 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~24, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[5] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[5], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~23 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~23, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[4] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[4], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a19 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a19, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a27 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a27, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a11 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a11, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a3 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a3, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[3]~6 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[3]~6, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[3]~7 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[3]~7, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~22 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~22, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[3] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[3], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a26 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a26, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a10 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a10, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a2 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a2, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a18 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a18, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[2]~4 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[2]~4, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[2]~5 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[2]~5, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~21 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~21, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[2] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[2], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a25 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a25, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a9 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a9, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a1 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a1, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[1]~2 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[1]~2, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a17 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a17, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[1]~3 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[1]~3, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~20 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~20, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[1] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[1], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a16 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a16, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a0 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[0]~0 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[0]~0, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a8 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a8, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a24 , boot_rom|altsyncram_component|auto_generated|altsyncram1|ram_block3a24, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[0]~1 , boot_rom|altsyncram_component|auto_generated|altsyncram1|mux7|result_node[0]~1, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~18 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg~18, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[0] , boot_rom|altsyncram_component|auto_generated|mgl_prim2|ram_rom_data_reg[0], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|adapted_tdo~1 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|adapted_tdo~1, super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|mgl_prim2|adapted_tdo~2 , boot_rom|altsyncram_component|auto_generated|mgl_prim2|adapted_tdo~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|virtual_ir_tdo_sel_reg[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|virtual_ir_tdo_sel_reg[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~7 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~7, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~12 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~12, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~2 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg_ena~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg_ena~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|clear_signal , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|clear_signal, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0]~11 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0]~11, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[1]~14 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[1]~14, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0]~23 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0]~23, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[2]~16 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[2]~16, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[3]~18 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[3]~18, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[4]~20 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[4]~20, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[4] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[4], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0]~13 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0]~13, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0]~22 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0]~22, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|word_counter[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~6 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~6, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~9 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~9, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~10 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~10, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~11 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~11, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[1]~12 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[1]~12, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~8 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~8, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~7 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~7, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~4 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~4, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~5 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR~5, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg|WORD_SR[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg~3 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg~3, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg~2 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_minor_ver_reg[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~3 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~3, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~4 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~4, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~5 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~5, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[0]~7 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[0]~7, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[2]~13 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[2]~13, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[3]~15 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[3]~15, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1]~10 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1]~10, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[4]~17 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[4]~17, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[4] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[4], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1]~9 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1]~9, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1]~19 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1]~19, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1]~11 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1]~11, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|mixer_addr_reg_internal[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~13 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~13, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~14 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~14, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[1]~4 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[1]~4, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[1]~5 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[1]~5, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[3]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[3]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[0]~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[0]~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[0]~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[0]~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[2]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[2]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[1]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[1]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[0]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[0]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|identity_contrib_shift_reg[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[0]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[0]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[0]~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[0]~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[0]~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[0]~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[1]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[1]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~6 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~6, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~7 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~7, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[1]~1 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[1]~1, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~11 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~11, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~12 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~12, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[2]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[2]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[2]~2 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[2]~2, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[3]~feeder , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[3]~feeder, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric_ident_writedata[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~8 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~8, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~9 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~9, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~10 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg~10, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[3]~3 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[3]~3, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_proc~0 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_proc~0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|hub_info_reg_ena , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|hub_info_reg_ena, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[3] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[3], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[2] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[2], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[1] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[1], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[0] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|design_hash_reg[0], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~6 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~6, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~8 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~8, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~11 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo_mux_out~11, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|tdo , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|tdo, super6502, 1
instance = comp, \altera_internal_jtag~TCKUTAPclkctrl , altera_internal_jtag~TCKUTAPclkctrl, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~5 , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state~5, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[5] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[5], super6502, 1
instance = comp, \boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode236w[2] , boot_rom|altsyncram_component|auto_generated|altsyncram1|decode5|w_anode236w[2], super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~0 , main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~0, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~1 , main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~1, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~4 , main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~4, super6502, 1
instance = comp, \cpu_data[1]~input , cpu_data[1]~input, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a1 , main_memory|altsyncram_component|auto_generated|ram_block1a1, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a17 , main_memory|altsyncram_component|auto_generated|ram_block1a17, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~7 , main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~7, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a25 , main_memory|altsyncram_component|auto_generated|ram_block1a25, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a9 , main_memory|altsyncram_component|auto_generated|ram_block1a9, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~8 , main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~8, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~5 , main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~5, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~6 , main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~6, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~9 , main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~9, super6502, 1
instance = comp, \cpu_data[2]~input , cpu_data[2]~input, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a26 , main_memory|altsyncram_component|auto_generated|ram_block1a26, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a10 , main_memory|altsyncram_component|auto_generated|ram_block1a10, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a18 , main_memory|altsyncram_component|auto_generated|ram_block1a18, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a2 , main_memory|altsyncram_component|auto_generated|ram_block1a2, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~12 , main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~12, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~13 , main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~13, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~10 , main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~10, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~11 , main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~11, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~14 , main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~14, super6502, 1
instance = comp, \cpu_data[3]~input , cpu_data[3]~input, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a3 , main_memory|altsyncram_component|auto_generated|ram_block1a3, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a19 , main_memory|altsyncram_component|auto_generated|ram_block1a19, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~17 , main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~17, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a11 , main_memory|altsyncram_component|auto_generated|ram_block1a11, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a27 , main_memory|altsyncram_component|auto_generated|ram_block1a27, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~18 , main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~18, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~15 , main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~15, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~16 , main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~16, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~19 , main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~19, super6502, 1
instance = comp, \cpu_data[4]~input , cpu_data[4]~input, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a28 , main_memory|altsyncram_component|auto_generated|ram_block1a28, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a12 , main_memory|altsyncram_component|auto_generated|ram_block1a12, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a4 , main_memory|altsyncram_component|auto_generated|ram_block1a4, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a20 , main_memory|altsyncram_component|auto_generated|ram_block1a20, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~22 , main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~22, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~23 , main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~23, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~20 , main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~20, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~21 , main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~21, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~24 , main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~24, super6502, 1
instance = comp, \cpu_data[5]~input , cpu_data[5]~input, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a5 , main_memory|altsyncram_component|auto_generated|ram_block1a5, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a21 , main_memory|altsyncram_component|auto_generated|ram_block1a21, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~27 , main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~27, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a13 , main_memory|altsyncram_component|auto_generated|ram_block1a13, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a29 , main_memory|altsyncram_component|auto_generated|ram_block1a29, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~28 , main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~28, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~25 , main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~25, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~26 , main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~26, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~29 , main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~29, super6502, 1
instance = comp, \cpu_data[6]~input , cpu_data[6]~input, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a6 , main_memory|altsyncram_component|auto_generated|ram_block1a6, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a22 , main_memory|altsyncram_component|auto_generated|ram_block1a22, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~32 , main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~32, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a14 , main_memory|altsyncram_component|auto_generated|ram_block1a14, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a30 , main_memory|altsyncram_component|auto_generated|ram_block1a30, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~33 , main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~33, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~30 , main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~30, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~31 , main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~31, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~34 , main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~34, super6502, 1
instance = comp, \cpu_data[7]~input , cpu_data[7]~input, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a31 , main_memory|altsyncram_component|auto_generated|ram_block1a31, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a23 , main_memory|altsyncram_component|auto_generated|ram_block1a23, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a7 , main_memory|altsyncram_component|auto_generated|ram_block1a7, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~37 , main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~37, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a15 , main_memory|altsyncram_component|auto_generated|ram_block1a15, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~38 , main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~38, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~35 , main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~35, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~36 , main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~36, super6502, 1
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~39 , main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~39, super6502, 1
instance = comp, \clk_count~2 , clk_count~2, super6502, 1
instance = comp, \clk_count[2] , clk_count[2], super6502, 1
instance = comp, \clk_count~0 , clk_count~0, super6502, 1
instance = comp, \clk_count[0] , clk_count[0], super6502, 1
instance = comp, \clk_count[1]~1 , clk_count[1]~1, super6502, 1
instance = comp, \clk_count[1] , clk_count[1], super6502, 1
instance = comp, \cpu_phi2~0 , cpu_phi2~0, super6502, 1
instance = comp, \cpu_phi2~reg0 , cpu_phi2~reg0, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][6] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][6], super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][7] , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|irf_reg[1][7], super6502, 1
instance = comp, \auto_hub|~GND , auto_hub|~GND, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|clr_reg~_wirecell , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|clr_reg~_wirecell, super6502, 1
instance = comp, \auto_hub|instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[0]~_wirecell , auto_hub|\instrumentation_fabric_with_node_gen:fabric_gen_new_way:with_jtag_input_gen:instrumentation_fabric|instrumentation_fabric|alt_sld_fab|sldfabric|\jtag_hub_gen:real_sld_jtag_hub|shadow_jsm|state[0]~_wirecell, super6502, 1
instance = comp, \rst~input , rst~input, super6502, 1
instance = comp, \cpu_vpb~input , cpu_vpb~input, super6502, 1
instance = comp, \cpu_mlb~input , cpu_mlb~input, super6502, 1
instance = comp, \cpu_sync~input , cpu_sync~input, super6502, 1
instance = comp, \~QUARTUS_CREATED_UNVM~ , ~QUARTUS_CREATED_UNVM~, super6502, 1
instance = comp, \~ALTERA_CONFIG_SEL~~ibuf , ~ALTERA_CONFIG_SEL~~ibuf, super6502, 1
instance = comp, \~ALTERA_nCONFIG~~ibuf , ~ALTERA_nCONFIG~~ibuf, super6502, 1
instance = comp, \~ALTERA_nSTATUS~~ibuf , ~ALTERA_nSTATUS~~ibuf, super6502, 1
instance = comp, \~ALTERA_CONF_DONE~~ibuf , ~ALTERA_CONF_DONE~~ibuf, super6502, 1
instance = comp, \~QUARTUS_CREATED_ADC1~ , ~QUARTUS_CREATED_ADC1~, super6502, 1
instance = comp, \~QUARTUS_CREATED_ADC2~ , ~QUARTUS_CREATED_ADC2~, super6502, 1

View File

@@ -88,13 +88,293 @@ set_location_assignment PIN_AA15 -to cpu_sync
set_location_assignment PIN_V5 -to cpu_nmib
set_location_assignment PIN_W7 -to cpu_mlb
set_location_assignment PIN_W8 -to cpu_irqb
set_location_assignment PIN_P11 -to clk
set_location_assignment PIN_B8 -to rst
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
set_location_assignment PIN_C17 -to HEX0[6]
set_location_assignment PIN_D17 -to HEX0[5]
set_location_assignment PIN_E16 -to HEX0[4]
set_location_assignment PIN_C10 -to SW[0]
set_location_assignment PIN_C11 -to SW[1]
set_location_assignment PIN_D12 -to SW[2]
set_location_assignment PIN_C12 -to SW[3]
set_location_assignment PIN_A12 -to SW[4]
set_location_assignment PIN_B12 -to SW[5]
set_location_assignment PIN_A13 -to SW[6]
set_location_assignment PIN_A14 -to SW[7]
set_location_assignment PIN_B14 -to SW[8]
set_location_assignment PIN_F15 -to SW[9]
set_location_assignment PIN_A7 -to Run
set_location_assignment PIN_A8 -to LED[0]
set_location_assignment PIN_A9 -to LED[1]
set_location_assignment PIN_A10 -to LED[2]
set_location_assignment PIN_B10 -to LED[3]
set_location_assignment PIN_D13 -to LED[4]
set_location_assignment PIN_C13 -to LED[5]
set_location_assignment PIN_E14 -to LED[6]
set_location_assignment PIN_D14 -to LED[7]
set_location_assignment PIN_A11 -to LED[8]
set_location_assignment PIN_B11 -to LED[9]
set_location_assignment PIN_F21 -to HEX3[0]
set_location_assignment PIN_E22 -to HEX3[1]
set_location_assignment PIN_E21 -to HEX3[2]
set_location_assignment PIN_C19 -to HEX3[3]
set_location_assignment PIN_C20 -to HEX3[4]
set_location_assignment PIN_D19 -to HEX3[5]
set_location_assignment PIN_E17 -to HEX3[6]
set_location_assignment PIN_B20 -to HEX2[0]
set_location_assignment PIN_A20 -to HEX2[1]
set_location_assignment PIN_B19 -to HEX2[2]
set_location_assignment PIN_A21 -to HEX2[3]
set_location_assignment PIN_B21 -to HEX2[4]
set_location_assignment PIN_C22 -to HEX2[5]
set_location_assignment PIN_B22 -to HEX2[6]
set_location_assignment PIN_C18 -to HEX1[0]
set_location_assignment PIN_D18 -to HEX1[1]
set_location_assignment PIN_E18 -to HEX1[2]
set_location_assignment PIN_B16 -to HEX1[3]
set_location_assignment PIN_A17 -to HEX1[4]
set_location_assignment PIN_A18 -to HEX1[5]
set_location_assignment PIN_B17 -to HEX1[6]
set_location_assignment PIN_C14 -to HEX0[0]
set_location_assignment PIN_E15 -to HEX0[1]
set_location_assignment PIN_C15 -to HEX0[2]
set_location_assignment PIN_C16 -to HEX0[3]
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
set_global_assignment -name SYSTEMVERILOG_FILE addr_decode.sv
set_global_assignment -name SYSTEMVERILOG_FILE bb_spi_controller.sv
set_global_assignment -name SYSTEMVERILOG_FILE super6502.sv
set_global_assignment -name QIP_FILE ram.qip
set_global_assignment -name SDC_FILE super6502.sdc
set_global_assignment -name QIP_FILE rom.qip
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
set_global_assignment -name SYSTEMVERILOG_FILE HexDriver.sv
set_global_assignment -name SYSTEMVERILOG_FILE SevenSeg.sv
set_global_assignment -name QIP_FILE cpu_clk.qip
set_location_assignment PIN_B8 -to rst_n
set_location_assignment PIN_P11 -to clk_50
set_global_assignment -name ENABLE_OCT_DONE OFF
set_global_assignment -name EXTERNAL_FLASH_FALLBACK_ADDRESS 00000000
set_global_assignment -name USE_CONFIGURATION_DEVICE OFF
set_global_assignment -name INTERNAL_FLASH_UPDATE_MODE "SINGLE IMAGE WITH ERAM"
set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_vpb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[15]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[14]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[13]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[12]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[11]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[10]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[9]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[8]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[7]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[6]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[5]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[4]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[3]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[2]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[1]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_addr[0]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_be
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[7]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[6]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[5]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[4]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[3]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[2]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[1]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_data[0]
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_irqb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_led
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_mlb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_nmib
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_phi2
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_rdy
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_resb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_rwb
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_sob
set_instance_assignment -name IO_STANDARD "2.5 V" -to cpu_sync
set_instance_assignment -name IO_STANDARD "2.5 V" -to clk_50
set_global_assignment -name ENABLE_SIGNALTAP OFF
set_global_assignment -name USE_SIGNALTAP_FILE output_files/stp1.stp
set_global_assignment -name SIGNALTAP_FILE output_files/stp1.stp
set_global_assignment -name SLD_NODE_CREATOR_ID 110 -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_ENTITY_NAME sld_signaltap -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_RAM_BLOCK_TYPE=AUTO" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_NODE_INFO=805334528" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_POWER_UP_TRIGGER=0" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STORAGE_QUALIFIER_INVERSION_MASK_LENGTH=0" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_SEGMENT_SIZE=1024" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_ATTRIBUTE_MEM_MODE=OFF" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STATE_FLOW_USE_GENERATED=0" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STATE_BITS=11" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_BUFFER_FULL_STOP=1" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_CURRENT_RESOURCE_WIDTH=1" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_INCREMENTAL_ROUTING=1" -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[1] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[3] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[5] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[12] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[15] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[19] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[25] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[31] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_LEVEL=1" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_SAMPLE_DEPTH=1024" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_IN_ENABLED=0" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_PIPELINE=0" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_RAM_PIPELINE=0" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_COUNTER_PIPELINE=0" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_ADVANCED_TRIGGER_ENTITY=basic,1," -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_LEVEL_PIPELINE=1" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_ENABLE_ADVANCED_TRIGGER=0" -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[11] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[23] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[26] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[30] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[10] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT acq_clk -to "cpu_clk:cpu_clk|altpll:altpll_component|cpu_clk_altpll:auto_generated|wire_pll1_clk[0]~clkctrl" -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[6] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[8] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[13] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[14] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[0] -to "SevenSeg:segs|_data[0][0]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[1] -to "SevenSeg:segs|_data[0][1]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[2] -to "SevenSeg:segs|_data[0][2]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[3] -to "SevenSeg:segs|_data[0][3]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[4] -to "SevenSeg:segs|_data[0][4]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[5] -to "SevenSeg:segs|_data[0][5]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[6] -to "SevenSeg:segs|_data[0][6]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[7] -to "SevenSeg:segs|_data[0][7]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[8] -to "SevenSeg:segs|_data[1][0]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[9] -to "SevenSeg:segs|_data[1][1]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[10] -to "SevenSeg:segs|_data[1][2]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[11] -to "SevenSeg:segs|_data[1][3]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[12] -to "SevenSeg:segs|_data[1][4]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[13] -to "SevenSeg:segs|_data[1][5]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[14] -to "SevenSeg:segs|_data[1][6]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[15] -to "SevenSeg:segs|_data[1][7]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[16] -to "SevenSeg:segs|addr" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[17] -to "SevenSeg:segs|clk" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[18] -to "SevenSeg:segs|cs" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[19] -to "SevenSeg:segs|rst" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[20] -to "SevenSeg:segs|rw" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[21] -to cpu_addr[0] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[22] -to cpu_addr[10] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[23] -to cpu_addr[11] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[24] -to cpu_addr[12] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[25] -to cpu_addr[13] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[26] -to cpu_addr[14] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[27] -to cpu_addr[15] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[28] -to cpu_addr[1] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[29] -to cpu_addr[2] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[30] -to cpu_addr[3] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[31] -to cpu_addr[4] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[32] -to cpu_addr[5] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[33] -to cpu_addr[6] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[34] -to cpu_addr[7] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[35] -to cpu_addr[8] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[36] -to cpu_addr[9] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[37] -to cpu_data_in[0] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[38] -to cpu_data_in[1] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[39] -to cpu_data_in[2] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[40] -to cpu_data_in[3] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[41] -to cpu_data_in[4] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[42] -to cpu_data_in[5] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[43] -to cpu_data_in[6] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[44] -to cpu_data_in[7] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[45] -to cpu_data_out[0] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[46] -to cpu_data_out[1] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[47] -to cpu_data_out[2] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[48] -to cpu_data_out[3] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[49] -to cpu_data_out[4] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[50] -to cpu_data_out[5] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[51] -to cpu_data_out[6] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[52] -to cpu_data_out[7] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[53] -to cpu_phi2 -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[54] -to cpu_rwb -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[55] -to cpu_sync -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[56] -to cpu_vpb -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[57] -to rst_n -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[0] -to "SevenSeg:segs|_data[0][0]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[1] -to "SevenSeg:segs|_data[0][1]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[2] -to "SevenSeg:segs|_data[0][2]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[3] -to "SevenSeg:segs|_data[0][3]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[4] -to "SevenSeg:segs|_data[0][4]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[5] -to "SevenSeg:segs|_data[0][5]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[6] -to "SevenSeg:segs|_data[0][6]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[7] -to "SevenSeg:segs|_data[0][7]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[8] -to "SevenSeg:segs|_data[1][0]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[9] -to "SevenSeg:segs|_data[1][1]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[10] -to "SevenSeg:segs|_data[1][2]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[11] -to "SevenSeg:segs|_data[1][3]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[12] -to "SevenSeg:segs|_data[1][4]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[13] -to "SevenSeg:segs|_data[1][5]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[14] -to "SevenSeg:segs|_data[1][6]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[15] -to "SevenSeg:segs|_data[1][7]" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[16] -to "SevenSeg:segs|addr" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[17] -to "SevenSeg:segs|clk" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[18] -to "SevenSeg:segs|cs" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[19] -to "SevenSeg:segs|rst" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[20] -to "SevenSeg:segs|rw" -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[21] -to cpu_addr[0] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[22] -to cpu_addr[10] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[23] -to cpu_addr[11] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[24] -to cpu_addr[12] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[25] -to cpu_addr[13] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[26] -to cpu_addr[14] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[27] -to cpu_addr[15] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[28] -to cpu_addr[1] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[29] -to cpu_addr[2] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[30] -to cpu_addr[3] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[31] -to cpu_addr[4] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[32] -to cpu_addr[5] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[33] -to cpu_addr[6] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[34] -to cpu_addr[7] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[35] -to cpu_addr[8] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[36] -to cpu_addr[9] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[37] -to cpu_data_in[0] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[38] -to cpu_data_in[1] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[39] -to cpu_data_in[2] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[40] -to cpu_data_in[3] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[41] -to cpu_data_in[4] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[42] -to cpu_data_in[5] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[43] -to cpu_data_in[6] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[44] -to cpu_data_in[7] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[45] -to cpu_data_out[0] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[46] -to cpu_data_out[1] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[47] -to cpu_data_out[2] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[48] -to cpu_data_out[3] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[49] -to cpu_data_out[4] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[50] -to cpu_data_out[5] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[51] -to cpu_data_out[6] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[52] -to cpu_data_out[7] -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[53] -to cpu_phi2 -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[54] -to cpu_rwb -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[55] -to cpu_sync -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[56] -to cpu_vpb -section_id auto_signaltap_0
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[57] -to rst_n -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_DATA_BITS=58" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_BITS=58" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STORAGE_QUALIFIER_BITS=58" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_INVERSION_MASK=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" -section_id auto_signaltap_0
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_INVERSION_MASK_LENGTH=198" -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[0] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[2] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[4] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[7] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[9] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[16] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[17] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[18] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[20] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[21] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[22] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[24] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[27] -to auto_signaltap_0|vcc -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[28] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_instance_assignment -name POST_FIT_CONNECT_TO_SLD_NODE_ENTITY_PORT crc[29] -to auto_signaltap_0|gnd -section_id auto_signaltap_0
set_global_assignment -name SLD_FILE db/stp1_auto_stripped.stp
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

View File

@@ -1,7 +1,7 @@
#**************************************************************
# Create Clock (where clk is the user-defined system clock name)
#**************************************************************
create_clock -name {clk} -period 20ns -waveform {0.000 5.000} [get_ports {clk}]
create_clock -name {clk_50} -period 20ns -waveform {0.000 5.000} [get_ports {clk}]
# Constrain the input I/O path
set_input_delay -clock {clk} -max 3 [all_inputs]
set_input_delay -clock {clk} -min 2 [all_inputs]

View File

@@ -1,7 +1,7 @@
module super6502(
input clk,
input logic rst,
input clk_50,
input logic rst_n,
input logic [15:0] cpu_addr,
inout logic [7:0] cpu_data,
@@ -18,9 +18,15 @@ module super6502(
output logic cpu_irqb,
output logic cpu_phi2,
output logic cpu_be,
output logic cpu_nmib
output logic cpu_nmib,
output logic [6:0] HEX0, HEX1, HEX2, HEX3
);
logic rst;
assign rst = ~rst_n;
logic clk;
logic [7:0] cpu_data_in;
assign cpu_data_in = cpu_data;
@@ -29,32 +35,36 @@ logic [7:0] cpu_data_out;
assign cpu_data = cpu_rwb ? cpu_data_out : 'z;
logic [7:0] rom_data_out;
logic [7:0] ram_data_out;
logic ram_cs;
logic rom_cs;
logic hex_cs;
cpu_clk cpu_clk(
.inclk0(clk_50),
.c0(clk)
);
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 = '1;
addr_decode decode(
.addr(cpu_addr),
.ram_cs(ram_cs),
.rom_cs(rom_cs)
.rom_cs(rom_cs),
.hex_cs(hex_cs)
);
logic [2:0] clk_count;
always_ff @(posedge clk) begin
clk_count <= clk_count + 3'b1;
if (clk_count == 3'h4) begin
clk_count <= '0;
cpu_phi2 <= ~cpu_phi2;
end
end
always_comb begin
if (ram_cs)
@@ -82,6 +92,16 @@ rom boot_rom(
.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[0]),
.HEX0(HEX0), .HEX1(HEX1), .HEX2(HEX2), .HEX3(HEX3),
);
endmodule

View File

@@ -1,15 +1,59 @@
.import _main
.export __STARTUP__ : absolute = 1
; ---------------------------------------------------------------------------
; crt0.s
; ---------------------------------------------------------------------------
;
; Startup code for cc65 (Single Board Computer version)
.segment "VECTORS"
.addr _init
.addr _init
.addr _init
.segment "STARTUP"
_init: jsr _main
.export _init, _exit
.import _main
end: jmp end
.export __STARTUP__ : absolute = 1 ; Mark as startup
.import __RAM_START__, __RAM_SIZE__ ; Linker generated
.import copydata, zerobss, initlib, donelib
.include "zeropage.inc"
.segment "VECTORS"
.addr _init
.addr _init
.addr _init
; ---------------------------------------------------------------------------
; Place the startup code in a special segment
.segment "STARTUP"
; ---------------------------------------------------------------------------
; A little light 6502 housekeeping
_init: LDX #$FF ; Initialize stack pointer to $01FF
TXS
CLD ; Clear decimal mode
; ---------------------------------------------------------------------------
; Set cc65 argument stack pointer
LDA #<(__RAM_START__ + __RAM_SIZE__)
STA sp
LDA #>(__RAM_START__ + __RAM_SIZE__)
STA sp+1
; ---------------------------------------------------------------------------
; Initialize memory storage
JSR zerobss ; Clear BSS segment
JSR copydata ; Initialize DATA segment
JSR initlib ; Run constructors
; ---------------------------------------------------------------------------
; Call main()
JSR _main
; ---------------------------------------------------------------------------
; Back from main (this is also the _exit entry): force a software break
_exit: JSR donelib ; Run destructors
BRK

View File

@@ -1,9 +0,0 @@
#ifndef _GPIO_H
#define _GPIO_H
#include <stdint.h>
#define USB_GPIO (uint8_t*)0x7ff1
extern uint8_t* usb_gpio;
#endif

View File

@@ -1,9 +0,0 @@
#ifndef _IO_H
#define _IO_H
#include <stdint.h>
#define USB_GPIO 0x7ff1
extern uint8_t* usb_gpio;
#endif

View File

@@ -1,3 +1,11 @@
#define SEVEN_SEG 0x7ff0
#include <stdint.h>
int main() {
uint16_t* seven_seg;
seven_seg = (uint16_t*)SEVEN_SEG;
*seven_seg = 0xbabe;
return 0;
}

View File

@@ -1,9 +0,0 @@
#ifndef _SPI_H
#define _SPI_H
#include <stdint.h>
uint8_t spi_byte(uint8_t);
void spi_deselect(void);
#endif

View File

@@ -1,62 +0,0 @@
.include "io.inc65"
.export _spi_byte
.export _spi_deselect
.importzp sp, sreg, regsave, regbank
.importzp tmp1, tmp2, tmp3, tmp4, ptr1, ptr2, ptr3, ptr4
.code
SPI_SCLK = $01
SPI_SSn = $02
SPI_MOSI = $04
SPI_MISO = $08
; Read and write a single byte from the SPI device
; @in A The byte to write
; @out A The read byte
_spi_byte:
phx ; Save regs
phy
ldy #$00
sta tmp1 ; Save value into tmp1
lda #$80
tax
@loop: bit tmp1 ; Check if high bit set
beq @1
lda #SPI_MOSI ; Bit not set.
bra @1
@1: lda #$00 ; Bit set
sta BB_SPI_BASE ; Write data
adc #SPI_SCLK
sta BB_SPI_BASE ; Write clock
stz tmp2
lda BB_SPI_BASE ; Check MISO value
and #SPI_MISO
beq @2
inc tmp2
@2: clc ; Shift previous value left
tya ; Add current value
asl
adc tmp2
tay ; Move read value back to y
txa
lsr ; Select next bit
tax
bne @loop ; Stop when mask is 0
tya ; Get read value from y
ply
plx
rts ; Return
; Deselect the spi device.
; spi device is automatically selected during read/write.
_spi_deselect:
pha
lda #SPI_SSn ; Raise Slave Select
sta BB_SPI_BASE
pla
rts

View File

@@ -1,29 +1,7 @@
#include <stdio.h>
#include <stdint.h>
#include <spi.h>
uint16_t retval;
int main(void)
{
printf("Setting SPI location to 0x02\n");
*(uint8_t*)0x7ff0 = 2;
if (!(*(uint8_t*)0x7ff0 == 2)) {
printf("Expected 0x02 at 0x7ff0\n");
return 1;
}
printf("Done!\n\n");
printf("Starting spi_byte test...\n");
retval = spi_byte(0xa5);
if (retval != 0) {
printf("Expected 0 return value from spi_byte\n");
return 1;
}
printf("Done! %x\n\n", retval);
printf("Starting spi_deselect test...\n");
spi_deselect();
printf("No test to run!\n");
return 0;
}

View File

@@ -1,9 +0,0 @@
/* Generic macros */
/* Word <> two chars. Works both ways */
#define LOBYTE(x) ((char*)(&(x)))[0]
#define HIBYTE(x) ((char*)(&(x)))[1]
/* Bit set/clear */
#define bitset(var, bitno) ((var) |= 1 << (bitno))
#define bitclr(var, bitno) ((var) &= ~(1 << (bitno)))

View File

@@ -1,115 +0,0 @@
//Modified version of Generic Types as included by Microchip C18
#ifndef __GENERIC_TYPE_DEFS_H_
#define __GENERIC_TYPE_DEFS_H_
typedef enum _BOOL {
FALSE = 0, TRUE
} BOOL; // Undefined size
#define ON TRUE
#define OFF FALSE
typedef unsigned char BYTE; // 8-bit unsigned
typedef unsigned short int WORD; // 16-bit unsigned
typedef unsigned long DWORD; // 32-bit unsigned
typedef signed char CHAR; // 8-bit signed
typedef signed short int SHORT; // 16-bit signed
typedef signed long LONG; // 32-bit signed
typedef union _BYTE_VAL {
BYTE Val;
struct {
unsigned int b0 :1;
unsigned int b1 :1;
unsigned int b2 :1;
unsigned int b3 :1;
unsigned int b4 :1;
unsigned int b5 :1;
unsigned int b6 :1;
unsigned int b7 :1;
} bits;
} BYTE_VAL;
typedef union _WORD_VAL {
WORD Val;
BYTE v[2];
struct {
BYTE LB;
BYTE HB;
} byte;
struct {
unsigned int b0 :1;
unsigned int b1 :1;
unsigned int b2 :1;
unsigned int b3 :1;
unsigned int b4 :1;
unsigned int b5 :1;
unsigned int b6 :1;
unsigned int b7 :1;
unsigned int b8 :1;
unsigned int b9 :1;
unsigned int b10 :1;
unsigned int b11 :1;
unsigned int b12 :1;
unsigned int b13 :1;
unsigned int b14 :1;
unsigned int b15 :1;
} bits;
} WORD_VAL;
typedef union _DWORD_VAL {
DWORD Val;
WORD w[2];
BYTE v[4];
struct {
WORD LW;
WORD HW;
} word;
struct {
BYTE LB;
BYTE HB;
BYTE UB;
BYTE MB;
} byte;
struct {
unsigned int b0 :1;
unsigned int b1 :1;
unsigned int b2 :1;
unsigned int b3 :1;
unsigned int b4 :1;
unsigned int b5 :1;
unsigned int b6 :1;
unsigned int b7 :1;
unsigned int b8 :1;
unsigned int b9 :1;
unsigned int b10 :1;
unsigned int b11 :1;
unsigned int b12 :1;
unsigned int b13 :1;
unsigned int b14 :1;
unsigned int b15 :1;
unsigned int b16 :1;
unsigned int b17 :1;
unsigned int b18 :1;
unsigned int b19 :1;
unsigned int b20 :1;
unsigned int b21 :1;
unsigned int b22 :1;
unsigned int b23 :1;
unsigned int b24 :1;
unsigned int b25 :1;
unsigned int b26 :1;
unsigned int b27 :1;
unsigned int b28 :1;
unsigned int b29 :1;
unsigned int b30 :1;
unsigned int b31 :1;
} bits;
} DWORD_VAL;
#ifndef NULL
#define NULL 0
#endif
#endif //__GENERIC_TYPE_DEFS_H_

View File

@@ -1,242 +0,0 @@
/* HID class support functions */
#include <stdio.h>
#include "project_config.h"
BYTE bigbuf[256]; //256 bytes
extern DEV_RECORD devtable[];
HID_DEVICE hid_device = { { 0 } };
EP_RECORD hid_ep[2] = { { 0 } }; //HID class endpoints, 1 control, 1 interrupt-IN
//the third endpoint is not implemented
/* HID Mouse probe. Called from USB state machine. */
/* assumes configuration length is less than 256 bytes */
/* looks for Class:03, Subclass: 01, Protocol: 02 in interface descriptor */
/* sets mouse in boot protocol */
/* assumes single configuration and interface configuration 0 */
BOOL HIDMProbe(BYTE addr, DWORD flags) {
BYTE tmpbyte;
BYTE rcode;
BYTE confvalue;
WORD total_length;
USB_DESCR* data_ptr = (USB_DESCR *) &bigbuf;
BYTE* byte_ptr = bigbuf;
(void) flags;
rcode = XferGetConfDescr(addr, 0, CONF_DESCR_LEN, 0, bigbuf); //get configuration descriptor
if (rcode) { //error handling
//printf("unable to get configuration descriptor");
return (FALSE);
}
if (data_ptr->descr.config.wTotalLength > 256) {
total_length = 256;
} else {
total_length = data_ptr->descr.config.wTotalLength;
}
rcode = XferGetConfDescr(addr, 0, total_length, 0, bigbuf); //get the whole configuration
if (rcode) { //error handling
//printf("unable to get configuration");
return (FALSE);
}
confvalue = data_ptr->descr.config.bConfigurationValue;
//printf("checking configuration value (length: %d): ",
// data_ptr->descr.config.wTotalLength);
//for (int i = 0; i < data_ptr->descr.config.wTotalLength; i++) {
//printf("%x ", (unsigned char) (bigbuf[i] & 0xff));
//}
while (byte_ptr < bigbuf + total_length) {
if (data_ptr->descr.config.bDescriptorType != USB_DESCRIPTOR_INTERFACE) {
byte_ptr = byte_ptr + data_ptr->descr.config.bLength;
data_ptr = (USB_DESCR*) byte_ptr;
} // if( data_ptr->descr.config.bDescriptorType != USB_DESCRIPTOR_INTERFACE
else {
//printf("starting interface parsing at byte location %d\n",
// data_ptr->descr.config.bLength);
BYTE class = data_ptr->descr.interface.bInterfaceClass;
BYTE subclass = data_ptr->descr.interface.bInterfaceSubClass;
BYTE protocol = data_ptr->descr.interface.bInterfaceProtocol;
//printf("class %x, subclass %x, protocol %x,\n", class, subclass,
// protocol);
//interface descriptor
if (class == HID_INTF && subclass == BOOT_INTF_SUBCLASS
&& protocol == HID_PROTOCOL_MOUSE) {
//detected a mouse
devtable[addr].devclass = HID_M; //device class
tmpbyte = devtable[addr].epinfo->MaxPktSize;
HID_init(); //initialize data structures
devtable[addr].epinfo = hid_ep; //switch endpoint information structure
devtable[addr].epinfo[0].MaxPktSize = tmpbyte;
hid_device.interface =
data_ptr->descr.interface.bInterfaceNumber;
hid_device.addr = addr;
byte_ptr = byte_ptr + data_ptr->descr.config.bLength;
data_ptr = (USB_DESCR*) byte_ptr;
while (byte_ptr < bigbuf + total_length) {
if (data_ptr->descr.config.bDescriptorType
!= USB_DESCRIPTOR_ENDPOINT) { //skip to endpoint descriptor
byte_ptr = byte_ptr + data_ptr->descr.config.bLength;
data_ptr = (USB_DESCR*) byte_ptr;
} else {
/* fill endpoint information structure */
devtable[addr].epinfo[1].epAddr =
data_ptr->descr.endpoint.bEndpointAddress;
devtable[addr].epinfo[1].Attr =
data_ptr->descr.endpoint.bmAttributes;
devtable[addr].epinfo[1].MaxPktSize =
data_ptr->descr.endpoint.wMaxPacketSize;
devtable[addr].epinfo[1].Interval =
data_ptr->descr.endpoint.bInterval;
// devtable[ addr ].epinfo[ 1 ].rcvToggle = bmRCVTOG0;
/* configure device */
rcode = XferSetConf(addr, 0, confvalue); //set configuration
if (rcode) { //error handling
return (FALSE);
}
rcode = XferSetProto(addr, 0, hid_device.interface,
BOOT_PROTOCOL);
if (rcode) { //error handling
return (FALSE);
} else {
return (TRUE);
}
}
} //while( byte_ptr....
} //if (Class matches
else { //if class don't match; die on first interface. Not really correct
return (FALSE);
}
} //else if( data_ptr->
} // while( byte_ptr < &buf + total_length
return (FALSE);
}
/* HID Keyboard probe. Called from USB state machine. */
/* assumes configuration length is less than 256 bytes */
/* looks for Class:03, Subclass: 01, Protocol: 01 in interface descriptor */
/* sets keyboard in boot protocol */
/* assumes single configuration, single endpoint, and interface configuration 0 */
BOOL HIDKProbe(BYTE addr, DWORD flags) {
BYTE tmpbyte;
BYTE rcode;
BYTE confvalue;
WORD total_length;
USB_DESCR* data_ptr = (USB_DESCR *) &bigbuf;
BYTE* byte_ptr = bigbuf;
(void) flags;
rcode = XferGetConfDescr(addr, 0, CONF_DESCR_LEN, 0, bigbuf); //get configuration descriptor
if (rcode) { //error handling
return (FALSE);
}
if (data_ptr->descr.config.wTotalLength > 256) {
total_length = 256;
} else {
total_length = data_ptr->descr.config.wTotalLength;
}
rcode = XferGetConfDescr(addr, 0, total_length, 0, bigbuf); //get the whole configuration
if (rcode) { //error handling
return (FALSE);
}
confvalue = data_ptr->descr.config.bConfigurationValue; //save configuration value to use later
while (byte_ptr < bigbuf + total_length) { //parse configuration
if (data_ptr->descr.config.bDescriptorType != USB_DESCRIPTOR_INTERFACE) { //skip to the next descriptor
byte_ptr = byte_ptr + data_ptr->descr.config.bLength;
data_ptr = (USB_DESCR*) byte_ptr;
} // if( data_ptr->descr.config.bDescriptorType != USB_DESCRIPTOR_INTERFACE
else {
//printf("starting interface parsing at byte location %d\n",
// data_ptr->descr.config.bLength);
BYTE class = data_ptr->descr.interface.bInterfaceClass;
BYTE subclass = data_ptr->descr.interface.bInterfaceSubClass;
BYTE protocol = data_ptr->descr.interface.bInterfaceProtocol;
//printf("class %x, subclass %x, protocol %x,\n", class, subclass,
// protocol);
//interface descriptor
if (class == HID_INTF && subclass == BOOT_INTF_SUBCLASS
&& protocol == HID_PROTOCOL_KEYBOARD) {
//detected a keyboard
devtable[addr].devclass = HID_K; //fill device class
tmpbyte = devtable[addr].epinfo->MaxPktSize; //save max.packet size
HID_init(); //initialize data structures
devtable[addr].epinfo = hid_ep; //switch endpoint information structure
devtable[addr].epinfo[0].MaxPktSize = tmpbyte; //fill in max.packet size
hid_device.interface =
data_ptr->descr.interface.bInterfaceNumber; //fill in interface number to be used in HID requests
hid_device.addr = addr; //fill in address
byte_ptr = byte_ptr + data_ptr->descr.config.bLength; //skip to the next descriptor
data_ptr = (USB_DESCR*) byte_ptr;
while (byte_ptr < bigbuf + total_length) {
if (data_ptr->descr.config.bDescriptorType
!= USB_DESCRIPTOR_ENDPOINT) { //skip to endpoint descriptor
byte_ptr = byte_ptr + data_ptr->descr.config.bLength;
data_ptr = (USB_DESCR*) byte_ptr;
} else {
/* fill endpoint information structure */
devtable[addr].epinfo[1].epAddr =
data_ptr->descr.endpoint.bEndpointAddress;
devtable[addr].epinfo[1].Attr =
data_ptr->descr.endpoint.bmAttributes;
devtable[addr].epinfo[1].MaxPktSize =
data_ptr->descr.endpoint.wMaxPacketSize;
devtable[addr].epinfo[1].Interval =
data_ptr->descr.endpoint.bInterval;
/* configure device */
rcode = XferSetConf(addr, 0, confvalue); //set configuration
if (rcode) { //error handling
return (FALSE);
}
rcode = XferSetProto(addr, 0, hid_device.interface,
BOOT_PROTOCOL);
if (rcode) { //error handling
return (FALSE);
} else {
return (TRUE);
}
}
} //while( byte_ptr....
} //if (Class matches
else { //if class don't match; stop processing after first interface. Not really correct
return (FALSE);
}
} //else if( data_ptr->
} // while( byte_ptr < &buf + total_length
return (FALSE);
}
/* HID data structures initialization */
void HID_init(void) {
hid_ep[1].sndToggle = bmSNDTOG0;
hid_ep[1].rcvToggle = bmRCVTOG0;
}
/* poll boot mouse */
BYTE mousePoll(BOOT_MOUSE_REPORT* buf) {
BYTE rcode;
MAXreg_wr( rPERADDR, hid_device.addr); //set peripheral address
rcode = XferInTransfer(hid_device.addr, 1, 8, (BYTE*) buf,
devtable[hid_device.addr].epinfo[1].MaxPktSize);
return (rcode);
}
/* poll boot keyboard */
BYTE kbdPoll(BOOT_KBD_REPORT* buf) {
BYTE rcode;
MAXreg_wr( rPERADDR, hid_device.addr); //set peripheral address
rcode = XferInTransfer(hid_device.addr, 1, 8, (BYTE*) buf,
devtable[hid_device.addr].epinfo[1].MaxPktSize);
return (rcode);
}
BOOL HIDMEventHandler(BYTE address, BYTE event, void *data, DWORD size) {
(void) address;
(void) event;
(void) size;
(void) data;
return (FALSE);
}
BOOL HIDKEventHandler(BYTE address, BYTE event, void *data, DWORD size) {
(void) address;
(void) event;
(void) size;
(void) data;
return (FALSE);
}

View File

@@ -1,50 +0,0 @@
/* HID support header */
#ifndef _HID_h_
#define _HID_h
/* HID device structure */
typedef struct {
BYTE addr;
BYTE interface;
} HID_DEVICE;
/* Boot mouse report 8 bytes */
typedef struct {
// struct {
// unsigned one:1;
// unsigned two:1;
// unsigned three:1;
// unsigned :5;
// } button;
BYTE button;
BYTE Xdispl;
BYTE Ydispl;
BYTE bytes3to7[5]; //optional bytes
} BOOT_MOUSE_REPORT;
/* boot keyboard report 8 bytes */
typedef struct {
BYTE mod;
// struct {
// unsigned LCtrl:1;
// unsigned LShift:1;
// unsigned LAlt:1;
// unsigned LWin:1;
// /**/
// unsigned RCtrl:1;
// unsigned RShift:1;
// unsigned RAlt:1;
// unsigned RWin:1;
// } mod;
BYTE reserved;
BYTE keycode[6];
} BOOT_KBD_REPORT;
/* Function prototypes */
BOOL HIDMProbe(BYTE address, DWORD flags);
BOOL HIDKProbe(BYTE address, DWORD flags);
void HID_init(void);
BYTE mousePoll(BOOT_MOUSE_REPORT* buf);
BYTE kbdPoll(BOOT_KBD_REPORT* buf);
BOOL HIDMEventHandler(BYTE addr, BYTE event, void *data, DWORD size);
BOOL HIDKEventHandler(BYTE addr, BYTE event, void *data, DWORD size);
#endif // _HID_h_

View File

@@ -1,250 +0,0 @@
//Fill in your low-level SPI functions here, as per your host platform
#define _MAX3421E_C_
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "project_config.h"
#include <spi.h>
#include <gpio.h>
#include <unistd.h>
//variables and data structures
//External variables
extern BYTE usb_task_state;
uint8_t* usb_gpio = USB_GPIO;
/* Functions */
void SPI_init(BYTE sync_mode, BYTE bus_mode, BYTE smp_phase) {
//Don't need to initialize SPI port, already ready to go with BSP
(void) sync_mode;
(void) bus_mode;
(void) smp_phase;
}
//writes single byte to MAX3421E via SPI, simultanously reads status register and returns it
BYTE SPI_wr(BYTE data) {
(void) data;
//This function is never used by the code, so you do not need to fill it in
return -1;
}
//writes register to MAX3421E via SPI
void MAXreg_wr(BYTE reg, BYTE val) {
//psuedocode:
//select MAX3421E (may not be necessary if you are using SPI peripheral)
//write reg + 2 via SPI
//write val via SPI
//read return code from SPI peripheral (see Intel documentation)
//if return code < 0 print an error
//deselect MAX3421E (may not be necessary if you are using SPI peripheral)
BYTE regdir = reg + 2; //reg bitshift plus direction bit.
spi_byte(regdir);
spi_byte(val);
spi_deselect();
}
//multiple-byte write
//returns a pointer to a memory position after last written
BYTE* MAXbytes_wr(BYTE reg, BYTE nbytes, BYTE* data) {
//psuedocode:
//select MAX3421E (may not be necessary if you are using SPI peripheral)
//write reg + 2 via SPI
//write data[n] via SPI, where n goes from 0 to nbytes-1
//read return code from SPI peripheral (see Intel documentation)
//if return code < 0 print an error
//deselect MAX3421E (may not be necessary if you are using SPI peripheral)
//return (data + nbytes);
int i;
BYTE regdir = reg + 2;
spi_byte(regdir);
for (i = 0; i < nbytes; i++){
spi_byte(data[i]);
}
spi_deselect();
return data + nbytes;
}
//reads register from MAX3421E via SPI
BYTE MAXreg_rd(BYTE reg) {
//psuedocode:
//select MAX3421E (may not be necessary if you are using SPI peripheral)
//write reg via SPI
//read val via SPI
//read return code from SPI peripheral (see Intel documentation)
//if return code < 0 print an error
//deselect MAX3421E (may not be necessary if you are using SPI peripheral)
//return val
BYTE regdir = reg;
BYTE rxdata;
spi_byte(regdir);
rxdata = spi_byte(0);
spi_deselect();
return rxdata;
}
//multiple-byte write
//returns a pointer to a memory position after last written
BYTE* MAXbytes_rd(BYTE reg, BYTE nbytes, BYTE* data) {
//psuedocode:
//select MAX3421E (may not be necessary if you are using SPI peripheral)
//write reg via SPI
//read data[n] from SPI, where n goes from 0 to nbytes-1
//read return code from SPI peripheral (see Intel documentation)
//if return code < 0 print an error
//deselect MAX3421E (may not be necessary if you are using SPI peripheral)
//return (data + nbytes);
int i;
BYTE regdir = reg;
spi_byte(regdir);
for (i = 0; i < nbytes; i++){
data[i] = spi_byte(0);
}
spi_deselect();
return data + nbytes;
}
/* reset MAX3421E using chip reset bit. SPI configuration is not affected */
void MAX3421E_reset(void) {
//hardware reset, then software reset
BYTE tmp;
*usb_gpio &= ~USB_GPIO_RST;
//TODO
//sleep(1);
*usb_gpio |= USB_GPIO_RST;
tmp = 0;
MAXreg_wr( rUSBCTL, bmCHIPRES); //Chip reset. This stops the oscillator
MAXreg_wr( rUSBCTL, 0x00); //Remove the reset
while (!(MAXreg_rd( rUSBIRQ) & bmOSCOKIRQ)) { //wait until the PLL stabilizes
tmp++; //timeout after 256 attempts
if (tmp == 0) {
//printf("reset timeout!");
}
}
}
/* turn USB power on/off */
/* ON pin of VBUS switch (MAX4793 or similar) is connected to GPOUT7 */
/* OVERLOAD pin of Vbus switch is connected to GPIN7 */
/* OVERLOAD state low. NO OVERLOAD or VBUS OFF state high. */
BOOL Vbus_power(BOOL action) {
// power on/off successful
return (1);
}
/* probe bus to determine device presense and speed */
void MAX_busprobe(void) {
BYTE bus_sample;
// MAXreg_wr(rHCTL,bmSAMPLEBUS);
bus_sample = MAXreg_rd( rHRSL); //Get J,K status
bus_sample &= ( bmJSTATUS | bmKSTATUS); //zero the rest of the byte
switch (bus_sample) { //start full-speed or low-speed host
case ( bmJSTATUS):
/*kludgy*/
if (usb_task_state != USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE) { //bus reset causes connection detect interrupt
if (!(MAXreg_rd( rMODE) & bmLOWSPEED)) {
MAXreg_wr( rMODE, MODE_FS_HOST); //start full-speed host
//printf("Starting in full speed\n");
} else {
MAXreg_wr( rMODE, MODE_LS_HOST); //start low-speed host
//printf("Starting in low speed\n");
}
usb_task_state = ( USB_STATE_ATTACHED); //signal usb state machine to start attachment sequence
}
break;
case ( bmKSTATUS):
if (usb_task_state != USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE) { //bus reset causes connection detect interrupt
if (!(MAXreg_rd( rMODE) & bmLOWSPEED)) {
MAXreg_wr( rMODE, MODE_LS_HOST); //start low-speed host
//printf("Starting in low speed\n");
} else {
MAXreg_wr( rMODE, MODE_FS_HOST); //start full-speed host
//printf("Starting in full speed\n");
}
usb_task_state = ( USB_STATE_ATTACHED); //signal usb state machine to start attachment sequence
}
break;
case ( bmSE1): //illegal state
usb_task_state = ( USB_DETACHED_SUBSTATE_ILLEGAL);
break;
case ( bmSE0): //disconnected state
if (!((usb_task_state & USB_STATE_MASK) == USB_STATE_DETACHED)) //if we came here from other than detached state
usb_task_state = ( USB_DETACHED_SUBSTATE_INITIALIZE); //clear device data structures
else {
MAXreg_wr( rMODE, MODE_FS_HOST); //start full-speed host
usb_task_state = ( USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE);
}
break;
} //end switch( bus_sample )
}
/* MAX3421E initialization after power-on */
void MAX3421E_init(void) {
/* Configure full-duplex SPI, interrupt pulse */
MAXreg_wr( rPINCTL, (bmFDUPSPI + bmINTLEVEL + bmGPXB)); //Full-duplex SPI, level interrupt, GPX
MAX3421E_reset(); //stop/start the oscillator
/* configure power switch */
Vbus_power( OFF); //turn Vbus power off
MAXreg_wr( rGPINIEN, bmGPINIEN7); //enable interrupt on GPIN7 (power switch overload flag)
Vbus_power( ON);
/* configure host operation */
MAXreg_wr( rMODE, bmDPPULLDN | bmDMPULLDN | bmHOST | bmSEPIRQ); // set pull-downs, SOF, Host, Separate GPIN IRQ on GPX
//MAXreg_wr( rHIEN, bmFRAMEIE|bmCONDETIE|bmBUSEVENTIE ); // enable SOF, connection detection, bus event IRQs
MAXreg_wr( rHIEN, bmCONDETIE); //connection detection
/* HXFRDNIRQ is checked in Dispatch packet function */
MAXreg_wr(rHCTL, bmSAMPLEBUS); // update the JSTATUS and KSTATUS bits
MAX_busprobe(); //check if anything is connected
MAXreg_wr( rHIRQ, bmCONDETIRQ); //clear connection detect interrupt
MAXreg_wr( rCPUCTL, 0x01); //enable interrupt pin
}
/* MAX3421 state change task and interrupt handler */
void MAX3421E_Task(void) {
if ((*usb_gpio & USB_GPIO_IRQ) == 0) {
//printf("MAX interrupt\n\r");
MaxIntHandler();
}
if ((*usb_gpio & USB_GPIO_GPX) != 0) {
//printf("GPX interrupt\n\r");
MaxGpxHandler();
}
}
void MaxIntHandler(void) {
BYTE HIRQ;
BYTE HIRQ_sendback = 0x00;
HIRQ = MAXreg_rd( rHIRQ); //determine interrupt source
//printf("IRQ: %x\n", HIRQ);
if (HIRQ & bmFRAMEIRQ) { //->1ms SOF interrupt handler
HIRQ_sendback |= bmFRAMEIRQ;
} //end FRAMEIRQ handling
if (HIRQ & bmCONDETIRQ) {
MAX_busprobe();
HIRQ_sendback |= bmCONDETIRQ; //set sendback to 1 to clear register
}
if (HIRQ & bmSNDBAVIRQ) //if the send buffer is clear (previous transfer completed without issue)
{
MAXreg_wr(rSNDBC, 0x00);//clear the send buffer (not really necessary, but clears interrupt)
}
if (HIRQ & bmBUSEVENTIRQ) { //bus event is either reset or suspend
usb_task_state++; //advance USB task state machine
HIRQ_sendback |= bmBUSEVENTIRQ;
}
/* End HIRQ interrupts handling, clear serviced IRQs */
MAXreg_wr( rHIRQ, HIRQ_sendback); //write '1' to CONDETIRQ to ack bus state change
}
void MaxGpxHandler(void) {
BYTE GPINIRQ;
GPINIRQ = MAXreg_rd( rGPINIRQ); //read both IRQ registers
}

View File

@@ -1,250 +0,0 @@
/* MAX3421E support header */
/* Register names and bit masks for MAX3421 in host mode */
/* Function prototypes in MAX3421E.c */
#ifndef _MAX3421E_H_
#define _MAX3421E_H_
#define USB_GPIO_RST (1 << 0)
#define USB_GPIO_IRQ (1 << 1)
#define USB_GPIO_GPX (1 << 2)
/* SPI interface definitions */
/* SSPSTAT REGISTER */
// Master SPI mode only
#define SMPEND 0x80 // Input data sample at end of data out
#define SMPMID 0x00 // Input data sample at middle of data out
#define MODE_00 0 // Setting for SPI bus Mode 0,0
//CKE 0x40 // SSPSTAT register
//CKP 0x00 // SSPCON1 register
#define MODE_01 1 // Setting for SPI bus Mode 0,1
//CKE 0x00 // SSPSTAT register
//CKP 0x00 // SSPCON1 register
#define MODE_10 2 // Setting for SPI bus Mode 1,0
//CKE 0x40 // SSPSTAT register
//CKP 0x10 // SSPCON1 register
#define MODE_11 3 // Setting for SPI bus Mode 1,1
//CKE 0x00 // SSPSTAT register
//CKP 0x10 // SSPCON1 register
/* SSPCON1 REGISTER */
#define SSPENB 0x20 // Enable serial port and configures SCK, SDO, SDI
#define SPI_FOSC_4 0 // SPI Master mode, clock = Fosc/4
#define SPI_FOSC_16 1 // SPI Master mode, clock = Fosc/16
#define SPI_FOSC_64 2 // SPI Master mode, clock = Fosc/64
#define SPI_FOSC_TMR2 3 // SPI Master mode, clock = TMR2 output/2
#define SLV_SSON 4 // SPI Slave mode, /SS pin control enabled
#define SLV_SSOFF 5 // SPI Slave mode, /SS pin control disabled
/* MAX3421E command byte format: rrrrr0wa where 'r' is register number */
//
// MAX3421E Registers in HOST mode.
//
#define rRCVFIFO 0x08 //1<<3
#define rSNDFIFO 0x10 //2<<3
#define rSUDFIFO 0x20 //4<<3
#define rRCVBC 0x30 //6<<3
#define rSNDBC 0x38 //7<<3
#define rUSBIRQ 0x68 //13<<3
/* USBIRQ Bits */
#define bmVBUSIRQ 0x40 //b6
#define bmNOVBUSIRQ 0x20 //b5
#define bmOSCOKIRQ 0x01 //b0
#define rUSBIEN 0x70 //14<<3
/* USBIEN Bits */
#define bmVBUSIE 0x40 //b6
#define bmNOVBUSIE 0x20 //b5
#define bmOSCOKIE 0x01 //b0
#define rUSBCTL 0x78 //15<<3
/* USBCTL Bits */
#define bmCHIPRES 0x20 //b5
#define bmPWRDOWN 0x10 //b4
#define rCPUCTL 0x80 //16<<3
/* CPUCTL Bits */
#define bmPUSLEWID1 0x80 //b7
#define bmPULSEWID0 0x40 //b6
#define bmIE 0x01 //b0
#define rPINCTL 0x88 //17<<3
/* PINCTL Bits */
#define bmFDUPSPI 0x10 //b4
#define bmINTLEVEL 0x08 //b3
#define bmPOSINT 0x04 //b2
#define bmGPXB 0x02 //b1
#define bmGPXA 0x01 //b0
// GPX pin selections
#define GPX_OPERATE 0x00
#define GPX_VBDET 0x01
#define GPX_BUSACT 0x02
#define GPX_SOF 0x03
#define rREVISION 0x90 //18<<3
#define rIOPINS1 0xa0 //20<<3
/* IOPINS1 Bits */
#define bmGPOUT0 0x01
#define bmGPOUT1 0x02
#define bmGPOUT2 0x04
#define bmGPOUT3 0x08
#define bmGPIN0 0x10
#define bmGPIN1 0x20
#define bmGPIN2 0x40
#define bmGPIN3 0x80
#define rIOPINS2 0xa8 //21<<3
/* IOPINS2 Bits */
#define bmGPOUT4 0x01
#define bmGPOUT5 0x02
#define bmGPOUT6 0x04
#define bmGPOUT7 0x08
#define bmGPIN4 0x10
#define bmGPIN5 0x20
#define bmGPIN6 0x40
#define bmGPIN7 0x80
#define rGPINIRQ 0xb0 //22<<3
/* GPINIRQ Bits */
#define bmGPINIRQ0 0x01
#define bmGPINIRQ1 0x02
#define bmGPINIRQ2 0x04
#define bmGPINIRQ3 0x08
#define bmGPINIRQ4 0x10
#define bmGPINIRQ5 0x20
#define bmGPINIRQ6 0x40
#define bmGPINIRQ7 0x80
#define rGPINIEN 0xb8 //23<<3
/* GPINIEN Bits */
#define bmGPINIEN0 0x01
#define bmGPINIEN1 0x02
#define bmGPINIEN2 0x04
#define bmGPINIEN3 0x08
#define bmGPINIEN4 0x10
#define bmGPINIEN5 0x20
#define bmGPINIEN6 0x40
#define bmGPINIEN7 0x80
#define rGPINPOL 0xc0 //24<<3
/* GPINPOL Bits */
#define bmGPINPOL0 0x01
#define bmGPINPOL1 0x02
#define bmGPINPOL2 0x04
#define bmGPINPOL3 0x08
#define bmGPINPOL4 0x10
#define bmGPINPOL5 0x20
#define bmGPINPOL6 0x40
#define bmGPINPOL7 0x80
#define rHIRQ 0xc8 //25<<3
/* HIRQ Bits */
#define bmBUSEVENTIRQ 0x01 // indicates BUS Reset Done or BUS Resume
#define bmRWUIRQ 0x02
#define bmRCVDAVIRQ 0x04
#define bmSNDBAVIRQ 0x08
#define bmSUSDNIRQ 0x10
#define bmCONDETIRQ 0x20
#define bmFRAMEIRQ 0x40
#define bmHXFRDNIRQ 0x80
#define rHIEN 0xd0 //26<<3
/* HIEN Bits */
#define bmBUSEVENTIE 0x01
#define bmRWUIE 0x02
#define bmRCVDAVIE 0x04
#define bmSNDBAVIE 0x08
#define bmSUSDNIE 0x10
#define bmCONDETIE 0x20
#define bmFRAMEIE 0x40
#define bmHXFRDNIE 0x80
#define rMODE 0xd8 //27<<3
/* MODE Bits */
#define bmHOST 0x01
#define bmLOWSPEED 0x02
#define bmHUBPRE 0x04
#define bmSOFKAENAB 0x08
#define bmSEPIRQ 0x10
#define bmDELAYISO 0x20
#define bmDMPULLDN 0x40
#define bmDPPULLDN 0x80
#define rPERADDR 0xe0 //28<<3
#define rHCTL 0xe8 //29<<3
/* HCTL Bits */
#define bmBUSRST 0x01
#define bmFRMRST 0x02
#define bmSAMPLEBUS 0x04
#define bmSIGRSM 0x08
#define bmRCVTOG0 0x10
#define bmRCVTOG1 0x20
#define bmSNDTOG0 0x40
#define bmSNDTOG1 0x80
#define rHXFR 0xf0 //30<<3
/* Host transfer token values for writing the HXFR register (R30) */
/* OR this bit field with the endpoint number in bits 3:0 */
#define tokSETUP 0x10 // HS=0, ISO=0, OUTNIN=0, SETUP=1
#define tokIN 0x00 // HS=0, ISO=0, OUTNIN=0, SETUP=0
#define tokOUT 0x20 // HS=0, ISO=0, OUTNIN=1, SETUP=0
#define tokINHS 0x80 // HS=1, ISO=0, OUTNIN=0, SETUP=0
#define tokOUTHS 0xA0 // HS=1, ISO=0, OUTNIN=1, SETUP=0
#define tokISOIN 0x40 // HS=0, ISO=1, OUTNIN=0, SETUP=0
#define tokISOOUT 0x60 // HS=0, ISO=1, OUTNIN=1, SETUP=0
#define rHRSL 0xf8 //31<<3
/* HRSL Bits */
#define bmRCVTOGRD 0x10
#define bmSNDTOGRD 0x20
#define bmKSTATUS 0x40
#define bmJSTATUS 0x80
#define bmSE0 0x00 //SE0 - disconnect state
#define bmSE1 0xc0 //SE1 - illegal state
/* Host error result codes, the 4 LSB's in the HRSL register */
#define hrSUCCESS 0x00
#define hrBUSY 0x01
#define hrBADREQ 0x02
#define hrUNDEF 0x03
#define hrNAK 0x04
#define hrSTALL 0x05
#define hrTOGERR 0x06
#define hrWRONGPID 0x07
#define hrBADBC 0x08
#define hrPIDERR 0x09
#define hrPKTERR 0x0A
#define hrCRCERR 0x0B
#define hrKERR 0x0C
#define hrJERR 0x0D
#define hrTIMEOUT 0x0E
#define hrBABBLE 0x0F
#define MODE_FS_HOST (bmDPPULLDN|bmDMPULLDN|bmHOST|bmSOFKAENAB)
#define MODE_LS_HOST (bmDPPULLDN|bmDMPULLDN|bmHOST|bmLOWSPEED|bmSOFKAENAB)
/* MAX3421E.c function prototypes */
void SPI_init(BYTE sync_mode, BYTE bus_mode, BYTE smp_phase);
BYTE SPI_wr(BYTE data);
void MAXreg_wr(BYTE reg, BYTE val);
BYTE* MAXbytes_wr(BYTE reg, BYTE nbytes, BYTE * data);
BYTE MAXreg_rd(BYTE reg);
BYTE* MAXbytes_rd(BYTE reg, BYTE nbytes, BYTE *data);
void MAX3421E_reset(void);
BOOL Vbus_power(BOOL action);
void MAX3421E_init(void);
void MAX_busprobe(void);
void MAX3421E_Task(void);
void MaxIntHandler(void);
void MaxGpxHandler(void);
#endif //_MAX3421E_H_

View File

@@ -1,12 +0,0 @@
This is a project directory of Lightweight USB host for Microchip PIC18 and Maxim MAX3421E USB Host controller.
This is a migration from FreeRTOS implementation, which I decided to stop developing because the end product will not fit into PIC18.
Therefore, you will find fragments of strange code every now and then.
The code is compiled using Microchip C18 compiler in MPLAB. MPLAB project file is provided but not guaranteed to work on your system
due to absolute path issue. You can manually edit the .mcp file or make your own. The project uses standard linker script and headers.
In addition, logic analyzer trace is provided in LPF file. Too see the trace you will need to download Logicport software from Intronix,
http://www.pctestinstruments.com/downloads.htm
For hardware implementation information go to http://www.circuitsathome.com

View File

@@ -1,277 +0,0 @@
/* USB task support header */
#ifndef _USB_h_
#define _USB_h_
// *****************************************************************************
// Section: State Machine Constants
// *****************************************************************************
/* States are defined by 4 high bits
Substates are defined by 4 low bits */
#define USB_STATE_MASK 0xf0 //
#define USB_SUBSTATE_MASK 0x0f //
#define SUBSUBSTATE_MASK 0x000F //
#define NEXT_STATE 0x0100 //
#define NEXT_SUBSTATE 0x0010 //
#define NEXT_SUBSUBSTATE 0x0001 //
#define SUBSUBSTATE_ERROR 0x000F //
#define NO_STATE 0xFFFF //
/*
*******************************************************************************
DETACHED state machine values
This state machine handles the condition when no device is attached.
*/
#define USB_STATE_DETACHED 0x00
#define USB_DETACHED_SUBSTATE_INITIALIZE 0x01
#define USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE 0x03
#define USB_DETACHED_SUBSTATE_ILLEGAL 0x04
/*
*******************************************************************************
ATTACHED state machine values
This state machine gets the device descriptor of the remote device. We get the
size of the device descriptor, and use that size to get the entire device
descriptor. Then we check the VID and PID and make sure they appear in the TPL.
*/
#define USB_STATE_ATTACHED 0x10
#define USB_ATTACHED_SUBSTATE_SETTLE 0x11
#define USB_ATTACHED_SUBSTATE_RESET_DEVICE 0x12
#define USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE 0x13
#define USB_ATTACHED_SUBSTATE_WAIT_SOF 0x14
#define USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE 0x15
//#define USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR 0x16
//#define USB_ATTACHED_SUBSTATE_VALIDATE_VID_PID 0x17
//#define USB_ATTACHED_SUBSTATE_VALIDATE_CLSP 0x18
/*
*******************************************************************************
ADDRESSING state machine values
This state machine sets the address of the remote device.
*/
#define USB_STATE_ADDRESSING 0x20
/*
*******************************************************************************
CONFIGURING state machine values
This state machine sets the configuration of the remote device, and sets up
internal variables to support the device.
*/
#define USB_STATE_CONFIGURING 0x30
/*
*******************************************************************************
RUNNING state machine values
*/
#define USB_STATE_RUNNING 0x40
//#define RUNNING_SUBSTATE_NORMAL_RUN 0x0000 //
//#define RUNNING_SUBSTATE_SUSPEND_AND_RESUME 0x0010 //
//#define RUNNING_SUBSUBSTATE_SUSPEND 0x0000 //
//#define RUNNING_SUBSUBSTATE_RESUME 0x0001 //
//#define RUNNING_SUBSUBSTATE_RESUME_WAIT 0x0002 //
//#define RUNNING_SUBSUBSTATE_RESUME_RECOVERY 0x0003 //
//#define RUNNING_SUBSUBSTATE_RESUME_RECOVERY_WAIT 0x0004 //
//#define RUNNING_SUBSUBSTATE_RESUME_COMPLETE 0x0005 //
/*
*******************************************************************************
HOLDING state machine values
*/
#define STATE_HOLDING 0x50 //
#define HOLDING_SUBSTATE_HOLD_INIT 0x0000 //
#define HOLDING_SUBSTATE_HOLD 0x0001 //
/* Error state machine state. Non-recoverable */
#define USB_STATE_ERROR 0xff
// *****************************************************************************
// Section: Token State Machine Constants
// *****************************************************************************
#define TSTATE_MASK 0x00F0 //
#define TSUBSTATE_MASK 0x000F //
#define TSUBSTATE_ERROR 0x000F //
#define TSTATE_IDLE 0x0000 //
#define TSTATE_CONTROL_NO_DATA 0x0010 //
#define TSUBSTATE_CONTROL_NO_DATA_SETUP 0x0000 //
#define TSUBSTATE_CONTROL_NO_DATA_ACK 0x0001 //
#define TSUBSTATE_CONTROL_NO_DATA_COMPLETE 0x0002 //
#define TSTATE_CONTROL_READ 0x0020 //
#define TSUBSTATE_CONTROL_READ_SETUP 0x0000 //
#define TSUBSTATE_CONTROL_READ_DATA 0x0001 //
#define TSUBSTATE_CONTROL_READ_ACK 0x0002 //
#define TSUBSTATE_CONTROL_READ_COMPLETE 0x0003 //
#define TSTATE_CONTROL_WRITE 0x0030 //
#define TSUBSTATE_CONTROL_WRITE_SETUP 0x0000 //
#define TSUBSTATE_CONTROL_WRITE_DATA 0x0001 //
#define TSUBSTATE_CONTROL_WRITE_ACK 0x0002 //
#define TSUBSTATE_CONTROL_WRITE_COMPLETE 0x0003 //
#define TSTATE_INTERRUPT_READ 0x0040 //
#define TSUBSTATE_INTERRUPT_READ_DATA 0x0000 //
#define TSUBSTATE_INTERRUPT_READ_COMPLETE 0x0001 //
#define TSTATE_INTERRUPT_WRITE 0x0050 //
#define TSUBSTATE_INTERRUPT_WRITE_DATA 0x0000 //
#define TSUBSTATE_INTERRUPT_WRITE_COMPLETE 0x0001 //
#define TSTATE_ISOCHRONOUS_READ 0x0060 //
#define TSUBSTATE_ISOCHRONOUS_READ_DATA 0x0000 //
#define TSUBSTATE_ISOCHRONOUS_READ_COMPLETE 0x0001 //
#define TSTATE_ISOCHRONOUS_WRITE 0x0070 //
#define TSUBSTATE_ISOCHRONOUS_WRITE_DATA 0x0000 //
#define TSUBSTATE_ISOCHRONOUS_WRITE_COMPLETE 0x0001 //
#define TSTATE_BULK_READ 0x0080 //
#define TSUBSTATE_BULK_READ_DATA 0x0000 //
#define TSUBSTATE_BULK_READ_COMPLETE 0x0001 //
#define TSTATE_BULK_WRITE 0x0090 //
#define TSUBSTATE_BULK_WRITE_DATA 0x0000 //
#define TSUBSTATE_BULK_WRITE_COMPLETE 0x0001 //
// ************************
// Standard USB Requests
#define SR_GET_STATUS 0x00 // Get Status
#define SR_CLEAR_FEATURE 0x01 // Clear Feature
#define SR_RESERVED 0x02 // Reserved
#define SR_SET_FEATURE 0x03 // Set Feature
#define SR_SET_ADDRESS 0x05 // Set Address
#define SR_GET_DESCRIPTOR 0x06 // Get Descriptor
#define SR_SET_DESCRIPTOR 0x07 // Set Descriptor
#define SR_GET_CONFIGURATION 0x08 // Get Configuration
#define SR_SET_CONFIGURATION 0x09 // Set Configuration
#define SR_GET_INTERFACE 0x0a // Get Interface
#define SR_SET_INTERFACE 0x0b // Set Interface
// Get Descriptor codes
#define GD_DEVICE 0x01 // Get device descriptor: Device
#define GD_CONFIGURATION 0x02 // Get device descriptor: Configuration
#define GD_STRING 0x03 // Get device descriptor: String
#define GD_HID 0x21 // Get descriptor: HID
#define GD_REPORT 0x22 // Get descriptor: Report
// HID bRequest values
#define GET_REPORT 1
#define GET_IDLE 2
#define GET_PROTOCOL 3
#define SET_REPORT 9
#define SET_IDLE 0x0A
#define SET_PROTOCOL 0x0B
#define INPUT_REPORT 1
////******************************************************************************
////******************************************************************************
//// Section: Macros
////
//// These macros are all internal to the host layer.
////******************************************************************************
////******************************************************************************
//
//#define _USB_InitErrorCounters() { numCommandTries = USB_NUM_COMMAND_TRIES; }
//#define _USB_SetDATA01(x) { pCurrentEndpoint->status.bfNextDATA01 = x; }
//#define _USB_SetErrorCode(x) { usbDeviceInfo.errorCode = x; }
//#define _USB_SetHoldState() { usbHostState = STATE_HOLDING; }
//#define _USB_SetNextState() { usbHostState = (usbHostState & STATE_MASK) + NEXT_STATE; }
//#define _host_tasks_SetNextSubState() { host_tasks_state =( host_tasks_state & (STATE_MASK | SUBSTATE_MASK)) + NEXT_SUBSTATE; }
//#define _USB_SetNextSubSubState() { usbHostState = usbHostState + NEXT_SUBSUBSTATE; }
//#define _USB_SetNextTransferState() { pCurrentEndpoint->transferState ++; }
//#define _USB_SetPreviousSubSubState() { usbHostState = usbHostState - NEXT_SUBSUBSTATE; }
//#define _USB_SetTransferErrorState(x) { x->transferState = (x->transferState & TSTATE_MASK) | TSUBSTATE_ERROR; }
//#define freez(x) { free(x); x = NULL; }
/* data structures */
// *****************************************************************************
/* USB Mass Storage Device Information
This structure is used to hold all the information about an attached Mass Storage device.
*/
typedef struct _USB_MSD_DEVICE_INFO {
BYTE blockData[31]; // Data buffer for device communication.
BYTE deviceAddress; // Address of the device on the bus.
BYTE errorCode; // Error code of last error.
BYTE state; // State machine state of the device.
BYTE returnState; // State to return to after performing error handling.
union {
struct {
unsigned int bfDirection :1; // Direction of current transfer (0=OUT, 1=IN).
unsigned int bfReset :1; // Flag indicating to perform Mass Storage Reset.
unsigned int bfClearDataIN :1; // Flag indicating to clear the IN endpoint.
unsigned int bfClearDataOUT :1; // Flag indicating to clear the OUT endpoint.
};
BYTE val;
} flags;
BYTE maxLUN; // The maximum Logical Unit Number of the device.
BYTE interface; // Interface number we are using.
BYTE epin_idx; // Bulk IN endpoint index in devinfo.epinfo_ptr[].
BYTE epout_idx; // Bulk OUT endpoint index in devinfo.epinfo_ptr[].
BYTE endpointDATA; // Endpoint to use for the current transfer.
BYTE *userData; // Pointer to the user's data buffer.
DWORD userDataLength; // Length of the user's data buffer.
DWORD bytesTransferred; // Number of bytes transferred to/from the user's data buffer.
DWORD dCBWTag; // The value of the dCBWTag to verify against the dCSWtag.
BYTE attemptsCSW; // Number of attempts to retrieve the CSW.
} USB_MSD_DEVICE_INFO;
///* class driver event handler */
//typedef BOOL (* rom CLASS_EVENT_HANDLER) ( BYTE address, BYTE event, void *data, DWORD size );
//
///* class driver initialization */
//typedef BOOL (* rom CLASS_INIT) ( BYTE address, DWORD flags );
//
//// *****************************************************************************
///* Client Driver Table Structure
//
// */
//
//typedef struct _CLASS_CALLBACK_TABLE
//{
// CLASS_INIT Initialize; // Initialization routine
// CLASS_EVENT_HANDLER EventHandler; // Event routine
// DWORD flags; // Initialization flags
//
//} CLASS_CALLBACK_TABLE;
//* Functions */
//
//void vUSBtask_init( void );
//void vUSB_task( void *pvParameters );
//void prvUSBdata_init( void );
//char bUSB_Control_Write_ND( BYTE addr, BYTE ep );
//char bUSB_Control_Read( BYTE addr, BYTE ep );
//char bUSB_IN_Transfer( BYTE ep, WORD nbytes, BYTE maxpktsize, BYTE * data );
//char bUSB_Dispatch_Pkt( BYTE token, BYTE ep );
//BOOL prvMSDInit( BYTE address, DWORD flags );
//BOOL prvMSDEventHandler( BYTE address, BYTE event, void *data, DWORD size );
//BOOL prvCDCProbe( BYTE address, DWORD flags );
//BOOL prvCDCEventHandler( BYTE address, BYTE event, void *data, DWORD size );
//BOOL prvDummyProbe( BYTE address , DWORD flags );
//BOOL prvDummyEventHandler( BYTE address, BYTE event, void *data, DWORD size );
//BYTE flush_Q( xQueueHandle QueueH );
#endif //_USB_h_

View File

@@ -1,22 +0,0 @@
/* Project name project configuration file */
#ifndef _project_config_h_
#define _project_config_h_
#include "GenericMacros.h"
#include "GenericTypeDefs.h"
#include "HID.h"
#include "MAX3421E.h"
#include "transfer.h"
#include "usb_ch9.h"
#include "USB.h"
/* USB constants */
/* time in milliseconds */
#define USB_SETTLE_TIME 200 //USB settle after reset
#define USB_XFER_TIMEOUT 5000 //USB transfer timeout
#define USB_NAK_LIMIT 2
#define USB_RETRY_LIMIT 3
#endif // _project_config_h

View File

@@ -1,475 +0,0 @@
/* USB transfers */
#define _transfer_c_
#include "project_config.h"
#include <stdio.h>
EP_RECORD dev0ep = {{ 0 }}; //Endpoint data structure for uninitialized device during enumeration
EP_RECORD msd_ep[ 3 ] = {{ 0 }}; //Mass storage bulk-only transport endpoints: 1 control and 2 bulk, IN and OUT
//ep records for other classes are defined in class-specific modules
/* macros to aid filling in TPL */
#define INIT_VID_PID(v,p) 0x##p##v
#define INIT_CL_SC_P(c,s,p) 0x##00##p##s##c
//const rom USB_TPL_ENTRY TplTable[ USB_NUMTARGETS + 1 ] = {
//// VID & PID or Client
//// Class, Subclass & Protocol Config Numep Eprecord Driver
//{ INIT_VID_PID( 0000, 0000 ), 0, 1, &dev0ep, 0, "Uninitialized" },
//{ INIT_VID_PID( 0781, 5406 ), 0, 3, msd_ep, MSD_DRIVER, "Mass storage" }, //Sandisk U3 Cruzer Micro
////{ INIT_VID_PID( 0CF2, 6220 ), 0, 0 }, //ENE UB6220
//{ INIT_CL_SC_P( 03, 01, 02 ), 0, 3, hid_ep, HIDM_DRIVER, "HID Mouse with Boot protocol" }, //
//{ INIT_VID_PID( aaaa, 5555 ), 0, 1, NULL, 0, NULL }, //
//{ INIT_CL_SC_P( 08, 06, 50 ), 0, 3, msd_ep, MSD_DRIVER, "Mass storage" } //Mass storage bulk only class
//};
/* control transfers function pointers */
const CTRL_XFER ctrl_xfers[ 2 ] = {
XferCtrlND,
XferCtrlData
};
/* device table. Filled during enumeration */
/* index corresponds to device address */
/* each entry contains pointer to endpoint structure */
/* and device class to use in various places */
DEV_RECORD devtable[ USB_NUMDEVICES + 1 ];
/* Client Driver Function Pointer Table */
CLASS_CALLBACK_TABLE ClientDriverTable[ USB_NUMCLASSES ] = {
{
MSDProbe, //Mass storage class device init
MSDEventHandler,
0
},
{
HIDMProbe, //HID class device init
HIDMEventHandler,
0
},
{
HIDKProbe,
HIDKEventHandler,
0
},
{
DummyProbe,
DummyEventHandler,
0
}
};
/* Control transfer stages function pointer table */
/* USB state machine related variables */
BYTE usb_task_state = USB_DETACHED_SUBSTATE_INITIALIZE;
BYTE usb_error;
BYTE last_usb_task_state = 0;
/* Control transfer. Sets address, endpoint, fills control packet with necessary data, dispatches control packet, and initiates bulk IN transfer, */
/* depending on request. Actual requests are defined as macros */
/* return codes: */
/* 00 = success */
/* 01-0f = non-zero HRSLT */
BYTE XferCtrlReq( BYTE addr, BYTE ep, BYTE bmReqType, BYTE bRequest, BYTE wValLo, BYTE wValHi, WORD wInd, WORD nbytes, BYTE* dataptr )
{
BOOL direction = FALSE; //request direction, IN or OUT
BYTE datastage = 1; //request data stage present or absent
BYTE rcode;
SETUP_PKT setup_pkt;
if( dataptr == NULL ) {
datastage = 0;
}
MAXreg_wr( rPERADDR, addr ); //set peripheral address
/* fill in setup packet */
if( bmReqType & 0x80 ) {
direction = TRUE; //determine request direction
}
/* fill in setup packet */
setup_pkt.ReqType_u.bmRequestType = bmReqType;
setup_pkt.bRequest = bRequest;
setup_pkt.wVal_u.wValueLo = wValLo;
setup_pkt.wVal_u.wValueHi = wValHi;
setup_pkt.wIndex = wInd;
setup_pkt.wLength = nbytes;
MAXbytes_wr( rSUDFIFO, 8, (BYTE *)&setup_pkt ); //transfer to setup packet FIFO
rcode = XferDispatchPkt( tokSETUP, ep ); //dispatch packet
if( rcode ) { //return HRSLT if not zero
return( rcode );
}
rcode = ctrl_xfers[ datastage ]( addr, ep, nbytes, dataptr, direction ); //call data stage or no data stage transfer
return( rcode );
}
/* Control transfer with data stage */
BYTE XferCtrlData( BYTE addr, BYTE ep, WORD nbytes, BYTE* dataptr, BOOL direction )
{
BYTE rcode;
//MAXreg_wr( rHCTL, bmRCVTOG1 ); //set toggle to DATA1
if( direction ) { //IN transfer
devtable[ addr ].epinfo[ ep ].rcvToggle = bmRCVTOG1;
rcode = XferInTransfer( addr, ep, nbytes, dataptr, devtable[ addr ].epinfo[ ep ].MaxPktSize );
if( rcode ) {
return( rcode );
}
rcode = XferDispatchPkt( tokOUTHS, ep );
return( rcode );
}
else { //OUT not implemented
return( 0xff );
}
}
/* Control transfer with status stage and no data stage */
BYTE XferCtrlND( BYTE addr, BYTE ep, WORD nbytes, BYTE* dataptr, BOOL direction )
{
BYTE rcode;
(void) addr;
(void) nbytes;
(void) dataptr;
if( direction ) { //GET
rcode = XferDispatchPkt( tokOUTHS, ep );
}
else {
rcode = XferDispatchPkt( tokINHS, ep );
}
return( rcode );
}
/* Dispatch a packet. Assumes peripheral address is set and, if necessary, sudFIFO-sendFIFO loaded. */
/* Result code: 0 success, nonzero = error condition */
/* If NAK, tries to re-send up to USB_NAK_LIMIT times */
/* If bus timeout, re-sends up to USB_RETRY_LIMIT times */
/* return codes 0x00-0x0f are HRSLT( 0x00 being success ), 0xff means timeout */
BYTE XferDispatchPkt( BYTE token, BYTE ep )
{
DWORD timeout = 0;//(alt_nticks()*1000)/alt_ticks_per_second() + USB_XFER_TIMEOUT;
BYTE tmpdata;
BYTE rcode;
char retry_count = 0;
BYTE nak_count = 0;
while( 1 ) {
MAXreg_wr( rHXFR, ( token|ep )); //launch the transfer
rcode = 0xff;
/*
while( (alt_nticks()*1000)/alt_ticks_per_second() < timeout ) {
tmpdata = MAXreg_rd( rHIRQ );
if( tmpdata & bmHXFRDNIRQ ) {
MAXreg_wr( rHIRQ, bmHXFRDNIRQ ); //clear the interrupt
rcode = 0x00;
break;
}
}
*/
if( rcode != 0x00 ) { //exit if timeout
return( rcode );
}
rcode = ( MAXreg_rd( rHRSL ) & 0x0f );
if( rcode == hrNAK ) {
nak_count++;
if( nak_count == USB_NAK_LIMIT ) {
break;
}
else {
continue;
}
}
if( rcode == hrTIMEOUT ) {
retry_count++;
if( retry_count == USB_RETRY_LIMIT ) {
break;
}
else {
continue;
}
}
else break;
}//while( 1 )
return( rcode );
}
/* IN transfer to arbitrary endpoint. Assumes PERADDR is set. Handles multiple packets if necessary. Transfers 'nbytes' bytes.
Keep sending INs and writes data to memory area pointed by 'data' */
/* rcode 0 if no errors. rcode 01-0f is relayed from prvXferDispatchPkt(). Rcode f0 means RCVDAVIRQ error,
fe USB xfer timeout */
BYTE XferInTransfer( BYTE addr/* not sure if it's necessary */, BYTE ep, WORD nbytes, BYTE* data, BYTE maxpktsize )
{
BYTE rcode;
//BYTE i;
//BYTE tmpbyte;
BYTE pktsize;
WORD xfrlen = 0;
MAXreg_wr( rHCTL, devtable[ addr ].epinfo[ ep ].rcvToggle ); //set toggle value
while( 1 ) { // use a 'return' to exit this loop
rcode = XferDispatchPkt( tokIN, ep ); //IN packet to EP-'endpoint'. Function takes care of NAKS.
if( rcode ) {
return( rcode ); //should be 0, indicating ACK. Else return error code.
}
/* check for RCVDAVIRQ and generate error if not present */
/* the only case when absence of RCVDAVIRQ makes sense is when toggle error occurred. Need to add handling for that */
if(( MAXreg_rd( rHIRQ ) & bmRCVDAVIRQ ) == 0 ) {
return ( 0xf0 ); //receive error
}
pktsize = MAXreg_rd( rRCVBC ); //number of received bytes
//printf ("pktsize: %d\n", pktsize);
data = MAXbytes_rd( rRCVFIFO, pktsize, data );
MAXreg_wr( rHIRQ, bmRCVDAVIRQ ); // Clear the IRQ & free the buffer
xfrlen += pktsize; // add this packet's byte count to total transfer length
/* The transfer is complete under two conditions: */
/* 1. The device sent a short packet (L.T. maxPacketSize) */
/* 2. 'nbytes' have been transferred. */
if (( pktsize < maxpktsize ) || (xfrlen >= nbytes )) { // have we transferred 'nbytes' bytes?
if( MAXreg_rd( rHRSL ) & bmRCVTOGRD ) { //save toggle value
devtable[ addr ].epinfo[ ep ].rcvToggle = bmRCVTOG1;
}
else {
devtable[ addr ].epinfo[ ep ].rcvToggle = bmRCVTOG0;
}
return( 0 );
}
}//while( 1 )
}
/* initialization of USB data structures */
void USB_init( void )
{
BYTE i;
for( i = 0; i < ( USB_NUMDEVICES + 1 ); i++ ) {
devtable[ i ].epinfo = NULL; //clear device table
devtable[ i ].devclass = 0;
}
devtable[ 0 ].epinfo = &dev0ep; //set single ep for uninitialized device
dev0ep.MaxPktSize = 0;
dev0ep.sndToggle = bmSNDTOG0; //set DATA0/1 toggles to 0
dev0ep.rcvToggle = bmRCVTOG0;
}
USB_DEVICE_DESCRIPTOR buf = {0};
USB_STRING_DESCRIPTOR strDesc = {0};
/* USB state machine. Connect/disconnect, enumeration, initialization */
/* error codes: 01-0f HRSLT */
/* ff - unsupported device */
/* fe - no address available */
/* fd - no client driver available */
void USB_Task( void )
{
static DWORD usb_delay = 0;
static BYTE tmp_addr;
BYTE rcode, tmpdata;
BYTE i;
switch( usb_task_state & USB_STATE_MASK ) {
/* Detached state - when nothing is connected to ( or just disconnected from) USB bus */
case( USB_STATE_DETACHED ):
switch( usb_task_state ) {
case( USB_DETACHED_SUBSTATE_INITIALIZE ):
/* cleanup device data structures */
USB_init();
usb_task_state = USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE;
break;
case( USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE ):
/* Do nothing */
MAXreg_wr(rHCTL,bmSAMPLEBUS);
break;
case( USB_DETACHED_SUBSTATE_ILLEGAL ):
/* don't know what to do yet */
break;
}//switch( usb_task_state )
break;//( USB_STATE_DETACHED ):
/**/
case( USB_STATE_ATTACHED ): //prepare for enumeration
switch( usb_task_state ) {
case( USB_STATE_ATTACHED ):
//TODO
//usb_delay = (alt_nticks()*1000)/alt_ticks_per_second() + 200; //initial settle 200ms
usb_delay = 0;
usb_task_state = USB_ATTACHED_SUBSTATE_SETTLE;
break;//case( USB_STATE_ATTACHED )
case( USB_ATTACHED_SUBSTATE_SETTLE ): //waiting for settle timer to expire
//TODO
/*
if( (alt_nticks()*1000)/alt_ticks_per_second() > usb_delay ) {
usb_task_state = USB_ATTACHED_SUBSTATE_RESET_DEVICE;
}
*/
break;//case( USB_ATTACHED_SUBSTATE_SETTLE )
case( USB_ATTACHED_SUBSTATE_RESET_DEVICE ):
MAXreg_wr( rHIRQ, bmBUSEVENTIRQ ); //clear bus event IRQ
MAXreg_wr( rHCTL, bmBUSRST ); //issue bus reset
usb_task_state = USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE;
break;//case( USB_ATTACHED_SUBSTATE_RESET_DEVICE )
case( USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE ): //wait for bus reset and first SOF
if(( MAXreg_rd( rHCTL ) & bmBUSRST ) == 0 ) {
tmpdata = MAXreg_rd( rMODE ) | bmSOFKAENAB; //start SOF generation
MAXreg_wr( rMODE, tmpdata );
usb_task_state = USB_ATTACHED_SUBSTATE_WAIT_SOF;
}
break;//case( USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE )
case( USB_ATTACHED_SUBSTATE_WAIT_SOF ):
if( MAXreg_rd( rHIRQ ) | bmFRAMEIRQ ) { //when first SOF received we can continue
usb_task_state = USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE;
}
break;//case( USB_ATTACHED_SUBSTATE_WAIT_SOF )
case( USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE ): //send request for first 8 bytes of device descriptor
devtable[ 0 ].epinfo->MaxPktSize = 0x0008; //fill max packet size with minimum allowed
rcode = XferGetDevDescr( 0, 0, 8, (BYTE *)&buf ); //get device descriptor size
if( rcode == 0 ) {
devtable[ 0 ].epinfo->MaxPktSize = buf.bMaxPacketSize0;
rcode = XferGetDevDescr( 0, 0, buf.bLength, (BYTE *)&buf ); //get full descriptor
//pull the string descriptor for the product if it exists
//hackish, store this somewhere
if (buf.iManufacturer != 0)
{
rcode = XferGetStrDescr( 0, 0, 2, buf.iManufacturer, LANG_EN_US, (BYTE *)&strDesc);
rcode = XferGetStrDescr( 0, 0, strDesc.bLength, buf.iManufacturer, LANG_EN_US, (BYTE *)&strDesc);
//printf ("Mfgr string(%i): %s\n", buf.iManufacturer, ConvUTF8ToStr(strDesc.bString, (strDesc.bLength>>1)-1));
}
if (buf.iProduct != 0)
{
rcode = XferGetStrDescr( 0, 0, 2, buf.iProduct, LANG_EN_US, (BYTE *)&strDesc);
rcode = XferGetStrDescr( 0, 0, strDesc.bLength, buf.iProduct, LANG_EN_US, (BYTE *)&strDesc);
//printf ("Product string(%i): %s\n", buf.iProduct, ConvUTF8ToStr(strDesc.bString, (strDesc.bLength>>1)-1));
}
usb_task_state = USB_STATE_ADDRESSING;
}
else {
usb_error = rcode;
last_usb_task_state = usb_task_state;
usb_task_state = USB_STATE_ERROR;
}
break;//case( USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE ):
}//switch( usb_task_state )
break;//case ( USB_STATE_ATTACHED )
case( USB_STATE_ADDRESSING ): //give device an address
for( i = 1; i < USB_NUMDEVICES; i++ ) {
if( devtable[ i ].epinfo == NULL ) {
devtable[ i ].epinfo = devtable[ 0 ].epinfo; //set correct MaxPktSize
//devtable[ i ].epinfo->MaxPktSize = devtable[ 0 ].epinfo->MaxPktSize; //copy uninitialized device record to have correct MaxPktSize
rcode = XferSetAddr( 0, 0, i );
if( rcode == 0 ) {
tmp_addr = i;
usb_task_state = USB_STATE_CONFIGURING;
}
else {
usb_error = rcode; //set address error
last_usb_task_state = usb_task_state;
usb_task_state = USB_STATE_ERROR;
}
break; //break if address assigned or error occurred during address assignment attempt
}
}
if( usb_task_state == USB_STATE_ADDRESSING ) {
usb_error = 0xfe;
last_usb_task_state = usb_task_state;
usb_task_state = USB_STATE_ERROR;
}
break;//case ( USB_STATE_ADDRESSING )
case( USB_STATE_CONFIGURING ): //checking for driver
//run device class probes until one returns TRUE
for( i = 0; i < USB_NUMCLASSES; i++ ) {
rcode = ClientDriverTable[ i ].Initialize( tmp_addr, 0 );
if( rcode == TRUE ) {
usb_task_state = USB_STATE_RUNNING;
break;
}
}
if( usb_task_state == USB_STATE_CONFIGURING ) {
usb_error = 0xfd;
last_usb_task_state = usb_task_state;
usb_task_state = USB_STATE_ERROR;
}
break;//( USB_STATE_CONFIGURING )
case( USB_STATE_RUNNING ):
//vTaskDelay( LED_RATE );
break;//( USB_STATE_RUNNING )
case( USB_STATE_ERROR ):
//vTaskDelay( LED_RATE ); //stay here if error
break;//( USB_STATE_ERROR )
default:
//Should never get here
break;
}//switch( usb_task_state & STATE_MASK )
}
//place-holders for MSD (mass-storage device) drivers, we don't have them ported.
//returns TRUE if device is successfully identified and configured, otherwise returns FALSE
BOOL MSDProbe( BYTE addr, DWORD flags )
{
(void) addr;
(void) flags;
return( FALSE );
}
BOOL MSDEventHandler( BYTE address, BYTE event, void *data, DWORD size )
{
(void) address;
(void) event;
(void) data;
(void) size;
return( FALSE );
}
//CDC (communication device class also not supported)
BOOL CDCProbe( BYTE address, DWORD flags )
{
(void) address;
(void) flags;
return( FALSE );
}
BOOL CDCEventHandler( BYTE address, BYTE event, void *data, DWORD size )
{
(void) address;
(void) event;
(void) data;
(void) size;
return( FALSE );
}
BOOL DummyProbe( BYTE address , DWORD flags )
{
(void) address;
(void) flags;
return( FALSE );
}
BOOL DummyEventHandler( BYTE address, BYTE event, void *data, DWORD size )
{
(void) address;
(void) event;
(void) data;
(void) size;
return( FALSE );
}
/* Function to access usb_task_state variable from outside */
BYTE GetUsbTaskState( void )
{
return( usb_task_state );
}
/* Function to access devtable[] from outside */
DEV_RECORD* GetDevtable( BYTE index )
{
return( &devtable[ index ] );
}
char* ConvUTF8ToStr(BYTE* utf8, BYTE length)
{
BYTE i;
for (i = 0; i < length; i++)
{
utf8[i] = utf8[2*i];
}
utf8[length] = 0x00;
return (char*)utf8;
}

View File

@@ -1,253 +0,0 @@
/* USB transfers support header */
#ifndef _transfer_h_
#define _transfer_h_
/* Targeted peripheral list table */
#define USB_NUMTARGETS 4 //number of targets in TPL, not counting uninitialized device
#define USB_NUMDEVICES 8 //number of supported devices
#define USB_NUMCLASSES 5 //number of device classes in class callback table
#define UNINIT 0 //uninitialized
#define HID_K 1 //HID Keyboard boot driver number in DEV_RECORD
#define HID_M 2 //HID Mouse boot driver number in DEV_RECORD
#define MSD 3 //Mass storage class driver number in DEV_RECORD
#define RAPHNET 4
/* Standard Device Requests */
#define USB_REQUEST_GET_STATUS 0 // Standard Device Request - GET STATUS
#define USB_REQUEST_CLEAR_FEATURE 1 // Standard Device Request - CLEAR FEATURE
#define USB_REQUEST_SET_FEATURE 3 // Standard Device Request - SET FEATURE
#define USB_REQUEST_SET_ADDRESS 5 // Standard Device Request - SET ADDRESS
#define USB_REQUEST_GET_DESCRIPTOR 6 // Standard Device Request - GET DESCRIPTOR
#define USB_REQUEST_SET_DESCRIPTOR 7 // Standard Device Request - SET DESCRIPTOR
#define USB_REQUEST_GET_CONFIGURATION 8 // Standard Device Request - GET CONFIGURATION
#define USB_REQUEST_SET_CONFIGURATION 9 // Standard Device Request - SET CONFIGURATION
#define USB_REQUEST_GET_INTERFACE 10 // Standard Device Request - GET INTERFACE
#define USB_REQUEST_SET_INTERFACE 11 // Standard Device Request - SET INTERFACE
#define USB_REQUEST_SYNCH_FRAME 12 // Standard Device Request - SYNCH FRAME
#define USB_FEATURE_ENDPOINT_HALT 0 // CLEAR/SET FEATURE - Endpoint Halt
#define USB_FEATURE_DEVICE_REMOTE_WAKEUP 1 // CLEAR/SET FEATURE - Device remote wake-up
#define USB_FEATURE_TEST_MODE 2 // CLEAR/SET FEATURE - Test mode
/* Setup Data Constants */
#define USB_SETUP_HOST_TO_DEVICE 0x00 // Device Request bmRequestType transfer direction - host to device transfer
#define USB_SETUP_DEVICE_TO_HOST 0x80 // Device Request bmRequestType transfer direction - device to host transfer
#define USB_SETUP_TYPE_STANDARD 0x00 // Device Request bmRequestType type - standard
#define USB_SETUP_TYPE_CLASS 0x20 // Device Request bmRequestType type - class
#define USB_SETUP_TYPE_VENDOR 0x40 // Device Request bmRequestType type - vendor
#define USB_SETUP_RECIPIENT_DEVICE 0x00 // Device Request bmRequestType recipient - device
#define USB_SETUP_RECIPIENT_INTERFACE 0x01 // Device Request bmRequestType recipient - interface
#define USB_SETUP_RECIPIENT_ENDPOINT 0x02 // Device Request bmRequestType recipient - endpoint
#define USB_SETUP_RECIPIENT_OTHER 0x03 // Device Request bmRequestType recipient - other
/* USB descriptors */
#define USB_DESCRIPTOR_DEVICE 0x01 // bDescriptorType for a Device Descriptor.
#define USB_DESCRIPTOR_CONFIGURATION 0x02 // bDescriptorType for a Configuration Descriptor.
#define USB_DESCRIPTOR_STRING 0x03 // bDescriptorType for a String Descriptor.
#define USB_DESCRIPTOR_INTERFACE 0x04 // bDescriptorType for an Interface Descriptor.
#define USB_DESCRIPTOR_ENDPOINT 0x05 // bDescriptorType for an Endpoint Descriptor.
#define USB_DESCRIPTOR_DEVICE_QUALIFIER 0x06 // bDescriptorType for a Device Qualifier.
#define USB_DESCRIPTOR_OTHER_SPEED 0x07 // bDescriptorType for a Other Speed Configuration.
#define USB_DESCRIPTOR_INTERFACE_POWER 0x08 // bDescriptorType for Interface Power.
#define USB_DESCRIPTOR_OTG 0x09 // bDescriptorType for an OTG Descriptor.
/* OTG SET FEATURE Constants */
#define OTG_FEATURE_B_HNP_ENABLE 3 // SET FEATURE OTG - Enable B device to perform HNP
#define OTG_FEATURE_A_HNP_SUPPORT 4 // SET FEATURE OTG - A device supports HNP
#define OTG_FEATURE_A_ALT_HNP_SUPPORT 5 // SET FEATURE OTG - Another port on the A device supports HNP
/* USB Endpoint Transfer Types */
#define USB_TRANSFER_TYPE_CONTROL 0x00 // Endpoint is a control endpoint.
#define USB_TRANSFER_TYPE_ISOCHRONOUS 0x01 // Endpoint is an isochronous endpoint.
#define USB_TRANSFER_TYPE_BULK 0x02 // Endpoint is a bulk endpoint.
#define USB_TRANSFER_TYPE_INTERRUPT 0x03 // Endpoint is an interrupt endpoint.
#define bmUSB_TRANSFER_TYPE 0x03 // bit mask to separate transfer type from ISO attributes
/* Standard Feature Selectors for CLEAR_FEATURE Requests */
#define USB_FEATURE_ENDPOINT_STALL 0 // Endpoint recipient
#define USB_FEATURE_DEVICE_REMOTE_WAKEUP 1 // Device recipient
#define USB_FEATURE_TEST_MODE 2 // Device recipient
/* MSD class requests. Not part of chapter 9 */
#define USB_MSD_GET_MAX_LUN 0xFE // Device Request code to get the maximum LUN.
#define USB_MSD_RESET 0xFF // Device Request code to reset the device.
/* HID constants. Not part of chapter 9 */
/* Class-Specific Requests */
#define HID_REQUEST_GET_REPORT 0x01
#define HID_REQUEST_GET_IDLE 0x02
#define HID_REQUEST_GET_PROTOCOL 0x03
#define HID_REQUEST_SET_REPORT 0x09
#define HID_REQUEST_SET_IDLE 0x0A
#define HID_REQUEST_SET_PROTOCOL 0x0B
/* Class Descriptor Types */
#define HID_DESCRIPTOR_HID 0x21
#define HID_DESCRIPTOR_REPORT 0x22
#define HID_DESRIPTOR_PHY 0x23
/* Protocol Selection */
#define BOOT_PROTOCOL 0x00
#define RPT_PROTOCOL 0x01
/* HID Interface Class Code */
#define HID_INTF 0x03
/* HID Interface Class SubClass Codes */
#define BOOT_INTF_SUBCLASS 0x01
/* HID Interface Class Protocol Codes */
#define HID_PROTOCOL_NONE 0x00
#define HID_PROTOCOL_KEYBOARD 0x01
#define HID_PROTOCOL_MOUSE 0x02
/* USB Setup Packet Structure */
typedef struct {
union { // offset description
BYTE bmRequestType; // 0 Bit-map of request type
struct {
unsigned int recipient :5; // Recipient of the request
unsigned int type :2; // Type of request
unsigned int direction :1; // Direction of data X-fer
};
} ReqType_u;
BYTE bRequest; // 1 Request
union {
WORD wValue; // 2 Depends on bRequest
struct {
BYTE wValueLo;
BYTE wValueHi;
};
} wVal_u;
WORD wIndex; // 4 Depends on bRequest
WORD wLength; // 6 Depends on bRequest
} SETUP_PKT, *PSETUP_PKT;
/* Endpoint information structure */
/* bToggle of endpoint 0 initialized to 0xff */
/* during enumeration bToggle is set to 00 */
typedef struct {
BYTE epAddr; //copy from endpoint descriptor. Bit 7 indicates direction ( ignored for control endpoints )
BYTE Attr; // Endpoint transfer type.
WORD MaxPktSize; // Maximum packet size.
BYTE Interval; // Polling interval in frames.
BYTE sndToggle; //last toggle value, bitmask for HCTL toggle bits
BYTE rcvToggle; //last toggle value, bitmask for HCTL toggle bits
/* not sure if both are necessary */
} EP_RECORD;
/* device record structure */
typedef struct {
EP_RECORD* epinfo; //device endpoint information
BYTE devclass; //device class
} DEV_RECORD;
//targeted peripheral list element
//NOTE: this is currently not implemented - typically an embedded host will provide a TPL
//to enumerate supported devices.
typedef struct {
union {
DWORD val;
struct {
WORD idVendor;
WORD idProduct;
};
struct {
BYTE bClass;
BYTE bSubClass;
BYTE bProtocol;
};
} dev_u;
BYTE bConfig; //configuration
BYTE numep; //number of endpoints
EP_RECORD* epinfo; //endpoint information structure
BYTE CltDrv; //client driver
const char * desc; //device description
} USB_TPL_ENTRY;
/* control transfer */
typedef BYTE (*CTRL_XFER)(BYTE addr, BYTE ep, WORD nbytes, BYTE* dataptr,
BOOL direction);
/* class driver initialization */
typedef BOOL (*CLASS_INIT)(BYTE address, DWORD flags);
/* class driver event handler */
typedef BOOL (*CLASS_EVENT_HANDLER)(BYTE address, BYTE event, void *data,
DWORD size);
/* Client Driver Table Structure */
typedef struct {
CLASS_INIT Initialize; // Initialization routine
CLASS_EVENT_HANDLER EventHandler; // Event routine
DWORD flags; // Initialization flags
} CLASS_CALLBACK_TABLE;
/* Common setup data constant combinations */
#define bmREQ_GET_DESCR USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //get descriptor request type
#define bmREQ_SET USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //set request type for all but 'set feature' and 'set interface'
#define bmREQ_CL_GET_INTF USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE //get interface request type
#define bmREQ_HIDOUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
#define bmREQ_HIDIN USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
/* Function macros */
//char XferCtrlReq( BYTE addr, BYTE ep, BYTE bmReqType, BYTE bRequest, BYTE wValLo, BYTE wValHi, WORD wInd, WORD nbytes, char* dataptr )
/* Set address request macro. Human-readable form of bXferCtrlReq */
/* won't necessarily work for device in 'Configured' state */
#define XferSetAddr( oldaddr, ep, newaddr ) \
XferCtrlReq( oldaddr, ep, bmREQ_SET, USB_REQUEST_SET_ADDRESS, newaddr, 0x00, 0x0000, 0x0000, NULL )
/* Set Configuration Request */
#define XferSetConf( addr, ep, conf_value ) \
XferCtrlReq( addr, ep, bmREQ_SET, USB_REQUEST_SET_CONFIGURATION, conf_value, 0x00, 0x0000, 0x0000, NULL )
///* Get configuration request */
//#define bXferGetConf( addr, ep, urb_ptr ) bXferCtrlReq( addr, ep, 1, ( bmREQ_GET_DESCR ), USB_REQUEST_GET_CONFIGURATION, 0x00, 0x00, 0x00, urb_ptr );
/* Get device descriptor request macro */
#define XferGetDevDescr( addr, ep, nbytes, dataptr ) \
XferCtrlReq( addr, ep, bmREQ_GET_DESCR, USB_REQUEST_GET_DESCRIPTOR, 0x00, USB_DESCRIPTOR_DEVICE, 0x0000, nbytes, dataptr )
///* Get configuration descriptor request macro */
#define XferGetConfDescr( addr, ep, nbytes, conf, dataptr ) \
XferCtrlReq( addr, ep, bmREQ_GET_DESCR, USB_REQUEST_GET_DESCRIPTOR, conf, USB_DESCRIPTOR_CONFIGURATION, 0x0000, nbytes, dataptr )
///* Get string descriptor request macro */
#define XferGetStrDescr( addr, ep, nbytes, index, langid, dataptr ) \
XferCtrlReq( addr, ep, bmREQ_GET_DESCR, USB_REQUEST_GET_DESCRIPTOR, index, USB_DESCRIPTOR_STRING, langid, nbytes, dataptr )
///* Get MAX LUN MSD class request macro */
//#define bXferGetMaxLUN( addr, intf, urb_ptr ) bXferCtrlReq( addr, 0, 1, ( bmREQ_CL_GET_INTF ), USB_MSD_GET_MAX_LUN, 0, 0, intf, urb_ptr )
#define XferGetHIDDescr(addr, ep, desc, nbytes, dataptr) \
XferCtrlReq(addr, ep, bmREQ_HIDIN, USB_REQUEST_GET_DESCRIPTOR, desc, HID_DESCRIPTOR_REPORT, 0x000, nbytes, dataptr)
/* class requests */
#define XferSetProto( addr, ep, interface, protocol ) \
XferCtrlReq( addr, ep, bmREQ_HIDOUT, HID_REQUEST_SET_PROTOCOL, protocol, 0x00, interface, 0x0000, NULL )
#define XferGetProto( addr, ep, interface, dataptr ) \
XferCtrlReq( addr, ep, bmREQ_HIDIN, HID_REQUEST_GET_PROTOCOL, 0x00, 0x00, interface, 0x0001, dataptr )
#define XferGetIdle( addr, ep, interface, reportID, dataptr ) \
XferCtrlReq( addr, ep, bmREQ_HIDIN, HID_REQUEST_GET_IDLE, reportID, 0, interface, 0x0001, dataptr )
/* Function prototypes */
BYTE XferCtrlReq(BYTE addr, BYTE ep, BYTE bmReqType, BYTE bRequest, BYTE wValLo,
BYTE wValHi, WORD wInd, WORD nbytes, BYTE* dataptr);
BYTE XferCtrlData(BYTE addr, BYTE ep, WORD nbytes, BYTE* dataptr,
BOOL direction);
BYTE XferCtrlND(BYTE addr, BYTE ep, WORD nbytes, BYTE* dataptr, BOOL direction);
//BYTE startCtrlReq( BYTE addr, BYTE ep, BYTE bmReqType, BYTE bRequest, BYTE wValLo, BYTE wValHi, WORD wInd, WORD nbytes, char* dataptr );
BYTE XferDispatchPkt(BYTE token, BYTE ep);
BYTE XferInTransfer(BYTE addr, BYTE ep, WORD nbytes, BYTE* data,
BYTE maxpktsize);
//BYTE XferInTransfer_mps( BYTE ep, char* data, BYTE maxpktsize );
void USB_init(void);
void USB_Task(void);
BYTE GetUsbTaskState(void);
DEV_RECORD* GetDevtable(BYTE index);
/* Client driver routines */
BOOL MSDProbe(BYTE address, DWORD flags);
BOOL MSDEventHandler(BYTE address, BYTE event, void *data, DWORD size);
BOOL CDCProbe(BYTE address, DWORD flags);
BOOL CDCEventHandler(BYTE address, BYTE event, void *data, DWORD size);
BOOL RaphnetProbe(BYTE address, DWORD flags);
BOOL RaphnetEventHandler(BYTE address, BYTE event, void *data, DWORD size);
BOOL DummyProbe(BYTE address, DWORD flags);
BOOL DummyEventHandler(BYTE address, BYTE event, void *data, DWORD size);
//Function to be able to display string descriptors
char* ConvUTF8ToStr(BYTE* utf8, BYTE length);
#endif //_transfer_h_

View File

@@ -1,189 +0,0 @@
/*
USB Chapter 9 Protocol (Header File)
This file defines data structures, constants, and macros that are used to
to support the USB Device Framework protocol described in Chapter 9 of the
USB 2.0 specification.
In addition to that, class-specific descriptors are typedef'd here as well to keep descriptors together.
They are typedefs anyway and won't take any real code space.
*/
#ifndef _USB_CH9_H_
#define _USB_CH9_H_
/* Misc.USB constants */
#define DEV_DESCR_LEN 18 //device descriptor length
#define CONF_DESCR_LEN 9 //configuration descriptor length
#define INTR_DESCR_LEN 9 //interface descriptor length
#define EP_DESCR_LEN 7 //endpoint descriptor length
/* Device descriptor structure */
typedef struct {
BYTE bLength; // Length of this descriptor.
BYTE bDescriptorType; // DEVICE descriptor type (USB_DESCRIPTOR_DEVICE).
WORD bcdUSB; // USB Spec Release Number (BCD).
BYTE bDeviceClass; // Class code (assigned by the USB-IF). 0xFF-Vendor specific.
BYTE bDeviceSubClass; // Subclass code (assigned by the USB-IF).
BYTE bDeviceProtocol; // Protocol code (assigned by the USB-IF). 0xFF-Vendor specific.
BYTE bMaxPacketSize0; // Maximum packet size for endpoint 0.
WORD idVendor; // Vendor ID (assigned by the USB-IF).
WORD idProduct; // Product ID (assigned by the manufacturer).
WORD bcdDevice; // Device release number (BCD).
BYTE iManufacturer; // Index of String Descriptor describing the manufacturer.
BYTE iProduct; // Index of String Descriptor describing the product.
BYTE iSerialNumber; // Index of String Descriptor with the device's serial number.
BYTE bNumConfigurations; // Number of possible configurations.
} USB_DEVICE_DESCRIPTOR;
/* Configuration Descriptor Structure */
typedef struct {
BYTE bLength; // Length of this descriptor.
BYTE bDescriptorType; // CONFIGURATION descriptor type (USB_DESCRIPTOR_CONFIGURATION).
WORD wTotalLength; // Total length of all descriptors for this configuration.
BYTE bNumInterfaces; // Number of interfaces in this configuration.
BYTE bConfigurationValue; // Value of this configuration (1 based).
BYTE iConfiguration; // Index of String Descriptor describing the configuration.
BYTE bmAttributes; // Configuration characteristics.
BYTE bMaxPower; // Maximum power consumed by this configuration.
} USB_CONFIGURATION_DESCRIPTOR;
/* Conf.descriptor attribute bits */
#define USB_CFG_DSC_REQUIRED 0x80 // Required attribute
//#define USB_CFG_DSC_SELF_PWR (0x40|USB_CFG_DSC_REQUIRED) // Device is self powered.
//#define USB_CFG_DSC_REM_WAKE (0x20|USB_CFG_DSC_REQUIRED) // Device can request remote wakup
#define USB_CFG_DSC_SELF_PWR (0x40) // Device is self powered.
#define USB_CFG_DSC_REM_WAKE (0x20) // Device can request remote wakup
/* USB Interface Descriptor Structure */
typedef struct {
BYTE bLength; // Length of this descriptor.
BYTE bDescriptorType; // INTERFACE descriptor type (USB_DESCRIPTOR_INTERFACE).
BYTE bInterfaceNumber; // Number of this interface (0 based).
BYTE bAlternateSetting; // Value of this alternate interface setting.
BYTE bNumEndpoints; // Number of endpoints in this interface.
BYTE bInterfaceClass; // Class code (assigned by the USB-IF). 0xFF-Vendor specific.
BYTE bInterfaceSubClass; // Subclass code (assigned by the USB-IF).
BYTE bInterfaceProtocol; // Protocol code (assigned by the USB-IF). 0xFF-Vendor specific.
BYTE iInterface; // Index of String Descriptor describing the interface.
} USB_INTERFACE_DESCRIPTOR;
/* USB Endpoint Descriptor Structure */
typedef struct {
BYTE bLength; // Length of this descriptor.
BYTE bDescriptorType; // ENDPOINT descriptor type (USB_DESCRIPTOR_ENDPOINT).
BYTE bEndpointAddress; // Endpoint address. Bit 7 indicates direction (0=OUT, 1=IN).
BYTE bmAttributes; // Endpoint transfer type.
WORD wMaxPacketSize; // Maximum packet size.
BYTE bInterval; // Polling interval in frames.
} USB_ENDPOINT_DESCRIPTOR;
/* Endpoint Direction */
#define EP_DIR_IN 0x80 // Data flows from device to host
#define EP_DIR_OUT 0x00 // Data flows from host to device
/* USB Endpoint Attributes */
// Section: Transfer Types
#define EP_ATTR_CONTROL (0<<0) // Endoint used for control transfers
#define EP_ATTR_ISOCH (1<<0) // Endpoint used for isochronous transfers
#define EP_ATTR_BULK (2<<0) // Endpoint used for bulk transfers
#define EP_ATTR_INTR (3<<0) // Endpoint used for interrupt transfers
// Section: Synchronization Types (for isochronous enpoints)
#define EP_ATTR_NO_SYNC (0<<2) // No Synchronization
#define EP_ATTR_ASYNC (1<<2) // Asynchronous
#define EP_ATTR_ADAPT (2<<2) // Adaptive synchronization
#define EP_ATTR_SYNC (3<<2) // Synchronous
// Section: Usage Types (for isochronous endpoints)
#define EP_ATTR_DATA (0<<4) // Data Endpoint
#define EP_ATTR_FEEDBACK (1<<4) // Feedback endpoint
#define EP_ATTR_IMP_FB (2<<4) // Implicit Feedback data EP
// Section: Max Packet Sizes
#define EP_MAX_PKT_INTR_LS 8 // Max low-speed interrupt packet
#define EP_MAX_PKT_INTR_FS 64 // Max full-speed interrupt packet
#define EP_MAX_PKT_ISOCH_FS 1023 // Max full-speed isochronous packet
#define EP_MAX_PKT_BULK_FS 64 // Max full-speed bulk packet
#define EP_LG_PKT_BULK_FS 32 // Large full-speed bulk packet
#define EP_MED_PKT_BULK_FS 16 // Medium full-speed bulk packet
#define EP_SM_PKT_BULK_FS 8 // Small full-speed bulk packet
/* USB OTG Descriptor Structure */
typedef struct {
BYTE bLength; // Length of this descriptor.
BYTE bDescriptorType; // OTG descriptor type (USB_DESCRIPTOR_OTG).
BYTE bmAttributes; // OTG attributes.
} USB_OTG_DESCRIPTOR;
/* USB String Descriptor Structure */
typedef struct {
BYTE bLength; //size of this descriptor
BYTE bDescriptorType; //type, USB_DSC_STRING
BYTE bString[256 - 2]; //buffer for string
} USB_STRING_DESCRIPTOR;
/* Section: USB Device Qualifier Descriptor Structure */
typedef struct {
BYTE bLength; // Size of this descriptor
BYTE bDescriptorType; // Type, always USB_DESCRIPTOR_DEVICE_QUALIFIER
WORD bcdUSB; // USB spec version, in BCD
BYTE bDeviceClass; // Device class code
BYTE bDeviceSubClass; // Device sub-class code
BYTE bDeviceProtocol; // Device protocol
BYTE bMaxPacketSize0; // EP0, max packet size
BYTE bNumConfigurations; // Number of "other-speed" configurations
BYTE bReserved; // Always zero (0)
} USB_DEVICE_QUALIFIER_DESCRIPTOR;
/* Section: USB Specification Constants */
#define PID_OUT 0x1 // PID for an OUT token
#define PID_ACK 0x2 // PID for an ACK handshake
#define PID_DATA0 0x3 // PID for DATA0 data
#define PID_PING 0x4 // Special PID PING
#define PID_SOF 0x5 // PID for a SOF token
#define PID_NYET 0x6 // PID for a NYET handshake
#define PID_DATA2 0x7 // PID for DATA2 data
#define PID_SPLIT 0x8 // Special PID SPLIT
#define PID_IN 0x9 // PID for a IN token
#define PID_NAK 0xA // PID for a NAK handshake
#define PID_DATA1 0xB // PID for DATA1 data
#define PID_PRE 0xC // Special PID PRE (Same as PID_ERR)
#define PID_ERR 0xC // Special PID ERR (Same as PID_PRE)
#define PID_SETUP 0xD // PID for a SETUP token
#define PID_STALL 0xE // PID for a STALL handshake
#define PID_MDATA 0xF // PID for MDATA data
#define PID_MASK_DATA 0x03 // Data PID mask
#define PID_MASK_DATA_SHIFTED (PID_MASK_DATA << 2) // Data PID shift to proper position
#define LANG_EN_US 0x0409 //US language code, probably the only supported by string descriptors
/* USB Token Types */
/* defined in MAX3421E.h */
/* Section: OTG Descriptor Constants */
#define OTG_HNP_SUPPORT 0x02 // OTG Descriptor bmAttributes - HNP support flag
#define OTG_SRP_SUPPORT 0x01 // OTG Descriptor bmAttributes - SRP support flag
/* Section: USB Class Code Definitions */
#define USB_HUB_CLASSCODE 0x09 // Class code for a hub.
/* HID class-specific defines */
/* USB HID Descriptor header per HID 1.1 spec */
/* section 6.2.1 */
/* the header is variable length. Only first class descriptor fields are defined */
typedef union {
struct {
BYTE bLength;
BYTE bDescriptorType;
WORD bcdHID;
BYTE bCountryCode;
BYTE bNumDescriptors;
BYTE bDescrType;
WORD wDescriptorLength;
};
} USB_HID_DESCRIPTOR;
/* combined descriptor for easy parsing */
typedef struct {
union {
BYTE buf[80];
USB_DEVICE_DESCRIPTOR device;
USB_CONFIGURATION_DESCRIPTOR config;
USB_INTERFACE_DESCRIPTOR interface;
USB_ENDPOINT_DESCRIPTOR endpoint;
USB_STRING_DESCRIPTOR string;
/* class descriptors */
USB_HID_DESCRIPTOR HID;
} descr;
} USB_DESCR;
#endif // _USB_CH9_H_