(ENoC) Began adding third dimension

Only little bits dones
(ENoC) Began work on for loops

see page 124 of log book for explanation of loops
(ENoC) Added 3D mesh

need to merge to get updated router test bench
(ENoC) Resolved Merge Conflicts

Merged the master branch into ENoC_3D so that tests could be performed
using the updated test bench.
(ENoC) 3D completed router simulation

need to compare synthesis results between 3D and 2D to ensure the 3D
version is not creating redundant logic.
(ENoC) Created a network simulator

Network simulator created, checks latency and routing
(ENoC) Added 3D Torus

Needs testing
(ENoC) Merged ENoC_Network_tb branch
(ENoC) Basic tests on 3D Mesh and Cube Complete

Need to try more advanced router architectures

Need to edit so data is output to file
(ENoC) Overhaul of Network Test and Network Debugged

Small error in VOQ that did not appear when testing standalone router
caused network failure.

Test takes too long
(ENoC) Overhaul of network.  Scripts added.  Test Results.

Changed file structure so that the network test had its own folder.

Added network vsim tcl scripts

changed the output enable of the fifo.  The network was single cycle, so
the input enable to an input queue was dependent on the output enable of
the downstream input queue.  Within the fifo, the output enable is
dependent on the input enable.  This causes a combinational loop
throughout the whole network.  Temporary fix is to remove that
dependency.

Ouput enable of the virtual output queue was causing prblems when
connected as a whole network.  This turned out to be that the o_en was
being assigned incorrectly (double).

Added results.  Poor saturation performance due to improper FIFO
management.  i.e, the way I broke the combinational loop as explained
above.  Will fix tomorrow.
(ENoC) Fixed comb loop.  near_full.  Retested.  Updated Scripts.

The combinational loop described in the previous commit was fixed.  The
output enable of the router was comb dependent on the output enable of
the input FIFO, which, in turn, was dependent on its input enable.  This
input enable was comb derived from the o_en of the downstream router
input FIFO.  One big loop.  Fixed by changing the router output enable
to be dependent on the full signals of the FIFO.  Did the same for VOQ.

Added a near_full signal to the FIFO_packet_t so that this could be
done.

I believe this may be causing problems however, as the FIFO could sample
a signal, but the router inputting this signal will not realise and will
send again on the next cycle.  However, thinking about it, the o_en from
the downstream router might ensure that no valid signal is sent to the
downstream router, thus this would not be a problem.  Needs
investigating.

Ran tests and updated scripts to show results.  Results saved in
ENoC>test>Results>18_03_2014.  Not perfect, tester needs improving.
(ENoC) New routing.  Burst traffic.  TXRX identification.  Longest Latency

Added a new routing algorithm which swaps the order of precedence for XY
routing.

Added a test method of making bursty traffic.  The idea is that a node
will send a defined number of packets to one address each time.  Not
really tested, doubt I have the probability right.

Added a test method that identifies what packets were transmitted on
each port, and then checks individualy which packets are received,
highlighting and discrepancies.

Added a method to check longest latency,  I believe this may offer more
insight into network behaviour.
(ENoC) Fixed en comb loop.

Fixed the combinational loop arising from the the fact that the output
enable of the FIFO was combinatorially dependent on its input enable.
Now, define DECOUPLE_EN as required.

Noticed a minor error in the switch control declaration.  The N and M
were mixed up in a declaration, causing confusion!  Fixed.

Edits to test bench ensured that simulated input nodes do not raise a
valid if they have no enable.

Added new test functions, one to give the maximum packet latency
measured and another to give the frequency of packet latencies.

Found small errors with the FIFO.   Added some flags to debug, found
that there was a digit wrong in the calculation of the output empty
flag.  Fixed.

Simplified the VOQ as the more complex version would cause delta errors.
i.e the valid would be given, which would effect the enable, which would
effect the valid etc.  Will return to this at some point.
(ENoC) Added Router Tester. Added network results.

Much more rigorous testing facility for routers added, based on the
network tester.  Results added for different positions in a mesh.

Results for a mesh under various configurations added.
(ENoC) Added Results and Matlab scripts.  Tidied up File Structure

Moved MatlabCode to NEMU.  As with Scripts.

Added results to ENoC_Network_tb with matlab interpreter.
(Resources) Added images from old wiki

Created a resources folder, places to store reports and pictures etc
(ENoC) More results.  Minor bug fixes.
Merge branch 'ENoC_3D' of https://github.com/DannyNicholls/NetEmulation into ENoC_3D
Merge remote-tracking branch 'origin/ENoC_3D'