-----INTERFACE-------
A1_5_TEMP<=A1_5 & '0';
PROCESS(FPGA_CLK,RESET,CS_MFC,RD)
BEGIN
IF RESET='0' THEN
ADC_START<='1';
D0_15<= (others => 'Z');
ELSIF RISING_EDGE(FPGA_CLK) THEN
IF CS_MFC='0' AND RD='0' THEN
CASE A1_5_TEMP IS
WHEN "001000" => D0_15<="ZZZZ" & ADC_CHA0_DATA;
WHEN "001010" => D0_15<="ZZZZ" & ADC_CHA1_DATA;
WHEN "001100" => D0_15<="ZZZZ" & ADC_CHB0_DATA;
WHEN "001110" => D0_15<="ZZZZ" & ADC_CHB1_DATA;
WHEN OTHERS => NULL;
END CASE;
else
D0_15<= (others => 'Z');
end if;
else
D0_15<= (others => 'Z');
end if;
END PROCESS;
PROCESS(FPGA_CLK,RESET,CS_MFC,WR)
BEGIN
IF RESET='0' THEN
DEAD_DATA<= (OTHERS => '1');
PW_CH0_DATA<=(OTHERS => '0');
PW_CH1_DATA<=(OTHERS => '0');
PW_CH2_DATA<=(OTHERS => '0');
PT_DATA<="0011101010100010";
ELSIF RISING_EDGE(FPGA_CLK) THEN
IF CS_MFC='0' THEN
IF WR'EVENT AND WR='0' THEN
CASE A1_5_TEMP IS
WHEN "100000" => DEAD_DATA<=D0_15(7 downto 0);
WHEN "100010" => PW_CH0_DATA<=D0_15;
WHEN "100100" => PW_CH1_DATA<=D0_15;
WHEN "100110" => PW_CH2_DATA<=D0_15;
WHEN "101000" => PT_DATA<=D0_15;
WHEN OTHERS => null;
END CASE;
END IF;
END IF;
END IF;
END PROCESS;
|