Task #5061
closed
[verilog][parser][cfg] Обработка конструкции непрерывного присваивания assign
Added by Alexander Kamkin over 10 years ago.
Updated over 10 years ago.
Description
Для записи assign x = expr(x1, x2, ..., xn)
нужно создавать процесс:
always @(x1, x2, ..., xn)
begin
x <= expr(x1, x2, ..., xn);
end
- Status changed from New to Open
Процесс отдельный создавался и создается. Есть технический вопрос по получению переменных из assignStatement.
final Assignment assignment = assignStatement.getAssignment();
// Множество переменных, входящих в правую часть присваивания.
final Set<NodeVariable> useVars = assignment.getUsedVariables();
// Множество переменных, входящих в левую часть присваивания.
final Set<NodeVaraible> defVars = assignment.getDefinedVariables();
В методе getUsedVariables не учитывается, что значения, возвращаемые getMinExpression(), getTypExpression(), getMaxExpression() могут быть null и у них нельзя брать getVariables(). Соответственно, при вызове getUsedVariables падаем с nullPointerException. Сейчас использую получение переменных только у getMinExpression().
- Status changed from Open to Resolved
- Status changed from Resolved to Closed
Also available in: Atom
PDF