首页 文章

VHDL:组件端口映射中的索引

提问于
浏览
2
comp_A1: comp_A port map    (   CLK     =>  CLK,
                                    RESET_N =>  RESET_N,
                                    DATA_IN =>  DATA(to_integer(unsigned(count))),
                                    VLD_IN  =>  VLD_IN,
                                    DATA_OUT=>  DATA_OUT,
                                    VLD_OUT =>  VLD_OUT,
                                    BUSY_OUT=>  BUSY_OUT
                                );

在上面的代码片段中,我试图将'DATA' serially 传递给测试平台中组件comp_A1的'DATA_IN'引脚 . 'DATA' and 'count' are both std_logic_vectors . 所有其他信号都是std_logic . 'DATA'是大小为64位的常量向量,'count'是在每个上升沿(CLK)递增的向量 .

在编译期间,Model Sim仅显示以下错误,

  • (vcom-1450)形式"DATA_IN"的实际(索引名称)不是静态信号名称 .

  • VHDL编译器退出 .

与'count'的动态错误有关吗?这样做的解决方法是什么?

1 回答

  • 3

    只需使用中间信号将使用 DATA(to_integer(unsigned(count))) 行创建的多路复用器移动到单独的语句中,例如:

    selected_data <= DATA(to_integer(unsigned(count)));
    

    ...

    DATA_IN => selected_data
    

相关问题