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

Subversion Repositories iso7816_3_master

[/] [iso7816_3_master/] [trunk/] [test/] [ComRxDriverTasks.v] - Diff between revs 9 and 10

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 9 Rev 10
 
 
//wire txRun,txPending, rxRun, rxStartBit, isTx, overrunErrorFlag, frameErrorFlag, bufferFull;
//wire txRun,txPending, rxRun, rxStartBit, isTx, overrunErrorFlag, frameErrorFlag, bufferFull;
//assign {txRun, txPending, rxRun, rxStartBit, isTx, overrunErrorFlag, frameErrorFlag, bufferFull} = COM_statusOut;
//assign {txRun, txPending, rxRun, rxStartBit, isTx, overrunErrorFlag, frameErrorFlag, bufferFull} = COM_statusOut;
 
 
 
 
task privateTaskReceiveByteCore;
task privateTaskReceiveByteCore;
  begin
  begin
      wait(txPending==1'b0);//wait start of last tx if any
      wait(txPending==1'b0);//wait start of last tx if any
      wait(txRun==1'b0);//wait end of previous transmission if any
      wait(txRun==1'b0);//wait end of previous transmission if any
      wait(bufferFull==1'b1);//wait reception of a byte
      wait(bufferFull==1'b1);//wait reception of a byte
      @(posedge COM_clk);
      @(posedge COM_clk);
      nCsDataOut=0;
      nCsDataOut=0;
      @(posedge COM_clk);
      @(posedge COM_clk);
      nCsDataOut=1;
      nCsDataOut=1;
        end
        end
endtask
endtask
task receiveByte;
task receiveByte;
output reg [7:0] rxData;
output reg [7:0] rxData;
        begin
        begin
                privateTaskReceiveByteCore;
                privateTaskReceiveByteCore;
                rxData=dataOut;
                rxData=dataOut;
      @(posedge COM_clk);
      @(posedge COM_clk);
        end
        end
endtask
endtask
task receiveAndCheckByte;
task receiveAndCheckByte;
  input [7:0] data;
  input [7:0] data;
  begin
  begin
      privateTaskReceiveByteCore;
      privateTaskReceiveByteCore;
      if(data!=dataOut) begin
      if(data!=dataOut) begin
         COM_errorCnt=COM_errorCnt+1;
         COM_errorCnt=COM_errorCnt+1;
         $display("ERROR %d: Received %x instead of %x",COM_errorCnt, dataOut, data);
         $display("ERROR %d: Received %x instead of %x",COM_errorCnt, dataOut, data);
      end
      end
                @(posedge COM_clk);
                @(posedge COM_clk);
        end
        end
endtask
endtask
 
 
//Higher level tasks
//Higher level tasks
task receiveAndCheckHexBytes;
task receiveAndCheckHexBytes;
        input [16*257:0] bytesString;
        input [16*257:0] bytesString;
        integer i;
        integer i;
        reg [15:0] byteInHex;
        reg [15:0] byteInHex;
        reg [7:0] byteToCheck;
        reg [7:0] byteToCheck;
begin
begin
        for(i=16*256;i>=0;i=i-16) begin
        for(i=16*256;i>=0;i=i-16) begin
                byteInHex=bytesString[i+:16];
                byteInHex=bytesString[i+:16];
                if(16'h0!=byteInHex) begin
                if(16'h0!=byteInHex) begin
                        byteToCheck=hexString2Byte(byteInHex);
                        byteToCheck=hexString2Byte(byteInHex);
                        receiveAndCheckByte(byteToCheck);
                        receiveAndCheckByte(byteToCheck);
                end
                end
        end
        end
end
end
 
 

powered by: WebSVN 2.1.0

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