16位乘法器vhdl代码合成错误

16位乘法器vhdl代码合成错误,vhdl,xilinx,modelsim,xilinx-ise,synthesize,Vhdl,Xilinx,Modelsim,Xilinx Ise,Synthesize,我想写一个16位*16位的乘法代码。这是我的密码: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity mul is port ( A, B: IN INTEGER RANGE -32768 TO 32767; C: OUT INTEGER RANGE -2147483648 TO +2147483647 ); end mul; architecture Behavioral of mul is be

我想写一个16位*16位的乘法代码。这是我的密码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity mul is
   port
   (
      A, B: IN INTEGER RANGE -32768 TO 32767;

      C: OUT INTEGER RANGE -2147483648 TO +2147483647
   );
end mul;

architecture Behavioral of mul is
begin

   C <= A * B;

end behavioral;
IEEE库;
使用IEEE.STD_LOGIC_1164.ALL;
实体mul是
港口
(
A、 B:整数范围-32768到32767;
C:输出整数范围-2147483648到+2147483647
);
末端mul;
mul-is的体系结构
开始

C实体中定义的所有端口应具有使用ucf文件定义的管脚分配。如果缺少ucf文件,工具将继续并自行放置管脚。这在错误消息中有明确说明

NET"A(0)"                LOC ="AB16"       | IOSTANDARD ="LVTTL";
NET"A(1)"                LOC ="AB16"       | IOSTANDARD ="LVTTL";
...

在您的示例中,A&B的宽度为16位,C为32位。因此,您需要为所有管脚分配正确的管脚位置和IO标准。

您应该使用UCFW将实体端口分配给FPGA管脚。如果到了Bitgen为止,您没有合成错误,您为什么要重复问题。只需分配适当的I/O引脚,就可以了。