forked from FPGALover/RISCV_picorv32_fpga
71 lines
1.4 KiB
Coq
71 lines
1.4 KiB
Coq
|
//
|
||
|
// Test bench for xoro_top.v
|
||
|
//
|
||
|
`include "timescale.vh"
|
||
|
|
||
|
`define SIMULATION
|
||
|
|
||
|
module xoro_top_tb;
|
||
|
|
||
|
// Define all inputs
|
||
|
reg clk;
|
||
|
reg resn;
|
||
|
|
||
|
// Define all outputs
|
||
|
wire [3:0] leds;
|
||
|
wire [3:0] rnd;
|
||
|
wire serialOut;
|
||
|
|
||
|
// Instantiate DUT.
|
||
|
xoro_top xoro_top (
|
||
|
.CLOCK_50(clk),
|
||
|
.reset_btn(resn),
|
||
|
.LED(leds),
|
||
|
.RND_OUT(rnd),
|
||
|
.UART_TX(serialOut)
|
||
|
);
|
||
|
|
||
|
// Initialize all inputs
|
||
|
initial
|
||
|
begin
|
||
|
clk = 0;
|
||
|
resn = 0;
|
||
|
end
|
||
|
|
||
|
// Specify file for waveform dump
|
||
|
initial begin
|
||
|
$dumpfile ("xoro_top_tb.vcd");
|
||
|
$dumpvars;
|
||
|
end
|
||
|
|
||
|
// Monitor all signals
|
||
|
initial begin
|
||
|
$display("\tclk,\tresn,\tleds,\trnd,\tserialOut,\txoro_top.mem_addr, \txoro_top.mem_rdata,\txoro_top.resetn");
|
||
|
$monitor("\t%b,\t%b,\t%b,\t%b,\t%b,\t\t%h,\t\t%h,\t\t%b", clk, resn, leds, rnd, serialOut, xoro_top.mem_addr, xoro_top.mem_rdata, xoro_top.resetn);
|
||
|
end
|
||
|
|
||
|
// Generate a clock tick
|
||
|
always
|
||
|
#5clk = !clk;
|
||
|
|
||
|
// Generate a reset on start up
|
||
|
event reset_trigger;
|
||
|
event reset_done_trigger;
|
||
|
|
||
|
initial begin
|
||
|
forever begin
|
||
|
@ (reset_trigger);
|
||
|
@ (negedge clk);
|
||
|
resn = 0;
|
||
|
@ (negedge clk);
|
||
|
resn = 1;
|
||
|
-> reset_done_trigger;
|
||
|
end
|
||
|
end
|
||
|
/*
|
||
|
initial begin
|
||
|
-> reset_trigger;
|
||
|
end
|
||
|
*/
|
||
|
endmodule
|