From 2f6e5d644b785a0b539493be52fd08d7e1ae38a0 Mon Sep 17 00:00:00 2001
From: Romain Broucquart <romain.broucquart@synchrotron-soleil.fr>
Date: Tue, 4 Oct 2022 10:04:45 +0200
Subject: [PATCH] Change naming from BPMFRAME to BPMPACKET

* Change the naming in the package and HDL.
* Complete and correct the doc.
---
 doc/images/combpm_packet_filter.svg           | 450 ++++++++++++++++++
 doc/main.adoc                                 |  63 ++-
 hdl/combpm_packet_filter.vhd                  |  14 +-
 hdl/combpm_protocol_electron.vhd              |  12 +-
 ...me_stream.vhd => pkg_bpmpacket_stream.vhd} |  44 +-
 hdl/top_combpm_electron.vhd                   |   6 +-
 tcl/main.tcl                                  |   2 +-
 7 files changed, 544 insertions(+), 47 deletions(-)
 create mode 100644 doc/images/combpm_packet_filter.svg
 rename hdl/{pkg_bpmframe_stream.vhd => pkg_bpmpacket_stream.vhd} (71%)

diff --git a/doc/images/combpm_packet_filter.svg b/doc/images/combpm_packet_filter.svg
new file mode 100644
index 0000000..dbbe1a2
--- /dev/null
+++ b/doc/images/combpm_packet_filter.svg
@@ -0,0 +1,450 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.2" width="190.02mm" height="47.03mm" viewBox="4500 2919 19002 4703" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
+ <defs>
+  <font id="EmbeddedFont_1" horiz-adv-x="2048">
+   <font-face font-family="Cambria embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1931" descent="450"/>
+   <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+   <glyph unicode="x" horiz-adv-x="1032" d="M -6,0 L 0,74 C 74,81 124,98 150,127 L 410,469 150,823 C 121,863 79,887 23,895 L 29,957 469,957 459,895 C 410,891 368,877 334,852 L 522,598 702,838 C 662,869 616,888 565,895 L 571,957 983,957 975,895 C 900,886 849,864 823,830 L 584,512 868,127 C 894,100 935,83 989,76 L 981,0 539,0 547,74 C 610,81 653,92 676,109 L 471,385 268,115 C 294,94 340,81 406,74 L 399,0 -6,0 Z"/>
+   <glyph unicode="v" horiz-adv-x="1033" d="M 440,0 L 143,809 C 128,850 80,879 -2,895 L 2,957 459,957 453,895 C 393,887 350,872 326,850 L 543,197 760,850 C 731,871 690,886 637,895 L 643,957 1032,957 1026,895 C 944,879 898,858 889,834 L 578,0 440,0 Z"/>
+   <glyph unicode="t" horiz-adv-x="662" d="M 682,56 C 614,5 535,-20 445,-20 356,-20 295,-1 262,37 229,76 213,140 213,232 L 213,846 47,846 47,908 C 180,953 267,1035 309,1156 L 391,1156 391,957 653,957 653,846 389,846 389,218 C 389,167 396,131 409,109 422,87 451,76 498,76 544,76 592,90 641,117 L 682,56 Z"/>
+   <glyph unicode="s" horiz-adv-x="662" d="M 619,674 C 613,746 597,801 571,837 545,873 503,891 444,891 386,891 341,879 309,854 278,830 262,796 262,754 262,712 280,677 315,649 351,622 394,600 444,583 495,566 545,547 596,528 646,508 690,477 725,435 760,394 778,342 778,279 778,187 746,116 682,65 618,14 528,-12 412,-12 364,-12 309,-4 247,12 185,27 138,45 107,66 L 107,318 215,332 C 223,232 242,155 270,101 314,87 365,80 424,80 483,80 530,95 565,125 601,155 619,192 619,235 619,278 601,312 566,338 531,364 489,385 439,401 389,416 339,434 289,454 238,474 196,505 161,548 126,591 109,649 109,723 109,797 139,857 200,903 260,950 348,973 462,973 576,973 670,955 743,920 L 725,674 619,674 Z"/>
+   <glyph unicode="r" horiz-adv-x="742" d="M 653,975 C 702,975 745,960 781,932 817,903 836,867 836,823 836,779 826,745 806,719 786,693 762,680 734,680 706,680 682,685 662,697 641,709 628,724 623,743 636,757 643,776 643,801 643,842 624,862 586,862 548,862 509,834 470,779 431,724 412,665 412,602 L 412,127 C 449,102 502,83 573,69 L 565,-1 94,-1 102,73 C 158,83 203,101 238,127 L 238,710 C 238,761 227,795 206,814 185,832 147,843 94,846 L 100,905 C 118,908 201,931 350,975 L 387,956 408,813 C 480,921 562,975 653,975 Z"/>
+   <glyph unicode="p" horiz-adv-x="980" d="M 215,713 C 215,763 205,798 184,816 164,835 127,845 74,848 L 80,907 C 98,910 181,933 330,977 L 367,957 385,832 C 441,927 530,975 653,975 903,975 1028,817 1028,500 1028,333 989,206 909,118 830,30 715,-14 565,-14 501,-14 443,-3 391,19 L 391,-305 C 425,-331 472,-349 532,-360 L 526,-430 74,-430 82,-356 C 135,-349 180,-332 215,-305 L 215,713 Z M 637,887 C 473,887 391,759 391,502 L 391,113 C 440,86 504,72 584,72 663,72 727,110 775,185 824,260 848,364 848,498 848,632 831,730 797,793 763,856 709,887 637,887 Z"/>
+   <glyph unicode="o" horiz-adv-x="874" d="M 351,788 C 312,726 293,624 293,482 293,340 312,237 351,174 390,112 454,80 543,80 631,80 696,112 736,174 777,237 797,340 797,482 797,624 777,726 737,788 698,850 633,881 544,881 454,881 390,850 351,788 Z M 218,113 C 145,198 109,321 109,482 109,643 145,765 218,849 291,933 399,975 543,975 686,975 794,933 867,849 940,765 977,643 977,482 977,321 940,198 867,113 794,28 686,-14 543,-14 399,-14 291,28 218,113 Z"/>
+   <glyph unicode="m" horiz-adv-x="1589" d="M 233,711 C 233,762 223,796 203,815 182,833 145,844 90,846 L 96,906 C 118,910 202,933 348,975 L 385,957 399,850 C 472,934 555,975 649,975 775,975 865,933 920,848 1012,933 1104,975 1195,975 1286,975 1361,950 1420,901 1480,851 1509,773 1509,668 L 1509,127 C 1542,103 1590,84 1653,70 L 1645,1 1196,1 1200,70 C 1252,78 1297,97 1335,127 L 1335,674 C 1335,809 1281,877 1174,877 1130,877 1089,863 1051,836 1012,809 984,777 965,740 L 965,127 C 995,103 1042,84 1108,70 L 1100,1 649,1 655,70 C 707,78 752,97 791,127 L 791,674 C 791,809 737,877 629,877 581,877 536,860 494,827 451,793 423,757 410,717 L 410,127 C 441,103 488,84 551,70 L 543,1 90,1 98,74 C 156,84 201,102 233,127 L 233,711 Z"/>
+   <glyph unicode="l" horiz-adv-x="504" d="M 190,1161 C 190,1212 180,1246 160,1265 139,1283 102,1294 47,1297 L 53,1358 C 102,1366 193,1389 326,1428 L 365,1407 365,127 C 399,101 446,83 508,72 L 500,0 47,0 55,76 C 113,84 158,101 190,127 L 190,1161 Z"/>
+   <glyph unicode="k" horiz-adv-x="1060" d="M 193,1161 C 193,1212 182,1246 161,1265 140,1283 102,1294 49,1297 L 55,1358 C 104,1366 195,1389 328,1428 L 367,1407 367,559 647,842 C 683,880 705,918 715,957 L 987,957 993,895 C 899,891 824,862 768,807 L 580,619 887,129 C 936,102 999,83 1075,72 L 1067,0 774,0 461,500 367,408 367,127 C 401,101 449,83 510,72 L 502,0 49,0 57,76 C 115,84 160,101 193,127 L 193,1161 Z"/>
+   <glyph unicode="i" horiz-adv-x="477" d="M 213,715 C 213,765 202,800 181,818 160,837 123,847 70,850 L 76,909 C 128,919 218,943 346,981 L 387,959 387,125 C 421,100 469,82 530,70 L 522,0 70,0 78,74 C 134,83 179,100 213,125 L 213,715 Z M 290,1344 C 361,1344 397,1304 397,1225 397,1146 361,1106 290,1106 218,1106 182,1146 182,1225 182,1304 218,1344 290,1344 Z"/>
+   <glyph unicode="f" horiz-adv-x="742" d="M 350,1208 L 375,963 588,963 588,854 375,854 375,127 C 406,104 461,85 541,70 L 535,0 57,0 66,74 C 123,83 168,101 201,127 L 201,854 49,854 39,926 C 110,933 164,945 201,963 L 201,1073 C 201,1186 226,1278 275,1348 325,1417 402,1452 506,1452 610,1452 688,1435 741,1401 L 741,1204 629,1204 C 612,1319 566,1376 489,1376 447,1376 413,1362 388,1332 363,1303 350,1262 350,1208 Z"/>
+   <glyph unicode="e" horiz-adv-x="795" d="M 311,498 L 311,488 C 311,321 332,212 375,160 414,111 477,86 563,86 608,86 653,95 696,111 740,127 773,144 795,160 L 825,183 877,121 C 867,112 853,99 836,84 818,69 781,49 725,24 669,-1 612,-14 555,-14 399,-14 288,28 222,112 156,196 123,317 123,476 123,635 159,758 232,845 305,932 411,975 548,975 685,975 781,940 836,869 890,798 920,692 924,553 L 881,498 311,498 Z M 543,893 C 393,893 315,787 311,574 L 739,588 C 739,696 725,774 697,821 669,869 618,893 543,893 Z"/>
+   <glyph unicode="d" horiz-adv-x="980" d="M 487,-14 C 238,-14 113,144 113,459 113,627 152,755 231,843 311,931 425,975 575,975 634,975 692,963 750,940 L 750,1161 C 750,1212 739,1246 719,1265 698,1283 662,1294 608,1297 L 612,1356 C 659,1364 750,1388 885,1428 L 926,1407 926,125 C 957,101 1004,82 1067,70 L 1061,0 766,0 750,121 C 692,31 605,-14 487,-14 Z M 506,74 C 668,74 750,202 750,459 L 750,848 C 698,875 638,889 569,889 482,889 414,851 366,776 317,701 293,597 293,462 293,328 310,229 345,167 380,105 434,74 506,74 Z"/>
+   <glyph unicode="c" horiz-adv-x="742" d="M 526,975 C 621,975 697,955 755,915 813,874 842,822 842,758 842,727 831,699 810,674 789,649 764,637 736,637 708,637 685,644 666,658 646,671 634,689 627,711 644,740 653,768 653,796 653,824 642,848 619,870 595,891 562,901 517,901 473,901 433,890 398,869 364,847 337,815 319,774 291,703 276,621 276,529 276,436 279,368 285,326 290,284 301,243 317,203 350,125 421,86 528,86 573,86 618,95 662,111 705,127 737,144 758,160 L 788,183 842,121 C 832,112 819,99 801,84 783,69 746,49 689,24 632,-1 575,-14 518,-14 364,-14 253,28 186,112 119,196 86,321 86,488 90,813 237,975 526,975 Z"/>
+   <glyph unicode="b" horiz-adv-x="980" d="M 610,975 C 750,975 851,931 915,844 980,757 1012,638 1012,488 1012,338 973,216 897,124 821,32 711,-14 569,-14 483,-14 404,19 332,86 311,55 298,26 291,0 L 193,0 193,1162 C 193,1212 182,1247 162,1265 141,1283 104,1294 49,1297 L 55,1358 C 104,1366 195,1390 328,1428 L 369,1407 369,832 C 389,871 422,905 468,933 514,961 561,975 610,975 Z M 785,209 C 801,253 812,296 817,338 823,381 825,428 825,480 825,531 824,574 822,609 820,643 815,678 807,716 799,754 787,784 772,807 738,860 690,887 628,887 566,887 517,874 483,848 449,822 425,785 410,735 382,652 369,547 369,420 L 369,174 C 446,106 514,72 571,72 629,72 675,84 710,108 744,132 770,166 785,209 Z"/>
+   <glyph unicode="a" horiz-adv-x="875" d="M 356,-14 C 272,-14 206,6 160,47 113,88 90,149 90,231 90,312 123,378 188,429 254,480 349,510 473,518 L 641,531 641,697 C 641,765 627,815 598,846 569,877 523,893 459,893 345,893 289,862 289,801 289,765 309,740 350,725 350,660 311,627 233,627 198,627 169,638 147,660 126,682 115,710 115,746 115,815 146,871 208,913 270,954 355,975 464,975 572,975 658,950 721,901 784,852 815,784 815,697 L 815,125 C 847,102 894,84 958,70 L 950,0 668,0 647,93 C 571,22 474,-14 356,-14 Z M 270,238 C 270,126 316,70 408,70 480,70 558,110 641,189 L 641,447 477,432 C 413,427 362,407 326,372 289,337 270,292 270,238 Z"/>
+   <glyph unicode="_" horiz-adv-x="768" d="M 760,-229 L 0,-229 0,-118 760,-118 760,-229 Z"/>
+   <glyph unicode="P" horiz-adv-x="1006" d="M 610,1366 C 913,1366 1065,1240 1065,987 1065,845 1019,745 926,687 833,629 698,600 520,600 L 455,600 455,131 C 500,105 566,87 653,76 L 645,0 76,0 88,76 C 166,85 228,104 274,131 L 274,1237 C 221,1264 154,1283 74,1292 79,1325 83,1350 84,1366 L 610,1366 Z M 881,991 C 881,1184 784,1280 590,1280 546,1280 501,1276 455,1268 L 455,692 520,692 C 760,692 881,792 881,991 Z"/>
+   <glyph unicode="B" horiz-adv-x="1086" d="M 625,1366 C 937,1366 1094,1253 1094,1026 1094,871 1014,770 854,725 948,698 1021,655 1073,597 1125,539 1151,469 1151,385 1151,266 1110,172 1027,103 944,34 829,0 680,0 L 86,0 C 87,18 91,43 96,76 175,85 238,104 285,131 L 285,1237 C 237,1264 170,1283 84,1292 L 94,1366 625,1366 Z M 465,670 L 465,109 C 545,103 617,100 680,100 870,100 965,195 965,383 965,475 936,545 880,595 823,645 739,670 627,670 L 465,670 Z M 623,1272 C 588,1272 536,1269 465,1264 L 465,770 629,770 C 727,770 799,791 846,832 892,873 915,936 915,1022 915,1108 892,1171 845,1212 798,1252 724,1272 623,1272 Z"/>
+   <glyph unicode="A" horiz-adv-x="1219" d="M 27,-1 L 37,75 C 98,85 147,103 182,129 L 565,1366 688,1366 1110,127 C 1144,102 1189,85 1245,75 L 1237,-1 725,-1 735,75 C 814,85 877,103 924,131 L 819,440 406,440 311,131 C 356,105 423,86 510,75 L 502,-1 27,-1 Z M 604,1081 L 438,547 784,547 604,1081 Z"/>
+  </font>
+ </defs>
+ <defs>
+  <font id="EmbeddedFont_2" horiz-adv-x="2048">
+   <font-face font-family="Consolas embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="476"/>
+   <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+   <glyph unicode="u" horiz-adv-x="874" d="M 195,424 L 195,1118 379,1118 379,424 C 379,323 397,249 433,202 468,155 523,131 598,131 685,131 751,162 797,223 843,284 866,371 866,485 L 866,1118 1051,1118 1051,0 866,0 866,168 C 833,103 789,54 733,21 676,-12 610,-29 535,-29 420,-29 335,9 279,84 223,159 195,272 195,424 Z"/>
+   <glyph unicode="t" horiz-adv-x="927" d="M 614,1438 L 614,1120 1032,1120 1032,977 614,977 614,369 C 614,286 630,229 661,196 692,163 747,147 825,147 L 1032,147 1032,0 807,0 C 669,0 572,28 515,83 458,138 430,234 430,369 L 430,977 131,977 131,1120 430,1120 430,1438 614,1438 Z"/>
+   <glyph unicode="s" horiz-adv-x="821" d="M 973,1081 L 973,901 C 920,932 867,955 814,970 761,985 706,993 651,993 568,993 506,980 465,953 424,926 403,884 403,829 403,779 418,742 449,717 480,692 556,668 678,645 L 752,631 C 843,614 913,579 960,527 1007,475 1030,407 1030,324 1030,213 991,127 912,65 833,2 724,-29 584,-29 529,-29 471,-23 410,-12 349,0 284,18 213,41 L 213,231 C 282,196 347,169 410,152 473,134 532,125 588,125 669,125 732,142 777,175 822,208 844,254 844,313 844,398 762,457 599,490 L 591,492 522,506 C 416,527 339,562 290,611 241,660 217,726 217,811 217,918 253,1001 326,1060 399,1118 502,1147 637,1147 697,1147 755,1142 810,1131 865,1120 920,1103 973,1081 Z"/>
+   <glyph unicode="r" horiz-adv-x="821" d="M 1155,889 C 1116,920 1076,942 1035,956 994,970 950,977 901,977 786,977 699,941 638,869 577,797 547,693 547,557 L 547,0 362,0 362,1120 547,1120 547,901 C 578,980 625,1041 689,1084 752,1126 828,1147 915,1147 960,1147 1003,1141 1042,1130 1081,1119 1119,1101 1155,1077 L 1155,889 Z"/>
+   <glyph unicode="p" horiz-adv-x="927" d="M 375,141 L 375,-426 190,-426 190,1120 375,1120 375,977 C 406,1032 447,1075 498,1104 549,1133 607,1147 674,1147 809,1147 916,1095 993,990 1070,885 1108,740 1108,555 1108,373 1069,230 992,127 915,23 809,-29 674,-29 606,-29 547,-14 496,15 445,44 404,86 375,141 Z M 915,559 C 915,702 893,809 848,882 803,955 736,991 647,991 558,991 490,955 444,882 398,809 375,701 375,559 375,418 398,310 444,237 490,164 558,127 647,127 736,127 803,163 848,236 893,309 915,416 915,559 Z"/>
+   <glyph unicode="o" horiz-adv-x="980" d="M 616,991 C 523,991 452,955 404,882 356,809 332,702 332,559 332,417 356,310 404,237 452,164 523,127 616,127 710,127 781,164 829,237 877,310 901,417 901,559 901,702 877,809 829,882 781,955 710,991 616,991 Z M 616,1147 C 771,1147 890,1097 973,996 1055,895 1096,750 1096,559 1096,368 1055,222 973,122 891,21 772,-29 616,-29 461,-29 342,21 260,122 178,222 137,368 137,559 137,750 178,895 260,996 342,1097 461,1147 616,1147 Z"/>
+   <glyph unicode="n" horiz-adv-x="874" d="M 1051,694 L 1051,0 866,0 866,694 C 866,795 848,869 813,916 778,963 722,987 647,987 561,987 495,957 449,896 402,835 379,747 379,633 L 379,0 195,0 195,1120 379,1120 379,952 C 412,1016 456,1065 512,1098 568,1131 634,1147 711,1147 825,1147 910,1110 967,1035 1023,960 1051,846 1051,694 Z"/>
+   <glyph unicode="l" horiz-adv-x="874" d="M 639,406 C 639,323 654,261 685,219 715,177 760,156 819,156 L 1034,156 1034,0 801,0 C 691,0 606,35 546,106 485,177 455,277 455,406 L 455,1423 160,1423 160,1567 639,1567 639,406 Z"/>
+   <glyph unicode="i" horiz-adv-x="953" d="M 256,1120 L 727,1120 727,143 1092,143 1092,0 178,0 178,143 543,143 543,977 256,977 256,1120 Z M 543,1556 L 727,1556 727,1323 543,1323 543,1556 Z"/>
+   <glyph unicode="g" horiz-adv-x="953" d="M 858,569 C 858,707 836,812 791,884 746,955 680,991 594,991 504,991 435,955 388,884 341,812 317,707 317,569 317,431 341,326 389,254 436,181 505,145 596,145 681,145 746,181 791,254 836,327 858,432 858,569 Z M 1042,72 C 1042,-96 1002,-223 923,-310 844,-397 727,-440 573,-440 522,-440 469,-435 414,-426 359,-417 303,-403 248,-385 L 248,-203 C 313,-234 373,-256 426,-271 479,-286 528,-293 573,-293 672,-293 745,-266 790,-212 835,-158 858,-72 858,45 L 858,53 858,178 C 829,115 789,69 738,38 687,7 626,-8 553,-8 422,-8 318,44 240,149 162,254 123,394 123,569 123,745 162,885 240,990 318,1095 422,1147 553,1147 625,1147 686,1133 736,1104 786,1075 827,1031 858,971 L 858,1116 1042,1116 1042,72 Z"/>
+   <glyph unicode="e" horiz-adv-x="1006" d="M 1112,606 L 1112,516 315,516 315,510 C 315,388 347,294 411,227 474,160 564,127 680,127 739,127 800,136 864,155 928,174 996,202 1069,240 L 1069,57 C 999,28 932,7 867,-8 802,-22 739,-29 678,-29 504,-29 368,23 270,128 172,232 123,376 123,559 123,738 171,880 267,987 363,1094 491,1147 651,1147 794,1147 906,1099 989,1002 1071,905 1112,773 1112,606 Z M 928,659 C 925,767 900,850 852,906 803,963 734,991 643,991 554,991 481,962 424,903 367,844 333,763 322,659 L 928,659 Z"/>
+   <glyph unicode="d" horiz-adv-x="953" d="M 858,977 L 858,1556 1042,1556 1042,0 858,0 858,141 C 827,86 787,44 736,15 685,-14 626,-29 559,-29 424,-29 317,24 240,129 162,234 123,378 123,563 123,745 162,888 240,992 318,1095 424,1147 559,1147 626,1147 686,1133 737,1104 788,1075 829,1032 858,977 Z M 317,559 C 317,416 340,309 385,236 430,163 497,127 586,127 675,127 742,164 789,237 835,310 858,418 858,559 858,701 835,809 789,882 742,955 675,991 586,991 497,991 430,955 385,882 340,809 317,702 317,559 Z"/>
+   <glyph unicode="c" horiz-adv-x="874" d="M 1061,57 C 1012,28 961,7 909,-8 856,-22 803,-29 748,-29 575,-29 439,23 342,127 244,231 195,375 195,559 195,743 244,887 342,991 439,1095 575,1147 748,1147 802,1147 855,1140 906,1126 957,1112 1009,1090 1061,1061 L 1061,868 C 1012,911 964,943 915,962 866,981 810,991 748,991 633,991 544,954 482,879 420,804 389,698 389,559 389,421 420,315 483,240 545,165 633,127 748,127 812,127 869,137 920,157 971,176 1018,207 1061,248 L 1061,57 Z"/>
+   <glyph unicode="_" horiz-adv-x="1245" d="M 1233,-403 L 1233,-483 0,-483 0,-403 1233,-403 Z"/>
+   <glyph unicode="X" horiz-adv-x="1218" d="M 86,1493 L 303,1493 631,930 965,1493 1182,1493 735,791 1214,0 997,0 631,643 236,0 18,0 518,791 86,1493 Z"/>
+   <glyph unicode="S" horiz-adv-x="980" d="M 1012,1442 L 1012,1237 C 951,1276 889,1306 828,1326 766,1346 704,1356 641,1356 546,1356 470,1334 415,1290 360,1245 332,1185 332,1110 332,1044 350,994 387,959 423,924 491,895 590,872 L 696,848 C 836,815 938,764 1002,694 1066,624 1098,529 1098,408 1098,266 1054,158 966,83 878,8 750,-29 582,-29 512,-29 442,-21 371,-7 300,9 229,31 158,61 L 158,276 C 235,227 307,192 376,169 444,146 513,135 582,135 684,135 763,158 820,204 877,249 905,313 905,395 905,470 886,527 847,566 808,605 740,636 643,657 L 535,682 C 396,713 296,761 233,824 170,887 139,972 139,1079 139,1212 184,1319 274,1400 363,1480 482,1520 631,1520 688,1520 749,1514 812,1501 875,1488 942,1468 1012,1442 Z"/>
+   <glyph unicode="R" horiz-adv-x="1113" d="M 760,705 C 812,692 856,667 893,630 930,593 975,519 1030,408 L 1233,0 1016,0 838,377 C 787,484 741,554 700,585 659,616 605,631 539,631 L 346,631 346,0 143,0 143,1493 559,1493 C 723,1493 849,1456 936,1382 1023,1308 1067,1201 1067,1061 1067,962 1040,882 987,820 933,757 857,719 760,705 Z M 346,1327 L 346,797 567,797 C 664,797 736,819 783,862 830,905 854,972 854,1061 854,1147 829,1213 779,1259 728,1304 655,1327 559,1327 L 346,1327 Z"/>
+   <glyph unicode="M" horiz-adv-x="1086" d="M 86,1493 L 356,1493 614,733 874,1493 1145,1493 1145,0 958,0 958,1319 692,532 539,532 272,1319 272,0 86,0 86,1493 Z"/>
+   <glyph unicode="I" horiz-adv-x="848" d="M 201,1493 L 1030,1493 1030,1323 717,1323 717,170 1030,170 1030,0 201,0 201,170 514,170 514,1323 201,1323 201,1493 Z"/>
+   <glyph unicode="B" horiz-adv-x="980" d="M 369,713 L 369,166 608,166 C 725,166 809,187 859,228 909,269 934,336 934,430 934,527 908,599 855,645 802,690 720,713 608,713 L 369,713 Z M 369,1327 L 369,877 604,877 C 701,877 772,896 816,933 859,970 881,1031 881,1114 881,1189 860,1244 817,1277 774,1310 703,1327 604,1327 L 369,1327 Z M 166,1493 L 608,1493 C 761,1493 878,1460 961,1394 1044,1328 1085,1235 1085,1114 1085,1023 1063,951 1020,898 976,845 910,812 823,799 921,784 998,743 1054,674 1109,605 1137,517 1137,410 1137,275 1093,173 1004,104 915,35 783,0 608,0 L 166,0 166,1493 Z"/>
+   <glyph unicode="A" horiz-adv-x="1166" d="M 616,1315 L 403,551 829,551 616,1315 Z M 494,1493 L 739,1493 1196,0 987,0 877,389 354,389 246,0 37,0 494,1493 Z"/>
+  </font>
+ </defs>
+ <defs class="EmbeddedBulletChars">
+  <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
+  </g>
+  <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
+  </g>
+  <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
+  </g>
+  <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
+  </g>
+  <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
+  </g>
+  <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
+  </g>
+  <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
+  </g>
+  <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
+  </g>
+  <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
+  </g>
+  <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
+  </g>
+ </defs>
+ <g class="Page">
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id3">
+     <rect class="BoundingBox" stroke="none" fill="none" x="7619" y="6173" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 7620,6223 L 7985,6223"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 8128,6223 L 7978,6173 7978,6273 8128,6223 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id4">
+     <rect class="BoundingBox" stroke="none" fill="none" x="5474" y="5968" width="2148" height="511"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 6548,6477 L 5475,6477 5475,5969 7620,5969 7620,6477 6548,6477 Z"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5869" y="6327"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">combpm_axis</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.CustomShape">
+   <g id="id5">
+    <rect class="BoundingBox" stroke="none" fill="none" x="9904" y="2919" width="3686" height="1654"/>
+    <path fill="rgb(255,255,255)" stroke="none" d="M 11747,4571 L 9905,4571 9905,2920 13588,2920 13588,4571 11747,4571 Z"/>
+    <path fill="none" stroke="rgb(0,0,0)" d="M 11747,4571 L 9905,4571 9905,2920 13588,2920 13588,4571 11747,4571 Z"/>
+    <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Consolas, monospace" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9955" y="3232"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">BRAM_controller</tspan></tspan></tspan></text>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id6">
+     <rect class="BoundingBox" stroke="none" fill="none" x="7619" y="3633" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 7620,3683 L 7985,3683"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 8128,3683 L 7978,3633 7978,3733 8128,3683 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id7">
+     <rect class="BoundingBox" stroke="none" fill="none" x="4500" y="3428" width="3122" height="511"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 6061,3937 L 4501,3937 4501,3429 7620,3429 7620,3937 6061,3937 Z"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5082" y="3787"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">packet_filter_aximm</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id8">
+     <rect class="BoundingBox" stroke="none" fill="none" x="9398" y="3633" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 9541,3683 L 9906,3683"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 9548,3683 L 9398,3733 9398,3633 9548,3683 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id9">
+     <rect class="BoundingBox" stroke="none" fill="none" x="9906" y="3429" width="1064" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10007" y="3787"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">aximm</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.CustomShape">
+   <g id="id10">
+    <rect class="BoundingBox" stroke="none" fill="none" x="15366" y="2920" width="3813" height="2289"/>
+    <path fill="rgb(255,255,255)" stroke="none" d="M 17272,5207 L 15367,5207 15367,2921 19177,2921 19177,5207 17272,5207 Z"/>
+    <path fill="none" stroke="rgb(0,0,0)" d="M 17272,5207 L 15367,5207 15367,2921 19177,2921 19177,5207 17272,5207 Z"/>
+    <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Consolas, monospace" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15417" y="3233"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">BRAM_true_dp</tspan></tspan></tspan></text>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id11">
+     <rect class="BoundingBox" stroke="none" fill="none" x="14859" y="3633" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 15002,3683 L 15367,3683"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 15009,3683 L 14859,3733 14859,3633 15009,3683 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id12">
+     <rect class="BoundingBox" stroke="none" fill="none" x="15367" y="3429" width="1716" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15468" y="3787"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">PortA_addr</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id13">
+     <rect class="BoundingBox" stroke="none" fill="none" x="13588" y="3633" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 13589,3683 L 13954,3683"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 14097,3683 L 13947,3633 13947,3733 14097,3683 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id14">
+     <rect class="BoundingBox" stroke="none" fill="none" x="11916" y="3429" width="1674" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12164" y="3787"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">bram_addr</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id15">
+     <rect class="BoundingBox" stroke="none" fill="none" x="14859" y="4776" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 15002,4826 L 15367,4826"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 15009,4826 L 14859,4876 14859,4776 15009,4826 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id16">
+     <rect class="BoundingBox" stroke="none" fill="none" x="15367" y="4572" width="1720" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15468" y="4930"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">PortB_addr</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id17">
+    <rect class="BoundingBox" stroke="none" fill="none" x="8127" y="6173" width="1272" height="101"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 8128,6223 L 9255,6223"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 9398,6223 L 9248,6173 9248,6273 9398,6223 Z"/>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id18">
+    <rect class="BoundingBox" stroke="none" fill="none" x="14096" y="3633" width="764" height="101"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 14097,3683 L 14716,3683"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 14859,3683 L 14709,3633 14709,3733 14859,3683 Z"/>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.CustomShape">
+   <g id="id19">
+    <rect class="BoundingBox" stroke="none" fill="none" x="9905" y="5079" width="2797" height="2543"/>
+    <path fill="rgb(255,255,255)" stroke="none" d="M 11303,7620 L 9906,7620 9906,5080 12700,5080 12700,7620 11303,7620 Z"/>
+    <path fill="none" stroke="rgb(0,0,0)" d="M 11303,7620 L 9906,7620 9906,5080 12700,5080 12700,7620 11303,7620 Z"/>
+    <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Consolas, monospace" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9956" y="5392"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">AXIS_Register</tspan></tspan></tspan></text>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id20">
+     <rect class="BoundingBox" stroke="none" fill="none" x="12699" y="6046" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 12700,6096 L 13065,6096"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 13208,6096 L 13058,6046 13058,6146 13208,6096 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id21">
+     <rect class="BoundingBox" stroke="none" fill="none" x="11548" y="5842" width="1153" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11707" y="6200"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">bpm_id</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id22">
+     <rect class="BoundingBox" stroke="none" fill="none" x="19176" y="4776" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 19177,4826 L 19542,4826"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 19685,4826 L 19535,4776 19535,4876 19685,4826 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id23">
+     <rect class="BoundingBox" stroke="none" fill="none" x="17492" y="4572" width="1686" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="17739" y="4930"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">PortB_data</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id24">
+     <rect class="BoundingBox" stroke="none" fill="none" x="13588" y="4141" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 13589,4191 L 13954,4191"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 14097,4191 L 13947,4141 13947,4241 14097,4191 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id25">
+     <rect class="BoundingBox" stroke="none" fill="none" x="11950" y="3937" width="1640" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12202" y="4295"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">bram_data</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id26">
+     <rect class="BoundingBox" stroke="none" fill="none" x="14859" y="4141" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 15002,4191 L 15367,4191"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 15009,4191 L 14859,4241 14859,4141 15009,4191 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id27">
+     <rect class="BoundingBox" stroke="none" fill="none" x="15367" y="3937" width="1682" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15468" y="4295"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">PortA_data</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id28">
+    <rect class="BoundingBox" stroke="none" fill="none" x="14096" y="4141" width="764" height="101"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 14097,4191 L 14716,4191"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 14859,4191 L 14709,4141 14709,4241 14859,4191 Z"/>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id29">
+    <rect class="BoundingBox" stroke="none" fill="none" x="13207" y="4776" width="1653" height="1322"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 13208,6096 L 14034,6096 14034,4826 14716,4826"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 14859,4826 L 14709,4776 14709,4876 14859,4826 Z"/>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id30">
+     <rect class="BoundingBox" stroke="none" fill="none" x="21986" y="6396" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 22129,6446 L 22494,6446"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 22136,6446 L 21986,6496 21986,6396 22136,6446 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id31">
+     <rect class="BoundingBox" stroke="none" fill="none" x="22493" y="6191" width="1009" height="511"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 22997,6700 L 22494,6700 22494,6192 23500,6192 23500,6700 22997,6700 Z"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="22595" y="6550"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">tvalid</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id32">
+     <rect class="BoundingBox" stroke="none" fill="none" x="21981" y="5538" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 22124,5588 L 22489,5588"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 22131,5588 L 21981,5638 21981,5538 22131,5588 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id33">
+     <rect class="BoundingBox" stroke="none" fill="none" x="22488" y="5333" width="929" height="511"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 22952,5842 L 22489,5842 22489,5334 23415,5334 23415,5842 22952,5842 Z"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="22590" y="5692"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">tdest</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.CustomShape">
+   <g id="id34">
+    <rect class="BoundingBox" stroke="none" fill="none" x="20985" y="6185" width="531" height="531"/>
+    <path fill="rgb(255,255,255)" stroke="none" d="M 21250,6200 L 21250,6200 C 21294,6200 21338,6212 21376,6234 21414,6256 21445,6287 21467,6325 21489,6363 21501,6407 21501,6450 L 21501,6450 21501,6450 C 21501,6494 21489,6538 21467,6576 21445,6614 21414,6645 21376,6667 21338,6689 21294,6701 21250,6701 L 21000,6701 21000,6200 21250,6200 Z"/>
+    <path fill="none" stroke="rgb(0,0,0)" stroke-width="28" stroke-linejoin="round" d="M 21250,6200 L 21250,6200 C 21294,6200 21338,6212 21376,6234 21414,6256 21445,6287 21467,6325 21489,6363 21501,6407 21501,6450 L 21501,6450 21501,6450 C 21501,6494 21489,6538 21467,6576 21445,6614 21414,6645 21376,6667 21338,6689 21294,6701 21250,6701 L 21000,6701 21000,6200 21250,6200 Z"/>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id35">
+    <rect class="BoundingBox" stroke="none" fill="none" x="21499" y="6396" width="488" height="101"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 21500,6450 L 21751,6450 21751,6446 21843,6446"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 21986,6446 L 21836,6396 21836,6496 21986,6446 Z"/>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.CustomShape">
+   <g id="id36">
+    <rect class="BoundingBox" stroke="none" fill="none" x="20320" y="5461" width="256" height="256"/>
+    <path fill="rgb(0,0,0)" stroke="none" d="M 20575,5589 C 20575,5611 20569,5633 20558,5652 20547,5672 20531,5688 20511,5699 20492,5710 20470,5716 20448,5716 20425,5716 20403,5710 20384,5699 20364,5688 20348,5672 20337,5652 20326,5633 20320,5611 20320,5589 20320,5566 20326,5544 20337,5525 20348,5505 20364,5489 20384,5478 20403,5467 20425,5461 20448,5461 20470,5461 20492,5467 20511,5478 20531,5489 20547,5505 20558,5525 20569,5544 20575,5566 20575,5589 L 20575,5589 Z"/>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id37">
+    <rect class="BoundingBox" stroke="none" fill="none" x="20446" y="5714" width="555" height="637"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 20447,5715 L 20447,6300 20857,6300"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 21000,6300 L 20850,6250 20850,6350 21000,6300 Z"/>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id38">
+    <rect class="BoundingBox" stroke="none" fill="none" x="20573" y="5538" width="1409" height="101"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 20574,5588 L 21838,5588"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 21981,5588 L 21831,5538 21831,5638 21981,5588 Z"/>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id39">
+    <rect class="BoundingBox" stroke="none" fill="none" x="19684" y="4825" width="765" height="638"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 19685,4826 L 20447,4826 20447,5461"/>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id40">
+     <rect class="BoundingBox" stroke="none" fill="none" x="12699" y="7062" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 12700,7112 L 13065,7112"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 13208,7112 L 13058,7062 13058,7162 13208,7112 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id41">
+     <rect class="BoundingBox" stroke="none" fill="none" x="11849" y="6858" width="852" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11973" y="7216"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">tdata</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id42">
+    <rect class="BoundingBox" stroke="none" fill="none" x="13207" y="7062" width="8765" height="101"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 13208,7112 L 21828,7112"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 21971,7112 L 21821,7062 21821,7162 21971,7112 Z"/>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id43">
+     <rect class="BoundingBox" stroke="none" fill="none" x="12699" y="6554" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 12700,6604 L 13065,6604"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 13208,6604 L 13058,6554 13058,6654 13208,6604 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id44">
+     <rect class="BoundingBox" stroke="none" fill="none" x="11794" y="6350" width="907" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11914" y="6708"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">tvalid</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id45">
+    <rect class="BoundingBox" stroke="none" fill="none" x="13207" y="6550" width="7794" height="101"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 13208,6604 L 17097,6604 17097,6600 20857,6600"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 21000,6600 L 20850,6550 20850,6650 21000,6600 Z"/>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id46">
+     <rect class="BoundingBox" stroke="none" fill="none" x="21971" y="7062" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 22114,7112 L 22479,7112"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 22121,7112 L 21971,7162 21971,7062 22121,7112 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id47">
+     <rect class="BoundingBox" stroke="none" fill="none" x="22478" y="6857" width="954" height="511"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 22955,7366 L 22479,7366 22479,6858 23430,6858 23430,7366 22955,7366 Z"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="22580" y="7216"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">tdata</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="Group">
+   <g class="com.sun.star.drawing.LineShape">
+    <g id="id48">
+     <rect class="BoundingBox" stroke="none" fill="none" x="9398" y="6173" width="510" height="101"/>
+     <path fill="none" stroke="rgb(0,0,0)" d="M 9541,6223 L 9906,6223"/>
+     <path fill="rgb(0,0,0)" stroke="none" d="M 9548,6223 L 9398,6273 9398,6173 9548,6223 Z"/>
+    </g>
+   </g>
+   <g class="TextShape">
+    <g id="id49">
+     <rect class="BoundingBox" stroke="none" fill="none" x="9906" y="5969" width="763" height="509"/>
+     <text class="SVGTextShape"><tspan class="TextParagraph" font-family="Cambria, serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10007" y="6327"><tspan fill="rgb(0,0,0)" stroke="none" style="white-space: pre">axis</tspan></tspan></tspan></text>
+    </g>
+   </g>
+  </g>
+  <g class="com.sun.star.drawing.ConnectorShape">
+   <g id="id50">
+    <rect class="BoundingBox" stroke="none" fill="none" x="8127" y="3633" width="1272" height="101"/>
+    <path fill="none" stroke="rgb(52,101,164)" d="M 8128,3683 L 9255,3683"/>
+    <path fill="rgb(52,101,164)" stroke="none" d="M 9398,3683 L 9248,3633 9248,3733 9398,3683 Z"/>
+   </g>
+  </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/doc/main.adoc b/doc/main.adoc
index dd1f92a..22a2b8a 100644
--- a/doc/main.adoc
+++ b/doc/main.adoc
@@ -37,7 +37,43 @@ image::images/overview.svg[]
 
 The module provide additionnal blocs usefull for the application.
 
