Хотел бы поделиться тем что сейчас происходит.
Во первых - размер чипа уточнился - это 66 мм2. Источник:
https://www.psdevwiki.com/ps1/CPUЗа последние несколько лет наша банда существенно прокачалась в реверсе чипов. Сформировалась определенная методология модульного реверса и утилита Deroute научилась выгружать нетлист сразу в Verilog, таким образом уже не важно как в чипе "сопли намотаны" -- при выгрузке нетлиста это не имеет значения. Чип сразу потом можно пихнуть в симулятор (Icarus Verilog) или FPGA.
Другим ключевым майлстоуном является перестройка мышления с "я хочу понять как устроен чип" на мышление "я хочу получить нетлист, запихать его в симулятор/ПЛИС и сделать brrrr".
Данная методика оказалась весьма продуктивной, в частности были размотаны чипы сэги, а также DMGCPU. Мелкие чипы-мапперы вроде MMC1 / MBC1 вообще сейчас "разматываются" за пару дней с перерывами.
Ну и анамнез.
В плане реверса PSXCPU был большой застой (я хз сколько, может лет 10). На днях я решил применить вышеописанные методики и начать новый "бой". Текущая фаза -- формирование "черновой" топологии с ячейками. Сами ячейки были уже давно получены, просто находились в непрезентабельном виде. Настало время составить их полную карту (напоминаю - в PSXCPU примерно 37600 стандартных ячеек). Рабочий прогресс накидывания ячеек GTE ниже.
Также разреверсил и заполнил раздел по супер-буферам для mclk:
https://github.com/ogamespec/psxcpu/blob/main/clk.md , просто любопытное чтиво с картинками.
-- 11 май 2025, 20:46 --
А ну да, забыл пояснить зачем всё это нужно.
Как вы очевидно знаете - нетлист PSXCPU представляет собой "море ячеек" - без чётких границ между модулями. Поэтому первоочередная задача - "вычленить" top схему. На данном этапе нужно разметить карту ячеек и транзитные провода, гуляющем по морю ячеек.
Нет необходимости прям все ячейки сейчас накидывать и все провода. Нужно найти только ключевые - ресет, клоки, шины и управляющие сигналы между модулями.
Сейчас уже примерно понятно как гуляют шланги в GTE: слева находятся 4 блока двухпорторых регистров, к ним подключено море DFF+Mux для перегона значений. Чуть правее находится море логики - скорее всего декодеры и стейт-машина для выполнения опкодов GTE.
Ну а правую часть занимает гигантский умножитель.
Сейчас происходит попытка наметить границы GTE и прокинуть все глобальные шланги, затем уже "слон" будет распиливаться на части для модульного реверса.
PSXCPU как все современные VLSI чипы устроен достаточно примитивно: слой входных DFF -> логика/операции -> слой выходных DFF -- умножить на 32 (разрядность чипа).