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

Subversion Repositories iso7816_3_master

[/] [iso7816_3_master/] [trunk/] [sources/] [RxCoreSelfContained.v] - Diff between revs 4 and 5

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 4 Rev 5
`timescale 1ns / 1ps
`timescale 1ns / 1ps
`default_nettype none
`default_nettype none
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Company: 
// Engineer: Sebastien Riou
// Engineer: Sebastien Riou
// 
// 
// Create Date:    23:57:02 08/31/2010 
// Create Date:    23:57:02 08/31/2010 
// Design Name: 
// Design Name: 
// Module Name:    RxCore 
// Module Name:    RxCore 
// Project Name: 
// Project Name: 
// Target Devices: 
// Target Devices: 
// Tool versions: 
// Tool versions: 
// Description: 
// Description: 
//
//
// Dependencies: 
// Dependencies: 
//
//
// Revision: 
// Revision: 
// Revision 0.01 - File Created
// Revision 0.01 - File Created
// Additional Comments: 
// Additional Comments: 
//
//
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
module RxCoreSelfContained(
module RxCoreSelfContained(
    output wire [7:0] dataOut,
    output wire [7:0] dataOut,
    output wire overrunErrorFlag,       //new data has been received before dataOut was read
    output wire overrunErrorFlag,       //new data has been received before dataOut was read
    output wire dataOutReadyFlag,       //new data available
    output wire dataOutReadyFlag,       //new data available
    output wire frameErrorFlag,         //bad parity or bad stop bits
    output wire frameErrorFlag,         //bad parity or bad stop bits
    output wire endOfRx,                                //one cycle pulse: 1 during last cycle of last stop bit
    output wire endOfRx,                                //one cycle pulse: 1 during last cycle of last stop bit
    output wire run,                                    //rx is definitely started, one of the three flag will be set
    output wire run,                                    //rx is definitely started, one of the three flag will be set
    output wire startBit,                               //rx is started, but we don't know yet if real rx or just a glitch
    output wire startBit,                               //rx is started, but we don't know yet if real rx or just a glitch
 
         output wire stopBit,                           //rx is over but still in stop bits
         input wire [DIVIDER_WIDTH-1:0] clkPerCycle,
         input wire [DIVIDER_WIDTH-1:0] clkPerCycle,
         input wire [CLOCK_PER_BIT_WIDTH-1:0] clocksPerBit,
         input wire [CLOCK_PER_BIT_WIDTH-1:0] clocksPerBit,
         input wire stopBit2,//0: 1 stop bit, 1: 2 stop bits
         input wire stopBit2,//0: 1 stop bit, 1: 2 stop bits
         input wire oddParity, //if 1, parity bit is such that data+parity have an odd number of 1
         input wire oddParity, //if 1, parity bit is such that data+parity have an odd number of 1
    input wire msbFirst,  //if 1, bits order is: startBit, b7, b6, b5...b0, parity
    input wire msbFirst,  //if 1, bits order is: startBit, b7, b6, b5...b0, parity
         input wire ackFlags,
         input wire ackFlags,
         input wire serialIn,
         input wire serialIn,
    input wire comClk,//not used yet
    input wire comClk,//not used yet
    input wire clk,
    input wire clk,
    input wire nReset
    input wire nReset
    );
    );
 
 
