Skip to content

insularity1337/8b10b

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

8b10b

Что внутри

  1. Две реализации кодера и декодера 8b/10b по схемам из отчетов IBM RC 18855 и RC 23408;
  2. Тестовое окружение для проверки кодеров/декодеров 8b/10b в папке qa с таблицами всех возможных комбинаций;
  3. Скрипты для моделирования и синтеза в стеке от cadence'а окружения с кодером и декодером. Что используется:
    • Библиотеки от SkyWater 130nm;
    • UPF;
    • Lowpower flow;
    • MMMC flow;
    • multidomain/multilib;
    • Simple PLE flow.

Пояснения

  1. Скрипты для двух различных окружений:
    1. Несколько бибилотек ячеек различной высоты (multilib);
    2. Одна библиотека ячеек (lp).
  2. В окружении используются кодер и декодер из RC 23408;
  3. В рамках синтеза используются некоторые ячейки промаркированные в бибилиотеках как dont_use.

Схема для синтеза

Кодер, декодер и регистры из окружения принадлежат разным доменам питания. Цель синтеза - вставка ячеек для изоляции, преобразования уровня напряжения и сохранения состояния.

Кодер

Кодер реализован по схеме из RC 23408. Состоит из двух частей:

  1. Ядро (комбинационная схема с триггером для хранения текущего running disparity);
  2. Обвязка из триггеров. Подразумевается что вычислительное ядро должно отключаться в целях энергосбережения.

Декодер

Декодер реализован по схеме из RC 23408. Состоит из двух частей:

  1. Ядро (комбинационная схема и триггер для хранения running disparity);
  2. Обвязка из триггеров. Аналогичено кодеру, ядро декодера должно отключаться в целях энергосбережения.

Варианты синтеза

Общие положения

  • В кодере и декодере описаны абстрактные переключатели питания работающие по портам ENC_PS_CTRL и DEC_PS_CTRL (потому что в библиотеках sky130_fd_* нет ячеек реализующих функционал переключателей питания);
  • И кодер и декодер разбиты на два домена питания:
    • aon: входит переключатель питания и обвязка из триггеров;
    • ps: входит комбинационная логика и триггер хранения running disparity.
  • И в кодере и в декодере на границе между ps и aon доменами описаны рпавила вставки ячеек изоляции на случай отключения питания ядра. Включение ячеек изоляции осуществляется через порты ENC_ISO и DEC_ISO;
  • Для триггеров внутри ядер кодера и декодера описано правило вставки ячейки с сохранением состояния на случай отключения питания ядра. Переход в режим хранения осуществляется по фронтам управляющих сигналов ENC_RET и DEC_RET;
  • Для всех сигналов переходящих из домена в домен описаны правила вставки ячеек преобразования уровня напряжения, т.к. подразумевается что уровни в каждом домене будут отличаться.

Синтез в варианте multilib

cd <папка_с_репозиторием>
make

Иллюстрация сборки проекта с использованием lowpower + UPF + multidomain/multilib.

Для каждого домена питания используется отдельная бибилотека, т.е. каждый домен питания еще и библтотечный домен:

  • окружение: sky130_fd_sc_hvl

    • подразумевается что это always on домен питания;

    • состояния домена питания:

      Название Уровень напряжения питания (В)
      ON_5v0 5.0
      ON_3v3 3.3
    • из hvl библиотеки, помимо триггеров, берутся ячейки преобразования уровня напряжения.

  • декодер: sky130_fd_sc_lp

    • состояния aon домена питания:

      Название Уровень напряжения питания (В)
      ON_1v6 1.6
      ON_1v95 1.95
    • состояния ps домена питания:

      Название Уровень напряжения питания (В)
      ON_1v6 1.6
      ON_1v95 1.95
      OFF OFF
    • таблица переходов для ps домена:

      ON_1v6 ON_1v95 OFF
      ON_1v6
      ON_1v95
      OFF
    • таблица состояний внутри декодера:

      Название Состояние aon Состояние ps
      ON_1v6 ON_1v6 ON_1v6
      ON_1v95 ON_1v95 ON_1v95
      ON_1v6_OFF ON_1v6 OFF
      ON_1v95_OFF ON_1v95 ON_1vOFF
  • кодер: sky130_fd_sc_ls + sky130_fd_sc_lp.

    • две библиотеки потому что в ls нет триггеров с сохранением состояния;

    • состояния aon домена питания:

      Название Уровень напряжения питания (В)
      ON_1v4 1.4
      ON_1v8 1.8
    • состояния ps домена питания:

      Название Уровень напряжения питания (В)
      ON_1v4 1.4
      ON_1v8 1.8
      OFF OFF
    • таблица переходов для ps домена:

      ON_1v4 ON_1v8 OFF
      ON_1v4
      ON_1v8
      OFF
    • таблица состояний внутри декодера:

      Название Состояние aon Состояние ps
      ON_1v4 ON_1v4 ON_1v4
      ON_1v8 ON_1v8 ON_1v8
      ON_1v4_OFF ON_1v4 OFF
      ON_1v8_OFF ON_1v8 ON_1vOFF

Синтез в варианте lp

cd <папка_с_репозиторием>
make lp

Синтез схемы с использованием lowpower + UPF + MMMC + simple PLE.
Основная цель - иллюстрация voltage & ferquency scaling.
У всего окружения два режима работы:

Название Уровень напряжения питания (В) Частота тактового сигнала (МГц) Скорость данных (Мбит)
VNOM 1.6 1.25 10
VBOOST 1.95 12.5 100

В scripts/lp/mmmc.tcl описаны все режимы и условия работы.
Состояния доменов питания:

  • aon:
    Название Уровень напряжения питания (В)
    VNOM 1.6
    VBOOST 1.95
  • ps:
    Название Уровень напряжения питания (В)
    VNOM 1.6
    VBOOST 1.95
    OFF OFF

Таблица состояний внутри кодера и декодера:

Название Состояние aon Состояние ps
VNOM VNOM VNOM
VBOOST VBOOST VBOOST
VNOM_OFF VNOM OFF
VBOOST_OFF VBOOST OFF

Таблица состояний всего окружения:

Название Состояние домена кодера Состояние домена окружения Состояние домена декодера
OFF_VNOM_OFF VNOM_OFF VNOM VNOM_OFF
VNOM_VNOM_OFF VNOM VNOM VNOM_OFF
OFF_VNOM_VNOM VNOM_OFF VNOM VNOM
VNOM_VNOM_VNOM VNOM VNOM VNOM
OFF_VBOOST_OFF VBOOST_OFF VBOOST VBOOST_OFF
VBOOST_VBOOST_OFF VBOOST VBOOST VBOOST_OFF
OFF_VBOOST_VBOOST VBOOST_OFF VBOOST VBOOST
VBOOST_VBOOST_VBOOST VBOOST VBOOST VBOOST

Ссылки

  1. 8B/10B Encoding and Decoding for High Speed Applications (RC23408)
  2. The ANSI Fibre Channel Transmission Code (RC 18855)

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published