16
FPGA Eğitim Programı / Programlanabilir Devreler Programlanabilir Devreler Testbench & Simülasyon

Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Programlanabilir Devreler

Testbench & Simülasyon

Page 2: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

İçerik

Tasarlamış olduğumuz sayısal sistemlerin fonksiyonel olarak istenildiği gibi gerçekleştirdiğini doğrulamak gerekir.

Verilog ve VHDL gibi donanım tanımlama dilleri (HDL) donanım tasarımında kullanıldığı gibi, test aşamasında da kullanılabilmektedir.

Bu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog testbech ile ModelSim ile simulasyonunu ve doğrulanmasını gösterecektir.

Page 3: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Testbench & Simulasyon

Sayısal devre simulasyonu ile tasarlamış olduğumuz sayısal sistemin ve bunun alt modüllerinin gerçeklendiğinde çalışması hakkında bilgi edinilir.

Bu simülasyon ile tasarlanmak istenen sistem bilinen girişler ile test edilerek beklenen sonuçlar elde edildiği doğrulanır.

Test edilen modül DUT(Device Under Test) olarak adlandırılır.

Testbench, test girişleri ve DUT içeren ve simulasyon sonuçlarını programsal olarak değerlendirmemize yardımcı bir modüldür.

Tüm tasarlanan sistem için testbench oluşturulabileceği gibi kullanılan her bir modülün testi için testbench’ler de oluşturulabilir.

Page 4: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Akış

Page 5: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Quartus II & ModelSim-Altera Ayarları

ModelSim-Altera Starter Ed. Kurulur.

Quartus’a ModelSim bağlantı ayarları yapılır.

Tools > Options > EDA Tool Options

Eda Tool: «ModelSim-Altera» için kurulum klasörü seçilir.

Ör: C:\altera\11.0\modelsim_ase\win32aloem

Page 6: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Quartus II ile Verilog Testbench oluşturma

Proje açılır.

Assignments > Settings > EDA Tool Settings > Simulation

Tool Name: «ModelSim-Altera» olarak seçilir.

EDA NetList writer Settings > Format for output netlist : «Verilog» seçilir

Processing > Start > Start Test Bench Template Writer

Mesajlarda «proje_adi».vt adında bir verilog testbench dosyası hazırlandığı belirtilir.

File > Open , Dosya Türü olarak «Test Bench Output Files» seçip. Testbench dosyasını proje klasörü içindeki «simulation\modelsim» klasöründen açabiliriz.

Page 7: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

TestBench

Page 8: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Verilog Testbench

Verilog testbench’in ilk satırı olarak simulasyonda gecikmelerin zaman birimi ve yuvarlama miktarı belirtilir.

Ör:

`timescale 1 ns/ 100 ps

# 10 , 10 ns gecikmeye neden olur.

Simulasyonda zaman hesaplamaları 100ps(0.1ns) detaylı olarak yapılır.

Page 9: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Verilog Testbench

Verilog testbench ana modülü input veya output portları yoktur.

Testbench ile DUT/test edilecek modülü içerir ve bu modüle bağlantılı giriş ve çıkış reg ve net tipinde sinyalleri tanımlanır, bu sinyallere atamalar yapılır ve sonuçları incelenir.

Reg ve wire ile stimilu (test giriş) sinyalleri tanımlanır

initial

İnitial bloğu ile reg tipinde sinyallere ilk değer atamaları yapılır.

İlk değer ataması yapılmayan reg tipindeki sinyallerin ilk değeri «x» olarak , wire tipindeki sinyaller ise «z» değerlendirilir.

intial ve always blokları ile stimilu uygulanarak sonuçlar incelenebilir.

Page 10: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Simulasyon

Simulasyon’da initial ve always blokları t=0 anında paralel çalışmaya başladığı unutulmamalıdır. (Önce initial çalışıp sonra always blokları çalışmaz.)

Sequential devreler için Clock ve Reset sinyallerine ihtiyaç duyulur.

`timescale 1 ns/ 100 ps

reg clk_50, rst;

initial

begin

clk_50 = 1’b0; // at time 0

rst = 1’b1; // reset is active

#20 rst = 1’b0; // at time 20 release reset

End

always

#10 clk_50 = ~clk_50;

Page 11: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Verilog System Tasks

Simulasyon sırasında verilog sistem task’larını kullanabiliriz.

$display

Simülasyon sırasında ilgili işlem satırında konsola çıktı verir.

Ör:$display("Running test bench");

$display, çeşitli format karakterleri içerir. %h Hex, %b binary , %d decimal

Ör: $display("counter value : %d ", counter);

$time ile simulasyonun o anki zamanıda çıktı alınabilir.

Ör: $display($time,"pos value : %h ", pos);

Page 12: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

Verilog System Tasks

$monitor

$monitor sistem task’ı ile belirtilen sinyallerden herhangi biri değiştiğinde konsola çıktı verir.

Kullanım şekli $display ile aynıdır.

Ör:

$stop

Simülayonu komutun işlendiği noktada dondurur.

$finish

Simulasyonu sonlandırır.

$fopen ve $fdisplay ile dosyaya çıktı verilebilir.

$monitor($time, " clk_50=%b, rst=%b, enable=%b, counter=%h ", clk_50, rst,

enable, counter,);

Page 13: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

ModelSim

Page 14: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

ModelSim

Testbench seçimi

Page 15: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

ModelSim

Page 16: Programlanabilir Devreler - fpga . gen . tr › wp-content › uploads › 2011 › 06 › Testbench-Simulation.pdfu sunum tasarlamış olduğumuz sayısal sistemlerin ile verilog

FPGA Eğitim Programı / Programlanabilir Devreler

ModelSim

Quartus II & ModelSim ile RTL ve Gate Level Simulasyon yapılabilir.

RTL simulasyonu Sentezleme sonucunda elde edilecek sayısal sistemin fonksiyonel testleri yapılır.

Gate Level simulasyonda ise fitter sonrasında FPGA üzerindeki yerleşimden kaynaklanan yol ve lojik gecikmelerinde dikkate alınır.

Tools> Run EDA Simulation Tool > EDA RTL Simulation

Tools> Run EDA Simulation Tool > EDA Gate Level Simulation