######### ОЗУ

Библиотека: Память
Введён в: 2.0 Beta 1
Внешний вид:
Evolution Classic
Внешний вид ОЗУ (Logisim-evolution)   Внешний вид ОЗУ (Classic Logisim)

Поведение

Компонент ОЗУ, бесспорно самый сложный компонент встроенной библиотеки Logisim, хранит до 16777216 значений (это задаётся в атрибуте Разрядность адреса), каждое из которых может включать до 32 битов (задаётся в атрибуте Разрядность данных). Схема может считывать и записывать значения в ОЗУ. Кроме того, пользователь может интерактивно изменять отдельные значения с помощью Инструмента «Нажатие», или менять всё содержимое через Инструмент «Меню».

Текущие значения отображаются в компоненте. Их адреса перечислены серым слева от области отображения. Значения внутри представлены в шестнадцатеричном виде. Значение выбранного в данный момент адреса будет отображаться негативным текстом (белым по чёрному).

Компонент ОЗУ поддерживает три интерфейса, в зависимости от значения атрибута Интерфейс данных.

Один синхронный порт чтения/записи (по умолчанию)

Компонент имеет один порт на правой стороне, который служит для чтения и записи данных. Что он осуществляет, зависит от значения на входе, отмеченном ld: 1 (или высокоимпедансное состояние Z) означает чтение данных по адресу, поданному на левую сторону компонента, а 0 означает запись данных, поступивших на порт. Для передачи данных в компонент и из него, вам нужно использовать компонент Управляемый буфер, как показано ниже.

Один асинхронный порт чтения/записи

Это тоже самое, что и выше, но в данном варианте нет тактового входа. Значение, поступившее на шину данных, записывается в память, когда значение на входе ld - 0. Если адрес или данные меняются, пока значение на входе ld 0, то происходит дополнительная операция записи. Этот вариант более приближен к интерфейсу многих доступных типов памяти с произвольным доступом.

Раздельные порты чтения и записи

Предоставляются два порта данных - один на левой стороне для записи данных, и другой на правой стороне для чтения данных. Этот вариант устраняет необходимость Управляемого буфера, так что он проще в использовании.

Контакты

A на левой стороне (вход, разрядность соответствует атрибуту Разрядность адреса)
Выбирает, к какому значению в памяти схема в данный момент получает доступ.
D на левой стороне (вход, разрядность соответствует атрибуту Разрядность данных)
Этот вход представлен, только если "Раздельные порты чтения и записи" выбрано для атрибута Интерфейс данных. Когда запрошена запись (через изменение значения на тактовом входе с 0 на 1, пока на входах sel и str 1 или высокоимпедансное состояние (Z)), значение, поданное на этот порт, записывается в память по выбранному в данный момент адресу.
D на правой стороне (вход/выход или выход, разрядность соответствует атрибуту Разрядность данных)
Если на входах sel и ld 1 или высокоимпедансное состояние (Z), то компонент ОЗУ выдаёт на этот порт значение по выбранному в данный момент адресу. Если представлен один порт чтения/записи, то когда запрошена запись, значение, считанное по этому порту, записывается в память.
str на нижней стороне (вход, разрядность равна 1)
Запись: этот вход представлен, только если "Раздельные порты чтения и записи" выбрано для атрибута Интерфейс данных. Когда на нём 1 или высокоимпедансное состояние (Z), тактовый импульс приведёт к записи в память данных, полученных на левой стороне (при условии, что на входе sel тоже 1 или высокоимпедансное состояние (Z)).
sel на нижней стороне (вход, разрядность равна 1)
Выбор кристалла: этот вход включает или выключает весь модуль ОЗУ, в зависимости от того, 1/высокоимпедансное состояние (Z) на нём, или 0. Этот вход предназначен в первую очередь для ситуаций, когда у вас есть несколько модулей памяти, только один из которых может быть включен в какой-то момент.
треугольник на нижней стороне (вход, разрядность равна 1)
Тактовый вход: отсутствует, если значение атрибута Интерфейс данных - "Один асинхронный порт чтения/записи". В других случаях, когда на входе ld 0, и значение на нём меняется с 0 на 1 (и ещё на входе sel 1/неинициализированное значение (U) и на входе clr 0), значение по выбранному в данный момент адресу меняется на значение на контакте D. Но пока на тактовом входе сохраняется 0 или 1, значение входа D не будет записано в память.
ld на нижней стороне (вход, разрядность равна 1)
Чтение: выбирает, должно ли ОЗУ выдавать (на выход D) значение по текущему адресу. Такое поведение выхода разрешено, если на входе out 1 или неопределённость; если же на входе out 0, тогда никакого значения не будет передано на D, а если порт - совмещённый для чтения/записи, то будет разрешена запись.
clr на нижней стороне (вход, разрядность равна 1)
Очистка: когда на этом входе 1, все значения в памяти будут фиксированы на 0, вне зависимости от значений на других входах.

Атрибуты

Когда компонент выбран, или уже добавлен, клавиши от 0 до 9 меняют его атрибут Разрядность адреса, а комбинации от Alt-0 до Alt-9 меняют его атрибут Разрядность данных.

Разрядность адреса
Число адресных битов. Количество значений, хранящихся в ОЗУ равно 2Разрядность_адреса.
Разрядность данных
Разрядность каждого отдельного значения в памяти.
Интерфейс данных
Определяет, какой из трёх интерфейсов использовать для передачи данных в и из компонента.

Поведение Инструмента «Нажатие»

См. Редактирование содержимого памяти в Руководстве пользователя.

Поведение Инструмента «Меню»

См. Всплывающие меню и файлы в Руководстве пользователя.

Назад к Справке по библиотеке