Initial commit
This commit is contained in:
59
first/dff_test.vhdl
Normal file
59
first/dff_test.vhdl
Normal file
@@ -0,0 +1,59 @@
|
||||
-- Simple OR gate design
|
||||
library IEEE;
|
||||
use IEEE.std_logic_1164.all;
|
||||
use std.textio.all;
|
||||
|
||||
entity dff_test is
|
||||
end dff_test;
|
||||
|
||||
architecture rtl of dff_test is
|
||||
|
||||
component clock is
|
||||
port(clk: out std_logic);
|
||||
end component;
|
||||
|
||||
component dff is
|
||||
port(
|
||||
clk: in std_logic;
|
||||
rst: in std_logic;
|
||||
|
||||
d: in std_logic;
|
||||
q: out std_logic
|
||||
);
|
||||
end component;
|
||||
|
||||
signal d, q, clk, rst: std_logic;
|
||||
|
||||
begin
|
||||
heartbeat: clock port map(clk);
|
||||
dut: dff port map(clk, rst, d, q);
|
||||
|
||||
process
|
||||
begin
|
||||
rst <= '1';
|
||||
|
||||
wait for 10 ns;
|
||||
assert(q='0') report "Fail rst" severity error;
|
||||
|
||||
rst <= '0';
|
||||
d <= '1';
|
||||
wait for 10 ns;
|
||||
assert(q='1') report "Fail d=1" severity error;
|
||||
|
||||
rst <= '1';
|
||||
wait for 1 ns;
|
||||
assert(q='0') report "Async rst fail" severity error;
|
||||
rst <= '0';
|
||||
d <= '1';
|
||||
wait for 9 ns;
|
||||
|
||||
d <= '0';
|
||||
wait for 1 ns;
|
||||
assert(q='1') report "Fail clk sync" severity error;
|
||||
wait for 9 ns;
|
||||
assert(q='0') report "Fail d=0" severity error;
|
||||
|
||||
assert false report "Test done." severity note;
|
||||
wait;
|
||||
end process;
|
||||
end rtl;
|
||||
Reference in New Issue
Block a user