zoukankan      html  css  js  c++  java
  • FGPA 中的计数器Verilog语言(时钟分频器)

    在quartusII8.0中为ALTERAFPGA设置一个分频器(计数器)

    输入时钟48Mhz

    输出时钟9600HZ

     1 /* 实验名称: 计数器
     2 ** 程序功能: 将48Mhz的时钟分频为9600Hz
     3 ** 时钟计算:9600*5000=48000000,,48Mhz的时钟累加5000次获得9600Hz的时钟,由于去的的clk的反向所以最终获得9600Hz的时钟需要累加2500次
     4 */
     5 
     6 module Conter_500
     7 (    CLK_48MHz,
     8     Reset,
     9     CLKout
    10 );
    11 
    12     input CLK_48MHz;    //系统时钟50MHZ
    13     input Reset;        // 全局复位,低电平有效
    14     output CLKout;      //CLK时钟输出(9600)
    15 
    16     //2500 => 0x9c4 => 4*3  = 12位
    17     reg[11:0] cnt;       //定义计数器寄存器
    18     reg clkout;         //定义输出寄存器
    19 
    20     //计数器程序块
    21     //always :对某些信号的变化感兴趣
    22     //posedge : 表示CLK_48MHz 上升沿会进入程序块
    23     //negedge : 表示Reset   下降沿会进入程序块
    24     always@(posedge CLK_48MHz or negedge Reset)
    25         begin
    26         if(1'b0 == Reset)             //当Reset引脚低电平表示复位
    27             cnt <= 12'd0;                //复位时,值计数器的值为0
    28         else if(cnt == 12'd2499)        //当计数达到500时(因为计数从0开始)
    29             begin
    30             cnt <= 12'd0;                //计数器值置0,避免溢出
    31             clkout = ~clkout;           //输出clk反向
    32             end
    33         else 
    34             cnt <= cnt + 1'b1;          //计数器计数(累加)
    35         end
    36         
    37         assign CLKout=clkout;         //将clkout寄存器输出连接至实际的CLKOUT(引脚)
    38         
    39 endmodule

    在project Navigator的Files下如图:(现将DIVclk.v添加至Files中,右键Files会有相应的提示)

    右键DIVclk.v

    在project navigator 中的file 目录下找到源文件,右键点击源文件,选中 create symbol files for current file.
    QuartusII会先编译DIVclk.v,无错误后会生成DIVclk的原理图文件,生成的原理图文件在DIVclk的添加的工程中。

    
    
  • 相关阅读:
    作业2 求题目中的数
    2013 C#单元测试
    实现项目WC
    带括号多项式版四则运算
    20道简单加减法随机生成程序扩展版体会
    20道简单加减法随机生成程序
    Jeesite 集成微信支付接口
    第一节:JAVA 语言的学习目标
    vector(未完)
    关于phpstorm端口63342的修改经历
  • 原文地址:https://www.cnblogs.com/BigOBlue/p/7908973.html
Copyright © 2011-2022 走看看