2009-03-17 2 views
1

일부 Verilog 기반 RTL 코드를 확인하는 작업이 할당되었습니다. 이제 Verilog를 사용하여 RTL 테스트 벤치를 코딩하는 것은 (제게는) 매우 어려워 보입니다. 그래서 나는 다음 중 하나를 시도하고 싶다. 테스트에 사용 된 C 코드 : 일 - 'I 이미 광범위가 C 함수를테스트 벤치 용 Verilog 또는 SystemC

PS'를 인터페이싱 C를 - '사용 시스템 테스트 대한 C 함수'를 호출하여 RTL에 PLI 인터페이스를 제공하는 시도 행동 모델. 나는 하드웨어 프로그래밍의 세계에 새로운 있습니다. 모든 포인터 크게 감사하겠습니다.

답변

5

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

SystemC는 기본적으로 HW를 모델링 할 수있는 많은 클래스가있는 C++입니다. HW를 테스트 할 수있는 C 모델을 이미 가지고 있기 때문에 시도하고있는 작업에 대해 SystemC를 배우면 어떤 이점이 있는지 알 수 없습니다. 시스템 C를 배우는 것은 당신이하려고하는 것에 대해 과잉 공격 일 것입니다.

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

+0

좋은 설명에 감사드립니다. 나는 또한 시스템 -c가 과도하다는 것을 알아 냈고, Verilog 코드를 'C'와 인터페이싱하기 위해 DPI 계층을 구현했다. 가장 좋은 점은 "IT가 작동합니다"입니다. 다시 한번 감사드립니다. – Alphaneo

4

귀하의 DUV (검증중인 장치) 또는 C 코드를 모르면 질문에 대답하기가 쉽지 않습니다. 설계를 자극하고 확인하는 방법이 필요합니다. 여기서 트랜잭션 레벨 (C 데이터 구조)에서 핀 레벨로 /에서 변환해야합니다. SystemVerilog 인터페이스 또는 SystemC가 접근 방식 일 수 있습니다. 아직 DPI/PLI 인터페이스를 사용하지 않았습니다.

"최첨단"테스트 벤치를 사용하려면 테스트 벤치 방법론 중 하나 인 VMM 또는 OVM을 사용해야합니다. 그들은 또한 시작하는 방법에 대한 문서를 제공 할 것입니다.

0

단일 시스템에서 RTL과 SystemC 코드를 결합한 Mentor 's 또는 Cadence의 시뮬레이터와 같은 도구를 사용해야합니다. 자유롭지는 않지만, 실제로 존재하는 해결책입니다.

구조적으로 올바른 솔루션은 C 또는 SystemC가 다른 방식으로 RTL을 호출하는 것입니다. 이것은 RTL 시뮬레이터와 C 프로그램 또는 SystemC 프로그램을 통합하는 것을 의미합니다. 그것은 확실히 할 수 있지만 꽤 큰 일입니다.

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

0

저는 시스템 C와 시스템 Verilog/VMM을 검증에 사용했습니다. 대답은 다릅니다. 첫 번째 ASIC을 발굴하려는 신생 기업과 함께했을 때, SystemC는 저비용 시뮬레이터에서 실행되었고 SystemVerilog는 그렇지 않았기 때문에 자연스러운 선택이었습니다. SystemC를 사용하면 PLI 또는 DPI를 사용할 필요가 없습니다. 실제로 SystemC 모델을 테스트 벤치의 구성 요소로 인스턴스화하면 흥미 롭습니다.

그러나 SystemC는 매우 직관적 인 구문이없는 C++ 라이브러리입니다. SystemC 라이브러리를 배우기 전에 괜찮은 C++ 배경을 가지고 있어야합니다. 데이빗 블랙 (David Black)이 제작 한 "SystemC from the Ground Up"을 제외하고는 대부분이 책을 읽을 수 있습니다.

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