Dec 30, 2020 11:48
Вчера вообще трудный день был, и вечером я решил сделать интерфейс SD SPI CARD. Собственно, взял шаблон DE0 и начал лепить код. Лепил с трудом, но половину вылепил. Вчера делал аж до двух часов ночи этот код, и было реально интересно, но постоянно нарывался на глупые баги, которые исправлял по 30-60 минут, искал в чем дело. Очень сложно было это искать, тем более почему-то мозги вчера вообще никак не работали. Сегодня вот завершил модуль инициализации карты, которая определяет тип карты (SD1, SD2, SDHC). Все вроде как работает корректно, надо только завершить эмулятор на verilog самой SD-карты. Это вроде как не так сложно будет, тем более я там что-то сделал вроде как.
Теперь надо сделать процедуру считывания и записи. Это далеко не простая процедура, я скажу. Это очень сложная вещь, но я попробую это сделать. Мне нужно сделать модуль так, чтобы с ним можно было очень просто работать и не возвращаться к нему более, не делать по 500 раз одно и то же. Мне хочется сделать, чтобы модуль срабатывал так: подается команда, адрес и позитивный фронт срабатывания. Модуль срабатывает, записывает результат в буферную память, откуда можно будет потом прочитать. Причем буфера будет два - на чтение и запись, потому что мне хочется использовать двухпортовую память. Хотя, конечно, с другой стороны, можно и один буфер использовать, почему бы нет, вообще-то. Я подумаю. Тем более один буфер все-таки места меньше занимает и его проще редактировать. Пожалуй, все-таки сделаю один буфер на 512 байт. Жаль что только модули памяти рассчитаны на 1кб минимум. То есть, если использовал 512 байт, то тратитяс 1кб.
Ладно. Тут важно то, чтобы сделать сам модуль и чтобы он работал как надо. Если я смогу это сделать, я его сразу же прикручу к Спектуруму. Там буду вызывать его с помощью команд OUT/IN, хотя тут не все так просто, конечно.
ПЛИС