VHDL TestBench’i
- FİGES AŞ
- MATLAB&Simulink
- Probleminizi Nasıl Çözeceğinizi Keşfedin
- VHDL TestBench’i
VHDL TestBench Nedir?
Bir mantık tasarımına uyarıcı tanımlamak ve tasarımın çıktılarının spesifikasyona uyup uymadığını kontrol etmek için bir VHDL® test benchi kullanılır. FPGA’lar ve ASIC’ler için yeni algoritma modelleri geliştirmek üzere MATLAB® ve Simulink® kullanan mühendisler, genellikle bu ortamlarda da sistem test benchleri oluşturur. Kayıt aktarım düzeyi (RTL) VHDL kodu yazdıklarında, sistem test benchlerine dayalı VHDL test bençleri üretmek isteyebilirler.
MATLAB veya Simulink kullanıcıları, VHDL test benchlerini manuel olarak kodlamadan HDL algoritma gerçekleştirmelerinin doğru olduğunu test etmek için birkaç seçeneğe sahiptir.
HDL Kosimülasyonu Kullanarak Doğrulama
Bir VHDL test benchi yazmak yerine, tasarımınızı test altında (DUT) doğrulamak için bir HDL simülatörü ile birlikte MATLAB ve Simulink test benchlerini kullanabilirsiniz. HDL Verifier™ bu ortak simülasyon sürecini otomatik hale getirir. MATLAB veya Simulink test benchi, HDL simülatörünün çıktı değerlerini bir doğruluk modelinden beklenen değerlerle karşılaştırır ve “hatalı karşılaştırmaları” bildirir.
FPGA-in-the-Loop Testini Kullanarak Doğrulama
MATLAB ve Simulink test benchleri, FPGA-in-the-loop simülasyonu aracılığıyla bir AMD® , Intel® veya Microchip FPGA geliştirme kartına programlanmış DUT’larla da kullanabilirsiniz. HDL’yi sentezleme, yer ve rota çalıştırma, bir programlama dosyası oluşturma, dosyayı geliştirme panosuna yükleme ve MATLAB veya Simulink oturumu ile pano arasındaki iletişimi kurma sürecini otomatikleştirmek için HDL Verifier’ı FPGA sağlayıcı araçlarıyla birlikte kullanabilirsiniz. FPGA-in-the-loop ile, MATLAB veya Simulink bu amaca hizmet ettiğinden, bir VHDL test ortamı oluşturmaya gerek yoktur.
SystemVerilog DPI Test benchi Kullanarak Doğrulama
VHDL testbench kullanmaya alternatif bir diğer yöntem, doğrulama bileşenlerini FPGA ve ASIC doğrulaması için HDL simülatörlerine aktarmaktır. Verilog’un test bench geliştirme için kullanılan bir uzantısı olan SystemVerilog, tüm popüler HDL simülatörleri tarafından desteklenir. SystemVerilog Doğrudan Programlama Arayüzü (DPI) ile, C/C++ kodunu Synopsys® VCS®, Cadence Xcelium™, Xilinx Vivado®, Siemens EDA ModelSim® veya Questa® ve Xilinx® Vivado® Simulator gibi simülatörlerle entegre edebilirsiniz. HDL Verifier’ı MATLAB Coder™ veya Simulink Coder™ ile birlikte kullanarak, ürünleri doğrulamak için SystemVerilog DPI test benchleri oluşturabilirsiniz.
HDL Verifier, SystemVerilog DPI test benchlerini iki farklı biçimde oluşturur:
• Bileşen test benchi: DPI bileşeni olarak kullanmak üzere bir Simulink alt sisteminden C kodu oluşturarak bir SystemVerilog test benchi oluşturabilirsiniz. Test bench oluşturulan DPI bileşenini Simulink modelinizden veri vektörlerine göre doğrular. (Bkz. SystemVerilog DPI Bileşeni Oluşturma.)
• HDL code test bench’: HDL Coder kullanarak bir Simulink alt sisteminden HDL kodu oluşturursanız, bir SystemVerilog test benchi oluşturabilirsiniz. Bu test benchi, HDL Coder tarafından üretilen HDL uygulamasının çıktısını Simulink modelinin sonuçlarıyla karşılaştırır. (Bkz. SystemVerilog DPI Test benchi Kullanarak HDL Tasarımını Doğrulama.)
Oluşturulan HDL’nin bir VHDL Test Bench’i kullanılarak doğrulanması
HDL oluşturmak için HDL Coder kullandığınızda, bir alt sistem için bir VHDL test benchi oluşturabilirsiniz. HDL Coder, DUT’unuz için girdi vektörlerini ve beklenen çıktı verilerini yakalamak için Simulink’te bir simülasyon çalıştırarak bir VHDL test benchi oluşturur. HDL Coder, MATLAB® veya Simulink simülasyonunuzdan DUT uyaranını ve referans verilerini veri dosyalarına (.dat) çıkarır.
HDL simülasyonu sırasında HDL test benchi, kaydedilen uyaranı .dat dosyalarından okur. Test benchi, gerçek DUT çıktısını beklenen çıktıyla karşılaştırır.
Örnekler ve Nasıl Yapılır?
HDL Kosimülasyonu
FPGA-in-the-Loop Simülasyonu
SystemVerilog DPI Test benchi
• UVM Bileşen Üretimine Genel Bakış – Belgeleme
• Simulink’ten Parametreli UVM Test benchi oluşturun – Örnek
• UVM Test benchi Davranışsal DUT’u AXI Tabanlı RTL DUT ile değiştirin – Örnek
• UVM Test benchinde Dizilere Rastgele Kısıtlamalar Ekleme – Örnek
• UVM Test benchinde Scoreboard Parametrelerini Değiştirme – Örnek