dspmatlab 发表于 2011-8-11 09:20:53

一小段程序,问题出在哪里?

begin
    if 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没起到延时作用?也没有被综合掉啊。还是仿真结果没包括线延时吗?

liujilei311 发表于 2011-8-16 08:04:29

恩,顶了!!!!!!!!!

dspmatlab 发表于 2011-8-16 10:38:34

用执行语句来延时 达不到效果的

jerry5391 发表于 2011-8-17 09:32:41

VHDL,不太懂哎

liujilei311 发表于 2011-8-17 11:28:29

是不是仿真时,测试文件写的有问题啊?????

dspmatlab 发表于 2011-8-17 13:58:09

回复 5# liujilei311


    quartus不需要测试文件的

jiaofang 发表于 2011-8-18 23:51:51

VHDL 不熟悉,抱歉!

alec405 发表于 2012-1-10 09:03:03

你在a=9990的时候就跳出了loop了,当然没法循环啦

aifei6655 发表于 2012-1-10 15:51:08

我是个新手,学习中。。。。。。

gaiya111 发表于 2012-3-11 15:46:37

同一个进程 Q1被赋了两个值,只认第一个值    FPGA核心思想是并行操作的 这段程序明显还是C语言顺序执行的思路
页: [1]
查看完整版本: 一小段程序,问题出在哪里?