2016-08-27 2 views
0

Verilog 사양을 읽는 동안 경로 펄스를 지정하는 독특한 구문 구조가 있음을 발견했습니다. 구체적으로, 사양에 따르면, 폼

PATHPULSE$in_port$out_port = ...; 

의 문, in_portout_port 중 하나는 [] -bracketed 범위 또는 식별자 (\ -escaped 식별자 포함)를 식별 할 수있다.

PATHPULSE 구성을 대괄호로 토큰 화하는 문제를 무시하면 $이 일반 식별자의 일부가 될 수 있기 때문에 잠재적 인 모호성 문제가있는 것으로 보입니다. 그런 다음 경로 펄스 문을 주어진

module my_mod(
    input foo, 
    output bar$baz, 
    input foo$bar, 
    output baz 
); 
... 

: 같은 예를 들어, 모듈은 선언

PATHPULSE$foo$bar$baz = ...; 

$는 입력 및 출력 포트를 분리 결정하는 방법은 없습니다.

제 질문은 :이 모호성을 피하기 위해 PATHPULSE 구조를 토큰 화하는 더 좋은 방법이 있습니까? 아니면 Verilog의 부족한 점입니까?

+0

경로에 지연을 지정하는 지정 블록이 있습니까? 아마도 '지정'블록에 대해 [here] (https://www.hdlworks.com/hdl_corner/verilog_ref/items/Specify.htm)를 참조 할 수 있습니다. – sharvil111

답변

1

이것은 PATHPULSE 구문의 알려진 부족입니다. https://accellera.mantishub.io/view.php?id=1050을 참조하십시오. 식별자에서 $를 사용하지 않는 것이 가장 좋습니다.

이스케이프 된 식별자는 항상 공백으로 끝나기 때문에 문제가되지 않습니다.