我再次在我的机器上启动并运行了WebPack,在合成了一个简单的设计并将其上传到我的FPGA后,我的理解遇到了很多问题。
当用户约束文件中有这样的行时:
NET "W1A<0>" LOC = "P18" ;
合成软件究竟如何确定VHDL代码如何分配此引脚?
例如,请参考我提供的示例代码:
entity Webpack_Quickstart is
Port (
W1A : out STD_LOGIC_VECTOR(15 downto 0);
rx : in STD_LOGIC;
tx : inout STD_LOGIC;
clk : in STD_LOGIC
);
end Webpack_Quickstart;
architecture Behavioral of Webpack_Quickstart is
signal counter : STD_LOGIC_VECTOR(47 downto 0) := (others => '0');
begin
W1A(0) <= '1';
end;
此代码究竟是如何使我的FPGA上的WIA0
引脚开启的?链接是什么?它只是实体声明中端口的名称还有更多的魔法吗?
答案 0 :(得分:2)
您的.ucf
约束将在实施阶段应用。此时您的设计已经合成,因此可用的顶级网络是“已知的”。所以,是的,只需将同名的网络匹配到同名的约束。
虽然语法略有不同(例如,使用<>
代替()
来索引向量),但除此之外它只是一个简单的字符串匹配。
最初配置引脚约束的最简单方法是使用其中一个图形工具(PlanAhead,如果它包含在WebPack中)来分配引脚,并生成初始.ucf文件。 我发现稍后使用标准ISE文本编辑器直接进行小改动是最容易的。