annotate common/InterfaceTypes.bsv @ 75:a15cc186e07d pygar svn.76

[svn r76] should be fully parameterized for however many cores we want (not fully tested)
author punk
date Wed, 12 May 2010 03:14:53 -0400
parents 91a1f76ddd62
children
rev   line source
punk@1 1 import Trace::*;
punk@1 2
punk@1 3 `define MAX_VOICES 4
punk@1 4 `define MAX_CORES 16
punk@1 5 `define MAX_PATH_LENGTH 8
punk@1 6
punk@1 7 // The path is hardwired and so should never be stored in a register. Therefore int type rather than Bit type
punk@1 8
punk@1 9 typedef Bit#(32) MemAddr;
punk@1 10 typedef Int#(TLog#(MAX_CORES+2)) PathId;
punk@1 11
punk@1 12 //The mixer is identified as PathId 0, path end is max
punk@1 13 PathId mixerId = 0;
punk@1 14 PathId endId = MAX_CORES+1;
punk@1 15
punk@1 16 // Path is array of path ids
punk@1 17 typedef Vector#(MAX_PATH_LENGTH, PathId) CorePath;
punk@1 18 typedef struct
punk@1 19 {
punk@1 20 MemAddr startAddr;
punk@1 21 CorePath route;
punk@1 22 } FullPath deriving(Eq, Bits);
punk@1 23
punk@1 24 Vector#(MAX_VOICES, FullPath) routeTable;
punk@1 25 routeTable[0] = {startAddr: 12, route: {1, 2, 3, 0, endId, endId, endId, endId}}
punk@1 26
punk@1 27
punk@1 28