【问题标题】:VHDL behavioural vs structural performanceVHDL 行为与结构性能
【发布时间】:2015-07-25 16:51:08
【问题描述】:

如果 vhdl 结构和行为之间存在某种差异,我在“性能”方面徘徊。我知道现在更常见的是写行为而不是结构,但由于我想对性能有一个了解,我一直在想也许有一些不同......

【问题讨论】:

  • 查看生成的RTL 并进行比较总是有用的。
  • 我猜你可以为小型系统执行此操作...对于大型系统,我认为编写两个模型并进行比较没有多大意义。
  • 通常你的任务是提高生产力,而编译器的任务是理解你的意图。因此,通常首选行为代码。
  • 但是结构综合与行为综合有什么不同吗?
  • 结果可以相等也可以不同,谁也不能保证。

标签: vhdl


【解决方案1】:

没有与硬件相关的理由偏爱一种形式。

可能是一种形式比另一种形式更快地模拟;一般来说,我没有看到任何证据,但是我没有看过。确实,在综合之后,设计被转化为结构形式,综合后的仿真速度很慢,但这是由于生成的结构版本的庞大规模,表示为数千个单独的门及其互连。

更重要的是综合结果的质量:应该可以以两种形式编写设计,并将其综合到基本相同的硬件上。根据我的经验,这似乎是普遍正确的。

有时您会发现合成工具难以有效地翻译结构(通常是行为),但不像过去那么频繁。


最重要的是清晰度(除非您要突破速度或 FPGA 大小的界限),这会带来可读性、可靠性、效率、可测试性、可维护性等。如果你不能理解它,你就看不到效率低下,甚至无法正确测试它。

在这里,结构化 VHDL 在顶层发挥作用:将系统划分为 CPU、内存接口、FFT 处理器、UART、SPI 等块。有时是分层的,因此您可能希望将内存接口划分为刷新逻辑、纠错、地址复用等。

但大多数块 - 例如,单个状态机可以处理的任务,在行为上表达时是最清晰和最简单的。因此,在 UART 中,您可能有两个单独的 TX 和 RX 进程,而 SPI 接口(在同一 SPI 时钟上发送和接收)可能最好作为单个行为进程。

【讨论】:

  • 因为没有特定的理由偏爱特定的描述(就硬件综合而言)。结构描述会以某种方式影响编译速度吗? (假设我们有两个关于行为和一个结构的等效硬件描述)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多