Verilog modifications (minimalist P1V)
Ramon
Posts: 484
Is there a thread to collect small recipes on how to remove P1 Verilog code? reduce the number the of cogs? and reduce RAM/ROM?
For example, how to properly remove video (cog_vid.v)? I am thinking of doing this:
- remove wires "vidack" and "vid_pin_out"
- remove 32-bit regs "s" and "d"?
- remove instantiation of video module (cog_vid_ ).
- Modify waitx (remove the line that contains "vidack")
...
Is it possible to reasign the WAITVID opcode to other custom function? or this instruction is used by bootloader?
The purpose is to experiment, have room for more opcodes or logic elements, and impement weird instructions (like BCD, CRC, etc ...)
For example, how to properly remove video (cog_vid.v)? I am thinking of doing this:
- remove wires "vidack" and "vid_pin_out"
- remove 32-bit regs "s" and "d"?
- remove instantiation of video module (cog_vid_ ).
- Modify waitx (remove the line that contains "vidack")
...
Is it possible to reasign the WAITVID opcode to other custom function? or this instruction is used by bootloader?
The purpose is to experiment, have room for more opcodes or logic elements, and impement weird instructions (like BCD, CRC, etc ...)
Comments
Not a specific thread, but the best code-base-fork would likely be here :
http://forums.parallax.com/showthread.php/160016-First-attempt-at-building-a-P1V-image-for-the-BeMicro-Max10
There, ozpropdev has builds with fewer/no Video and some with additional Counters, and he has also minimised the ROM footprint to just the boot elements.
I have a tool that builds custom P1V's in various combinations with user input on specs. i.e. number of cogs,counters,ram io pins clock speed etc.
It also builds custom rom images for modified booters, interpreters as well.
The tool produces all the Verilog files with comments on the changes made.
I hope to post the tool and documentation in the next couple of days.
Cheers
Brian
:0)
[ ] Generate P2 verilog
Changing cog ram is a lot more complex and "breaks" compatibility with Spin/PASM.
I'm trying to complete the documentation now, but work keeps getting in the way.