⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systemtest.bsv

📁 基于MATLAB的OFDM发送
💻 BSV
字号:
//----------------------------------------------------------------------//// The MIT License // // Copyright (c) 2007 Alfred Man Cheuk Ng, mcn02@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 DataTypes::*;import Interfaces::*;import RegFile::*;import Transmitter::*;import Complex::*;import FixedPoint::*;import Channel::*;import RandomGen::*;import Receiver::*;import RegFile::*;import RX_MAC::*;import TX_Controller::*;(* synthesize *)module mkSystemTest(Empty);   RandomGen#(64) randGen <- mkMersenneTwister(64'hB573AE980FF1134C);   Reg#(Bit#(13))  length <- mkReg(0);      Reg#(Bit#(12)) counter <- mkReg(0);   RegFile#(Bit#(12),Bit#(8)) regFile <- mkRegFileFull;   Reg#(Bit#(16)) packetNo <- mkReg(0);      Transmitter#(8,81) transmitter <- mkTransmitter_8_81();   Channel#(81,1,15)      channel <- mkChannel_81_1_15();   Receiver              receiver <- mkReceiver();   RX_MAC                  rx_mac <- mkRX_MAC(regFile);   rule enqHeader(length == 0);   begin      let randData <- randGen.genRand;      let randRate = R4; // just test the top rate//      let randRate = (randData[1:0] == 0) ? R1 : unpack(randData[1:0]);//      let randLength = (randData[13:2] == 0) ? 1 : randData[13:2];      Bit#(12) randLength = 1000;      let header = TXMAC2ControllerInfo{rate: randRate, length: randLength};      transmitter.getFromMAC(header);      counter <= 0;      packetNo <= packetNo + 1;      length <= zeroExtend(randLength);      $display("Going to send a  packet %d at rate:%d, length:%d",packetNo,randRate, randLength);      if (packetNo == 101)	$finish;   end   endrule        rule enqData(True);   begin      let randData <- randGen.genRand;       let newData = Data{data: unpack(randData[7:0])};      transmitter.getDataFromMAC(newData);      counter <= counter + 1;      length <= length - 1;      regFile.upd(counter,randData[7:0]);//      $display("data at position %d is 0x%h",counter,newData);   end   endrule   rule dataToSend(True);   begin      let result <- transmitter.toAnalogTX();      let resultVec = result.data;      channel.fromTransmitter(result);   end   endrule   rule receiverGetData(True);   begin      let result <- channel.toReceiver();      receiver.fromAnalogRX(result);   end   endrule   rule receiverLengthToRX_MAC(True);   begin      let result <- receiver.lengthToRX_MAC();      rx_mac.fromRX_Controller(result);   end   endrule   rule receiverDataToRX_MAC(True);   begin      let result <- receiver.dataToRX_MAC();      rx_mac.fromDescrambler(result);//      length <= (length > 2) ? length - 3 : 0;   end   endrule      endmodule  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -