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

Subversion Repositories vspi

[/] [vspi/] [trunk/] [src/] [spi_base/] [spiwrap.v] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 mjlyons
`timescale 1ns / 1ps
2
//////////////////////////////////////////////////////////////////////////////////
3
// Company: 
4
// Engineer: 
5
// 
6
// Create Date:    17:49:15 11/02/2011 
7
// Design Name: 
8
// Module Name:    spiwrap 
9
// Project Name: 
10
// Target Devices: 
11
// Tool versions: 
12
// Description: 
13
//
14
// Dependencies: 
15
//
16
// Revision: 
17
// Revision 0.01 - File Created
18
// Additional Comments: 
19
//
20
//////////////////////////////////////////////////////////////////////////////////
21
module spiwrap(
22
    input Reset,
23
    input SysClk,
24
    input spi_ss,
25
    input spi_mosi,
26
    input spi_clk,
27
    output spi_miso,
28
    output [7:0] leds
29
    );
30
 
31
wire [31:0] douta_dummy;
32
 
33
wire [11:0] spi_addr;
34
wire [ 7:0] spi_data;
35
wire [31:0] rcMem_douta;
36
 
37
reg        initMem;
38
reg [ 9:0] initMemAddr;
39
reg [31:0] initMemData;
40
 
41
always @(posedge SysClk) begin
42
  if (Reset) begin
43
    initMem <= 1'b1;
44
    initMemAddr <= 10'h000;
45
    initMemData <= 32'h5A6C_C6A5;
46
  end else begin
47
    if (initMem == 1'b1) begin
48
      // Turn off init mem mode if formatted memory 
49
      if (initMemAddr == 10'h3FF) begin
50
        initMem <= 1'b0;
51
      end
52
 
53
      // Increment init mem addr/data
54
      initMemAddr <= initMemAddr + 10'h001;
55
    end
56
  end
57
end
58
 
59
buffermem spiMemTx (
60
  .clka(SysClk), // input clkb
61
  .ena(1'b1), // input enb
62
  .wea(1'b0), // input [0 : 0] web
63
  .addra(spi_addr), // input [11 : 0] addrb
64
  .dina(8'h00), // input [7 : 0] dinb
65
  .douta(spi_data), // output [7 : 0] doutb
66
  .clkb(SysClk), // input clka 
67
  .enb(1'b1), // input ena
68
  .web(initMem), // input [0 : 0] wea
69
  .addrb(initMemAddr), // input [9 : 0] addra
70
  .dinb(initMemData), // input [31 : 0] dina
71
  .doutb(douta_dummy) // output [31 : 0] douta
72
);
73
 
74
wire        spi_rcMem_we;
75
wire [11:0] spi_rcMem_addr;
76
wire [ 7:0] spi_rcMem_data;
77
wire [ 7:0] debug_out;
78
wire [ 7:0] spi_rcMem_doutb_dummy;
79
buffermem spiMemRc (
80
  .clka(SysClk),
81
  .ena(1'b1),
82
  .wea(spi_rcMem_we),
83
  .addra(spi_rcMem_addr),
84
  .dina(spi_rcMem_data),
85
  .douta(spi_rcMem_doutb_dummy),
86
  .clkb(SysClk),
87
  .enb(1'b1),
88
  .web(1'b0),
89
  .addrb(10'h001),
90
  .doutb(rcMem_douta)
91
);
92
 
93
spiifc mySpiIfc (
94
  .Reset(Reset),
95
  .SysClk(SysClk),
96
  .SPI_CLK(spi_clk),
97
  .SPI_MISO(spi_miso),
98
  .SPI_MOSI(spi_mosi),
99
  .SPI_SS(spi_ss),
100
  .txMemAddr(spi_addr),
101
  .txMemData(spi_data),
102
  .rcMemAddr(spi_rcMem_addr),
103
  .rcMemData(spi_rcMem_data),
104
  .rcMemWE(spi_rcMem_we),
105
  .debug_out(debug_out)
106
);
107
 
108
assign leds =  rcMem_douta[7:0] /* debug_out */;
109
 
110
endmodule

powered by: WebSVN 2.1.0

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