可以在 VHDL 中完成动态可插拔模块吗?
Posted
技术标签:
【中文标题】可以在 VHDL 中完成动态可插拔模块吗?【英文标题】:Can dynamically pluggable modules be done in VHDL? 【发布时间】:2008-12-19 14:22:59 【问题描述】:在c(嵌入式)中,可以通过定义函数指针表和模块可以加载到的地址范围来实现插件。
这需要链接器指令来分配空间并定义函数表的位置。
HDL/VHDL 或 Verilog 中是否有类似的机制。
我想我的想法是在 FPGA 中定义一个门块以用于我的扩展功能,定义它将连接到的端口,然后能够将逻辑加载到该块中以执行特定操作。
这必须在运行时进行,因为 FPGA 是用于交付插件的通信系统的一部分。
【问题讨论】:
【参考方案1】:如果您使用的是 Xilinx FPGA,他们的某些芯片可以支持这一点。
见: Benefits of Partial Reconfiguration with Xilinx
--jeffk++
【讨论】:
jeffk 描述的不是 Verilog 或 VHDL 功能,而是芯片功能。【参考方案2】:您正在寻找的功能与 VHDL 的领域是正交的。 VHDL 允许模块(实体,由架构实现),所以理论上,是的,这可以工作。但实际上,这真的取决于您运行的系统。
您希望从中获得什么?节省重新配置时间?
如果您有一个足够复杂的电路板并运行一些软件,您可以从某个通信渠道轻松下载新的 FPGA 配置。通过使用部分重配置,您还可以在 Xilinx 上获得小的性能优势。
或者,也许您可以创建一个可配置的 VHDL 模块,软件将在运行时配置该模块以根据需要运行。
【讨论】:
希望在不使设备变砖的情况下获得现场可编程性。通信通道需要 FPGA 的一部分才能在整个编程阶段保持运行。如果出现问题并“变砖”,实际的 FPGA 就无法物理接触。 有解决方案。例如,阅读有关 Altera 的远程升级主题的信息。有一个永远不会改变的“加载器”图像,它会将多个“应用程序”图像加载到内存中,并且可以更新它们。以上是关于可以在 VHDL 中完成动态可插拔模块吗?的主要内容,如果未能解决你的问题,请参考以下文章