基于Verilog的3分频

上一篇 / 下一篇  2006-09-15 13:06:42 / 天气: 晴朗 / 心情: 高兴

Verilog实现的3分频

分析思路:
首先考虑输入输出,作为分频电路,有一个时钟输入端,clk,输出端div3,再加一个复位端(这里不加也可)
所以输入 clk,rst
      
输出 div3
再考虑状态转换的问题
      
既然是3分频,应该有3种状态,001 or 110011
在时钟的作用下,应该不停的在这三种状态下转换,并且输出仅仅依赖于当前的状态

代码如下:

//Moore fsm
// Written by keaty,University of Southeast

module div_fsm (clk,rst,div3);
input                clk,rst;
output                div3;
reg                div3;

parameter[1:0]  S0=2'd0,
                S1=2'd1,
                S2=2'd2;

reg[1:0]                state,next_state;

always @ (posedge clk)
begin
        if(!rst) state<=S0;
        else     state<=#1 next_state;
end

always @ (state)
begin
        //default values
        next_state=S0;
        case (state)
                S0: begin
                         next_state=S1;
                         div3=0;
                    end
                    
                S1: begin
                         next_state=S2;
                         div3=0;
                    end
                             
                S2: begin
                         next_state=S0;
                         div3=1;
                    end
                    
                        endcase
end
endmodule


// test benches
module div_fsm_t;
reg         clk,rst;
wire        div3;

div_fsm U1(clk,rst,div3);

initial begin
        clk=0; rst=0;
        #300   rst=1;
end

always #50 clk=~clk;
endmodule

所有的整数分频器都可以按照次方法来实现。


FPGA/CPLD器件价格查询

TAG:

kittenheaven的世界 引用 删除 kittenheav   /   2006-09-18 17:13:53
占空比不是1:1啊
kittenheaven的世界 引用 删除 kittenheav   /   2006-09-18 16:18:27
同时用  上升下降沿有可能出现问题吧
引用 删除 rogershan   /   2006-09-18 10:06:10
state<=#1 next_state 不能综合
引用 删除 linch8247   /   2006-09-17 16:45:00
计数器也可以分,只不过同时用了时钟的上下沿采样
yin_wt的个人空间 引用 删除 yin_wt   /   2006-09-17 09:21:44
高手的风格
加#是很好的习惯
jasonliuscu的个人空间 引用 删除 jasonliuscu   /   2006-09-16 08:47:51
好象也是初学者,没分清哪些是可综合的
引用 删除 liangyongzhi   /   2006-09-16 00:25:54
3
计数器分频好象只能进行2的次方分频把,是不是这样的,老大。
guode的个人空间 引用 删除 guode   /   2006-09-15 23:42:53
为何不用计数器分频呢
xiaomei2的温馨之家 引用 删除 xiaomei2   /   2006-09-15 19:19:45
同步复位,异步状态机,case语句状态不闭合,而且含有不可综合语句“#”。风格不是很好。不过也还不错了。
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar