Project

General

Profile

Actions

Task #5002

closed

Тип переменной в блоке условия процесса

Added by Mikhail Chupilko over 10 years ago. Updated over 10 years ago.

Status:
Closed
Priority:
Normal
Target version:
Start date:
06/20/2014
Due date:
% Done:

0%

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

Description

Когда в методе onDelayedStatementBegin прочитываем тип переменной из event.getExpression().getVariable(), полученной из node.getEventControl().getEvents(), то он оказывается unknown.
(там прочитывается условие на процесс, например "posedge rst"). Предлагаю сразу указывать корректный тип. Или он не указывается, т.к. под переменной, участвующей в блоке условия, может скрываться целое выражение и тип, соответственно, заранее не известен?

Actions #1

Updated by Alexander Kamkin over 10 years ago

Не все понял. В выражении не обязательно переменная: может быть, если не ошибаюсь, конкатенация (см. стандарт).

Actions #2

Updated by Mikhail Chupilko over 10 years ago

Собственно, рассматривались конструкции следующего типа: "always (posedge rst)" - вот у этого rst как раз и не будет определен тип. Насколько я понимаю, конструкция срез_сигнала+переменная имеет тип "Event" и конкатенацию выражений под срезом_сигнала не используют (что-то вроде "always (posedge {rst,clk})" в стандарте не встречал)

Actions #3

Updated by Alexander Kamkin over 10 years ago

  • Target version set to 0.1
  • Синтаксически после posedge может быть любое выражение (не обязательно переменная), поэтому некорректно делать вызов event.getExpression().getVariable() - см. раздел "Event control":
event_control ::=
  ...
  | @(event_expression)
  ...

event_expression ::=
  ...
  | posedge expression
  ...
  • Если я не ошибаюсь, сейчас у всех переменных в AST тип не определен - так как нет привязки переменных к декларациям.

Для чего нужен тип?

Actions #4

Updated by Mikhail Chupilko over 10 years ago

  • Status changed from New to Resolved
  • Assignee changed from Alexander Kamkin to Mikhail Chupilko

Теперь вместо getVariable используется getVariables. А тип больше не нужен - он указывается при декларации переменной. r815

Actions #5

Updated by Alexander Kamkin over 10 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF