1 / 8

Understanding VHDL Test Benches: Structure, Functionality, and Examples

A VHDL test bench (TB) is a critical component verifying the functionality of hardware designs. This document explores TB structures, including their purpose of instantiating the design under test (DUT), generating stimulus waveforms, and comparing outputs. It emphasizes the importance of designing test benches alongside the DUT for better accuracy, detailing methods for stimulus generation and response handling. The document provides an example TB architecture, demonstrating the interaction between input signals and DUT, while highlighting best practices for creating reusable and understandable test benches.

gwylan
Télécharger la présentation

Understanding VHDL Test Benches: Structure, Functionality, and Examples

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Assignment write a short notes on Manufacturing Testing. Functional Testing. Files and Text I/O. Differentiate the cpld and fpga architecture.

  2. Test Benches • Testing a design by simulation • Use a test bench model • an architecture body that includes an instance of the design under test • applies sequences of test values to inputs • monitors values on output signals • either using simulator • or with a process that verifies correct operation

  3. Test Bench Example entity test_bench isend entity test_bench; architecture test_reg4 of test_bench is signal d0, d1, d2, d3, en, clk, q0, q1, q2, q3 : bit; begin dut : entity work.reg4(behav)port map ( d0, d1, d2, d3, en, clk, q0, q1, q2, q3 ); stimulus : process isbegin d0 <= ’1’; d1 <= ’1’; d2 <= ’1’; d3 <= ’1’; wait for 20 ns; en <= ’0’; clk <= ’0’; wait for 20 ns; en <= ’1’; wait for 20 ns; clk <= ’1’; wait for 20 ns; d0 <= ’0’; d1 <= ’0’; d2 <= ’0’; d3 <= ’0’; wait for 20 ns; en <= ’0’; wait for 20 ns; …wait;end process stimulus; end architecture test_reg4;

  4. Introduction What is a VHDL test bench? Test bench structures Examples

  5. What Is The VHDL Test Bench (TB)? VHDL test bench (TB) is a piece of VHDL code, which purpose is to verify the functional correctness of HDL model. The main objectives of TB is to: – Instantiate the design under test (DUT) – Generate stimulus waveforms for DUT – Generate reference outputs and compare them with the outputs of DUT – Automatically provide a pass or fail indication Test bench is a part of the circuits specification. Its a good idea to design the test bench before the DUT, why?

  6. Stimulus and Response Three ways how TB can generate the stimulus: – Generate them “on-the-fly” – Read vectors stored as constants in an array – Read vectors stored in a separate system file Response is produced in the test bench. Response can be stored into file for further processing. Example: – Stimulus can be generated with Matlab and TB feeds it into DUT. – DUT generates the response and TB stores it into file. – Result can be compared to Matlab simulations.

  7. Test Bench Structures • TB should be reusable without difficult modifications. • The structure of the TB should be simple enough so that other people understand its behaviour. • Good test bench propagates all the generics and constants into DUT. • Question: How to verify that the function of the test bench is correct?

  8. Simple Test Bench • Only the DUT is instantiated into test bench. • Stimulus is generated inside the test bench • Poor reusability. • Suitable only for relatively simple designs.

More Related