code wiki / _hdl_build / rv64im_min_gfx_gate.nx

rv64im_min_gfx_gate.nx

buildroot/runtime/_hdl_build/rv64im_min_gfx_gate.nx

10173 B160 linesdepth 5pulls 20 transitivereach 0 importersview sourcekind gate/prooftopic rv64im
docsdependenciesstructsconstsfunctions

dependencies 12 imports · 0 importers

nx_gate_gn.nx nx_gate_base.nx nx_syscalls.nx nishi_hdl_primitives.nx rv64im_min_decoder.nx rv64im_min_alu.nx rv64im_min_regfile.nx rv64im_min_csr.nx rv64im_min_clint.nx rv64im_min_uart.nx rv64im_min_gfx_gate.nx

diagram shows first 10 each side; +2 more imports, +0 more importers in the complete lists below.

imports: nx_gate_gn.nxnx_gate_base.nxnx_syscalls.nxnishi_hdl_primitives.nxrv64im_min_decoder.nxrv64im_min_alu.nxrv64im_min_regfile.nxrv64im_min_csr.nxrv64im_min_clint.nxrv64im_min_uart.nxrv64im_min_sim.nxnx_png.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main gw sys_write sys_mmap build_prog e_auipc e_addi e_slli e_andi e_rr e_sw e_blt run_frame sys_mmap ↻ nx_rv64im_rf_init nx_rv64im_csr_init nx_clint_init nx_uart_init nx_rv64im_sim_init w32 nx_rv64im_sim_run nx_rv64im_sim_step nx_clint_tick nx_clint_update_mtip nx_rv64im_csr_tick_mcycle nx_clint_mtip_get nx_rv64im_csr_read nx_csr_addr_to_slot nx_rv64im_sim_take_trap nx_rv64im_csr_read ↻ nx_rv64im_csr_write nx_csr_addr_to_slot ↻ nx_csr_is_read_only nx_rv64im_xlate nx_rv64im_csr_read ↻ nx_rv64im_is_device sys_mmap ↻ nx_sv39_walk nx_mmu_inrange nx_mmu_rd64

structs

none

consts

none

functions

37func grow(name: *u8, ok: i64) -> i64 { if ok==1 { gw(" PASS " as *u8) } else { gw(" FAIL " as *u8) } gw(name); gw("
calls 1: gw
41func e_auipc(rd: i64, imm20: i64) -> i64 { return ((imm20 & 0xFFFFF) << 12) | (rd << 7) | 0x17 }
called by 1: build_prog
42func e_addi(rd: i64, rs1: i64, imm: i64) -> i64 { return ((imm & 0xFFF) << 20) | (rs1 << 15) | (rd << 7) | 0x13 }
called by 1: build_prog
43func e_andi(rd: i64, rs1: i64, imm: i64) -> i64 { return ((imm & 0xFFF) << 20) | (rs1 << 15) | (7 << 12) | (rd << 7) | 0x13 }
called by 1: build_prog
44func e_slli(rd: i64, rs1: i64, sh: i64) -> i64 { return ((sh & 0x3F) << 20) | (rs1 << 15) | (1 << 12) | (rd << 7) | 0x13 }
called by 2: build_progmain
45func e_rr(rd: i64, rs1: i64, rs2: i64, f3: i64) -> i64 { return (rs2 << 20) | (rs1 << 15) | (f3 << 12) | (rd << 7) | 0x33 }
called by 1: build_prog
46func e_sw(rs1: i64, rs2: i64, imm: i64) -> i64 { return (((imm>>5)&0x7F)<<25) | (rs2<<20) | (rs1<<15) | (2<<12) | ((imm&0x1F)<<7) | 0x23 }
called by 1: build_prog
47func e_blt(rs1: i64, rs2: i64, off: i64) -> i64
52func w32(mem: *u8, off: i64, v: i64) -> i64
58func build_prog(prog: *i64) -> i64
88func run_frame(prog: *i64, nprog: i64, fb_out: *i64, W: i64, H: i64) -> i64
109func main() -> i64