VHDL行为与结构性能

VHDL行为与结构性能,vhdl,Vhdl,我在想,在“性能”方面,vhdl结构和行为之间是否存在某种差异。我知道现在写行为而不是结构更常见,但由于我想了解性能,我一直认为可能有一些不同…没有硬件相关的理由选择一种或另一种形式 这可能是一种形式比另一种形式导致更快的模拟;一般来说,我没有看到任何证据,但我也没有看。的确,在合成后,设计被转化为结构形式,合成后的模拟速度较慢,但这是由于最终结构形式的巨大规模,表现为数千个单独的门及其互连 更重要的是合成结果的质量:应该可以编写两种形式的设计,并将其合成为基本相同的硬件。根据我的经验,这似乎是

我在想,在“性能”方面,vhdl结构和行为之间是否存在某种差异。我知道现在写行为而不是结构更常见,但由于我想了解性能,我一直认为可能有一些不同…

没有硬件相关的理由选择一种或另一种形式

这可能是一种形式比另一种形式导致更快的模拟;一般来说,我没有看到任何证据,但我也没有看。的确,在合成后,设计被转化为结构形式,合成后的模拟速度较慢,但这是由于最终结构形式的巨大规模,表现为数千个单独的门及其互连

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

有时,您会发现合成工具很难有效地转换构造(通常是行为的),但不像过去那样频繁


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

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


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

查看生成的进程并进行比较总是很有用的。我想,您可以在小型系统中这样做。。。对于大系统来说,我认为编写两个模型并进行比较没有多大意义。通常,提高效率是你的任务,理解你的意图是编译器的任务。出于这个原因,行为代码通常是首选的。但是结构合成与行为合成不同吗?结果可以是相同的,也可以是不同的,没有人能保证这一点。因为没有具体的理由选择特定的描述(就硬件合成而言)。结构描述会影响编译速度吗?(假设我们有两个关于行为和一个结构的等效硬件描述)。