Mercurial > pygar
view common/PathTypes.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 | 7e1510b47336 |
children |
line wrap: on
line source
1 import Trace::*;2 import Vector::*;4 `define MAX_VOICES 45 `define MAX_CORES 166 `define MAX_PATH_IDS 187 `define MAX_PATH_LENGTH 89 // The path is hardwired and so should never be stored in a register. Therefore int type rather than Bit type11 typedef Bit#(32) MemAddr;12 typedef Int#(TLog#(`MAX_PATH_IDS)) PathId;13 typedef Int#(24) Sample;14 typedef Int#(TLog#(`MAX_VOICES)) VoiceId;17 //The mixer is identified as PathId 0, path end is max18 PathId mixerId = 0;19 PathId endId = `MAX_CORES+1;21 // Path is array of path ids22 typedef Vector#(`MAX_PATH_LENGTH, PathId) CorePath;23 CorePath emptyCore = replicate(endId);25 typedef struct26 {27 VoiceId voice;28 MemAddr startAddr;29 CorePath route;30 } FullPath deriving (Bits, Eq);