打酱油 发表于 2010-10-3 22:40:57

一个5分频电路的困惑【谢谢高手帮忙】

先说明我是新手,所以问的问题可能比较弱智

想问的问题是仿真时为什么“0”的时候是5个周期,“1”的时候却有6个周期...

下面是程序(不写注释了):
module fp(clk,rst_n,fp);
      
      input clk;
      input rst_n;
      output fp;
      
      reg cnt;
      
      always @ (posedge clk or negedge rst_n)
               if(!rst_n) cnt <= 4'd0;
               else if (cnt <= 4'd9)cnt <= cnt + 1'b1;
               else cnt <= 4'd0;
               
      assign fp = (cnt <= 4'd4) ? 1'b0:1'b1;      



endmodule

仿真图如下:


谢谢高手帮忙

ybszczy 发表于 2010-10-4 12:45:45

首先你这个电路实现的不是5分频,按你的想法实现的是10分频;
改为else if (cnt <4'd9)cnt <= cnt + 1'b1;试试,如果按照你的应该是0,1,2,3,4时为低电平;5,6
7,8,9,10为高电平

rainybyf 发表于 2010-10-8 12:48:46

你这个是11分频,0-4为低,共5个周期,5-10为高,共6个周期。因为你的计数器是模11的(注意是cnt<=9,这会出现cnt=10)

shooter1010 发表于 2010-10-9 17:03:47

楼主确实很马虎啊

haihengcao 发表于 2010-10-29 18:23:51

就是,呵呵

lihongzhi 发表于 2010-12-10 15:43:34

我想问一下,这个5分频计数器中为什么reg的宽度是4,要是20分频计数器的reg的宽度又是多少呢?它们之间有什么运算关系啊?
请各位高手帮帮忙,谢谢了

wangxia6112 发表于 2010-12-13 14:57:22

支持2楼和3楼的,确实如此。

870027359 发表于 2010-12-18 01:57:28

回复六楼:
    他这个设置的reg设置成就可以,计数到4就行,如果20分频,宽度设置成5吧
页: [1]
查看完整版本: 一个5分频电路的困惑【谢谢高手帮忙】