문제

Verilog 기반 RTL 코드를 확인하는 작업이 할당되었습니다. 이제 Verilog를 사용하여 RTL TestBench를 코딩하는 것은 매우 어려운 것 같습니다. 그래서 나는 다음 중 하나를 시도하고 싶습니다. - RTL에 PLI 인터페이스를 제공하여 'C 함수 인터페이스를위한 시스템 사용'C 기능을 호출하십시오.

추신 : 이미 행동 모델을 테스트하는 데 사용 된 광범위한 'C 코드가 있습니다. 저는 하드웨어 프로그래밍의 세계를 처음 사용합니다. 모든 포인터는 크게 감사 할 것입니다.

도움이 되었습니까?

해결책

동작 모델을 테스트하는 데 사용 된 광범위한 C 코드가 이미 있다면 Verilog에서 해당 C 코드를 호출 할 수있는 PLI (또는 DPI) 인터페이스를 추가하는 것입니다.

SystemC는 기본적으로 HW를 모델링 할 수있는 많은 클래스가있는 C ++입니다. HW에 대해 테스트 할 수있는 C 모델이 이미 사용 가능한 작업에 대해 SystemC를 학습하면 어떻게 이익을 얻을 수 있는지 알 수 없습니다. SystemC 학습은 아마도 당신이하려는 일에 대해 과잉 일 것입니다.

참고로. 오늘날 업계에서 많이 사용되는 것을 배우고 싶다면 SystemVerilog를 배우는 것이 좋습니다. 요즘 SystemVerilog, 기본적으로 고급 소프트웨어 언어 기능이 내장 된 기본적으로 Verilog; "VMM"과 함께 "검증 방법론"(즉, 많은 라이브러리)은 하드웨어 검증 토지의 모든 분노 인 것 같습니다.

다른 팁

질문은 DUV (확인중인 장치) 또는 귀하가 보유한 C 코드를 모르면 대답하기가 쉽지 않습니다. 디자인을 자극하고 확인하는 수단이 필요합니다. 여기서는 핀 레벨로/트랜잭션 수준 (C 데이터 구조)에서/에서/transact로 변환해야 할 것입니다. SystemVerilog 인터페이스 또는 SystemC는 접근 일 수 있습니다. 아직 DPI/PLI 인터페이스를 사용하지 않았습니다.

"최첨단"테스트 벤치를 사용하려면 TestBench 방법 중 하나를 사용하는 것을 고려해야합니다. VMM 또는 OVM. 또한 시작 방법을 제공합니다.

단일 시스템에서 RTL 및 SystemC 코드를 결합하는 멘토 또는 케이던스 시뮬레이터와 같은 도구를 가져와야합니다. 확실히 자유롭지는 않지만 실제로 존재하는 해결책입니다.

구조적으로 올바른 솔루션은 C 또는 SystemC가 다른 방법이 아니라 RTL로 호출하는 것입니다. 이를 수행한다는 것은 일부 RTL 시뮬레이터를 C 프로그램 또는 SystemC 프로그램과 통합하는 것을 의미합니다. 확실히 가능하지만 꽤 큰 사업입니다.

또한 SystemVerilog를 사용하는 것은 많은 의미가 있다고 생각합니다.

검증을 위해 SystemC 및 System Verilog/VMM에 모두 사용했으며 답은 달라집니다. 제가 처음 ASIC을 문 밖으로 내놓으려고 노력하는 신생 예산에 있었을 때 SystemC는 저예산 시뮬레이터에서 실행되었고 System Verilog는 그렇지 않았기 때문에 자연스러운 선택이었습니다. SystemC를 사용하면 PLI 또는 DPI를 사용할 필요가 없습니다. 실제로 TestBench의 구성 요소로 SystemC 모델을 인스턴스화합니다. 흥미 롭습니다.

그러나 SystemC는 직관적 인 구문이없는 C ++ 라이브러리입니다. SystemC 라이브러리를 배우기 전에 괜찮은 C ++ 배경이 있어야합니다. 데이비드 블랙 (David Black)이 "처음부터의 시스템"을 제외하고는이 책이 대부분 빨라집니다.

Systemc는 내가 본 것에서 자연스럽게 검증 언어가 아닌 높은 수준의 모델링 언어이며 실제 시뮬레이터를 구매할 예산이있는 사람은 더 이상 검증을 위해 SystemC를 사용하지 않습니다. 일반적인 경력 개발 관점에서 볼 때 시스템 Verilog를 사용할 수 있다면 사용합니다. 또한 SV/VMM으로 작성된 생성기, 모니터 및 스코어 보드를 사용하는 출력 검사를 위해 항상 DPI를 사용하여 C 모델의 인터페이스를 사용 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top