diff options
Diffstat (limited to 'opencores/sd_interface/RTL/readWriteSPIWireData.v')
-rw-r--r-- | opencores/sd_interface/RTL/readWriteSPIWireData.v | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/opencores/sd_interface/RTL/readWriteSPIWireData.v b/opencores/sd_interface/RTL/readWriteSPIWireData.v deleted file mode 100644 index e105e8f75..000000000 --- a/opencores/sd_interface/RTL/readWriteSPIWireData.v +++ /dev/null @@ -1,229 +0,0 @@ -
-//////////////////////////////////////////////////////////////////////
-//// ////
-//// readWriteSPIWireData.v ////
-//// ////
-//// This file is part of the spiMaster opencores effort.
-//// <http://www.opencores.org/cores//> ////
-//// ////
-//// Module Description: ////
-//// parameterized dual clock domain fifo.
-//// fifo depth is restricted to 2^ADDR_WIDTH
-//// No protection against over runs and under runs.
-////
-//// ////
-//// To Do: ////
-////
-//// ////
-//// Author(s): ////
-//// - Steve Fielding, sfielding@base2designs.com ////
-//// ////
-//////////////////////////////////////////////////////////////////////
-//// ////
-//// Copyright (C) 2004 Steve Fielding and OPENCORES.ORG ////
-//// ////
-//// This source file may be used and distributed without ////
-//// restriction provided that this copyright statement is not ////
-//// removed from the file and that any derivative work contains ////
-//// the original copyright notice and the associated disclaimer. ////
-//// ////
-//// This source file is free software; you can redistribute it ////
-//// and/or modify it under the terms of the GNU Lesser General ////
-//// Public License as published by the Free Software Foundation; ////
-//// either version 2.1 of the License, or (at your option) any ////
-//// later version. ////
-//// ////
-//// This source is distributed in the hope that it will be ////
-//// useful, but WITHOUT ANY WARRANTY; without even the implied ////
-//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////
-//// PURPOSE. See the GNU Lesser General Public License for more ////
-//// details. ////
-//// ////
-//// You should have received a copy of the GNU Lesser General ////
-//// Public License along with this source; if not, download it ////
-//// from <http://www.opencores.org/lgpl.shtml> ////
-//// ////
-//////////////////////////////////////////////////////////////////////
-//
-`include "timescale.v"
-`include "spiMaster_defines.v"
-
-module readWriteSPIWireData (clk, clkDelay, rst, rxDataOut, rxDataRdySet, spiClkOut, spiDataIn, spiDataOut, txDataEmpty, txDataFull, txDataFullClr, txDataIn);
-input clk;
-input [7:0]clkDelay;
-input rst;
-input spiDataIn;
-input txDataFull;
-input [7:0]txDataIn;
-output [7:0]rxDataOut;
-output rxDataRdySet;
-output spiClkOut;
-output spiDataOut;
-output txDataEmpty;
-output txDataFullClr;
-
-wire clk;
-wire [7:0]clkDelay;
-wire rst;
-reg [7:0]rxDataOut, next_rxDataOut;
-reg rxDataRdySet, next_rxDataRdySet;
-reg spiClkOut, next_spiClkOut;
-wire spiDataIn;
-reg spiDataOut, next_spiDataOut;
-reg txDataEmpty, next_txDataEmpty;
-wire txDataFull;
-reg txDataFullClr, next_txDataFullClr;
-wire [7:0]txDataIn;
-
-// diagram signals declarations
-reg [3:0]bitCnt, next_bitCnt;
-reg [7:0]clkDelayCnt, next_clkDelayCnt;
-reg [7:0]rxDataShiftReg, next_rxDataShiftReg;
-reg [7:0]txDataShiftReg, next_txDataShiftReg;
-
-// BINARY ENCODED state machine: rwSPISt
-// State codes definitions:
-`define WT_TX_DATA 2'b00
-`define CLK_HI 2'b01
-`define CLK_LO 2'b10
-`define ST_RW_WIRE 2'b11
-
-reg [1:0]CurrState_rwSPISt, NextState_rwSPISt;
-
-// Diagram actions (continuous assignments allowed only: assign ...)
-// diagram ACTION
-
-
-// Machine: rwSPISt
-
-// NextState logic (combinatorial)
-always @ (txDataFull or txDataIn or clkDelayCnt or clkDelay or txDataShiftReg or bitCnt or rxDataShiftReg or spiDataIn or rxDataRdySet or txDataEmpty or txDataFullClr or spiClkOut or spiDataOut or rxDataOut or CurrState_rwSPISt)
-begin
- NextState_rwSPISt <= CurrState_rwSPISt;
- // Set default values for outputs and signals
- next_rxDataRdySet <= rxDataRdySet;
- next_txDataEmpty <= txDataEmpty;
- next_txDataShiftReg <= txDataShiftReg;
- next_rxDataShiftReg <= rxDataShiftReg;
- next_bitCnt <= bitCnt;
- next_clkDelayCnt <= clkDelayCnt;
- next_txDataFullClr <= txDataFullClr;
- next_spiClkOut <= spiClkOut;
- next_spiDataOut <= spiDataOut;
- next_rxDataOut <= rxDataOut;
- case (CurrState_rwSPISt) // synopsys parallel_case full_case
- `WT_TX_DATA:
- begin
- next_rxDataRdySet <= 1'b0;
- next_txDataEmpty <= 1'b1;
- if (txDataFull == 1'b1)
- begin
- NextState_rwSPISt <= `CLK_HI;
- next_txDataShiftReg <= txDataIn;
- next_rxDataShiftReg <= 8'h00;
- next_bitCnt <= 4'h0;
- next_clkDelayCnt <= 8'h00;
- next_txDataFullClr <= 1'b1;
- next_txDataEmpty <= 1'b0;
- end
- end
- `CLK_HI:
- begin
- next_clkDelayCnt <= clkDelayCnt + 1'b1;
- next_txDataFullClr <= 1'b0;
- next_rxDataRdySet <= 1'b0;
- if (clkDelayCnt == clkDelay)
- begin
- NextState_rwSPISt <= `CLK_LO;
- next_spiClkOut <= 1'b0;
- next_spiDataOut <= txDataShiftReg[7];
- next_txDataShiftReg <= {txDataShiftReg[6:0], 1'b0};
- next_clkDelayCnt <= 8'h00;
- end
- end
- `CLK_LO:
- begin
- next_clkDelayCnt <= clkDelayCnt + 1'b1;
- if ((bitCnt == 4'h8) && (txDataFull == 1'b1))
- begin
- NextState_rwSPISt <= `CLK_HI;
- next_rxDataRdySet <= 1'b1;
- next_rxDataOut <= rxDataShiftReg;
- next_txDataShiftReg <= txDataIn;
- next_bitCnt <= 3'b000;
- next_clkDelayCnt <= 8'h00;
- next_txDataFullClr <= 1'b1;
- end
- else if (bitCnt == 4'h8)
- begin
- NextState_rwSPISt <= `WT_TX_DATA;
- next_rxDataRdySet <= 1'b1;
- next_rxDataOut <= rxDataShiftReg;
- end
- else if (clkDelayCnt == clkDelay)
- begin
- NextState_rwSPISt <= `CLK_HI;
- next_spiClkOut <= 1'b1;
- next_bitCnt <= bitCnt + 1'b1;
- next_clkDelayCnt <= 8'h00;
- next_rxDataShiftReg <= {rxDataShiftReg[6:0], spiDataIn};
- end
- end
- `ST_RW_WIRE:
- begin
- next_bitCnt <= 4'h0;
- next_clkDelayCnt <= 8'h00;
- next_txDataFullClr <= 1'b0;
- next_rxDataRdySet <= 1'b0;
- next_txDataShiftReg <= 8'h00;
- next_rxDataShiftReg <= 8'h00;
- next_rxDataOut <= 8'h00;
- next_spiDataOut <= 1'b0;
- next_spiClkOut <= 1'b0;
- next_txDataEmpty <= 1'b0;
- NextState_rwSPISt <= `WT_TX_DATA;
- end
- endcase
-end
-
-// Current State Logic (sequential)
-always @ (posedge clk)
-begin
- if (rst == 1'b1)
- CurrState_rwSPISt <= `ST_RW_WIRE;
- else
- CurrState_rwSPISt <= NextState_rwSPISt;
-end
-
-// Registered outputs logic
-always @ (posedge clk)
-begin
- if (rst == 1'b1)
- begin
- rxDataRdySet <= 1'b0;
- txDataEmpty <= 1'b0;
- txDataFullClr <= 1'b0;
- spiClkOut <= 1'b0;
- spiDataOut <= 1'b0;
- rxDataOut <= 8'h00;
- txDataShiftReg <= 8'h00;
- rxDataShiftReg <= 8'h00;
- bitCnt <= 4'h0;
- clkDelayCnt <= 8'h00;
- end
- else
- begin
- rxDataRdySet <= next_rxDataRdySet;
- txDataEmpty <= next_txDataEmpty;
- txDataFullClr <= next_txDataFullClr;
- spiClkOut <= next_spiClkOut;
- spiDataOut <= next_spiDataOut;
- rxDataOut <= next_rxDataOut;
- txDataShiftReg <= next_txDataShiftReg;
- rxDataShiftReg <= next_rxDataShiftReg;
- bitCnt <= next_bitCnt;
- clkDelayCnt <= next_clkDelayCnt;
- end
-end
-
-endmodule
\ No newline at end of file |