Для моделей, содержащих операции чтения и операции записи для Блоков памяти Хранилища данных, можно сгенерировать код, который содержит одну переменную, чтобы содержать значение для каждой Операции чтения Хранилища данных и Операции записи. Генерация одной переменной для каждой операции улучшает когерентность доступа к данным.
Модель data_store_latching
содержит один Блок памяти Хранилища данных, к которому получают доступ две различной Памяти Хранилища данных Рид и два блока Записи Памяти Хранилища данных. Два блока Суммы выполняют сложение на входе, сгенерированном по условию блоки Стора Рида, и выводят данные к блокам Записи Хранилища данных.
При создавании модели с параметром Implement each data store block as a unique access point, выключенным по умолчанию, генерирует этот код:
void data_store_latching_step(void) { /* DataStoreWrite: '<Root>/Data Store Write' incorporates: * DataStoreRead: '<Root>/Data Store Read' * Sum: '<Root>/Add' */ data_store_latching_DW.A += data_store_latching_DW.A + data_store_latching_DW.A; /* DataStoreWrite: '<Root>/Data Store Write1' incorporates: * DataStoreRead: '<Root>/Data Store Read1' * Sum: '<Root>/Add1' */ data_store_latching_DW.A += data_store_latching_DW.A + data_store_latching_DW.A; }
data_store_latching_DW.A
. В диалоговом окне Configuration Parameters, на панели Interface, выбирают Implement каждый блок хранилища данных как уникальный параметр точки доступа. Нажмите Apply.
Сгенерированный код теперь:
void data_store_latching_step(void) { real_T rtb_DataStoreRead; real_T rtb_DataStoreRead1; /* DataStoreRead: '<Root>/Data Store Read' */ rtb_DataStoreRead = data_store_latching_DW.A; /* DataStoreWrite: '<Root>/Data Store Write' incorporates: * Sum: '<Root>/Add' */ data_store_latching_DW.A = (rtb_DataStoreRead + rtb_DataStoreRead) + rtb_DataStoreRead; /* DataStoreRead: '<Root>/Data Store Read1' */ rtb_DataStoreRead1 = data_store_latching_DW.A; /* DataStoreWrite: '<Root>/Data Store Write1' incorporates: * Sum: '<Root>/Add1' */ data_store_latching_DW.A = (rtb_DataStoreRead1 + rtb_DataStoreRead1) + rtb_DataStoreRead1; }
rtb_DataStoreRead
и rtb_DataStoreRead1
. Эти отдельные переменные улучшают когерентность доступа к данным.