ZPUino Alpha 4 is out.
Release Notes
Programmer/bootloader
* Changed the reset method to BREAK + low speed transfer. This hopefully will allow reset even when RS232 signals are noisy.
* Fix bootloader for simulation, was using deprecated methods.
* Small update for new interrupt controller
* Remove unused syscall file for bootloader
Core
* Refactor interrupt controller. New controller uses edge interrupts, and has two external interrupt lines. Also interrupts are now masked by default.
* GPIO: allow disabling PPS on some GPIO pins, such as those who map directly on board devices.
Boards
* Clock speed was being defined as unsigned long long. This might break inline computations, so changed to unsigned long.
* Place memreg[] in lower memory, so it can be used by bootloader/sketch. Interrupts should work perfectly now (and sketches should be slightly smaller)
Papilio One
* Reorganize papilio one directory to hold different FPGA
* New bitfile for Papilio One based on S3E500
Spartan 3E Evaluation Board
* Add some more IO pins to design, to support accessing LCD and rotary encoder.
Full release notes: Release Notes
Download: Download
Monday, April 25, 2011
Thursday, April 21, 2011
ZPU core comparison
I believe I forgot to share this one: It's a comparison between the older core (zpu_core_small), the current core (ZPUino Premium) and the on-the-forge ZPUino Extreme:

Nice, no ?
ZPUino Extreme also features a completely different architecture, but it's not very suitable for multitasking. But falls perfecly in ZPUino niche.
Alvie

