구성 공간 레지스터 액세스 타이밍에 대한 UG-01145_avst 2017.05.15 - 6.12.1의 잘못된 참조 코드로 인해 인텔® Arria® 10 및 인텔® Cyclone® 10 PCIe* 트랜잭션 레이어 구성 공간 액세스가 안정되지 않습니다. tl_cfg_* 인터페이스에는 다중 사이클 제약 조건이 적용되지만 코드가 일치하지 않기 때문입니다.
코드는 다음과 같습니다.
항상 @(포즈 coreclkout_hip)
시작
주소 변경 감지
cfg_addr_reg[3:0] <= tl_cfg_add[3:0];
cfgctl_addr_change <= cfg_addr_reg[3:0] != tl_cfg_add[3:0];
...
끝
이 문제를 해결하려면 참조 코드를 UG-01145_avst | 업그레이드하십시오. 2019.05.22 - 구성 공간 레지스터 액세스 타이밍에 대한 5.12.1.
멀티 사이클 타이밍 위험을 방지하기 위해 파이프라인이 한 개 더 추가됩니다.
코드는 다음과 같습니다.
항상 @(포즈 coreclkout_hip)
시작
tl_cfg_add_reg <= tl_cfg_add[0];
tl_cfg_add_reg2 <= tl_cfg_add_reg;
끝
주소 변경을 감지하여 입력32비트 데이터를 샘플링하기 위해 스트로브를 생성합니다.
항상 @(포즈 coreclkout_hip)
시작
cfgctl_addr_change <= tl_cfg_add_reg2 != tl_cfg_add_reg;
cfgctl_addr_change2 <= cfgctl_addr_change;
cfgctl_addr_strobe <= cfgctl_addr_change2;
끝