From 91edd177dd3ed269d235a30726e11909bccd7044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Wed, 16 Nov 2022 18:59:58 +0100 Subject: [PATCH] feat(data): switch to ILS mode in ilas parser when received non K character in CGS --- src/data_link/ilas_parser.vhd | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/data_link/ilas_parser.vhd b/src/data_link/ilas_parser.vhd index d3bdb1a253a4f265a3238d06de035f96b428bb93..da7c80e51f683a18d6813c2f10f192bee5bc15c9 100644 --- a/src/data_link/ilas_parser.vhd +++ b/src/data_link/ilas_parser.vhd @@ -5,6 +5,7 @@ use ieee.numeric_std.all; entity ilas_parser is generic ( + K_character : std_logic_vector(7 downto 0) := "10111100"; R_character : std_logic_vector(7 downto 0) := "00011100"; A_character : std_logic_vector(7 downto 0) := "01111100"; Q_character : std_logic_vector(7 downto 0) := "10011100"; -- 9C @@ -164,12 +165,14 @@ begin -- architecture a1 end process check_chars; co_finished <= finished; - co_error <= err; + co_error <= '1' when err = '1' and ci_state = ILS else '0'; next_processing_ilas <= '0' when ci_state = INIT or finished = '1' else + '0' when ci_state = CGS and reg_processing_ilas = '1' else '0' when reg_multiframe_index = 3 and reg_octet_index = octets_in_multiframe - 1 else - '1' when reg_processing_ilas = '1' or ci_state = ILAS - else '0'; + '1' when ci_state = CGS and not (di_char.d8b = K_character and di_char.kout = '1') else + '1' when reg_processing_ilas = '1' or ci_state = ILS else + '0'; -- octet, multiframe index next_multiframe_index <= 0 when reg_processing_ilas = '0' and next_processing_ilas = '0' else