代码:
----------------------------------------
PROCESS (clk)
VARIABLE temp :INTEGER RANGE 0 TO 31 := 0;
BEGIN
IF(temp = 7) THEN
q <= '1';
temp := 0;
END IF; IF(clk'EVENT AND clk = '1') THEN
IF(temp = 1) THEN --q脉冲宽度为一个时钟周期
q <= '0';
END IF;
temp := temp+1;
END IF;
END PROCESS;
------------------------------
Error (10818): Netlist error at tes1.vhd(18): can't infer register for q because it does not hold its value outside the clock edge这里的18行指的是加下划线的那一行。
我自己解决了!
PROCESS (clk)
VARIABLE temp :INTEGER RANGE 0 TO 31 := 0;
BEGIN
IF(clk'EVENT AND clk = '1') THEN
IF(temp = 7) THEN
q <= '1';
temp := 0;
END IF;
IF(temp = 1) THEN --q脉冲宽度为一个时钟周期
q <= '0';
END IF;
temp := temp+1;
END IF;
END PROCESS;