diff --git a/applications/apertif/designs/apertif_unb1_correlator/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/hdllib.cfg index 342ad7231ff95782803047d6c66dc04533d23a2f..2d646a210efbeb06b2845b74a5a434096f2b5ecf 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/hdllib.cfg @@ -8,6 +8,7 @@ synth_files = src/vhdl/apertif_unb1_correlator_pkg.vhd src/vhdl/apertif_unb1_chan320_packetizer.vhd src/vhdl/apertif_unb1_correlator_output_framer.vhd + src/vhdl/beamlet_lookup.vhd src/vhdl/apertif_unb1_correlator_vis_offload.vhd src/vhdl/node_apertif_unb1_correlator_input.vhd src/vhdl/node_apertif_unb1_correlator_mesh.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_bg_output/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_bg_output/hdllib.cfg index 640c2cf3ce2363c7a73c80109d3b7366c177db06..4a29a60786e292aee73cc2fe045300279a295d33 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_bg_output/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_bg_output/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_bm6_bg_ch320/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_bm6_bg_ch320/hdllib.cfg index c9c54eebfe7f872db11668e45da610275f563ee9..806439cdd0c5fdfec27c243c275b0147e9d50ab4 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_bm6_bg_ch320/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_bm6_bg_ch320/hdllib.cfg @@ -10,6 +10,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_filter/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_filter/hdllib.cfg index 32099102a879f1819a9ca9dc3c353ba03cb79a1f..304a34612470e10f228cb2e708641ef852ddb470 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_filter/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_filter/hdllib.cfg @@ -8,6 +8,7 @@ synth_files = $HDL_BUILD_DIR/unb1/quartus/apertif_unb1_correlator_filter/qsys_apertif_unb1_correlator/synthesis/qsys_apertif_unb1_correlator.v ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full/hdllib.cfg index c0ec9b5f7f115925e36cb94f8a8e5febaddf8361..0f85331bd1d93d9268998777358659b56f6dc0b7 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full/hdllib.cfg @@ -10,6 +10,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bg/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bg/hdllib.cfg index 67d36b2a469cf3cda7fea20685d7fc79d515f635..1e743143abf26c7f01c70da91b594e2154fabe97 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bg/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bg/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bg_int/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bg_int/hdllib.cfg index 68325334f7d8f0e26e5221dd15c23e35a24da5ec..61a4d7673c2d64aa97bfa07c2f9f3567ad83b3dd 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bg_int/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bg_int/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bm6/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bm6/hdllib.cfg index 4096fa4428406fbcaabbbdc004bdd5944332a0af..5a667513ff7c75edfa5401d080d2c1e1c651573c 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bm6/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_bm6/hdllib.cfg @@ -10,6 +10,7 @@ synth_files = ../../src/vhdl/apertif_unb1_chan320_packetizer.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_no_fft/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_no_fft/hdllib.cfg index 43fc550462a9e60e9607b2b1b7aa56fc2822d8a2..44cad6d3fc2dc891d9bd80dd050d51e04233e6ad 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_no_fft/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_full_no_fft/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite/hdllib.cfg index 2408fa38c7ee34c71d23d4f3b9335c357fcfd512..87a535846a9777756753ab20e960ede8b4ff0e92 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite_bg/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite_bg/hdllib.cfg index a1c48c16f165d8fd74a4667c1b95e7a99d29d939..d11f9dbbd4c62416324c5bf7dc567a9500af808f 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite_bg/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite_bg/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite_bg_8/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite_bg_8/hdllib.cfg index 5ba784a8f0f5edd13ebf82becd4d3ea858b9020f..54b22bdb88c9008e84ca2595a7b4e836c9501a5b 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite_bg_8/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_lite_bg_8/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_mesh_distr_ref/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_mesh_distr_ref/hdllib.cfg index 7f565921ff034ff6b14a9f3ca5cf5adc3728816c..75ce449384c976902aad42d0e7bad9fe4df9efde 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_mesh_distr_ref/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_mesh_distr_ref/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_mesh_ref/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_mesh_ref/hdllib.cfg index b8219bf4e821f0d16eb669c0c61df1a94c78decf..c3ecbc46f345d225032ca6fdad798644b438a1c2 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_mesh_ref/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_mesh_ref/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_rx_only/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_rx_only/hdllib.cfg index 30028500f8f19938b56ad279ba9ae585ad7283d2..dfc183f19b91d3b930f30e60439ce6fc4216da12 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_rx_only/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_rx_only/hdllib.cfg @@ -9,6 +9,7 @@ synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_simple/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_simple/hdllib.cfg index 2aea4250c7f82c4f47d7368465c2cdf782615d92..786352ee01edb486f43fa5ed649b69cba2b8be08 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_simple/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/apertif_unb1_correlator_simple/hdllib.cfg @@ -8,6 +8,7 @@ synth_files = $HDL_BUILD_DIR/unb1/quartus/apertif_unb1_correlator_simple/qsys_apertif_unb1_correlator/synthesis/qsys_apertif_unb1_correlator.v ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/mmm_apertif_unb1_correlator.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/revisions/sim_apertif_unb1_correlator_nodes/hdllib.cfg b/applications/apertif/designs/apertif_unb1_correlator/revisions/sim_apertif_unb1_correlator_nodes/hdllib.cfg index 3f12602cd95403c1123df1439367c9e9ab3f0c75..67fd660b122935d7d60f9a388f5f9c236b361367 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/revisions/sim_apertif_unb1_correlator_nodes/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_correlator/revisions/sim_apertif_unb1_correlator_nodes/hdllib.cfg @@ -7,6 +7,7 @@ hdl_lib_technology = ip_stratixiv synth_files = ../../src/vhdl/apertif_unb1_correlator_pkg.vhd ../../src/vhdl/apertif_unb1_correlator_output_framer.vhd + ../../src/vhdl/beamlet_lookup.vhd ../../src/vhdl/apertif_unb1_correlator_vis_offload.vhd ../../src/vhdl/node_apertif_unb1_correlator_input_sync_insert.vhd ../../src/vhdl/node_apertif_unb1_correlator_processing_acc_flush_sync.vhd diff --git a/applications/apertif/designs/apertif_unb1_correlator/src/python/gen_beamlet_lookup.py b/applications/apertif/designs/apertif_unb1_correlator/src/python/gen_beamlet_lookup.py new file mode 100644 index 0000000000000000000000000000000000000000..1ffdbb9be0ba926ceecc8c94f1e3147cb05ea8db --- /dev/null +++ b/applications/apertif/designs/apertif_unb1_correlator/src/python/gen_beamlet_lookup.py @@ -0,0 +1,71 @@ +# Author: +# . Daniel van der Schuur +# Purpose: +# . Print beamlet mappings of Imaging vs. Time domain (ARTS SC4, SC3). +# . Generate the corresponding lookup table as VHDL code. + +import numpy as np +np.set_printoptions(linewidth=250) + +print '\nBeamlet mapping (24 subbands*40 CB = 960 beamlets) used for imaging, "300MHz_40CB":' +b = range(240)+range(256, 256+240)+range(512, 512+240)+range(768, 768+240) # Used beamlets +i = np.array(b).reshape(24,40) # i contains beamlet mapping for Imaging +print i + +print '\nBeamlet mapping (24 subbands*40 CB = 960 beamlets) used for time domain, "arts_sc4":' +t = np.copy(i) # t contains beamlet mapping for Time domain +for cb in range(5): t[:, cb] = range( cb*48, cb*48+48,2) # CB 0...4: beamlets 0, 2,.., 238 +for cb in range(5): t[:, 5+cb] = range(256+cb*48,256+cb*48+48,2) # CB 5...9: beamlets 256,258,.., 494 +for cb in range(5): t[:,10+cb] = range(512+cb*48,512+cb*48+48,2) # CB 10..14: beamlets 512,514,.., 750 +for cb in range(5): t[:,15+cb] = range(768+cb*48,768+cb*48+48,2) # CB 15..19: beamlets 768,770,..,1006 +for cb in range(5): t[:,20+cb] = range( 1+cb*48, 1+cb*48+48,2) # CB 20..24: beamlets 1, 3,.., 239 +for cb in range(5): t[:,25+cb] = range(257+cb*48,257+cb*48+48,2) # CB 25..29: beamlets 257,259,.., 495 +for cb in range(5): t[:,30+cb] = range(513+cb*48,513+cb*48+48,2) # CB 30..34: beamlets 513,515,.., 751 +for cb in range(5): t[:,35+cb] = range(769+cb*48,769+cb*48+48,2) # CB 35..39: beamlets 769,771,..,1007 +print t + +print 'Generating VHDL file with lookup table [time domain beamlet] -> [imaging beamlet]: ../vhdl/beamlet_lookup.vhd' + +lookup_list = [] +for bt,bi in zip(np.nditer(t), np.nditer(i)): + lookup_list.append((int(bt),int(bi))) +lookup_list.sort(key=lambda tup: tup[0]) # Sort the list so we get incrementing addresses (beamlet_in) + +head = """LIBRARY ieee; +USE ieee.std_logic_1164.all; + +-- This file was generated by ../python/gen_beamlet_lookup.py + +ENTITY beamlet_lookup IS + PORT ( + clk : IN STD_LOGIC; + beamlet_in : IN STD_LOGIC_VECTOR(9 DOWNTO 0); + beamlet_out : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) + ); +END beamlet_lookup; + +ARCHITECTURE rtl OF beamlet_lookup IS +BEGIN +PROCESS(clk) + BEGIN + IF rising_edge(clk) THEN + CASE beamlet_in IS +""" + +tail = """ WHEN OTHERS => beamlet_out <= "0000000000"; + END CASE; + END IF; +END PROCESS; +END rtl; +""" + +with open('../vhdl/beamlet_lookup.vhd', 'w') as f: + f.write(head) + for beamlet_mapping in lookup_list: + address = str(bin(beamlet_mapping[0])[2:].zfill(10)) + data_out = str(bin(beamlet_mapping[1])[2:].zfill(10)) + line = ' WHEN "'+address+'" => beamlet_out <= "'+data_out+'";\n' + f.write(line) + f.write(tail) +f.close() + diff --git a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/beamlet_lookup.vhd b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/beamlet_lookup.vhd new file mode 100644 index 0000000000000000000000000000000000000000..14ce6fcecb6d0fd3ea96861542e7f082ad82756a --- /dev/null +++ b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/beamlet_lookup.vhd @@ -0,0 +1,984 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +-- This file was generated by ../python/gen_beamlet_lookup.py + +ENTITY beamlet_lookup IS + PORT ( + clk : IN STD_LOGIC; + beamlet_in : IN STD_LOGIC_VECTOR(9 DOWNTO 0); + beamlet_out : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) + ); +END beamlet_lookup; + +ARCHITECTURE rtl OF beamlet_lookup IS +BEGIN +PROCESS(clk) + BEGIN + IF rising_edge(clk) THEN + CASE beamlet_in IS + WHEN "0000000000" => beamlet_out <= "0000000000"; + WHEN "0000000001" => beamlet_out <= "0000010100"; + WHEN "0000000010" => beamlet_out <= "0000101000"; + WHEN "0000000011" => beamlet_out <= "0000111100"; + WHEN "0000000100" => beamlet_out <= "0001010000"; + WHEN "0000000101" => beamlet_out <= "0001100100"; + WHEN "0000000110" => beamlet_out <= "0001111000"; + WHEN "0000000111" => beamlet_out <= "0010001100"; + WHEN "0000001000" => beamlet_out <= "0010100000"; + WHEN "0000001001" => beamlet_out <= "0010110100"; + WHEN "0000001010" => beamlet_out <= "0011001000"; + WHEN "0000001011" => beamlet_out <= "0011011100"; + WHEN "0000001100" => beamlet_out <= "0100000000"; + WHEN "0000001101" => beamlet_out <= "0100010100"; + WHEN "0000001110" => beamlet_out <= "0100101000"; + WHEN "0000001111" => beamlet_out <= "0100111100"; + WHEN "0000010000" => beamlet_out <= "0101010000"; + WHEN "0000010001" => beamlet_out <= "0101100100"; + WHEN "0000010010" => beamlet_out <= "0101111000"; + WHEN "0000010011" => beamlet_out <= "0110001100"; + WHEN "0000010100" => beamlet_out <= "0110100000"; + WHEN "0000010101" => beamlet_out <= "0110110100"; + WHEN "0000010110" => beamlet_out <= "0111001000"; + WHEN "0000010111" => beamlet_out <= "0111011100"; + WHEN "0000011000" => beamlet_out <= "1000000000"; + WHEN "0000011001" => beamlet_out <= "1000010100"; + WHEN "0000011010" => beamlet_out <= "1000101000"; + WHEN "0000011011" => beamlet_out <= "1000111100"; + WHEN "0000011100" => beamlet_out <= "1001010000"; + WHEN "0000011101" => beamlet_out <= "1001100100"; + WHEN "0000011110" => beamlet_out <= "1001111000"; + WHEN "0000011111" => beamlet_out <= "1010001100"; + WHEN "0000100000" => beamlet_out <= "1010100000"; + WHEN "0000100001" => beamlet_out <= "1010110100"; + WHEN "0000100010" => beamlet_out <= "1011001000"; + WHEN "0000100011" => beamlet_out <= "1011011100"; + WHEN "0000100100" => beamlet_out <= "1100000000"; + WHEN "0000100101" => beamlet_out <= "1100010100"; + WHEN "0000100110" => beamlet_out <= "1100101000"; + WHEN "0000100111" => beamlet_out <= "1100111100"; + WHEN "0000101000" => beamlet_out <= "1101010000"; + WHEN "0000101001" => beamlet_out <= "1101100100"; + WHEN "0000101010" => beamlet_out <= "1101111000"; + WHEN "0000101011" => beamlet_out <= "1110001100"; + WHEN "0000101100" => beamlet_out <= "1110100000"; + WHEN "0000101101" => beamlet_out <= "1110110100"; + WHEN "0000101110" => beamlet_out <= "1111001000"; + WHEN "0000101111" => beamlet_out <= "1111011100"; + WHEN "0000110000" => beamlet_out <= "0000000001"; + WHEN "0000110001" => beamlet_out <= "0000010101"; + WHEN "0000110010" => beamlet_out <= "0000101001"; + WHEN "0000110011" => beamlet_out <= "0000111101"; + WHEN "0000110100" => beamlet_out <= "0001010001"; + WHEN "0000110101" => beamlet_out <= "0001100101"; + WHEN "0000110110" => beamlet_out <= "0001111001"; + WHEN "0000110111" => beamlet_out <= "0010001101"; + WHEN "0000111000" => beamlet_out <= "0010100001"; + WHEN "0000111001" => beamlet_out <= "0010110101"; + WHEN "0000111010" => beamlet_out <= "0011001001"; + WHEN "0000111011" => beamlet_out <= "0011011101"; + WHEN "0000111100" => beamlet_out <= "0100000001"; + WHEN "0000111101" => beamlet_out <= "0100010101"; + WHEN "0000111110" => beamlet_out <= "0100101001"; + WHEN "0000111111" => beamlet_out <= "0100111101"; + WHEN "0001000000" => beamlet_out <= "0101010001"; + WHEN "0001000001" => beamlet_out <= "0101100101"; + WHEN "0001000010" => beamlet_out <= "0101111001"; + WHEN "0001000011" => beamlet_out <= "0110001101"; + WHEN "0001000100" => beamlet_out <= "0110100001"; + WHEN "0001000101" => beamlet_out <= "0110110101"; + WHEN "0001000110" => beamlet_out <= "0111001001"; + WHEN "0001000111" => beamlet_out <= "0111011101"; + WHEN "0001001000" => beamlet_out <= "1000000001"; + WHEN "0001001001" => beamlet_out <= "1000010101"; + WHEN "0001001010" => beamlet_out <= "1000101001"; + WHEN "0001001011" => beamlet_out <= "1000111101"; + WHEN "0001001100" => beamlet_out <= "1001010001"; + WHEN "0001001101" => beamlet_out <= "1001100101"; + WHEN "0001001110" => beamlet_out <= "1001111001"; + WHEN "0001001111" => beamlet_out <= "1010001101"; + WHEN "0001010000" => beamlet_out <= "1010100001"; + WHEN "0001010001" => beamlet_out <= "1010110101"; + WHEN "0001010010" => beamlet_out <= "1011001001"; + WHEN "0001010011" => beamlet_out <= "1011011101"; + WHEN "0001010100" => beamlet_out <= "1100000001"; + WHEN "0001010101" => beamlet_out <= "1100010101"; + WHEN "0001010110" => beamlet_out <= "1100101001"; + WHEN "0001010111" => beamlet_out <= "1100111101"; + WHEN "0001011000" => beamlet_out <= "1101010001"; + WHEN "0001011001" => beamlet_out <= "1101100101"; + WHEN "0001011010" => beamlet_out <= "1101111001"; + WHEN "0001011011" => beamlet_out <= "1110001101"; + WHEN "0001011100" => beamlet_out <= "1110100001"; + WHEN "0001011101" => beamlet_out <= "1110110101"; + WHEN "0001011110" => beamlet_out <= "1111001001"; + WHEN "0001011111" => beamlet_out <= "1111011101"; + WHEN "0001100000" => beamlet_out <= "0000000010"; + WHEN "0001100001" => beamlet_out <= "0000010110"; + WHEN "0001100010" => beamlet_out <= "0000101010"; + WHEN "0001100011" => beamlet_out <= "0000111110"; + WHEN "0001100100" => beamlet_out <= "0001010010"; + WHEN "0001100101" => beamlet_out <= "0001100110"; + WHEN "0001100110" => beamlet_out <= "0001111010"; + WHEN "0001100111" => beamlet_out <= "0010001110"; + WHEN "0001101000" => beamlet_out <= "0010100010"; + WHEN "0001101001" => beamlet_out <= "0010110110"; + WHEN "0001101010" => beamlet_out <= "0011001010"; + WHEN "0001101011" => beamlet_out <= "0011011110"; + WHEN "0001101100" => beamlet_out <= "0100000010"; + WHEN "0001101101" => beamlet_out <= "0100010110"; + WHEN "0001101110" => beamlet_out <= "0100101010"; + WHEN "0001101111" => beamlet_out <= "0100111110"; + WHEN "0001110000" => beamlet_out <= "0101010010"; + WHEN "0001110001" => beamlet_out <= "0101100110"; + WHEN "0001110010" => beamlet_out <= "0101111010"; + WHEN "0001110011" => beamlet_out <= "0110001110"; + WHEN "0001110100" => beamlet_out <= "0110100010"; + WHEN "0001110101" => beamlet_out <= "0110110110"; + WHEN "0001110110" => beamlet_out <= "0111001010"; + WHEN "0001110111" => beamlet_out <= "0111011110"; + WHEN "0001111000" => beamlet_out <= "1000000010"; + WHEN "0001111001" => beamlet_out <= "1000010110"; + WHEN "0001111010" => beamlet_out <= "1000101010"; + WHEN "0001111011" => beamlet_out <= "1000111110"; + WHEN "0001111100" => beamlet_out <= "1001010010"; + WHEN "0001111101" => beamlet_out <= "1001100110"; + WHEN "0001111110" => beamlet_out <= "1001111010"; + WHEN "0001111111" => beamlet_out <= "1010001110"; + WHEN "0010000000" => beamlet_out <= "1010100010"; + WHEN "0010000001" => beamlet_out <= "1010110110"; + WHEN "0010000010" => beamlet_out <= "1011001010"; + WHEN "0010000011" => beamlet_out <= "1011011110"; + WHEN "0010000100" => beamlet_out <= "1100000010"; + WHEN "0010000101" => beamlet_out <= "1100010110"; + WHEN "0010000110" => beamlet_out <= "1100101010"; + WHEN "0010000111" => beamlet_out <= "1100111110"; + WHEN "0010001000" => beamlet_out <= "1101010010"; + WHEN "0010001001" => beamlet_out <= "1101100110"; + WHEN "0010001010" => beamlet_out <= "1101111010"; + WHEN "0010001011" => beamlet_out <= "1110001110"; + WHEN "0010001100" => beamlet_out <= "1110100010"; + WHEN "0010001101" => beamlet_out <= "1110110110"; + WHEN "0010001110" => beamlet_out <= "1111001010"; + WHEN "0010001111" => beamlet_out <= "1111011110"; + WHEN "0010010000" => beamlet_out <= "0000000011"; + WHEN "0010010001" => beamlet_out <= "0000010111"; + WHEN "0010010010" => beamlet_out <= "0000101011"; + WHEN "0010010011" => beamlet_out <= "0000111111"; + WHEN "0010010100" => beamlet_out <= "0001010011"; + WHEN "0010010101" => beamlet_out <= "0001100111"; + WHEN "0010010110" => beamlet_out <= "0001111011"; + WHEN "0010010111" => beamlet_out <= "0010001111"; + WHEN "0010011000" => beamlet_out <= "0010100011"; + WHEN "0010011001" => beamlet_out <= "0010110111"; + WHEN "0010011010" => beamlet_out <= "0011001011"; + WHEN "0010011011" => beamlet_out <= "0011011111"; + WHEN "0010011100" => beamlet_out <= "0100000011"; + WHEN "0010011101" => beamlet_out <= "0100010111"; + WHEN "0010011110" => beamlet_out <= "0100101011"; + WHEN "0010011111" => beamlet_out <= "0100111111"; + WHEN "0010100000" => beamlet_out <= "0101010011"; + WHEN "0010100001" => beamlet_out <= "0101100111"; + WHEN "0010100010" => beamlet_out <= "0101111011"; + WHEN "0010100011" => beamlet_out <= "0110001111"; + WHEN "0010100100" => beamlet_out <= "0110100011"; + WHEN "0010100101" => beamlet_out <= "0110110111"; + WHEN "0010100110" => beamlet_out <= "0111001011"; + WHEN "0010100111" => beamlet_out <= "0111011111"; + WHEN "0010101000" => beamlet_out <= "1000000011"; + WHEN "0010101001" => beamlet_out <= "1000010111"; + WHEN "0010101010" => beamlet_out <= "1000101011"; + WHEN "0010101011" => beamlet_out <= "1000111111"; + WHEN "0010101100" => beamlet_out <= "1001010011"; + WHEN "0010101101" => beamlet_out <= "1001100111"; + WHEN "0010101110" => beamlet_out <= "1001111011"; + WHEN "0010101111" => beamlet_out <= "1010001111"; + WHEN "0010110000" => beamlet_out <= "1010100011"; + WHEN "0010110001" => beamlet_out <= "1010110111"; + WHEN "0010110010" => beamlet_out <= "1011001011"; + WHEN "0010110011" => beamlet_out <= "1011011111"; + WHEN "0010110100" => beamlet_out <= "1100000011"; + WHEN "0010110101" => beamlet_out <= "1100010111"; + WHEN "0010110110" => beamlet_out <= "1100101011"; + WHEN "0010110111" => beamlet_out <= "1100111111"; + WHEN "0010111000" => beamlet_out <= "1101010011"; + WHEN "0010111001" => beamlet_out <= "1101100111"; + WHEN "0010111010" => beamlet_out <= "1101111011"; + WHEN "0010111011" => beamlet_out <= "1110001111"; + WHEN "0010111100" => beamlet_out <= "1110100011"; + WHEN "0010111101" => beamlet_out <= "1110110111"; + WHEN "0010111110" => beamlet_out <= "1111001011"; + WHEN "0010111111" => beamlet_out <= "1111011111"; + WHEN "0011000000" => beamlet_out <= "0000000100"; + WHEN "0011000001" => beamlet_out <= "0000011000"; + WHEN "0011000010" => beamlet_out <= "0000101100"; + WHEN "0011000011" => beamlet_out <= "0001000000"; + WHEN "0011000100" => beamlet_out <= "0001010100"; + WHEN "0011000101" => beamlet_out <= "0001101000"; + WHEN "0011000110" => beamlet_out <= "0001111100"; + WHEN "0011000111" => beamlet_out <= "0010010000"; + WHEN "0011001000" => beamlet_out <= "0010100100"; + WHEN "0011001001" => beamlet_out <= "0010111000"; + WHEN "0011001010" => beamlet_out <= "0011001100"; + WHEN "0011001011" => beamlet_out <= "0011100000"; + WHEN "0011001100" => beamlet_out <= "0100000100"; + WHEN "0011001101" => beamlet_out <= "0100011000"; + WHEN "0011001110" => beamlet_out <= "0100101100"; + WHEN "0011001111" => beamlet_out <= "0101000000"; + WHEN "0011010000" => beamlet_out <= "0101010100"; + WHEN "0011010001" => beamlet_out <= "0101101000"; + WHEN "0011010010" => beamlet_out <= "0101111100"; + WHEN "0011010011" => beamlet_out <= "0110010000"; + WHEN "0011010100" => beamlet_out <= "0110100100"; + WHEN "0011010101" => beamlet_out <= "0110111000"; + WHEN "0011010110" => beamlet_out <= "0111001100"; + WHEN "0011010111" => beamlet_out <= "0111100000"; + WHEN "0011011000" => beamlet_out <= "1000000100"; + WHEN "0011011001" => beamlet_out <= "1000011000"; + WHEN "0011011010" => beamlet_out <= "1000101100"; + WHEN "0011011011" => beamlet_out <= "1001000000"; + WHEN "0011011100" => beamlet_out <= "1001010100"; + WHEN "0011011101" => beamlet_out <= "1001101000"; + WHEN "0011011110" => beamlet_out <= "1001111100"; + WHEN "0011011111" => beamlet_out <= "1010010000"; + WHEN "0011100000" => beamlet_out <= "1010100100"; + WHEN "0011100001" => beamlet_out <= "1010111000"; + WHEN "0011100010" => beamlet_out <= "1011001100"; + WHEN "0011100011" => beamlet_out <= "1011100000"; + WHEN "0011100100" => beamlet_out <= "1100000100"; + WHEN "0011100101" => beamlet_out <= "1100011000"; + WHEN "0011100110" => beamlet_out <= "1100101100"; + WHEN "0011100111" => beamlet_out <= "1101000000"; + WHEN "0011101000" => beamlet_out <= "1101010100"; + WHEN "0011101001" => beamlet_out <= "1101101000"; + WHEN "0011101010" => beamlet_out <= "1101111100"; + WHEN "0011101011" => beamlet_out <= "1110010000"; + WHEN "0011101100" => beamlet_out <= "1110100100"; + WHEN "0011101101" => beamlet_out <= "1110111000"; + WHEN "0011101110" => beamlet_out <= "1111001100"; + WHEN "0011101111" => beamlet_out <= "1111100000"; + WHEN "0100000000" => beamlet_out <= "0000000101"; + WHEN "0100000001" => beamlet_out <= "0000011001"; + WHEN "0100000010" => beamlet_out <= "0000101101"; + WHEN "0100000011" => beamlet_out <= "0001000001"; + WHEN "0100000100" => beamlet_out <= "0001010101"; + WHEN "0100000101" => beamlet_out <= "0001101001"; + WHEN "0100000110" => beamlet_out <= "0001111101"; + WHEN "0100000111" => beamlet_out <= "0010010001"; + WHEN "0100001000" => beamlet_out <= "0010100101"; + WHEN "0100001001" => beamlet_out <= "0010111001"; + WHEN "0100001010" => beamlet_out <= "0011001101"; + WHEN "0100001011" => beamlet_out <= "0011100001"; + WHEN "0100001100" => beamlet_out <= "0100000101"; + WHEN "0100001101" => beamlet_out <= "0100011001"; + WHEN "0100001110" => beamlet_out <= "0100101101"; + WHEN "0100001111" => beamlet_out <= "0101000001"; + WHEN "0100010000" => beamlet_out <= "0101010101"; + WHEN "0100010001" => beamlet_out <= "0101101001"; + WHEN "0100010010" => beamlet_out <= "0101111101"; + WHEN "0100010011" => beamlet_out <= "0110010001"; + WHEN "0100010100" => beamlet_out <= "0110100101"; + WHEN "0100010101" => beamlet_out <= "0110111001"; + WHEN "0100010110" => beamlet_out <= "0111001101"; + WHEN "0100010111" => beamlet_out <= "0111100001"; + WHEN "0100011000" => beamlet_out <= "1000000101"; + WHEN "0100011001" => beamlet_out <= "1000011001"; + WHEN "0100011010" => beamlet_out <= "1000101101"; + WHEN "0100011011" => beamlet_out <= "1001000001"; + WHEN "0100011100" => beamlet_out <= "1001010101"; + WHEN "0100011101" => beamlet_out <= "1001101001"; + WHEN "0100011110" => beamlet_out <= "1001111101"; + WHEN "0100011111" => beamlet_out <= "1010010001"; + WHEN "0100100000" => beamlet_out <= "1010100101"; + WHEN "0100100001" => beamlet_out <= "1010111001"; + WHEN "0100100010" => beamlet_out <= "1011001101"; + WHEN "0100100011" => beamlet_out <= "1011100001"; + WHEN "0100100100" => beamlet_out <= "1100000101"; + WHEN "0100100101" => beamlet_out <= "1100011001"; + WHEN "0100100110" => beamlet_out <= "1100101101"; + WHEN "0100100111" => beamlet_out <= "1101000001"; + WHEN "0100101000" => beamlet_out <= "1101010101"; + WHEN "0100101001" => beamlet_out <= "1101101001"; + WHEN "0100101010" => beamlet_out <= "1101111101"; + WHEN "0100101011" => beamlet_out <= "1110010001"; + WHEN "0100101100" => beamlet_out <= "1110100101"; + WHEN "0100101101" => beamlet_out <= "1110111001"; + WHEN "0100101110" => beamlet_out <= "1111001101"; + WHEN "0100101111" => beamlet_out <= "1111100001"; + WHEN "0100110000" => beamlet_out <= "0000000110"; + WHEN "0100110001" => beamlet_out <= "0000011010"; + WHEN "0100110010" => beamlet_out <= "0000101110"; + WHEN "0100110011" => beamlet_out <= "0001000010"; + WHEN "0100110100" => beamlet_out <= "0001010110"; + WHEN "0100110101" => beamlet_out <= "0001101010"; + WHEN "0100110110" => beamlet_out <= "0001111110"; + WHEN "0100110111" => beamlet_out <= "0010010010"; + WHEN "0100111000" => beamlet_out <= "0010100110"; + WHEN "0100111001" => beamlet_out <= "0010111010"; + WHEN "0100111010" => beamlet_out <= "0011001110"; + WHEN "0100111011" => beamlet_out <= "0011100010"; + WHEN "0100111100" => beamlet_out <= "0100000110"; + WHEN "0100111101" => beamlet_out <= "0100011010"; + WHEN "0100111110" => beamlet_out <= "0100101110"; + WHEN "0100111111" => beamlet_out <= "0101000010"; + WHEN "0101000000" => beamlet_out <= "0101010110"; + WHEN "0101000001" => beamlet_out <= "0101101010"; + WHEN "0101000010" => beamlet_out <= "0101111110"; + WHEN "0101000011" => beamlet_out <= "0110010010"; + WHEN "0101000100" => beamlet_out <= "0110100110"; + WHEN "0101000101" => beamlet_out <= "0110111010"; + WHEN "0101000110" => beamlet_out <= "0111001110"; + WHEN "0101000111" => beamlet_out <= "0111100010"; + WHEN "0101001000" => beamlet_out <= "1000000110"; + WHEN "0101001001" => beamlet_out <= "1000011010"; + WHEN "0101001010" => beamlet_out <= "1000101110"; + WHEN "0101001011" => beamlet_out <= "1001000010"; + WHEN "0101001100" => beamlet_out <= "1001010110"; + WHEN "0101001101" => beamlet_out <= "1001101010"; + WHEN "0101001110" => beamlet_out <= "1001111110"; + WHEN "0101001111" => beamlet_out <= "1010010010"; + WHEN "0101010000" => beamlet_out <= "1010100110"; + WHEN "0101010001" => beamlet_out <= "1010111010"; + WHEN "0101010010" => beamlet_out <= "1011001110"; + WHEN "0101010011" => beamlet_out <= "1011100010"; + WHEN "0101010100" => beamlet_out <= "1100000110"; + WHEN "0101010101" => beamlet_out <= "1100011010"; + WHEN "0101010110" => beamlet_out <= "1100101110"; + WHEN "0101010111" => beamlet_out <= "1101000010"; + WHEN "0101011000" => beamlet_out <= "1101010110"; + WHEN "0101011001" => beamlet_out <= "1101101010"; + WHEN "0101011010" => beamlet_out <= "1101111110"; + WHEN "0101011011" => beamlet_out <= "1110010010"; + WHEN "0101011100" => beamlet_out <= "1110100110"; + WHEN "0101011101" => beamlet_out <= "1110111010"; + WHEN "0101011110" => beamlet_out <= "1111001110"; + WHEN "0101011111" => beamlet_out <= "1111100010"; + WHEN "0101100000" => beamlet_out <= "0000000111"; + WHEN "0101100001" => beamlet_out <= "0000011011"; + WHEN "0101100010" => beamlet_out <= "0000101111"; + WHEN "0101100011" => beamlet_out <= "0001000011"; + WHEN "0101100100" => beamlet_out <= "0001010111"; + WHEN "0101100101" => beamlet_out <= "0001101011"; + WHEN "0101100110" => beamlet_out <= "0001111111"; + WHEN "0101100111" => beamlet_out <= "0010010011"; + WHEN "0101101000" => beamlet_out <= "0010100111"; + WHEN "0101101001" => beamlet_out <= "0010111011"; + WHEN "0101101010" => beamlet_out <= "0011001111"; + WHEN "0101101011" => beamlet_out <= "0011100011"; + WHEN "0101101100" => beamlet_out <= "0100000111"; + WHEN "0101101101" => beamlet_out <= "0100011011"; + WHEN "0101101110" => beamlet_out <= "0100101111"; + WHEN "0101101111" => beamlet_out <= "0101000011"; + WHEN "0101110000" => beamlet_out <= "0101010111"; + WHEN "0101110001" => beamlet_out <= "0101101011"; + WHEN "0101110010" => beamlet_out <= "0101111111"; + WHEN "0101110011" => beamlet_out <= "0110010011"; + WHEN "0101110100" => beamlet_out <= "0110100111"; + WHEN "0101110101" => beamlet_out <= "0110111011"; + WHEN "0101110110" => beamlet_out <= "0111001111"; + WHEN "0101110111" => beamlet_out <= "0111100011"; + WHEN "0101111000" => beamlet_out <= "1000000111"; + WHEN "0101111001" => beamlet_out <= "1000011011"; + WHEN "0101111010" => beamlet_out <= "1000101111"; + WHEN "0101111011" => beamlet_out <= "1001000011"; + WHEN "0101111100" => beamlet_out <= "1001010111"; + WHEN "0101111101" => beamlet_out <= "1001101011"; + WHEN "0101111110" => beamlet_out <= "1001111111"; + WHEN "0101111111" => beamlet_out <= "1010010011"; + WHEN "0110000000" => beamlet_out <= "1010100111"; + WHEN "0110000001" => beamlet_out <= "1010111011"; + WHEN "0110000010" => beamlet_out <= "1011001111"; + WHEN "0110000011" => beamlet_out <= "1011100011"; + WHEN "0110000100" => beamlet_out <= "1100000111"; + WHEN "0110000101" => beamlet_out <= "1100011011"; + WHEN "0110000110" => beamlet_out <= "1100101111"; + WHEN "0110000111" => beamlet_out <= "1101000011"; + WHEN "0110001000" => beamlet_out <= "1101010111"; + WHEN "0110001001" => beamlet_out <= "1101101011"; + WHEN "0110001010" => beamlet_out <= "1101111111"; + WHEN "0110001011" => beamlet_out <= "1110010011"; + WHEN "0110001100" => beamlet_out <= "1110100111"; + WHEN "0110001101" => beamlet_out <= "1110111011"; + WHEN "0110001110" => beamlet_out <= "1111001111"; + WHEN "0110001111" => beamlet_out <= "1111100011"; + WHEN "0110010000" => beamlet_out <= "0000001000"; + WHEN "0110010001" => beamlet_out <= "0000011100"; + WHEN "0110010010" => beamlet_out <= "0000110000"; + WHEN "0110010011" => beamlet_out <= "0001000100"; + WHEN "0110010100" => beamlet_out <= "0001011000"; + WHEN "0110010101" => beamlet_out <= "0001101100"; + WHEN "0110010110" => beamlet_out <= "0010000000"; + WHEN "0110010111" => beamlet_out <= "0010010100"; + WHEN "0110011000" => beamlet_out <= "0010101000"; + WHEN "0110011001" => beamlet_out <= "0010111100"; + WHEN "0110011010" => beamlet_out <= "0011010000"; + WHEN "0110011011" => beamlet_out <= "0011100100"; + WHEN "0110011100" => beamlet_out <= "0100001000"; + WHEN "0110011101" => beamlet_out <= "0100011100"; + WHEN "0110011110" => beamlet_out <= "0100110000"; + WHEN "0110011111" => beamlet_out <= "0101000100"; + WHEN "0110100000" => beamlet_out <= "0101011000"; + WHEN "0110100001" => beamlet_out <= "0101101100"; + WHEN "0110100010" => beamlet_out <= "0110000000"; + WHEN "0110100011" => beamlet_out <= "0110010100"; + WHEN "0110100100" => beamlet_out <= "0110101000"; + WHEN "0110100101" => beamlet_out <= "0110111100"; + WHEN "0110100110" => beamlet_out <= "0111010000"; + WHEN "0110100111" => beamlet_out <= "0111100100"; + WHEN "0110101000" => beamlet_out <= "1000001000"; + WHEN "0110101001" => beamlet_out <= "1000011100"; + WHEN "0110101010" => beamlet_out <= "1000110000"; + WHEN "0110101011" => beamlet_out <= "1001000100"; + WHEN "0110101100" => beamlet_out <= "1001011000"; + WHEN "0110101101" => beamlet_out <= "1001101100"; + WHEN "0110101110" => beamlet_out <= "1010000000"; + WHEN "0110101111" => beamlet_out <= "1010010100"; + WHEN "0110110000" => beamlet_out <= "1010101000"; + WHEN "0110110001" => beamlet_out <= "1010111100"; + WHEN "0110110010" => beamlet_out <= "1011010000"; + WHEN "0110110011" => beamlet_out <= "1011100100"; + WHEN "0110110100" => beamlet_out <= "1100001000"; + WHEN "0110110101" => beamlet_out <= "1100011100"; + WHEN "0110110110" => beamlet_out <= "1100110000"; + WHEN "0110110111" => beamlet_out <= "1101000100"; + WHEN "0110111000" => beamlet_out <= "1101011000"; + WHEN "0110111001" => beamlet_out <= "1101101100"; + WHEN "0110111010" => beamlet_out <= "1110000000"; + WHEN "0110111011" => beamlet_out <= "1110010100"; + WHEN "0110111100" => beamlet_out <= "1110101000"; + WHEN "0110111101" => beamlet_out <= "1110111100"; + WHEN "0110111110" => beamlet_out <= "1111010000"; + WHEN "0110111111" => beamlet_out <= "1111100100"; + WHEN "0111000000" => beamlet_out <= "0000001001"; + WHEN "0111000001" => beamlet_out <= "0000011101"; + WHEN "0111000010" => beamlet_out <= "0000110001"; + WHEN "0111000011" => beamlet_out <= "0001000101"; + WHEN "0111000100" => beamlet_out <= "0001011001"; + WHEN "0111000101" => beamlet_out <= "0001101101"; + WHEN "0111000110" => beamlet_out <= "0010000001"; + WHEN "0111000111" => beamlet_out <= "0010010101"; + WHEN "0111001000" => beamlet_out <= "0010101001"; + WHEN "0111001001" => beamlet_out <= "0010111101"; + WHEN "0111001010" => beamlet_out <= "0011010001"; + WHEN "0111001011" => beamlet_out <= "0011100101"; + WHEN "0111001100" => beamlet_out <= "0100001001"; + WHEN "0111001101" => beamlet_out <= "0100011101"; + WHEN "0111001110" => beamlet_out <= "0100110001"; + WHEN "0111001111" => beamlet_out <= "0101000101"; + WHEN "0111010000" => beamlet_out <= "0101011001"; + WHEN "0111010001" => beamlet_out <= "0101101101"; + WHEN "0111010010" => beamlet_out <= "0110000001"; + WHEN "0111010011" => beamlet_out <= "0110010101"; + WHEN "0111010100" => beamlet_out <= "0110101001"; + WHEN "0111010101" => beamlet_out <= "0110111101"; + WHEN "0111010110" => beamlet_out <= "0111010001"; + WHEN "0111010111" => beamlet_out <= "0111100101"; + WHEN "0111011000" => beamlet_out <= "1000001001"; + WHEN "0111011001" => beamlet_out <= "1000011101"; + WHEN "0111011010" => beamlet_out <= "1000110001"; + WHEN "0111011011" => beamlet_out <= "1001000101"; + WHEN "0111011100" => beamlet_out <= "1001011001"; + WHEN "0111011101" => beamlet_out <= "1001101101"; + WHEN "0111011110" => beamlet_out <= "1010000001"; + WHEN "0111011111" => beamlet_out <= "1010010101"; + WHEN "0111100000" => beamlet_out <= "1010101001"; + WHEN "0111100001" => beamlet_out <= "1010111101"; + WHEN "0111100010" => beamlet_out <= "1011010001"; + WHEN "0111100011" => beamlet_out <= "1011100101"; + WHEN "0111100100" => beamlet_out <= "1100001001"; + WHEN "0111100101" => beamlet_out <= "1100011101"; + WHEN "0111100110" => beamlet_out <= "1100110001"; + WHEN "0111100111" => beamlet_out <= "1101000101"; + WHEN "0111101000" => beamlet_out <= "1101011001"; + WHEN "0111101001" => beamlet_out <= "1101101101"; + WHEN "0111101010" => beamlet_out <= "1110000001"; + WHEN "0111101011" => beamlet_out <= "1110010101"; + WHEN "0111101100" => beamlet_out <= "1110101001"; + WHEN "0111101101" => beamlet_out <= "1110111101"; + WHEN "0111101110" => beamlet_out <= "1111010001"; + WHEN "0111101111" => beamlet_out <= "1111100101"; + WHEN "1000000000" => beamlet_out <= "0000001010"; + WHEN "1000000001" => beamlet_out <= "0000011110"; + WHEN "1000000010" => beamlet_out <= "0000110010"; + WHEN "1000000011" => beamlet_out <= "0001000110"; + WHEN "1000000100" => beamlet_out <= "0001011010"; + WHEN "1000000101" => beamlet_out <= "0001101110"; + WHEN "1000000110" => beamlet_out <= "0010000010"; + WHEN "1000000111" => beamlet_out <= "0010010110"; + WHEN "1000001000" => beamlet_out <= "0010101010"; + WHEN "1000001001" => beamlet_out <= "0010111110"; + WHEN "1000001010" => beamlet_out <= "0011010010"; + WHEN "1000001011" => beamlet_out <= "0011100110"; + WHEN "1000001100" => beamlet_out <= "0100001010"; + WHEN "1000001101" => beamlet_out <= "0100011110"; + WHEN "1000001110" => beamlet_out <= "0100110010"; + WHEN "1000001111" => beamlet_out <= "0101000110"; + WHEN "1000010000" => beamlet_out <= "0101011010"; + WHEN "1000010001" => beamlet_out <= "0101101110"; + WHEN "1000010010" => beamlet_out <= "0110000010"; + WHEN "1000010011" => beamlet_out <= "0110010110"; + WHEN "1000010100" => beamlet_out <= "0110101010"; + WHEN "1000010101" => beamlet_out <= "0110111110"; + WHEN "1000010110" => beamlet_out <= "0111010010"; + WHEN "1000010111" => beamlet_out <= "0111100110"; + WHEN "1000011000" => beamlet_out <= "1000001010"; + WHEN "1000011001" => beamlet_out <= "1000011110"; + WHEN "1000011010" => beamlet_out <= "1000110010"; + WHEN "1000011011" => beamlet_out <= "1001000110"; + WHEN "1000011100" => beamlet_out <= "1001011010"; + WHEN "1000011101" => beamlet_out <= "1001101110"; + WHEN "1000011110" => beamlet_out <= "1010000010"; + WHEN "1000011111" => beamlet_out <= "1010010110"; + WHEN "1000100000" => beamlet_out <= "1010101010"; + WHEN "1000100001" => beamlet_out <= "1010111110"; + WHEN "1000100010" => beamlet_out <= "1011010010"; + WHEN "1000100011" => beamlet_out <= "1011100110"; + WHEN "1000100100" => beamlet_out <= "1100001010"; + WHEN "1000100101" => beamlet_out <= "1100011110"; + WHEN "1000100110" => beamlet_out <= "1100110010"; + WHEN "1000100111" => beamlet_out <= "1101000110"; + WHEN "1000101000" => beamlet_out <= "1101011010"; + WHEN "1000101001" => beamlet_out <= "1101101110"; + WHEN "1000101010" => beamlet_out <= "1110000010"; + WHEN "1000101011" => beamlet_out <= "1110010110"; + WHEN "1000101100" => beamlet_out <= "1110101010"; + WHEN "1000101101" => beamlet_out <= "1110111110"; + WHEN "1000101110" => beamlet_out <= "1111010010"; + WHEN "1000101111" => beamlet_out <= "1111100110"; + WHEN "1000110000" => beamlet_out <= "0000001011"; + WHEN "1000110001" => beamlet_out <= "0000011111"; + WHEN "1000110010" => beamlet_out <= "0000110011"; + WHEN "1000110011" => beamlet_out <= "0001000111"; + WHEN "1000110100" => beamlet_out <= "0001011011"; + WHEN "1000110101" => beamlet_out <= "0001101111"; + WHEN "1000110110" => beamlet_out <= "0010000011"; + WHEN "1000110111" => beamlet_out <= "0010010111"; + WHEN "1000111000" => beamlet_out <= "0010101011"; + WHEN "1000111001" => beamlet_out <= "0010111111"; + WHEN "1000111010" => beamlet_out <= "0011010011"; + WHEN "1000111011" => beamlet_out <= "0011100111"; + WHEN "1000111100" => beamlet_out <= "0100001011"; + WHEN "1000111101" => beamlet_out <= "0100011111"; + WHEN "1000111110" => beamlet_out <= "0100110011"; + WHEN "1000111111" => beamlet_out <= "0101000111"; + WHEN "1001000000" => beamlet_out <= "0101011011"; + WHEN "1001000001" => beamlet_out <= "0101101111"; + WHEN "1001000010" => beamlet_out <= "0110000011"; + WHEN "1001000011" => beamlet_out <= "0110010111"; + WHEN "1001000100" => beamlet_out <= "0110101011"; + WHEN "1001000101" => beamlet_out <= "0110111111"; + WHEN "1001000110" => beamlet_out <= "0111010011"; + WHEN "1001000111" => beamlet_out <= "0111100111"; + WHEN "1001001000" => beamlet_out <= "1000001011"; + WHEN "1001001001" => beamlet_out <= "1000011111"; + WHEN "1001001010" => beamlet_out <= "1000110011"; + WHEN "1001001011" => beamlet_out <= "1001000111"; + WHEN "1001001100" => beamlet_out <= "1001011011"; + WHEN "1001001101" => beamlet_out <= "1001101111"; + WHEN "1001001110" => beamlet_out <= "1010000011"; + WHEN "1001001111" => beamlet_out <= "1010010111"; + WHEN "1001010000" => beamlet_out <= "1010101011"; + WHEN "1001010001" => beamlet_out <= "1010111111"; + WHEN "1001010010" => beamlet_out <= "1011010011"; + WHEN "1001010011" => beamlet_out <= "1011100111"; + WHEN "1001010100" => beamlet_out <= "1100001011"; + WHEN "1001010101" => beamlet_out <= "1100011111"; + WHEN "1001010110" => beamlet_out <= "1100110011"; + WHEN "1001010111" => beamlet_out <= "1101000111"; + WHEN "1001011000" => beamlet_out <= "1101011011"; + WHEN "1001011001" => beamlet_out <= "1101101111"; + WHEN "1001011010" => beamlet_out <= "1110000011"; + WHEN "1001011011" => beamlet_out <= "1110010111"; + WHEN "1001011100" => beamlet_out <= "1110101011"; + WHEN "1001011101" => beamlet_out <= "1110111111"; + WHEN "1001011110" => beamlet_out <= "1111010011"; + WHEN "1001011111" => beamlet_out <= "1111100111"; + WHEN "1001100000" => beamlet_out <= "0000001100"; + WHEN "1001100001" => beamlet_out <= "0000100000"; + WHEN "1001100010" => beamlet_out <= "0000110100"; + WHEN "1001100011" => beamlet_out <= "0001001000"; + WHEN "1001100100" => beamlet_out <= "0001011100"; + WHEN "1001100101" => beamlet_out <= "0001110000"; + WHEN "1001100110" => beamlet_out <= "0010000100"; + WHEN "1001100111" => beamlet_out <= "0010011000"; + WHEN "1001101000" => beamlet_out <= "0010101100"; + WHEN "1001101001" => beamlet_out <= "0011000000"; + WHEN "1001101010" => beamlet_out <= "0011010100"; + WHEN "1001101011" => beamlet_out <= "0011101000"; + WHEN "1001101100" => beamlet_out <= "0100001100"; + WHEN "1001101101" => beamlet_out <= "0100100000"; + WHEN "1001101110" => beamlet_out <= "0100110100"; + WHEN "1001101111" => beamlet_out <= "0101001000"; + WHEN "1001110000" => beamlet_out <= "0101011100"; + WHEN "1001110001" => beamlet_out <= "0101110000"; + WHEN "1001110010" => beamlet_out <= "0110000100"; + WHEN "1001110011" => beamlet_out <= "0110011000"; + WHEN "1001110100" => beamlet_out <= "0110101100"; + WHEN "1001110101" => beamlet_out <= "0111000000"; + WHEN "1001110110" => beamlet_out <= "0111010100"; + WHEN "1001110111" => beamlet_out <= "0111101000"; + WHEN "1001111000" => beamlet_out <= "1000001100"; + WHEN "1001111001" => beamlet_out <= "1000100000"; + WHEN "1001111010" => beamlet_out <= "1000110100"; + WHEN "1001111011" => beamlet_out <= "1001001000"; + WHEN "1001111100" => beamlet_out <= "1001011100"; + WHEN "1001111101" => beamlet_out <= "1001110000"; + WHEN "1001111110" => beamlet_out <= "1010000100"; + WHEN "1001111111" => beamlet_out <= "1010011000"; + WHEN "1010000000" => beamlet_out <= "1010101100"; + WHEN "1010000001" => beamlet_out <= "1011000000"; + WHEN "1010000010" => beamlet_out <= "1011010100"; + WHEN "1010000011" => beamlet_out <= "1011101000"; + WHEN "1010000100" => beamlet_out <= "1100001100"; + WHEN "1010000101" => beamlet_out <= "1100100000"; + WHEN "1010000110" => beamlet_out <= "1100110100"; + WHEN "1010000111" => beamlet_out <= "1101001000"; + WHEN "1010001000" => beamlet_out <= "1101011100"; + WHEN "1010001001" => beamlet_out <= "1101110000"; + WHEN "1010001010" => beamlet_out <= "1110000100"; + WHEN "1010001011" => beamlet_out <= "1110011000"; + WHEN "1010001100" => beamlet_out <= "1110101100"; + WHEN "1010001101" => beamlet_out <= "1111000000"; + WHEN "1010001110" => beamlet_out <= "1111010100"; + WHEN "1010001111" => beamlet_out <= "1111101000"; + WHEN "1010010000" => beamlet_out <= "0000001101"; + WHEN "1010010001" => beamlet_out <= "0000100001"; + WHEN "1010010010" => beamlet_out <= "0000110101"; + WHEN "1010010011" => beamlet_out <= "0001001001"; + WHEN "1010010100" => beamlet_out <= "0001011101"; + WHEN "1010010101" => beamlet_out <= "0001110001"; + WHEN "1010010110" => beamlet_out <= "0010000101"; + WHEN "1010010111" => beamlet_out <= "0010011001"; + WHEN "1010011000" => beamlet_out <= "0010101101"; + WHEN "1010011001" => beamlet_out <= "0011000001"; + WHEN "1010011010" => beamlet_out <= "0011010101"; + WHEN "1010011011" => beamlet_out <= "0011101001"; + WHEN "1010011100" => beamlet_out <= "0100001101"; + WHEN "1010011101" => beamlet_out <= "0100100001"; + WHEN "1010011110" => beamlet_out <= "0100110101"; + WHEN "1010011111" => beamlet_out <= "0101001001"; + WHEN "1010100000" => beamlet_out <= "0101011101"; + WHEN "1010100001" => beamlet_out <= "0101110001"; + WHEN "1010100010" => beamlet_out <= "0110000101"; + WHEN "1010100011" => beamlet_out <= "0110011001"; + WHEN "1010100100" => beamlet_out <= "0110101101"; + WHEN "1010100101" => beamlet_out <= "0111000001"; + WHEN "1010100110" => beamlet_out <= "0111010101"; + WHEN "1010100111" => beamlet_out <= "0111101001"; + WHEN "1010101000" => beamlet_out <= "1000001101"; + WHEN "1010101001" => beamlet_out <= "1000100001"; + WHEN "1010101010" => beamlet_out <= "1000110101"; + WHEN "1010101011" => beamlet_out <= "1001001001"; + WHEN "1010101100" => beamlet_out <= "1001011101"; + WHEN "1010101101" => beamlet_out <= "1001110001"; + WHEN "1010101110" => beamlet_out <= "1010000101"; + WHEN "1010101111" => beamlet_out <= "1010011001"; + WHEN "1010110000" => beamlet_out <= "1010101101"; + WHEN "1010110001" => beamlet_out <= "1011000001"; + WHEN "1010110010" => beamlet_out <= "1011010101"; + WHEN "1010110011" => beamlet_out <= "1011101001"; + WHEN "1010110100" => beamlet_out <= "1100001101"; + WHEN "1010110101" => beamlet_out <= "1100100001"; + WHEN "1010110110" => beamlet_out <= "1100110101"; + WHEN "1010110111" => beamlet_out <= "1101001001"; + WHEN "1010111000" => beamlet_out <= "1101011101"; + WHEN "1010111001" => beamlet_out <= "1101110001"; + WHEN "1010111010" => beamlet_out <= "1110000101"; + WHEN "1010111011" => beamlet_out <= "1110011001"; + WHEN "1010111100" => beamlet_out <= "1110101101"; + WHEN "1010111101" => beamlet_out <= "1111000001"; + WHEN "1010111110" => beamlet_out <= "1111010101"; + WHEN "1010111111" => beamlet_out <= "1111101001"; + WHEN "1011000000" => beamlet_out <= "0000001110"; + WHEN "1011000001" => beamlet_out <= "0000100010"; + WHEN "1011000010" => beamlet_out <= "0000110110"; + WHEN "1011000011" => beamlet_out <= "0001001010"; + WHEN "1011000100" => beamlet_out <= "0001011110"; + WHEN "1011000101" => beamlet_out <= "0001110010"; + WHEN "1011000110" => beamlet_out <= "0010000110"; + WHEN "1011000111" => beamlet_out <= "0010011010"; + WHEN "1011001000" => beamlet_out <= "0010101110"; + WHEN "1011001001" => beamlet_out <= "0011000010"; + WHEN "1011001010" => beamlet_out <= "0011010110"; + WHEN "1011001011" => beamlet_out <= "0011101010"; + WHEN "1011001100" => beamlet_out <= "0100001110"; + WHEN "1011001101" => beamlet_out <= "0100100010"; + WHEN "1011001110" => beamlet_out <= "0100110110"; + WHEN "1011001111" => beamlet_out <= "0101001010"; + WHEN "1011010000" => beamlet_out <= "0101011110"; + WHEN "1011010001" => beamlet_out <= "0101110010"; + WHEN "1011010010" => beamlet_out <= "0110000110"; + WHEN "1011010011" => beamlet_out <= "0110011010"; + WHEN "1011010100" => beamlet_out <= "0110101110"; + WHEN "1011010101" => beamlet_out <= "0111000010"; + WHEN "1011010110" => beamlet_out <= "0111010110"; + WHEN "1011010111" => beamlet_out <= "0111101010"; + WHEN "1011011000" => beamlet_out <= "1000001110"; + WHEN "1011011001" => beamlet_out <= "1000100010"; + WHEN "1011011010" => beamlet_out <= "1000110110"; + WHEN "1011011011" => beamlet_out <= "1001001010"; + WHEN "1011011100" => beamlet_out <= "1001011110"; + WHEN "1011011101" => beamlet_out <= "1001110010"; + WHEN "1011011110" => beamlet_out <= "1010000110"; + WHEN "1011011111" => beamlet_out <= "1010011010"; + WHEN "1011100000" => beamlet_out <= "1010101110"; + WHEN "1011100001" => beamlet_out <= "1011000010"; + WHEN "1011100010" => beamlet_out <= "1011010110"; + WHEN "1011100011" => beamlet_out <= "1011101010"; + WHEN "1011100100" => beamlet_out <= "1100001110"; + WHEN "1011100101" => beamlet_out <= "1100100010"; + WHEN "1011100110" => beamlet_out <= "1100110110"; + WHEN "1011100111" => beamlet_out <= "1101001010"; + WHEN "1011101000" => beamlet_out <= "1101011110"; + WHEN "1011101001" => beamlet_out <= "1101110010"; + WHEN "1011101010" => beamlet_out <= "1110000110"; + WHEN "1011101011" => beamlet_out <= "1110011010"; + WHEN "1011101100" => beamlet_out <= "1110101110"; + WHEN "1011101101" => beamlet_out <= "1111000010"; + WHEN "1011101110" => beamlet_out <= "1111010110"; + WHEN "1011101111" => beamlet_out <= "1111101010"; + WHEN "1100000000" => beamlet_out <= "0000001111"; + WHEN "1100000001" => beamlet_out <= "0000100011"; + WHEN "1100000010" => beamlet_out <= "0000110111"; + WHEN "1100000011" => beamlet_out <= "0001001011"; + WHEN "1100000100" => beamlet_out <= "0001011111"; + WHEN "1100000101" => beamlet_out <= "0001110011"; + WHEN "1100000110" => beamlet_out <= "0010000111"; + WHEN "1100000111" => beamlet_out <= "0010011011"; + WHEN "1100001000" => beamlet_out <= "0010101111"; + WHEN "1100001001" => beamlet_out <= "0011000011"; + WHEN "1100001010" => beamlet_out <= "0011010111"; + WHEN "1100001011" => beamlet_out <= "0011101011"; + WHEN "1100001100" => beamlet_out <= "0100001111"; + WHEN "1100001101" => beamlet_out <= "0100100011"; + WHEN "1100001110" => beamlet_out <= "0100110111"; + WHEN "1100001111" => beamlet_out <= "0101001011"; + WHEN "1100010000" => beamlet_out <= "0101011111"; + WHEN "1100010001" => beamlet_out <= "0101110011"; + WHEN "1100010010" => beamlet_out <= "0110000111"; + WHEN "1100010011" => beamlet_out <= "0110011011"; + WHEN "1100010100" => beamlet_out <= "0110101111"; + WHEN "1100010101" => beamlet_out <= "0111000011"; + WHEN "1100010110" => beamlet_out <= "0111010111"; + WHEN "1100010111" => beamlet_out <= "0111101011"; + WHEN "1100011000" => beamlet_out <= "1000001111"; + WHEN "1100011001" => beamlet_out <= "1000100011"; + WHEN "1100011010" => beamlet_out <= "1000110111"; + WHEN "1100011011" => beamlet_out <= "1001001011"; + WHEN "1100011100" => beamlet_out <= "1001011111"; + WHEN "1100011101" => beamlet_out <= "1001110011"; + WHEN "1100011110" => beamlet_out <= "1010000111"; + WHEN "1100011111" => beamlet_out <= "1010011011"; + WHEN "1100100000" => beamlet_out <= "1010101111"; + WHEN "1100100001" => beamlet_out <= "1011000011"; + WHEN "1100100010" => beamlet_out <= "1011010111"; + WHEN "1100100011" => beamlet_out <= "1011101011"; + WHEN "1100100100" => beamlet_out <= "1100001111"; + WHEN "1100100101" => beamlet_out <= "1100100011"; + WHEN "1100100110" => beamlet_out <= "1100110111"; + WHEN "1100100111" => beamlet_out <= "1101001011"; + WHEN "1100101000" => beamlet_out <= "1101011111"; + WHEN "1100101001" => beamlet_out <= "1101110011"; + WHEN "1100101010" => beamlet_out <= "1110000111"; + WHEN "1100101011" => beamlet_out <= "1110011011"; + WHEN "1100101100" => beamlet_out <= "1110101111"; + WHEN "1100101101" => beamlet_out <= "1111000011"; + WHEN "1100101110" => beamlet_out <= "1111010111"; + WHEN "1100101111" => beamlet_out <= "1111101011"; + WHEN "1100110000" => beamlet_out <= "0000010000"; + WHEN "1100110001" => beamlet_out <= "0000100100"; + WHEN "1100110010" => beamlet_out <= "0000111000"; + WHEN "1100110011" => beamlet_out <= "0001001100"; + WHEN "1100110100" => beamlet_out <= "0001100000"; + WHEN "1100110101" => beamlet_out <= "0001110100"; + WHEN "1100110110" => beamlet_out <= "0010001000"; + WHEN "1100110111" => beamlet_out <= "0010011100"; + WHEN "1100111000" => beamlet_out <= "0010110000"; + WHEN "1100111001" => beamlet_out <= "0011000100"; + WHEN "1100111010" => beamlet_out <= "0011011000"; + WHEN "1100111011" => beamlet_out <= "0011101100"; + WHEN "1100111100" => beamlet_out <= "0100010000"; + WHEN "1100111101" => beamlet_out <= "0100100100"; + WHEN "1100111110" => beamlet_out <= "0100111000"; + WHEN "1100111111" => beamlet_out <= "0101001100"; + WHEN "1101000000" => beamlet_out <= "0101100000"; + WHEN "1101000001" => beamlet_out <= "0101110100"; + WHEN "1101000010" => beamlet_out <= "0110001000"; + WHEN "1101000011" => beamlet_out <= "0110011100"; + WHEN "1101000100" => beamlet_out <= "0110110000"; + WHEN "1101000101" => beamlet_out <= "0111000100"; + WHEN "1101000110" => beamlet_out <= "0111011000"; + WHEN "1101000111" => beamlet_out <= "0111101100"; + WHEN "1101001000" => beamlet_out <= "1000010000"; + WHEN "1101001001" => beamlet_out <= "1000100100"; + WHEN "1101001010" => beamlet_out <= "1000111000"; + WHEN "1101001011" => beamlet_out <= "1001001100"; + WHEN "1101001100" => beamlet_out <= "1001100000"; + WHEN "1101001101" => beamlet_out <= "1001110100"; + WHEN "1101001110" => beamlet_out <= "1010001000"; + WHEN "1101001111" => beamlet_out <= "1010011100"; + WHEN "1101010000" => beamlet_out <= "1010110000"; + WHEN "1101010001" => beamlet_out <= "1011000100"; + WHEN "1101010010" => beamlet_out <= "1011011000"; + WHEN "1101010011" => beamlet_out <= "1011101100"; + WHEN "1101010100" => beamlet_out <= "1100010000"; + WHEN "1101010101" => beamlet_out <= "1100100100"; + WHEN "1101010110" => beamlet_out <= "1100111000"; + WHEN "1101010111" => beamlet_out <= "1101001100"; + WHEN "1101011000" => beamlet_out <= "1101100000"; + WHEN "1101011001" => beamlet_out <= "1101110100"; + WHEN "1101011010" => beamlet_out <= "1110001000"; + WHEN "1101011011" => beamlet_out <= "1110011100"; + WHEN "1101011100" => beamlet_out <= "1110110000"; + WHEN "1101011101" => beamlet_out <= "1111000100"; + WHEN "1101011110" => beamlet_out <= "1111011000"; + WHEN "1101011111" => beamlet_out <= "1111101100"; + WHEN "1101100000" => beamlet_out <= "0000010001"; + WHEN "1101100001" => beamlet_out <= "0000100101"; + WHEN "1101100010" => beamlet_out <= "0000111001"; + WHEN "1101100011" => beamlet_out <= "0001001101"; + WHEN "1101100100" => beamlet_out <= "0001100001"; + WHEN "1101100101" => beamlet_out <= "0001110101"; + WHEN "1101100110" => beamlet_out <= "0010001001"; + WHEN "1101100111" => beamlet_out <= "0010011101"; + WHEN "1101101000" => beamlet_out <= "0010110001"; + WHEN "1101101001" => beamlet_out <= "0011000101"; + WHEN "1101101010" => beamlet_out <= "0011011001"; + WHEN "1101101011" => beamlet_out <= "0011101101"; + WHEN "1101101100" => beamlet_out <= "0100010001"; + WHEN "1101101101" => beamlet_out <= "0100100101"; + WHEN "1101101110" => beamlet_out <= "0100111001"; + WHEN "1101101111" => beamlet_out <= "0101001101"; + WHEN "1101110000" => beamlet_out <= "0101100001"; + WHEN "1101110001" => beamlet_out <= "0101110101"; + WHEN "1101110010" => beamlet_out <= "0110001001"; + WHEN "1101110011" => beamlet_out <= "0110011101"; + WHEN "1101110100" => beamlet_out <= "0110110001"; + WHEN "1101110101" => beamlet_out <= "0111000101"; + WHEN "1101110110" => beamlet_out <= "0111011001"; + WHEN "1101110111" => beamlet_out <= "0111101101"; + WHEN "1101111000" => beamlet_out <= "1000010001"; + WHEN "1101111001" => beamlet_out <= "1000100101"; + WHEN "1101111010" => beamlet_out <= "1000111001"; + WHEN "1101111011" => beamlet_out <= "1001001101"; + WHEN "1101111100" => beamlet_out <= "1001100001"; + WHEN "1101111101" => beamlet_out <= "1001110101"; + WHEN "1101111110" => beamlet_out <= "1010001001"; + WHEN "1101111111" => beamlet_out <= "1010011101"; + WHEN "1110000000" => beamlet_out <= "1010110001"; + WHEN "1110000001" => beamlet_out <= "1011000101"; + WHEN "1110000010" => beamlet_out <= "1011011001"; + WHEN "1110000011" => beamlet_out <= "1011101101"; + WHEN "1110000100" => beamlet_out <= "1100010001"; + WHEN "1110000101" => beamlet_out <= "1100100101"; + WHEN "1110000110" => beamlet_out <= "1100111001"; + WHEN "1110000111" => beamlet_out <= "1101001101"; + WHEN "1110001000" => beamlet_out <= "1101100001"; + WHEN "1110001001" => beamlet_out <= "1101110101"; + WHEN "1110001010" => beamlet_out <= "1110001001"; + WHEN "1110001011" => beamlet_out <= "1110011101"; + WHEN "1110001100" => beamlet_out <= "1110110001"; + WHEN "1110001101" => beamlet_out <= "1111000101"; + WHEN "1110001110" => beamlet_out <= "1111011001"; + WHEN "1110001111" => beamlet_out <= "1111101101"; + WHEN "1110010000" => beamlet_out <= "0000010010"; + WHEN "1110010001" => beamlet_out <= "0000100110"; + WHEN "1110010010" => beamlet_out <= "0000111010"; + WHEN "1110010011" => beamlet_out <= "0001001110"; + WHEN "1110010100" => beamlet_out <= "0001100010"; + WHEN "1110010101" => beamlet_out <= "0001110110"; + WHEN "1110010110" => beamlet_out <= "0010001010"; + WHEN "1110010111" => beamlet_out <= "0010011110"; + WHEN "1110011000" => beamlet_out <= "0010110010"; + WHEN "1110011001" => beamlet_out <= "0011000110"; + WHEN "1110011010" => beamlet_out <= "0011011010"; + WHEN "1110011011" => beamlet_out <= "0011101110"; + WHEN "1110011100" => beamlet_out <= "0100010010"; + WHEN "1110011101" => beamlet_out <= "0100100110"; + WHEN "1110011110" => beamlet_out <= "0100111010"; + WHEN "1110011111" => beamlet_out <= "0101001110"; + WHEN "1110100000" => beamlet_out <= "0101100010"; + WHEN "1110100001" => beamlet_out <= "0101110110"; + WHEN "1110100010" => beamlet_out <= "0110001010"; + WHEN "1110100011" => beamlet_out <= "0110011110"; + WHEN "1110100100" => beamlet_out <= "0110110010"; + WHEN "1110100101" => beamlet_out <= "0111000110"; + WHEN "1110100110" => beamlet_out <= "0111011010"; + WHEN "1110100111" => beamlet_out <= "0111101110"; + WHEN "1110101000" => beamlet_out <= "1000010010"; + WHEN "1110101001" => beamlet_out <= "1000100110"; + WHEN "1110101010" => beamlet_out <= "1000111010"; + WHEN "1110101011" => beamlet_out <= "1001001110"; + WHEN "1110101100" => beamlet_out <= "1001100010"; + WHEN "1110101101" => beamlet_out <= "1001110110"; + WHEN "1110101110" => beamlet_out <= "1010001010"; + WHEN "1110101111" => beamlet_out <= "1010011110"; + WHEN "1110110000" => beamlet_out <= "1010110010"; + WHEN "1110110001" => beamlet_out <= "1011000110"; + WHEN "1110110010" => beamlet_out <= "1011011010"; + WHEN "1110110011" => beamlet_out <= "1011101110"; + WHEN "1110110100" => beamlet_out <= "1100010010"; + WHEN "1110110101" => beamlet_out <= "1100100110"; + WHEN "1110110110" => beamlet_out <= "1100111010"; + WHEN "1110110111" => beamlet_out <= "1101001110"; + WHEN "1110111000" => beamlet_out <= "1101100010"; + WHEN "1110111001" => beamlet_out <= "1101110110"; + WHEN "1110111010" => beamlet_out <= "1110001010"; + WHEN "1110111011" => beamlet_out <= "1110011110"; + WHEN "1110111100" => beamlet_out <= "1110110010"; + WHEN "1110111101" => beamlet_out <= "1111000110"; + WHEN "1110111110" => beamlet_out <= "1111011010"; + WHEN "1110111111" => beamlet_out <= "1111101110"; + WHEN "1111000000" => beamlet_out <= "0000010011"; + WHEN "1111000001" => beamlet_out <= "0000100111"; + WHEN "1111000010" => beamlet_out <= "0000111011"; + WHEN "1111000011" => beamlet_out <= "0001001111"; + WHEN "1111000100" => beamlet_out <= "0001100011"; + WHEN "1111000101" => beamlet_out <= "0001110111"; + WHEN "1111000110" => beamlet_out <= "0010001011"; + WHEN "1111000111" => beamlet_out <= "0010011111"; + WHEN "1111001000" => beamlet_out <= "0010110011"; + WHEN "1111001001" => beamlet_out <= "0011000111"; + WHEN "1111001010" => beamlet_out <= "0011011011"; + WHEN "1111001011" => beamlet_out <= "0011101111"; + WHEN "1111001100" => beamlet_out <= "0100010011"; + WHEN "1111001101" => beamlet_out <= "0100100111"; + WHEN "1111001110" => beamlet_out <= "0100111011"; + WHEN "1111001111" => beamlet_out <= "0101001111"; + WHEN "1111010000" => beamlet_out <= "0101100011"; + WHEN "1111010001" => beamlet_out <= "0101110111"; + WHEN "1111010010" => beamlet_out <= "0110001011"; + WHEN "1111010011" => beamlet_out <= "0110011111"; + WHEN "1111010100" => beamlet_out <= "0110110011"; + WHEN "1111010101" => beamlet_out <= "0111000111"; + WHEN "1111010110" => beamlet_out <= "0111011011"; + WHEN "1111010111" => beamlet_out <= "0111101111"; + WHEN "1111011000" => beamlet_out <= "1000010011"; + WHEN "1111011001" => beamlet_out <= "1000100111"; + WHEN "1111011010" => beamlet_out <= "1000111011"; + WHEN "1111011011" => beamlet_out <= "1001001111"; + WHEN "1111011100" => beamlet_out <= "1001100011"; + WHEN "1111011101" => beamlet_out <= "1001110111"; + WHEN "1111011110" => beamlet_out <= "1010001011"; + WHEN "1111011111" => beamlet_out <= "1010011111"; + WHEN "1111100000" => beamlet_out <= "1010110011"; + WHEN "1111100001" => beamlet_out <= "1011000111"; + WHEN "1111100010" => beamlet_out <= "1011011011"; + WHEN "1111100011" => beamlet_out <= "1011101111"; + WHEN "1111100100" => beamlet_out <= "1100010011"; + WHEN "1111100101" => beamlet_out <= "1100100111"; + WHEN "1111100110" => beamlet_out <= "1100111011"; + WHEN "1111100111" => beamlet_out <= "1101001111"; + WHEN "1111101000" => beamlet_out <= "1101100011"; + WHEN "1111101001" => beamlet_out <= "1101110111"; + WHEN "1111101010" => beamlet_out <= "1110001011"; + WHEN "1111101011" => beamlet_out <= "1110011111"; + WHEN "1111101100" => beamlet_out <= "1110110011"; + WHEN "1111101101" => beamlet_out <= "1111000111"; + WHEN "1111101110" => beamlet_out <= "1111011011"; + WHEN "1111101111" => beamlet_out <= "1111101111"; + WHEN OTHERS => beamlet_out <= "0000000000"; + END CASE; + END IF; +END PROCESS; +END rtl;