DataTypes.bsv
上传用户:aoptech
上传日期:2014-09-22
资源大小:784k
文件大小:2k
源码类别:

3G开发

开发平台:

Others

  1. // The MIT License // // Copyright (c) 2006 Nirav Dave (ndave@csail.mit.edu) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. import Vector::*;
  2. import ComplexF::*;
  3. typedef enum{// 1 = 6Mbits/s, 2 = 12Mbits/s, 4 = 24Mbits/s
  4.   RNone = 0,
  5.   R1    = 1,
  6.   R2    = 2,
  7.   R4    = 4 
  8. }
  9.  Rate deriving(Eq,Bits);
  10. typedef Bit#(n) Header#(type n);
  11. // Data in the queues between the TX MAC and Controller
  12. typedef struct{
  13.   Rate           rate;
  14.   Bit#(12)       length; //in bytes
  15. }
  16.  TXMAC2ControllerInfo deriving (Eq, Bits);  
  17. // Data in the queues between the TX MAC and Controller
  18. typedef struct{
  19.   Rate           rate;
  20.   Bit#(12)       length; //in bytes
  21.   Bit#(n)        data; 
  22. }
  23.  TXMAC2ControllerData#(type n) deriving (Eq, Bits);  
  24. typedef struct{
  25.   Bit#(n) data;
  26. }
  27.   Data#(type n) deriving (Eq, Bits);
  28. typedef struct{
  29.   Rate    rate;
  30.   Bit#(n) data;
  31. }
  32.   RateData#(type n) deriving (Eq, Bits);
  33. typedef struct{
  34.   Bool    new_message;
  35.   Vector#(n,ComplexF#(16)) data; 
  36. }
  37. MsgComplexFVec#(type n) deriving (Eq, Bits);
  38. typedef Vector#(64,ComplexF#(16)) IFFTData;
  39. typedef Vector#( 4,ComplexF#(16)) Radix4Data;
  40. typedef Vector#( 3,ComplexF#(16)) OmegaData;