Verilog分频器

verilog设计进阶

时间:2014年5月6日星期二

 

主要收获:

1.自己动手写了第一个verilog程序。

 

题目:

利用10M的时钟,设计一个单周期形状例如以下的周期波形。

 

思考:

最開始的想法是:定义两个计数器进行计数,两个使能标志位分别控制这两个变量。可是这样逻辑又太复杂,网上搜了搜,还是定义一个计数器比較好。

 

verilog程序:

modulefdivision(clk, rst, clk_out);

 

       input clk;

       input rst;

       output clk_out;

      

       reg[5:0] count;

       reg rclk_out;

      

       assign clk_out = rclk_out;

      

       always@(posedge clk or negedge rst) begin

              if(!rst) begin

                     count<=0;rclk_out<=0;

              end

              else if(count==30)

                     count<=0;

              else count<=count+1;

       end

      

       always@(posedge clk) begin

              if(count<=9) rclk_out<=1;

              else rclk_out<=0;

       end

      

endmodule

 

測试文件:

`timescale1ns/1ns

 

modulefdivision_test;

 

       reg clk, rst;

       wire clk_out;

      

       always #2 clk=~clk;

      

       initial begin

              clk=0;rst=1;

              #20 rst=0;

              #20 rst=1;

              #500 $stop;

       end

      

       fdivision u1(clk, rst, clk_out);

 

endmodule

 

仿真波形图:


转载于:https://www.cnblogs.com/gcczhongduan/p/4352844.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值