forked from tanchou/Verilog
Refactor ultrasonic modules and testbench for improved functionality and clarity
This commit is contained in:
@@ -13,6 +13,7 @@ module hc_sr04_tb;
|
||||
// === Paramètres ===
|
||||
localparam CLK_FREQ = 27_000_000; // 27 MHz
|
||||
localparam CLK_PERIOD = 37; // Période en ns (~37 ns pour 27 MHz)
|
||||
localparam CLK_MS = CLK_PERIOD * 100;
|
||||
|
||||
// Génération de l'horloge 27 MHz
|
||||
always #(CLK_PERIOD/2) clk = ~clk;
|
||||
@@ -46,7 +47,7 @@ module hc_sr04_tb;
|
||||
begin
|
||||
$display("[%0t ns] Déclenchement d'une mesure", $time);
|
||||
start = 1;
|
||||
#(CLK_PERIOD * 2);
|
||||
#CLK_PERIOD;
|
||||
start = 0;
|
||||
// Attendre que la mesure soit terminée
|
||||
wait(done);
|
||||
@@ -77,6 +78,7 @@ module hc_sr04_tb;
|
||||
|
||||
// Test 1: Mesure unique
|
||||
$display("=== Test 1: Mesure unique ===");
|
||||
@(posedge clk); // Synchroniser avec l'horloge
|
||||
trigger_measurement();
|
||||
// Supposons que hc_sr04_model simule une distance fixe, par exemple 1000 (à ajuster)
|
||||
check_distance(16'd1000);
|
||||
@@ -84,7 +86,9 @@ module hc_sr04_tb;
|
||||
// Test 2: Mesures multiples
|
||||
$display("=== Test 2: Mesures multiples ===");
|
||||
repeat (3) begin
|
||||
#(CLK_PERIOD * 1000); // Attendre entre mesures
|
||||
#(CLK_MS * 100); // Attendre entre mesures
|
||||
@(posedge clk); // Synchroniser avec l'horloge
|
||||
$display("[%0t ns] Déclenchement d'une nouvelle mesure", $time);
|
||||
trigger_measurement();
|
||||
check_distance(16'd1000);
|
||||
end
|
||||
|
Reference in New Issue
Block a user