Project

General

Profile

Actions

Task #5061

closed

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

Added by Alexander Kamkin over 10 years ago. Updated over 10 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
Actions #1

Updated by Mikhail Chupilko over 10 years ago

  • Status changed from New to Open

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

Actions #2

Updated by Alexander Kamkin over 10 years ago

final Assignment assignment = assignStatement.getAssignment();

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

Updated by Mikhail Chupilko over 10 years ago

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

Actions #4

Updated by Mikhail Chupilko over 10 years ago

  • Status changed from Open to Resolved

Сделано в r811

Actions #5

Updated by Alexander Kamkin over 10 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF