`default_nettype none `timescale 1ns/1ns `include "messages.vh" `ifndef SIMULATION `error_SIMULATION_not_defined ; /* Cause syntax error */ `endif module soc_test(); wire [17:0] sram_addr; wire [15:0] sram_io; wire sram_cs_n; wire sram_oe_n; wire sram_we_n; wire vga_hs; wire vga_vs; wire [2:0] vga_red; wire [2:0] vga_green; wire [2:0] vga_blue; wire led1; wire led2; wire [9:0] image_writes; reg clock_100mhz; reg reset; VGA_640_480_60Hz vga_display ( .horizontal_sync(vga_hs), .vertical_sync(vga_vs), .red(vga_red), .green(vga_green), .blue(vga_blue), .image_writes(image_writes) ); K6R4016V1D_TC10_sram sram ( .sram_addr(sram_addr), .sram_io(sram_io), .sram_cs_not(sram_cs_n), .sram_oe_not(sram_oe_n), .sram_we_not(sram_we_n) ); soc #( .FONT_FILE("../../design/font.mem"), .ROM_FILE("instructions.mem") ) soc ( .clock_100mhz(clock_100mhz), .sram_addr(sram_addr), .sram_io(sram_io), .sram_cs_n(sram_cs_n), .sram_oe_n(sram_oe_n), .sram_we_n(sram_we_n), .vga_hs(vga_hs), .vga_vs(vga_vs), .vga_red(vga_red), .vga_green(vga_green), .vga_blue(vga_blue), .button1(!reset), .button2(1'b1), .led1(led1), .led2(led2) ); integer i; initial begin reset <= 1; clock_100mhz <= 0; for (i = 0; i < 5_000_000; i++) begin #5; if (clock_100mhz) reset <= 0; clock_100mhz <= ~clock_100mhz; end if (led1) `MSG(("error: stack machine in soc hasn't finished working in 25ms")); else `MSG(("error: nothing got displayed in 25ms")); end always @ (image_writes) begin if (image_writes) $finish; end endmodule // soc_test