-* Frame filter
+* Packet filter
+
+=== Package
+
+A package describing the AXIS packet at the module output is present.
+It helps to automatically pack or unpack the packet (functions _bpmpacket2slv()_ or _slv2bpmpacket()_ ).
+A zero packet (_C_BPMPACKET_ZERO) is also declared.
+
+.t_bpmpacket record type
+[cols="1,1,1"]
+[%autowidth]
+|===
+|Member name    | Type                          | Description
+
+|pos_x          | std_logic_vector(31 downto 0) | X position
+|pos_y          | std_logic_vector(31 downto 0) | Y position
+|bpm_id         | std_logic_vector(15 downto 0) | ID of the source BPM
+|mc_timestamp   | std_logic_vector(39 downto 0) | Timestamp at machine clock frequency
+|fa_seq         | std_logic_vector(7 downto 0)  | FA sequence number, LSB only
+|===
+
+.Some usage of pkg_bpmpacket.vhd
+[example]
+[source,vhdl]
+----
+    signal my_packet    : t_bpmpacket;
+
+(...)
+
+    my_packet  <= slv2bpmpacket(axis_tdata);  -- Convert from AXIS tdata to a BPM packet
+
+    id      <= my_packet.bpm_id;             -- Access packet fields
+    pos_x   <= my_packet.pos_x;
+
+    axis_tdata_o <= bpmpacket(my_packet); -- Convert back to logic vector for AXIS tdata
+----
+
 
 // ================================================================================
 == Details
