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

Subversion Repositories iso7816_3_master

[/] [iso7816_3_master/] [trunk/] [sources/] [Iso7816_3_Master.v] - Diff between revs 15 and 17

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

Rev 15 Rev 17
Line 1... Line 1...
/*
/*
Author: Sebastien Riou (acapola)
Author: Sebastien Riou (acapola)
Creation date: 17:16:40 01/09/2011
Creation date: 17:16:40 01/09/2011
 
 
$LastChangedDate: 2011-02-13 16:20:10 +0100 (Sun, 13 Feb 2011) $
$LastChangedDate: 2011-02-18 15:23:07 +0100 (Fri, 18 Feb 2011) $
$LastChangedBy: acapola $
$LastChangedBy: acapola $
$LastChangedRevision: 15 $
$LastChangedRevision: 17 $
$HeadURL: file:///svn/iso7816_3_master/iso7816_3_master/trunk/sources/Iso7816_3_Master.v $
$HeadURL: file:///svn/iso7816_3_master/iso7816_3_master/trunk/sources/Iso7816_3_Master.v $
 
 
This file is under the BSD licence:
This file is under the BSD licence:
Copyright (c) 2011, Sebastien Riou
Copyright (c) 2011, Sebastien Riou
 
 
Line 105... Line 105...
assign tsReceived = ~waitTs;
assign tsReceived = ~waitTs;
reg [7:0] ts;
reg [7:0] ts;
assign atrIsEarly = ~waitTs & (resetCnt<(16'h100+16'd400));
assign atrIsEarly = ~waitTs & (resetCnt<(16'h100+16'd400));
assign atrIsLate = resetCnt>(16'h100+16'd40000);
assign atrIsLate = resetCnt>(16'h100+16'd40000);
assign useIndirectConvention = ~waitTs & (ts==8'h3F);
assign useIndirectConvention = ~waitTs & (ts==8'h3F);
assign tsError = ~waitTs & (ts!=8'h3B) & ~useIndirectConvention;
assign tsError = ~waitTs & (ts!=8'h3B) & (ts!=8'h3F);
always @(posedge comClk, negedge nReset) begin
always @(posedge comClk, negedge nReset) begin
        if(~nReset) begin
        if(~nReset) begin
                isoClkEn <= 1'b0;
                isoClkEn <= 1'b0;
                resetCnt<=16'b0;
                resetCnt<=16'b0;
                waitTs<=1'b1;
                waitTs<=1'b1;
Line 120... Line 120...
                if(waitTs) begin
                if(waitTs) begin
                        if(statusOut[0]) begin
                        if(statusOut[0]) begin
                                waitTs<=1'b0;
                                waitTs<=1'b0;
                                case(dataOut)
                                case(dataOut)
                                        8'h3B: ts<=dataOut;
                                        8'h3B: ts<=dataOut;
                                        8'h03: ts<=8'h3F;
                                        8'h03: ts<=8'h3F;//03 is 3F written LSB first and complemented
                                        default: ts<=dataOut;
                                        default: ts<=dataOut;
                                endcase
                                endcase
                        end
                        end
                        resetCnt<=resetCnt+1;
                        resetCnt<=resetCnt+1;
                end
                end

powered by: WebSVN 2.1.0

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