Тема: Проблемы с двупортовой памятью CY7C028V-15AC
Думаю, этот раздел наиболее подходящий для данной темы, т.к. вопрос касается не только "Агата" (точнее - моей его реплики).
Решив использовать для видеоконтроллера двупортовую память, я приобрёл чипы CY7C028V-15AC. Изначально меня беспокоил вопрос возможных коллизий при одновременном обращении к одной и той же ячейке памяти с двух сторон. Опробовав память на отладочной плате я не увидел проблем и включил её в свои проекты.
Недавно я решил, забавы ради, сделать на своей новой плате (собрал её я примерно месяц назад, но информацию по ней я не публиковал) реплику ZX-Spectrum. Реплика заработала, но я сразу обратил внимание на непонятные артефакты на экране, хаотично возникающие и пропадающие. Появлялись они в случайных местах экрана, всегда по одному, во всяком случае, визуально я более одного не видел.
Запущенный тест памяти показал периодически возникающие ошибки в адресах экранной области. За пределами экранной области ошибки не возникали, тест гонял примерно в течении часа. И происходило это только при активном использовании видеообласти памяти, в статическом режиме ошибок не было. Также их не было при отключении видеоконтроллера от второго порта памяти. Для большей уверенности я перенёс проект на свою старую плату "AgatIC" и запустил тест - то же самое. Две разные платы, две разные (одного типа) микросхемы памяти, разные FPGA, использование софтядра и реального процессора - результат один. Из всего этого я сделал предварительный вывод: двупортовая память - не такая халява, как кажется. Буду ещё изучать даташит на CY7C028V-15AC, кажется, я там что-то пропустил или недопонял. Если будет новая информация - сообщу.
Моя новая игрушка с реальными процессорами: