Merge remote-tracking branch 'origin/jr/cv_tb' into sjk/tk_rc61
diff --git a/openlane/rapcores/config.tcl b/openlane/rapcores/config.tcl
index d81e708..338e3ea 100644
--- a/openlane/rapcores/config.tcl
+++ b/openlane/rapcores/config.tcl
@@ -59,6 +59,12 @@
# block met5 with obstruction
set ::env(GLB_RT_OBS) "met5 0 0 1000 1000"
set ::env(GLB_RT_MAXLAYER) 5
+set ::env(VDD_PIN) vccd1
+set ::env(GND_PIN) vssd1
+set ::env(FP_PDN_VOFFSET) "14"
+set ::env(FP_PDN_VPITCH) "180"
+set ::env(FP_PDN_HOFFSET) "14"
+set ::env(FP_PDN_HPITCH) "180"
set ::env(SYNTH_USE_PG_PINS_DEFINES) "USE_POWER_PINS"
diff --git a/rapcores b/rapcores
index 7afb4a1..2a22260 160000
--- a/rapcores
+++ b/rapcores
@@ -1 +1 @@
-Subproject commit 7afb4a10af865163dffdba6908b7a4f44c4ec243
+Subproject commit 2a22260b4f7fb82b172db9bb8b3b2689d0006b93
diff --git a/verilog/dv/caravel/user_proj_example/io_ports/Makefile b/verilog/dv/caravel/user_proj_example/io_ports/Makefile
index d6c2bf6..e47c2f6 100644
--- a/verilog/dv/caravel/user_proj_example/io_ports/Makefile
+++ b/verilog/dv/caravel/user_proj_example/io_ports/Makefile
@@ -18,11 +18,14 @@
VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
IP_PATH = ../../../../ip
-BEHAVIOURAL_MODELS = ../../
+BEHAVIOURAL_MODELS = ../../
+RAPCORES_PATH = ../../../../../rapcores
-GCC_PATH?=/ef/apps/bin
+GCC_PATH?=//opt/riscv32/bin
GCC_PREFIX?=riscv32-unknown-elf
-PDK_PATH?=/ef/tech/SW/sky130A
+PDK_PATH?=$(PDK_ROOT)/sky130A
+
+SIM?=RTL
SIM?=RTL
@@ -37,13 +40,14 @@
%.vvp: %_tb.v %.hex
ifeq ($(SIM),RTL)
iverilog -DFUNCTIONAL -DSIM -I $(BEHAVIOURAL_MODELS) \
- -I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) \
- $< -o $@
+ -I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) -I $(RAPCORES_PATH)/.. -I $(RAPCORES_PATH)/src -I $(RAPCORES_PATH)/testbench \
+ -o $@ $<
else
iverilog -DFUNCTIONAL -DSIM -DGL -I $(BEHAVIOURAL_MODELS) \
- -I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) \
- $< -o $@
+ -I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) -I $(RAPCORES_PATH)/.. -I $(RAPCORES_PATH)/src \
+ -o $@ $<
endif
+# MERGE: -I $(VERILOG_PATH) maybe needed for GL
%.vcd: %.vvp
vvp $<
@@ -52,7 +56,7 @@
${GCC_PATH}/${GCC_PREFIX}-gcc -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,$(FIRMWARE_PATH)/sections.lds,--strip-debug -ffreestanding -nostdlib -o $@ $(FIRMWARE_PATH)/start.s $<
%.hex: %.elf
- ${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@
+ ${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@
# to fix flash base address
sed -i 's/@10000000/@00000000/g' $@
diff --git a/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c b/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c
index a159f0a..28ba9e2 100644
--- a/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c
+++ b/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c
@@ -49,12 +49,48 @@
reg_mprj_io_3 = GPIO_MODE_USER_STD_OUTPUT;
reg_mprj_io_4 = GPIO_MODE_USER_STD_OUTPUT;
reg_mprj_io_5 = GPIO_MODE_USER_STD_OUTPUT;
- reg_mprj_io_6 = GPIO_MODE_USER_STD_OUTPUT;
- reg_mprj_io_7 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_6 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_7 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_14 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_17 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_18 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_19 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_20 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_21 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_22 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_23 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_24 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_25 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_26 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_27 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_28 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_29 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_30 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_31 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_32 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_33 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_34 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_35 = GPIO_MODE_USER_STD_INPUT_NOPULL;
+ reg_mprj_io_36 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_37 = GPIO_MODE_USER_STD_OUTPUT;
/* Apply configuration */
reg_mprj_xfer = 1;
while (reg_mprj_xfer == 1);
+ // Configure LA probes [31:0], [127:64] as inputs to the cpu
+ // Configure LA probes [63:32] as outputs from the cpu
+ reg_la0_ena = 0xFFFFFFFF; // [31:0]
+ reg_la1_ena = 0x00000000; // [95:64]
+ reg_la2_ena = 0x00000000; // [63:32]
+ reg_la3_ena = 0xFFFFFFFF; // [127:96]
+
+ // Set Counter value to zero through LA probes [63:32]
+ reg_la2_data = 0x00000003;
+
}
diff --git a/verilog/dv/caravel/user_proj_example/io_ports/io_ports_tb.v b/verilog/dv/caravel/user_proj_example/io_ports/io_ports_tb.v
index c680a0b..222e5e3 100644
--- a/verilog/dv/caravel/user_proj_example/io_ports/io_ports_tb.v
+++ b/verilog/dv/caravel/user_proj_example/io_ports/io_ports_tb.v
@@ -17,6 +17,34 @@
`timescale 1 ns / 1 ps
+`include "defines.v"
+`include "rapcore_caravel_defines.v"
+`include "macro_params.v"
+`include "constants.v"
+`include "quad_enc.v"
+`include "spi.v"
+`include "dda_timer.v"
+`include "spi_state_machine.v"
+`include "microstepper/chargepump.v"
+`include "microstepper/microstepper_control.v"
+`include "microstepper/mytimer_8.v"
+`include "microstepper/mytimer_10.v"
+`include "microstepper/microstep_counter.v"
+`include "microstepper/cosine.v"
+`include "microstepper/analog_out.v"
+`include "microstepper/microstepper_top.v"
+`include "rapcore.v"
+`include "hbridge_coil.v"
+`include "pwm_duty.v"
+
+//`define USE_POWER_PINS
+
+`ifdef PROJ_GL
+ `include "gl/rapcore.v"
+`else
+ `include "rapcore_caravel.v"
+`endif
+
`include "caravel.v"
`include "spiflash.v"
@@ -48,7 +76,7 @@
// Repeat cycles of 1000 clock edges as needed to complete testbench
repeat (25) begin
- repeat (1000) @(posedge clock);
+ repeat (4000) @(posedge clock);
// $display("+1000 cycles");
end
$display("%c[1;31m",27);
@@ -98,7 +126,7 @@
end
always @(mprj_io) begin
- #1 $display("MPRJ-IO state = %b ", mprj_io[7:0]);
+ #1 $display("MPRJ-IO state = %b ", mprj_io[37:0]);
end
wire flash_csb;
@@ -112,6 +140,96 @@
wire USER_VDD1V8 = power4;
wire VSS = 1'b0;
+
+ reg step;
+ reg dir;
+ reg enable_in;
+ wire [12:0] target_current1;
+ wire [12:0] target_current2;
+ wire signed [12:0] current1;
+ wire signed [12:0] current2;
+
+ wire analog_out1;
+ wire analog_out2;
+ reg analog_cmp1;
+ reg analog_cmp2;
+ reg [40:0] step_clock;
+ reg [20:0] cnt;
+ reg [12:0] current_abs1;
+ reg [12:0] current_abs2;
+ wire phase_a1_l;
+ wire phase_a2_l;
+ wire phase_b1_l;
+ wire phase_b2_l;
+ wire phase_a1_h;
+ wire phase_a2_h;
+ wire phase_b1_h;
+ wire phase_b2_h;
+ wire resetn;
+
+// assign CHARGEPUMP = mprj_io[15];
+ assign analog_out1 = mprj_io[27];
+ assign analog_out2 = mprj_io[28];
+ assign phase_a1_l = mprj_io[23];
+ assign phase_a2_l = mprj_io[19];
+ assign phase_b1_l = mprj_io[16];
+ assign phase_b2_l = mprj_io[20];
+ assign phase_a1_h = mprj_io[21];
+ assign phase_a2_h = mprj_io[18];
+ assign phase_b1_h = mprj_io[14];
+ assign phase_b2_h = mprj_io[17];
+// assign BUFFER_DTR = mprj_io[37];
+// assign MOVE_DONE = mprj_io[24];
+// assign CIPO = mprj_io[36];
+// assign STEPOUTPUT = mprj_io[30];
+// assign DIROUTPUT = mprj_io[31];
+ assign mprj_io[25] = analog_cmp1;
+ assign mprj_io[26] = analog_cmp2;
+// assign mprj_io[18] = ENC_B;
+// assign mprj_io[19] = ENC_A;
+// assign mprj_io[29] = HALT;
+// assign mprj_io[35] = SCK;
+// assign mprj_io[34] = CS;
+// assign mprj_io[22] = COPI;
+ assign mprj_io[32] = step;
+ assign mprj_io[33] = dir;
+ assign resetn = RSTB;
+
+ always @(posedge clock) begin
+ if (!resetn) begin
+ cnt <= 0;
+ analog_cmp1 <= 1;
+ analog_cmp2 <= 1;
+ step <= 1;
+ step_clock <= 40'b0;
+ end
+ else begin
+ cnt <= cnt + 1;
+ enable_in <= 1;
+ if (current1[12] == 1'b1) begin
+ current_abs1 = -current1;
+ end
+ else begin
+ current_abs1 = current1;
+ end
+ if (current2[12] == 1'b1) begin
+ current_abs2 = -current2;
+ end
+ else begin
+ current_abs2 = current2;
+ end
+ step_clock <= step_clock + 1;
+ step <= step_clock[10];
+ analog_cmp1 <= (current_abs1[11:0] >= target_current1[11:0]); // compare unsigned
+ analog_cmp2 <= (current_abs2[11:0] >= target_current2[11:0]);
+ if (cnt <= 20'h4CA9) begin
+ dir <= 1;
+ end
+ else
+ dir <= 0;
+ end
+ end
+
caravel uut (
.vddio (VDD3V3),
.vssio (VSS),
@@ -137,6 +255,7 @@
.resetb (RSTB)
);
+
spiflash #(
.FILENAME("io_ports.hex")
) spiflash (
@@ -148,5 +267,38 @@
.io3() // not used
);
+ pwm_duty duty1(
+ .clk(clock),
+ .resetn(resetn),
+ .pwm(analog_out1),
+ .duty(target_current1)
+ );
+ pwm_duty duty2(
+ .clk(clock),
+ .resetn(resetn),
+ .pwm(analog_out2),
+ .duty(target_current2)
+ );
+ hbridge_coil hbridge_coil1(
+ .clk(clock),
+ .resetn(resetn),
+ .low_1(phase_a1_l),
+ .high_1(phase_a1_h),
+ .low_2(phase_a2_l),
+ .high_2(phase_a2_h),
+ .current(current1),
+ .polarity_invert_config(1'b0)
+ );
+ hbridge_coil hbridge_coil2(
+ .clk(clock),
+ .resetn(resetn),
+ .low_1(phase_b1_l),
+ .high_1(phase_b1_h),
+ .low_2(phase_b2_l),
+ .high_2(phase_b2_h),
+ .current(current2),
+ .polarity_invert_config(1'b0)
+ );
endmodule
`default_nettype wire
+
diff --git a/verilog/rtl/rapcores.v b/verilog/rtl/rapcores.v
index 4f570cf..491d5bd 100644
--- a/verilog/rtl/rapcores.v
+++ b/verilog/rtl/rapcores.v
@@ -22,7 +22,9 @@
`default_nettype none
-module rapcores(
+module rapcores #(
+ parameter BITS = 32
+)(
`ifdef USE_POWER_PINS
inout vdda1, // User area 1 3.3V supply
inout vdda2, // User area 2 3.3V supply
@@ -57,10 +59,9 @@
output [`MPRJ_IO_PADS-1:0] io_oeb
);
- localparam [6:0] BITS = 32;
-
wire clk;
wire rst;
+ wire enable;
wire [`MPRJ_IO_PADS-1:0] io_in;
wire [`MPRJ_IO_PADS-1:0] io_out;
@@ -91,7 +92,8 @@
assign la_write = ~la_oen[63:32] & ~{BITS{valid}};
// Assuming LA probes [65:64] are for controlling the count clk & reset
assign clk = wb_clk_i;
- assign rst = (~la_oen[65]) ? la_data_in[65]: wb_rst_i;
+ assign rst = ~la_oen[65] && la_data_in[65] && ~wb_rst_i;
+ assign enable = ~la_oen[64] && la_data_in[64];
// GPIO output enable (0 = output, 1 = input)
assign io_oeb[15] = 1'b0; // CHARGEPUMP
@@ -107,40 +109,52 @@
assign io_oeb[18] = 1'b0; // PHASE_A2_H
assign io_oeb[14] = 1'b0; // PHASE_B1_H
assign io_oeb[17] = 1'b0; // PHASE_B2_H
- assign io_oeb[18] = 1'b1; // ENC_B
- assign io_oeb[19] = 1'b1; // ENC_A
- assign io_oeb[12] = 1'b0; // BUFFER_DTR
+ assign io_oeb[12] = 1'b0; // ENC_B
+ assign io_oeb[13] = 1'b0; // ENC_A
+ assign io_oeb[37] = 1'b0; // BUFFER_DTR
assign io_oeb[24] = 1'b0; // MOVE_DONE
assign io_oeb[29] = 1'b1; // HALT
- assign io_oeb[10] = 1'b1; // SCK
- assign io_oeb[9] = 1'b1; // CS
- assign io_oeb[8] = 1'b1; // COPI
- assign io_oeb[11] = 1'b0; // CIPO
+ assign io_oeb[35] = 1'b1; // SCK
+ assign io_oeb[34] = 1'b1; // CS
+ assign io_oeb[33] = 1'b1; // COPI
+ assign io_oeb[36] = 1'b0; // CIPO
assign io_oeb[30] = 1'b0; // STEPOUTPUT
assign io_oeb[31] = 1'b0; // DIROUTPUT
assign io_oeb[32] = 1'b1; // STEPINPUT
assign io_oeb[33] = 1'b1; // DIRINPUT
// unused
- assign io_oeb[0] = 1'b1; // JTAG I/O
- assign io_oeb[1] = 1'b1; // SDO
- assign io_oeb[2] = 1'b1; // SDI
- assign io_oeb[3] = 1'b1; // CSB
- assign io_oeb[4] = 1'b1; // SCK
- assign io_oeb[5] = 1'b1; // Rx
- assign io_oeb[6] = 1'b1; // Tx
- assign io_oeb[7] = 1'b1; // IRQ
+ assign io_oeb[0] = 1'b0; // JTAG I/O
+ assign io_oeb[1] = 1'b0; // SDO
+ assign io_oeb[2] = 1'b0; // SDI
+ assign io_oeb[3] = 1'b0; // CSB
+ assign io_oeb[4] = 1'b0; // SCK
+ assign io_oeb[5] = 1'b0; // Rx
+ assign io_oeb[6] = 1'b0; // Tx
+ assign io_oeb[7] = 1'b0; // IRQ
assign io_oeb[13] = 1'b1;
- assign io_oeb[22] = 1'b1;
- assign io_oeb[34] = 1'b1;
- assign io_oeb[35] = 1'b1;
- assign io_oeb[36] = 1'b1;
- assign io_oeb[37] = 1'b1;
+ assign io_oeb[8] = 1'b1;
+ assign io_oeb[9] = 1'b1;
+ assign io_oeb[10] = 1'b1;
+ assign io_oeb[11] = 1'b1;
+ assign io_oeb[12] = 1'b1;
+ wire resetn;
+ reg [13:0] resetn_counter = 0;
+ assign resetn = &resetn_counter && rst;
+
+ always @(posedge wb_clk_i) begin
+ if (!resetn && !wb_rst_i && rst) resetn_counter <= resetn_counter +1;
+ end
+
+ // IO
+ assign io_out[7:0] = resetn_counter[13:6]; //count;
+
rapcore rapcore0 (
// IO Pads
.CLK(wb_clk_i),
+ .resetn_in(resetn),
.CHARGEPUMP(io_out[15]),
.analog_cmp1(io_in[25]),
.analog_out1(io_out[27]),
@@ -156,17 +170,18 @@
.PHASE_B2_H(io_out[17]),
.ENC_B(io_in[18]),
.ENC_A(io_in[19]),
- .BUFFER_DTR(io_out[12]),
+ .BUFFER_DTR(io_out[37]),
.MOVE_DONE(io_out[24]),
.HALT(io_in[29]),
- .SCK(io_in[10]),
- .CS(io_in[9]),
- .COPI(io_in[8]),
- .CIPO(io_out[11]),
+ .SCK(io_in[35]),
+ .CS(io_in[34]),
+ .COPI(io_in[22]),
+ .CIPO(io_out[36]),
.STEPOUTPUT(io_out[30]),
.DIROUTPUT(io_out[31]),
.STEPINPUT(io_in[32]),
- .DIRINPUT(io_in[33])
+ .DIRINPUT(io_in[33]),
+ .ENINPUT(enable)
);
endmodule
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v
index e8cc151..44e8eda 100644
--- a/verilog/rtl/user_proj_example.v
+++ b/verilog/rtl/user_proj_example.v
@@ -78,7 +78,7 @@
wire [`MPRJ_IO_PADS-1:0] io_out;
wire [`MPRJ_IO_PADS-1:0] io_oeb;
- wire [31:0] rdata;
+ wire [31:0] rdata;
wire [31:0] wdata;
wire [BITS-1:0] count;
@@ -87,7 +87,7 @@
wire [31:0] la_write;
// WB MI A
- assign valid = wbs_cyc_i && wbs_stb_i;
+ assign valid = wbs_cyc_i && wbs_stb_i;
assign wstrb = wbs_sel_i & {4{wbs_we_i}};
assign wbs_dat_o = rdata;
assign wdata = wbs_dat_i;
@@ -98,41 +98,75 @@
// LA
assign la_data_out = {{(127-BITS){1'b0}}, count};
- // Assuming LA probes [63:32] are for controlling the count register
+ // Assuming LA probes [63:32] are for controlling the count register
assign la_write = ~la_oen[63:32] & ~{BITS{valid}};
- // Assuming LA probes [65:64] are for controlling the count clk & reset
- assign clk = wb_clk_i;
+ // Assuming LA probes [65:64] are for controlling the count clk & reset
+ assign clk = (~la_oen[64]) ? la_data_in[64]: wb_clk_i;
assign rst = (~la_oen[65]) ? la_data_in[65]: wb_rst_i;
-
- top top (
-
- // IO Pads
- .CLK(clk),
- .CHARGEPUMP(io_out[15]),
- .analog_cmp1(io_in[25]),
- .analog_out1(io_out[27]),
- .analog_cmp2(io_in[26]),
- .analog_out2(io_out[28]),
- .PHASE_A1(io_out[23]),
- .PHASE_A2(io_out[19]),
- .PHASE_B1(io_out[16]),
- .PHASE_B2(io_out[20]),
- .PHASE_A1_H(io_out[21]),
- .PHASE_A2_H(io_out[18]),
- .PHASE_B1_H(io_out[14]),
- .PHASE_B2_H(io_out[17]),
- .ENC_B(io_in[18]),
- .ENC_A(io_in[19]),
- .BUFFER_DTR(io_out[12]),
- .MOVE_DONE(io_out[24]),
- .HALT(io_in[29]),
- .SCK(io_in[10]),
- .CS(io_in[9]),
- .COPI(io_in[8]),
- .CIPO(io_out[11])
+ counter #(
+ .BITS(BITS)
+ ) counter(
+ .clk(clk),
+ .reset(rst),
+ .ready(wbs_ack_o),
+ .valid(valid),
+ .rdata(rdata),
+ .wdata(wbs_dat_i),
+ .wstrb(wstrb),
+ .la_write(la_write),
+ .la_input(la_data_in[63:32]),
+ .count(count)
);
endmodule
+module counter #(
+ parameter BITS = 32
+)(
+ input clk,
+ input reset,
+ input valid,
+ input [3:0] wstrb,
+ input [BITS-1:0] wdata,
+ input [BITS-1:0] la_write,
+ input [BITS-1:0] la_input,
+ output ready,
+ output [BITS-1:0] rdata,
+ output [BITS-1:0] count
+);
+ reg ready;
+ reg [BITS-1:0] count;
+ reg [BITS-1:0] rdata;
+
+ always @(posedge clk) begin
+ if (reset) begin
+ count <= 0;
+ ready <= 0;
+ end else begin
+ ready <= 1'b0;
+ if (~|la_write) begin
+ count <= count + 1;
+ end
+ if (valid && !ready) begin
+ ready <= 1'b1;
+ rdata <= count;
+ if (wstrb[0]) count[7:0] <= wdata[7:0];
+ if (wstrb[1]) count[15:8] <= wdata[15:8];
+ if (wstrb[2]) count[23:16] <= wdata[23:16];
+ if (wstrb[3]) count[31:24] <= wdata[31:24];
+ end
+ end
+ end
+
+ genvar i;
+ generate
+ for(i=0; i<BITS; i=i+1) begin
+ always @(posedge clk) begin
+ if (la_write[i]) count[i] <= la_input[i];
+ end
+ end
+ endgenerate
+
+endmodule
`default_nettype wire
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index 0807133..9de1bc4 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -79,7 +79,9 @@
/* User project is instantiated here */
/*--------------------------------------*/
- rapcores rapcores0 (
+ rapcore_caravel rapcore_caravel0 (
+
+`ifndef SIM
`ifdef USE_POWER_PINS
.vdda1(vdda1), // User area 1 3.3V power
.vdda2(vdda2), // User area 2 3.3V power
@@ -90,7 +92,7 @@
.vssd1(vssd1), // User area 1 digital ground
.vssd2(vssd2), // User area 2 digital ground
`endif
-
+`endif
// MGMT core clock and reset
.wb_clk_i(wb_clk_i),