verilog将100mhz分频为1hz_verilog怎么实现分频?
满意答案
52kzw
2018.01.31
采纳率:43% 等级:10
已帮助:1724人
直接给代码给你吧!只需要把F_DIV倍修改下就行!
加分哦!呵呵
//*******************************************************//
// 任意整数分频模块 //
//*******************************************************//
//功能:对输入时钟clock进行F_DIV倍分频后输出clk_out。
//其中F_DIV为分频系数,分频系数范围为1~2^n (n=F_DIV_WIDTH)
//若要改变分频系数,改变参数F_DIV或F_DIV_WIDTH到相应范围即可。
//若分频系数为偶数,则输出时钟占空比为50%;
//若分频系数为奇数,则输出时钟占空比取决于输入时钟占空比和分
//频系数(当输入为50%时,输出也是50%)。
//--------------------------------------------------------
//奇数倍分频:三倍分频的时序图如下所示。
// 1 2 3 4 5 6
//clock |--|__|--|__|--|__|--|__|--|__|--|__|
//clk_p_r |_____|-----------|_____|-----------|
//clk_n_r ---|_____|-----------|_____|---------
//clk_out |________|--------|________|--------|
module int_div(clock,clk_out);
//I/O口声明
inputclock;//输入时钟
outputclk_out;//输出时钟
//内部寄存器
regclk_p_r;//上升沿输出时钟
reg clk_n_r;//下降沿输出时钟
reg[F_DIV_WIDTH - 1:0] count_p;//上升沿脉冲计数器
reg[F_DIV_WIDTH - 1:0] count_n;//下降沿脉冲计数器
//参数--分频系数
parameter F_DIV = 48000000;//分频系数<<<
parameter F_DIV_WIDTH = 32; //分频计数器宽度
wire full_div_p;//上升沿计数满标志
wire half_div_p;//上升沿计数半满标志
wire full_div_n;//下降沿计数满标志
wire half_div_n;//下降沿计数半满标志
//判断计数标志位置位与否
assign full_div_p = (count_p < F_DIV - 1);
assign half_div_p = (count_p < (F_DIV>>1) - 1);
assign full_div_n = (count_n < F_DIV - 1);
assign half_div_n = (count_n < (F_DIV>>1) - 1);
//时钟输出
assignclk_out = (F_DIV == 1) ?
clock : (F_DIV[0] ? (clk_p_r & clk_n_r) : clk_p_r);
//上升沿脉冲计数
always @(posedge clock)
begin
if(full_div_p)
begin
count_p <= count_p + 1'b1;
if(half_div_p)
clk_p_r <= 1'b0;
else
clk_p_r <= 1'b1;
end
else
begin
count_p <= 0;
clk_p_r <= 1'b0;
end
end
//下降沿脉冲计数
always @(negedge clock)
begin
if(full_div_n)
begin
count_n <= count_n + 1'b1;
if(half_div_n)
clk_n_r <= 1'b0;
else
clk_n_r <= 1'b1;
end
else
begin
count_n <= 0;
clk_n_r <= 1'b0;
end
end
endmodule
00分享举报
verilog将100mhz分频为1hz_verilog怎么实现分频?相关推荐
- verilog将100mhz分频为1hz_verilog—分频器设计
常用分频器设计 (含 0.5hz . 1hz . 2hz . 100hz . 1khz . 100khz . 1MHZ ) 一. 原理图 二. 程序(输入频率为 50MHZ ) module divc ...
- verilog将100mhz分频为1hz_verilog—分频器设计 -
常用分频器设计 (含0.5hz.1hz.2hz.100hz.1khz.100khz.1MHZ) 一. 原理图 二. 程序(输入频率为50MHZ) module divclk(clk,div05hz,d ...
- verilog将100mhz分频为1hz_50m 分频器设计——50MHZ(含verilog程序)
50m 分频器设计--50MHZ(含verilog程序) 分频器设计 一.实验目的 1.熟悉分频器的原理: 2.掌握采用Verilog HDL语言设计分频器的方法: 3.进一步学习利用VerilogH ...
- verilog将100mhz分频为1hz_使用verilog语言实现分频器 将50MHZ分为1hz和5hz
你好,使用以下程序即可,使用时只需改变N值,N的取值大小请看注释,此程序适合对任意时钟的整数分频(包括奇偶),此程序已通过验证.根据你的情况,想得到1HZ,N取50000000即可:想得到5HZ,N取 ...
- verilog将100mhz分频为1hz_分频程序(50Mhz-1Hz)
数字电路课程设计功能款程序 library ieee; use ieee.std_logic_1164.all; entity fen is port (clk:in std_logic; q: ou ...
- 【Verilog HDL 训练】第 11 天(分频电路)
设计一个占空比50%的三分频电路. 针对这个分频器,博文的末尾会给出一个反面教材,这是我上次写的一个分频器,看起来很好,其实是不能综合的.针对其中的错误,我令立博文记录之:[ Verilog ]alw ...
- 一文搞懂FPGA的Verilog分频
0.引言 分频器是指输出信号频率为输入信号频率整数分支一的电子电路,在许多的电子设备中需要各种不同的信号协同工作,例如电子钟,频率合成器,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到多需要 ...
- 8分频verilog线_Verilog设计分频器(面试必看)
分频器是指使输出信号频率为输入信号频率整数分之一的电子电路.在许多电子设备中如电子钟.频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种 ...
- n分频器 verilog_时钟分频系列——分数分频电路的Verilog实现
IC君的第47篇原创文章 上一篇文章时钟分频系列--偶数分频/奇数分频/分数分频,IC君介绍了各种分频器的设计原理,其中分数分频器较为复杂,这一篇文章IC君再跟大家聊聊分数分频的具体设计实现. 一个分 ...
最新文章
- 自学MVC——添加一个控制器
- 安装redis出现cc adlist.o /bin/sh:1:cc:not found
- Linux系统编程---14(回收子线程,回收多个子线程,线程分离,杀死线程)
- ubuntu 文件及子文件夹的权限的查看及修改
- Python学习02 列表 List
- Xshell5免费版安装使用说明
- 【坚持每日一题9.21】整数的英语表示
- 前端-JS基础之各类型常用api
- 第三方接入-飞猪酒店商品发布流程
- ollvm编译出现的问题纪录
- linux lightdm.conf,lightDM(Light Display Manager)简介
- html 中表格的拆分合并
- matlab获取基金数据,读取WIND数据(行情、基金净值等)的SAS程序
- Windows10系统安装postgreSQL出错解决方法
- Linux 使用gcore、gdb、pstack、strace命令查死锁问题
- JS获取上周(自然周、最近七天)、上月(自然月、最近一个月)、全年的开始和结束日期
- leetcode 273. 整数转换英文表示[困难]
- LED驱动电源不足,都有哪些原因
- 【可达编程】最高的分数
- 正确的Python学习路线图,来了!