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

Subversion Repositories spi_boot

[/] [spi_boot/] [tags/] [rel_3_1_rev_C/] [README] - Blame information for rev 11

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 10 arniml
 
2
README for the spi_boot core
3
============================
4 11 arniml
Version: $Date: 2005-02-13 21:32:40 $
5 10 arniml
 
6
 
7
Description
8
-----------
9
 
10 11 arniml
The SD/MMC Bootloader is a CPLD design that manages configuration and
11
bootstrapping of FPGAs. It is able to retrieve the required data from
12
SecureDigital (SD) cards or MultiMediaCards (MMC) and manages the FPGA
13
configuration process. SD cards as well as MMCs are operated in SPI mode which
14
is part of both standards thus eliminating the need for dedicated
15
implementations. The SD/MMC Bootloader fits both. Beyond configuration, this
16
core supports a bootstrapping strategy where multiple sets are stored on one
17
single memory card.
18
For example consider a system completely based on SRAM. The bootloader
19
provides an initial configuration image in the first set to the FPGA. This
20
image contains a design which pulls the next set from the memory cards and
21
transfers this data to SRAM. In the third step the final FPGA design is
22
loaded.
23 10 arniml
 
24
 
25 11 arniml
Features
26
--------
27 10 arniml
 
28 11 arniml
* Configuration mode: configurates SRAM based FPGAs via serial slave mode
29
  (Xilinx and Altera)
30
* Data mode: provides stored data over a simple synchronous serial interface
31
* Broad compatability
32
    + SecureDigital cards using dedicated initialization command
33
    + MultiMediaCards
34
* Operation triggerd by power-up or card insertion
35
 
36
 
37 10 arniml
Verification
38
------------
39
 
40
The spi_boot core comes with a simple testbench that simulates an SD/MMC
41
card. All four implementations of the core are verified there in parallel
42
while transferring the data for several sets.
43
You should normally not need to run the testbench. But in case you modified
44
the VHDL code the testbench gives some hints if the design has been broken.
45
 
46
 
47
Directory Structure
48
-------------------
49
 
50
The core's directory structure follows the proposal of OpenCores.org.
51
 
52
spi_boot
53
 |
54
 \--+-- rtl
55
    |    |
56
    |    \-- vhdl           : VHDL code containing the RTL description
57
    |                         of the core.
58
    |
59
    +-- bench
60
    |    |
61
    |    \-- vhdl           : VHDL testbench code.
62
    |
63
    \-- sim
64
         |
65
         \-- rtl_sim        : Directory for running simulations.
66
 
67
 
68
Compiling the VHDL Code
69
-----------------------
70
 
71
VHDL compilation and simulation tasks take place inside in sim/rtl_sim
72
directory. The project setup supports only the GHDL simulator (see
73
http://ghdl.free.fr).
74
 
75
To compile the code simply type at the shell
76
 
77
$ make
78
 
79
This should result in a file called tb_behav_c0 which can be executed as any
80
other executable.
81
 
82
The basic simple sequence list can be found in COMPILE_LIST. This can be
83
useful to quickly set up the analyze stage of any compiler or
84
synthesizer. Especially when synthesizing the code, you want to skip the VHDL
85
configurations in *-c.vhd and everything below the bench/ directory.
86
 
87
 
88
References
89
----------
90
 
91
  * SanDisk SD Card Product Manual
92
    http://www.sandisk.com/pdf/oem/ProdManualSDCardv1.9.pdf
93
 
94
  * SanDisk MMC Product Manual
95
    http://www.sandisk.com/pdf/oem/manual-rs-mmcv1.0.pdf
96
 
97
  * Toshiba SD Card Specification
98
    http://i.cmpnet.com/chipcenter/memory/images/prod055.pdf

powered by: WebSVN 2.1.0

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