在 VHDL 中使用 Verilog 模块时区分大小写

case sensitivity while using Verilog module in VHDL

在混合 VDHL 和 Verilog 的过程中,我遇到了区分大小写的问题。

参数"APB_ADDR"大写,线路"apb_addr"小写。由于 Verilog 区分大小写,因此这两个表达式可能不同。

module verilog_module #(
...
parameter APB_ADDR              = 32,
...
) (
...
input   wire    [APB_ADDR-1:0]  apb_addr,
input   wire                    apb_sel,
input   wire                    apb_enable,
input   wire                    apb_write
....
);

现在我想在VDHL中实例化模块:

inst0: entity work.verilog_module 
GENERIC MAP (
    APB_ADDR => APB_ADDR_WIDTH
)
PORT MAP(
    ...
    apb_addr => apb_addr,
    ...
);

合成失败。泛型"apb_addr"不知道。 VHDL 不区分大小写。

如何访问通用 APB_ADDR?我不想改Verilog写的IP核

如果您无法更改 IP 内核,另一种选择是创建一个包装器(在 Verilog 中)实例化内核,设置 APB_ADDR 参数,并传递 apb_addr 和另一个核心和您的 VHDL 实体之间的信号。