diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 78 |
1 files changed, 71 insertions, 7 deletions
@@ -1,9 +1,73 @@ -# Alchrity Pt V2 Hello World +# Hello Alchitry Pt v2 -## Prerequisites +A basic Amaranth HDL blinky example for the Alchitry Pt v2 development board with XC7A100T-2FGG484I FPGA. -- Install AMDs bloated [Vivado](https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools.html) software - - You only need support for **Vivado** and **7 Series devices** - - Remove checkbox for licenses - - Install to some non-root directory to avoid system bloat -- On Arch: `yay -S ncurses5-compat-libs` +## Requirements + +- Python 3.12+ +- uv package manager +- Xilinx Vivado 2025.1 (installed at `~/Xilinx/2025.1/Vivado/`) +- Alchitry Pt v2 board connected via USB + +## Setup + +1. Install dependencies: +```bash +uv sync +``` + +2. Set up Vivado environment (add to your shell profile): +```bash +export PATH="$HOME/Xilinx/2025.1/Vivado/bin:$PATH" +``` + +## Usage + +### Build and Program FPGA + +Run the blinky example: +```bash +uv run python blinky.py +``` + +This will: +1. Synthesize the design using Vivado +2. Generate a bitstream +3. Program the FPGA automatically +4. LED 0 should start blinking at ~12Hz + +### Build Only (No Programming) + +To build without programming: +```bash +uv run python -c " +from platform_alchitry_pt import AlchitryPtPlatform +from blinky import Blinky +platform = AlchitryPtPlatform() +platform.build(Blinky(), do_program=False) +" +``` + +### Manual Programming + +If you need to program manually after building: +```bash +cd build +vivado -mode batch -source program_fpga.tcl +``` + +## Files + +- `blinky.py` - Main blinky example that blinks LED 0 +- `platform_alchitry_pt.py` - Alchitry Pt v2 platform definition with pin mappings +- `pyproject.toml` - Project dependencies (Amaranth HDL) + +## Hardware Details + +- **FPGA**: XC7A100T-2FGG484I (Artix-7, 484-pin BGA, speed grade -2) +- **Clock**: 100 MHz oscillator on pin N14 +- **LEDs**: 8 LEDs (pins K13, K16, L15, L14, M16, M14, M12, N16) +- **Reset**: Active-low reset button on pin P6 +- **IO**: 48 general purpose IO pins available + +The example uses a 24-bit counter clocked at 100 MHz, with the MSB driving LED 0 for a blink rate of approximately 12 Hz. |
