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

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

?? len_cal.v

?? 本系統由服務器軟件控制平臺和fpga硬件處理系統組成
?? V
字號:
// find out the short packet and long packet
//-----------------------------------------------------------------------------
// Title      : header lenth caculate module
// Project    : 
//-----------------------------------------------------------------------------
// File       : len_cal.v
// Author     : 
// Date       : 07-10-21
//-----------------------------------------------------------------------------
// Description: 
//
//-------------------------------------------------------------------------------
 
`timescale 1ns/10ps

module len_cal(
sys_clk,
sys_rst_n,
rmv_sop_cal,
rmv_eop_cal,
rmv_vld_cal,
rmv_err_cal,
rmv_dat_cal,
rmv_mod_cal,
cal_afull_rmv,
cal_sop_fc,
cal_eop_fc,
cal_dat_fc,
cal_mod_fc,
cal_vld_fc, 
cal_spkt_fc, 
cal_lpkt_fc, 
cal_epkt_fc,  
fc_afull_cal,
conf_wr_cal,
conf_rd_cal,
conf_clr_cal,
conf_addr_cal,
conf_wdat_cal,
cal_rdat_conf
);

/*-------------------------------------------------------------------*\
                          Parameter Description
\*-------------------------------------------------------------------*/
parameter  D = 2;

/*-------------------------------------------------------------------*\
                            Port Description
\*-------------------------------------------------------------------*/ 

/*-------system I/F --------*/
input               sys_clk;
input               sys_rst_n;

//      hd_rmv Interface
input               rmv_sop_cal;
input               rmv_eop_cal;
input               rmv_vld_cal;
input               rmv_err_cal;
input     [31:0]    rmv_dat_cal;
input     [1:0]     rmv_mod_cal;
output              cal_afull_rmv;  

//      fc Interface
output              cal_sop_fc;
output              cal_eop_fc;
output    [31:0]    cal_dat_fc;
output    [1:0]     cal_mod_fc;
output              cal_vld_fc;
output              cal_spkt_fc;     //short packet
output              cal_lpkt_fc;     //long  packet
output              cal_epkt_fc;     //error packet
input               fc_afull_cal;

/*------------conf I/F------------*/
input               conf_wr_cal;
input               conf_rd_cal;
input               conf_clr_cal;
input     [3:0]     conf_addr_cal;
input     [15:0]    conf_wdat_cal;
output    [15:0]    cal_rdat_conf;
/*-------------------------------------------------------------------*\
                          Reg/Wire Description
\*-------------------------------------------------------------------*/
reg       [15:0]    long_pkt_cnt;    
reg       [15:0]    short_pkt_cnt;  
reg                 cal_afull_rmv;  
reg                 cal_sop_fc;
reg                 cal_eop_fc;
reg       [31:0]    cal_dat_fc;
reg       [1:0]     cal_mod_fc;
reg                 cal_vld_fc;
reg                 cal_spkt_fc;     //short packet
reg                 cal_lpkt_fc;     //long  packet
reg                 cal_epkt_fc;     //error packet

reg                 f_sop;
reg                 f_eop;
reg                 f_vld;
reg                 f_err;
reg       [31:0]    f_dat;
reg       [1:0]     f_mod;
reg                 f2_sop;
reg                 f2_eop;
reg                 f2_vld;
reg                 f2_err;
reg       [31:0]    f2_dat;
reg       [1:0]     f2_mod;
reg       [2:0]     vld_bytes;
reg       [10:0]    pkt_len;
wire                short_pkt;
wire                long_pkt;
reg                 long_pkt_d;

reg      [10:0]    long_pkt_size;
reg      [10:0]    short_pkt_size;
reg                clr_lpkt_cnt;
reg                clr_spkt_cnt;

reg                conf_wr;
reg                conf_rd;
reg                conf_clr;
reg   [3:0]        conf_addr;
reg   [15:0]       conf_wdat;
reg   [15:0]       cal_rdat_conf;
/*-------------------------------------------------------------------*\
                               Main Codes
\*-------------------------------------------------------------------*/        

/*-------- pushback signal -----------*/
always @ (posedge sys_clk or negedge sys_rst_n)
   if(!sys_rst_n)
      cal_afull_rmv <= #D 0;
   else
      cal_afull_rmv <= #D fc_afull_cal;

/*----------- statistics ------------- */
       
//long packet counter
always @ (posedge sys_clk or negedge sys_rst_n)
   if(!sys_rst_n)
      long_pkt_cnt <= #D 16'b0;
   else if(clr_lpkt_cnt)
      long_pkt_cnt <= #D 16'b0;
   else if(cal_eop_fc && cal_vld_fc && cal_lpkt_fc) 
      long_pkt_cnt <= #D long_pkt_cnt + 1;

//short packet counter
always @ (posedge sys_clk or negedge sys_rst_n)
   if(!sys_rst_n)
      short_pkt_cnt <= #D 16'b0;
   else if(clr_spkt_cnt)
      short_pkt_cnt <= #D 16'b0;
   else if(cal_eop_fc && cal_vld_fc && cal_spkt_fc) 
      short_pkt_cnt <= #D short_pkt_cnt + 1;

/*------------ calculation -------------*/

//register inputs
always @ (posedge sys_clk or negedge sys_rst_n)
   if(!sys_rst_n)
   begin
      f_sop <= #D 0;
      f_eop <= #D 0;
      f_vld <= #D 0;
      f_err <= #D 0;
      f_dat <= #D 32'b0;
      f_mod <= #D 2'b0;
      
      f2_sop <= #D 0;
      f2_eop <= #D 0;
      f2_vld <= #D 0;
      f2_err <= #D 0;
      f2_dat <= #D 32'b0;
      f2_mod <= #D 2'b0;
   end
   else
   begin
      f_sop <= #D rmv_sop_cal;
      f_eop <= #D rmv_eop_cal;
      f_vld <= #D rmv_vld_cal;
      f_err <= #D rmv_err_cal;
      f_dat <= #D rmv_dat_cal;
      f_mod <= #D rmv_mod_cal;
      
      f2_sop <= #D f_sop;
      f2_eop <= #D f_eop;
      f2_vld <= #D f_vld;
      f2_err <= #D f_err;
      f2_dat <= #D f_dat;
      f2_mod <= #D f_mod;
   end

always @ (posedge sys_clk or negedge sys_rst_n)
   if(!sys_rst_n)
      vld_bytes <= #D 3'b0;
   else if(rmv_eop_cal && rmv_vld_cal)
      case(rmv_mod_cal)
        2'b00:   vld_bytes <= #D 3'b100;
        2'b01:   vld_bytes <= #D 3'b011;
        2'b10:   vld_bytes <= #D 3'b010;
        2'b11:   vld_bytes <= #D 3'b001;
        default: vld_bytes <= #D 3'b0;
      endcase
    else if(rmv_vld_cal)
       vld_bytes <= #D 3'b100;
    else 
       vld_bytes <= #D 3'b0;

always @ (posedge sys_clk or negedge sys_rst_n)
   if(!sys_rst_n)
      pkt_len <= #D 11'b0;
   else if(f2_eop && f2_vld)
      pkt_len <= #D 11'b0;
   else if(long_pkt_d)
      pkt_len <= #D pkt_len;
   else if(f_vld)
      pkt_len <= #D pkt_len + vld_bytes;
      
assign short_pkt = pkt_len < short_pkt_size;
assign long_pkt  = pkt_len > long_pkt_size;      

always @ (posedge sys_clk or negedge sys_rst_n)
   if(!sys_rst_n)
      long_pkt_d <= #D 0;
   else
      long_pkt_d <= #D long_pkt;

always @ (posedge sys_clk or negedge sys_rst_n)
   if(!sys_rst_n)
   begin
      cal_sop_fc  <= #D 0;
      cal_dat_fc  <= #D 32'b0;
      cal_eop_fc  <= #D 0;
      cal_vld_fc  <= #D 0;
      cal_epkt_fc <= #D 0;
      cal_spkt_fc <= #D 0;
      cal_lpkt_fc <= #D 0;
   end
   else
   begin
      cal_sop_fc  <= #D f2_sop;
      cal_dat_fc  <= #D f2_dat;
      cal_eop_fc  <= #D f2_eop && f2_vld && ~long_pkt || long_pkt && ~long_pkt_d; 
      cal_vld_fc  <= #D f2_vld && ~long_pkt_d;
      cal_epkt_fc <= #D f2_err;
      cal_spkt_fc <= #D f2_eop && f2_vld && short_pkt;
      cal_lpkt_fc <= #D long_pkt && ~long_pkt_d;
   end


always @ (posedge sys_clk or negedge sys_rst_n)
begin
   if(!sys_rst_n)
      cal_mod_fc <= #D 2'b0;
   else if(f2_eop && f2_vld && ~long_pkt)
      cal_mod_fc <= #D f2_mod;
   else if(long_pkt && ~long_pkt_d)
      case(long_pkt_size[1:0])
        2'b00:   cal_mod_fc <= #D 2'b00;
        2'b01:   cal_mod_fc <= #D 2'b11;
        2'b10:   cal_mod_fc <= #D 2'b10;
        2'b11:   cal_mod_fc <= #D 2'b01;
        default: cal_mod_fc <= #D 2'b00;
      endcase
   else
      cal_mod_fc <= #D 2'b00;
end

//register inputs
always @ (posedge sys_clk or negedge sys_rst_n)
   if(!sys_rst_n)
   begin
      conf_wr   <= #D 0;
      conf_rd   <= #D 0;
      conf_clr  <= #D 0;
      conf_addr <= #D 4'b0;
      conf_wdat <= #D 16'b0;
   end
   else
   begin
      conf_wr   <= #D conf_wr_cal;
      conf_rd   <= #D conf_rd_cal;
      conf_clr  <= #D conf_clr_cal;
      conf_addr <= #D conf_addr_cal;
      conf_wdat <= #D conf_wdat_cal;
   end

//address 0x  : short_pkt_size
always @ (posedge sys_clk or negedge sys_rst_n)
begin
   if(!sys_rst_n)
      short_pkt_size <= #D 11'd48;
   else if(conf_wr && conf_addr[3:0] == 4'h1)
      short_pkt_size <= #D conf_wdat[10:0];
end

//address 0x  : long_pkt_size
always @ (posedge sys_clk or negedge sys_rst_n)
begin
   if(!sys_rst_n)
      long_pkt_size <= #D 11'd1536;
   else if(conf_wr && conf_addr[3:0] == 4'h2)
      long_pkt_size <= #D conf_wdat[10:0];
end

always @ (posedge sys_clk or negedge sys_rst_n)
begin
   if(!sys_rst_n)
      clr_spkt_cnt <= 1'b0;
   else
      clr_spkt_cnt <= #D conf_clr && conf_addr[3:0] == 4'd3;
end

always @ (posedge sys_clk or negedge sys_rst_n)
begin
   if(!sys_rst_n)
      clr_lpkt_cnt <= 1'b0;
   else
      clr_lpkt_cnt <= #D conf_clr && conf_addr[3:0] == 4'd4;
end

always @(posedge sys_clk or negedge sys_rst_n)
begin
  if(!sys_rst_n) 
     cal_rdat_conf <= #D 16'b0;
  else if(conf_rd)
  begin
    case(conf_addr)
    4'd0:    cal_rdat_conf <= #D 16'b0;
    4'd1:    cal_rdat_conf <= #D short_pkt_size;
    4'd2:    cal_rdat_conf <= #D long_pkt_size;
    4'd3:    cal_rdat_conf <= #D short_pkt_cnt;
    4'd4:    cal_rdat_conf <= #D long_pkt_cnt;
    default: cal_rdat_conf <= #D 16'b0;
    endcase
  end
end

endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉成人伊视频在线观看| 久久精品国产一区二区三| 国产精品久久久久久久久晋中| 日韩欧美的一区| 91精品免费在线| 4hu四虎永久在线影院成人| 欧美日韩国产免费| 欧美午夜一区二区三区| 91久久精品国产91性色tv| 91农村精品一区二区在线| 北岛玲一区二区三区四区| 99视频精品全部免费在线| 99久久国产综合精品麻豆| 99久久精品免费看国产| 91久久精品日日躁夜夜躁欧美| 色94色欧美sute亚洲线路一ni | 国产福利一区二区三区视频| 国产美女在线精品| 国产不卡视频在线播放| 成人美女视频在线观看| 91网站在线观看视频| 欧美中文字幕不卡| 欧美日韩久久一区二区| 日韩精品一区二区三区在线观看 | 69av一区二区三区| 91精品国产欧美一区二区| 日韩三区在线观看| 精品国产伦一区二区三区观看方式 | 成人国产一区二区三区精品| 91视视频在线直接观看在线看网页在线看| 91蝌蚪国产九色| 7878成人国产在线观看| 日韩精品一区二区在线| 国产精品嫩草99a| 亚洲男人的天堂网| 亚洲bt欧美bt精品| 国产一区二区电影| k8久久久一区二区三区| 欧美日韩精品电影| 精品福利av导航| 亚洲欧美欧美一区二区三区| 亚洲成人综合网站| 国产黄人亚洲片| 不卡av在线网| 欧美日本国产视频| 中文字幕不卡三区| 午夜欧美视频在线观看 | 日韩午夜在线观看| 中文字幕av一区二区三区免费看 | 亚洲视频一二三| 欧美日韩一区中文字幕| 欧美日韩电影在线| 精品精品欲导航| 综合久久久久综合| 六月丁香婷婷色狠狠久久| 成人一二三区视频| 91丨九色丨蝌蚪丨老版| 精品国产欧美一区二区| 亚洲欧美区自拍先锋| 天天av天天翘天天综合网 | 丰满少妇久久久久久久| 国产一区二区三区视频在线播放| 亚洲国产日日夜夜| 欧美色图第一页| 国产亚洲综合性久久久影院| 亚洲裸体xxx| 国产高清无密码一区二区三区| 不卡av在线免费观看| 欧洲视频一区二区| 国产精品欧美精品| 蜜臀av性久久久久av蜜臀妖精| 欧美在线观看18| 777a∨成人精品桃花网| 国产精品久久二区二区| 免费成人深夜小野草| 亚洲国产日韩综合久久精品| 国产激情视频一区二区三区欧美| 欧美色综合网站| 国产精品网友自拍| 国产真实乱对白精彩久久| 欧美性色aⅴ视频一区日韩精品| 欧美韩国日本综合| 激情五月激情综合网| 7777精品伊人久久久大香线蕉的| ...中文天堂在线一区| 国产91在线观看| 日韩色视频在线观看| 亚洲成人av在线电影| 视频一区欧美日韩| 青青草97国产精品免费观看| 欧美综合久久久| 亚洲丝袜自拍清纯另类| www.欧美日韩| 国产欧美日韩综合精品一区二区| 久久成人免费网站| 91精品在线免费| 亚洲网友自拍偷拍| 欧美午夜精品免费| 亚洲二区在线观看| 欧美日韩精品二区第二页| 亚洲精品视频在线看| 色综合天天综合网天天狠天天| 亚洲同性同志一二三专区| 国产成人免费av在线| 正在播放亚洲一区| 日本不卡一二三| 日韩一卡二卡三卡四卡| 免费高清在线一区| 日韩三级免费观看| 久久99精品一区二区三区三区| 91精品国产综合久久久久| 亚洲大型综合色站| 欧美一区二区福利在线| 激情综合色播五月| 日韩女优电影在线观看| 国产精品自在在线| 国产精品欧美一区喷水| 99久久婷婷国产精品综合| 中文字幕一区在线观看| 91国在线观看| 亚洲午夜激情网站| 欧美一卡二卡在线观看| 九九精品视频在线看| 国产欧美一区二区三区鸳鸯浴 | 国产99久久久久| 久久九九影视网| 91日韩在线专区| 亚洲黄一区二区三区| 欧美久久久久久久久| 秋霞成人午夜伦在线观看| 欧美电影免费观看高清完整版在线观看| 免费高清不卡av| 久久青草国产手机看片福利盒子 | 丰满放荡岳乱妇91ww| 亚洲欧美综合另类在线卡通| 一本一本久久a久久精品综合麻豆| 亚洲激情网站免费观看| 91精品国产色综合久久ai换脸| 韩国成人精品a∨在线观看| 欧美激情在线免费观看| 色狠狠av一区二区三区| 日韩电影一区二区三区四区| 国产亚洲午夜高清国产拍精品| 成人97人人超碰人人99| 日韩精品乱码av一区二区| 国产日产欧美精品一区二区三区| 91丨九色丨蝌蚪富婆spa| 午夜电影网亚洲视频| 久久久久久久久久久久久久久99 | 国产欧美精品日韩区二区麻豆天美| 91视频在线观看| 麻豆91精品视频| 亚洲视频一二三区| 日韩三级在线免费观看| 韩国成人精品a∨在线观看| 91精品国产福利| 盗摄精品av一区二区三区| 亚洲一区二区在线免费观看视频| 欧美成人a视频| 色综合久久88色综合天天6| 美国毛片一区二区三区| 亚洲欧美日韩精品久久久久| 日韩精品一区二区三区视频在线观看| 99久久精品国产一区二区三区| 欧美aⅴ一区二区三区视频| 日韩理论片中文av| 精品电影一区二区| 欧美日韩在线免费视频| 成人免费的视频| 美女诱惑一区二区| 亚洲大型综合色站| 亚洲欧洲精品一区二区三区不卡| 日韩一区二区在线免费观看| 91九色02白丝porn| 国产成人免费在线观看不卡| 日本在线不卡视频| 一区二区三区电影在线播| 久久久亚洲精华液精华液精华液| 7777女厕盗摄久久久| 日本高清不卡视频| 国v精品久久久网| 久久精品国产久精国产爱| 亚洲一区二区三区激情| 1区2区3区欧美| 久久精品一区二区三区四区| 日韩视频在线一区二区| 欧美日韩高清一区二区| 99久久精品国产观看| 国产成人超碰人人澡人人澡| 蜜臀精品久久久久久蜜臀| 亚洲国产美国国产综合一区二区| 亚洲欧洲另类国产综合| 欧美国产亚洲另类动漫| 亚洲精品一区二区精华| 日韩一区二区影院| 这里只有精品99re| 69久久99精品久久久久婷婷 | 欧美日韩的一区二区| 99热精品一区二区| 国产精品一区二区黑丝|