@@ -49,15 +85,15 @@ The module provide additionnal blocs usefull for the application.
 * DLS CC Sequence number check. If discontinuous: pulse seq_discontinuity output and increase 
 
 
-=== BPM frame AXIS stream
+=== BPM packet AXIS stream
 
-The AXIS data provided by the protocol decoder is descibed in the file _pkg_bpmframe_stream.vhd_.
+The AXIS data provided by the protocol decoder is descibed in the file _pkg_bpmpacket_stream.vhd_.
 See this file to have up to date fields info.
 
-* Frames are not cut into packets (TLAST always '1').
+* Packets are not cut into packets (TLAST always '1').
 * No FIFO on output (TREADY is not used).
-The application needs to either implement FIFO or accepts every frame (AXIS packet).
-The frame rate depends on the signal input.
+The application needs to either implement FIFO or accepts every packet (AXIS packet).
+The packet rate depends on the signal input.
 
 === Transceivers
 
@@ -67,9 +103,20 @@ The TCL script combpm_gtwizard.tcl is used to create the GTWizard IP, wich is in
 
 We use DESYRDL to generate a AXI4L slave decoder.
 
-=== Frame filter
+=== Packet filter
+
+This block can drop BPM packets from the AXIS by looking up their BPM_ID field.
+A simple memory block is used and programmed via the AXI-MM interface.
+The block is adressed by the BPM ID (0 to 255).
+
+The msb (bit 7) gives the forward signal.
+If '1' then the packet is transfered, else it is blocked.
+
+The 6 lsb (bit 6-0) is filled into the TDEST field of the AXIS stream.
+This can be used to further routing.
 
