我们可以包括结构架构的延迟吗?

时间:2013-09-21 19:43:40

标签: vhdl

我正在尝试使用NOR门模拟EXOR。我为EXOR门写了以下逻辑。现在,我的nor2定义为4 ns延迟。

ENTITY ex IS
    PORT (a, b : IN BIT; c : OUT BIT);
END ex;

ARCHITECTURE structure OF ex IS

    SIGNAL tmp1, tmp2, tmp3, tmp4: BIT;
    COMPONENT nor2 PORT (x, y : IN BIT; z : OUT BIT); END COMPONENT;
BEGIN

    u0: nor2 PORT MAP (a, a, tmp1);

    u1: nor2 PORT MAP (b, b ,tmp2);

    u2: nor2 PORT MAP (tmp1,tmp2,tmp3);

    u3: nor2 PORT MAP (b, a, tmp4);

    u4: nor2 PORT MAP (tmp3, tmp4, c);

END structure;

我知道tmp1tmp2tmp4会在ab更改后4 ns后更改信号。我还注意到tmp3因此c在4 ns后发生变化(因为nor2有4 ns延迟[c <= a nor b after 4ns])。但我希望tmp3按照正确的逻辑在8 ns后反映变化,在12 ns后反映c。这将为EXOR提供正确的输出。我的问题是如何在结构架构中引入延迟?有办法吗?我试图搜索但没有找到任何等待不起作用,它一直给我语法错误(等待8ns)。非常感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

模拟结果没有错。这似乎是错误的,因为norshort-circuit运算符。

假设

a = '0'
b = '1'

然后

tmp1 = '1' (a nor a)
tmp2 = '0' (b nor b)
tmp4 = '0' (b nor a)
tmp3 = '0' (tmp1 nor tmp2)
c    = '1' (tmp3 nor tmp4)

现在b变为'0',

tmp1 = '1' remains unchanged
tmp2 = '1' after 4 ns
tmp4 = '1' after 4 ns
tmp3 = '0' remains unchanged (regardless of b because of short-circuit evaluation)
c    = '0' after 8 ns (not 12 ns because it only waits for tmp4 in this case)

答案 1 :(得分:0)

您可以将您的型号转换为符合VITAL标准的型号(IEEE Std 1076.4 VITAL(VHDL Inititative Towards ASIC库),但这可能对您的用途有点过分。该标准描述了各种类型的延迟,在这种情况下是组合,其中输出取决于输入的转换。

对于您的顶级型号ex,c输出的延迟取决于从A到C或B到C的延迟的较长时间。注意,VITAL标准也可以与1->分开跟踪0-> 1延迟; 0延迟。

对ex应用抽象延迟模型需要跟踪通过各种门的延迟路径来计算A到C或B到C的延迟。

符合VITAL标准的延迟模型允许您将标准延迟格式(SDF)延迟文件应用于具有兼容工具的设计模型,就像泛型应用时序或其他模型特征一样。

出于您的目的,因为您已通过阻止跟踪寄生效应的各种门或门来表征延迟,您可以使用中间值,其中C现在从最后一个或门输出,并在由A控制的延迟之后将其分配给C或B.

为了表征延迟,您可以将ex视为黑盒子,在宏观层面提供延迟。

您似乎预计没有路由延迟和对称0-&gt; 1和1-> 0延迟。

有序列表中的某些内容更长或更短的控制延迟

如果A'event然后在AC_DELAY之后C&lt; =中介                      BC_DELAY之后的中间人; - B'event

您可以在比宏更精细的水平上应用它,但是当不使用单个输出或门输出来确定其他输出时,不需要它。