Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vhdl 用户约束文件实际上是如何工作的?_Vhdl_Fpga_Xilinx - Fatal编程技术网

Vhdl 用户约束文件实际上是如何工作的?

Vhdl 用户约束文件实际上是如何工作的?,vhdl,fpga,xilinx,Vhdl,Fpga,Xilinx,我将网页包重新安装并在我的机器上运行,在综合了一个简单的设计并将其上传到我的FPGA之后,我的理解遇到了一个相当大的问题 当用户约束文件中有这样一行时: NET "W1A<0>" LOC = "P18" ; NET“W1A”LOC=“P18”; 合成软件如何准确地确定VHDL代码如何分配该引脚 例如,以我收到的代码为例: entity Webpack_Quickstart is Port ( W1A : out STD_LOGIC_VECTOR(15 downto 0); rx

我将网页包重新安装并在我的机器上运行,在综合了一个简单的设计并将其上传到我的FPGA之后,我的理解遇到了一个相当大的问题

当用户约束文件中有这样一行时:

NET "W1A<0>" LOC = "P18" ;
NET“W1A”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;
实体网页包\u快速启动
港口(
W1A:输出标准逻辑向量(15到0);
rx:标准逻辑中;
tx:inout标准逻辑;
时钟:在标准逻辑中
);
结束网页包的快速启动;
Webpack_Quickstart的架构是
信号计数器:标准逻辑向量(47向下至0):=(其他=>“0”);
开始

W1A(0)您的
.ucf
约束将在实施阶段应用。此时,您的设计已被合成,因此可用的顶级网络是“已知的”。因此,是的,这只是一个匹配同名网络和同名约束的问题

虽然语法略有不同(例如,使用
而不是
()
来索引向量),但除此之外,它只是一个简单的字符串匹配

最初配置管脚约束的最简单方法,尤其是对于大型设计,就是使用一个图形工具(PlanAhead,如果它包含在网页包中)来分配管脚,并生成一个初始的.ucf文件。
我发现,稍后直接使用标准的ISE文本编辑器手动进行小更改是最容易的。

是的,基本上就是这样——在VHDL中指定一个逻辑信号,以及该逻辑信号必须连接的物理位置,并且位置和路由逻辑确保它们连接。顺便说一句,所需的位选择器:vs()vs[],完全取决于您在合成器中使用的设置;它不是UCF语法的固有特性。