亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? viterbitest.bsv

?? MIT編寫的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 Controls::*;import DataTypes::*;import GetPut::*;import Interfaces::*;import Depuncturer::*;import Vector::*;import Mapper::*;import Demapper::*;import Puncturer::*;import Viterbi::*;import ConvEncoder::*;// testing wifi setting// Global Parameters:typedef enum {   R0,  // BPSK 1/2   R1,  // BPSK 3/4   R2,  // QPSK 1/2   R3,  // QPSK 3/4   R4,  // 16-QAM 1/2   R5,  // 16-QAM 3/4   R6,  // 64-QAM 2/3   R7   // 64-QAM 3/4} Rate deriving(Eq, Bits);// may be an extra field for DL: sendPremabletypedef struct {   Bool       firstSymbol;    Rate       rate;} TXGlobalCtrl deriving(Eq, Bits);function TXGlobalCtrl nextCtrl(TXGlobalCtrl ctrl);   Rate newRate = case (ctrl.rate)		     R0: R1;		     R1: R2;		     R2: R3;		     R3: R4;		     R4: R5;		     R5: R6;		     R6: R7;		     R7: R0;		  endcase; // case(rate)   return TXGlobalCtrl{ firstSymbol: False, rate: newRate};endfunctionfunction Bit#(16) getNewCounter(TXGlobalCtrl ctrl);   return case (ctrl.rate)	     R0: 1;  // (24/12)-1	     R1: 2;  // (36/12)-1	     R2: 3;  // (48/12)-1	     R3: 5;  // (72/12)-1	     R4: 7;  // (96/12)-1	     R5: 11; // (144/12)-1	     R6: 15; // (192/12)-1	     R7: 17; // (216/12)-1	  endcase;endfunctionfunction PuncturerCtrl puncturerMapCtrl(TXGlobalCtrl ctrl);   return case (ctrl.rate)	     R0: Half;	     R1: ThreeFourth;	     R2: Half;	     R3: ThreeFourth;	     R4: Half;	     R5: ThreeFourth;	     R6: TwoThird;	     R7: ThreeFourth;	  endcase; // case(rate)endfunction // Bit     function Bit#(3) p1 (Bit#(4) x);   return x[2:0];endfunction // Bit   function Bit#(4) p2 (Bit#(6) x);   return {x[5],x[2:0]};endfunction // Bit// not used in WiFi   function Bit#(6) p3 (Bit#(10) x);   return 0;endfunction // Bitfunction DepunctData#(4) dp1 (DepunctData#(3) x);   DepunctData#(4) outVec = replicate(4);   outVec[0] = x[0];   outVec[1] = x[1];   outVec[2] = x[2];   return outVec;endfunction // Bit   function DepunctData#(6) dp2 (DepunctData#(4) x);   DepunctData#(6) outVec = replicate(4);   outVec[0] = x[0];   outVec[1] = x[1];   outVec[2] = x[2];   outVec[5] = x[3];   return outVec;endfunction // Bit// not used in wifi   function DepunctData#(10) dp3 (DepunctData#(6) x);   DepunctData#(10) outVec = replicate(4);   return outVec;endfunction // Bit// used for both interleaver, mapperfunction Modulation modulationMapCtrl(TXGlobalCtrl ctrl);   return case (ctrl.rate)	     R0: BPSK;	     R1: BPSK;	     R2: QPSK;	     R3: QPSK;	     R4: QAM_16;	     R5: QAM_16;	     R6: QAM_64;	     R7: QAM_64;          endcase;endfunction(* synthesize *)module mkConvEncoderInstance(ConvEncoder#(TXGlobalCtrl,12,24));   ConvEncoder#(TXGlobalCtrl,12,24) convEncoder;   convEncoder <- mkConvEncoder(7'b1011011,7'b1111001);   return convEncoder;endmodule(* synthesize *)module mkPuncturerInstance (Puncturer#(TXGlobalCtrl,24,24,48,48));   Bit#(6) f1_sz = 0;   Bit#(4) f2_sz = 0;   Bit#(2) f3_sz = 0;      Puncturer#(TXGlobalCtrl,24,24,48,48) puncturer;   puncturer <- mkPuncturer(puncturerMapCtrl,			    parFunc(f1_sz,p1),			    parFunc(f2_sz,p2),			    parFunc(f3_sz,p3));   return puncturer;endmodule(* synthesize *)module mkDepuncturerInstance (Depuncturer#(TXGlobalCtrl,24,24,48,48));   function DepunctData#(24) dpp1(DepunctData#(18) x);      return parDepunctFunc(dp1,x);   endfunction      function DepunctData#(24) dpp2(DepunctData#(16) x);      return parDepunctFunc(dp2,x);   endfunction      function DepunctData#(20) dpp3(DepunctData#(12) x);      return parDepunctFunc(dp3,x);   endfunction      Depuncturer#(TXGlobalCtrl,24,24,48,48) depuncturer;   depuncturer <- mkDepuncturer(puncturerMapCtrl,dpp1,dpp2,dpp3);   return depuncturer;endmodule(* synthesize *)module mkMapperInstance (Mapper#(TXGlobalCtrl,24,48,2,14));   Mapper#(TXGlobalCtrl,24,48,2,14) mapper;   mapper <- mkMapper(modulationMapCtrl,True);   return mapper;endmodule(* synthesize *)module mkDemapperInstance (Demapper#(TXGlobalCtrl,48,24,2,14,ViterbiMetric));   Demapper#(TXGlobalCtrl,48,24,2,14,ViterbiMetric) demapper;   demapper <- mkDemapper(modulationMapCtrl,True);   return demapper;endmodule(* synthesize *)module mkViterbiInstance(Viterbi#(TXGlobalCtrl,24,12));   Viterbi#(TXGlobalCtrl,24,12) viterbi;   viterbi <- mkViterbi;   return viterbi;endmodule(* synthesize *)module mkViterbiTest (Empty);   // state elements   let convEncoder <- mkConvEncoderInstance;   let puncturer <- mkPuncturerInstance;   let mapper <- mkMapperInstance;   let demapper <- mkDemapperInstance;   let depuncturer <- mkDepuncturerInstance;   let viterbi <- mkViterbiInstance;   Reg#(TXGlobalCtrl) ctrl <- mkReg(TXGlobalCtrl{firstSymbol:False,						 rate:R0});   Reg#(Bit#(16)) counter <- mkReg(0);   Reg#(Bit#(12))  inData <- mkReg(0);   Reg#(Bit#(32)) cycle <- mkReg(0);      rule putNewRate(counter == 0);      let newCtrl = nextCtrl(ctrl);      let newData = inData + 1;      let newMesg = Mesg {control: newCtrl,			  data: newData};      let newCounter = getNewCounter(newCtrl);      ctrl <= newCtrl;      inData <= newData;      counter <= newCounter;      convEncoder.in.put(newMesg);      $display("Conv Encoder In Mesg: rate:%d, data:%b, counter:%d",newCtrl.rate,newData,newCounter);   endrule   rule putNewData(counter > 0);      let newCtrl = ctrl;      let newData = inData + 1;      let newMesg = Mesg { control: newCtrl,			  data: newData};      let newCounter = counter - 1;      inData <= newData;      counter <= newCounter;      convEncoder.in.put(newMesg);      $display("Conv Encoder In Mesg: rate:%d, data:%b, counter:%d",newCtrl.rate,newData,newCounter);   endrule      rule putPuncturer(True);      let mesg <- convEncoder.out.get;      puncturer.in.put(mesg);      $display("Conv Encoder Out Mesg: rate:%d, data:%b",mesg.control.rate,mesg.data);   endrule      rule putMapper(True);      let mesg <- puncturer.out.get;      mapper.in.put(mesg);      $display("Puncturer Out Mesg: rate:%d, data:%b",mesg.control.rate,mesg.data);   endrule      rule putDemapper(True);      let mesg <- mapper.out.get;      demapper.in.put(mesg);      $display("Mapper Out Mesg: rate:%d, data:%h",mesg.control.rate,mesg.data);   endrule      rule putDepuncturer(True);      let mesg <- demapper.out.get;      depuncturer.in.put(mesg);      $display("Demapper Out Mesg: rate:%d, data:%b",mesg.control.rate,mesg.data);   endrule   rule putViterbi(True);      let mesg <- depuncturer.out.get;      viterbi.in.put(mesg);      $display("Depuncturer Out Mesg: rate:%d, data:%b",mesg.control.rate,mesg.data);   endrule      rule getOutput(True);      let mesg <- viterbi.out.get;      $display("Viterbi Out Mesg: rate:%d, data:%b",mesg.control.rate,mesg.data);   endrule         rule tick(True);      cycle <= cycle + 1;      if (cycle == 5000)	 $finish;      $display("Cycle: %d",cycle);   endrule   endmodule      

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品中文在线影院| 欧美三级乱人伦电影| 人人超碰91尤物精品国产| 一级日本不卡的影视| 亚洲欧美综合另类在线卡通| 国产精品电影一区二区| 亚洲欧洲无码一区二区三区| 亚洲欧美日韩国产成人精品影院| 亚洲欧美乱综合| 亚洲亚洲人成综合网络| 日韩激情一区二区| 老汉av免费一区二区三区| 国产精品一二三区在线| 黄色日韩网站视频| 岛国精品在线播放| 欧美午夜一区二区三区免费大片| 欧美日韩成人一区二区| 亚洲精品一区二区三区福利| 国产日产精品一区| 亚洲视频狠狠干| 五月天亚洲婷婷| 久久精品国产亚洲5555| 成人不卡免费av| 欧美日韩视频在线观看一区二区三区 | 欧美一区二区免费观在线| 日韩美女一区二区三区| 国产三级精品视频| 亚洲一卡二卡三卡四卡 | 国产在线播放一区二区三区| 99综合影院在线| 欧美一区在线视频| 国产人久久人人人人爽| 亚洲国产日韩a在线播放| 久久国产免费看| 91蜜桃传媒精品久久久一区二区| 欧美精品丝袜久久久中文字幕| 日韩精品专区在线影院观看| 亚洲情趣在线观看| 日本系列欧美系列| 国产风韵犹存在线视精品| 成人小视频免费观看| 欧美一区二区女人| 国产精品麻豆欧美日韩ww| 日韩av电影免费观看高清完整版| 成人自拍视频在线| 欧美成人精品3d动漫h| 亚洲伦理在线免费看| 国产综合一区二区| 欧洲日韩一区二区三区| 欧美国产一区二区| 蜜桃视频一区二区三区| 色婷婷综合视频在线观看| 日韩你懂的电影在线观看| 一区二区三区四区不卡在线| 国产乱子伦视频一区二区三区| 欧美日韩五月天| 国产精品护士白丝一区av| 美女视频黄频大全不卡视频在线播放| 色猫猫国产区一区二在线视频| 久久这里只有精品6| 免费看精品久久片| 欧美少妇bbb| 亚洲综合在线观看视频| 国产一区二区三区四区五区美女 | 91精品免费在线观看| 国产精品午夜久久| 国产精品亚洲综合一区在线观看| 91麻豆精品国产91久久久使用方法| 一区二区三区在线观看视频| 99精品视频一区二区| 亚洲国产成人午夜在线一区| 日韩av在线播放中文字幕| 99精品视频在线观看| 中文字幕一区二区三| 94色蜜桃网一区二区三区| 中文字幕一区二区三区精华液| 大胆亚洲人体视频| 欧美不卡在线视频| 久久电影网站中文字幕| 91精品久久久久久蜜臀| 男女男精品网站| 欧美一区二区三区在| 毛片不卡一区二区| 精品国产百合女同互慰| 国产精品亚洲第一区在线暖暖韩国| 精品国免费一区二区三区| 国产一区二区女| 国产精品美女久久久久久2018| 成人午夜精品一区二区三区| 中文字幕日本乱码精品影院| 色悠悠久久综合| 舔着乳尖日韩一区| 精品电影一区二区| 成人午夜电影小说| 一区二区三区精品视频在线| 在线电影欧美成精品| 精品一区中文字幕| 国产精品美女久久福利网站| 日本大香伊一区二区三区| 午夜精品久久久久久久99樱桃| 日韩欧美一二三| 国产+成+人+亚洲欧洲自线| 专区另类欧美日韩| 欧美日韩一区在线观看| 日日嗨av一区二区三区四区| 欧美精品一区二区三区很污很色的| 风间由美性色一区二区三区| 亚洲三级小视频| 欧美男人的天堂一二区| 国产黑丝在线一区二区三区| 亚洲蜜桃精久久久久久久| 欧美精品久久一区二区三区| 激情深爱一区二区| 亚洲乱码国产乱码精品精的特点| 欧美精品国产精品| 99久久精品国产一区| 国产成人精品亚洲午夜麻豆| 亚洲欧美偷拍三级| 久久久久久麻豆| 欧美男男青年gay1069videost| 国产麻豆91精品| 亚洲人成网站精品片在线观看| 日韩一区二区三区视频| 色综合天天综合色综合av| 久久成人精品无人区| 丝袜美腿亚洲综合| **性色生活片久久毛片| 精品日韩欧美一区二区| 欧美日韩精品欧美日韩精品一| 国产成人综合在线| 久久国产精品72免费观看| 亚洲成av人片在线| 国产精品网曝门| 精品国产一区二区精华| 欧美另类变人与禽xxxxx| 91原创在线视频| 国产成人免费av在线| 激情av综合网| 久久精品国产一区二区三| 亚洲风情在线资源站| 一区二区视频免费在线观看| 欧美国产国产综合| 3d动漫精品啪啪1区2区免费| 欧美性高清videossexo| 91丝袜美女网| 99精品久久只有精品| 成人黄色a**站在线观看| 国产91丝袜在线18| 国产成都精品91一区二区三| 久久国产福利国产秒拍| 精品一区二区三区免费视频| 日韩一区二区三区三四区视频在线观看| 国产一区二区三区免费在线观看| 视频一区视频二区中文字幕| 久久久青草青青国产亚洲免观| 成人涩涩免费视频| 日本不卡免费在线视频| 五月激情综合网| 日韩不卡一区二区三区| 日本不卡一二三| 青娱乐精品在线视频| 免费日韩伦理电影| 久久99精品网久久| 国产精品一区在线观看乱码| 国产精品99精品久久免费| 国产精品亚洲视频| www.欧美色图| 欧美综合天天夜夜久久| 欧美午夜一区二区| 日韩三级高清在线| 久久综合国产精品| 国产精品免费观看视频| 亚洲精品国产品国语在线app| 亚洲人成网站精品片在线观看| ㊣最新国产の精品bt伙计久久| 中文字幕佐山爱一区二区免费| 亚洲制服丝袜av| 久久成人久久鬼色| a4yy欧美一区二区三区| 7777精品伊人久久久大香线蕉 | 成人性生交大片免费看在线播放| jiyouzz国产精品久久| 欧美无人高清视频在线观看| 欧美mv日韩mv国产网站| 中文字幕亚洲不卡| 亚洲大片免费看| 国产一区二区精品久久91| 色乱码一区二区三区88| 精品成人佐山爱一区二区| ...xxx性欧美| 精品亚洲国产成人av制服丝袜 | 成人小视频免费在线观看| 欧美在线观看禁18| 久久久久9999亚洲精品| 亚洲国产成人av好男人在线观看| 国内精品伊人久久久久影院对白| 成人高清免费在线播放| 日韩三级在线观看| 亚洲激情六月丁香| 香蕉影视欧美成人|