有两个verilog文件,一个模块,一个tb
module led_demo(
input clk,
input rst_n,
output reg led
);
reg [7:0] cnt;
always @ (posedge clk)
begin
if(!rst_n)
cnt <= 0;
else if(cnt == 10)
cnt <= 0;
else
cnt <= cnt + 1;
end
always @ (posedge clk)
begin
if(!rst_n)
led <= 0;
else if(cnt == 10)
led <= !led;
end
endmodule
`timescale 1ns/1ps
module led_demo_tb();
parameter SYSCLK_PERIOD = 10;
reg SYSCLK;
reg NSYSRESET;
wire led;
initial
begin
SYSCLK = 1'b0;
NSYSRESET = 1'b0;
end
initial
begin
#(SYSCLK_PERIOD * 10 )
NSYSRESET = 1'b1;
#1000
$stop;
end
always
#(SYSCLK_PERIOD / 2.0) SYSCLK <= !SYSCLK;
led_demo led_demo_ut0 (
// Inputs
.rst_n(NSYSRESET),
.clk(SYSCLK),
// Outputs
.led( led)
);
endmodule
仿真命令:
xrun led_dem o_tb.v led_demo.v