Skip to content

Commit c1f14d7

Browse files
committed
add readme
1 parent 8e184b7 commit c1f14d7

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

README.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# FPGA-Based TSP Solver on Digilent Zybo Z7-10
2+
3+
This project implements a hardware-based solution to the Travelling Salesperson Problem (TSP) using a Xilinx Zynq-7000 FPGA on a Digilent Zybo Z7-10 board. The solution leverages the parallelism of the FPGA, along with the real-time capabilities of FreeRTOS, to efficiently explore the solution space of the TSP, achieving a remarkable performance of solving 13 cities in under 3 seconds.
4+
5+
## Problem Overview
6+
7+
The Travelling Salesperson Problem (TSP) is a classic problem in computer science where a traveler needs to visit a set of cities exactly once and return to the starting point. The objective is to find the optimal order of cities that minimizes the total travel distance. The problem is known to be NP-hard, meaning that no efficient algorithm is known to solve all instances quickly.
8+
9+
This project explores the use of FPGA hardware to solve the TSP by implementing a brute-force approach that takes advantage of the parallel computing capabilities of the FPGA, managed by the FreeRTOS operating system for efficient task scheduling and management.
10+
11+
## Project Features
12+
13+
- **FPGA Platform:** Xilinx Zynq-7000 on Digilent Zybo Z7-10
14+
- **Solution Approach:** Brute-force search using custom hardware IP cores
15+
- **Real-Time OS**: FreeRTOS for task management and scheduling
16+
- **Performance:** Able to solve TSP for 13 cities in under 3 seconds
17+
- **Communication:** Interacts with a network server to request and solve TSP scenarios
18+
- **Protocol:** Uses a custom UDP-based protocol to communicate with the server
19+
20+
## Resource Utilization
21+
22+
The implementation efficiently utilizes the FPGA resources as detailed below:
23+
24+
| Resource | Utilization | Available | Utilization (%) |
25+
|----------|-------------|-----------|-----------------|
26+
| LUT | 10,804 | 17,600 | 61.39% |
27+
| LUTRAM | 3,008 | 6,000 | 50.13% |
28+
| FF | 8,503 | 35,200 | 24.16% |
29+
| BRAM | 0.5 | 60 | 0.83% |
30+
| DSP | 80 | 80 | 100% |
31+
| IO | 15 | 100 | 15% |
32+
| BUFG | 1 | 32 | 3.13% |
33+
34+
## Scenario Communication
35+
36+
The project involves communication with a scenario server, which provides the TSP problems to solve. The communication is based on a custom protocol using UDP packets, where the FPGA requests a scenario, solves it, and sends the solution back to the server.
37+
38+
**Request Packet Format:**
39+
- Message ID: 1 byte (0x01)
40+
- Number of Cities: 1 byte (4 to 20 inclusive)
41+
- Scenario ID: 4 bytes (Big-endian integer)
42+
43+
**Response Packet Format:**
44+
- Message ID: 1 byte (0x02)
45+
- Number of Cities: 1 byte (Matches request)
46+
- Scenario ID: 4 bytes (Matches request)
47+
- Adjacency Matrix: N x N matrix (where N is the number of cities)
48+
49+
**Solution Packet Format:**
50+
- Message ID: 1 byte (0x03)
51+
- Number of Cities: 1 byte (4 to 20 inclusive)
52+
- Scenario ID: 4 bytes (Big-endian integer)
53+
- Shortest Path: 4 bytes (Big-endian integer)

0 commit comments

Comments
 (0)