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] - Blame information for rev 9

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 acapola
 
2
//wire txRun,txPending, rxRun, rxStartBit, isTx, overrunErrorFlag, frameErrorFlag, bufferFull;
3
//assign {txRun, txPending, rxRun, rxStartBit, isTx, overrunErrorFlag, frameErrorFlag, bufferFull} = COM_statusOut;
4
 
5
 
6
task privateTaskReceiveByteCore;
7
  begin
8
      wait(txPending==1'b0);//wait start of last tx if any
9
      wait(txRun==1'b0);//wait end of previous transmission if any
10
      wait(bufferFull==1'b1);//wait reception of a byte
11
      @(posedge COM_clk);
12
      nCsDataOut=0;
13
      @(posedge COM_clk);
14
      nCsDataOut=1;
15
        end
16
endtask
17
task receiveByte;
18
output reg [7:0] rxData;
19
        begin
20
                privateTaskReceiveByteCore;
21
                rxData=dataOut;
22
      @(posedge COM_clk);
23
        end
24
endtask
25
task receiveAndCheckByte;
26
  input [7:0] data;
27
  begin
28
      privateTaskReceiveByteCore;
29
      if(data!=dataOut) begin
30
         COM_errorCnt=COM_errorCnt+1;
31
         $display("ERROR %d: Received %x instead of %x",COM_errorCnt, dataOut, data);
32
      end
33
                @(posedge COM_clk);
34
        end
35
endtask
36
 
37 9 acapola
//Higher level tasks
38
task receiveAndCheckHexBytes;
39
        input [16*257:0] bytesString;
40
        integer i;
41
        reg [15:0] byteInHex;
42
        reg [7:0] byteToCheck;
43
begin
44
        for(i=16*256;i>=0;i=i-16) begin
45
                byteInHex=bytesString[i+:16];
46
                if(16'h0!=byteInHex) begin
47
                        byteToCheck=hexString2Byte(byteInHex);
48
                        receiveAndCheckByte(byteToCheck);
49
                end
50
        end
51
end
52
endtask

powered by: WebSVN 2.1.0

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