答案 0 :(得分:4)
没有与硬件相关的理由来选择一种形式或另一种形式。
可能是一种形式导致比另一种更快的模拟;我一般都没有看到任何证据,但后来我没有看到。确实,在合成之后,设计被转换为结构形式,并且后合成模拟很慢,但这是由于所得结构版本的绝对大小表示为数千个单独的门及其互连。
更重要的是合成结果的质量:应该可以以两种形式编写设计并将其合成到基本相同的硬件。根据我的经验,这似乎是正确的。
有时您会发现综合工具难以有效地翻译构造(通常是行为),但不像过去那样频繁。
最重要的是(除非您正在推动速度或FPGA尺寸的界限)是清晰度,导致可读性,可靠性,效率,可测试性,可维护性等。如果您无法理解,您就无法看到效率低下甚至无法正确测试。
这里,结构VHDL可以在顶层发挥作用:将系统划分为块,如CPU,存储器接口,FFT处理器,UART,SPI等。有时是分层次的,因此您可能希望将存储器接口划分为刷新逻辑,纠错,地址多路复用等。
但是大多数块 - 例如,单个状态机可以处理的任务,在表达行为时最清晰,最简单。因此,在UART中,您可能有两个独立的TX和RX进程,而SPI接口(在同一SPI时钟上发送和接收)可能是最佳的单一行为过程。