|
|
|
|
|
LIBRARY IEEE;
|
|
|
USE IEEE.STD_LOGIC_1164.ALL;
|
|
|
LIBRARY lpp;
|
|
|
USE lpp.lpp_ad_conv.ALL;
|
|
|
USE lpp.general_purpose.SYNC_FF;
|
|
|
|
|
|
ENTITY top_ad_conv_RHF1401 IS
|
|
|
GENERIC(
|
|
|
ChanelCount : INTEGER := 8;
|
|
|
ncycle_cnv_high : INTEGER := 79;
|
|
|
ncycle_cnv : INTEGER := 500);
|
|
|
PORT (
|
|
|
cnv_clk : IN STD_LOGIC;
|
|
|
cnv_rstn : IN STD_LOGIC;
|
|
|
|
|
|
cnv : OUT STD_LOGIC;
|
|
|
|
|
|
clk : IN STD_LOGIC;
|
|
|
rstn : IN STD_LOGIC;
|
|
|
ADC_data : IN Samples14;
|
|
|
ADC_nOE : OUT STD_LOGIC_VECTOR(ChanelCount-1 DOWNTO 0);
|
|
|
sample : OUT Samples14v(ChanelCount-1 DOWNTO 0);
|
|
|
sample_val : OUT STD_LOGIC
|
|
|
);
|
|
|
END top_ad_conv_RHF1401;
|
|
|
|
|
|
ARCHITECTURE ar_top_ad_conv_RHF1401 OF top_ad_conv_RHF1401 IS
|
|
|
|
|
|
SIGNAL cnv_cycle_counter : INTEGER;
|
|
|
SIGNAL cnv_s : STD_LOGIC;
|
|
|
SIGNAL cnv_sync : STD_LOGIC;
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
-- CONV
|
|
|
-----------------------------------------------------------------------------
|
|
|
PROCESS (cnv_clk, cnv_rstn)
|
|
|
BEGIN -- PROCESS
|
|
|
IF cnv_rstn = '0' THEN -- asynchronous reset (active low)
|
|
|
cnv_cycle_counter <= 0;
|
|
|
cnv_s <= '0';
|
|
|
ELSIF cnv_clk'EVENT AND cnv_clk = '1' THEN -- rising clock edge
|
|
|
-- IF cnv_run = '1' THEN
|
|
|
IF cnv_cycle_counter < ncycle_cnv-1 THEN
|
|
|
cnv_cycle_counter <= cnv_cycle_counter +1;
|
|
|
IF cnv_cycle_counter < ncycle_cnv_high THEN
|
|
|
cnv_s <= '1';
|
|
|
ELSE
|
|
|
cnv_s <= '0';
|
|
|
END IF;
|
|
|
ELSE
|
|
|
cnv_s <= '1';
|
|
|
cnv_cycle_counter <= 0;
|
|
|
END IF;
|
|
|
--ELSE
|
|
|
-- cnv_s <= '0';
|
|
|
-- cnv_cycle_counter <= 0;
|
|
|
--END IF;
|
|
|
END IF;
|
|
|
END PROCESS;
|
|
|
|
|
|
cnv <= cnv_s;
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
-- SYNC CNV
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
SYNC_FF_cnv : SYNC_FF
|
|
|
GENERIC MAP (
|
|
|
NB_FF_OF_SYNC => 2)
|
|
|
PORT MAP (
|
|
|
clk => clk,
|
|
|
rstn => rstn,
|
|
|
A => cnv_s,
|
|
|
A_sync => cnv_sync);
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
RHF1401_drvr_1: RHF1401_drvr
|
|
|
GENERIC MAP (
|
|
|
ChanelCount => ChanelCount)
|
|
|
PORT MAP (
|
|
|
cnv_clk => cnv_sync,
|
|
|
clk => clk,
|
|
|
rstn => rstn,
|
|
|
ADC_data => ADC_data,
|
|
|
--ADC_smpclk => OPEN,
|
|
|
ADC_nOE => ADC_nOE,
|
|
|
sample => sample,
|
|
|
sample_val => sample_val);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
END ar_top_ad_conv_RHF1401;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|