Skip to content

Commit 53288e4

Browse files
committed
Added print_constellation_mapper_tables reference code
1 parent 41942e2 commit 53288e4

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

testbench/dvbs2_encoder_tb.vhd

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)