2014-11-22 2 views
0

인터페이스 인스턴스가있는 최상위 파일이 있습니다. 이것은 내 최상위 파일에있는 코드입니다.인터페이스 포트는 실제 인터페이스를 전달해야합니다. 시스템 Verilog

LC3_io top_io; // LC3_io is the interface which is defined seperately in my interfaces file. 

LC3_test test(top_io); // Passing the interface to my testbench 

테스트는 제 LC3_test (Testbench)의 인스턴스입니다.

이제이 인터페이스를 Testbench로 전달하십시오. 나는 첫 번째 코드 줄이있는 별도의 테스트 벤치 파일을 가지고있다 :

program automatic LC3_test(LC3_io.TB top_io); 

나는 테스트 벤치에 다른 코드를 작성했다.

내가 테스트 벤치를 시뮬레이션하기 위해 노력하고 있어요 문제는 : 문제가 거짓말을 수있는 곳 이해가 안

**Fatal: (vsim-3695) DUT_Testing.sv(0) : The interface port 'top_io' must be passed an actual interface. 
FATAL ERROR while loading design. 

. vlog를 사용하여 필요한 모든 파일을 컴파일하고 vsim을 사용하여 테스트 벤치를 실행/시뮬레이트하려고합니다. 프로그램을 제거하고 대신 테스트 벤치 용 모듈을 사용하려고했지만 문제가 지속됩니다. 내가 여기서 누락 된 것이 있습니까? 감사합니다

+0

표준에 존재하는 경우에도 '프로그램'블록을 사용하지 않는 것이 좋습니다. –

+0

'LC3_io.TB'는 modport입니까? –

답변

1

유형이 일치하지 않는 것 같습니다. 프로그램 블록에 대해 LC3_io.TB 유형의 인수가 필요하지만 유형이 LC3_io 인 인터페이스로 전달 중입니다. 코드를 다음과 같이 변경해보십시오.

+0

고마워, 나는 문제를 해결했다. 나는 최상위 파일 대신에 testbench에서 시계를 생성하고 시계를 testbench와 DUT에 전달했다. 정말 늦은 답장을 드려서 죄송합니다. 그것은 인수에 modports 데 아무런 영향을 미치지 않는 것 같다. –

+0

@ MojoJojo58 일종의 도구 버그 같은 소리. 어쨌든 Modports 및 물건은 미지의 영역처럼 느낍니다. 그들은 종이에서 좋게 들리지만, 실제로 제대로 구현되지 못했던 때가 많습니다. –

관련 문제