Block move SETQ/Cordic related issue

Hi Chip

I've found an issue with the Cordic giving incorrect results when preceeded by a block move instruction pair.

I have to insert a spacer instruction between to get correct results.
The spacer instution can be any instruction.

It almost like a SETQ value of $FFFFFFFF is being passed into the cordic.
I went back to V18 FPGA image and the issue was there too.

Here's some example code for the P123 board to demonstrate the issue.
dat		org
		loc	pa,#\parms
		loc	ptrb,#@mycode
		setq	pa
		coginit	#16,ptrb
		cogstop	#0

dat		orgh	$400
parms		long	60_000_000	'parameter block
		long	115200
		long	63
		long	62

mycode		bmask	dirb,#15	'enable leds
		setq	#3
		rdlong	parm1,ptra	'block move 4 longs

		nop	'???? Needed for correct Cordic result ????

		qdiv	parm1,parm2
		getqx	outb		'show result on leds
		jmp	#$
parm1		long	0
parm2		long	0
parm3		long	0
parm4		long	0

Melbourne, Australia


Sign In or Register to comment.