# 上板演示程序的**快速版**(仅仿真用):与 board_demo.asm 只差延时循环的初值—— # 从 `lui t2, 0x7a`(≈ 20 ms/步)改成 `addi t2, zero, 64`(≈ 2.6 µs/步 @50 MHz), # 这样一次仿真(tb_board_top,300 µs 窗口)就能看完整个跑马灯序列。 # 重新生成:python tools/rv_asm.py programs/board_demo_fast.asm _tmp/board_demo_fast.hex # python tools/hex2vh.py _tmp/board_demo_fast.hex srcs/board/cpu21_board_rom_fast.vh 1024 # 综合时用 -d BOARD_ROM_FAST 才会选到它(见 srcs/board/cpu21_board_top.v)。 lui t0, 0x1 # t0 = LED_ADDR = 0x00001000 addi t1, zero, 1 # 跑马灯初值:bit0 main_loop: sw t1, 0(t0) # MMIO 写 LED -> 板载 LED[15:0] slli t1, t1, 1 # 左移一位 lui t4, 0x8 # t4 = 0x00008000 bltu t4, t1, restart # 移出 16 位后重新开始 jal zero, delay restart: addi t1, zero, 1 delay: # 短延时(仿真用,人眼看不见) addi t2, zero, 64 # 延时计数 64 次循环 addi t3, zero, 1 delay_loop: sub t2, t2, t3 bne t2, zero, delay_loop jal zero, main_loop