Advertisement
itsme_rudj

Mealy Tollgate FSM Testbench

Jan 14th, 2024 (edited)
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VeriLog 1.21 KB | Source Code | 0 0
  1. `timescale 1ns/1ns
  2.  
  3. module TollGateFSM_tb;
  4.  
  5.   // Inputs
  6.   reg clk;
  7.   reg vehicleApproaches_tb, rfidDetected_tb, sufficientBalance_tb;
  8.  
  9.   // Outputs
  10.   wire gateOpen_tb, tollCollected_tb, vehiclePasses_tb;
  11.  
  12.   // Instantiate the TollGateFSM module
  13.   TollGateFSM toll_gate_fsm_inst (
  14.     .vehicleApproaches(vehicleApproaches_tb),
  15.     .rfidDetected(rfidDetected_tb),
  16.     .sufficientBalance(sufficientBalance_tb),
  17.     .vehiclePasses(vehiclePasses_tb),
  18.     .gateOpen(gateOpen_tb),
  19.     .tollCollected(tollCollected_tb)
  20.   );
  21.  
  22.   // Clock generation
  23.   always begin
  24.     #10 clk = ~clk;
  25.   end
  26.  
  27.   initial begin
  28.     // Initial stimulus
  29.     clk = 0;
  30.     vehicleApproaches_tb = 0;  
  31.     rfidDetected_tb = 0;  
  32.     sufficientBalance_tb = 0;
  33.  
  34.     // Vehicle 1 is Cash-basis
  35.     #10 vehicleApproaches_tb = 1;  rfidDetected_tb = 0;  sufficientBalance_tb = 0;
  36.  
  37.     // Vehicle 3 has RFID Sticker and has insufficient balance
  38.     #10 vehicleApproaches_tb = 1;  rfidDetected_tb = 1; sufficientBalance_tb = 0;
  39.  
  40.     // Vehicle 2 has RFID Sticker and has sufficient balance
  41.     #10 vehicleApproaches_tb = 1;  rfidDetected_tb = 1; sufficientBalance_tb = 1;
  42.  
  43.   end
  44.     // End simulation
  45.     always #100 $stop;
  46.  
  47. endmodule
Tags: FSM Tb Mealy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement