2

虽然我的写作有点精通,VHDL但我需要回答一个相对基本的问题:什么时候崩溃VHDL

一个基本的例子:假设我正在设计一个 8bit ALUin VHDL,我有几个VHDL实现选项。

只需将整个 ALU 设计为一个实体。具有实体中所需的所有 I/O(可以通过 IEEE_STD_ARITHMETIC 库来完成)。

- 或者 -

将该 ALU 分解为其后续块,例如进位超前加法器和一些多路复用器。

- 或者 -

将其进一步分解为进行超前进位的块;一堆部分全加器,一个进位路径和多路复用器,然后使用结构元素将它们连接在一起。

然后,我们可以(如果我们愿意)将所有这些分解到门级,为每个创建实体、行为和结构。

当然,我们分解ALU得越多VHDL,我们需要的文件就越多。

这会影响综合后的物理实现吗?我们什么时候应该停止分解?

4

1 回答 1

4

您应该将 VHDL 保持在最高抽象级别,因此永远不要像您描述的那样“分解它”。你提议的是你自己做综合(比如创建一个超前进位加法器),这是一个坏主意。您不知道目标设备(FPGA 或 ASIC 库)以及合成器,您不应该试图告诉它该做什么。如果您想进行添加,请使用+运算符,工具将找出适合您的设计约束的最佳结构。

将设计划分为多个模块通常会使优化设计变得更加困难,因为模块之间的优化通常比模块内的优化更难。

当然,为了保持设计和可读性,它们之间具有良好定义接口的主要功能块应该位于单独的模块中。ALU 可以是一个模块,指令 ROM 是另一个模块,等等。这些模块具有不同的、定义良好的功能,模块内优化的机会不多。如果您想获得最后可能的优化,只需在优化之前展平设计并让工具完成工作。

于 2013-12-21T21:46:53.157 回答