OpenCores
URL https://opencores.org/ocsvn/spidac/spidac/trunk

Subversion Repositories spidac

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 5 to Rev 6
    Reverse comparison

Rev 5 → Rev 6

/spidac/trunk/testbench/dac_tb.vhd
0,0 → 1,92
-----------------------------------------------------------------------------------------
-- Engineer: Armandas Jarušauskas (jarusauskas@gmail.com www.armandas.lt)
--
-- Create date: 2010-08-03
-- Design name: Testbench for LTC2624 Quad 12 Bit DAC Controller
-----------------------------------------------------------------------------------------
 
library ieee;
use ieee.std_logic_1164.all;
 
entity dac_tb is
end dac_tb;
 
architecture behaviour of dac_tb is
constant T: time := 20 ns;
signal clk, reset: std_logic;
 
signal mosi, sck, cs, ready: std_logic;
signal data, old_data: std_logic_vector(31 downto 0);
begin
 
-- clock generator
process
begin
clk <= '1';
wait for T / 2;
clk <= '0';
wait for T / 2;
end process;
 
-- initial reset
reset <= '1', '0' after T / 2;
 
testbench:
process
variable value: std_logic_vector(11 downto 0);
variable addr: std_logic_vector(3 downto 0);
variable command: std_logic_vector(3 downto 0);
begin
value := "010000000000";
addr := "0010";
command := "0011";
data <= "00000000" & command & addr & value & "0000";
old_data <= "00000000" & command & addr & value & "0000";
 
 
-- testing bit order in the 32-bit word
for i in 31 downto 0 loop
wait until rising_edge(sck);
 
assert mosi = data(i)
report "Bit mismatch! (Order)"
severity error;
end loop;
 
-- testing data latching
for i in 31 downto 0 loop
wait until rising_edge(sck);
 
if i = 24 then
data <= "10010101110101101010101110100110"; --(others => '1');
end if;
 
assert mosi = old_data(i)
report "Bit mismatch! (Latching)"
severity error;
end loop;
 
-- what's happening after that?
for i in 63 downto 0 loop
wait until rising_edge(sck);
end loop;
 
-- end of simulation
assert false
report "Simulation completed."
severity failure;
end process;
 
uut: entity work.dac_control
port map(
clk => clk,
rst => reset,
dac_mosi => mosi,
dac_sck => sck,
dac_cs => cs,
rdy => ready,
dac_data => data
);
 
end behaviour;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.