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

Subversion Repositories sdhc-sc-core

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /sdhc-sc-core
    from Rev 153 to Rev 154
    Reverse comparison

Rev 153 → Rev 154

/trunk/src/grpSd/unitSdCardModel/src/SdBFM-impl.sv
220,6 → 220,7
if (flag == 1) send(token);
else if (flag == -1) Log.error("Error accessing SendTransMb.");
end
@ICard.cb;
endtask
 
task SdBFM::run();
235,7 → 236,7
begin
run();
end
join_any
join_none
endtask
 
`endif
/trunk/src/grpSdVerification/unitSdCoreTransaction/src/SdCoreTransaction.sv
1,12 → 1,38
`ifndef SDCORETRANSACTION_SV
`define SDCORETRANSACTION_SV
 
typedef bit[511:0] DataBlock;
 
class SdCoreTransaction;
 
typedef enum { readSingleBlock, readMultipleBlock, writeSingleBlock,
writeMultipleBlocks, erase, readSdCardStatus } kinds;
 
rand kinds kind;
rand int startAddr;
rand int endAddr;
rand DataBlock data[];
 
endclass
 
class SdCoreTransactionSequence;
 
rand SdCoreTransaction transactions[];
 
constraint randlength {
transactions.size() > 0;
transactions.size() <= 100;
}
 
function void post_randomize();
foreach (transactions[i]) begin
transactions[i] = new();
assert(transactions[i].randomize());
end
endfunction
endclass
 
typedef mailbox #(SdCoreTransactionSequence) SdCoreTransSeqMb;
typedef mailbox #(SdCoreTransaction) SdCoreTransSeqMb;
 
`endif
/trunk/src/grpSdVerification/unitSdCoreTransactionSeqGen/src/SdCoreTransactionSeqGen.sv
4,11 → 4,32
`include "SdCoreTransaction.sv";
 
class SdCoreTransactionSeqGen;
 
SdCoreTransSeqMb TransOutMb[2];
SdCoreTransactionSequence seq;
 
function void start();
endfunction
local int stopAfter = 1;
 
task start();
fork
this.run();
join_none;
endtask
 
task run();
while (stopAfter != 0) begin
seq = new();
assert(seq.randomize());
 
for (int i = 0; i < seq.transactions.size(); i++) begin
TransOutMb[0].put(seq.transactions[i]);
TransOutMb[1].put(seq.transactions[i]);
end
 
if (stopAfter > 0) stopAfter--;
end
endtask
 
endclass
 
`endif
/trunk/src/grpSdVerification/unitSdCoreTransactionBFM/src/SdCoreTransactionBFM.sv
10,10 → 10,27
SdCoreTransSeqMb SdTransOutMb;
WbTransMb WbTransOutMb;
WbTransMb WbTransInMb;
Logger Log = new();
int StopAfter = -1;
 
function void start();
endfunction
task start();
fork
this.run();
join_none;
endtask
 
task run();
while (StopAfter != 0) begin
SdCoreTransaction trans;
 
SdTransInMb.get(trans);
Log.note("TransBFM transaction received: TODO: split up and send");
 
if (StopAfter > 0) StopAfter--;
end
endtask
 
endclass
 
`endif
/trunk/src/grpSdVerification/unitSdCoreTransferFunction/src/SdCoreTransferFunction.sv
9,9 → 9,26
SdCoreTransSeqMb TransInMb;
ExpectedResultMb ExpectedResultOutMb;
 
function void start();
endfunction
Logger Log = new();
int StopAfter = -1;
 
task start();
fork
this.run();
join_none;
endtask
 
task run();
while (StopAfter != 0) begin
SdCoreTransaction transaction;
 
TransInMb.get(transaction);
Log.note("SdCoreTransferFunction transaction received");
 
if (StopAfter > 0) StopAfter--;
end
endtask
 
endclass
 
`endif

powered by: WebSVN 2.1.0

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