Struct type multi-bit port optimized to 1-bit port during mapping
Hello,
I am using Quartus Lite 18.1.
My RTL includes packed struct type ports, e.g.:
input dll_steer_payld_t rx_rts_steer_info;
The type definition for dll_steer_payld_t:
typedef struct packed {
logic [1:0] order;
logic [1:0] prio;
logic [2:0] port_id;
} dll_steer_payld_t;
The port is changed to 1 (or 0?)-bit port as noted in the map report:
; rx_rts_steer_info ; Input ; Warning ; Input port expression (0 bits) is smaller than the input port (7 bits) it drives. Extra input bit(s) "rx_rts_steer_info[0..6]" will be connected to GND. ;
' Extra input bit(s) "rx_rts_steer_info[0..6]" ' is a bit ambiguous. If the port is changed to 1-bit, then there will be 7-1=6 extra bits instead of 7.
Please let me know if it is possible to preserve all bits in the port.
Thanks,
János
Hi,
The code is fine. It's just this feature only supported in pro version without warning (check image):
Same warnings also appear in standard version (check image):
The synthesis engine of pro version is different compared with standard/lite synthesis engine.
Thanks,
Best regards,
Sheng
p/s: If any answer from the community or Intel Support are helpful, please feel free to give best answer or rate 4/5 survey.