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

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

?? smartcard.v

?? 自己設計的Smartcard功能模塊
?? V
?? 第 1 頁 / 共 3 頁
字號:
          serial_out <= 1'b0;          
        end
                
      `CHARACTER_TRANSMITTER_DATA:     
        begin
          direction <= 1'b0;       
          if (count5_eq_0)
            count5 <= COUNT - 1'b1;
          else
            begin
              if(count5 == 5'h1)
                begin
                  if (bit_counter_r > 3'b0)
                    begin
                      bit_counter_r <= bit_counter_r - 1'b1;
                      {bit_out_r,shift_out_r[6:1]}  <= {shift_out_r[6],shift_out_r[5:0]};
                      current_state <= `CHARACTER_TRANSMITTER_DATA;
                    end
                  else   // end of byte
                   begin
                     bit_out_r <= parity_xor_r;
                     current_state <= `CHARACTER_TRANSMITTER_PARITY;
                   end
                 count5 <=  5'h0;   
                 end
              else
              count5 <=  count5 - 1'b1;
            end  
          serial_out <=  bit_out_r; // set output pin          
        end
                
      `CHARACTER_TRANSMITTER_PARITY:     
        begin
          direction <= 1'b0;        
          if (count5_eq_0)
            count5 <= COUNT - 1'b1;
          else
            if (count5 == 5'h1)
               begin
                 count5 <=  5'b0;
                 current_state <= `CHARACTER_TRANSMITTER_GUARDTIME;
               end
            else
              count5 <= count5 - 1'b1;
          serial_out <= bit_out_r;        
        end
                
      `CHARACTER_TRANSMITTER_GUARDTIME:     
        begin
          direction <= 1'b0;  
          if (N == 8'b11111111)
            current_state <= `IDLE;
          else
          begin      
          if (count5_eq_0)
            count5 <= COUNT - 1'b1;
          else
            begin
              if(count5 == 5'h1)
                begin
                  if (N > 8'b1)
                    begin
                      N <= N - 1'b1;
                      current_state <= `CHARACTER_TRANSMITTER_GUARDTIME;
                    end
                  else  
                   begin
                     current_state <= `IDLE;
                   end
                 count5 <=  5'h0;   
                 end
              else
              count5 <=  count5 - 1'b1;
            end  
          serial_out <= 1'b1;
          end
        end  
                
//////////////////////////////////////////////////////////////////////
//  BLOCK_RECEIVER   BLOCK_RECEIVER   BLOCK_RECEIVER   BLOCK_RECEIVER   
//////////////////////////////////////////////////////////////////////


      `BLOCK_RECEIVER_GET_CWT_BWT:
	    begin
          count7 <= BWT_counter;
		  count8 <= CWT_counter;
		  current_state <= `BLOCK_RECEIVER_WAIT_START;
		end	

	
      `BLOCK_RECEIVER_WAIT_START:         //BWT overtime check
        begin
          if (count7 == 14'b0)
            begin
              out_BWT_OvertimeIndicate_r<= 1'b1;  
              if(in_readStatusRegister)
              begin  
                current_state <= `IDLE;      
				out_BWT_OvertimeIndicate_r<= 1'b0;
              end
            end
          else
            begin
              direction <= 1'b1;
              B_C_sent <= 1'b0;
              if (serial_in==1'b0)
                begin
                  count5 <= COUNT -1'b1;       
                 current_state <= `BLOCK_RECEIVER_REC_START;
                  count7 <= BWT_counter;   
                end
              else
                begin  
                  count5 <= count5 -1'b1; 
                  if (count5_eq_0)
                    begin
                      count7 <= count7 - 1'b1;
                      count5 <= COUNT - 1'b1;                        
                    end
                  current_state <= `BLOCK_RECEIVER_WAIT_START;            
                end  
            end  
        end           

     `BLOCK_RECEIVER_WAIT_START1:         //CWT overtime check
        begin
          if (count8 == 6'b0)
            begin
              out_CWT_OvertimeIndicate_r<= 1'b1;
              if(in_readStatusRegister)
              begin 
                out_CWT_OvertimeIndicate_r<= 1'b0;
                current_state <= `IDLE;
              end  
            end
           else
             begin
              direction <= 1'b1;
              B_C_sent <= 1'b1;
              if (serial_in==1'b0)
                begin
                  count5 <= COUNT -1'b1;       
                  current_state <= `BLOCK_RECEIVER_REC_START;  
                  count8 <= CWT_counter; 
                end
              else
                begin
                  count5 <= count5 -1'b1;
                  if (count5_eq_0)
                    begin
                      count8 <= count8 - 1'b1;
                      count5 <= COUNT - 1'b1;                        
                    end
                  current_state <= `BLOCK_RECEIVER_WAIT_START1;                                          end
             end
         end  
                 
      `BLOCK_RECEIVER_REC_START:     
        begin
          direction <= 1'b1;
          if (count5_eq_halfcount5)                       
            begin
              if (serial_in==1'b1)           // no start bit
                begin                      
                case(B_C_sent == 1'b0)
                  0:current_state <=  `BLOCK_RECEIVER_WAIT_START;
                  1:current_state <=  `BLOCK_RECEIVER_WAIT_START1;
                endcase 
                count5 <= COUNT -1'b1; 
                end
              else                                       // start bit detected
                current_state <=  `BLOCK_RECEIVER_REC_PREPARE;  
            end  
          count5 <= count5 - 1'b1;              
        end
                
      `BLOCK_RECEIVER_REC_PREPARE:   
        begin
          direction <= 1'b1;
                  count5 <=  count5 - 1'b1;
          rbit_counter_r <=  3'b111;    //8 bits in a word
            if (count5_eq_0)
               begin
                 current_state <= `BLOCK_RECEIVER_REC_BIT;
                 count5 <= COUNT -1'b1;  
                 rshift_r <= 8'b0;
               end   
                    
        end
                
     `BLOCK_RECEIVER_REC_BIT:     
        begin
          direction <= 1'b1;
                  count5 <=  count5 - 1'b1; 
          if (count5_eq_0)
            begin
              current_state <= `BLOCK_RECEIVER_END_BIT;
            end 
          else
            if (count5_eq_halfcount5) // read the bit
              rshift_r[7:0]  <=  { rshift_r[6:0],serial_in};       //suppose the LSB arrive first
                    
        end
                
      `BLOCK_RECEIVER_END_BIT:     
        begin
          direction <= 1'b1;
          if (rbit_counter_r==3'b0) // no more bits in word
            begin
              if (BlockLength ==2'h0)
                current_state <= `IDLE;
              else
                current_state <= `BLOCK_RECEIVER_WAIT_START1;
              end  
          else            
            begin
              current_state <= `BLOCK_RECEIVER_REC_BIT;
              rbit_counter_r <=  rbit_counter_r - 1'b1;
            end
          count5 <=  COUNT -2'b10;          
        end
                
////////////////////////////////////////////////////////////////
// BLOCK_TRANSMITTER      BLOCK_TRANSMITTER     BLOCK_TRANSMITTER
////////////////////////////////////////////////////////////////
      `BLOCK_TRANSMITTER_PREPARE:     
          begin
            direction <= 1'b0;
            if (in_TransmitFIFOEmpty)
              begin
                current_state <= `IDLE;
                serial_out <= 1'b1;
              end  
            else
              begin
                out_TransmitRead_r <= 1'b0;
                serial_out <= 1'b1;
				N <= in_N;
                current_state <= `BLOCK_TRANSMITTER_TRANSMITTED;            
              end                 
          end                
           
        `BLOCK_TRANSMITTER_TRANSMITTED :
          begin
            direction <= 1'b0;          
            serial_out <= 1'b1;
            out_TransmitRead_r <= 1'b1;
            bit_counter_r <=  3'b111;
            count5 <= COUNT -1'b1;
            if (TS == 1'b0)
              {bit_out_r,shift_out_r[6:0]} <= in_txDataFromTxFIFO;
            else
              if (TS == 1'b1)
                {bit_out_r,shift_out_r[6:0]} <= ~(in_txDataFromTxFIFO);            
            current_state <= `BLOCK_TRANSMITTER_START;            
          end
                
      `BLOCK_TRANSMITTER_START:     
        begin
          direction <= 1'b0;          
          out_TransmitRead_r <= 1'b0;
          if (count5_eq_0)
			begin
              count5 <= COUNT - 1'b1;
			  current_state <= `BLOCK_TRANSMITTER_DATA;
		    end
          else
            begin         
              if (count5 == 5'h1)
                 begin
                   count5 <= 5'h0;
				   
                 end
              else 
                 count5 <= count5 - 1'b1;
             end    
          serial_out <= 1'b0;          
        end        
                
      `BLOCK_TRANSMITTER_DATA:     
        begin
          direction <= 1'b0;       
          if (count5_eq_0)
            count5 <= COUNT - 1'b1;
          else
            begin
              if(count5 == 5'h1)
                begin
                  if (bit_counter_r > 3'b0)
                    begin
                      bit_counter_r <= bit_counter_r - 1'b1;
                      {bit_out_r,shift_out_r[6:1]} <= {shift_out_r[6],shift_out_r[5:0]};
                      current_state <= `BLOCK_TRANSMITTER_DATA;
                    end
                  else   // end of byte
                   begin
                     //BlockLength <= BlockLength -1'b1;
                     current_state <= `BLOCK_TRANSMITTER_GUARDTIME;
                   end
                 count5 <=  5'h0;   
                 end
              else
              count5 <=  count5 - 1'b1;
            end  
          serial_out <=  bit_out_r; // set output pin          
        end
                
      `BLOCK_TRANSMITTER_GUARDTIME:        
        begin
          direction <= 1'b0;  
		  shift_out_r <= 7'b0;
          if (N == 8'b11111111)
            current_state <= `IDLE;
          else
          begin      
          if (count5_eq_0)
		    begin  
            count5 <= COUNT - 1'b1;
		   // current_state <= BLOCK_TRANSMITTER_GUARDTIME;
		    end
          else
            begin
              if(count5 == 5'h1)
                begin
                  if (N > 8'b1)
                    begin
                      N <= N - 1'b1;
                      current_state <= `BLOCK_TRANSMITTER_GUARDTIME;
                    end
                  else  
                   begin
                     if (BlockLength == 1'b1)
                       current_state <= `BLOCK_TRANSMITTER_BGT;        
                     else
                       current_state <= `BLOCK_TRANSMITTER_PREPARE;   
                       BlockLength <= BlockLength -1'b1;  
                   end
                 count5 <=  5'h0;   
                 end
              else
              count5 <=  count5 - 1'b1;
            end  
          serial_out <= 1'b1;
          end
        end      

     `BLOCK_TRANSMITTER_BGT:
        begin
          direction <= 1'b0; 
		  BlockLength <= 1'b0;
          if (count5_eq_0)
            count5 <= COUNT - 1'b1;
          else
            begin
              if(count5 == 5'h1)
                begin
                  if (BGT == 8'b1)
                    begin
                      current_state <= `IDLE;
                    end  
                  else                                    
                    begin
                      BGT <= BGT - 1'b1;
                      current_state <= `BLOCK_TRANSMITTER_BGT;
                    end
                 count5 <=  5'h0;   
                 end
              else
              count5 <=  count5 - 1'b1;
            end  
          serial_out <= 1'b1;
          end                   
            
      default: current_state <= `IDLE;   
      endcase
      end  //end else
  end   //end always

  //when the rf_push_r have a pesedge from '0' to '1', give a out_ReceiverWe.
  always @(posedge clk_div or negedge rst_preset_n_a)
    begin
      if(!rst_preset_n_a)
        rf_push_q_r <= 0;
      else
        rf_push_q_r <=  rf_push_r;
    end
  assign out_ReceiverWe = rf_push_r & ~rf_push_q_r;


  always @(posedge clk_div or negedge rst_preset_n_a)
    begin
      if(!rst_preset_n_a)
        begin
          out_OverrunErrorIndicator_r <= 1'b0; 
        end
      else
        begin
            if(in_rFIFOFull & out_ReceiverWe)
              out_OverrunErrorIndicator_r <= 1'b1;
            else
              if(in_readStatusRegister)
                out_OverrunErrorIndicator_r <= 1'b0; 
        end
    end



  always @(posedge clk_div or negedge rst_preset_n_a)
      begin
      if(!rst_preset_n_a)
        begin
          out_TransmitterEmptyIndictor <= 1'b0; 
        end
      else
        begin
          if (in_TransmitFIFOEmpty & (current_state==`IDLE))
            out_TransmitterEmptyIndictor <= 1'b1 ;
            else 
              if(in_readStatusRegister)
                out_TransmitterEmptyIndictor <= 1'b0; 
        end 
      end
      
endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合色视频| 在线视频欧美精品| 欧美在线视频日韩| 精品国产区一区| 亚洲一区二区三区中文字幕| 国产精品一区二区三区乱码| 欧美中文字幕一二三区视频| 中文字幕第一区| 青娱乐精品视频在线| 在线观看日韩电影| 国产精品久久久久久久裸模 | 激情深爱一区二区| 欧美综合久久久| 中文字幕在线观看不卡视频| 国产在线国偷精品免费看| 日本韩国视频一区二区| 国产精品成人免费在线| 狠狠久久亚洲欧美| 欧美一区二区观看视频| 亚洲网友自拍偷拍| 在线一区二区视频| 亚洲欧美日韩中文字幕一区二区三区| 国产成人精品免费网站| 欧美不卡激情三级在线观看| 午夜欧美大尺度福利影院在线看| 99re这里只有精品首页| 日本一区二区三区四区| 国产综合色在线| 精品国产一区二区三区忘忧草 | 在线观看一区日韩| 国产精品国产三级国产普通话蜜臀| 免费看欧美女人艹b| 欧美久久久久免费| 性久久久久久久久| 欧美另类一区二区三区| 亚洲国产va精品久久久不卡综合| 在线视频欧美区| 亚洲成人精品一区二区| 欧美性极品少妇| 亚洲va韩国va欧美va| 欧美日韩久久一区| 日韩精品成人一区二区在线| 欧美一区二视频| 奇米综合一区二区三区精品视频| 555夜色666亚洲国产免| 免费人成在线不卡| 久久这里只有精品6| 成人网在线播放| 一区二区三区免费| 欧美日韩亚洲另类| 久久99国产精品免费| 久久综合九色综合97婷婷女人| 国产麻豆精品视频| 综合激情成人伊人| 欧美日本免费一区二区三区| 日本91福利区| 国产网站一区二区| 91美女在线视频| 丝袜诱惑制服诱惑色一区在线观看 | 91精品国产91久久久久久一区二区 | 一区二区成人在线观看| 91精品国产aⅴ一区二区| 久久激情综合网| 国产精品视频一二| 在线观看91精品国产入口| 性做久久久久久| 久久久午夜精品| 欧洲一区二区三区在线| 六月丁香婷婷色狠狠久久| 国产女同性恋一区二区| 欧美无人高清视频在线观看| 看片网站欧美日韩| 亚洲精品美国一| 欧美大片拔萝卜| 色噜噜狠狠成人网p站| 久久99精品国产麻豆不卡| 亚洲精品乱码久久久久久| 日韩欧美一区电影| 色哟哟国产精品| 久久精品国产精品亚洲精品| 国内外成人在线| 亚洲一区在线观看免费观看电影高清 | 亚洲午夜精品久久久久久久久| 精品sm捆绑视频| 欧美亚洲日本一区| 国产91精品免费| 美日韩黄色大片| 亚洲欧美激情小说另类| 久久久久久久久久久久久夜| 欧美日本免费一区二区三区| 99精品热视频| 国产传媒欧美日韩成人| 美女精品一区二区| 亚洲国产视频直播| 中文字幕在线免费不卡| 国产日韩精品一区二区浪潮av | 欧洲视频一区二区| eeuss鲁一区二区三区| 久久97超碰国产精品超碰| 午夜日韩在线电影| 一区二区欧美视频| 亚洲日本va午夜在线影院| 国产女同互慰高潮91漫画| 日韩欧美一二三| 日韩小视频在线观看专区| 欧美日韩国产综合久久| 欧美中文字幕不卡| 91成人免费网站| 日本乱人伦一区| 色狠狠一区二区| 色综合久久99| 日本精品裸体写真集在线观看 | 欧美白人最猛性xxxxx69交| 欧美日韩高清一区二区| 欧美日韩一区中文字幕| 欧美中文字幕一区| 欧美日韩一区视频| 欧美精品黑人性xxxx| 91麻豆精品91久久久久久清纯 | 久久久久久久国产精品影院| 精品国产伦理网| 久久久久亚洲蜜桃| 国产精品久久午夜| 亚洲欧美日韩中文字幕一区二区三区| 综合av第一页| 亚洲综合久久久| 午夜久久久久久| 美女视频黄 久久| 国产传媒日韩欧美成人| 成人aa视频在线观看| 一本到三区不卡视频| 欧美性猛交xxxx乱大交退制版| 7777精品伊人久久久大香线蕉最新版| 日韩午夜激情视频| 亚洲精品在线观看网站| 国产精品国产a| 亚洲黄色录像片| 日本不卡中文字幕| 国产乱子伦一区二区三区国色天香| 国产成人精品aa毛片| 91伊人久久大香线蕉| 在线电影国产精品| 久久蜜桃av一区二区天堂| 国产精品久久久久久久第一福利| 亚洲精品成a人| 毛片一区二区三区| 成人高清视频免费观看| 欧美在线观看视频一区二区三区| 欧美一区二区三区在线看| 国产三级精品三级| 亚洲一区二区成人在线观看| 蓝色福利精品导航| 91麻豆国产福利在线观看| 7777精品久久久大香线蕉| 国产欧美日韩另类一区| 亚洲国产一区二区在线播放| 狠狠色狠狠色合久久伊人| 色偷偷成人一区二区三区91| 日韩欧美视频一区| 亚洲欧洲综合另类| 日本成人在线视频网站| 91蜜桃视频在线| 久久久综合精品| 午夜精品福利久久久| 丁香婷婷综合激情五月色| 日韩一区二区三区在线观看| 亚洲人精品一区| 国产精品1024| 欧美一区二区女人| 一二三区精品视频| 成人黄色在线网站| 精品国产免费一区二区三区四区 | 亚洲视频免费观看| 久久99精品视频| 欧美二区乱c少妇| 一区二区日韩av| 成人av电影在线| 久久久久久久国产精品影院| 日韩电影在线免费看| 欧美专区日韩专区| 亚洲欧美另类图片小说| 国产成人精品亚洲日本在线桃色| 日韩欧美在线一区二区三区| 亚洲bt欧美bt精品| 欧美在线你懂得| 亚洲欧美另类小说| 波多野结衣中文一区| 国产女人水真多18毛片18精品视频| 男男视频亚洲欧美| 欧美一区二视频| 日韩专区中文字幕一区二区| 欧美午夜精品电影| 亚洲一区二区三区在线| 在线看一区二区| 亚洲综合在线五月| 精品1区2区3区| 午夜在线成人av| 91麻豆精品91久久久久久清纯| 日本美女一区二区| 日韩免费高清视频|