//parameters to override
//parameters to override
parameter DIVIDER_WIDTH = 1;
parameter DIVIDER_WIDTH = 1;
parameter CLOCK_PER_BIT_WIDTH = 13;     //allow to support default speed of ISO7816
parameter CLOCK_PER_BIT_WIDTH = 13;     //allow to support default speed of ISO7816
//invert the polarity of the output or not
//invert the polarity of the output or not
//parameter IN_POLARITY = 1'b0;
//parameter IN_POLARITY = 1'b0;
//parameter PARITY_POLARITY = 1'b1;
//parameter PARITY_POLARITY = 1'b1;
//default conventions
//default conventions
parameter START_BIT = 1'b0;
parameter START_BIT = 1'b0;
parameter STOP_BIT1 = 1'b1;
parameter STOP_BIT1 = 1'b1;
parameter STOP_BIT2 = 1'b1;
parameter STOP_BIT2 = 1'b1;
 
 
wire [CLOCK_PER_BIT_WIDTH-1:0] bitClocksCounter;
wire [CLOCK_PER_BIT_WIDTH-1:0] bitClocksCounter;
wire bitClocksCounterEarlyMatch;
wire bitClocksCounterEarlyMatch;
wire bitClocksCounterMatch;
wire bitClocksCounterMatch;
wire [CLOCK_PER_BIT_WIDTH-1:0] bitClocksCounterCompare;
wire [CLOCK_PER_BIT_WIDTH-1:0] bitClocksCounterCompare;
wire bitClocksCounterInc;
wire bitClocksCounterInc;
wire bitClocksCounterClear;
wire bitClocksCounterClear;
wire bitClocksCounterInitVal;
wire bitClocksCounterInitVal;
wire dividedClk;
wire dividedClk;
Counter #(      .DIVIDER_WIDTH(DIVIDER_WIDTH),
Counter #(      .DIVIDER_WIDTH(DIVIDER_WIDTH),
                                .WIDTH(CLOCK_PER_BIT_WIDTH),
                                .WIDTH(CLOCK_PER_BIT_WIDTH),
                                .WIDTH_INIT(1))
                                .WIDTH_INIT(1))
                bitClocksCounterModule(
                bitClocksCounterModule(
                                .counter(bitClocksCounter),
                                .counter(bitClocksCounter),
                                .earlyMatch(bitClocksCounterEarlyMatch),
                                .earlyMatch(bitClocksCounterEarlyMatch),
                                .match(bitClocksCounterMatch),
                                .match(bitClocksCounterMatch),
                                .dividedClk(dividedClk),
                                .dividedClk(dividedClk),
                                .divider(clkPerCycle),
                                .divider(clkPerCycle),
                                .compare(bitClocksCounterCompare),
                                .compare(bitClocksCounterCompare),
                                .inc(bitClocksCounterInc),
                                .inc(bitClocksCounterInc),
                                .clear(bitClocksCounterClear),
                                .clear(bitClocksCounterClear),
                                .initVal(bitClocksCounterInitVal),
                                .initVal(bitClocksCounterInitVal),
                                .clk(clk),
                                .clk(clk),
                                .nReset(nReset));
                                .nReset(nReset));
 
 
RxCore rxCore (
RxCore rxCore (
    .dataOut(dataOut),
    .dataOut(dataOut),
    .overrunErrorFlag(overrunErrorFlag),
    .overrunErrorFlag(overrunErrorFlag),
    .dataOutReadyFlag(dataOutReadyFlag),
    .dataOutReadyFlag(dataOutReadyFlag),
    .frameErrorFlag(frameErrorFlag),
    .frameErrorFlag(frameErrorFlag),
    .endOfRx(endOfRx),
    .endOfRx(endOfRx),
    .run(run),
    .run(run),
    .startBit(startBit),
    .startBit(startBit),
 
    .stopBit(stopBit),
    .clocksPerBit(clocksPerBit),
    .clocksPerBit(clocksPerBit),
    .stopBit2(stopBit2),
    .stopBit2(stopBit2),
    .oddParity(oddParity),
    .oddParity(oddParity),
    .msbFirst(msbFirst),
    .msbFirst(msbFirst),
         .ackFlags(ackFlags),
         .ackFlags(ackFlags),
    .serialIn(serialIn),
    .serialIn(serialIn),
    .clk(clk),
    .clk(clk),
    .nReset(nReset),
    .nReset(nReset),
        .bitClocksCounterEarlyMatch(bitClocksCounterEarlyMatch),
        .bitClocksCounterEarlyMatch(bitClocksCounterEarlyMatch),
   .bitClocksCounterMatch(bitClocksCounterMatch),
   .bitClocksCounterMatch(bitClocksCounterMatch),
        .bitClocksCounterCompare(bitClocksCounterCompare),
        .bitClocksCounterCompare(bitClocksCounterCompare),
        .bitClocksCounterInc(bitClocksCounterInc),
        .bitClocksCounterInc(bitClocksCounterInc),
        .bitClocksCounterClear(bitClocksCounterClear),
        .bitClocksCounterClear(bitClocksCounterClear),
        .bitClocksCounterInitVal(bitClocksCounterInitVal)
        .bitClocksCounterInitVal(bitClocksCounterInitVal)
    );
    );
 
 
endmodule
endmodule
 
 

powered by: WebSVN 2.1.0

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