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

📄 viterbi219_decoder.v

📁 (2
💻 V
📖 第 1 页 / 共 4 页
字号:
reg [15:0]cmet_in247;
reg [15:0]cmet_in248;
reg [15:0]cmet_in249;
reg [15:0]cmet_in250;
reg [15:0]cmet_in251;
reg [15:0]cmet_in252;
reg [15:0]cmet_in253;
reg [15:0]cmet_in254;
reg [15:0]cmet_in255;

reg [63:0] data;
reg [5:0] counter;			//do 64 times back trace
always @(posedge clk)  
  if(reset)
    counter <= 0;
  else 
    counter <= counter + 1;

assign ready = (counter == 0);    

wire data_out;
reg [7:0] endstate;

always @(posedge clk)
  if(reset)
    endstate <= 0;
  else if(path63[endstate] == 1'b1)
      endstate <= {1'b1,endstate[7:1]};
  else
    endstate <= {1'b0, endstate[7:1]};

assign data_out = (path63[endstate] == 1'b1) ? 1'b1:1'b0;

always @(posedge clk) 
  if(reset)
    data <= 0;
  else
    data <= {data_out, data[63:1]};
  
//reg [3:0] mettab;
wire [4:0] metab0,metab1,metab2,metab3;

//get 2 symbol's 4 state metric
index_sym_met u1(.metab0(metab0), .metab1(metab1), .metab2(metab2), .metab3(metab3), .symbol0(symbol0), .symbol1(symbol1));//, .clk(clk), .reset(reset));
//memory path
always @(posedge clk)
  if(reset)
    begin
    path01 <= 0;
    path02 <= 0;
    path03 <= 0;
    path04 <= 0;
    path05 <= 0;
    path06 <= 0;
    path07 <= 0;
    path08 <= 0;
    path09 <= 0;
    path10 <= 0;
    path11 <= 0;
    path12 <= 0;
    path13 <= 0;
    path14 <= 0;
    path15 <= 0;
    path16 <= 0;
    path17 <= 0;
    path18 <= 0;
    path19 <= 0;
    path20 <= 0;
    path21 <= 0;
    path22 <= 0;
    path23 <= 0;
    path24 <= 0;
    path25 <= 0;
    path26 <= 0;
    path27 <= 0;
    path28 <= 0;
    path29 <= 0;
    path30 <= 0;
    path31 <= 0;
    path32 <= 0;
    path33 <= 0;
    path34 <= 0;
    path35 <= 0;
    path36 <= 0;
    path37 <= 0;
    path38 <= 0;
    path39 <= 0;
    path40 <= 0;
    path41 <= 0;
    path42 <= 0;
    path43 <= 0;
    path44 <= 0;
    path45 <= 0;
    path46 <= 0;
    path47 <= 0;
    path48 <= 0;
    path49 <= 0;
    path50 <= 0;
    path51 <= 0;
    path52 <= 0;
    path53 <= 0;
    path54 <= 0;
    path55 <= 0;
    path56 <= 0;
    path57 <= 0;
    path58 <= 0;
    path59 <= 0;
    path60 <= 0;
    path61 <= 0;
    path62 <= 0;
    path63 <= 0;

    end  
  else
begin
  path01 <= path00;
  path02 <= path01;
  path03 <= path02;
  path04 <= path03;
  path05 <= path04;
  path06 <= path05;
  path07 <= path06;
  path08 <= path07;
  path09 <= path08;
  path10 <= path09;
  path11 <= path10;
  path12 <= path11;
  path13 <= path12;
  path14 <= path13;
  path15 <= path14;
  path16 <= path15;
  path17 <= path16;
  path18 <= path17;
  path19 <= path18;
  path20 <= path19;
  path21 <= path20;
  path22 <= path21;
  path23 <= path22;
  path24 <= path23;
  path25 <= path24;
  path26 <= path25;
  path27 <= path26;
  path28 <= path27;
  path29 <= path28;
  path30 <= path29;
  path31 <= path30;
  path32 <= path31;
  path33 <= path32;
  path34 <= path33;
  path35 <= path34;
  path36 <= path35;
  path37 <= path36;
  path38 <= path37;
  path39 <= path38;
  path40 <= path39;
  path41 <= path40;
  path42 <= path41;
  path43 <= path42;
  path44 <= path43;
  path45 <= path44;
  path46 <= path45;
  path47 <= path46;
  path48 <= path47;
  path49 <= path48;
  path50 <= path49;
  path51 <= path50;
  path52 <= path51;
  path53 <= path52;
  path54 <= path53;
  path55 <= path54;
  path56 <= path55;
  path57 <= path56;
  path58 <= path57;
  path59 <= path58;
  path60 <= path59;
  path61 <= path60;
  path62 <= path61;
  path63 <= path62;
end         

always @(posedge clk)
  if(reset)
    begin 
      cmet_in000 <= 0;
      cmet_in001 <= 0;
      cmet_in002 <= 0;
      cmet_in003 <= 0;
      cmet_in004 <= 0;
      cmet_in005 <= 0;
      cmet_in006 <= 0;
      cmet_in007 <= 0;
      cmet_in008 <= 0;
      cmet_in009 <= 0;
      cmet_in010 <= 0;
      cmet_in011 <= 0;
      cmet_in012 <= 0;
      cmet_in013 <= 0;
      cmet_in014 <= 0;
      cmet_in015 <= 0;
      cmet_in016 <= 0;
      cmet_in017 <= 0;
      cmet_in018 <= 0;
      cmet_in019 <= 0;
      cmet_in020 <= 0;
      cmet_in021 <= 0;
      cmet_in022 <= 0;
      cmet_in023 <= 0;
      cmet_in024 <= 0;
      cmet_in025 <= 0;
      cmet_in026 <= 0;
      cmet_in027 <= 0;
      cmet_in028 <= 0;
      cmet_in029 <= 0;
      cmet_in030 <= 0;
      cmet_in031 <= 0;
      cmet_in032 <= 0;
      cmet_in033 <= 0;
      cmet_in034 <= 0;
      cmet_in035 <= 0;
      cmet_in036 <= 0;
      cmet_in037 <= 0;
      cmet_in038 <= 0;
      cmet_in039 <= 0;
      cmet_in040 <= 0;
      cmet_in041 <= 0;
      cmet_in042 <= 0;
      cmet_in043 <= 0;
      cmet_in044 <= 0;
      cmet_in045 <= 0;
      cmet_in046 <= 0;
      cmet_in047 <= 0;
      cmet_in048 <= 0;
      cmet_in049 <= 0;
      cmet_in050 <= 0;
      cmet_in051 <= 0;
      cmet_in052 <= 0;
      cmet_in053 <= 0;
      cmet_in054 <= 0;
      cmet_in055 <= 0;
      cmet_in056 <= 0;
      cmet_in057 <= 0;
      cmet_in058 <= 0;
      cmet_in059 <= 0;
      cmet_in060 <= 0;
      cmet_in061 <= 0;
      cmet_in062 <= 0;
      cmet_in063 <= 0;
      cmet_in064 <= 0;
      cmet_in065 <= 0;
      cmet_in066 <= 0;
      cmet_in067 <= 0;
      cmet_in068 <= 0;
      cmet_in069 <= 0;
      cmet_in070 <= 0;
      cmet_in071 <= 0;
      cmet_in072 <= 0;
      cmet_in073 <= 0;
      cmet_in074 <= 0;
      cmet_in075 <= 0;
      cmet_in076 <= 0;
      cmet_in077 <= 0;
      cmet_in078 <= 0;
      cmet_in079 <= 0;
      cmet_in080 <= 0;
      cmet_in081 <= 0;
      cmet_in082 <= 0;
      cmet_in083 <= 0;
      cmet_in084 <= 0;
      cmet_in085 <= 0;
      cmet_in086 <= 0;
      cmet_in087 <= 0;
      cmet_in088 <= 0;
      cmet_in089 <= 0;
      cmet_in090 <= 0;
      cmet_in091 <= 0;
      cmet_in092 <= 0;
      cmet_in093 <= 0;
      cmet_in094 <= 0;
      cmet_in095 <= 0;
      cmet_in096 <= 0;
      cmet_in097 <= 0;
      cmet_in098 <= 0;
      cmet_in099 <= 0;
      cmet_in100 <= 0;
      cmet_in101 <= 0;
      cmet_in102 <= 0;
      cmet_in103 <= 0;
      cmet_in104 <= 0;
      cmet_in105 <= 0;
      cmet_in106 <= 0;
      cmet_in107 <= 0;
      cmet_in108 <= 0;
      cmet_in109 <= 0;
      cmet_in110 <= 0;
      cmet_in111 <= 0;
      cmet_in112 <= 0;
      cmet_in113 <= 0;
      cmet_in114 <= 0;
      cmet_in115 <= 0;
      cmet_in116 <= 0;
      cmet_in117 <= 0;
      cmet_in118 <= 0;
      cmet_in119 <= 0;
      cmet_in120 <= 0;
      cmet_in121 <= 0;
      cmet_in122 <= 0;
      cmet_in123 <= 0;
      cmet_in124 <= 0;
      cmet_in125 <= 0;
      cmet_in126 <= 0;
      cmet_in127 <= 0;
      cmet_in128 <= 0;
      cmet_in129 <= 0;
      cmet_in130 <= 0;
      cmet_in131 <= 0;
      cmet_in132 <= 0;
      cmet_in133 <= 0;
      cmet_in134 <= 0;
      cmet_in135 <= 0;
      cmet_in136 <= 0;
      cmet_in137 <= 0;
      cmet_in138 <= 0;
      cmet_in139 <= 0;
      cmet_in140 <= 0;
      cmet_in141 <= 0;
      cmet_in142 <= 0;
      cmet_in143 <= 0;
      cmet_in144 <= 0;
      cmet_in145 <= 0;
      cmet_in146 <= 0;
      cmet_in147 <= 0;
      cmet_in148 <= 0;
      cmet_in149 <= 0;
      cmet_in150 <= 0;
      cmet_in151 <= 0;
      cmet_in152 <= 0;
      cmet_in153 <= 0;
      cmet_in154 <= 0;
      cmet_in155 <= 0;
      cmet_in156 <= 0;
      cmet_in157 <= 0;
      cmet_in158 <= 0;
      cmet_in159 <= 0;
      cmet_in160 <= 0;
      cmet_in161 <= 0;
      cmet_in162 <= 0;
      cmet_in163 <= 0;
      cmet_in164 <= 0;
      cmet_in165 <= 0;
      cmet_in166 <= 0;
      cmet_in167 <= 0;
      cmet_in168 <= 0;
      cmet_in169 <= 0;
      cmet_in170 <= 0;
      cmet_in171 <= 0;
      cmet_in172 <= 0;
      cmet_in173 <= 0;
      cmet_in174 <= 0;
      cmet_in175 <= 0;
      cmet_in176 <= 0;
      cmet_in177 <= 0;
      cmet_in178 <= 0;
      cmet_in179 <= 0;
      cmet_in180 <= 0;
      cmet_in181 <= 0;
      cmet_in182 <= 0;
      cmet_in183 <= 0;
      cmet_in184 <= 0;
      cmet_in185 <= 0;
      cmet_in186 <= 0;
      cmet_in187 <= 0;
      cmet_in188 <= 0;
      cmet_in189 <= 0;
      cmet_in190 <= 0;
      cmet_in191 <= 0;
      cmet_in192 <= 0;
      cmet_in193 <= 0;
      cmet_in194 <= 0;
      cmet_in195 <= 0;
      cmet_in196 <= 0;
      cmet_in197 <= 0;
      cmet_in198 <= 0;
      cmet_in199 <= 0;
      cmet_in200 <= 0;
      cmet_in201 <= 0;
      cmet_in202 <= 0;
      cmet_in203 <= 0;
      cmet_in204 <= 0;
      cmet_in205 <= 0;
      cmet_in206 <= 0;
      cmet_in207 <= 0;
      cmet_in208 <= 0;
      cmet_in209 <= 0;
      cmet_in210 <= 0;
      cmet_in211 <= 0;
      cmet_in212 <= 0;
      cmet_in213 <= 0;
      cmet_in214 <= 0;
      cmet_in215 <= 0;
      cmet_in216 <= 0;
      cmet_in217 <= 0;
      cmet_in218 <= 0;
      cmet_in219 <= 0;
      cmet_in220 <= 0;
      cmet_in221 <= 0;
      cmet_in222 <= 0;
      cmet_in223 <= 0;
      cmet_in224 <= 0;
      cmet_in225 <= 0;
      cmet_in226 <= 0;
      cmet_in227 <= 0;
      cmet_in228 <= 0;
      cmet_in229 <= 0;
      cmet_in230 <= 0;
      cmet_in231 <= 0;
      cmet_in232 <= 0;
      cmet_in233 <= 0;
      cmet_in234 <= 0;
      cmet_in235 <= 0;
      cmet_in236 <= 0;
      cmet_in237 <= 0;
      cmet_in238 <= 0;
      cmet_in239 <= 0;
      cmet_in240 <= 0;
      cmet_in241 <= 0;
      cmet_in242 <= 0;
      cmet_in243 <= 0;
      cmet_in244 <= 0;
      cmet_in245 <= 0;
      cmet_in246 <= 0;
      cmet_in247 <= 0;
      cmet_in248 <= 0;
      cmet_in249 <= 0;
      cmet_in250 <= 0;
      cmet_in251 <= 0;
      cmet_in252 <= 0;
      cmet_in253 <= 0;
      cmet_in254 <= 0;
      cmet_in255 <= 0;    
    end
  else
    begin 
      cmet_in000 <= cmet000; 
      cmet_in001 <= cmet001; 
      cmet_in002 <= cmet002; 
      cmet_in003 <= cmet003; 
      cmet_in004 <= cmet004; 
      cmet_in005 <= cmet005; 
      cmet_in006 <= cmet006; 
      cmet_in007 <= cmet007; 
      cmet_in008 <= cmet008; 
      cmet_in009 <= cmet009; 
      cmet_in010 <= cmet010; 
      cmet_in011 <= cmet011; 
      cmet_in012 <= cmet012; 
      cmet_in013 <= cmet013; 
      cmet_in014 <= cmet014; 
      cmet_in015 <= cmet015; 
      cmet_in016 <= cmet016; 
      cmet_in017 <= cmet017; 
      cmet_in018 <= cmet018; 
      cmet_in019 <= cmet019; 
      cmet_in020 <= cmet020; 
      cmet_in021 <= cmet021; 
      cmet_in022 <= cmet022; 
      cmet_in023 <= cmet023; 
      cmet_in024 <= cmet024; 
      cmet_in025 <= cmet025; 
      cmet_in026 <= cmet026; 
      cmet_in027 <= cmet027; 
      cmet_in028 <= cmet028; 
      cmet_in029 <= cmet029; 
      cmet_in030 <= cmet030; 
      cmet_in031 <= cmet031; 
      cmet_in032 <= cmet032; 
      cmet_in033 <= cmet033; 
      cmet_in034 <= cmet034; 
      cmet_in035 <= cmet035; 
      cmet_in036 <= cmet036; 
      cmet_in037 <= cmet037; 
      cmet_in038 <= cmet038; 
      cmet_in039 <= cmet039; 
      cmet_in040 <= cmet040; 
      cmet_in041 <= cmet041; 
      cmet_in042 <= cmet042; 
      cmet_in043 <= cmet043; 
      cmet_in044 <= cmet044; 
      cmet_in045 <= cmet045; 
      cmet_in046 <= cmet046; 
      cmet_in047 <= cmet047; 
      cmet_in048 <= cmet048; 
      cmet_in049 <= cmet049; 
      cmet_in050 <= cmet050; 
      cmet_in051 <= cmet051; 
      cmet_in052 <= cmet052; 
      cmet_in053 <= cmet053; 
      cmet_in054 <= cmet054; 
      cmet_in055 <= cmet055; 
      cmet_in056 <= cmet056; 
      cmet_in057 <= cmet057; 
      cmet_in058 <= cmet058; 
      cmet_in059 <= cmet059; 
      cmet_in060 <= cmet060; 
      cmet_in061 <= cmet061; 
      cmet_in062 <= cmet062; 
      cmet_in063 <= cmet063; 
      cmet_in064 <= cmet064; 
      cmet_in065 <= cmet065; 
      cmet_in066 <= cmet066; 
      cmet_in067 <= cmet067; 
      cmet_in068 <= cmet068; 
      cmet_in069 <= cmet069; 
      cmet_in070 <= cmet070; 
      cmet_in071 <= cmet071; 
      cmet_in072 <= cmet072; 
      cmet_in073 <= cmet073; 
      cmet_in074 <= cmet074; 
      cmet_in075 <= cmet075; 
      cmet_in076 <= cmet076; 
      cmet_in077 <= cmet077; 
      cmet_in078 <= cmet078; 
      cmet_in079 <= cmet079; 
      cmet_in080 <= cmet080; 
      cmet_in081 <= cmet081; 
      cmet_in082 <= cmet082; 
      cmet_in083 <= cmet083; 
      cmet_in084 <= cmet084; 
      cmet_in085 <= cmet085; 
      cmet_in086 <= cmet086; 
      cmet_in087 <= cmet087; 
      cmet_in088 <= cmet088; 
      cmet_in089 <= cmet089; 
      cmet_in090 <= cmet090; 
      cmet_in091 <= cmet091; 
      cmet_in092 <= cmet092; 
      cmet_in093 <= cmet093; 
      cmet_in094 <= cmet094; 
      cmet_in095 <= cmet095; 
      cmet_in096 <= cmet096; 
      cmet_in097 <= cmet097; 
      cmet_in098 <= cmet098; 
      cmet_in099 <= cmet099; 
      cmet_in100 <= cmet100; 
      cmet_in101 <= cmet101; 
      cmet_in102 <= cmet102; 
      cmet_in103 <= cmet103; 
      cmet_in104 <= cmet104; 
      cmet_in105 <= cmet105; 
      cmet_in106 <= cmet106; 
      cmet_in107 <= cmet107; 
      cmet_in108 <= cmet108; 
      cmet_in109 <= cmet109; 
      cmet_in110 <= cmet110; 
      cmet_in111 <= cmet111; 
      cmet_in112 <= cmet112; 
      cmet_in113 <= cmet113; 
      cmet_in114 <= cmet114; 
      cmet_in115 <= cmet115; 
      cmet_in116 <= cmet116; 
      cmet_in117 <= cmet117; 
      cmet_in118 <= cmet118; 
      cmet_in119 <= cmet119; 
      cmet_in120 <= cmet120; 
      cmet_in121 <= cmet121; 
      cmet_in122 <= cmet122; 
      cmet_in123 <= cmet123; 
      cmet_in124 <= cmet124; 
      cmet_in125 <= cmet125; 
      cmet_in126 <= cmet126; 
      cmet_in127 <= cmet127; 
      cmet_in128 <= cmet128; 
      cmet_in129 <= cmet129; 
      cmet_in130 <= cmet130; 
      cmet_in131 <= cmet131; 
      cmet_in132 <= cmet132; 
      cmet_in133 <= cmet133; 
      cmet_in134 <= cmet134; 
      cmet_in135 <= cmet135; 
      cmet_in136 <= cmet136; 
      cmet_in137 <= cmet137; 
      cmet_in138 <= cmet138; 

⌨️ 快捷键说明

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