Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1006176
  • 博文数量: 159
  • 博客积分: 4079
  • 博客等级: 上校
  • 技术积分: 2373
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-24 13:35
个人简介

诚实守信!

文章分类

全部博文(159)

文章存档

2015年(2)

2014年(18)

2013年(9)

2012年(57)

2011年(31)

2009年(42)

分类:

2009-09-08 14:53:44

module state_machine(
 clk,        //48M
 reset,                                    //
 sel,        //01
 
 Q       //01
 );
input   clk;      //
input   reset;     //
input   sel;
 
output [3:0] Q;      //
reg   [3:0] Q;      //
 
wire    clk_out;     //1S
 
reg   [2:0] sts;
 
parameter   st1 = 2'b00,   //1
   st2 = 2'b01,   //2
   st3 = 2'b10,   //3
   st4 = 2'b11;   //4
 
/* */
always @(posedge clk_out or negedge reset)
begin
 if(!reset)
 begin
  Q      <= 4'b0000;   //0
  sts <= st1;
 end
 else
  case(sts)
            st1:       //1
   begin  
    Q <= 4'b1110;   //0
    
    if(sel)      sts <= st2;   //sel
    else            sts <= st4;
   end   
   
            st2:       //2
  begin  
   Q <= 4'b1101;    //
   
   if(sel)   sts <= st3;   //sel
   else            sts <= st1; 
  end  
  
           st3:       //3
  begin  
   Q <= 4'b1011;    //
   
   if(sel)      sts <= st4;      //sel
   else            sts <= st2; 
  end  
  
           st4:       //4   
  begin  
   Q <= 4'b0111;   //
   
   if(sel)      sts <= st1;   //sel
   else            sts <= st3; 
  end  
  
           default:sts <= st1;    //0
       endcase
end
clk_div clk_div_0(     //2S
    .clk(clk),       //48M
.reset(reset),     //
 
.clk_out(clk_out)     //
   );
endmodule
 
 
module clk_div
 (
 clk,        //时钟输入,48M
 reset,       //异步复位输入,高电平复位
 clk_out      //分频时钟输出
 );
parameter   cnt_top=26'd12000000; //分频系数
input   clk;      //端口定义
input   reset;
output   clk_out;
reg     clk_out;      //寄存器定义
reg   [25:0] clk_cnt;
always @(posedge clk or negedge reset) 
begin
 if(!reset)       //复位
 begin
  clk_out <= 1'b0;
  clk_cnt <= 0;
 end
 else
 begin
  if(clk_cnt==cnt_top-1)
  begin
   clk_out <= ~clk_out;   //分频输出
   clk_cnt <= 0;
  end
  else
   clk_cnt <= clk_cnt+1'b1; //计数器加1
 end
end
endmodule
阅读(1834) | 评论(0) | 转发(0) |
0

上一篇:优先编码器

下一篇:挑战杯照片

给主人留下些什么吧!~~