gpt4 book ai didi

syntax - VHDL 中的实体语法

转载 作者:行者123 更新时间:2023-12-04 03:03:14 24 4
gpt4 key购买 nike

我对 VHDL 中实体的语法感到困惑。这是 EBN form 中的规则应如何声明实体:

enter image description here

来源:Peter J. Ashenden, "The Designers Guide to VHDL", 3rd ed., Morgan Kaufmann, 2008.

令我感到困惑的是声明的结尾。据此,我不需要在末尾包含 entityidentifier,一切都会一样。例如,下面的两个声明是否相同?

声明 1

entity identifier is
...
begin
...
end ;

声明 2

entity identifier is
...
begin
...
end entity identifier ;

如果是,为什么会有人选择后一种声明?是否有建议我应该使用这两种变体中的哪一种?我问这个是因为我通常会在示例中看到后一个声明,我无法解释为什么有人会更喜欢第二个声明而不是第一个声明。

最佳答案

我几乎总是使用后一种声明,因为它会产生更好的文档记录代码。对于前者,如果读者遇到一个简单的 end;,则不清楚结束的是什么。

当使用比 VHDL 更简洁的语言时,程序员(通常)通常会在关闭某些内容的结构中添加注释,以便向读者展示正在关闭的内容,例如在 C++ 中:

} // if (enable) 

或在 Verilog 中

end // if (enable) 

SystemVerilog 添加了一种功能,可以用适当的语言做同样的事情:

if (enable)
begin : enable_block
...
end : enable_block

为什么你可以在VHDL中说出这一切

end ;
end entity ;
end identifier ;
end entity identifier ;

是为了让VHDL-93向后兼容VHDL-87,其中只有这些是合法的:

end ;
end identifier ;

“几乎总是”?是的。如果我写可执行代码,我总是会写后者。然而,本周我创建了一些关于 VHDL 的 PowerPoint 幻灯片,我故意只写了 end;,因为我认为整个 end entity identifier ; 分散了读者的注意力。您可以随心所欲地使用它。

关于syntax - VHDL 中的实体语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47060717/

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