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

Subversion Repositories sgmii

[/] [sgmii/] [trunk/] [sim/] [mMACEmulator.sv] - Diff between revs 4 and 6

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 4 Rev 6
Line 33... Line 33...
        integer RxPktCnt;
        integer RxPktCnt;
        wire w_Active;
        wire w_Active;
        wire w_Sop;
        wire w_Sop;
        wire w_Eop;
        wire w_Eop;
        reg [07:00] ReceivedPkt[0:10000];
        reg [07:00] ReceivedPkt[0:10000];
 
        reg [07:00] r8_LstRxD;
        integer RxPtr;
        integer RxPtr;
        reg ReceiveEnable;
        reg ReceiveEnable;
 
 
        assign w_Sop = ~r_Active & w_Active;
        assign w_Sop = ~r_Active & w_Active;
        assign w_Eop = r_Active & (~w_Active);
        assign w_Eop = r_Active & (~w_Active);
Line 53... Line 54...
 
 
        assign w_Active=i_RxDV|i_RxER;
        assign w_Active=i_RxDV|i_RxER;
        always@(posedge i_RxClk)
        always@(posedge i_RxClk)
                begin
                begin
                        r_Active <= w_Active;
                        r_Active <= w_Active;
 
                        r8_LstRxD       <= i8_RxD;
                end
                end
 
 
 
 
 
 
 
 
Line 73... Line 75...
                for(Octet=0;Octet<10000;Octet=Octet+1)
                for(Octet=0;Octet<10000;Octet=Octet+1)
                        ov_ReceivedPkt[Octet]=0;
                        ov_ReceivedPkt[Octet]=0;
                Octet=0;
                Octet=0;
                while(w_Active!=1'b1||r_Active!=1'b0)
                while(w_Active!=1'b1||r_Active!=1'b0)
                        @(posedge i_RxClk);
                        @(posedge i_RxClk);
 
                while(w_Active!=1'b1||i8_RxD!=8'hD5||r8_LstRxD!=8'h55)
 
                        @(posedge i_RxClk);
 
 
 
                @(posedge i_RxClk);
 
                $display("MAC: Start Receiving");
                while(r_Active!=1'b1||w_Active!=1'b0)
                while(r_Active!=1'b1||w_Active!=1'b0)
                begin
                begin
                        if(i_RxDV==1'b1 && i_RxER==1'b0)
                        if(i_RxDV==1'b1 && i_RxER==1'b0)
                                begin
                                begin
                                if(r_Active==1'b0) $display("MAC: Start Receiving");
 
                                ov_ReceivedPkt[Octet]=i8_RxD;
                                ov_ReceivedPkt[Octet]=i8_RxD;
                                Octet=Octet+1;
                                Octet=Octet+1;
                                //$write("%x ",i8_RxD);
 
                                end
                                end
                        else if(i_RxDV==1'b0 && i_RxER==1'b1) begin
                        else if(i_RxDV==1'b0 && i_RxER==1'b1) begin
                                case(i8_RxD)
                                case(i8_RxD)
                                8'h0F: begin
                                8'h0F: begin
                                                ExtCycles = ExtCycles+1;
                                                ExtCycles = ExtCycles+1;
Line 97... Line 102...
                                default: $display("Unknown %x",i8_RxD);
                                default: $display("Unknown %x",i8_RxD);
                                endcase
                                endcase
                                end
                                end
                        else if(i_RxDV==1'b1 && i_RxER==1'b1) begin
                        else if(i_RxDV==1'b1 && i_RxER==1'b1) begin
                                        ErrCycles = ErrCycles+1;
                                        ErrCycles = ErrCycles+1;
                                        //ov_ReceivedPkt[Octet]=i8_RxD;
 
                                        //Octet = Octet+1;
 
                        end
                        end
                        @(posedge i_RxClk);
                        @(posedge i_RxClk);
                end
                end
                FrameSize=Octet;
                FrameSize=Octet;
                $display("MAC: Packet Received with %d bytes",FrameSize);
                $display("MAC: Packet Received with %d bytes",FrameSize);
Line 114... Line 117...
                input integer PktSize;
                input integer PktSize;
                input integer PktIFG;
                input integer PktIFG;
 
 
                integer Octet;
                integer Octet;
        begin
        begin
 
                for(Octet=0;Octet<8;Octet++)
 
                        begin
 
                        @(posedge i_TxClk);#1;
 
                        o_TxEN = 1'b1;
 
                        o_TxER = 1'b0;
 
                        o8_TxD = (Octet==7)?8'hD5:8'h55;
 
                        end
                for(Octet=0;Octet
                for(Octet=0;Octet
                                begin
                                begin
                                @(posedge i_TxClk);#1;
                                @(posedge i_TxClk);#1;
                                o_TxEN = 1'b1;
                                o_TxEN = 1'b1;
                                o_TxER = 1'b0;
                                o_TxER = 1'b0;

powered by: WebSVN 2.1.0

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