1 |
164 |
rkastl |
-- SDHC-SC-Core
|
2 |
|
|
-- Secure Digital High Capacity Self Configuring Core
|
3 |
121 |
rkastl |
--
|
4 |
170 |
rkastl |
-- (C) Copyright 2010, Rainer Kastl
|
5 |
|
|
-- All rights reserved.
|
6 |
164 |
rkastl |
--
|
7 |
170 |
rkastl |
-- Redistribution and use in source and binary forms, with or without
|
8 |
|
|
-- modification, are permitted provided that the following conditions are met:
|
9 |
|
|
-- * Redistributions of source code must retain the above copyright
|
10 |
|
|
-- notice, this list of conditions and the following disclaimer.
|
11 |
|
|
-- * Redistributions in binary form must reproduce the above copyright
|
12 |
|
|
-- notice, this list of conditions and the following disclaimer in the
|
13 |
|
|
-- documentation and/or other materials provided with the distribution.
|
14 |
|
|
-- * Neither the name of the <organization> nor the
|
15 |
|
|
-- names of its contributors may be used to endorse or promote products
|
16 |
|
|
-- derived from this software without specific prior written permission.
|
17 |
164 |
rkastl |
--
|
18 |
170 |
rkastl |
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
19 |
|
|
-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
20 |
|
|
-- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
21 |
|
|
-- DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
22 |
|
|
-- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
23 |
|
|
-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
24 |
|
|
-- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
25 |
|
|
-- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
26 |
|
|
-- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
27 |
|
|
-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
28 |
164 |
rkastl |
--
|
29 |
|
|
-- File : SdClockMaster-e.vhdl
|
30 |
|
|
-- Owner : Rainer Kastl
|
31 |
|
|
-- Description : Generation of SDClk and internal strobes
|
32 |
|
|
-- Links :
|
33 |
|
|
--
|
34 |
121 |
rkastl |
|
35 |
|
|
library ieee;
|
36 |
|
|
use ieee.std_logic_1164.all;
|
37 |
|
|
use ieee.numeric_std.all;
|
38 |
|
|
|
39 |
|
|
use work.global.all;
|
40 |
|
|
|
41 |
|
|
entity SdClockMaster is
|
42 |
|
|
generic (
|
43 |
|
|
gClkFrequency : natural := 100E6
|
44 |
|
|
);
|
45 |
|
|
port (
|
46 |
129 |
rkastl |
iClk : in std_ulogic; -- Clock active high
|
47 |
|
|
iRstSync : in std_ulogic; -- Synchronous reset active high
|
48 |
|
|
|
49 |
|
|
iHighSpeed : in std_ulogic; -- Switches between High-Speed (50 MHz) and default mode (25 MHz)
|
50 |
|
|
iDisable : in std_ulogic; -- Disables the clock output
|
51 |
|
|
|
52 |
|
|
oSdStrobe : out std_ulogic; -- strobe signal to enable SdCmd and SdData
|
53 |
150 |
rkastl |
oSdInStrobe : out std_ulogic; -- strobe signal to capture the input cmd and data
|
54 |
129 |
rkastl |
oSdCardClk : out std_ulogic -- clock output to SD card
|
55 |
121 |
rkastl |
);
|
56 |
|
|
|
57 |
|
|
begin
|
58 |
|
|
|
59 |
|
|
assert (gClkFrequency = 100E6)
|
60 |
129 |
rkastl |
report "SdCore needs a SdClk with 100 MHz"
|
61 |
121 |
rkastl |
severity failure;
|
62 |
|
|
|
63 |
|
|
end entity SdClockMaster;
|
64 |
|
|
|