##// END OF EJS Templates
Étiquette LPP_IIR_FILTER_v2.0.0 ajoutée à la révision a71a25becd04
Étiquette LPP_IIR_FILTER_v2.0.0 ajoutée à la révision a71a25becd04

File last commit:

r113:a71a25becd04 JC
r114:8722913ff243 JC
Show More
ADS7886_drvr_tb.vhd
120 lines | 3.0 KiB | text/x-vhdl | VhdlLexer
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
LIBRARY lpp;
USE lpp.lpp_ad_conv.ALL;
USE lpp.general_purpose.SYNC_FF;
-------------------------------------------------------------------------------
ENTITY ADS7886_drvr_tb IS
END ADS7886_drvr_tb;
-------------------------------------------------------------------------------
ARCHITECTURE tb OF ADS7886_drvr_tb IS
COMPONENT TestModule_ADS7886
GENERIC (
freq : INTEGER;
amplitude : INTEGER);
PORT (
cnv_run : IN STD_LOGIC;
cnv : IN STD_LOGIC;
sck : IN STD_LOGIC;
sdo : OUT STD_LOGIC);
END COMPONENT;
-- component generics
CONSTANT ChanelCount : INTEGER := 8;
CONSTANT ncycle_cnv_high : INTEGER := 79;
CONSTANT ncycle_cnv : INTEGER := 500;
-- component ports
SIGNAL cnv_rstn : STD_LOGIC;
SIGNAL cnv : STD_LOGIC;
SIGNAL rstn : STD_LOGIC;
SIGNAL sck : STD_LOGIC;
SIGNAL sdo : STD_LOGIC_VECTOR(ChanelCount-1 DOWNTO 0);
SIGNAL sample : Samples(ChanelCount-1 DOWNTO 0);
SIGNAL sample_val : STD_LOGIC;
SIGNAL run_cnv : STD_LOGIC;
-- clock
signal Clk : STD_LOGIC := '1';
SIGNAL cnv_clk : STD_LOGIC := '1';
BEGIN -- tb
MODULE_ADS7886: FOR I IN 0 TO ChanelCount-1 GENERATE
TestModule_ADS7886_u: TestModule_ADS7886
GENERIC MAP (
freq => 256/(I+1),
amplitude => 300/(I+1))
PORT MAP (
cnv_run => run_cnv,
cnv => cnv,
sck => sck,
sdo => sdo(I));
END GENERATE MODULE_ADS7886;
-- component instantiation
DUT: ADS7886_drvr
GENERIC MAP (
ChanelCount => ChanelCount,
ncycle_cnv_high => ncycle_cnv_high,
ncycle_cnv => ncycle_cnv)
PORT MAP (
cnv_clk => cnv_clk,
cnv_rstn => cnv_rstn,
cnv_run => run_cnv,
cnv => cnv,
clk => clk,
rstn => rstn,
sck => sck,
sdo => sdo,
sample => sample,
sample_val => sample_val);
-- clock generation
Clk <= not Clk after 20 ns; -- 25 Mhz
cnv_clk <= not cnv_clk after 10173 ps; -- 49.152 MHz
-- waveform generation
WaveGen_Proc: process
begin
-- insert signal assignments here
wait until Clk = '1';
rstn <= '0';
cnv_rstn <= '0';
run_cnv <= '0';
wait until Clk = '1';
wait until Clk = '1';
wait until Clk = '1';
rstn <= '1';
cnv_rstn <= '1';
wait until Clk = '1';
wait until Clk = '1';
wait until Clk = '1';
wait until Clk = '1';
wait until Clk = '1';
wait until Clk = '1';
run_cnv <= '1';
wait;
end process WaveGen_Proc;
END tb;
-------------------------------------------------------------------------------
CONFIGURATION ADS7886_drvr_tb_tb_cfg OF ADS7886_drvr_tb IS
FOR tb
END FOR;
END ADS7886_drvr_tb_tb_cfg;
-------------------------------------------------------------------------------