§ Файл tb.v

Это главный файл, который будет содержать остальную логику.
1`timescale 10ns / 1ns
2
3module tb;
4
5// ---------------------------------------------------------------------
6reg clock;
7reg clock25;
8always #0.5 clock   = ~clock;
9always #1.5 clock25 = ~clock25;
10
11initial begin clock = 1; clock25 = 0; #2000 $finish; end
12initial begin $dumpfile("tb.vcd"); $dumpvars(0, tb); end
13// ---------------------------------------------------------------------
14
15reg  [ 7:0] mem;
16reg  [ 7:0] memory[65536];      // 64K x 8
17wire [15:0] cursor;             // Адрес памяти
18wire [ 7:0] out;                // Для записи
19wire        we;
20
21initial $readmemh("program.hex", prgmem, 16'h0000);
22
23/* Формируется логика чтения и записи в память */
24always @(posedge clock) begin
25
26    mem <= memory[ cursor ];
27    if (we) memory[ cursor ] <= out;
28
29end
30// ---------------------------------------------------------------------
31
32endmodule

§ makefile

Сборочный файл
all:
	iverilog -g2005-sv -DICARUS=1 tb.v -o tb.qqq
	vvp tb.qqq >> /dev/null
vcd:
	gtkwave tb.vcd
wave:
	gtkwave tb.gtkw
mif:
	date
	quartus_cdb de0 -c de0 --update_mif
	quartus_asm --read_settings_files=on --write_settings_files=off de0 -c de0
	date
clean:
	rm -f tb.qqq
	rm -rf db incremental_db simulation timing
	rm -f *.jdi *.pof *.sld *.rpt *.summary *.sof *.done *.pin *.qws *.bak *.smsg *.qws *.vcd *.qqq *.jic *.map *.qqq
	rm -f greybox_tmp undo_redo.txt PLLJ_PLLSPE_INFO.txt c5_pin_model_dump.txt
	rm -rf .qsys_edit *.o *.bin *.elf