]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - fpga/hi_simulate.v
fix 'hf iclass reader'
[proxmark3-svn] / fpga / hi_simulate.v
index 92ebcb51387c48be14eef162931115c68096b04b..5fc2e11354807d5ef96164e319303492b035047e 100644 (file)
@@ -33,15 +33,33 @@ module hi_simulate(
     output dbg;
     input [2:0] mod_type;
 
+assign adc_clk = ck_1356meg;
 
 // The comparator with hysteresis on the output from the peak detector.
 reg after_hysteresis;
-assign adc_clk = ck_1356meg;
+reg [11:0] has_been_low_for;
 
 always @(negedge adc_clk)
 begin
-    if(& adc_d[7:5]) after_hysteresis = 1'b1;           // if (adc_d >= 224)
-    else if(~(| adc_d[7:5])) after_hysteresis = 1'b0;   // if (adc_d <= 31)
+    if (& adc_d[7:5]) after_hysteresis <= 1'b1;           // if (adc_d >= 224)
+    else if (~(| adc_d[7:5])) after_hysteresis <= 1'b0;   // if (adc_d <= 31)
+
+       if (adc_d >= 224)
+    begin
+        has_been_low_for <= 12'd0;
+    end
+    else
+    begin
+        if (has_been_low_for == 12'd4095)
+        begin
+            has_been_low_for <= 12'd0;
+            after_hysteresis <= 1'b1;
+        end
+        else
+               begin
+            has_been_low_for <= has_been_low_for + 1;
+               end     
+    end
 end
 
 
@@ -114,7 +132,7 @@ always @(*)
 // modulation than a real tag would.
 assign pwr_hi = 1'b0;                   // HF antenna connected to GND
 assign pwr_oe3 = 1'b0;                  // 10k Load
-assign pwr_oe1 = modulating_carrier;    // 33 Ohms Load
+assign pwr_oe1 = 1'b0;                  // 33 Ohms Load
 assign pwr_oe4 = modulating_carrier;    // 33 Ohms Load
 
 // This is all LF and doesn't matter
Impressum, Datenschutz