Use sram instead of sdram in sim, fully switch to verilator
This commit is contained in:
2
Makefile
2
Makefile
@@ -1,4 +1,4 @@
|
|||||||
ROM_TARGET=test_code/ntw_test
|
ROM_TARGET=test_code/loop_test
|
||||||
|
|
||||||
INIT_HEX=hw/super6502_fpga/init_hex.mem
|
INIT_HEX=hw/super6502_fpga/init_hex.mem
|
||||||
HEX=sw/$(ROM_TARGET)/$(notdir $(ROM_TARGET)).bin
|
HEX=sw/$(ROM_TARGET)/$(notdir $(ROM_TARGET)).bin
|
||||||
|
|||||||
@@ -530,4 +530,4 @@ network_processor #(
|
|||||||
.s_axil_rresp (ntw_RRESP)
|
.s_axil_rresp (ntw_RRESP)
|
||||||
);
|
);
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
FPGA_SRCS_LIST=../../sources.list
|
FPGA_SRCS_LIST=../../sources.list
|
||||||
SIM_SRCS_LIST=sources.list
|
SIM_SRCS_LIST=sources.list
|
||||||
|
BAD_SOURCES_LIST=stubs.list
|
||||||
|
|
||||||
SUPER6502_FPGA_SOURCES=$(shell rtl-manifest $(FPGA_SRCS_LIST))
|
SUPER6502_FPGA_SOURCES=$(shell rtl-manifest $(FPGA_SRCS_LIST))
|
||||||
|
BAD_SOURCES=$(shell rtl-manifest $(BAD_SOURCES_LIST))
|
||||||
|
GOOD_FPGA_SOURCES=$(filter-out $(BAD_SOURCES), $(SUPER6502_FPGA_SOURCES))
|
||||||
SIM_SOURCES=$(shell cat $(SIM_SRCS_LIST))
|
SIM_SOURCES=$(shell cat $(SIM_SRCS_LIST))
|
||||||
|
|
||||||
INCLUDE=include/sdram_controller_define.vh
|
INCLUDE=include/sdram_controller_define.vh
|
||||||
@@ -24,7 +27,7 @@ waves: $(TB_NAME)
|
|||||||
|
|
||||||
$(TB_NAME): $(SUPER6502_FPGA_SOURCES) $(SIM_SOURCES) $(COPY_FILES) $(SD_IMAGE)
|
$(TB_NAME): $(SUPER6502_FPGA_SOURCES) $(SIM_SOURCES) $(COPY_FILES) $(SD_IMAGE)
|
||||||
# $(IVERILOG) -g2005-sv $(FLAGS) -s $@ -o $@ $(INCLUDE) $(SUPER6502_FPGA_SOURCES) $(SIM_SOURCES) -I ../../
|
# $(IVERILOG) -g2005-sv $(FLAGS) -s $@ -o $@ $(INCLUDE) $(SUPER6502_FPGA_SOURCES) $(SIM_SOURCES) -I ../../
|
||||||
verilator --binary $(FLAGS) $(INCLUDE) $(SUPER6502_FPGA_SOURCES) $(SIM_SOURCES) +incdir+../../ -Wno-BLKANDNBLK -Wno-fatal -j 16 --top sim_top --trace-fst -Wno-ASSIGNDLY
|
verilator --binary $(FLAGS) $(INCLUDE) $(GOOD_FPGA_SOURCES) $(SIM_SOURCES) +incdir+../../ -Wno-BLKANDNBLK -Wno-fatal -j 16 --top sim_top --trace-fst -Wno-ASSIGNDLY
|
||||||
|
|
||||||
|
|
||||||
$(SD_IMAGE):
|
$(SD_IMAGE):
|
||||||
|
|||||||
105
hw/super6502_fpga/src/sim/hvl/sdram_sram.sv
Normal file
105
hw/super6502_fpga/src/sim/hvl/sdram_sram.sv
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
module sdram_controller (
|
||||||
|
input i_aresetn,
|
||||||
|
input i_sysclk,
|
||||||
|
input i_sdrclk,
|
||||||
|
input i_tACclk,
|
||||||
|
|
||||||
|
output o_pll_reset,
|
||||||
|
input i_pll_locked,
|
||||||
|
|
||||||
|
output o_sdr_state,
|
||||||
|
|
||||||
|
input i_AXI4_AWVALID,
|
||||||
|
output o_AXI4_AWREADY,
|
||||||
|
input [23:0] i_AXI4_AWADDR,
|
||||||
|
input i_AXI4_WVALID,
|
||||||
|
output o_AXI4_WREADY,
|
||||||
|
input [31:0] i_AXI4_WDATA,
|
||||||
|
input [3:0] i_AXI4_WSTRB,
|
||||||
|
output o_AXI4_BVALID,
|
||||||
|
input i_AXI4_BREADY,
|
||||||
|
input i_AXI4_ARVALID,
|
||||||
|
output o_AXI4_ARREADY,
|
||||||
|
input [23:0] i_AXI4_ARADDR,
|
||||||
|
output o_AXI4_RVALID,
|
||||||
|
input i_AXI4_RREADY,
|
||||||
|
output [31:0] o_AXI4_RDATA,
|
||||||
|
|
||||||
|
input i_AXI4_WLAST,
|
||||||
|
output o_AXI4_RLAST,
|
||||||
|
input [3:0] i_AXI4_AWID,
|
||||||
|
input [2:0] i_AXI4_AWSIZE,
|
||||||
|
input [3:0] i_AXI4_ARID,
|
||||||
|
input [7:0] i_AXI4_ARLEN,
|
||||||
|
input [2:0] i_AXI4_ARSIZE,
|
||||||
|
input [1:0] i_AXI4_ARBURST,
|
||||||
|
input [7:0] i_AXI4_AWLEN,
|
||||||
|
output [3:0] o_AXI4_RID,
|
||||||
|
output [3:0] o_AXI4_BID,
|
||||||
|
|
||||||
|
output [1:0] o_sdr_CKE,
|
||||||
|
output [1:0] o_sdr_n_CS,
|
||||||
|
output [1:0] o_sdr_n_RAS,
|
||||||
|
output [1:0] o_sdr_n_CAS,
|
||||||
|
output [1:0] o_sdr_n_WE,
|
||||||
|
output [3:0] o_sdr_BA,
|
||||||
|
output [25:0] o_sdr_ADDR,
|
||||||
|
output [31:0] o_sdr_DATA,
|
||||||
|
output [31:0] o_sdr_DATA_oe,
|
||||||
|
input [31:0] i_sdr_DATA,
|
||||||
|
output [3:0] o_sdr_DQM
|
||||||
|
);
|
||||||
|
|
||||||
|
assign o_sdr_state = '1;
|
||||||
|
|
||||||
|
assign o_AXI4_RLAST = '0;
|
||||||
|
assign o_AXI4_RID = '0;
|
||||||
|
assign o_AXI4_BID = '0;
|
||||||
|
|
||||||
|
assign o_sdr_CKE = '0;
|
||||||
|
assign o_sdr_n_CS = '0;
|
||||||
|
assign o_sdr_n_RAS = '0;
|
||||||
|
assign o_sdr_n_CAS = '0;
|
||||||
|
assign o_sdr_n_WE = '0;
|
||||||
|
assign o_sdr_BA = '0;
|
||||||
|
assign o_sdr_ADDR = '0;
|
||||||
|
assign o_sdr_DATA = '0;
|
||||||
|
assign o_sdr_DATA_oe = '0;
|
||||||
|
assign o_sdr_DQM = '0;
|
||||||
|
|
||||||
|
|
||||||
|
axi4_lite_ram #(
|
||||||
|
.RAM_SIZE(25),
|
||||||
|
.ZERO_INIT(1)
|
||||||
|
) u_sdram_emu (
|
||||||
|
.i_clk(i_sysclk),
|
||||||
|
.i_rst(~i_aresetn),
|
||||||
|
|
||||||
|
.o_AWREADY(o_AXI4_AWREADY),
|
||||||
|
.o_WREADY(o_AXI4_WREADY),
|
||||||
|
|
||||||
|
.o_BVALID(o_AXI4_BVALID),
|
||||||
|
.i_BREADY(i_AXI4_BREADY),
|
||||||
|
.o_BRESP(o_BRESP),
|
||||||
|
|
||||||
|
.i_ARVALID(i_AXI4_ARVALID),
|
||||||
|
.o_ARREADY(o_AXI4_ARREADY),
|
||||||
|
.i_ARADDR(i_AXI4_ARADDR),
|
||||||
|
.i_ARPROT('0),
|
||||||
|
|
||||||
|
.o_RVALID(o_AXI4_RVALID),
|
||||||
|
.i_RREADY(i_AXI4_RREADY),
|
||||||
|
.o_RDATA(o_AXI4_RDATA),
|
||||||
|
.o_RRESP(o_AXI4_RRESP),
|
||||||
|
|
||||||
|
.i_AWVALID(i_AXI4_AWVALID),
|
||||||
|
.i_AWADDR(i_AXI4_AWADDR),
|
||||||
|
.i_AWPROT('0),
|
||||||
|
|
||||||
|
.i_WVALID(i_AXI4_WVALID),
|
||||||
|
.i_WDATA(i_AXI4_WDATA),
|
||||||
|
.i_WSTRB(i_AXI4_WSTRB)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
endmodule
|
||||||
@@ -87,6 +87,7 @@ logic [DQ_GROUP -1:0] w_sdr_DQM;
|
|||||||
wire [DQ_GROUP *DQ_WIDTH -1:0] w_sdr_DQ;
|
wire [DQ_GROUP *DQ_WIDTH -1:0] w_sdr_DQ;
|
||||||
// ^ Has to be wire because of tristate/inout stuff
|
// ^ Has to be wire because of tristate/inout stuff
|
||||||
|
|
||||||
|
/*
|
||||||
genvar i, j;
|
genvar i, j;
|
||||||
generate
|
generate
|
||||||
for (i=0; i<DQ_GROUP*DQ_WIDTH; i=i+1)
|
for (i=0; i<DQ_GROUP*DQ_WIDTH; i=i+1)
|
||||||
@@ -111,7 +112,7 @@ generate
|
|||||||
);
|
);
|
||||||
end
|
end
|
||||||
endgenerate
|
endgenerate
|
||||||
|
*/
|
||||||
|
|
||||||
// potential sd card sim here?
|
// potential sd card sim here?
|
||||||
|
|
||||||
@@ -200,4 +201,4 @@ initial begin
|
|||||||
$finish();
|
$finish();
|
||||||
end
|
end
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
hvl/sim_top.sv
|
hvl/sim_top.sv
|
||||||
sub/verilog-6502/ALU.v
|
sub/verilog-6502/ALU.v
|
||||||
sub/verilog-6502/cpu_65c02.v
|
sub/verilog-6502/cpu_65c02.v
|
||||||
sub/sim_sdram/generic_sdr_stub.v
|
hvl/sdram_sram.sv
|
||||||
../sub/sd_controller_wrapper/sdspi/bench/verilog/mdl_sdio.v
|
../sub/sd_controller_wrapper/sdspi/bench/verilog/mdl_sdio.v
|
||||||
../sub/sd_controller_wrapper/sdspi/bench/verilog/mdl_sdcmd.v
|
../sub/sd_controller_wrapper/sdspi/bench/verilog/mdl_sdcmd.v
|
||||||
../sub/sd_controller_wrapper/sdspi/bench/verilog/mdl_sdrx.v
|
../sub/sd_controller_wrapper/sdspi/bench/verilog/mdl_sdrx.v
|
||||||
../sub/sd_controller_wrapper/sdspi/bench/verilog/mdl_sdtx.v
|
../sub/sd_controller_wrapper/sdspi/bench/verilog/mdl_sdtx.v
|
||||||
../sub/sd_controller_wrapper/sdspi/bench/verilog/IOBUF.v
|
../sub/sd_controller_wrapper/sdspi/bench/verilog/IOBUF.v
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ python3.11 -m venv .user_venv
|
|||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
|
|
||||||
module load efinity/2023.1
|
module load efinity/2023.1
|
||||||
module load iverilog/12.0
|
module load verilator
|
||||||
module load gtkwave/3.3_gtk3
|
module load gtkwave/3.3_gtk3
|
||||||
|
|
||||||
# pip install -r requirements.txt
|
# pip install -r requirements.txt
|
||||||
|
|||||||
Reference in New Issue
Block a user