Task #4466
closed[vhdl][parser][cfg] преобразование IGSequentialWait
100%
Description
Каждый объект IGSequentialWait, соответствующий wait-конструкции языка VHDL, должен быть преобразован в отдельный Process по следующему "алгоритму":
1) CFG процесса, в котором обнаружена wait-конструкция, должен быть дополнен инструкцией вида "x=1";
2) Создается новый Process, SensitivityList которого содержит Event из условия, заданного в wait-конструкции;
3) Проводится корректное "расщепление" оставшейся части кода процесса. При этом особое внимание нужно уделять циклам и внешним условным операторам. Возможно дублирование кода.
В самом простом случае весь оставшийся код помещается в CFG нового процесса.
Updated by Sergey Smolov about 11 years ago
Вместо пп.1-2 вводится причинно-следственная связь между процессами. Каждый процесс содержит указатель execAfter на процесс, исполнение которого должно быть завершено перед началом исполнения данного.
В случае нахождения wait-конструкции в одной из ветвей B1 условного блока исходный процесс P расщепляется на три процесса: P1, P2, P3. P1 содержит часть ветви B1 ДО wait-конструкции, P2 - часть ветви B1 ПОСЛЕ wait-конструкции, P3 - остальную часть кода P. При этом должны быть корректно модифицированы условия для оставшихся ветвей условного блока, а также создано условие guard для P1.
Updated by Alexander Kamkin over 10 years ago
- Subject changed from преобразование IGSequentialWait to [vhdl][translator] преобразование IGSequentialWait
- Target version set to 0.1
Updated by Alexander Kamkin over 10 years ago
- Subject changed from [vhdl][translator] преобразование IGSequentialWait to [vhdl][parser] преобразование IGSequentialWait
Updated by Alexander Kamkin over 10 years ago
- Subject changed from [vhdl][parser] преобразование IGSequentialWait to [vhdl][parser][cfg] преобразование IGSequentialWait
Updated by Sergey Smolov about 10 years ago
- Target version changed from 0.1 to 0.2
Задача связана с #5173
Updated by Sergey Smolov over 9 years ago
- Status changed from Open to Resolved
- % Done changed from 0 to 100
CfgWaitBackend реализован (r1642).
Updated by Sergey Smolov over 9 years ago
- Status changed from Resolved to Verified
Updated by Sergey Smolov over 9 years ago
- Status changed from Verified to Closed
- Published in build set to 20150307