A Network on Chip Visualization Tool
- Requirements:
- For Source Code Installation:
- Python 3.4.4
- PyQt4
- For Packaged Installations:
- No prequisites!
- For Source Code Installation:
- Process:
- For Source Code:
- Download the source code using a github clone
- Execute
py driver.py
in the source directory
- For Packaged Code:
- Download the package appropriate to the operating system
- Run the package
- For Source Code:
- Generate a trace file using GARNET
- Clone a gem5 simulator
- Navigate to
gem5/src/mem/ruby/network/garnet2.0
hg init
cd .hg
- Create a
hgrc' file using vim or another editor - Example:
vim hgrc` - Insert the following lines in the hgrc configuration file - [extensions] - hgext.mq= - hgext.extdiff= - hgext.patchbomb= - [ui] - username = First Last < email@address >
- Copy the Loupe Patch File to the
gem5/src/mem/ruby/network/garnet2.0
directory hg import loupe.patch
- Rebuild gem5
- Running a simulation will create a
LoupeTraceFile.csv
- Start Loupe
File
->Load Trace
- Begin visualizing mesh networks!
Loupe:
-
Animation Features
- Adjust the inverval + start/stop the animation
-
Go To Cycle
- Instead of manually clicking next cycle, go to a cycle!
-
Buffer Information
- View the flit characteristics in each VC ![Alt text](https://raw.github.com/dhcabinian/Loupe/Screenshots/window picture.PNG "Main Window")
-
Core Picture Shows:
- Directional Input Buffers
- Core Input Buffer
- Input and Ouptut Links
- Loupe also supports any 2-ary n-cube mesh
![Alt text](https://raw.github.com/dhcabinian/Loupe/Screenshots/4x4 mesh.PNG "4x4 Mesh")
- State is not maintained on any pevious cycle or go-to-cycle transition
- This means that in order to get a 100% accurate state, next cycle button must be used