gpt4 book ai didi

vhdl - 如何创建将单个信号映射到 std_logic_vector 的 1 位的端口映射?

转载 作者:行者123 更新时间:2023-12-05 04:07:00 34 4
gpt4 key购买 nike

我正在使用 VHDL 设计一些硬件。我的设计需要使用一个 12 位纹波计数器,最终将如下面的原理图屏幕截图所示连接。

ripple counter schematic

我从网上找到了一个纹波计数器的现有实体和架构,我认为它应该适合我的设计。在这里,以防它有助于回答我的问题。

entity ripple_counter is
generic (
n : integer := 12
);
port (
clk : in std_logic;
clear : in std_logic;
dout : out std_logic_vector(n-1 downto 0)
);
end ripple_counter;

architecture behavioral of ripple_counter is

signal clk_i, q_i : std_logic_vector(n-1 downto 0);

begin
clk_i(0) <= clk;
clk_i(n-1 downto 1) <= q_i(n-2 downto 0);

gen_cnt: for i in 0 to n-1 generate
dff: process(clear, clk_i)
begin
if (clear = '1') then
q_i(i) <= '1';
elsif (clk_i(i)'event and clk_i(i) = '1') then
q_i(i) <= not q_i(i);
end if;
end process dff;
end generate;
dout <= not q_i;
end behavioral;

人们会看到纹波计数器实体使用 n 位(在本例中为 12 位)std_logic_vector 作为其输出。但是,只有两个 Q* 输出被连接。纹波计数器的组件和端口映射声明已创建如下。请注意,u22d_out、u21b_out 和 u26_q12_out 都是在与纹波计数器的组件和端口映射相同的结构架构中定义的信号。此外,q10 是系统的输出。

component ripple_counter is
generic (
n : integer := 12
);
port (
clk : in std_logic;
clear : in std_logic;
dout : out std_logic_vector(n-1 downto 0)
);
end component;

u26: ripple_counter port map (
clk => u22d_out,
clear => u21b_out,
dout(11) => u26_q12_out,
dout(9) => q10
);

当我尝试运行我的设计时,出现以下错误...

Error: [42972]: "c:/somefilepath/somefilename.vhd", line 493: Incomplete sub-element association for formal dout

Error: [42604]: "c:/somefilepath/somefilename.vhd", line 489: Port and Port Map does not match

Error: [40008]: HDL analysis failed.

  • 第 493 行是读取 dout(9) => q10 的行。
  • 第 489 行是读取 u26: ripple_counter port map 的行。

我不确定这是语法错误还是功能问题。如何将矢量的特定位映射到单个信号?

最佳答案

正如 Brian D 在评论中所建议的...端口映射关联不完整。这是端口映射的更新版本。

u26: ripple_counter port map (
clk => u22d_out,
clear => u21b_out,
dout(11) => u26_q12_out,
dout(10) => open,
dout(9) => q10,
dout(8 downto 0) => open
);

关于vhdl - 如何创建将单个信号映射到 std_logic_vector 的 1 位的端口映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49162903/

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