gpt4 book ai didi

vhdl - 在 VHDL 中按名称连接端口,UCF 样式

转载 作者:行者123 更新时间:2023-12-01 10:49:47 26 4
gpt4 key购买 nike

我有一个这样定义的 VHDL 实体:

entity RealEntity is
port(
CLK_50MHZ: in std_logic;
LED : out std_logic_vector(3 downto 0)
);
end RealEntity;

如果我也有 LED<0>..LED<3> 的 UCF 条目和 CLK_50MHZ , 然后我可以直接编译这个实体。

但是,我的电路板上实际上没有 50 MHz 时钟,所以我必须使用时钟管理器芯片。我为此使用了 Xilinx 工具,它有一个向导来添加 DCM 内核,然后我将它包装在另一个 VHDL 实体中以便于使用:

entity dcm is
port(
CLK_32MHZ: in std_logic;
CLK_50MHZ: out std_logic
);
end dcm;

哪里CLK_32MHZ是我的 UCF 中实际存在的东西。

为了连接这两者,我目前正在使用第三个实体作为我的顶级实体:

entity main is
port(
CLK_32MHZ : in std_logic;
LED : out std_logic_vector(3 downto 0)
);
end main;

architecture arch of main is
signal CLK_50MHZ : std_logic;

component dcm
port(
CLK_32MHZ : in std_logic;
CLK_50MHZ : out std_logic
);
end component;

component RealEntity
port(CLK_50MHZ : in std_logic;
LED : out std_logic_vector(3 downto 0)
);
end component;

begin
inst_dcm : dcm
port map(
CLK_32MHZ => CLK_32MHZ,
CLK_50MHZ => CLK_50MHZ
);

inst_RealEntity : RealEntity
port map(
CLK_50MHZ => CLK_50MHZ,
LED => LED
);

end arch;

如您所见,这第三个实体是 100% 样板文件。我的问题是,是否可以避免写这个 main实体,而只是使用 RealEntitydcm直接连接两个CLK_50MHZ港口凭借他们分享他们的名字,基本上模仿CLK_50MHZ出现在我的 UCF 文件中?

最佳答案

您必须以某种方式告诉工具如何连接您的 DCM 和您的真实实体。您的“样板”顶级实体就是实现这一目标的。您不能在 UCF 文件中执行此操作,因为它不允许您创建 连接,只需将各种属性附加到您创建的连接即可。

因此,您的问题将成为现有工具之一,使您能够尽可能高效地“连接起来”。 Brian 已经为您列举了一些选项...

您可以使用直接实例化来减少您的样板文件。删除您的 component 声明,然后执行:

inst_RealEntity : entity work.RealEntity
port map(
CLK_50MHZ => CLK_50MHZ,
LED => LED
);

关于vhdl - 在 VHDL 中按名称连接端口,UCF 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com