Nice, no ?
ZPUino Extreme also features a completely different architecture, but it's not very suitable for multitasking. But falls perfecly in ZPUino niche.
Alvie
Thursday, April 14, 2011
Request for examples
Can you provide me what you believe would be good examples to include in ZPUino core ?
I've a few I might publish soon:
* Simple AES256 benchmark
* WAV player from SD card
I'll be expecting your comments (or alternatively, send them to zpuino@alvie.com)
Alvie
I've a few I might publish soon:
* Simple AES256 benchmark
* WAV player from SD card
I'll be expecting your comments (or alternatively, send them to zpuino@alvie.com)
Alvie
Wednesday, April 13, 2011
Preparing for Alpha 4
Alpha 4 is on the forge now. I decided to release it as soon as possible, due to eventual problems with programmer (which was not updated on last images, might require you to build your own).
Also a bug related to how compiler handles 64-bit values was fixed: again, it might break some computations, like baud rates, delays, and others.
I don't think win32 port will be ready by then, but other features will make it. The most prominent one is a new interrupt controller, and two external interrupt lines you can use (edge-triggered, high or low level, using PPS). Auto-cleanup of interrupt is also working for the latter, you still need to clear interrupt bits for internal devices for now.
Alvaro
Also a bug related to how compiler handles 64-bit values was fixed: again, it might break some computations, like baud rates, delays, and others.
I don't think win32 port will be ready by then, but other features will make it. The most prominent one is a new interrupt controller, and two external interrupt lines you can use (edge-triggered, high or low level, using PPS). Auto-cleanup of interrupt is also working for the latter, you still need to clear interrupt bits for internal devices for now.
Alvaro
Friday, April 8, 2011
Alpha 3 is out
I'm proud to announce Alpha 3 release of ZPUino.
As usual, you can find it in http://www.alvie.com/zpuino/
Here are the release notes:
Programmer/bootloader
* Programmer now uses a dual-speed transfer. It starts at 115200 baud for identification, then ramps up speed if required.
* Some bugfixes and refactoring.
* Preliminary direct memory upload. Still untested.
Core
* New main ZPU core: ZPU Premium. You should expect almost a 3x performance increase, when compared with old core.
* New PPS implementation. Things should have become clearer now. See more information on PPS page
* IO selection is now clearer, so to ease adding new devices. See Implementing or porting IO devices document for more information
* Fixed RAM indexing, which caused synthesis warnings
Boards
* Added per-board SPI clock dividers for bootloader
Spartan 3E Evaluation Board
* First prebuilt image for this board
* Design was not being properly built, fixed that.
* Changed clock speed to 96MHz, instead of 100MHz. This helps meeting timing and give accurate baud rate dividers
* Fixed GPIO mappings
* Added proper IO pads
Documentation
* Added IO device tutorial: Implementing or porting IO devices
* Added Advanced IO: Advanced IO
* Added PPS documentation for users: Peripheral Pin Select
Known Issues
* There is still no Win32 port. Some dificculties arose so I'm delaying to next release. But good news is that compiler is now built, but other parts of the toolchain still need some tweaking, as well as the IDE set up.
* Resetting the serial port sometimes fails when using a real RS232 cable. This is probably due to ringing - I'll address this on next release (this only affects S3E evaluation board, but since there's a manual reset button you can get it to work)
* S3E P&R is having difficulties due to both DCM used, but it does meet timing. However I'll address that on next release, to speed up the implementation process.
As usual, you can find it in http://www.alvie.com/zpuino/
Here are the release notes:
Programmer/bootloader
* Programmer now uses a dual-speed transfer. It starts at 115200 baud for identification, then ramps up speed if required.
* Some bugfixes and refactoring.
* Preliminary direct memory upload. Still untested.
Core
* New main ZPU core: ZPU Premium. You should expect almost a 3x performance increase, when compared with old core.
* New PPS implementation. Things should have become clearer now. See more information on PPS page
* IO selection is now clearer, so to ease adding new devices. See Implementing or porting IO devices document for more information
* Fixed RAM indexing, which caused synthesis warnings
Boards
* Added per-board SPI clock dividers for bootloader
Spartan 3E Evaluation Board
* First prebuilt image for this board
* Design was not being properly built, fixed that.
* Changed clock speed to 96MHz, instead of 100MHz. This helps meeting timing and give accurate baud rate dividers
* Fixed GPIO mappings
* Added proper IO pads
Documentation
* Added IO device tutorial: Implementing or porting IO devices
* Added Advanced IO: Advanced IO
* Added PPS documentation for users: Peripheral Pin Select
Known Issues
* There is still no Win32 port. Some dificculties arose so I'm delaying to next release. But good news is that compiler is now built, but other parts of the toolchain still need some tweaking, as well as the IDE set up.
* Resetting the serial port sometimes fails when using a real RS232 cable. This is probably due to ringing - I'll address this on next release (this only affects S3E evaluation board, but since there's a manual reset button you can get it to work)
* S3E P&R is having difficulties due to both DCM used, but it does meet timing. However I'll address that on next release, to speed up the implementation process.
Wednesday, March 30, 2011
New bootloader, Win32 support
Although there was a preliminary programmer for win32, I only recently realised that win32 does not actually support natively serial speeds above 256Kbaud. This stroke me as very odd, we're on the 21th century now, with advent of serial links not rs232-based (like USB serial controllers) having speeds of 1Mbaud, 3Mbaud or even higher is very common, it's weird why Microsoft did not expand its baudrate selection to higher speeds.
Anyway.
So to support win32, we've to get that speed down, so I decided on a two-steps approach. We can initially talk to ZPUino at a reasonably lower speed (115200), and then depending on OS and eventually board features rise this speed to something more acceptable (which would be 1/3Mbaud on Unices, 256Kbaud on Windows). This requires changes to bootloader and to programmer which I am ultimating as I write.
Also for win32 support we need the compilers. Those are building now, if everything goes well I hope full win32 support will be on next Alpha version (which, by the way, will be due this weekend). The programmer already has a fix for the insane command line processing in mingw32 (or is it msvc?), so everything seems to be on rails.
Alvie
Anyway.
So to support win32, we've to get that speed down, so I decided on a two-steps approach. We can initially talk to ZPUino at a reasonably lower speed (115200), and then depending on OS and eventually board features rise this speed to something more acceptable (which would be 1/3Mbaud on Unices, 256Kbaud on Windows). This requires changes to bootloader and to programmer which I am ultimating as I write.
Also for win32 support we need the compilers. Those are building now, if everything goes well I hope full win32 support will be on next Alpha version (which, by the way, will be due this weekend). The programmer already has a fix for the insane command line processing in mingw32 (or is it msvc?), so everything seems to be on rails.
Alvie
Sunday, March 6, 2011
Alpha2 is out
ZPUino Alpha 2 is out.
http://alvie.com/zpuino/download.html
Release notes:
http://alvie.com/zpuino/releasenotes.html
Alvie
http://alvie.com/zpuino/download.html
Release notes:
http://alvie.com/zpuino/releasenotes.html
Alvie
Subscribe to:
Posts (Atom)