gpt4 book ai didi

VHDL-2008 不断强制外部名称

转载 作者:行者123 更新时间:2023-12-04 02:04:06 25 4
gpt4 key购买 nike

我希望能够在我的测试平台层次结构中持续强制降低信号。这是一个简单的例子,说明我是如何在我的测试台上做到这一点的。

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity double_inverter is
port(
a : in std_logic;
z : out std_logic
);
end double_inverter;

architecture x of double_inverter is
signal b : std_logic;
begin

b <= not a;
z <= not b;

end architecture x;


library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity inverter_tb is
end inverter_tb;

architecture y of inverter_tb is
signal z : std_logic;
signal clk : std_logic := '0';
begin

clk <= not clk after 5 ns;

dut : entity work.double_inverter
port map(
a => '0',
z => z
);

continuous_stim : process(clk)
begin

<< signal dut.b : std_logic >> <= force clk;

end process;

end architecture y;

这适用于 Modelsim 10.4b,即 double_inverter 实例中的信号 b 将由 clk 设置而不是信号 a,但是有没有更好的方法来控制外部名称信号?

谢谢你的帮助。

最佳答案

在某些情况下,您可以使用外部名称的别名:

alias dut_b is <<signal dut.b : std_logic >> ;

由于我们认为信号是在架构中声明的,因此我们的直觉是将别名放在架构中。但是,在这种情况下,这是不允许的,因为 DUT 尚未详细说明。

您可能会被允许将其放入流程中 - 我将不得不进行一些研究以检查语言是否允许这样做。我担心的是进程不允许信号声明,所以我不相信它会允许进程中的信号别名 - 尝试它并让我们知道它是否有效没有坏处。

通常,当我使用这样的东西时,我将它放在创建测试用例并由测试台实例化的组件的体系结构声明区域中。为避免细化顺序出现问题,我确保首先在测试平台中实例化我的 DUT,通常是最后生成测试用例的组件(中间是基于事务的模型)——VHDL 按照它们实例化的顺序详细说明设计。

关于VHDL-2008 不断强制外部名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44936155/

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