Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VeriLog 29.11 KB | None | 0 0
  1. /*
  2.  
  3. 針對一個封包
  4.  
  5. total_length: 32bit
  6. packet_tag: 4 bits
  7. valit bit: 1 bit
  8. number_of_index: 4 bits
  9. length_of_rowpacket(byte): 16 bits
  10. row_packet:variable, depends on length_of_packet
  11.  
  12. 針對一個條件
  13.  
  14. index order: 4 bits
  15. index begin: 16 bits
  16. index end: 16 bits
  17. pattern: 64 bits
  18. condition_valid: 1 bits
  19.  
  20. */
  21.  
  22. parameter num_packet = 4;
  23. parameter num_condition = 10;
  24.  
  25. wire condition_valid_in[num_packet-1:0][num_condition-1:0];
  26. wire [15:0]condition_begin[num_packet-1:0][num_condition-1:0];
  27. wire [15:0]condition_end[num_packet-1:0][num_condition-1:0];
  28. wire [3:0]condition_index_in[num_packet-1:0][num_condition-1:0];
  29. wire [3:0]condition_name_in[num_packet-1:0][num_condition-1:0];
  30. wire condition_last[num_packet-1:0][num_condition-1:0];
  31. wire [63:0]condition_pattern[num_packet-1:0][num_condition-1:0];
  32. wire condition_valid_out[num_packet-1:0][num_condition-1:0];
  33. wire condition_match[num_packet-1:0][num_condition-1:0];
  34. wire [3:0]condition_index_out[num_packet-1:0][num_condition-1:0];
  35. wire [3:0]condition_name_out[num_packet-1:0][num_condition-1:0];
  36.  
  37.  
  38.  
  39. mac_to_comparator mac_to_comparator(
  40. .rst()
  41. .rx_core_clk(rx_core_clk),
  42. .rx_axis_tdata(rx_axis_tdata),      # 64 bits / 8 bytes
  43. .rx_axis_tkeep(rx_axis_tkeep),      # 哪幾個byte是有效的
  44. .rx_axis_tvalid(rx_axis_tvalid),
  45. .rx_axis_tuser(rx_axis_tuser),
  46. .rx_axis_tlast(rx_axis_tlast),
  47. .rx_axis_parity(rx_axis_parity),
  48. .packet_new_pulse(packet_new_pulse),
  49. .packet_begin(packet_begin),
  50. .packet_end(packet_end)
  51. )
  52.  
  53.  
  54. packet_compare packet_compare0(
  55. .rst()
  56. .rx_core_clk(rx_core_clk),
  57. .rx_axis_tdata(rx_axis_tdata),
  58. .rx_axis_tkeep(rx_axis_tkeep),
  59. .rx_axis_tvalid(rx_axis_tvalid),
  60. .rx_axis_tuser(rx_axis_tuser),
  61. .rx_axis_tlast(rx_axis_tlast),
  62. .rx_axis_parity(rx_axis_parity),
  63. .packet_new_pulse(packet_new_pulse),
  64. .packet_begin(packet_begin),
  65. .packet_end(packet_end)
  66.  
  67. .condition_valid_in0(condition_valid_in[0][0]),
  68. .condition_begin0(condition_begin[0][0]),
  69. .condition_end0(condition_end[0][0]),
  70. .condition_index_in0(condition_index_in[0][0]),
  71. .condition_last0(condition_last[0][0]),
  72. .condition_pattern0(condition_name_in[0][0]),
  73. .condition_name_in0(condition_name_in[0][0]),
  74. .condition_valid_out0(condition_valid_out[0][0]),
  75. .condition_match0(condition_match[0][0]),
  76.  
  77. .condition_valid_in1(condition_valid_in[0][1]),
  78. .condition_begin1(condition_begin[0][1]),
  79. .condition_end1(condition_end[0][1]),
  80. .condition_index_in1(condition_index_in[0][1]),
  81. .condition_last1(condition_last[0][1]),
  82. .condition_pattern1(condition_name_in[0][1]),
  83. .condition_name_in1(condition_name_in[0][1]),
  84. .condition_valid_out1(condition_valid_out[0][1]),
  85. .condition_match1(condition_match[0][1]),
  86.  
  87. .condition_valid_in2(condition_valid_in[0][2]),
  88. .condition_begin2(condition_begin[0][2]),
  89. .condition_end2(condition_end[0][2]),
  90. .condition_index_in2(condition_index_in[0][2]),
  91. .condition_last2(condition_last[0][2]),
  92. .condition_pattern2(condition_name_in[0][2]),
  93. .condition_name_in2(condition_name_in[0][2]),
  94. .condition_valid_out2(condition_valid_out[0][2]),
  95. .condition_match2(condition_match[0][2]),
  96.  
  97. .condition_valid_in3(condition_valid_in[0][3]),
  98. .condition_begin3(condition_begin[0][3]),
  99. .condition_end3(condition_end[0][3]),
  100. .condition_index_in3(condition_index_in[0][3]),
  101. .condition_last3(condition_last[0][3]),
  102. .condition_pattern3(condition_name_in[0][3]),
  103. .condition_name_in3(condition_name_in[0][3]),
  104. .condition_valid_out3(condition_valid_out[0][3]),
  105. .condition_match3(condition_match[0][3]),
  106.  
  107. .condition_valid_in4(condition_valid_in[0][4]),
  108. .condition_begin4(condition_begin[0][4]),
  109. .condition_end4(condition_end[0][4]),
  110. .condition_index_in4(condition_index_in[0][4]),
  111. .condition_last4(condition_last[0][4]),
  112. .condition_pattern4(condition_name_in[0][4]),
  113. .condition_name_in4(condition_name_in[0][4]),
  114. .condition_valid_out4(condition_valid_out[0][4]),
  115. .condition_match4(condition_match[0][4]),
  116.  
  117. .condition_valid_in5(condition_valid_in[0][5]),
  118. .condition_begin5(condition_begin[0][5]),
  119. .condition_end5(condition_end[0][5]),
  120. .condition_index_in5(condition_index_in[0][5]),
  121. .condition_last5(condition_last[0][5]),
  122. .condition_pattern5(condition_name_in[0][5]),
  123. .condition_name_in5(condition_name_in[0][5]),
  124. .condition_valid_out5(condition_valid_out[0][5]),
  125. .condition_match5(condition_match[0][5]),
  126.  
  127. .condition_valid_in6(condition_valid_in[0][6]),
  128. .condition_begin6(condition_begin[0][6]),
  129. .condition_end6(condition_end[0][6]),
  130. .condition_index_in6(condition_index_in[0][6]),
  131. .condition_last6(condition_last[0][6]),
  132. .condition_pattern6(condition_name_in[0][6]),
  133. .condition_name_in6(condition_name_in[0][6]),
  134. .condition_valid_out6(condition_valid_out[0][6]),
  135. .condition_match6(condition_match[0][6]),
  136.  
  137. .condition_valid_in7(condition_valid_in[0][7]),
  138. .condition_begin7(condition_begin[0][7]),
  139. .condition_end7(condition_end[0][7]),
  140. .condition_index_in7(condition_index_in[0][7]),
  141. .condition_last7(condition_last[0][7]),
  142. .condition_pattern7(condition_name_in[0][7]),
  143. .condition_name_in7(condition_name_in[0][7]),
  144. .condition_valid_out7(condition_valid_out[0][7]),
  145. .condition_match7(condition_match[0][7]),
  146.  
  147. .condition_valid_in8(condition_valid_in[0][8]),
  148. .condition_begin8(condition_begin[0][8]),
  149. .condition_end8(condition_end[0][8]),
  150. .condition_index_in8(condition_index_in[0][8]),
  151. .condition_last8(condition_last[0][8]),
  152. .condition_pattern8(condition_name_in[0][8]),
  153. .condition_name_in8(condition_name_in[0][8]),
  154. .condition_valid_out8(condition_valid_out[0][8]),
  155. .condition_match8(condition_match[0][8]),
  156.  
  157. .condition_valid_in9(condition_valid_in[0][9]),
  158. .condition_begin9(condition_begin[0][9]),
  159. .condition_end9(condition_end[0][9]),
  160. .condition_index_in9(condition_index_in[0][9]),
  161. .condition_last9(condition_last[0][9]),
  162. .condition_pattern9(condition_name_in[0][9]),
  163. .condition_name_in9(condition_name_in[0][9]),
  164. .condition_valid_out9(condition_valid_out[0][9]),
  165. .condition_match9(condition_match[0][9]),
  166. .condition_all_match(condition_allmatch[0])
  167. )
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174. reg fail;        
  175.  
  176. always @(posedge rx_core_clk or posedge rst)
  177. begin
  178.     if (packet_new_pulse == 1)
  179.         begin
  180.             fail = 0;
  181.             condition_match0 <= 0;
  182.             condition_match1 <= 0;
  183.             condition_match2 <= 0;
  184.             condition_match3 <= 0;
  185.             condition_match4 <= 0;
  186.             condition_match5 <= 0;
  187.             condition_match6 <= 0;
  188.             condition_match7 <= 0;
  189.             condition_match8 <= 0;
  190.             condition_match9 <= 0;
  191.         end
  192.  
  193.     if (fail == 0)
  194.         begin
  195.             if (condition_valid_in0 == 1)
  196.                 begin
  197.                     if (condition_begin0 >= packet_begin && condition_end0 <= packet_end)
  198.                         begin
  199.                             if(condition_pattern0 == rx_axis_tdata[64-(packet_end-condition_end0)*8:(condition_begin0-packet_begin)*8:]
  200.                                 begin
  201.                                     condition_match0 <= 1;
  202.                                     fail <= 0;
  203.                                 end
  204.                             else
  205.                                 begin
  206.                                     condition_match0 <= 0;
  207.                                     fail <= 1;
  208.                                 end
  209.                         end
  210.                     else if (condition_begin0 > packet_begin)    
  211.                         begin
  212.                             if (rx_axis_tdata[63:(condition_begin0-packet_begin)*8] == condition_pattern0[63-(condition_begin0-packet_begin)*8:0])
  213.                                 begin
  214.                                     condition_match0 <= 0;
  215.                                     fail <= 0;
  216.                                 end
  217.                             else
  218.                                 begin
  219.                                     condition_match0 <= 0;
  220.                                     fail <= 1;
  221.                                 end
  222.                         end
  223.                     else if (condition_end0 < packet_end)  
  224.                         begin    
  225.                             if (rx_axis_tdata[(packet_end-condition_end0)*8:0] == condition_pattern0[63:63-(packet_end-condition_end0)*8])
  226.                                 begin
  227.                                     condition_match0 <= 1;
  228.                                     fail <= 0;
  229.                                 end
  230.                             else
  231.                                 begin
  232.                                     condition_match0 <= 0;
  233.                                     fail <= 1;
  234.                  
  235.                                 end
  236.                         end
  237.  
  238.                 end                
  239.             else
  240.                 begin
  241.                     condition_match0 <= 0;
  242.                     fail <= fail;
  243.                 end
  244.            
  245.             if (condition_valid_in1 == 1)
  246.                 begin
  247.                     if (condition_begin1 >= packet_begin && condition_end1 <= packet_end)
  248.                         begin
  249.                             if(condition_pattern1 == rx_axis_tdata[64-(packet_end-condition_end1)*8:(condition_begin1-packet_begin)*8:]
  250.                                 begin
  251.                                     condition_match1 <= 1;
  252.                                     fail <= 0;
  253.                                 end
  254.                             else
  255.                                 begin
  256.                                     condition_match1 <= 0;
  257.                                     fail <= 1;
  258.                                 end
  259.                         end
  260.                     else if (condition_begin1 > packet_begin)    
  261.                         begin
  262.                             if (rx_axis_tdata[63:(condition_begin1-packet_begin)*8] == condition_pattern1[63-(condition_begin1-packet_begin)*8:0])
  263.                                 begin
  264.                                     condition_match1 <= 0;
  265.                                     fail <= 0;
  266.                                 end
  267.                             else
  268.                                 begin
  269.                                     condition_match1 <= 0;
  270.                                     fail <= 1;
  271.                                 end
  272.                         end
  273.                     else if (condition_end1 < packet_end)  
  274.                         begin    
  275.                             if (rx_axis_tdata[(packet_end-condition_end1)*8:0] == condition_pattern1[63:63-(packet_end-condition_end1)*8])
  276.                                 begin
  277.                                     condition_match1 <= 1;
  278.                                     fail <= 0;
  279.                                 end
  280.                             else
  281.                                 begin
  282.                                     condition_match1 <= 0;
  283.                                     fail <= 1;
  284.                  
  285.                                 end
  286.                         end
  287.  
  288.                 end                
  289.             else
  290.                 begin
  291.                     condition_match1 <= 0;
  292.                     fail <= fail;
  293.                 end
  294.            
  295.             if (condition_valid_in2 == 1)
  296.                 begin
  297.                     if (condition_begin2 >= packet_begin && condition_end2 <= packet_end)
  298.                         begin
  299.                             if(condition_pattern2 == rx_axis_tdata[64-(packet_end-condition_end2)*8:(condition_begin2-packet_begin)*8:]
  300.                                 begin
  301.                                     condition_match2 <= 1;
  302.                                     fail <= 0;
  303.                                 end
  304.                             else
  305.                                 begin
  306.                                     condition_match2 <= 0;
  307.                                     fail <= 1;
  308.                                 end
  309.                         end
  310.                     else if (condition_begin2 > packet_begin)    
  311.                         begin
  312.                             if (rx_axis_tdata[63:(condition_begin2-packet_begin)*8] == condition_pattern2[63-(condition_begin2-packet_begin)*8:0])
  313.                                 begin
  314.                                     condition_match2 <= 0;
  315.                                     fail <= 0;
  316.                                 end
  317.                             else
  318.                                 begin
  319.                                     condition_match2 <= 0;
  320.                                     fail <= 1;
  321.                                 end
  322.                         end
  323.                     else if (condition_end2 < packet_end)  
  324.                         begin    
  325.                             if (rx_axis_tdata[(packet_end-condition_end2)*8:0] == condition_pattern2[63:63-(packet_end-condition_end2)*8])
  326.                                 begin
  327.                                     condition_match2 <= 1;
  328.                                     fail <= 0;
  329.                                 end
  330.                             else
  331.                                 begin
  332.                                     condition_match2 <= 0;
  333.                                     fail <= 1;
  334.                  
  335.                                 end
  336.                         end
  337.  
  338.                 end                
  339.             else
  340.                 begin
  341.                     condition_match2 <= 0;
  342.                     fail <= fail;
  343.                 end
  344.  
  345.             if (condition_valid_in3 == 1)
  346.                 begin
  347.                     if (condition_begin3 >= packet_begin && condition_end3 <= packet_end)
  348.                         begin
  349.                             if(condition_pattern3 == rx_axis_tdata[64-(packet_end-condition_end3)*8:(condition_begin3-packet_begin)*8:]
  350.                                 begin
  351.                                     condition_match3 <= 1;
  352.                                     fail <= 0;
  353.                                 end
  354.                             else
  355.                                 begin
  356.                                     condition_match3 <= 0;
  357.                                     fail <= 1;
  358.                                 end
  359.                         end
  360.                     else if (condition_begin3 > packet_begin)    
  361.                         begin
  362.                             if (rx_axis_tdata[63:(condition_begin3-packet_begin)*8] == condition_pattern3[63-(condition_begin3-packet_begin)*8:0])
  363.                                 begin
  364.                                     condition_match3 <= 0;
  365.                                     fail <= 0;
  366.                                 end
  367.                             else
  368.                                 begin
  369.                                     condition_match3 <= 0;
  370.                                     fail <= 1;
  371.                                 end
  372.                         end
  373.                     else if (condition_end3 < packet_end)  
  374.                         begin    
  375.                             if (rx_axis_tdata[(packet_end-condition_end3)*8:0] == condition_pattern3[63:63-(packet_end-condition_end3)*8])
  376.                                 begin
  377.                                     condition_match3 <= 1;
  378.                                     fail <= 0;
  379.                                 end
  380.                             else
  381.                                 begin
  382.                                     condition_match3 <= 0;
  383.                                     fail <= 1;
  384.                  
  385.                                 end
  386.                         end
  387.  
  388.                 end                
  389.             else
  390.                 begin
  391.                     condition_match3 <= 0;
  392.                     fail <= fail;
  393.                 end
  394.  
  395.             if (condition_valid_in4 == 1)
  396.                 begin
  397.                     if (condition_begin4 >= packet_begin && condition_end4 <= packet_end)
  398.                         begin
  399.                             if(condition_pattern4 == rx_axis_tdata[64-(packet_end-condition_end4)*8:(condition_begin4-packet_begin)*8:]
  400.                                 begin
  401.                                     condition_match4 <= 1;
  402.                                     fail <= 0;
  403.                                 end
  404.                             else
  405.                                 begin
  406.                                     condition_match4 <= 0;
  407.                                     fail <= 1;
  408.                                 end
  409.                         end
  410.                     else if (condition_begin4 > packet_begin)    
  411.                         begin
  412.                             if (rx_axis_tdata[63:(condition_begin4-packet_begin)*8] == condition_pattern4[63-(condition_begin4-packet_begin)*8:0])
  413.                                 begin
  414.                                     condition_match4 <= 0;
  415.                                     fail <= 0;
  416.                                 end
  417.                             else
  418.                                 begin
  419.                                     condition_match4 <= 0;
  420.                                     fail <= 1;
  421.                                 end
  422.                         end
  423.                     else if (condition_end4 < packet_end)  
  424.                         begin    
  425.                             if (rx_axis_tdata[(packet_end-condition_end4)*8:0] == condition_pattern4[63:63-(packet_end-condition_end4)*8])
  426.                                 begin
  427.                                     condition_match4 <= 1;
  428.                                     fail <= 0;
  429.                                 end
  430.                             else
  431.                                 begin
  432.                                     condition_match4 <= 0;
  433.                                     fail <= 1;
  434.                  
  435.                                 end
  436.                         end
  437.  
  438.                 end                
  439.             else
  440.                 begin
  441.                     condition_match4 <= 0;
  442.                     fail <= fail;
  443.                 end
  444.  
  445.             if (condition_valid_in5 == 1)
  446.                 begin
  447.                     if (condition_begin5 >= packet_begin && condition_end5 <= packet_end)
  448.                         begin
  449.                             if(condition_pattern5 == rx_axis_tdata[64-(packet_end-condition_end5)*8:(condition_begin5-packet_begin)*8:]
  450.                                 begin
  451.                                     condition_match5 <= 1;
  452.                                     fail <= 0;
  453.                                 end
  454.                             else
  455.                                 begin
  456.                                     condition_match5 <= 0;
  457.                                     fail <= 1;
  458.                                 end
  459.                         end
  460.                     else if (condition_begin5 > packet_begin)    
  461.                         begin
  462.                             if (rx_axis_tdata[63:(condition_begin5-packet_begin)*8] == condition_pattern5[63-(condition_begin5-packet_begin)*8:0])
  463.                                 begin
  464.                                     condition_match5 <= 0;
  465.                                     fail <= 0;
  466.                                 end
  467.                             else
  468.                                 begin
  469.                                     condition_match5 <= 0;
  470.                                     fail <= 1;
  471.                                 end
  472.                         end
  473.                     else if (condition_end5 < packet_end)  
  474.                         begin    
  475.                             if (rx_axis_tdata[(packet_end-condition_end5)*8:0] == condition_pattern5[63:63-(packet_end-condition_end5)*8])
  476.                                 begin
  477.                                     condition_match5 <= 1;
  478.                                     fail <= 0;
  479.                                 end
  480.                             else
  481.                                 begin
  482.                                     condition_match5 <= 0;
  483.                                     fail <= 1;
  484.                  
  485.                                 end
  486.                         end
  487.  
  488.                 end                
  489.             else
  490.                 begin
  491.                     condition_match5 <= 0;
  492.                     fail <= fail;
  493.                 end
  494.  
  495.             if (condition_valid_in6 == 1)
  496.                 begin
  497.                     if (condition_begin6 >= packet_begin && condition_end6 <= packet_end)
  498.                         begin
  499.                             if(condition_pattern6 == rx_axis_tdata[64-(packet_end-condition_end6)*8:(condition_begin6-packet_begin)*8:]
  500.                                 begin
  501.                                     condition_match6 <= 1;
  502.                                     fail <= 0;
  503.                                 end
  504.                             else
  505.                                 begin
  506.                                     condition_match6 <= 0;
  507.                                     fail <= 1;
  508.                                 end
  509.                         end
  510.                     else if (condition_begin6 > packet_begin)    
  511.                         begin
  512.                             if (rx_axis_tdata[63:(condition_begin6-packet_begin)*8] == condition_pattern6[63-(condition_begin6-packet_begin)*8:0])
  513.                                 begin
  514.                                     condition_match6 <= 0;
  515.                                     fail <= 0;
  516.                                 end
  517.                             else
  518.                                 begin
  519.                                     condition_match6 <= 0;
  520.                                     fail <= 1;
  521.                                 end
  522.                         end
  523.                     else if (condition_end6 < packet_end)  
  524.                         begin    
  525.                             if (rx_axis_tdata[(packet_end-condition_end6)*8:0] == condition_pattern6[63:63-(packet_end-condition_end6)*8])
  526.                                 begin
  527.                                     condition_match6 <= 1;
  528.                                     fail <= 0;
  529.                                 end
  530.                             else
  531.                                 begin
  532.                                     condition_match6 <= 0;
  533.                                     fail <= 1;
  534.                  
  535.                                 end
  536.                         end
  537.  
  538.                 end                
  539.             else
  540.                 begin
  541.                     condition_match6 <= 0;
  542.                     fail <= fail;
  543.                 end
  544.  
  545.             if (condition_valid_in7 == 1)
  546.                 begin
  547.                     if (condition_begin7 >= packet_begin && condition_end7 <= packet_end)
  548.                         begin
  549.                             if(condition_pattern7 == rx_axis_tdata[64-(packet_end-condition_end7)*8:(condition_begin7-packet_begin)*8:]
  550.                                 begin
  551.                                     condition_match7 <= 1;
  552.                                     fail <= 0;
  553.                                 end
  554.                             else
  555.                                 begin
  556.                                     condition_match7 <= 0;
  557.                                     fail <= 1;
  558.                                 end
  559.                         end
  560.                     else if (condition_begin7 > packet_begin)    
  561.                         begin
  562.                             if (rx_axis_tdata[63:(condition_begin7-packet_begin)*8] == condition_pattern7[63-(condition_begin7-packet_begin)*8:0])
  563.                                 begin
  564.                                     condition_match7 <= 0;
  565.                                     fail <= 0;
  566.                                 end
  567.                             else
  568.                                 begin
  569.                                     condition_match7 <= 0;
  570.                                     fail <= 1;
  571.                                 end
  572.                         end
  573.                     else if (condition_end7 < packet_end)  
  574.                         begin    
  575.                             if (rx_axis_tdata[(packet_end-condition_end7)*8:0] == condition_pattern7[63:63-(packet_end-condition_end7)*8])
  576.                                 begin
  577.                                     condition_match7 <= 1;
  578.                                     fail <= 0;
  579.                                 end
  580.                             else
  581.                                 begin
  582.                                     condition_match7 <= 0;
  583.                                     fail <= 1;
  584.                  
  585.                                 end
  586.                         end
  587.  
  588.                 end                
  589.             else
  590.                 begin
  591.                     condition_match7 <= 0;
  592.                     fail <= fail;
  593.                 end
  594.  
  595.             if (condition_valid_in8 == 1)
  596.                 begin
  597.                     if (condition_begin8 >= packet_begin && condition_end8 <= packet_end)
  598.                         begin
  599.                             if(condition_pattern8 == rx_axis_tdata[64-(packet_end-condition_end8)*8:(condition_begin8-packet_begin)*8:]
  600.                                 begin
  601.                                     condition_match8 <= 1;
  602.                                     fail <= 0;
  603.                                 end
  604.                             else
  605.                                 begin
  606.                                     condition_match8 <= 0;
  607.                                     fail <= 1;
  608.                                 end
  609.                         end
  610.                     else if (condition_begin8 > packet_begin)    
  611.                         begin
  612.                             if (rx_axis_tdata[63:(condition_begin8-packet_begin)*8] == condition_pattern8[63-(condition_begin8-packet_begin)*8:0])
  613.                                 begin
  614.                                     condition_match8 <= 0;
  615.                                     fail <= 0;
  616.                                 end
  617.                             else
  618.                                 begin
  619.                                     condition_match8 <= 0;
  620.                                     fail <= 1;
  621.                                 end
  622.                         end
  623.                     else if (condition_end8 < packet_end)  
  624.                         begin    
  625.                             if (rx_axis_tdata[(packet_end-condition_end8)*8:0] == condition_pattern8[63:63-(packet_end-condition_end8)*8])
  626.                                 begin
  627.                                     condition_match8 <= 1;
  628.                                     fail <= 0;
  629.                                 end
  630.                             else
  631.                                 begin
  632.                                     condition_match8 <= 0;
  633.                                     fail <= 1;
  634.                  
  635.                                 end
  636.                         end
  637.  
  638.                 end                
  639.             else
  640.                 begin
  641.                     condition_match8 <= 0;
  642.                     fail <= fail;
  643.                 end
  644.  
  645.             if (condition_valid_in9 == 1)
  646.                 begin
  647.                     if (condition_begin9 >= packet_begin && condition_end9 <= packet_end)
  648.                         begin
  649.                             if(condition_pattern9 == rx_axis_tdata[64-(packet_end-condition_end9)*8:(condition_begin9-packet_begin)*8:]
  650.                                 begin
  651.                                     condition_match9 <= 1;
  652.                                     fail <= 0;
  653.                                 end
  654.                             else
  655.                                 begin
  656.                                     condition_match9 <= 0;
  657.                                     fail <= 1;
  658.                                 end
  659.                         end
  660.                     else if (condition_begin9 > packet_begin)    
  661.                         begin
  662.                             if (rx_axis_tdata[63:(condition_begin9-packet_begin)*8] == condition_pattern9[63-(condition_begin9-packet_begin)*8:0])
  663.                                 begin
  664.                                     condition_match9 <= 0;
  665.                                     fail <= 0;
  666.                                 end
  667.                             else
  668.                                 begin
  669.                                     condition_match9 <= 0;
  670.                                     fail <= 1;
  671.                                 end
  672.                         end
  673.                     else if (condition_end9 < packet_end)  
  674.                         begin    
  675.                             if (rx_axis_tdata[(packet_end-condition_end9)*8:0] == condition_pattern9[63:63-(packet_end-condition_end9)*8])
  676.                                 begin
  677.                                     condition_match9 <= 1;
  678.                                     fail <= 0;
  679.                                 end
  680.                             else
  681.                                 begin
  682.                                     condition_match9 <= 0;
  683.                                     fail <= 1;
  684.                  
  685.                                 end
  686.                         end
  687.  
  688.                 end                
  689.             else
  690.                 begin
  691.                     condition_match9 <= 0;
  692.                     fail <= fail;
  693.                 end
  694.  
  695.  
  696.         end
  697.     else
  698.         fail <= 1;
  699. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement