Forum Discussion
Hello Noah,
Thank you for attaching a simplified version of your design. I was able to reproduce the error in hdl.cpp using WM_Test_Share.zip.
I see two issues with how your code declares the mm_host interfaces in compMatrix.h.
1. The address widths (ihc::awidth) are too small. According to https://www.intel.com/content/www/us/en/docs/programmable/683349/24-1/memory-mapped-host-testbench-constructor.html the mm_host constructor's second argument specifies the size in bytes. For example, to byte-address 32*16*128 =65536 bytes, you would need an address bus with at least log_2(65536) = 16 bits (not 10 bits).
2. Since the datatype (cfixed_t) is smaller than the data bus width (1024 or 512 bits), ihc::align must be specified. For example, for a data bus of width 1024 bits or 128 bytes, ihc::align should be set to 128 bytes. Please see the example given for ihc::align at https://www.intel.com/content/www/us/en/docs/programmable/683349/24-1/pro-edition-memory-mapped-interfaces.html
Hello again, and thank you very much for your suggestions! I would have had a hard time figuring this out otherwise.
I think the information provided here should be enough for me to correct my design in the coming days.
Regards and best wishes,
Noah