Skip to content

vid.v causes hang in vsim/verilator #437

@fabriziocabaleiro

Description

@fabriziocabaleiro

Tested with commit e970f77, vid.v causes a hang in both vsim and verilator.

I did not use the build system from the app folder because it gave me some errors I don't remember now.

I copied crt0.S and the linker script from the app folder and set the linker script to align for 4 lanes (default).

I tried to keep the test as simple as possible while testing few other vector instructions.

main.S is as follow (also included in tar.gz)

.global main
.type main, @function

.section .text
main:
	vsetvli		t0, zero, e16, m4, ta, ma
	vmv.v.i		v0, 2
	vwmul.vx	v8, v0, zero
#ifdef HANG
	vid.v		v0
#endif
	vadd.vi		v0, v0, 1
	vadd.vi		v0, v0, -1
	vadd.vx		v0, v0, t0
	vsub.vx		v0, v0, t0
	vslidedown.vi	v16, v0, 2 // elem[0] = 2
	addi		t0, zero, 2
.rept 10
	vwmacc.vx	v8, t0, v16 // elem[0] = 10*2*2
.endr
	vsetvli		t0, zero, e32, m8, ta, ma
	vmv.x.s		a0, v8
	// return value = elem[0] - 40; should be a0 = 0
	addi		a0, a0, -40
	ret
.size main,.-main

.end

The attached makefile generates both no_hang.elf and hang.elf. no_hang.elf should finish successfully and hang.elf should hang.
hang.elf works fine when compiled for and run in spike.

Test source files ara_vid_hang.tar.gz

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions