推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

FPGA CPLD设计Verilog例程分频计数实验工程文件源码+说明文档

更新时间:2020-07-01 16:27:50 大小:230K 上传用户:xzxbybd查看TA发布的资源 标签:fpgacpldverilog 下载积分:2分 评价赚积分 (如何评价?) 收藏 评论(1) 举报

资料介绍

FPGA CPLD设计Verilog例程分频计数实验工程文件源码+说明文档


分频计数实验说明

这个实验可以说是 verilog 入门最最基础的实验了,我们不做太多的理论分

析,实践是硬道理。在实验中, 我们把分频输出的信号 clk_div 和蜂鸣器连接在

一起,大家就可以真真切切的感受到什么是分频了。下面的程序里,用了20bit

的计数器cnt,循环的计数,所以说一个周期有2 的20 次幂也即大约有1M 分频,

因为主时钟50MHz(周期就是20ns),所以20ms 一个计数周期。蜂鸣器就以20ms

的周期性发声,大家可以改变cnt 的值看看效果。

大家可以直接运行同目录下的 clkdivverilog 的工程进行下载配置。

代码如下:

module clkdiv(

clk,rst_n,

clk_div

);

input clk; //50MHz

input rst_n; //低电平复位信号

output clk_div; //分频信号

//---------------------------------------------------

reg[19:0] cnt; //分频计数器

always @ (posedge clk or negedge rst_n) //异步复位

if(!rst_n) cnt <= 20'd0;

else cnt <= cnt+1'b1; //寄存器cnt 20ms 循环计数

//----------------------------------------------------

reg clk_div_r; //clk_div 信号值寄存器

always @ (posedge clk or negedge rst_n)

if(!rst_n) clk_div_r <= 1'b0;

else if(cnt == 20'hfffff) clk_div_r <= ~clk_div_r; //每20ms 让clk_div_r 值翻

转一次

assign clk_div = clk_div_r;


部分文件列表

文件名大小
clkdivverilog/
clkdivverilog/.sopc_builder/
clkdivverilog/.sopc_builder/install.ptf7KB
clkdivverilog/clkdiv.asm.rpt7KB
clkdivverilog/clkdiv.cdf
clkdivverilog/clkdiv.done
clkdivverilog/clkdiv.dpf
clkdivverilog/clkdiv.eda.rpt3KB
clkdivverilog/clkdiv.fit.rpt
clkdivverilog/clkdiv.fit.smsg
clkdivverilog/clkdiv.fit.summary
...

全部评论(1)

  • 2021-12-16 10:09:18小能

    非常好,先学习学习,谢谢。