Skip to content

This is the repository for the term project of the course EE314 Digital Electronics Laboratory. It contains simulation work, design requirements, drawings and reports.

Notifications You must be signed in to change notification settings

ozgurgulsuna/EE314-NetworkQueueing-on-FPGA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EE314 Term Project

FPGA Implementation of a Not-So-Very-Simple Network Quality of Service (QoS) Algorithm

Project Summary

Our problem definition selects packet latency and packet loss/drop as the only factors over a buffering structure consisting of four parallel linear buffers, each with six packets, working in a first-in-first-out manner. The exemplary network requires three specifications, Latency precedence, Reliability precedence, and minimum packet loss. Latency precedence can be explained as the most up-to-date packets over the buffers should be arranged as the condition in 1.

L1 < L2 < L3 < L4    [1].

Similarly, reliability precedence is that the least amount of drops should occur in buffer four with decreasing order as in 2.

R4 > R3 > R2 > R1    [2].

The final specification is that overall drops should be minimized for all buffers. Another property of the exemplary system is data output rate, which is fixed at 3 seconds. There exist numerous algorithms with generalized performance over the implemented medium. The test environment for our algorithm to run is selected as FPGA, which is a configurable integrated circuitry dedicated to implementing logic circuit elements.

In this project, a weighted selection algorithm is designed, optimized for randomized inputs with average congestion on the network using the NSGA-II algorithm, and finally implemented on Altera DE1-SoC FPGA with a visual user interface over the VGA (Video Graphics Array). The design of the queuing algorithm, determination of weights using optimization, and the implementation of the algorithm on FPGA environment is discussed in the report which can be found under report.

Report

This report discusses the design, optimization, and implementation of a queueing algorithm. The problem is defined around the requirements and limitations. An exemplary decision function is constructed and tested in a simulation environment. Later weights are optimized using a genetic algorithm, more precisely NSGA-II, in a multi-objective manner. It is shown that the decision function is capable of satisfying the requirements. Moreover, with the optimized weights of the decision function, it is ensured that the algorithm’s performance is at its top level. At last, the queuing algorithm is implemented on FPGA with inputs from buttons and output to the user using the VGA interface.

Demonstration

The algorithm is implemented on Altera Cyclone V FPGA developement board (DE1 SoC). A working photo of the VGA screen is given below.

About

This is the repository for the term project of the course EE314 Digital Electronics Laboratory. It contains simulation work, design requirements, drawings and reports.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published