mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Update Breker platform.yaml and test compilation
This commit is contained in:
		
							parent
							
								
									311125f4bd
								
							
						
					
					
						commit
						68205b844d
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -33,6 +33,7 @@ tests/fp/combined_IF_vectors/IF_vectors/*.tv
 | 
			
		||||
tests/custom/*/*/
 | 
			
		||||
tests/custom/*/*/*.memfile
 | 
			
		||||
sim/tests/riscvdv
 | 
			
		||||
testbench/trek_files/uvm_output
 | 
			
		||||
 | 
			
		||||
# Linux
 | 
			
		||||
linux/buildroot
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							@ -39,6 +39,10 @@ coverage:
 | 
			
		||||
cvw-arch-verif:
 | 
			
		||||
	$(MAKE) -C ${WALLY}/addins/cvw-arch-verif
 | 
			
		||||
 | 
			
		||||
breker:
 | 
			
		||||
	$(MAKE) -C ${WALLY}/testbench/trek_files
 | 
			
		||||
	$(MAKE) -C ${WALLY}/tests/breker
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	$(MAKE) clean -C sim
 | 
			
		||||
	$(MAKE) clean -C ${WALLY}/tests/fp
 | 
			
		||||
 | 
			
		||||
@ -291,7 +291,7 @@ def addTests(tests, sim):
 | 
			
		||||
            configs.append(tc)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def addTestsByDir(dir, config, sim, lockstepMode=0):
 | 
			
		||||
def addTestsByDir(dir, config, sim, lockstepMode=0, brekerMode=0):
 | 
			
		||||
    if os.path.isdir(dir):
 | 
			
		||||
        sim_logdir = WALLY+ "/sim/" + sim + "/logs/"
 | 
			
		||||
        if coverStr == "--fcov": # use --fcov in place of --lockstep
 | 
			
		||||
@ -312,6 +312,10 @@ def addTestsByDir(dir, config, sim, lockstepMode=0):
 | 
			
		||||
            cmdPrefix="wsim --lockstep --sim " + sim + " " + config
 | 
			
		||||
            gs="Mismatches            : 0"
 | 
			
		||||
            fileEnd = ".elf"
 | 
			
		||||
        elif brekerMode:
 | 
			
		||||
            cmdPrefix="wsim --sim " + sim + " " + config
 | 
			
		||||
            gs="# trek: info: summary: Test PASSED"
 | 
			
		||||
            fileEnd = ".elf"
 | 
			
		||||
        else:
 | 
			
		||||
            cmdPrefix="wsim --sim " + sim + " " + config
 | 
			
		||||
            gs="Single Elf file tests are not signatured verified."
 | 
			
		||||
@ -442,8 +446,8 @@ elif (args.fcov):  # run tests in lockstep in functional coverage mode
 | 
			
		||||
    addTestsByDir(WALLY+"/addins/cvw-arch-verif/tests/rv64/", "rv64gc", coveragesim)
 | 
			
		||||
    addTestsByDir(WALLY+"/addins/cvw-arch-verif/tests/priv/rv32/", "rv32gc", coveragesim)
 | 
			
		||||
    addTestsByDir(WALLY+"/addins/cvw-arch-verif/tests/priv/rv64/", "rv64gc", coveragesim)
 | 
			
		||||
# elif (args.breker):
 | 
			
		||||
#     addLockstepTestsByDir(WALLY+"/tests/breker/work", "breker", coveragesim, 0)
 | 
			
		||||
elif (args.breker):
 | 
			
		||||
    addTestsByDir(WALLY+"/tests/breker/work", "breker", "questa", brekerMode=1)
 | 
			
		||||
else: 
 | 
			
		||||
    for sim in sims:
 | 
			
		||||
        if (not (args.buildroot and sim == lockstepsim)):  # skip short buildroot sim if running long one
 | 
			
		||||
@ -454,9 +458,9 @@ else:
 | 
			
		||||
 | 
			
		||||
# run derivative configurations and lockstep tests in nightly regression
 | 
			
		||||
