1
0
mirror of https://github.com/olofk/serv.git synced 2026-01-21 17:55:16 +00:00
olofk.serv/serv_top_tb.v
2018-10-23 23:45:41 +02:00

46 lines
924 B
Verilog

module serv_top_tb;
reg clk = 1'b1;
always #5 clk <= !clk;
vlog_tb_utils vtu();
reg [1023:0] firmware_file;
reg [31:0] memory [0:16383];
reg [31:0] i_data;
reg i_valid = 1'b0;
wire i_ready;
wire [31:0] pc_data;
wire pc_valid;
reg pc_ready = 1'b0;
initial begin
firmware_file = "firmware.hex";
$readmemh(firmware_file, memory);
end
always @(posedge clk) begin
pc_ready <= 1'b1; //Fuck knows
if (i_valid & i_ready)
i_valid <= 1'b0;
if (pc_valid & pc_ready) begin
i_data <= memory[pc_data>>2];
i_valid <= 1'b1;
pc_ready <= 1'b0;
end
end
serv_top dut
(.clk (clk),
.i_i_data (i_data),
.i_i_valid (i_valid),
.o_i_ready (i_ready),
.o_pc_data (pc_data),
.o_pc_valid (pc_valid),
.i_pc_ready (pc_ready));
endmodule