Line 1... |
Line 1... |
/*
|
/*
|
Author: Sebastien Riou (acapola)
|
Author: Sebastien Riou (acapola)
|
Creation date: 22:22:43 01/10/2011
|
Creation date: 22:22:43 01/10/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/test/tsAnalyzer.v $
|
$HeadURL: file:///svn/iso7816_3_master/iso7816_3_master/trunk/test/tsAnalyzer.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 55... |
Line 55... |
reg [16:0] resetCnt;
|
reg [16:0] resetCnt;
|
reg waitTs;
|
reg waitTs;
|
assign tsReceived = ~waitTs;
|
assign tsReceived = ~waitTs;
|
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'h03);//03 is 3F written LSB first and complemented
|
assign useIndirectConvention = ~waitTs & (ts==8'h3F);
|
assign tsError = ~waitTs & (ts!=8'h3B) & ~useIndirectConvention;
|
assign tsError = ~waitTs & (ts!=8'h3B) & (ts!=8'h3F);
|
|
|
assign isActivated = isoReset & isoVdd;
|
assign isActivated = isoReset & isoVdd;
|
wire fsm_nReset=nReset & isoReset & isoVdd;
|
wire fsm_nReset=nReset & isoReset & isoVdd;
|
always @(posedge isoClk, negedge fsm_nReset) begin
|
always @(posedge isoClk, negedge fsm_nReset) begin
|
if(~fsm_nReset) begin
|
if(~fsm_nReset) begin
|
Line 70... |
Line 70... |
if(waitTs) begin
|
if(waitTs) begin
|
if(endOfRx) begin
|
if(endOfRx) begin
|
waitTs<=1'b0;
|
waitTs<=1'b0;
|
case(rxData)
|
case(rxData)
|
8'h3B: ts<=rxData;
|
8'h3B: ts<=rxData;
|
8'h03: ts<=8'h3F;
|
8'h03: ts<=8'h3F;//03 is 3F written LSB first and complemented
|
default: ts<=rxData;
|
default: ts<=rxData;
|
endcase
|
endcase
|
end
|
end
|
resetCnt<=resetCnt+1;
|
resetCnt<=resetCnt+1;
|
end
|
end
|