Closed amichai-bd closed 1 month ago
This pull request includes significant changes to the initialization and tracking mechanisms in the system's startup and verification files. The most important changes include restructuring the initialization sequence, adding new tracking logs for register writes, and updating the linker script to handle uninitialized data sections.
app/crt0/crt0_boot_trap.s
: Moved CSR and stack initialization to a new init_handler
and added zero initialization loops for .sbss
and .bss
sections. [1] [2] [3]app/crt0/crt0_default.s
: Added zero initialization loops for .sbss
and .bss
sections after stack initialization. [1] [2]verif/big_core_cachel1/tb/trk/big_core_cachel1_ref_trk.vh
: Added a new tracker for all writes to the register file, logging the PC, register destination, and data written.verif/big_core_cachel1/tb/trk/big_core_cachel1_trk.vh
: Added a new tracker for all writes to the register file, similar to the previous file.app/link.common.ld
: Added sections for uninitialized small data (.sbss
) and uninitialized data (.bss
) to the linker script.verif/rv32i_ref/tb/rv32i_ref.sv
: Modified DFF instantiation to ensure regfile[0]
is always zero. [1] [2]verif/rv32i_ref/tb/rv32i_ref_tb.sv
: Changed package import from common_pkg
to rv32i_ref_pkg
.verif/rv32i_ref/tb/rv32i_ref_trk.vh
: Added a new tracker for register writes in the reference model. [1] [2]
This pull request includes significant updates to the initialization and tracking mechanisms in the boot and verification files. The most important changes include restructuring the boot sequence, adding zero-initialization for sections, and introducing new tracking for register writes.
Boot Sequence and Initialization:
app/crt0/crt0_boot_trap.s
: Moved the initialization code to a newinit_handler
and added zero-initialization loops for.sbss
and.bss
sections. [1] [2]app/crt0/crt0_default.s
: Added zero-initialization loops for.sbss
and.bss
sections in thereset_handler
. [1] [2]Memory Layout:
app/link.common.ld
: Updated the linker script to define and zero-initialize.sbss
and.bss
sections.Verification and Tracking:
verif/big_core_cachel1/tb/trk/big_core_cachel1_trk.vh
: Added new trackers for register writes, logging PC, register destination, and data. [1] [2] [3]verif/rv32i_ref/tb/rv32i_ref_trk.vh
: Introduced a new tracker for register writes in the reference model. [1] [2]Miscellaneous:
verif/rv32i_ref/tb/rv32i_ref.sv
: Modified DFF assignments to ensurex0
is always zero. [1] [2]verif/rv32i_ref/tb/rv32i_ref_tb.sv
: Updated the package import torv32i_ref_pkg
.