중첩된 모듈 세트에 와이어 할당
-
24-09-2019 - |
문제
나는 약 4레벨 깊이의 와이어를 가지고 있으며 그것을 계층 구조 위로 전파해야 하는 번거로움을 정말로 원하지 않습니다.일종의 참조를 사용하여 와이어를 할당할 수 있는 방법이 있습니까?다음을 입력하여 전선에 접근할 수 있다는 것을 알고 있습니다.
cca.cpu0.cca3_cpu.nc1_cp_checkpoint
하지만
assign cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
작동하지 않습니다
누구든지 그것을 할 수 있는 방법을 알고 있나요?
해결책
다른 사람이 문제를 재현할 수 있을 만큼 충분한 코드를 표시하지 않았고 문제에 대한 세부 정보도 공개하지 않았으므로 우리가 할 수 있는 일은 추측뿐입니다.
내 추측은 nc1_cp_checkpoint
로 선언됩니다. reg
너의 안에 cca3_cpu
사례.값을 할당할 수 없습니다. reg
연속 할당을 사용합니다.절차적 할당을 사용해 보십시오( initial
또는 always
블록) 예를 들면 다음과 같습니다.
initial begin
cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
end
그래도 문제가 해결되지 않으면 다음을 수행하세요.
- 자세히보기 관련 있는 암호
- "작동하지 않음"에 대해 자세히 설명합니다.오류 메시지가 있으면 표시하세요.
업데이트:다음과 같은 경우 또 다른 잠재적인 문제가 발생합니다. nc1_cp_checkpoint
지속적으로 구동되는 것입니다 wire
너의 안에 cca3_cpu
사례.그렇다면 당신의 두 번째 assign
경합이 발생하여 값을 알 수 없게 될 수 있습니다(x
).다음을 사용하면 해당 문제를 피할 수 있습니다. force
그리고 release
.
다른 팁
From your tag, you seem to be indicating that you're using VCS. Are you getting a:
Error-[XMRE] Cross-module reference resolution error
Cross module resolution failed, token BLAH'.
Originating module 'foo'. "foo.v", 666:
That would indicate that your path isn't correct.
Cross-module references do work, but they may not be enabled if you're constraining your design to synthesizable constructs. Look up "cross-module reference" in the VCS user guide.