OpenCores
URL https://opencores.org/ocsvn/sdhc-sc-core/sdhc-sc-core/trunk

Subversion Repositories sdhc-sc-core

[/] [sdhc-sc-core/] [trunk/] [grpSdVerification/] [unitSdCardModel/] [src/] [SdCardModel.sv] - Diff between revs 53 and 54

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

Rev 53 Rev 54
Line 114... Line 114...
 
 
 
 
        task automatic send(virtual ISdCmd.Card ICmd);
        task automatic send(virtual ISdCmd.Card ICmd);
                calcCrc();
                calcCrc();
 
 
                @ICmd.cbCard;
                @ICmd.cb;
                ICmd.cbCard.Cmd <= startbit;
                ICmd.cb.Cmd <= startbit;
 
 
                @ICmd.cbCard;
                @ICmd.cb;
                ICmd.cbCard.Cmd <= transbit;
                ICmd.cb.Cmd <= transbit;
 
 
                for(int i = 5; i >= 0; i--) begin
                for(int i = 5; i >= 0; i--) begin
                        @ICmd.cbCard;
                        @ICmd.cb;
                        ICmd.cbCard.Cmd <= id[i];
                        ICmd.cb.Cmd <= id[i];
                end
                end
 
 
                for (int i = 31; i>= 0; i--) begin
                for (int i = 31; i>= 0; i--) begin
                        @ICmd.cbCard;
                        @ICmd.cb;
                        ICmd.cbCard.Cmd <= arg[i];
                        ICmd.cb.Cmd <= arg[i];
                end
                end
 
 
                for (int i = 5; i >= 0; i--) begin
                for (int i = 5; i >= 0; i--) begin
                        @ICmd.cbCard;
                        @ICmd.cb;
                        ICmd.cbCard.Cmd <= crc[i];
                        ICmd.cb.Cmd <= crc[i];
                end
                end
 
 
                @ICmd.cbCard;
                @ICmd.cb;
                ICmd.cbCard.Cmd <= endbit;
                ICmd.cb.Cmd <= endbit;
 
 
                @ICmd.cbCard;
                @ICmd.cb;
                ICmd.cbCard.Cmd <= 'z;
                ICmd.cb.Cmd <= 'z;
        endtask
        endtask
endclass
endclass
 
 
class SDCommandR7 extends SDCommandResponse;
class SDCommandR7 extends SDCommandResponse;
 
 
Line 177... Line 177...
        endtask
        endtask
 
 
        // Receive a command token and handle it
        // Receive a command token and handle it
        task recv();
        task recv();
                recvcmd = new();
                recvcmd = new();
                ICmd.cbCard.Cmd <= 'z;
                ICmd.cb.Cmd <= 'z;
 
 
                wait(ICmd.cbCard.Cmd == 0);
                wait(ICmd.cb.Cmd == 0);
                // Startbit
                // Startbit
                recvcmd.startbit = ICmd.cbCard.Cmd;
                recvcmd.startbit = ICmd.cb.Cmd;
 
 
                @ICmd.cbCard;
                @ICmd.cb;
                // Transbit
                // Transbit
                recvcmd.transbit = ICmd.cbCard.Cmd;
                recvcmd.transbit = ICmd.cb.Cmd;
 
 
                // CmdID
                // CmdID
                for (int i = 5; i >= 0; i--) begin
                for (int i = 5; i >= 0; i--) begin
                        @ICmd.cbCard;
                        @ICmd.cb;
                        recvcmd.id[i] = ICmd.cbCard.Cmd;
                        recvcmd.id[i] = ICmd.cb.Cmd;
                end
                end
 
 
                // Arg
                // Arg
                for (int i = 31; i >= 0; i--) begin
                for (int i = 31; i >= 0; i--) begin
                        @ICmd.cbCard;
                        @ICmd.cb;
                        recvcmd.arg[i] = ICmd.cbCard.Cmd;
                        recvcmd.arg[i] = ICmd.cb.Cmd;
                end
                end
 
 
                // CRC
                // CRC
                for (int i = 6; i >= 0; i--) begin
                for (int i = 6; i >= 0; i--) begin
                        @ICmd.cbCard;
                        @ICmd.cb;
                        recvcmd.crc7[i] = ICmd.cbCard.Cmd;
                        recvcmd.crc7[i] = ICmd.cb.Cmd;
                end
                end
 
 
                // Endbit
                // Endbit
                @ICmd.cbCard;
                @ICmd.cb;
                recvcmd.endbit = ICmd.cbCard.Cmd;
                recvcmd.endbit = ICmd.cb.Cmd;
 
 
                recvcmd.checkFromHost();
                recvcmd.checkFromHost();
                -> CmdReceived;
                -> CmdReceived;
        endtask
        endtask
 
 

powered by: WebSVN 2.1.0

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