一小段程序,问题出在哪里?
beginif rising_edge(clk) then
Q1<='1';
a:=0;
WHILE(a<9999)LOOP
a:=a+1;
exit when a=9990;
END LOOP ;
if a=9990 then
Q1<='0';
end if ;
end if;
程序目的:输出一个脉冲信号Q1
仿真结果:信号Q1一直是低电平
问:quartus的时序仿真,为什么LOOP没起到延时作用?也没有被综合掉啊。还是仿真结果没包括线延时吗? 恩,顶了!!!!!!!!! 用执行语句来延时 达不到效果的 VHDL,不太懂哎 是不是仿真时,测试文件写的有问题啊????? 回复 5# liujilei311
quartus不需要测试文件的 VHDL 不熟悉,抱歉! 你在a=9990的时候就跳出了loop了,当然没法循环啦 我是个新手,学习中。。。。。。 同一个进程 Q1被赋了两个值,只认第一个值 FPGA核心思想是并行操作的 这段程序明显还是C语言顺序执行的思路
页:
[1]