是什么让我选择 Verilog 或 VHDL 而不是 CPLD 或 FPGA 的原理图设计?

电器工程 视频文件 验证日志 可编程逻辑
2022-01-08 23:24:54

我完全没有可编程逻辑方面的背景,我在项目中主要使用微控制器,但最近我需要处理视频,而微控制器对于我需要的东西来说太慢了,所以我开始使用 CPLD。

仅使用原理图设计,我就能够通过 CPLD 获得良好的结果,但是在搜索有关 CPLD 的信息时,我遇到了许多使用 VHDL 和 Verilog 的示例。我很好奇是什么让我想用其中一种语言定义我的设备。他们能做哪些原理图设计不能做的事情?它们主要用于功能吗?

到目前为止,我只使用过 CPLD,FPGA 设计是否比 CPLD 从使用这些语言中受益更多?

4个回答

仅当您仅将几个现成的模块(计数器、加法器、内存等)捆绑在一起时,原理图设计才有用。但是,如果没有 HDL(如 VHDL 或 Verilog),几乎不可能实现一个实际的算法(例如,密码散列算法),因为没有办法用示意图符号在行为级别上描述系统。

大多数项目都是用行为风格的 HDL 完成的,因为它们太复杂而无法手工合成和使用逻辑原语示意性地绘制。

CPLD 通常用于胶合逻辑,较少用于处理,并且通常逻辑很容易以示意图方式实现,因此当您建议基于 FPGA 的设计从使用 HDL 中受益更多时,我认为您是对的。

除了杰伊的出色回答外,还有几个实际方面:

  • 错误。原理图工具往往比工具集的其余部分更容易出错*。这可能是由于业界对 Verilog/VHDL 的偏好优于原理图,因此软件开发人员对原理图输入的关注较少。
  • 速度。在将原理图传递给综合工具之前,需要先将原理图转换为 HDL。这会对构建时间产生负面影响。如果您出于某种原因需要检查它,生成的 HDL 也可能不是很可读。
  • 可移植性。根据使用的供应商特定原语的数量,Verilog 和 VHDL 在设备之间或多或少是可移植的。移植原理图您要么必须重新绘制所有内容,要么依赖提供的导入/导出功能(如果有)。

*Xilinx ISE 中我最喜欢的错误是无法选择垂直线。

 HDL(硬件描述语言)作为设计输入标准有很多优点。

功能的描述可以在更高的层次上,基于 HDL 的设计可以合成为所选技术的门级描述,HDL 设计比门级网表或原理图描述和 HDL 更容易理解由于强类型检查而减少错误。

硬件描述语言 VHDL 和 Verilog 设计用于对硬件进行建模,目的是在更高的抽象级别进行建模,包括并发性、时序、层次结构、组件重用、状态行为、同步行为、异步行为、同步和固有并行性等特性.

在综合过程中出现问题,将设计描述映射到特定的工艺和门实现。这要求你不能使用 HDL 的高级特性——你必须产生“可综合的 Verilog/VHDL”

因此,您有用于综合的 HDL 和用于仿真的 HDL,并且可综合的子集是特定于工具的。

您不能从行为设计描述转到网表/布局。但是您可以构建您的设计,使其具有行为组件,这些组件也具有可以相互比较的可综合方面。您从行为开始,然后一旦起作用,您就可以重写以进行综合(这是一个子集)。你从一般到特殊,并在此过程中构建测试平台。

另一个优点是 HDL 与常规编程语言具有所有相同的优点,因为它们可以用于标准版本控制系统,用于检查更改等。