Skip to content

Commit 0af2d6b

Browse files
committed
DExx_.._Cramps: Add Mux_En config parameter (will remove pin mux if not 1)
Signed-off-by: Michael Brown <producer@holotronic.dk>
1 parent 4ad6042 commit 0af2d6b

File tree

9 files changed

+31
-17
lines changed

9 files changed

+31
-17
lines changed

HW/QuartusProjects/Common/bidir_io.sv

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module bidir_io
2-
#(parameter IOWidth=36, parameter PortNumWidth=8)
2+
#(parameter IOWidth=36, parameter PortNumWidth=8, parameter Mux_En = 1)
33
(
44
input [PortNumWidth-1:0] portselnum [IOWidth-1:0],
55
input clk,
@@ -24,8 +24,14 @@ generate
2424

2525
always @ (posedge clk)
2626
begin
27-
io_data_in[loop] <= gpioport[portselnum[loop]];
28-
outmuxdataout[loop] <= out_data[portselnum[loop]];
27+
if (Mux_En == 1) begin
28+
io_data_in[loop] <= gpioport[portselnum[loop]];
29+
outmuxdataout[loop] <= out_data[portselnum[loop]];
30+
end
31+
else begin
32+
io_data_in[loop] <= gpioport[loop];
33+
outmuxdataout[loop] <= out_data[loop];
34+
end
2935
end
3036
end
3137
endgenerate

HW/QuartusProjects/Common/gpio_adr_decoder_reg.sv

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ parameter NumGPIO = 2;
8080
parameter Capsense = 1;
8181
parameter NumSense = 4;
8282
parameter ADC = "";
83+
parameter Mux_En = 1;
8384
// local param
8485
parameter IoRegWidth = 24;
8586
parameter AdcOutShift = 2;
@@ -154,12 +155,12 @@ parameter TotalNumregs = Mux_regPrIOReg * NumIOAddrReg * NumPinsPrIOAddr;
154155
wire [NumSense-1:0] sense;
155156
wire charge;
156157
wire [3:0] hysteresis[NumSense-1:0];
157-
158-
wire sr_delay_act;
159-
wire sr_init_delay_act;
158+
159+
wire sr_delay_act;
160+
wire sr_init_delay_act;
160161
wire sense_reset;
161162
// wire sense_reset = ~reset_reg_N;
162-
163+
163164
genvar sh;
164165
generate
165166
for(sh=0;sh<NumSense;sh=sh+1) begin : sense_hystloop
@@ -268,14 +269,14 @@ generate if (Capsense >= 1) begin
268269
end
269270
else if ( write_address ) begin
270271
if (busaddress_r == 10'h0304) begin
271-
hysteresis_reg <= busdata_in_r;
272+
hysteresis_reg <= busdata_in_r;
272273
reset_sr <= 1'b1;
273-
end
274+
end
274275
else begin
275-
hysteresis_reg <= hysteresis_reg;
276+
hysteresis_reg <= hysteresis_reg;
276277
reset_sr <= 1'b0;
277278
end
278-
end
279+
end
279280
end
280281
end
281282
endgenerate
@@ -287,11 +288,11 @@ endgenerate
287288
sr_init_delay[1] <= sr_init_delay[0];
288289
sr_init_delay[2] <= sr_init_delay[1];
289290
end
290-
291+
291292
assign sr_delay_act = (sr_delay[1] == 1'b1 && sr_delay[0] == 1'b0) ? 1'b1 : 1'b0;
292293
assign sr_init_delay_act = (sr_init_delay[2] == 1'b0 && sr_init_delay[0] == 1'b1) ? 1'b1 : 1'b0;
293294
assign sense_reset = ~reset_reg_N | ~buttons[1] | sr_delay_act | sr_init_delay_act;
294-
295+
295296
genvar il;
296297
generate
297298
for(il=0;il<NumIOAddrReg;il=il+1) begin : reg_initloop
@@ -351,7 +352,7 @@ endgenerate
351352
// wire [GPIOWidth-1:0] gpio1_input_data;
352353
// assign gpio_input_data[1] = {gpio1_input_data[GPIOWidth-1:5],sense,charge};
353354
generate if (Capsense >=1) begin
354-
bidir_io #(.IOWidth(GPIOWidth * NumGPIO),.PortNumWidth(PortNumWidth)) bidir_io_inst
355+
bidir_io #(.IOWidth(GPIOWidth * NumGPIO),.PortNumWidth(PortNumWidth),.Mux_En(Mux_En)) bidir_io_inst
355356
(
356357
.clk(reg_clk),
357358
.portselnum(portnumsel),
@@ -363,7 +364,7 @@ generate if (Capsense >=1) begin
363364
);
364365
end
365366
else begin
366-
bidir_io #(.IOWidth(GPIOWidth * NumGPIO),.PortNumWidth(PortNumWidth)) bidir_io_inst
367+
bidir_io #(.IOWidth(GPIOWidth * NumGPIO),.PortNumWidth(PortNumWidth),.Mux_En(Mux_En)) bidir_io_inst
367368
(
368369
.clk(reg_clk),
369370
.portselnum(portnumsel),

HW/QuartusProjects/DE10_Nano_FB_Cramps/DE10_Nano_FB_Cramps.sv

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ parameter NumIOAddrReg = 6;
148148
// connection of internal logics
149149
// assign LED[5:1] = fpga_led_internal | {7'b0000000, led_level};
150150
assign LED[4:1] = touched;
151-
151+
152152
assign fpga_clk_50=FPGA_CLK1_50;
153153
// assign stm_hw_events = {{15{1'b0}}, SW, fpga_led_internal, fpga_debounced_buttons};
154154
// hm2
@@ -326,7 +326,7 @@ endgenerate
326326
gpio_adr_decoder_reg gpio_adr_decoder_reg_inst
327327
(
328328
.CLOCK(fpga_clk_50) , // input CLOCK_sig
329-
.reg_clk(clkhigh_sig) , // input CLOCK_sig
329+
.reg_clk(hm_clk_high) , // input CLOCK_sig
330330
.reset_reg_N(hps_fpga_reset_n) , // input reset_reg_N_sig
331331
.chip_sel(hm_chipsel[0]) , // input data_ready_sig
332332
.write_reg(hm_write) , // input data_ready_sig
@@ -356,6 +356,7 @@ defparam gpio_adr_decoder_reg_inst.MuxGPIOIOWidth = MuxGPIOIOWidth;
356356
defparam gpio_adr_decoder_reg_inst.NumIOAddrReg = NumIOAddrReg;
357357
defparam gpio_adr_decoder_reg_inst.NumGPIO = NumGPIO;
358358
defparam gpio_adr_decoder_reg_inst.ADC = ADC;
359+
defparam gpio_adr_decoder_reg_inst.Mux_En = Mux_En;
359360
defparam gpio_adr_decoder_reg_inst.Capsense = Capsense;
360361
defparam gpio_adr_decoder_reg_inst.NumSense = NumSense;
361362

HW/hm2/config/DExx_Nano_xxx_Cramps/atlas_3x24.sv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ parameter BoardAdaptor = 0;
3030
parameter MuxGPIOIOWidth = IOWidth/NumGPIO;
3131
parameter MuxLedWidth = LEDCount/NumGPIO;
3232
parameter ADC = "DE0-Nano-SoC";
33+
parameter Mux_En = 1;
3334
parameter Capsense = 0;
3435
parameter NumSense = 0;
3536
endpackage //_HeaderIncluded

HW/hm2/config/DExx_Nano_xxx_Cramps/atlas_3x24_cap.sv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ parameter BoardAdaptor = 0;
3030
parameter MuxGPIOIOWidth = IOWidth/NumGPIO;
3131
parameter MuxLedWidth = LEDCount/NumGPIO;
3232
parameter ADC = "DE0-Nano-SoC";
33+
parameter Mux_En = 1;
3334
parameter Capsense = 1;
3435
parameter NumSense = 4;
3536
endpackage //_HeaderIncluded

HW/hm2/config/DExx_Nano_xxx_Cramps/atlas_3x24_cap_enc.sv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ parameter BoardAdaptor = 0;
3030
parameter MuxGPIOIOWidth = IOWidth/NumGPIO;
3131
parameter MuxLedWidth = LEDCount/NumGPIO;
3232
parameter ADC = "DE0-Nano-SoC";
33+
parameter Mux_En = 1;
3334
parameter Capsense = 1;
3435
parameter NumSense = 4;
3536
endpackage //_HeaderIncluded

HW/hm2/config/DExx_Nano_xxx_Cramps/atlas_3x24_cap_enc_bspi.sv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ parameter BoardAdaptor = 0;
3030
parameter MuxGPIOIOWidth = IOWidth/NumGPIO;
3131
parameter MuxLedWidth = LEDCount/NumGPIO;
3232
parameter ADC = "DE0-Nano-SoC";
33+
parameter Mux_En = 1;
3334
parameter Capsense = 1;
3435
parameter NumSense = 4;
3536
endpackage //_HeaderIncluded

HW/hm2/config/DExx_Nano_xxx_Cramps/atlas_3x24_cap_enc_dbspi.sv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ parameter BoardAdaptor = 0;
3030
parameter MuxGPIOIOWidth = IOWidth/NumGPIO;
3131
parameter MuxLedWidth = LEDCount/NumGPIO;
3232
parameter ADC = "DE0-Nano-SoC";
33+
parameter Mux_En = 1;
3334
parameter Capsense = 1;
3435
parameter NumSense = 4;
3536
endpackage //_HeaderIncluded

HW/hm2/config/DExx_Nano_xxx_Cramps/atlas_st_fpga_soc_dc1f_ss.sv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ parameter BoardAdaptor = 0;
3030
parameter MuxGPIOIOWidth = IOWidth/NumGPIO;
3131
parameter MuxLedWidth = LEDCount/NumGPIO;
3232
parameter ADC = "DE0-Nano-SoC";
33+
parameter Mux_En = 0;
3334
parameter Capsense = 0;
3435
parameter NumSense = 4;
3536
endpackage //_HeaderIncluded

0 commit comments

Comments
 (0)