ОЗУ
Библиотека: | Память |
Введён в: | 2.0 Beta 1 |
Внешний вид: |
Поведение
Компонент ОЗУ, бесспорно самый сложный компонент встроенной библиотеки Logisim, хранит до 16777216 значений (это задаётся в атрибуте Разрядность адреса), каждое из которых может включать до 32 битов (задаётся в атрибуте Разрядность данных). Схема может считывать и записывать значения в ОЗУ. Кроме того, пользователь может интерактивно изменять отдельные значения с помощью Инструмента Нажатие, или менять всё содержимое через Инструмент Меню.
Текущие значения отображаются в компоненте. Их адреса перечислены серым слева от области отображения. Значения внутри представлены в шестнадцатеричном виде. Значение выбранного в данный момент адреса будет отображаться негативным текстом (белым по чёрному).
Компонент ОЗУ поддерживает три интерфейса, в зависимости от значения атрибута Интерфейс данных.
- Один синхронный порт чтения/записи (по умолчанию)
Компонент имеет один порт на восточном крае, который служит для чтения и записи данных. Что он осуществляет, зависит от значения на входе, отмеченном ld: 1 (или плавающее значение) означает чтение данных по адресу, поданному на западный край компонента, а 0 означает запись данных, поступивших на порт. Для передачи данных в компонент и из него, вам нужно использовать компонент Управляемый буфер, как показано ниже.
- Один асинхронный порт чтения/записи
Это тоже самое, что и выше, но в данном варианте нет тактового входа. Значение, поступившее на шину данных, записывается в память, когда значение на входе ld - 0. Если адрес или данные меняются, пока значение на входе ld 0, то происходит дополнительная операция записи. Этот вариант более приближен к интерфейсу многих доступных типов памяти с произвольным доступом.
- Раздельные порты чтения и записи
Предоставляются два порта данных - один на западном крае для записи данных, и другой на восточном крае для чтения данных. Этот вариант устраняет необходимость Управляемого буфера, так что он проще в использовании.
- A на западном крае (вход, разрядность соответствует атрибуту Разрядность адреса)
- Выбирает, к какому значению в памяти схема в данный момент получает доступ.
- D на западном крае (вход, разрядность соответствует атрибуту Разрядность данных)
- Этот вход представлен, только если "Раздельные порты чтения и записи" выбрано для атрибута Интерфейс данных. Когда запрошена запись (через изменение значения на тактовом входе с 0 на 1, пока на входах sel и str 1 или плавающее значение), значение, поданное на этот порт, записывается в память по выбранному в данный момент адресу.
- D на восточном крае (вход/выход или выход, разрядность соответствует атрибуту Разрядность данных)
- Если на входах sel и ld 1 или плавающее значение, то компонент ОЗУ выдаёт на этот порт значение по выбранному в данный момент адресу. Если представлен один порт чтения/записи, то когда запрошена запись, значение, считанное по этому порту, записывается в память.
- str на южном крае (вход, разрядность равна 1)
- Запись: этот вход представлен, только если "Раздельные порты чтения и записи" выбрано для атрибута Интерфейс данных. Когда на нём 1 или плавающее значение, тактовый импульс приведёт к записи в память данных, полученных на западном крае (при условии, что на входе sel тоже 1 или плавающее значение).
- sel на южном крае (вход, разрядность равна 1)
- Выбор кристалла: этот вход включает или выключает весь модуль ОЗУ, в зависимости от того, 1/плавающее значение на нём, или 0. Это вход предназначен в первую очередь для ситуаций, когда у вас есть несколько модулей памяти, только один из которых может быть включен в какой-то момент.
- треугольник на южном крае (вход, разрядность равна 1)
- Тактовый вход: отсутствует, если значение атрибута Интерфейс данных - "Один асинхронный порт чтения/записи". В других случаях, когда на входе ld 0, и значение на нём меняется с 0 на 1 (и ещё на входе sel 1/неопределённость и на входе clr 0), значение по выбранному в данный момент адресу меняется на значение на контакте D. Но пока на тактовом входе сохраняется 0 или 1, значение входа D не будет записано в память.
- ld на южном крае (вход, разрядность равна 1)
- Чтение: выбирает, должно ли ОЗУ выдавать (на выход D) значение по текущему адресу. Такое поведение выхода разрешено, если на входе out 1 или неопределённость; если же на входе out 0, тогда никакого значения не будет передано на D, а если порт - совмещённый для чтения/записи, то будет разрешена запись.
- clr на южном крае (вход, разрядность равна 1)
- Очистка: когда на этом входе 1, все значения в памяти будут фиксированы на 0, вне зависимости от значений на других входах.
- Разрядность адреса
- Число адресных битов. Количество значений, хранящихся в ОЗУ равно 2Разрядность_адреса.
- Разрядность данных
- Разрядность каждого отдельного значения в памяти.
- Интерфейс данных
- Определяет, какой из трёх интерфейсов использовать для передачи данных в и из компонента.
Контакты
Атрибуты
Когда компонент выбран, или уже добавлен, клавиши от 0 до 9 меняют его атрибут Разрядность адреса
, а комбинации от Alt-0 до Alt-9 меняют его атрибут Разрядность данных
.
Поведение Инструмента Нажатие
См. Нажатие на память в Руководстве пользователя.
Поведение Инструмента Текст
Нет.
Поведение Инструмента Меню
См. Всплывающие меню и файлы в Руководстве пользователя.