X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/42f57e0294c13f14f8ebcdcc529b5872c2884786..6db28145eacac986d481ceadf7ee9fc1061555fd:/fpga/tests/tb_min_max_tracker.v diff --git a/fpga/tests/tb_min_max_tracker.v b/fpga/tests/tb_min_max_tracker.v new file mode 100644 index 00000000..4cccc3f1 --- /dev/null +++ b/fpga/tests/tb_min_max_tracker.v @@ -0,0 +1,74 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2014 iZsh +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// testbench for min_max_tracker +`include "min_max_tracker.v" + +`define FIN "tb_tmp/data.filtered.gold" +`define FOUT_MIN "tb_tmp/data.min" +`define FOUT_MAX "tb_tmp/data.max" + +module min_max_tracker_tb; + + integer fin; + integer fout_min, fout_max; + integer r; + + reg clk; + reg [7:0] adc_d; + wire [7:0] min; + wire [7:0] max; + + initial + begin + clk = 0; + fin = $fopen(`FIN, "r"); + if (!fin) begin + $display("ERROR: can't open the data file"); + $finish; + end + fout_min = $fopen(`FOUT_MIN, "w+"); + fout_max = $fopen(`FOUT_MAX, "w+"); + if (!$feof(fin)) + adc_d = $fgetc(fin); // read the first value + end + + always + # 1 clk = !clk; + + // input + initial + begin + while (!$feof(fin)) begin + @(negedge clk) adc_d <= $fgetc(fin); + end + + if ($feof(fin)) + begin + # 3 $fclose(fin); + $fclose(fout_min); + $fclose(fout_max); + $finish; + end + end + + initial + begin + // $monitor("%d\t min: %x, max: %x", $time, min, max); + end + + // output + always @(negedge clk) + if ($time > 2) begin + r = $fputc(min, fout_min); + r = $fputc(max, fout_max); + end + + // module to test + min_max_tracker tracker(clk, adc_d, 8'd127, min, max); + +endmodule \ No newline at end of file