This is a read-only archive of an earlier blog posting. Reasons for the
change are at http://blog.sensicomm.com.
The permanent version of this post - with comments (if any) - is at
http://sensicomm.blogspot.com/2008/05/fpga-uc-core.html
fpga uC core
For most things, I'll need a microcomputer
core on the FPGA. Xilinx has the Microblaze and Picoblaze
synthesizable cores, but I want something that's open-source. That
way I can see how things are done and modify as desired.
There are several open cores available. I settled on the AX8
from opencores.org. It's
fairly simple, but it implements most of the Atmel AVR instruction
set (which I have a lot of experience with). A simple "Hello World"
in this core turned out to be pretty straightforward.
After downloading AX8 from opencores, I loaded A90S1200.vhd,
AX8.vhd, AX_TC8.vhd, and AX_Port.vhd into ISE WEBPACK. Then I
modified A90S1200.vhd to divide the clock down to a lower frequency
and to invert the reset line (since the core is set up for an
active-low reset and most of the buttons on the board are
active-high). I then created a .ucf file to attach port D to the
LED's.
The test program just writes to port D to blink
the LED's. I assemble the program with tavrasm, then convert the
program to a rom vhdl file using the hex2rom program that's
included with AX8.
And that's it!. Build in ISE,
download to the FPGA, and the LED's blink.
I can post
source if anybody's interested.Comments on blogspot.com
To make or view comments, see the original post at
http://sensicomm.blogspot.com/2008/05/fpga-uc-core.html