From 21badda5b299c96d76dc3ebc6c2aa542360f51ca Mon Sep 17 00:00:00 2001 From: Thomas Pietrzak Date: Wed, 5 Dec 2018 16:58:25 +0100 Subject: [PATCH] adjust --- fpga/Cmod-A7-Master.xdc | 2 +- .../sources_1/new/forceconverter.v | 39 +++--- fpga/forcefader.srcs/sources_1/new/spring.v | 4 +- fpga/forcefader.v | 8 +- fpga/forcefader.xpr | 11 +- fpga/forcefader_ts.wcfg | 116 ++++-------------- 6 files changed, 61 insertions(+), 119 deletions(-) diff --git a/fpga/Cmod-A7-Master.xdc b/fpga/Cmod-A7-Master.xdc index f581a25..120c1a4 100644 --- a/fpga/Cmod-A7-Master.xdc +++ b/fpga/Cmod-A7-Master.xdc @@ -8,7 +8,7 @@ set_property -dict { PACKAGE_PIN L17 IOSTANDARD LVCMOS33 } [get_ports { sysclk create_clock -add -name sys_clk_pin -period 83.33 -waveform {0 41.66} [get_ports {sysclk}]; ## LEDs -#set_property -dict { PACKAGE_PIN A17 IOSTANDARD LVCMOS33 } [get_ports { led[0] }]; #IO_L12N_T1_MRCC_16 Sch=led[1] +set_property -dict { PACKAGE_PIN A17 IOSTANDARD LVCMOS33 } [get_ports { overflow }]; #IO_L12N_T1_MRCC_16 Sch=led[1] #set_property -dict { PACKAGE_PIN C16 IOSTANDARD LVCMOS33 } [get_ports { led[1] }]; #IO_L13P_T2_MRCC_16 Sch=led[2] ## RGB LED diff --git a/fpga/forcefader.srcs/sources_1/new/forceconverter.v b/fpga/forcefader.srcs/sources_1/new/forceconverter.v index bd68670..e8402d1 100644 --- a/fpga/forcefader.srcs/sources_1/new/forceconverter.v +++ b/fpga/forcefader.srcs/sources_1/new/forceconverter.v @@ -2,35 +2,38 @@ module forceconverter( input sysclk, input signed [16:0] input_forcevalue, output output_direction, - output reg output_pwm = 0 + output reg output_pwm = 0, + output output_overflow ); - wire [16:0]absforce; + wire [15:0]absforce; assign absforce = input_forcevalue < 0 ? - input_forcevalue : input_forcevalue; assign output_direction = input_forcevalue[16]; + assign output_overflow = absforce > 12'hfff; - // 2.94KHz - reg [11:0] slowclkcounter = 0; - reg [11:0] currentamplitude = 0; + reg [3:0] slowclkcounter = 0; always @(posedge sysclk) begin slowclkcounter <= slowclkcounter + 1; - if (slowclkcounter == 0) begin + end + + // 2.94KHz + wire prescale; + assign prescale = slowclkcounter[3]; + reg [7:0] currentamplitude = 0; + reg [7:0] forcecnt = 0; + always @(posedge prescale) begin + forcecnt <= forcecnt + 1; + if (forcecnt == 0) begin output_pwm <= ~output_pwm; - currentamplitude <= absforce[15:4]; + if (output_overflow == 0) + currentamplitude <= absforce[11:3]; + else + currentamplitude <= 8'hff; end - else if (slowclkcounter == currentamplitude) begin + else if (forcecnt == currentamplitude) begin output_pwm <= ~output_pwm; end - end -/* - wire slowclk; //1.9kHz - assign slowclk = slowclkcounter[9]; - - reg [15:0] forcecnt = 0; - always @(posedge slowclk) begin - forcecnt <= forcecnt + 1; - if ((forcecnt == 0) ^ (forcecnt == absforce)) output_pwm <= ~output_pwm; end -*/ + endmodule diff --git a/fpga/forcefader.srcs/sources_1/new/spring.v b/fpga/forcefader.srcs/sources_1/new/spring.v index 6627c65..5bac3ce 100644 --- a/fpga/forcefader.srcs/sources_1/new/spring.v +++ b/fpga/forcefader.srcs/sources_1/new/spring.v @@ -1,6 +1,6 @@ module spring ( - input [11:0] position, - input [11:0] endposition, + input [9:0] position, + input [9:0] endposition, input [7:0] stiffness, output signed [16:0] outputforce ); diff --git a/fpga/forcefader.v b/fpga/forcefader.v index 1753d02..9a8a5ca 100644 --- a/fpga/forcefader.v +++ b/fpga/forcefader.v @@ -3,6 +3,7 @@ module forcefader ( input input_touch, output en, output dir, + output overflow, input vp_in, input vn_in, input xa_p, @@ -42,8 +43,8 @@ module forcefader ( //compute spring force spring spring_instance( - .position(input_pos), - .endposition(12'b000000000010), + .position(input_pos[11:2]), + .endposition(10'b0111111111), .stiffness(8'b00000011), .outputforce(outputforce) ); @@ -53,7 +54,8 @@ module forcefader ( .sysclk(sysclk), .input_forcevalue(outputforce), .output_direction(dir), - .output_pwm(en) + .output_pwm(en), + .output_overflow(overflow) ); endmodule diff --git a/fpga/forcefader.xpr b/fpga/forcefader.xpr index d86b5d2..d999f87 100644 --- a/fpga/forcefader.xpr +++ b/fpga/forcefader.xpr @@ -32,7 +32,7 @@