【发布时间】:2016-08-18 14:14:57
【问题描述】:
我希望使用 Sphinx 来记录 VHDL 源代码。理想情况下,我希望能够采用这样的 VHDL 类型:
type T_SDRAM_REQ is record
req : STD_LOGIC;
wr : STD_LOGIC;
address : STD_LOGIC_VECTOR;
wr_data : STD_LOGIC_VECTOR;
wr_ben : STD_LOGIC_VECTOR;
end record T_SDRAM_REQ;
并使用类似这样的 RST 指令:
.. vhdl:type:: sdram_pack.T_SDRAM_REQ is record
:members:
从源代码中提取所有字段并为我进行 RST 化。
我已经创建了一个 Sphinx 域,但我突然意识到仅此是不够的 - 这实际上只是一堆自定义指令。我真正想要的是类似于 autoclass 或 automodule 的东西,它会扫描 Python 源文件以生成指令。
但据我所知,Sphinx 自动模块功能仅适用于 Python。是否可以扩展 Sphinx 以包含其他语言的类似功能?在 VHDL 中可能被称为 autopackage 或 autoentity,在 C++ 中我猜是 autonamespace 还是不同的 autoclass?我可以以某种方式将vhdl:autopackage:: 指令添加到我的域吗?从 Sphinx 源代码中我可以看出,我认为 automodule 指令不是 Python 域的一部分。
【问题讨论】:
-
是的,内置的 autodoc 扩展仅适用于 Python。但是你所要求的应该是可能的。例如,对于 Java,有一个名为 javasphinx (github.com/bronto/javasphinx) 的扩展。我不明白为什么不能为 VHDL 实现类似的东西。
-
@mzjn 感谢您指出这一点,但是虽然它正在添加 Java 域和 apidoc 功能,但据我所知,它并没有添加 autodoc,这正是我所追求的。不能老实说我有 Java 设置来测试它。
标签: vhdl python-sphinx