当您编译在索引信号向量上使用“rising_edge”函数的VHDL代码时,MAX + PLUS II软件会发生此错误.MAX + PLUS II VHDL不支持对阵列或向量的位片进行时钟控制。以下代码将给出此错误:
边缘IS的建筑工作
开始
edge:PROCESS(reset,div_16(3))
开始
如果reset ='0'则
sig_reg <='0';
elsif rising_edge(div_16(3))然后 - *这导致问题*
sig_reg <= shft_reg;
万一;
END PROCESS边缘;
结束工作;
解决方法是将索引的矢量信号分配给临时的std_logic信号。然后,rising_edge函数将正常工作。以下是变通方法的示例:
边缘IS的建筑工作
SIGNAL div_16_temp:std_logic;
开始
div_16_temp <= div_16(3);
edge:PROCESS(reset,div_16(3))
开始
如果reset ='0'则
sig_reg <='0';
elsif rising_edge(div_16_temp)然后 - *在这里输入温度信号*
sig_reg <= shft_reg;
万一;
END PROCESS边缘;
结束工作;





没有回复内容