-*To be completed...*
+.Structural schematic of combpm_packet_filter.
+image::images/combpm_packet_filter.svg[]
 
 // ================================================================================
 == TODO/Future of this module
diff --git a/hdl/combpm_packet_filter.vhd b/hdl/combpm_packet_filter.vhd
index 934cb0e..211ae59 100644
--- a/hdl/combpm_packet_filter.vhd
+++ b/hdl/combpm_packet_filter.vhd
@@ -2,7 +2,7 @@ library ieee;
 use ieee.std_logic_1164.all;
 use ieee.numeric_std.all;
 
-use work.pkg_bpmframe_stream.all;
+use work.pkg_bpmpacket_stream.all;
 
 entity combpm_packet_filter is
     generic(
@@ -133,8 +133,8 @@ architecture rtl of combpm_packet_filter is
     ------------------------
     -- SIGNAL DECLARATION --
     ------------------------
-    signal in_packet  : t_bpmframe;
-    signal out_packet : t_bpmframe;
+    signal in_packet  : t_bpmpacket;
+    signal out_packet : t_bpmpacket;
 
     signal bram_clk_a : STD_LOGIC;
     signal bram_en_a : STD_LOGIC;
@@ -161,13 +161,13 @@ begin
     p_main: process(axis_clk, axis_rst_n)
     begin
         if axis_rst_n = '0' then
-            in_packet   <= slv2bpmframe(zero_packet);
-            out_packet  <= slv2bpmframe(zero_packet);
+            in_packet   <= slv2bpmpacket(zero_packet);
+            out_packet  <= slv2bpmpacket(zero_packet);
 
         elsif rising_edge(axis_clk) then
             -- Register input packet
             if s_axis_tvalid = '1' then
-                in_packet <= slv2bpmframe(s_axis_tdata);
+                in_packet <= slv2bpmpacket(s_axis_tdata);
             end if;
 
             tvalid_r(tvalid_r'left downto 1) <= tvalid_r(tvalid_r'left-1 downto 0);
@@ -182,7 +182,7 @@ begin
     -- AXIS OUTPUT --
     -----------------
     m_axis_tdest <= std_logic_vector(resize(unsigned(table_data(6 downto 0)), C_TDEST_W));
-    m_axis_tdata <= bpmframe2slv(out_packet);
+    m_axis_tdata <= bpmpacket2slv(out_packet);
     m_axis_tlast <= '1';    -- Packet is one tdata only
     m_axis_tvalid <= tvalid_r(tvalid_r'left) and table_data(7);
 
diff --git a/hdl/combpm_protocol_electron.vhd b/hdl/combpm_protocol_electron.vhd
index 7e1751c..aed7621 100644
--- a/hdl/combpm_protocol_electron.vhd
+++ b/hdl/combpm_protocol_electron.vhd
@@ -3,7 +3,7 @@ library ieee;
 use ieee.std_logic_1164.all;
 use ieee.numeric_std.all;
 
-use work.pkg_bpmframe_stream.all;
+use work.pkg_bpmpacket_stream.all;
 
 entity combpm_protocol_electron is
     port(
@@ -17,8 +17,8 @@ entity combpm_protocol_electron is
         gt_datarx          : in std_logic_vector(15 downto 0);  -- Deserialized data.
 
         -- AXIS interface
-        m_axis_m2s         : out t_bpmframe_axis_m2s;
-        m_axis_s2m         : in t_bpmframe_axis_s2m;
+        m_axis_m2s         : out t_bpmpacket_axis_m2s;
+        m_axis_s2m         : in t_bpmpacket_axis_s2m;
 
         -- Status and control interface
         soft_reset         : in std_logic;                      -- Reset all counters.
@@ -82,7 +82,7 @@ architecture rtl of combpm_protocol_electron is
     signal rate_valid_r      :  unsigned(31 downto 0);
     signal rate_invalid_r    :  unsigned(31 downto 0);
 
-    signal packet            : t_bpmframe;
+    signal packet            : t_bpmpacket;
     signal m_axi_tvalid      : std_logic;
 
 
@@ -236,7 +236,7 @@ begin
     -- AXIS OUT --
     --------------
     m_axis_m2s.tdest    <= (others => '0');
-    m_axis_m2s.tdata    <= bpmframe2slv(packet);
+    m_axis_m2s.tdata    <= bpmpacket2slv(packet);
     m_axis_m2s.tlast    <= '1'; -- One transfer is One packet.
     m_axis_m2s.tvalid   <= m_axi_tvalid;
 
@@ -244,7 +244,7 @@ begin
     p_axis:process(clk, rst_n)
     begin
         if rst_n = '0' then
-            packet  <= C_BPMFRAME_ZERO;
+            packet  <= C_BPMPACKET_ZERO;
             m_axi_tvalid <= '0';
 
         elsif rising_edge(clk) then
diff --git a/hdl/pkg_bpmframe_stream.vhd b/hdl/pkg_bpmpacket_stream.vhd
similarity index 71%
rename from hdl/pkg_bpmframe_stream.vhd
rename to hdl/pkg_bpmpacket_stream.vhd
index 5f8426a..4bda9ea 100644
--- a/hdl/pkg_bpmframe_stream.vhd
+++ b/hdl/pkg_bpmpacket_stream.vhd
@@ -1,14 +1,14 @@
--- Package BPMFRAME STREAM
+-- Package BPMPACKET STREAM
 -- this package describe the format of the AXI-Stream interface used by blocs of the module COMBPM.
 --
 -- The usefull things are :
---   * Two record types for port interfaces: t_bpmframe_axis_m2s and t_bpmframe_axis_s2m.
---   * One record type for frame fields: t_bpmframe.
---   * Two functions to transform TDATA (std_logic_vector) to/from t_bpmframe: slv2bpmframe and bpmframe2slv.
+--   * Two record types for port interfaces: t_bpmpacket_axis_m2s and t_bpmpacket_axis_s2m.
+--   * One record type for frame fields: t_bpmpacket.
+--   * Two functions to transform TDATA (std_logic_vector) to/from t_bpmpacket: slv2bpmpacket and bpmpacket2slv.
 library ieee;
 use ieee.std_logic_1164.all;
 
-package pkg_bpmframe_stream is
+package pkg_bpmpacket_stream is
 
     ----------------------
     -- MACRO PARAMETERS --
@@ -19,29 +19,29 @@ package pkg_bpmframe_stream is
     ---------------------------------
     -- AXIS MASTER/SLAVE INTERFACE --
     ---------------------------------
-    type t_bpmframe_axis_m2s is record
+    type t_bpmpacket_axis_m2s is record
         tdest  : std_logic_vector(C_TDEST_W-1 downto 0);
         tdata  : std_logic_vector(C_TDATA_W-1 downto 0);
         tlast  : std_logic;
         tvalid : std_logic;
-    end record t_bpmframe_axis_m2s;
+    end record t_bpmpacket_axis_m2s;
 
-    type t_bpmframe_axis_s2m is record
+    type t_bpmpacket_axis_s2m is record
         tready : std_logic;
-    end record t_bpmframe_axis_s2m;
+    end record t_bpmpacket_axis_s2m;
 
     ------------------------
     -- AXIS STREAM PACKET --
     ------------------------
-    type t_bpmframe is record
+    type t_bpmpacket is record
         pos_x                        : std_logic_vector(31 downto 0);
         pos_y                        : std_logic_vector(31 downto 0);
         bpm_id                       : std_logic_vector(15 downto 0);
         mc_timestamp                 : std_logic_vector(39 downto 0);
         fa_seq                       : std_logic_vector(7 downto 0);
-    end record t_bpmframe;
+    end record t_bpmpacket;
 
-    constant C_BPMFRAME_ZERO : t_bpmframe := (
+    constant C_BPMPACKET_ZERO : t_bpmpacket := (
         pos_x         => (others => '0'),
         pos_y         => (others => '0'),
         bpm_id        => (others => '0'),
@@ -49,27 +49,27 @@ package pkg_bpmframe_stream is
         fa_seq        => (others => '0')
         );
 
-    function slv2bpmframe(
+    function slv2bpmpacket(
         signal tdata : std_logic_vector(C_TDATA_W-1 downto 0)
         )
-        return t_bpmframe;
+        return t_bpmpacket;
 
-    function bpmframe2slv(
-        signal packet : t_bpmframe
+    function bpmpacket2slv(
+        signal packet : t_bpmpacket
         )
         return std_logic_vector;
 
 
 end package;
 
-package body pkg_bpmframe_stream is
+package body pkg_bpmpacket_stream is
 
 
-    function slv2bpmframe(
+    function slv2bpmpacket(
         signal tdata : std_logic_vector(C_TDATA_W-1 downto 0)
         )
-        return t_bpmframe is
-        variable packet : t_bpmframe;
+        return t_bpmpacket is
+        variable packet : t_bpmpacket;
     begin
         packet.pos_x        := tdata(31 downto 0);
         packet.pos_y        := tdata(63 downto 32);
@@ -79,8 +79,8 @@ package body pkg_bpmframe_stream is
         return packet;
     end function;
 
-    function bpmframe2slv(
-        signal packet : t_bpmframe
+    function bpmpacket2slv(
+        signal packet : t_bpmpacket
         )
         return std_logic_vector is
     begin
diff --git a/hdl/top_combpm_electron.vhd b/hdl/top_combpm_electron.vhd
index d498d22..9947b27 100644
--- a/hdl/top_combpm_electron.vhd
+++ b/hdl/top_combpm_electron.vhd
@@ -13,7 +13,7 @@ library desyrdl;
 use desyrdl.common.all;
 use desyrdl.pkg_combpm.all;
 
-use work.pkg_bpmframe_stream.all;
+use work.pkg_bpmpacket_stream.all;
 use work.pkg_combpm_version.all;
 
 entity top_combpm_electron is
@@ -47,8 +47,8 @@ entity top_combpm_electron is
         sfp_tx_fault         : in std_logic;
 
         -- AXIS interface
-        m_axis_m2s           : out t_bpmframe_axis_m2s;
-        m_axis_s2m           : in t_bpmframe_axis_s2m;            -- warning: TREADY is ignored !
+        m_axis_m2s           : out t_bpmpacket_axis_m2s;
+        m_axis_s2m           : in t_bpmpacket_axis_s2m;            -- warning: TREADY is ignored !
 
         -- AXI bus interface
         pi_s_top  : in  t_COMBPM_m2s;
diff --git a/tcl/main.tcl b/tcl/main.tcl
index f07eb1f..8cf237e 100644
--- a/tcl/main.tcl
+++ b/tcl/main.tcl
@@ -21,7 +21,7 @@ proc setSources {} {
   lappend Vhdl ../hdl/pkg_combpm_version.vhd
   lappend Vhdl ../hdl/combpm_protocol_electron.vhd
   lappend Vhdl ../hdl/top_combpm_electron.vhd
-  lappend Vhdl ../hdl/pkg_bpmframe_stream.vhd
+  lappend Vhdl ../hdl/pkg_bpmpacket_stream.vhd
   lappend Vhdl ../hdl/combpm_packet_filter.vhd
 
 }
-- 
GitLab