Create quartus project
This commit is contained in:
16
hw/fpga/greybox_tmp/cbx_args.txt
Normal file
16
hw/fpga/greybox_tmp/cbx_args.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
CLOCK_ENABLE_INPUT_A=BYPASS
|
||||
CLOCK_ENABLE_OUTPUT_A=BYPASS
|
||||
INTENDED_DEVICE_FAMILY="MAX 10"
|
||||
NUMWORDS_A=32768
|
||||
OPERATION_MODE=SINGLE_PORT
|
||||
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
|
||||
DEVICE_FAMILY="MAX 10"
|
||||
address_a
|
||||
clock0
|
||||
q_a
|
||||
1
hw/fpga/output_files/super6502.sld
Normal file
1
hw/fpga/output_files/super6502.sld
Normal file
@@ -0,0 +1 @@
|
||||
<sld_project_info/>
|
||||
4
hw/fpga/ram.qip
Normal file
4
hw/fpga/ram.qip
Normal file
@@ -0,0 +1,4 @@
|
||||
set_global_assignment -name IP_TOOL_NAME "RAM: 1-PORT"
|
||||
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) "ram.v"]
|
||||
172
hw/fpga/ram.v
Normal file
172
hw/fpga/ram.v
Normal file
@@ -0,0 +1,172 @@
|
||||
// megafunction wizard: %RAM: 1-PORT%
|
||||
// GENERATION: STANDARD
|
||||
// VERSION: WM1.0
|
||||
// MODULE: altsyncram
|
||||
|
||||
// ============================================================
|
||||
// File Name: ram.v
|
||||
// Megafunction Name(s):
|
||||
// altsyncram
|
||||
//
|
||||
// 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 ram (
|
||||
address,
|
||||
clock,
|
||||
data,
|
||||
wren,
|
||||
q);
|
||||
|
||||
input [14:0] address;
|
||||
input clock;
|
||||
input [7:0] data;
|
||||
input wren;
|
||||
output [7:0] q;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
tri1 clock;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
|
||||
wire [7:0] sub_wire0;
|
||||
wire [7:0] q = sub_wire0[7:0];
|
||||
|
||||
altsyncram altsyncram_component (
|
||||
.address_a (address),
|
||||
.clock0 (clock),
|
||||
.data_a (data),
|
||||
.wren_a (wren),
|
||||
.q_a (sub_wire0),
|
||||
.aclr0 (1'b0),
|
||||
.aclr1 (1'b0),
|
||||
.address_b (1'b1),
|
||||
.addressstall_a (1'b0),
|
||||
.addressstall_b (1'b0),
|
||||
.byteena_a (1'b1),
|
||||
.byteena_b (1'b1),
|
||||
.clock1 (1'b1),
|
||||
.clocken0 (1'b1),
|
||||
.clocken1 (1'b1),
|
||||
.clocken2 (1'b1),
|
||||
.clocken3 (1'b1),
|
||||
.data_b (1'b1),
|
||||
.eccstatus (),
|
||||
.q_b (),
|
||||
.rden_a (1'b1),
|
||||
.rden_b (1'b1),
|
||||
.wren_b (1'b0));
|
||||
defparam
|
||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
||||
altsyncram_component.clock_enable_output_a = "BYPASS",
|
||||
altsyncram_component.intended_device_family = "MAX 10",
|
||||
altsyncram_component.lpm_hint = "ENABLE_RUNTIME_MOD=NO",
|
||||
altsyncram_component.lpm_type = "altsyncram",
|
||||
altsyncram_component.numwords_a = 32768,
|
||||
altsyncram_component.operation_mode = "SINGLE_PORT",
|
||||
altsyncram_component.outdata_aclr_a = "NONE",
|
||||
altsyncram_component.outdata_reg_a = "UNREGISTERED",
|
||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
||||
altsyncram_component.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ",
|
||||
altsyncram_component.widthad_a = 15,
|
||||
altsyncram_component.width_a = 8,
|
||||
altsyncram_component.width_byteena_a = 1;
|
||||
|
||||
|
||||
endmodule
|
||||
|
||||
// ============================================================
|
||||
// CNX file retrieval info
|
||||
// ============================================================
|
||||
// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: AclrAddr NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: AclrByte NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: AclrData NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: AclrOutput NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: BYTE_ENABLE NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"
|
||||
// Retrieval info: PRIVATE: BlankMemory NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: Clken NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: DataBusSeparated NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_A"
|
||||
// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "MAX 10"
|
||||
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: JTAG_ID STRING "NONE"
|
||||
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: MIFfilename STRING ""
|
||||
// Retrieval info: PRIVATE: NUMWORDS_A NUMERIC "32768"
|
||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3"
|
||||
// Retrieval info: PRIVATE: RegAddr NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: RegData NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: RegOutput NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
||||
// Retrieval info: PRIVATE: SingleClock NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: UseDQRAM NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: WRCONTROL_ACLR_A NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: WidthAddr NUMERIC "15"
|
||||
// Retrieval info: PRIVATE: WidthData NUMERIC "8"
|
||||
// Retrieval info: PRIVATE: rden NUMERIC "0"
|
||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
|
||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_A STRING "BYPASS"
|
||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "MAX 10"
|
||||
// Retrieval info: CONSTANT: LPM_HINT STRING "ENABLE_RUNTIME_MOD=NO"
|
||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"
|
||||
// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "32768"
|
||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "SINGLE_PORT"
|
||||
// Retrieval info: CONSTANT: OUTDATA_ACLR_A STRING "NONE"
|
||||
// Retrieval info: CONSTANT: OUTDATA_REG_A STRING "UNREGISTERED"
|
||||
// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE"
|
||||
// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_PORT_A STRING "NEW_DATA_NO_NBE_READ"
|
||||
// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "15"
|
||||
// Retrieval info: CONSTANT: WIDTH_A NUMERIC "8"
|
||||
// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1"
|
||||
// Retrieval info: USED_PORT: address 0 0 15 0 INPUT NODEFVAL "address[14..0]"
|
||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock"
|
||||
// Retrieval info: USED_PORT: data 0 0 8 0 INPUT NODEFVAL "data[7..0]"
|
||||
// Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL "q[7..0]"
|
||||
// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT NODEFVAL "wren"
|
||||
// Retrieval info: CONNECT: @address_a 0 0 15 0 address 0 0 15 0
|
||||
// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0
|
||||
// Retrieval info: CONNECT: @data_a 0 0 8 0 data 0 0 8 0
|
||||
// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0
|
||||
// Retrieval info: CONNECT: q 0 0 8 0 @q_a 0 0 8 0
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL ram.v TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL ram.inc FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL ram.cmp FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL ram.bsf FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL ram_inst.v FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL ram_bb.v FALSE
|
||||
// Retrieval info: LIB_FILE: altera_mf
|
||||
1
hw/fpga/simulation/modelsim/super6502.sft
Normal file
1
hw/fpga/simulation/modelsim/super6502.sft
Normal file
@@ -0,0 +1 @@
|
||||
set tool_name "ModelSim-Altera (SystemVerilog)"
|
||||
3313
hw/fpga/simulation/modelsim/super6502.svo
Normal file
3313
hw/fpga/simulation/modelsim/super6502.svo
Normal file
File diff suppressed because it is too large
Load Diff
145
hw/fpga/simulation/modelsim/super6502_modelsim.xrf
Normal file
145
hw/fpga/simulation/modelsim/super6502_modelsim.xrf
Normal file
@@ -0,0 +1,145 @@
|
||||
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, /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
|
||||
design_name = super6502
|
||||
instance = comp, \~QUARTUS_CREATED_GND~I , ~QUARTUS_CREATED_GND~I, 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, \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, \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, \main_memory|altsyncram_component|auto_generated|address_reg_a[0] , main_memory|altsyncram_component|auto_generated|address_reg_a[0], super6502, 1
|
||||
instance = comp, \cpu_addr[14]~input , cpu_addr[14]~input, super6502, 1
|
||||
instance = comp, \cpu_rwb~input , cpu_rwb~input, 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_anode275w[2]~0 , main_memory|altsyncram_component|auto_generated|rden_decode|w_anode275w[2]~0, 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_block1a8 , main_memory|altsyncram_component|auto_generated|ram_block1a8, 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|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]~0 , main_memory|altsyncram_component|auto_generated|rden_decode|w_anode284w[2]~0, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|ram_block1a16 , main_memory|altsyncram_component|auto_generated|ram_block1a16, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|address_reg_a[1] , main_memory|altsyncram_component|auto_generated|address_reg_a[1], 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|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_anode293w[2]~0 , main_memory|altsyncram_component|auto_generated|rden_decode|w_anode293w[2]~0, 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]~1 , main_memory|altsyncram_component|auto_generated|mux2|result_node[0]~1, super6502, 1
|
||||
instance = comp, \cpu_data[1]~input , cpu_data[1]~input, 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_block1a1 , main_memory|altsyncram_component|auto_generated|ram_block1a1, 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]~2 , main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~2, 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]~3 , main_memory|altsyncram_component|auto_generated|mux2|result_node[1]~3, super6502, 1
|
||||
instance = comp, \cpu_data[2]~input , cpu_data[2]~input, 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]~4 , main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~4, 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|mux2|result_node[2]~5 , main_memory|altsyncram_component|auto_generated|mux2|result_node[2]~5, 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_block1a11 , main_memory|altsyncram_component|auto_generated|ram_block1a11, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~6 , main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~6, 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|ram_block1a27 , main_memory|altsyncram_component|auto_generated|ram_block1a27, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~7 , main_memory|altsyncram_component|auto_generated|mux2|result_node[3]~7, super6502, 1
|
||||
instance = comp, \cpu_data[4]~input , cpu_data[4]~input, 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_block1a28 , main_memory|altsyncram_component|auto_generated|ram_block1a28, 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]~8 , main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~8, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~9 , main_memory|altsyncram_component|auto_generated|mux2|result_node[4]~9, 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_block1a13 , main_memory|altsyncram_component|auto_generated|ram_block1a13, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~10 , main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~10, 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|ram_block1a21 , main_memory|altsyncram_component|auto_generated|ram_block1a21, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~11 , main_memory|altsyncram_component|auto_generated|mux2|result_node[5]~11, super6502, 1
|
||||
instance = comp, \cpu_data[6]~input , cpu_data[6]~input, 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|ram_block1a6 , main_memory|altsyncram_component|auto_generated|ram_block1a6, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~12 , main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~12, 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]~13 , main_memory|altsyncram_component|auto_generated|mux2|result_node[6]~13, super6502, 1
|
||||
instance = comp, \cpu_data[7]~input , cpu_data[7]~input, 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|ram_block1a15 , main_memory|altsyncram_component|auto_generated|ram_block1a15, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~14 , main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~14, 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_block1a31 , main_memory|altsyncram_component|auto_generated|ram_block1a31, super6502, 1
|
||||
instance = comp, \main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~15 , main_memory|altsyncram_component|auto_generated|mux2|result_node[7]~15, 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, \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, \cpu_phi2~0 , cpu_phi2~0, super6502, 1
|
||||
instance = comp, \cpu_phi2~reg0 , cpu_phi2~reg0, super6502, 1
|
||||
instance = comp, \rst~input , rst~input, super6502, 1
|
||||
instance = comp, \cpu_addr[15]~input , cpu_addr[15]~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, \~QUARTUS_CREATED_ADC1~ , ~QUARTUS_CREATED_ADC1~, super6502, 1
|
||||
instance = comp, \~QUARTUS_CREATED_ADC2~ , ~QUARTUS_CREATED_ADC2~, super6502, 1
|
||||
design_name = hard_block
|
||||
instance = comp, \~ALTERA_TMS~~ibuf , ~ALTERA_TMS~~ibuf, hard_block, 1
|
||||
instance = comp, \~ALTERA_TCK~~ibuf , ~ALTERA_TCK~~ibuf, hard_block, 1
|
||||
instance = comp, \~ALTERA_TDI~~ibuf , ~ALTERA_TDI~~ibuf, hard_block, 1
|
||||
instance = comp, \~ALTERA_CONFIG_SEL~~ibuf , ~ALTERA_CONFIG_SEL~~ibuf, hard_block, 1
|
||||
instance = comp, \~ALTERA_nCONFIG~~ibuf , ~ALTERA_nCONFIG~~ibuf, hard_block, 1
|
||||
instance = comp, \~ALTERA_nSTATUS~~ibuf , ~ALTERA_nSTATUS~~ibuf, hard_block, 1
|
||||
instance = comp, \~ALTERA_CONF_DONE~~ibuf , ~ALTERA_CONF_DONE~~ibuf, hard_block, 1
|
||||
@@ -49,3 +49,48 @@ set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 256
|
||||
set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (SystemVerilog)"
|
||||
set_global_assignment -name EDA_TIME_SCALE "1 ps" -section_id eda_simulation
|
||||
set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "SYSTEMVERILOG HDL" -section_id eda_simulation
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE super6502.sv
|
||||
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
|
||||
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
|
||||
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
|
||||
set_location_assignment PIN_V10 -to cpu_led
|
||||
set_location_assignment PIN_W10 -to cpu_vpb
|
||||
set_location_assignment PIN_V9 -to cpu_resb
|
||||
set_location_assignment PIN_W9 -to cpu_rdy
|
||||
set_location_assignment PIN_V8 -to cpu_sob
|
||||
set_location_assignment PIN_V7 -to cpu_phi2
|
||||
set_location_assignment PIN_W6 -to cpu_be
|
||||
set_location_assignment PIN_W5 -to cpu_rwb
|
||||
set_location_assignment PIN_AA14 -to cpu_data[0]
|
||||
set_location_assignment PIN_W12 -to cpu_data[1]
|
||||
set_location_assignment PIN_AB12 -to cpu_data[2]
|
||||
set_location_assignment PIN_AB11 -to cpu_data[3]
|
||||
set_location_assignment PIN_AB10 -to cpu_data[4]
|
||||
set_location_assignment PIN_AA9 -to cpu_data[5]
|
||||
set_location_assignment PIN_AA8 -to cpu_data[6]
|
||||
set_location_assignment PIN_AA7 -to cpu_data[7]
|
||||
set_location_assignment PIN_AA6 -to cpu_addr[15]
|
||||
set_location_assignment PIN_AA5 -to cpu_addr[14]
|
||||
set_location_assignment PIN_AB3 -to cpu_addr[13]
|
||||
set_location_assignment PIN_AB2 -to cpu_addr[12]
|
||||
set_location_assignment PIN_AA2 -to cpu_addr[11]
|
||||
set_location_assignment PIN_Y3 -to cpu_addr[10]
|
||||
set_location_assignment PIN_Y4 -to cpu_addr[9]
|
||||
set_location_assignment PIN_Y5 -to cpu_addr[8]
|
||||
set_location_assignment PIN_Y6 -to cpu_addr[7]
|
||||
set_location_assignment PIN_Y7 -to cpu_addr[6]
|
||||
set_location_assignment PIN_Y8 -to cpu_addr[5]
|
||||
set_location_assignment PIN_AA10 -to cpu_addr[4]
|
||||
set_location_assignment PIN_W11 -to cpu_addr[3]
|
||||
set_location_assignment PIN_Y11 -to cpu_addr[2]
|
||||
set_location_assignment PIN_AB13 -to cpu_addr[1]
|
||||
set_location_assignment PIN_W13 -to cpu_addr[0]
|
||||
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_global_assignment -name QIP_FILE ram.qip
|
||||
set_global_assignment -name SDC_FILE super6502.sdc
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
||||
11
hw/fpga/super6502.sdc
Normal file
11
hw/fpga/super6502.sdc
Normal file
@@ -0,0 +1,11 @@
|
||||
#**************************************************************
|
||||
# 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}]
|
||||
# Constrain the input I/O path
|
||||
set_input_delay -clock {clk} -max 3 [all_inputs]
|
||||
set_input_delay -clock {clk} -min 2 [all_inputs]
|
||||
# Constrain the output I/O path
|
||||
set_output_delay -clock {clk} 2 [all_outputs]
|
||||
|
||||
derive_clock_uncertainty
|
||||
52
hw/fpga/super6502.sv
Normal file
52
hw/fpga/super6502.sv
Normal file
@@ -0,0 +1,52 @@
|
||||
|
||||
module super6502(
|
||||
input clk,
|
||||
input logic rst,
|
||||
|
||||
input logic [15:0] cpu_addr,
|
||||
inout logic [7:0] cpu_data,
|
||||
|
||||
input logic cpu_vpb,
|
||||
input logic cpu_mlb,
|
||||
input logic cpu_rwb,
|
||||
input logic cpu_sync,
|
||||
|
||||
output logic cpu_led,
|
||||
output logic cpu_resb,
|
||||
output logic cpu_rdy,
|
||||
output logic cpu_sob,
|
||||
output logic cpu_irqb,
|
||||
output logic cpu_phi2,
|
||||
output logic cpu_be,
|
||||
output logic cpu_nmib
|
||||
);
|
||||
|
||||
|
||||
logic [7:0] cpu_data_in;
|
||||
assign cpu_data_in = cpu_data;
|
||||
|
||||
logic [7:0] cpu_data_out;
|
||||
assign cpu_data = cpu_rwb ? cpu_data_out : 'z;
|
||||
|
||||
|
||||
logic [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
|
||||
|
||||
|
||||
ram main_memory(
|
||||
.address(cpu_addr[14:0]),
|
||||
.clock(clk),
|
||||
.data(cpu_data_in),
|
||||
.wren(~cpu_rwb),
|
||||
.q(cpu_data_out)
|
||||
);
|
||||
|
||||
|
||||
endmodule
|
||||
|
||||
Reference in New Issue
Block a user