当您编译在索引信号向量上使用“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边缘; 结束工作;
没有回复内容