Last visit was: Sun Dec 07, 2025 8:05 am
It is currently Sun Dec 07, 2025 8:05 am



 [ 241 posts ]  Go to page Previous  1 ... 13, 14, 15, 16, 17
 Qupls (Q+) 
Author Message

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2430
Location: Canada
Quote:
With a project your size
how do check for the stupid little errors?
I run something called lint on the code. It checks for all kinds of mistakes. Then I also run synthesis to get the size of things.
I spot a lot of the little errors while editing the code. There are bound to be errors yet undetected.
I work on things incrementally, and have ported code from other projects that was working. I try not to do too much at once without running some sort of test.
Doing diffs helps too.
I have lots of experience by now and that helps. I tend to avoid common mistakes.

*****************************

Re-did micro-op loading into the decode stream. The number of micro-ops allowed per instruction was increased to 48 from eight. That is enough micro-ops to cover more complex sequences like float divide and reciprocal. The synthesize size is just slightly less than it was before, while at the same time allowing many more micro-ops per instruction.

I have been busy reducing the size of the core. A whopping 60k LUTs has been removed, without changing functionality. I got the 23,000 LUT ROB down to about 18,000.

Did a lot of work on the micro-op (instruction) decoder, converting about a dozen modules for Qupls4.

Got register r0 working as a general-purpose register now, except when it is used in an address calculation.
Rbase = r0 bypasses to 0
Rindex = r0 bypasses to 0
Bypassing r0 for both base and index allows absolute addressing mode.
Otherwise r0 is a general-purpose reg.

Register fields can be used as small or large constants for most instructions. There is not much need to bypass r0 to 0.
Added a LOADI instruction so that loading a constant into a register is possible while r0 is non-zero. An ADD instruction was being used before to load constants.

Added two opcodes to allow instruction pointer relative addressing for loads and stores.

Updated some of the documentation again.

_________________
Robert Finch http://www.finitron.ca


Sun Dec 07, 2025 2:55 am WWW
 [ 241 posts ]  Go to page Previous  1 ... 13, 14, 15, 16, 17

Who is online

Users browsing this forum: claudebot, Majestic-12 [Bot], SemrushBot and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software