Simple Dual Port RAM System
Простая двухпортовая оперативная память, поддерживающая одновременные операции чтения и записи.
Тип: SimpleDualPortRAMSystem
Путь в библиотеке:
|
Описание
Блок Simple Dual Port RAM System моделирует простую двухпортовую оперативную память (random access memory, RAM), которая поддерживает одновременные операции чтения и записи. Чтобы настроить этот блок, откройте его и установите значение для параметра Specify the type of RAM:
-
Single port— моделирует RAM, которая выполняет либо операцию чтения, либо операцию записи, в зависимости от сигнала на порту wr_en: при значении1происходит запись, при значении0— чтение. При записи доступно два режима, в зависимости от значения параметра Specify the output data for a write operation:-
Old data— выполняется вывод на выходной порт предыдущих данных, вместо которых были записаны новые данные; -
New data— выполняется повторение на выход данных со входа.
-
-
Simple dual port— моделирует RAM с поддержкой одновременных операций чтения и записи. Чтение осуществляется постоянно, запись — только по разрешающему сигналу на порту wr_en. В том случае, если чтение и запись происходят по одному адресу, операция чтения происходит перед операцией записи. На выход всегда поступает результат операции чтения. -
Dual port— моделирует RAM с поддержкой одновременных операций чтения и записи. Ключевым отличием от предыдущего режима является наличие двух выходных портов. На один всегда поступает результат операции чтения, на второй — результат операции записи. В зависимости от выбранного значения параметра Specify the output data for a write operation (New dataилиOld data) результатом операции служат либо новые данные, записанные по адресу, либо данные, которые хранились по адресу до операции записи. Запись новых данных осуществляется только по разрешающему сигналу на порту wr_en. Если операции чтения и записи осуществляются по одному адресу, то операция чтения идет до операции записи.
Ограничения
-
Адрес оперативной памяти может иметь тип данных с фиксированной точкой или целочисленный тип, должен быть беззнаковым и иметь длину от
2до31бит.
Порты
Выход
#
rd_dout
—
вывод данных с адреса для чтения
скаляр | вектор
Details
Вывод данных с адреса для чтения rd_addr.
Зависимости
Чтобы использовать это порт, установите для параметра Specify the type of RAM значение Simple dual port или Dual port.
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
dout
—
вывод данных с адреса чтения
скаляр | вектор
Details
Вывод данных с адреса чтения addr.
Зависимости
Чтобы использовать это порт, установите для параметра Specify the type of RAM значение Single port.
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
wr_dout
—
вывод данных с адреса для записи
скаляр | вектор
Details
Вывод данных с адреса для записи wr_addr.
Зависимости
Чтобы использовать это порт, установите для параметра Specify the type of RAM значение Simple dual port или Dual port.
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
Вход
#
din
—
данные для записи
скаляр | вектор
Details
Данные для записи, заданные в виде скаляра или вектора. Вы можете записать данные в ячейку оперативной памяти, если сигнал разрешения записи на порту wr_en имеет значение 1.
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
wr_addr
—
адрес для записи
скаляр | вектор
Details
Адрес для записи, заданный в виде скаляра или вектора. Используйте этот адрес для записи в оперативную память, когда сигнал на порту wr_en равен 1.
Зависимости
Чтобы использовать это порт, установите для параметра Specify the type of RAM значение Simple dual port или Dual port.
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
wr_en
—
разрешение записи
скаляр | вектор
Details
Разрешение записи, заданное в виде скаляра или вектора. Когда сигнал на порту wr_en равен 1, блок записывает данные в указанную ячейку памяти. В режиме Single port, когда сигнал на порту wr_en равен 0, блок считывает значение из ячейки памяти, указанной портом addr. В остальных режимах операция чтения происходит вне зависимости от сигнал на порту wr_en.
| Чтобы использовать метод записи в столбец, тип данных должен быть целым или с фиксированной точкой. |
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
rd_addr
—
адрес для чтения
скаляр | вектор
Details
Адрес для чтения, заданный в виде скаляра или вектора. Используйте этот адрес для чтения из оперативной памяти. Это значение может иметь тип данных с фиксированной точкой или целочисленный тип, должен быть беззнаковым и иметь длину от 2 до 31 бит.
Зависимости
Чтобы использовать это порт, установите для параметра Specify the type of RAM значение Simple dual port или Dual port.
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
addr
—
адрес для чтения или для записи
скаляр | вектор
Details
Адрес для чтения или для записи в зависимости от сигнала на порту wr_en: при значении 1 происходит запись, при значении 0 — чтение.
Зависимости
Чтобы использовать это порт, установите для параметра Specify the type of RAM значение Single port.
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
Параметры
Основные
#
Specify the type of RAM —
тип RAM
Single port | Simple dual port | Dual port
Details
Тип RAM:
-
Single port— однопортовая RAM, которая выполняет либо операцию чтения, либо операцию записи, в зависимости от сигнала на порту wr_en: при значении1происходит запись, при значении0— чтение. На выход поступают данные с адреса чтения addr. -
Simple dual port— простая двухпортовая RAM с данными для записи, адресом записи, разрешением записи и адресом чтения в качестве входов и данными из адреса чтения в качестве выхода. -
Dual port— истинная двухпортовая RAM с данными записиaиb, адресами записи и чтения дляaиb, разрешением записиaиbв качестве входов и данными с адресов записиaиbв качестве выходов.
| Значения |
|
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Нет |
#
Specify the output data for a write operation —
выходные данные для операции записи
New data | Old data
Details
Укажите выходные данные для операции записи:
-
Old data— выполняется вывод на выходной порт предыдущих данных, вместо которых были записаны новые данные; -
New data— выполняется повторение на выход данных со входа.
Зависимости
Чтобы использовать этот параметр, установите для параметра Specify the type of RAM значение Single port или Dual port.
| Значения |
|
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Нет |
# Specify the RAM initial value — начальные выходные данные симуляции RAM
Details
Укажите начальные выходные данные симуляции RAM:
-
Скалярное значение.
-
Вектор, элементы которого соответствуют начальным значениям и словам RAM.
-
Матрица на , элементы которой соответствуют начальным значениям и словам RAM в банках RAM, где представляет собой количество банков оперативной памяти, а представляет собой количество адресных мест в блоке оперативной памяти, или наоборот.
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Да |
Подробнее
Использование метода записи в столбец для выборочной записи в столбцы
Details
Вы можете использовать метод записи в столбец, чтобы рассматривать оперативную память как набор одинаковых по размеру столбцов. Во время цикла записи вы можете записывать в каждый из этих столбцов по отдельности. Тип данных и значение входа разрешения записи, а также тип данных входа данных записи определяют размер каждого столбца и столбцы, в которые блок записывает адресуемую ячейку памяти.
В данном контексте:
-
— тип данных входного сигнала данных записи din.
-
— ширина входных данных, которая равна длине слова значения din.
-
— тип данных сигнала разрешения записи wr_en. Этот сигнал определяет, какие столбцы блок записывает в адресуемую ячейку памяти. Блок записывает столбцы, основываясь на положении
1sв двоичном представлении значения wr_en. -
— количество столбцов, на которые можно разделить пространство оперативной памяти для записи данных, равное длине слова значения wr_en.
-
— ширина каждого столбца, которая равна .
В таблице приведена взаимосвязь между типами данных входа данных записи, типами данных входа разрешения записи, количеством столбцов и шириной каждого столбца.
| в битах | ||||
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Например, если — это UInt16, а — это Ufix4, то равно 16, равно 4, и равно 4 битам. Если на вход din подается 980, то его двоичное представление равно 0000001111010100. Представление din по столбцам: c4 = 0000, c3 = 0011, c2 = 1101, и c1 = 0100, где c1 — первый столбец.
В таблице приведены результаты использования метода записи в столбец для различных комбинаций входных данных.
| Значение wr_en | Двоичное представление wr_en | Столбцы, выбранные для записи в RAM | Данные в ячейке памяти: перед выполнением операции записи | Данные в ячейке памяти: после выполнения операции записи | dout |
|---|---|---|---|---|---|
|
|
c2, c1 |
c4= |
c4= |
|
|
|
c3 |
c4= |
c4= |
|
|
|
c3, c2 |
c4= |
c4= |
|
|
|
c4, c1 |
c4= |
c4= |
|
|
|
c4, c1 |
c4= |
c4= |
|
Ограничения
-
Входы со знаковыми типами данных и с ненулевыми длинами дробей не поддерживаются входным портом разрешения записи.
-
Длина слова входных данных для записи должна быть кратна длине слова разрешения записи.