§ Файл 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