# lib test bench is build to load test vectors from CSV files into your actsim or mixed signal simulation. the library contains multiple source and check as well as dump helpers. ## The Concept each test bench consists out of: - a DUT - device under test - multiple sources - multiple checker or dumpers - a controller - responcible for syncronising the release of test vectors the execution order of the test bench is defined by the simulation steps and the order of the test vectors inside the simulation step before the test bench proceeds to the next simulation step, it waits untill - all sources have sent their test vectors - all checkes have recieved all exspeced inputs - the specified wait time for the simulation step has elapsed after the 2 conditions above have been satisfied. the reason the test bench lib is splitt in components is that you can assable it to your need without writing it new for evert DUT the reason to load a control file is that you can run different test suits with the same test bench by changing the set of csv files. ### Limitations for verilog Cadence AMS: \- the test vector files can contain a maximum of 2.2M rows per simulation step, as they are cached for out of order checks (`` `parameter integer MAX_CHECKS = 2200000; ``\`) ## The Control a test bench includes one test bench controller that excecutes reset (verilog, prs), the simulation step and the time out/end of the simulation (verilog) Note: because the controller sets the time out in verilog set your simulation time in your simulator to way more than needed, the TB will end the simulation for you! this unit is called **control**, it reads a file with the name `control.csv`. the csv format is, one line per simulation step: ``` first line: , all other lines: ,