Mar 22, 2023 10:31
Вот есть такие у меня проекты, которые длятся годами, и вовсе не потому, что я их разрабатываю, а потому, что я их боюсь! Например, такой проект, как контроллер памяти SDRAM, который однажды, года 3 назад, я сделал, при этом 2 года мучаясь от того, что просто не мог начать. Так вот, я сделать то сделал, а не доделал до конца все равно, он в вечно сыром состоянии находится. И что теперь делать, я не знаю, потому что впроде как модуль не сложный, а доделать то не могу!
Я просто встал на прогрессе в 90%. А что там такого сложного то в этом модуле? Да ничего! Знай себе дергай из памяти данные да рефреш вовремя вызывай, но нет же, не нравится. Что именно мне не нравится, так это то, что данные придут с задержкой, несмотря на то, что память работает на частоте 100 мгц, а мои процессоры все работают на 25 мгц, всегда. Для извлечения данных требуется около 10-12 тактов на 100 мгц, то равносильно 2-3 тактам на 25 мгц. А это плохо! Вообще-то, можно делать остановку процессора на время запроса из памяти, но это же отстойно!
Вывод: не умею я ничего делать нормально. Процессоры, которые я делаю, убогие все, не имеют никакого ни кеша, ни контроллера памяти, и вообще писать код я не умею, гадство, как же меня бесит. Почему я не могу написать этот простой код?! Да он же элементарный! Но нет, не могу, потому что тупые задержки меня раздражают при доступе к памяти, а огородить кеш мне влом, это логики еще больше, чем в процессоре выйдет.
Вот, к примеру, хорошее же применение было бы. Есть видеоадаптер, где видеопамять находится в sdram. Например, мое любимое разрешение 640x400, на 16 цветов. Поскольку работает на 25 мгц, из 100 мгц, то, учитывая, что за 1 такт (100 мгц) считывается аж 4 точки, то тогда за 1 такт на 25 мгц считывается 16 точек, и выходит, 40 тактов из 800 тактов горизонтальной развертки придется потратить, чтобы извлечь всю строку, а это 5% времени доступа, то есть, 95% времени остается на то, чтобы читать и писать в sdram помимо показа видеобуфера. На самом деле, на горизонтальном или вертикальном гашении луча все можно извлечь даже, то есть, потребуется всего лишь 320 байт.
Так что, взять себя в руки надо и сделать эту ерунду.
Страдания,
ПЛИС