zoukankan      html  css  js  c++  java
  • 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

    仿真波形图:


  • 相关阅读:
    HDU 4870 Rating(高斯消元 )
    iOS开发者账号详细介绍
    iOS之Block
    CocoaPods 安装和使用
    搭建自己的局域网服务器
    MarkDown语法收集
    正则表达式参考表
    iOS企业级应用打包与部署
    iOS开发之代码加载方式进入APP的界面
    shell脚本小Demo
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4352844.html
Copyright © 2011-2022 走看看