Implementation of priority queue
Introduction
The goal of this exercise is to implement a RTL priority queue using a hardware description language and then deploy the design
in a FPGA platform.
User interface
Consider the development kit of the previous exercise:
The queue must have the following interface:
- SWITCHES[7..0]: must be use to configure the value that is to be inserted in the queue
- LEDS[7..0]: used to show the value defined in the SWITCHES, unless one of the buttons is used.
- BUTTONS[0]: when held, LEDS shows the head of the queue
- BUTTONS[1]: when held, LEDS shows the tail of the queue
- BUTTONS[2]: when held, LEDS shows the head of the queue. The head is removed when the button is released
- BUTTONS[3]: when held, LEDS shows the value defined in the SWITCHES. This value inserted in the queue when the button is released
- DISPLAY: shows the number of elements currently in the queue (OPTIONAL)
It is up to the students to define the implementation methodology as well as the HDL they are going to use. The design must only met the following
requirements:
- The inserted elements must be ordered according to thei integer value (it is a priority queue !)
- The design must be generic and support both ascending and descending ordering. This must be defined as a parameter for the design.
- The size of the values in the queue, as well as the maximum size of the queue must be also defined as a parameter.
Check the previous exercise for useful resources.