可以用VHDL完成动态可插拔模块吗?
在c(嵌入式)中,可以通过定义函数指针表和模块可以加载的地址范围来实现插件。
这需要链接器指令来分配空间并定义函数表的位置。
HDL/VHDL 或 Verilog 中是否有类似的机制。
我想我的想法是在 FPGA 中定义一个门块以用于我的扩展功能,定义它将连接的端口,然后能够将逻辑加载到该块中以执行特定操作。
这必须在运行时进行,因为 FPGA 是交付插件的通信系统的一部分。
In c (embedded) a plugin can be implemented by defining a function pointer table and an address range that the module can be loaded into.
This requires linker directive to allocate the space and define the location of the function table.
Is there a similar mechanism in HDL / VHDL or Verilog.
I guess what I am thinking is to define a block of gates in an FPGA to be for my extension feature, define the ports it will interface to and later be able to load into this block the logic to perform a certain operation.
This would have to be at runtime as the FPGA is part of the communications system that the plugin will be delivered by.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用的是 Xilinx FPGA,他们的某些芯片可以支持此功能。
看:
使用 Xilinx 进行部分重配置的优势
--jeffk++
If you are using Xilinx FPGA's, this can be supported in some of their chips.
See:
Benefits of Partial Reconfiguration with Xilinx
--jeffk++
您正在寻找的功能与 VHDL 领域正交。 VHDL 允许模块(实体,由体系结构实现),所以从理论上讲,是的,这是可行的。 但实际上,这实际上取决于您的运行系统。
您期望由此获得什么? 节省重新配置时间?
如果您有一个足够复杂的电路板并运行一些软件,您可以轻松地从某些通信通道下载 FPGA 的新配置。 通过使用部分重新配置,您还可以在 Xilinx 上获得较小的性能优势。
或者,您可以创建一个可配置的 VHDL 模块,软件将在运行时配置该模块,使其按要求运行。
The feature you're looking for is orthogonal to the domain of VHDL. VHDL allows modules (entities, implemented by architectures), so in theory, yes, this can work. But in practice, it really depends on your running system.
What do you expect to gain by this? Save reconfiguration time?
If you have a sufficiently complex board with some software running, you can easily download a fresh configuration for the FPGA from some comm channel. You can also gain small performance benefits on Xilinx, by using partial reconfiguration.
Or maybe you can just create a configurable VHDL module that the software will configure in runtime to behave as required.