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 5 and 9

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

Rev 5 Rev 9
 
 
//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
 
 
 
 
 No newline at end of file
 No newline at end of file
 
//Higher level tasks
 
task receiveAndCheckHexBytes;
 
        input [16*257:0] bytesString;
 
        integer i;
 
        reg [15:0] byteInHex;
 
        reg [7:0] byteToCheck;
 
begin
 
        for(i=16*256;i>=0;i=i-16) begin
 
                byteInHex=bytesString[i+:16];
 
                if(16'h0!=byteInHex) begin
 
                        byteToCheck=hexString2Byte(byteInHex);
 
                        receiveAndCheckByte(byteToCheck);
 
                end
 
        end
 
end
 
endtask
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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