@@ -595,13 +595,62 @@ begin
595595 info(logger, " All BFMs have now completed" );
596596 end procedure wait_for_completion; -- }} -------------------------------------------
597597
598+ procedure print_constellation_mapper_tables is
599+ variable data : std_logic_vector (31 downto 0 );
600+ begin
601+ info(logger, " QPSK" );
602+ for i in 0 to 3 loop
603+ axi_cfg_write(to_unsigned (12 , 32 ), std_logic_vector (to_unsigned (i, 32 )));
604+ axi_cfg_read(to_unsigned (20 , 32 ), data);
605+ info(logger, sformat(" QPSK[%d] => %r" , fo(i), fo(data)));
606+ end loop ;
607+
608+ info(logger, " 8PSK" );
609+ for i in 0 to 7 loop
610+ axi_cfg_write(to_unsigned (12 , 32 ), std_logic_vector (to_unsigned (i + 4 , 32 )));
611+ axi_cfg_read(to_unsigned (20 , 32 ), data);
612+ info(logger, sformat(" 8PSK[%d] => %r" , fo(i), fo(data)));
613+ end loop ;
614+
615+ info(logger, " 16APSK" );
616+ for i in 0 to 15 loop
617+ axi_cfg_write(to_unsigned (12 , 32 ), std_logic_vector (to_unsigned (i + 12 , 32 )));
618+ axi_cfg_read(to_unsigned (20 , 32 ), data);
619+ info(logger, sformat(" 16APSK[%d] => %r" , fo(i), fo(data)));
620+ end loop ;
621+
622+ info(logger, " 32APSK" );
623+ for i in 0 to 31 loop
624+ axi_cfg_write(to_unsigned (12 , 32 ), std_logic_vector (to_unsigned (i + 28 , 32 )));
625+ axi_cfg_read(to_unsigned (20 , 32 ), data);
626+ info(logger, sformat(" 32APSK[%d] => %r" , fo(i), fo(data)));
627+ end loop ;
628+
629+ info(logger, " Radius" );
630+ for i in 0 to 21 loop
631+ axi_cfg_write(to_unsigned (12 , 32 ), std_logic_vector (to_unsigned (i + 64 , 32 )));
632+ axi_cfg_read(to_unsigned (20 , 32 ), data);
633+ info(
634+ logger,
635+ sformat(
636+ " Radius[%d] => %r (%s, %s)" ,
637+ fo(i),
638+ fo(data),
639+ real 'image (to_real(signed (data(31 downto 16 )))),
640+ real 'image (to_real(signed (data(15 downto 0 ))))
641+ )
642+ );
643+
644+ end loop ;
645+ end procedure print_constellation_mapper_tables;
646+
647+
598648 procedure run_test ( -- {{ ---------------------------------------------------------
599649 constant config : config_t;
600650 constant number_of_frames : in positive ) is
601651 variable file_reader_msg : msg_t;
602652 constant data_path : string := strip(config.base_path, chars => (1 to 1 => nul));
603653 variable initial_addr : integer := 0 ;
604- variable data : std_logic_vector (31 downto 0 );
605654 constant config_tuple : config_tuple_t := (code_rate => config.code_rate,
606655 constellation => config.constellation,
607656 frame_type => config.frame_type);
0 commit comments