OpenAVR project
Overview
OpenAVR is an open-source AVR-compatible core developed in THDL++. It supports all AVR instructions from ATTiny cores, so you can develop firmware for it in C/C++ using GCC.
Downloading and trying out
Here is a step-by-step guide on downloading, compiling and testing OpenAVR:
-
Download OpenAVR 1.1 here.
-
Download the free Xilinx ISE WebPack, or any other VHDL tool of your choice.
-
Download and install VisualHDL.
-
Unpack OpenAVR into a directory and open the project file in VisualHDL.
-
If you are using Xilinx ISE WebPack, simply press F5 in VisualHDL, so that the core will be compiled and run in the simulator. If not, press Ctrl+F7, open the project folder and build the generated VHDL files using your tool. In the simulator find the simulated_clock_provider->uut->leds signal and observe how it chanegs over time. This corresponds to the firmware\test.cpp file in OpenAVR archive.
-
The OpenAVR package is ready to be compiled for Xilinx 3s700an FPGA chip. Just select "FPGA Bitstream" in VisualHDL Project Explorer and press F7.
Exploring sources/modifying/playing around
Here are the tips on exploring/modifying OpenAVR sources:
-
To modify the test firmware, download WinAVR, edit the firmware\test.cpp file and rebuild the binary file by running _build.bat and rebuild the core in VisualHDL.
-
To select another firmware file, open MCU.thp file and search for SynchronousROM. You will see the file name specified there.
-
To modify the root entity, or hardware settings (e.g. use another FPGA board), go to the end of MCU.thp and modify the simulate_entity and synthesize_hardware statements.
-
To learn more about THDL++, read the THDL++ tutorial.