if (args.nightly):
 | 
			
		||||
    addTestsByDir(WALLY+"/tests/coverage", "rv64gc", lockstepsim, 1)
 | 
			
		||||
    addTestsByDir(WALLY+"/tests/riscof/work/wally-riscv-arch-test/rv64i_m", "rv64gc", lockstepsim, 1)
 | 
			
		||||
    addTestsByDir(WALLY+"/tests/riscof/work/wally-riscv-arch-test/rv32i_m", "rv32gc", lockstepsim, 1)
 | 
			
		||||
    addTestsByDir(WALLY+"/tests/coverage", "rv64gc", lockstepsim, lockstepMode=1)
 | 
			
		||||
    addTestsByDir(WALLY+"/tests/riscof/work/wally-riscv-arch-test/rv64i_m", "rv64gc", lockstepsim, lockstepMode=1)
 | 
			
		||||
    addTestsByDir(WALLY+"/tests/riscof/work/wally-riscv-arch-test/rv32i_m", "rv32gc", lockstepsim, lockstepMode=1)
 | 
			
		||||
    addTests(derivconfigtests, defaultsim)
 | 
			
		||||
    # addTests(bpredtests, defaultsim) # This is currently broken in regression due to something related to the new wsim script.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								bin/wsim
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								bin/wsim
									
									
									
									
									
								
							@ -67,7 +67,9 @@ def elfFileCheck(args):
 | 
			
		||||
            # extract the elf name from the path to be the test suite
 | 
			
		||||
            fields = args.testsuite.rsplit('/', 3)
 | 
			
		||||
            # if the name is just ref.elf in a deep path (riscv-arch-test/wally-riscv-arch-test), then use the directory name as the test suite to make it unique; otherwise work directory will have duplicates.
 | 
			
		||||
            if (len(fields) > 3):
 | 
			
		||||
            if ("breker" in args.testsuite):
 | 
			
		||||
                args.testsuite = fields[-1]
 | 
			
		||||
            elif (len(fields) > 3):
 | 
			
		||||
                if (fields[2] == "ref"):
 | 
			
		||||
                    args.testsuite = f"{fields[1]}_{fields[3]}"
 | 
			
		||||
                else:
 | 
			
		||||
 | 
			
		||||
@ -4,8 +4,9 @@ TREKSVIP_YAML    := $(BREKER_HOME)/examples/tutorials/svip/treksvip/yaml/treksvi
 | 
			
		||||
TREKEXE_FLAGS    += --seed 0x # free (0x) or lock (0x1) the seed used for test generation
 | 
			
		||||
TREKSVIP = source $(TREKFILES)/breker-setup.sh && treksvip -p $(PLATFORM_YAML) -p $(TREKSVIP_YAML) $(TREKEXE_FLAGS)
 | 
			
		||||
 | 
			
		||||
uvm_output:
 | 
			
		||||
	rm -rf uvm_output
 | 
			
		||||
uvm_output: uvm_output/trek_uvm.sv
 | 
			
		||||
 | 
			
		||||
uvm_output/trek_uvm.sv: $(PLATFORM_YAML) $(TREKSVIP_YAML)
 | 
			
		||||
	$(TREKSVIP) -p $(PLATFORM_YAML) -p $(TREKSVIP_YAML) --uvm_output=uvm_output
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
 | 
			
		||||
@ -100,7 +100,7 @@ trek:
 | 
			
		||||
        doc: >-
 | 
			
		||||
          Detail settings when mailbox type is `single`
 | 
			
		||||
        init_type:
 | 
			
		||||
          value: static
 | 
			
		||||
          value: backdoor #static
 | 
			
		||||
          doc: >-
 | 
			
		||||
            Strategy to use for mailbox memory initialization.
 | 
			
		||||
            Options are:
 | 
			
		||||
@ -108,13 +108,13 @@ trek:
 | 
			
		||||
              - backdoor
 | 
			
		||||
              - frontdoor
 | 
			
		||||
        c2t_base:
 | 
			
		||||
          value: 0x1000
 | 
			
		||||
          value: 0x83000000
 | 
			
		||||
          doc: >-
 | 
			
		||||
            Fixed base address of C to trekbox mailbox region.
 | 
			
		||||
            Allow 64 bytes per processor.
 | 
			
		||||
            Used for init_type of `backdoor` and `frontdoor` only.
 | 
			
		||||
        t2c_base:
 | 
			
		||||
          value: 0x2000
 | 
			
		||||
          value: 0x83001000
 | 
			
		||||
          doc: >-
 | 
			
		||||
            Fixed base address of trekbox to C mailbox region.
 | 
			
		||||
            Allow 64 bytes per processor.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user