When I use Synplify as my synthesis tool, attributes are not passed to the implementation tools correctly which causes the controller to be inactive in hardware, and it does not send commands as requested at the ports.
This is due to a known issue in the Synplify Pro flow and is scheduled to be resolved in 12.2.
You can work around this issue by overriding these attribute settings in the constraints file as follows.
For example, add the following to the".ucf" constraints file:
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_0 = 18'o012345;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_1 = 18'o123450;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_2 = 18'o234501;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_3 = 18'o345012;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_4 = 18'o450123;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_5 = 18'o501234;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_6 = 18'o012345;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_7 = 18'o123450;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_8 = 18'o234501;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_9 = 18'o345012;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_10 =18'o450123;
INST "memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/samc_0" ARB_TIME_SLOT_11 =18'o501234;
Note that the instance name vary depending on the MCB instance being used in your design and the attribute value vary depending on your arbitration sequence specified. To see the value specified in your code, look in example_top.v and identify the appropriate controller parameters.
For example, controller 3 time slot 0 will be:
localparam C3_ARB_TIME_SLOT_0 = 18'oxxxxxx;