OpenCores
URL https://opencores.org/ocsvn/mac_layer_switch/mac_layer_switch/trunk

Subversion Repositories mac_layer_switch

[/] [mac_layer_switch/] [trunk/] [rtl/] [verilog/] [dcp_modules.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ranm11
 
2
/*****************************************************************************/
3
// Id ..........dcp_modules.v                                                 //
4
// Author.......Ran Minerbi                                                   //
5
//                                                                            //
6
//   Unit Description   :                                                     //
7
//     dcp unit receive frames descriptors                                    //
8
//     from iba, determine destination port                                   //
9
//     according to frame MAC Address.                                        //
10
//                                                                            //
11
/*****************************************************************************/
12
 
13
 
14
   module Header_parser(reset,clk,header_i,Dmac,Start_addr);
15
         input reset, clk;
16
         input [31:0] header_i;
17
         output[47:0] Dmac;
18
         output [15:0] Start_addr;
19
 
20
         reg [15:0] Start_addr;
21
         reg [31:0] header_prev;
22
         reg [47:0] Dmac;
23
         reg [1:0]  state; // 0 - state 0 , 1- state dmac , 2 - state length/addr
24
         reg flip;
25
         initial
26
         begin
27
           state=0;
28
           Dmac=0;
29
           flip=0;
30
           Start_addr=0;
31
         end
32
         always @ (posedge clk)
33
         begin
34
             header_prev<= header_i;
35
             flip=|(header_prev ^ header_i);
36
 
37
         end
38
 
39
         always @( negedge flip)
40
         begin
41
               case (state)
42
                   2'h0:  state=1;
43
                   2'h1:  begin
44
                          state=2;
45
                          Dmac[47:16] = header_i;
46
                         end
47
                   2'h2:  begin
48
                          state=0;
49
                          Start_addr=header_i[15:0];
50
                          Dmac[15:0] = header_i[31:16];
51
                          end
52
                endcase
53
          end
54
 
55
   endmodule
56
 
57
   module FDB(reset,clk,dmac,T_q);
58
        input reset, clk;
59
        input [47:0] dmac;
60
        output [4:0] T_q;
61
 
62
        reg  [4:0] T_q;
63
        initial  T_q=0;
64
        always @ (posedge clk)
65
        begin
66
            case (dmac)
67
                48'haa2030405060: T_q=1;
68
                48'hffccbb440011: T_q=2;
69
                48'hddffbb550022: T_q=3;
70
                48'hccbbaa990099: T_q=4;
71
                48'h66eecc001133: T_q=5;
72
                48'h1100aaff00aa: T_q=6;
73
                default: T_q=0;
74
            endcase
75
 
76
            end
77
 
78
   endmodule
79
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.