This page contains important information related to the EMBS 2014 assessment. Refer to the assessment handout for a description of the problem and necessary information.

Announcements

  • The timings mentioned in the assessment mark scheme are not exact hard deadlines but merely a 'rule of thumb'.
  • Server MAC address has been added below.
  • Added tips on reducing code size and improving performance using compiler optimisation flags (release configuration) to the 'Tips for managing memory' page.
  • The timings mentioned apply to your solution being able to find (and display) at least one solution. You should also be able to step through and display other solutions as they are found.
  • The debug option when running a testbench in Vivado HLS 2013.4 appears to be broken (it will just hang on 'Starting 84%'). A workaround is to use version 14.3 (the original version from the early practicals) if you want to debug.

The VGA Core

The VGA core that you should use is here.

Puzzle Definition

Each puzzle consists of a set of square tiles and a grid. Each tile has four coloured edges. The puzzle involves placing the tiles onto the grid so that all touching edges are the same colour.
puzzle1.png

Note that each tile may only be used once, and that tiles may be rotated (but not mirrored). There are multiple solutions to a puzzle.

Edges may have up to ten different values. You will need to visualise the puzzle and must use the following colours.
Edge ID
Colour/Pattern
0
Red
1
Green
2
Blue
3
Cyan
4
Magenta
5
Yellow
6
White
7
Black
8
Vertical stripes
9
Horizontal stripes

Solving the puzzle

You can solve the puzzle any way that you like, but you will have to involve some kind of search algorithm. You must use custom Vivado HLS components to accelerate the search as much as possible. It is up to you how you achieve this. You will detail in your report the acceleration strategy you used and how effective it was.

You may use multiple HLS components if it is useful. You may also assign BlockRAMs wherever you need in the system. Detail all architectural choices in the report.

Packet Formats

Remember to use the MAC addresses on this page. All packets begin with the standard Ethernet frame header:
Field
Size in bytes
Destination MAC address
6
Source MAC address
6
Type field = 0x55AB
2
Packet contents
Variable
Important Note: Note that the type field is now 0x55AB, whereas it was 0x55AA in the Ethernet practical. (The Cat Facts are still on the network using 0x55AA.) The packet formats are as follows.

Request Puzzle

Send this to the server to request a puzzle.
The server's MAC address is 0x00, 0x11, 0x22, 0x44, 0x00, 0x50.
Field
Size in bytes
0x01
1
Size
1
Random
4
Max colours
1
Reserved
1

Size must be between 2 and 6 inclusive and is the width and height of the puzzle. i.e. Set size to 3 for a 3x3 puzzle.

Random is a big-endian 4 byte integer. If set to 0 then the generator will respond with a random puzzle. If not 0, then the generator will use the value as its random seed so you will get the same puzzle each time. Your solution must be able to accept arbitrary seeds, because in the demonstration we will tell you specific seeds to request. You can input the seed however you like (i.e. hex / decimal)

Max colours is the number of edge colours to use. i.e. if set to 4, then the edges 0, 1, 2 and 3 will appear in the puzzle. Must be between 2 and 10 inclusive.

Puzzle Response

The server will respond as follows:
Field
Size in bytes
0x02
1
Size
1
Random
4
Max colours
1
Tiles
Size*Size*4

The Size, Random and Max colours values will all be set to whatever values you requested. The Tiles data will describe the tiles of your puzzle. Each tile is 4 bytes. There will be Size squared number of tiles (so 9 tiles for 3x3, 16 for 4x4 etc.). For each tile the first byte is the top edge, then the right-hand edge, then the bottom edge, then the left-hand edge. The following three tiles:
puzzle2.png

would be therefore encoded as:
0x02, 0x01, 0x00, 0x05, 0x02, 0x00, 0x00, 0x05, 0x04, 0x01, 0x06, 0x01

VLAB Note

The puzzle server will be visible on the VLAB, so you can work remotely on the parts of the assessment involving the Ethernet and puzzle solving. You will need to be in the lab to work on VGA graphics.