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 11 and 15

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

Rev 11 Rev 15
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-01-29 13:16:17 +0100 (Sat, 29 Jan 2011) $
$LastChangedDate: 2011-02-13 16:20:10 +0100 (Sun, 13 Feb 2011) $
$LastChangedBy: acapola $
$LastChangedBy: acapola $
$LastChangedRevision: 11 $
$LastChangedRevision: 15 $
$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 37... Line 37...
         input wire startActivation,//Starts activation sequence
         input wire startActivation,//Starts activation sequence
         input wire startDeactivation,//Starts deactivation sequence
         input wire startDeactivation,//Starts deactivation sequence
    input wire [7:0] dataIn,
    input wire [7:0] dataIn,
    input wire nWeDataIn,
    input wire nWeDataIn,
         input wire [12:0] cyclesPerEtu,
         input wire [12:0] cyclesPerEtu,
    output wire [7:0] dataOut,
    output reg [7:0] dataOut,
    input wire nCsDataOut,
    input wire nCsDataOut,
    output wire [7:0] statusOut,
    output wire [7:0] statusOut,
    input wire nCsStatusOut,
    input wire nCsStatusOut,
         output reg isActivated,//set to high by activation sequence, set to low by deactivation sequence
         output reg isActivated,//set to high by activation sequence, set to low by deactivation sequence
         output wire useIndirectConvention,
         output wire useIndirectConvention,
Line 62... Line 62...
wire serialOut;
wire serialOut;
assign isoSio = isTx ? serialOut : 1'bz;
assign isoSio = isTx ? serialOut : 1'bz;
pullup(isoSio);
pullup(isoSio);
wire comClk;
wire comClk;
 
 
 
wire stopBit2=1'b1;//0: 1 stop bit, 1: 2 stop bits 
 
wire msbFirst = useIndirectConvention;//if 1, bits order is: startBit, b7, b6, b5...b0, parity
 
wire oddParity = 1'b0;//if 1, parity bit is such that data+parity have an odd number of 1
 
wire sioHighValue = ~useIndirectConvention;//apply only to data bits
 
 
 
wire [7:0] uart_dataOut;
 
wire [7:0] uart_dataIn = sioHighValue ? dataIn : ~dataIn;
 
always @(*) dataOut = sioHighValue ? uart_dataOut : ~uart_dataOut;
 
 
 
 
        HalfDuplexUartIf #(
        HalfDuplexUartIf #(
                .DIVIDER_WIDTH(1'b1),
                .DIVIDER_WIDTH(1'b1),
                .CLOCK_PER_BIT_WIDTH(4'd13)
                .CLOCK_PER_BIT_WIDTH(4'd13)
                )
                )
        uart (
        uart (
                .nReset(nReset),
                .nReset(nReset),
                .clk(clk),
                .clk(clk),
                .clkPerCycle(1'b0),
                .clkPerCycle(1'b0),
                .dataIn(dataIn),
                .dataIn(uart_dataIn),
                .nWeDataIn(nWeDataIn),
                .nWeDataIn(nWeDataIn),
                .clocksPerBit(cyclesPerEtu),
                .clocksPerBit(cyclesPerEtu),
                .dataOut(dataOut),
                .stopBit2(stopBit2),
 
                .oddParity(oddParity),
 
      .msbFirst(msbFirst),
 
           .dataOut(uart_dataOut),
                .nCsDataOut(nCsDataOut),
                .nCsDataOut(nCsDataOut),
                .statusOut(statusOut),
                .statusOut(statusOut),
                .nCsStatusOut(nCsStatusOut),
                .nCsStatusOut(nCsStatusOut),
                .serialIn(isoSio),
                .serialIn(isoSio),
                .serialOut(serialOut),
                .serialOut(serialOut),
Line 105... Line 118...
                isActivated <= 1'b0;
                isActivated <= 1'b0;
        end else if(isActivated) begin
        end else if(isActivated) begin
                if(waitTs) begin
                if(waitTs) begin
                        if(statusOut[0]) begin
                        if(statusOut[0]) begin
                                waitTs<=1'b0;
                                waitTs<=1'b0;
                                ts<=dataOut;
                                case(dataOut)
 
                                        8'h3B: ts<=dataOut;
 
                                        8'h03: ts<=8'h3F;
 
                                        default: ts<=dataOut;
 
                                endcase
                        end
                        end
                        resetCnt<=resetCnt+1;
                        resetCnt<=resetCnt+1;
                end
                end
                if(startDeactivation) begin
                if(startDeactivation) begin
                        isoVdd <= 1'b0;
                        isoVdd <= 1'b0;

powered by: WebSVN 2.1.0

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