§ Файл tb.v

Это главный файл, который будет содержать остальную логику.
`timescale 10ns / 1ns

module tb;

// ---------------------------------------------------------------------
reg clock;
reg clock25;
always #0.5 clock   = ~clock;
always #1.5 clock25 = ~clock25;

initial begin clock = 1; clock25 = 0; #2000 $finish; end
initial begin $dumpfile("tb.vcd"); $dumpvars(0, tb); end
// ---------------------------------------------------------------------

reg  [ 7:0] mem;
reg  [ 7:0] memory[65536];      // 64K x 8
wire [15:0] cursor;             // Адрес памяти
wire [ 7:0] out;                // Для записи
wire        we;

initial $readmemh("program.hex", prgmem, 16'h0000);

/* Формируется логика чтения и записи в память */
always @(posedge clock) begin

    mem <= memory[ cursor ];
    if (we) memory[ cursor ] <= out;

end
// ---------------------------------------------------------------------

endmodule

§ 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
30 авг, 2020
© 2007-2022 Мыш кушает в парке