在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2913|回复: 18

太奇怪啦!!不可能!!

[复制链接]
发表于 2004-6-10 09:07:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
CLK 100K的方波。 BUFY1 STD_logic_VECTOR(13 DOWNTO 0);
OUT 为脉冲输出口,BUFY1减两次,输出一个脉冲。REST为输入口。
不停的记数,当BUFY1为空,REST为高,停止记数。但是,我频繁的停止记数,OUT输出口的脉冲数不准。有多有少。 为何????求高人指点,我都快没信心了!!!!
PROCESS(CLK,BUFY1)
  BEGIN
      IF BUFY1="00000000000000" THEN
IF REST='1' THEN
   BUFY1<="00000000000000";
ELSE
   BUFY1<="00000011001000";      --200
           END IF;
     ELSIF CLK' EVENT AND CLK='1' THEN
BUFY1<=BUFY1-1;
XAXA2<=NOT XAXA2;      
      END IF;
  END PROCESS;
   
   OUT<=XAXA2;
发表于 2004-6-10 09:25:33 | 显示全部楼层

太奇怪啦!!不可能!!

PROCESS(CLK,REST)
BEGIN
   IF REST='0' THEN
      BUFY1<="00000011001000";      --200
      XAXA2<='0'
   ELSIF CLK' EVENT AND CLK='1' THEN
     IF(BUFY1 = "00000000000000")
        BUFY1 = "00000000000000";
        XAXA2<='0';
     ELSE
      BUFY1<=BUFY1-1;
      XAXA2<=NOT XAXA2;      
     END IF;
    END IF;
   END IF;
END PROCESS;
   
  OUT<=XAXA2;
发表于 2004-6-10 09:26:26 | 显示全部楼层

太奇怪啦!!不可能!!

你的思路有问题
VHDL好久不用,不知道是否有错误
发表于 2004-6-10 14:13:45 | 显示全部楼层

太奇怪啦!!不可能!!

是啊,,你没弄明白异步!!
 楼主| 发表于 2004-6-10 15:14:09 | 显示全部楼层

太奇怪啦!!不可能!!

PROCESS(CLK,REST)
BEGIN
  IF REST='0' THEN
     BUFY1<="00000011001000";      --200
     XAXA2<='0'
  ELSIF CLK' EVENT AND CLK='1' THEN
    IF(BUFY1 = "00000000000000")
       BUFY1 = "00000000000000";
       XAXA2<='0';
    ELSE
     BUFY1<=BUFY1-1;
     XAXA2<=NOT XAXA2;      
    END IF;
   END IF;
  END IF;
END PROCESS;
  
OUT<=XAXA2;

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

我试了一下,不行。我觉的你的思路和我的一样。思路有问题?能不能说明白点???

 楼主| 发表于 2004-6-10 15:35:15 | 显示全部楼层

太奇怪啦!!不可能!!

是啊,,你没弄明白异步!!
…………………………………………………………………………
同步和异步我都试过。效果都一样。

PROCESS(CLK,BUFY1)         --异步??
BEGIN
    IF BUFY1="00000000000000" THEN      
        IF REST='1' THEN
          BUFY1<="00000000000000";
        ELSE
          BUFY1<="00000011001000";      --200
        END IF;
    ELSIF CLK' EVENT AND CLK='1' THEN
       BUFY1<=BUFY1-1;
       XAXA2<=NOT XAXA2;      
    END IF;
END PROCESS;
   
  OUT<=XAXA2;


PROCESS(CLK,BUFY1)         --同步??
BEGIN
  IF CLK' EVENT AND CLK='1' THEN
    IF BUFY1="00000000000000" THEN      
        IF REST='1' THEN
          BUFY1<="00000000000000";
        ELSE
          BUFY1<="00000011001000";      --200
        END IF;
    ELSE
       BUFY1<=BUFY1-1;
       XAXA2<=NOT XAXA2;      
    END IF;
END IF;
END PROCESS;
   
  OUT<=XAXA2;

  
 楼主| 发表于 2004-6-10 16:25:43 | 显示全部楼层

太奇怪啦!!不可能!!

PROCESS(CLK)         --同步??
BEGIN
IF CLK' EVENT AND CLK='1' THEN
   IF BUFY1="00000000000000" THEN      
       IF REST='1' THEN
         BUFY1<="00000000000000";
       ELSE
         BUFY1<="00000011001000";      --200
         XAXA2<=‘0’;
       END IF;
   ELSE
      BUFY1<=BUFY1-1;
      XAXA2<=NOT XAXA2;      
   END IF;
END IF;
END PROCESS;
  
OUT<=XAXA2;
在时钟信号CLK的上升沿,假如BUFY1=0 AND REST=‘1’ 停止记数;
                       假如BUFY1=0 AND REST=‘0’ 计数器输入初值200;
                       假如BUFY1/=0 计数器减一;
在时钟信号CLK的上升沿,假如BUFY1/=0,REST不论为高还是低,都不应该影响 BUFY1的记数。但是我如果频繁的改变REST,计数器输出的值就不对。这如何解释???
 楼主| 发表于 2004-6-10 16:36:25 | 显示全部楼层

太奇怪啦!!不可能!!

PROCESS(CLK,REST)
BEGIN
  IF REST='0' THEN
     BUFY1<="00000011001000";      --200
     XAXA2<='0'
  ELSIF CLK' EVENT AND CLK='1' THEN
    IF BUFY1 /= "00000000000000" THEN
     BUFY1<=BUFY1-1;
     XAXA2<=NOT XAXA2;      
    END IF;
   END IF;
  END IF;
END PROCESS;
  
OUT<=XAXA2;

REST='1' 才记数,但是,假如BUFY1不为0,REST='0' ,那不就不对了吗???  
发表于 2004-6-10 16:46:55 | 显示全部楼层

太奇怪啦!!不可能!!



下面引用由ZLS2004/06/10 09:07am 发表的内容:
CLK 100K的方波。 BUFY1 STD_logic_VECTOR(13 DOWNTO 0);
OUT 为脉冲输出口,BUFY1减两次,输出一个脉冲。REST为输入口。
不停的记数,当BUFY1为空,REST为高,停止记数。但是,我频繁的停止记数,OUT输出
                          ~~~~~~~~~      口 ...

REST是计数使能信号还是复位信号
 楼主| 发表于 2004-6-10 16:53:22 | 显示全部楼层

太奇怪啦!!不可能!!

REST是计数使能信号还是复位信号
…………………………………………………………
REST为高复位(为高就停止记数),REST为低初始化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 07:36 , Processed in 0.023013 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表