集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 3755|回复: 9

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

[复制链接]
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 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-25 12:28 , Processed in 0.066200 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表