The purpose with this thesis was to develop an open source SD card controller IP core for usage insmall embedded system, emphasis has been laid on using as few logic gates as possible, providingan easy user interface and making it viable as a system disk controller.
For the most part, the lack of a complete open SD specification has mainly affected embeddedsystems, since desktop users generally read SD cards via USB-based card readers. But recentopenings of the SD specification have made it possible to develop SD-card readers which areutilizing the SD bus protocol.
Implementation has been done in Verilog for the hardware parts, and the software was developedin C. The proposed design has features common in disk controllers, like direct memory access,interrupt generation, and error control.
The design uses approximately 4000 core cells and 2 RAM blocks, about 50% less logic then acommercial alternative (Eureka EP560 ).
Also a second smaller core was developed by makingfew modifications of the full design, thereby showing the strength of a freely modifiable open IPcore.