Project

General

Profile

Task #5061

[verilog][parser][cfg] Обработка конструкции непрерывного присваивания assign

Added by Alexander Kamkin about 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
Start date:
07/14/2014
Due date:
07/18/2014
% Done:

0%

Estimated time:
Detected in build:
svn
Published in build:

Description

Для записи assign x = expr(x1, x2, ..., xn) нужно создавать процесс:

always @(x1, x2, ..., xn)
  begin
    x <= expr(x1, x2, ..., xn);
  end

History

#1

Updated by Mikhail Chupilko about 5 years ago

  • Status changed from New to Open

Процесс отдельный создавался и создается. Есть технический вопрос по получению переменных из assignStatement.

#2

Updated by Alexander Kamkin about 5 years ago

final Assignment assignment = assignStatement.getAssignment();

// Множество переменных, входящих в правую часть присваивания.
final Set<NodeVariable> useVars = assignment.getUsedVariables();
// Множество переменных, входящих в левую часть присваивания.
final Set<NodeVaraible> defVars = assignment.getDefinedVariables();
#3

Updated by Mikhail Chupilko about 5 years ago

В методе getUsedVariables не учитывается, что значения, возвращаемые getMinExpression(), getTypExpression(), getMaxExpression() могут быть null и у них нельзя брать getVariables(). Соответственно, при вызове getUsedVariables падаем с nullPointerException. Сейчас использую получение переменных только у getMinExpression().

#4

Updated by Mikhail Chupilko almost 5 years ago

  • Status changed from Open to Resolved

Сделано в r811

#5

Updated by Alexander Kamkin almost 5 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF