From a69392707f33d8833d2c59d7f045936419d37c4f Mon Sep 17 00:00:00 2001 From: MichailKaa Date: Tue, 17 Feb 2026 23:05:03 +0300 Subject: [PATCH] Its work! --- FW/src/zx_cartrige.v | 2 +- FW/src/zx_cartrige_tb.v | 184 ++++++++++++++++++++++++++-------------- HW/src/pcb.PcbDoc | Bin 4151808 -> 4026368 bytes 3 files changed, 120 insertions(+), 66 deletions(-) diff --git a/FW/src/zx_cartrige.v b/FW/src/zx_cartrige.v index 8550ab1..bcf05be 100644 --- a/FW/src/zx_cartrige.v +++ b/FW/src/zx_cartrige.v @@ -4,7 +4,7 @@ // CPU adr bus A0...A12 connect directly to CR_ROM chip module zx_cartrige #( // default example parameter - parameter SELF_LOCK_VAL = 10 + parameter SELF_LOCK_VAL = 15 )( // Reset input reset_n, diff --git a/FW/src/zx_cartrige_tb.v b/FW/src/zx_cartrige_tb.v index afe9fca..3a787e4 100644 --- a/FW/src/zx_cartrige_tb.v +++ b/FW/src/zx_cartrige_tb.v @@ -1,17 +1,27 @@ `timescale 1ns / 1ps module tb_zx_cartrige(); + // Управляющие сигналы reg reset_n; reg iorq_n; reg rd_n; reg mreq_n; - reg A7, A13, A14, A15; + // Полная адресная шина (16 бит) + reg [15:0] address; + + // Подключение отдельных бит к DUT + wire A7 = address[7]; + wire A13 = address[13]; + wire A14 = address[14]; + wire A15 = address[15]; + + // Выходы DUT wire ZX_ROM_blk; wire CR_ROM_oe_n; wire [5:0] CR_ROM_A; - // DUT с уменьшенным параметром для быстрой проверки + // Тестируемый модуль (с уменьшенным параметром для быстрой проверки) zx_cartrige #( .SELF_LOCK_VAL(3) ) uut ( @@ -28,19 +38,50 @@ module tb_zx_cartrige(); .CR_ROM_A(CR_ROM_A) ); + // Задачи для моделирования циклов Z80 + // Запись в порт (активируется iorq_n, для инкремента важен его спад) + task write_port(input [15:0] addr); + begin + address = addr; + #10; + iorq_n = 0; // начало цикла IN/OUT + #10; + iorq_n = 1; // завершение цикла – отрицательный фронт + #10; + end + endtask + + // Чтение из памяти + task read_mem(input [15:0] addr); + begin + address = addr; + #10; + mreq_n = 0; // запрос памяти + rd_n = 0; // чтение + #20; // удерживаем для проверки + mreq_n = 1; + rd_n = 1; + #10; + end + endtask + + // Проверка с выводом сообщения + task check_equal(input [31:0] expected, input [31:0] actual, input [80*8:0] msg); + if (expected !== actual) begin + $display("ERROR: %s. Expected %d, got %d", msg, expected, actual); + end + endtask + initial begin - $dumpfile("tb_zx_cartrige.vcd"); + $dumpfile("zx_cartrige.vcd"); $dumpvars(0, tb_zx_cartrige); - // Исходное состояние: сброс активен + // Исходное состояние: сброс активен, все сигналы неактивны reset_n = 0; iorq_n = 1; rd_n = 1; mreq_n = 1; - A7 = 0; - A13 = 0; - A14 = 0; - A15 = 0; + address = 16'h0000; #100; reset_n = 1; #10; @@ -49,90 +90,103 @@ module tb_zx_cartrige(); // Test 1: Инкремент происходит только при A7=0 и спаде iorq_n // ------------------------------------------------------------ $display("=== Test 1: Increment condition (A7=0 and iorq_n falling) ==="); + check_equal(0, CR_ROM_A, "Initial CR_ROM_A"); - if (CR_ROM_A !== 0) $display("ERROR: Initial CR_ROM_A = %d, expected 0", CR_ROM_A); + // Попытка с A7=1 – не должен инкрементироваться + write_port(16'h0080); // A7=1 (адрес 0x80) + #10; + check_equal(0, CR_ROM_A, "After write to port 0x80 (A7=1)"); - // Попытка инкремента с A7=1 – не должен инкрементироваться - A7 = 1; - iorq_n = 0; // rom_page_up = 0|1|0 = 1 – нет изменения + // Корректный инкремент с A7=0 + write_port(16'h007F); // A7=0 #10; - iorq_n = 1; - #10; - if (CR_ROM_A !== 0) $display("ERROR: Increment occurred while A7=1, CR_ROM_A = %d", CR_ROM_A); + check_equal(1, CR_ROM_A, "After first write to 0x7F"); - // Теперь A7=0, создаём отрицательный фронт iorq_n - A7 = 0; - iorq_n = 1; - #10; - iorq_n = 0; // rom_page_up: 1->0 -> negedge - #10; - if (CR_ROM_A !== 1) $display("ERROR: No increment when A7=0 and iorq_n falling, CR_ROM_A = %d", CR_ROM_A); - - iorq_n = 1; + write_port(16'h007F); // второй раз #10; + check_equal(2, CR_ROM_A, "After second write to 0x7F"); // ------------------------------------------------------------ - // Test 2: Достижение SELF_LOCK_VAL блокирует активацию CR_ROM_oe_n + // Test 2: Достижение SELF_LOCK_VAL (3) блокирует дальнейшие инкременты // ------------------------------------------------------------ - $display("=== Test 2: Self-lock prevents CR_ROM_oe_n activation ==="); - - // Инкрементируем до 2 - iorq_n = 0; #10; iorq_n = 1; #10; // CR_ROM_A=2 - iorq_n = 0; #10; iorq_n = 1; #10; // CR_ROM_A=3 (lock) - if (CR_ROM_A !== 3) $display("ERROR: Failed to reach lock, CR_ROM_A = %d", CR_ROM_A); - - // self_lock активен. Проверим, что CR_ROM_oe_n всегда 1 при попытке активации - // Необходимые условия: lower_rom=1 (A13=A14=A15=0), rd_n=0, mreq_n=0 - A13 = 0; A14 = 0; A15 = 0; - rd_n = 0; - mreq_n = 0; + $display("=== Test 2: Self-lock at value 3 ==="); + write_port(16'h007F); // третий раз -> lock #10; - if (CR_ROM_oe_n !== 0) $display("ERROR: CR_ROM_oe_n = %b, expected 1 (self_lock active)", CR_ROM_oe_n); - if (ZX_ROM_blk !== 1) $display("ERROR: ZX_ROM_blk = %b, expected 0", ZX_ROM_blk); + check_equal(3, CR_ROM_A, "After third write (should lock)"); - rd_n = 1; mreq_n = 1; + // Попытка инкремента после блокировки + write_port(16'h007F); #10; + check_equal(3, CR_ROM_A, "Write after lock - no increment"); // ------------------------------------------------------------ - // Test 3: CR_ROM_oe_n активируется при обращении в нижние 8кб - // Условия: lower_rom=1, rd_n=0, mreq_n=0, self_lock=0 + // Test 3: При self_lock=1 CR_ROM_oe_n не активируется даже в нижней ROM // ------------------------------------------------------------ - $display("=== Test 3: CR_ROM_oe_n activation in lower ROM area ==="); + $display("=== Test 3: CR_ROM_oe_n inactive while locked ==="); + read_mem(16'h0100); // адрес в нижней области (0x100) + #10; + check_equal(1, CR_ROM_oe_n, "CR_ROM_oe_n during locked read"); + check_equal(0, ZX_ROM_blk, "ZX_ROM_blk during locked read"); - // Сброс для снятия self_lock + // ------------------------------------------------------------ + // Test 4: Сброс обнуляет счётчик и снимает блокировку + // ------------------------------------------------------------ + $display("=== Test 4: Reset ==="); reset_n = 0; - #10; + #20; reset_n = 1; #10; - if (CR_ROM_A !== 0) $display("ERROR: After reset CR_ROM_A = %d, expected 0", CR_ROM_A); + check_equal(0, CR_ROM_A, "After reset"); + check_equal(1, CR_ROM_oe_n, "CR_ROM_oe_n after reset"); - // Устанавливаем условия для активации - A13 = 0; A14 = 0; A15 = 0; // lower_rom = 1 - rd_n = 0; - mreq_n = 0; + // ------------------------------------------------------------ + // Test 5: Активация CR_ROM_oe_n при чтении нижних 8KB (self_lock=0) + // ------------------------------------------------------------ + $display("=== Test 5: CR_ROM_oe_n activation in lower ROM (0x0000-0x1FFF) ==="); + + // Чтение внутри нижней области + read_mem(16'h0100); + #10; + check_equal(1, CR_ROM_oe_n, "CR_ROM_oe_n at 0x100"); + check_equal(0, ZX_ROM_blk, "ZX_ROM_blk at 0x100"); + + read_mem(16'h1FFF); // граница нижней области + #10; + check_equal(1, CR_ROM_oe_n, "CR_ROM_oe_n at 0x1FFF"); + + // Чтение вне нижней области + read_mem(16'h2000); // A13=1 + #10; + check_equal(1, CR_ROM_oe_n, "CR_ROM_oe_n at 0x2000 (outside)"); + + read_mem(16'h4001); // A14=1 + #10; + check_equal(1, CR_ROM_oe_n, "CR_ROM_oe_n at 0x4001 (outside)"); + + // ------------------------------------------------------------ + // Test 6: Проверка влияния mreq_n и rd_n + // ------------------------------------------------------------ + $display("=== Test 6: Control signals mreq_n and rd_n ==="); + address = 16'h0100; #10; - // Ожидаем CR_ROM_oe_n = 0 (активен) - if (CR_ROM_oe_n !== 0) $display("ERROR: CR_ROM_oe_n = %b, expected 0 during lower ROM access (rd_n=0, mreq_n=0)", CR_ROM_oe_n); - if (ZX_ROM_blk !== 1) $display("ERROR: ZX_ROM_blk = %b, expected 1", ZX_ROM_blk); - - // Проверка, что при выходе из нижней области (lower_rom=0) выход отключается - A13 = 1; // теперь lower_rom = 0 (A13=1, остальные 0) + // mreq_n=0, rd_n=1 – чтение не активно + mreq_n = 0; rd_n = 1; #10; - if (CR_ROM_oe_n !== 1) $display("ERROR: CR_ROM_oe_n = %b, expected 1 when not in lower ROM", CR_ROM_oe_n); + check_equal(1, CR_ROM_oe_n, "CR_ROM_oe_n with rd_n=1"); - // Проверка, что при rd_n=1 выход отключается - A13 = 0; // обратно в lower_rom=1 - rd_n = 1; + // mreq_n=1, rd_n=0 – нет запроса памяти + mreq_n = 1; rd_n = 0; #10; - if (CR_ROM_oe_n !== 1) $display("ERROR: CR_ROM_oe_n = %b, expected 1 when rd_n=1", CR_ROM_oe_n); + check_equal(1, CR_ROM_oe_n, "CR_ROM_oe_n with mreq_n=1"); - // Проверка, что при mreq_n=1 выход отключается - rd_n = 0; mreq_n = 1; + // Оба активны – должно включиться + mreq_n = 0; rd_n = 0; #10; - if (CR_ROM_oe_n !== 1) $display("ERROR: CR_ROM_oe_n = %b, expected 1 when mreq_n=1", CR_ROM_oe_n); + check_equal(0, CR_ROM_oe_n, "CR_ROM_oe_n with both active"); - rd_n = 1; mreq_n = 1; + // Возврат в исходное + mreq_n = 1; rd_n = 1; #10; $display("=== All tests completed ==="); diff --git a/HW/src/pcb.PcbDoc b/HW/src/pcb.PcbDoc index 373efa907c88d94643fb3b2a725367916340ad36..8f31670fb8d5662c94134e6832afb49de713e8fe 100644 GIT binary patch delta 25564 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 delta 69947 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