Cpu Circuit MDEC

From PSXDEV
Jump to: navigation, search

RLE Decoding

Uses Radix-4 Booth multiplication: http://www.geoffknagge.com/fyp/booth.shtml

Схема MDEC IDCT.

Перемножает результат RLE декодирования и Scale Table Matrix (за 2 прохода).

Contents

Топология

500px

1000px

1000px

1000px

Логическая схема

Схема представляет собой IDCT преобразование являющегося частью MDEC декомпрессии.

Преобразование осуществляется за 2 прохода:

Pass 1

На первом проходе осуществляется умножение результата RLE декомпрессии и Scale Table Matrix хранящейся в UNIT 00. Она хранится в виде 32 записей по 26 бит. После выхода данные попарно поступают на мультиплексоры где выбирается какие 13 бит использовать.

1000px

Входы:

- RLE вход: 12 бит
- Scale Table Matrix вход: 13 бит
- Сумма предыдущего этапа вычисления: 17 бит

Схема сразу умножает 2 входа и суммирует умножение с результатом предыдущего шага вычисления. 17 бит результата вновь подается на схему.

В конце вычисления старшие 13 бит результата сохраняются в UNIT 01, который представляет из себя двухпортовую память. то есть на вход и выход которой могут подаваться разные значения.

Pass 2

На втором проходе перемножается уже 13 бит результата первого прохода и 12 верхних бит Scale Table Matrix.

1000px

Входы:

- Результат первого прохода: 13 бит
- Scale Table Matrix вход: верхние 12 бит
- Сумма предыдущего этапа вычисления: 17 бит

Схема вновь умножает 2 входа и суммирует умножение с результатом предыдущего шага вычисления. 17 бит результата вновь подается на схему.

Деление на 2

В конце вычисления старшие 10 бит результата передаются на схему знакового деления на 2 с клампингом -128, 127. На выходе мы получаем 8 бит со знаком.

1000px

800px

Управление IDCT

Тут есть 3 независимых счетчика с которых идут контрольные выходы, объединяемые различными логическими операндами. Выходные линии управляют клоками триггеров в первом и втором пассах а также адресными линиями первого и нулевого юнитов.

1000px

Обсуждениен а форуме

Обсуждение на форуме есть тут: http://board.psxdev.ru/topic/9/