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
|