I am busy getting some hands on experience using Xilinx Vivado.
Taking a VHDL sine generator from github (https://github.com/jorisvr/vhdl_sincos_gen) I made an IP package out of it. I defined the ports:
So the 'in_phase' port is of type unsigned.
After packaging the IP I created a new project with a block design and instantiated the IP:
This works and I can synthesize the design. Simulation however fails. I get the following errors in the elaboration log:
Starting static elaboration
ERROR: [VRFC 10-619] entity port in_phase does not match with type std_logic_vector of component port [/home/dinne/Xilinx/projects/nexys4ddr_tst/nexys4ddr_tst.ip_user_files/bd/design_1/ip/design_1_sincos_gen_0_0/sim/design_1_sincos_gen_0_0.vhd:80]
ERROR: [VRFC 10-619] entity port out_sin does not match with type std_logic_vector of component port [/home/dinne/Xilinx/projects/nexys4ddr_tst/nexys4ddr_tst.ip_user_files/bd/design_1/ip/design_1_sincos_gen_0_0/sim/design_1_sincos_gen_0_0.vhd:81]
ERROR: [VRFC 10-619] entity port out_cos does not match with type std_logic_vector of component port [/home/dinne/Xilinx/projects/nexys4ddr_tst/nexys4ddr_tst.ip_user_files/bd/design_1/ip/design_1_sincos_gen_0_0/sim/design_1_sincos_gen_0_0.vhd:82]
Somehow the port types are changed. If I check the port properties of for example the "in_phase" port I see that the type is "undef".
Also If I check the generated IP wrapper code I see that the port types have changed. Again the 'in_phase' port should be unsigned, but is "std_logic_vector".
How to fix the IP port types and get the simulation to run?