sugar-lissajous/testbench/tb_fig_ring.sv
2021-02-28 18:59:56 +03:00

70 lines
1.8 KiB
Systemverilog

`timescale 1ns/100ps
module tb_fig_ring;
logic clock = 1'b0;
logic reset = 1'b1;
/* Master clock 100MHz (10ns period) */
always #(10ns/2) clock <= ~clock;
logic pt_ack_o;
logic [7:0] fig_x_o;
logic [8:0] fig_y_o;
logic [7:0] fig_h_o;
logic [7:0] fig_s_o;
logic [7:0] fig_v_o;
logic fig_req_o;
logic [7:0] pt_x;
logic [7:0] pt_y;
logic [7:0] pt_h;
logic pt_req_i;
logic fig_ack_i;
fig_ring DUT (/*AUTOINST*/
// Outputs
.pt_ack_o (pt_ack_o),
.fig_x_o (fig_x_o[7:0]),
.fig_y_o (fig_y_o[8:0]),
.fig_h_o (fig_h_o[7:0]),
.fig_s_o (fig_s_o[7:0]),
.fig_v_o (fig_v_o[7:0]),
.fig_req_o (fig_req_o),
// Inputs
.clock (clock),
.reset (reset),
.pt_x (pt_x[7:0]),
.pt_y (pt_y[7:0]),
.pt_h (pt_h[7:0]),
.pt_req_i (pt_req_i),
.fig_ack_i (fig_ack_i));
assign fig_ack_i = 1'b1;
always_ff @ (posedge clock)
if (pt_ack_o)
pt_req_i <= 1'b0;
initial begin
reset = 1'b1;
pt_req_i = 1'b0;
repeat(10) @(posedge clock) #1;
reset = 1'b0;
@(posedge clock) #1;
pt_x = 0;
pt_y = 0;
pt_h = 100;
pt_req_i = 1'b1;
repeat(1000) @(posedge clock) #1;
$finish;
end
initial begin
$dumpfile("tb_fig_ring.vcd");
$dumpvars;
end
endmodule // tb_fig_ring