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

时间:2016-02-24 10:20:59

标签: vhdl modelsim

    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”串行传递到测试平台中组件comp_A1的“DATA_IN”引脚。 'DATA'和'count'都是std_logic_vectors 。所有其他信号都是std_logic。 'DATA'是64位大小的常量向量,'count'是在每个上升沿(CLK)递增的向量。

在编译过程中,Model Sim仅显示以下错误,

  1. (vcom-1450)正式“DATA_IN”的实际(索引名称)不是静态信号名称。
  2. VHDL Compiler退出。
  3. 'count'的错误是动态的吗?这样做的解决方法是什么?

1 个答案:

答案 0 :(得分:3)

使用中间信号将使用行<tbody>创建的多路复用器移动到单独的语句,例如:

DATA(to_integer(unsigned(count)))

...

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