Initial commit
This commit is contained in:
123
FiltroHDL/Filter_tb.vhd
Normal file
123
FiltroHDL/Filter_tb.vhd
Normal file
@@ -0,0 +1,123 @@
|
||||
--------------------------------------------------------------------------------
|
||||
-- Company:
|
||||
-- Engineer:
|
||||
--
|
||||
-- Create Date: 14:47:13 03/03/2017
|
||||
-- Design Name:
|
||||
-- Module Name: /home/epilef/Proyectos/FiltroHDL/FiltroHDL/Filter_tb.vhd
|
||||
-- Project Name: FiltroHDL
|
||||
-- Target Device:
|
||||
-- Tool versions:
|
||||
-- Description:
|
||||
--
|
||||
-- VHDL Test Bench Created by ISE for module: Filter
|
||||
--
|
||||
-- Dependencies:
|
||||
--
|
||||
-- Revision:
|
||||
-- Revision 0.01 - File Created
|
||||
-- Additional Comments:
|
||||
--
|
||||
-- Notes:
|
||||
-- This testbench has been automatically generated using types std_logic and
|
||||
-- std_logic_vector for the ports of the unit under test. Xilinx recommends
|
||||
-- that these types always be used for the top-level I/O of a design in order
|
||||
-- to guarantee that the testbench will bind correctly to the post-implementation
|
||||
-- simulation model.
|
||||
--------------------------------------------------------------------------------
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
|
||||
use work.array_functions.all;
|
||||
|
||||
-- Uncomment the following library declaration if using
|
||||
-- arithmetic functions with Signed or Unsigned values
|
||||
--USE ieee.numeric_std.ALL;
|
||||
|
||||
ENTITY Filter_tb IS
|
||||
END Filter_tb;
|
||||
|
||||
ARCHITECTURE behavior OF Filter_tb IS
|
||||
|
||||
-- Component Declaration for the Unit Under Test (UUT)
|
||||
|
||||
COMPONENT Filter
|
||||
generic (
|
||||
CLK_FREQ : integer := 200e6;
|
||||
DATA_RATE: integer := 250e3;
|
||||
|
||||
|
||||
SIMETRIC : boolean := true;
|
||||
CONSTANTS : array_of_integers := (-10,-10,-10,-10,10,10,10,10)
|
||||
|
||||
);
|
||||
PORT(
|
||||
clk_i : IN std_logic;
|
||||
enable : IN std_logic;
|
||||
reset : IN std_logic;
|
||||
d_i : IN std_logic;
|
||||
d_o : OUT std_logic
|
||||
);
|
||||
END COMPONENT;
|
||||
|
||||
|
||||
--Inputs
|
||||
signal clk_i : std_logic := '0';
|
||||
signal enable : std_logic := '1';
|
||||
signal reset : std_logic := '0';
|
||||
signal d_i : std_logic := '0';
|
||||
|
||||
--Outputs
|
||||
signal d_o : std_logic;
|
||||
|
||||
-- Clock period definitions
|
||||
constant clk_i_period : time := 5 ns;
|
||||
constant data_period : time := 4 us;
|
||||
|
||||
|
||||
constant data: std_logic_vector := x"EB901234ABCD5678EF09";
|
||||
|
||||
BEGIN
|
||||
|
||||
-- Instantiate the Unit Under Test (UUT)
|
||||
uut: Filter Generic Map(
|
||||
CLK_FREQ => 200e6,
|
||||
DATA_RATE => 250e3,
|
||||
SIMETRIC => true,
|
||||
CONSTANTS => ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
|
||||
)
|
||||
PORT MAP (
|
||||
clk_i => clk_i,
|
||||
enable => enable,
|
||||
reset => reset,
|
||||
d_i => d_i,
|
||||
d_o => d_o
|
||||
);
|
||||
|
||||
-- Clock process definitions
|
||||
clk_i_process :process
|
||||
begin
|
||||
clk_i <= '0';
|
||||
wait for clk_i_period/2;
|
||||
clk_i <= '1';
|
||||
wait for clk_i_period/2;
|
||||
end process;
|
||||
|
||||
|
||||
|
||||
-- Stimulus process
|
||||
stim_proc: process
|
||||
begin
|
||||
-- hold reset state for 100 ns.
|
||||
wait for 100 ns;
|
||||
|
||||
for i in 0 to data'length -1 loop
|
||||
d_i <= data(i);
|
||||
wait for data_period;
|
||||
end loop;
|
||||
-- insert stimulus here
|
||||
|
||||
wait;
|
||||
end process;
|
||||
|
||||
END;
|
||||
Reference in New Issue
Block a user