Verilog 分频器

verilog设计进阶

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

主要收获:

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

题目:

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

思考:

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

verilog程序:

module fdivision(clk, rst,
clk_out);

input
clk;

input
rst;

output
clk_out;

reg[5:0]
count;

reg
rclk_out;

assign
clk_out = rclk_out;

[email protected](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

[email protected](posedge
clk) begin

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

else
rclk_out<=0;

end

endmodule

测试文件:

`timescale 1ns/1ns

module fdivision_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

仿真波形图:

时间: 2024-11-04 22:25:55

Verilog 分频器的相关文章

Verilog分频器

verilog设计进阶 时间:2014年5月6日星期二 主要收获: 1.自己动手写了第一个verilog程序. 题目: 利用10M的时钟,设计一个单周期形状如下的周期波形. 思考: 最开始的想法是:定义两个计数器进行计数,两个使能标志位分别控制这两个变量.但是这样逻辑又太复杂,网上搜了搜,还是定义一个计数器比较好. verilog程序: modulefdivision(clk, rst, clk_out); input clk; input rst; output clk_out; reg[5:

基于Verilog的奇数偶数小数分频器设计

今天呢,由泡泡鱼工作室发布的微信公共号“硬件为王”(微信号:king_hardware)正式上线啦,关注有惊喜哦.在这个普天同庆的美好日子里,小编脑洞大开,决定写一首诗赞美一下我们背后伟大的团队,虽然连上我只有两个人,但丝毫不影响我们的工作热情和创业野心.合抱之木,生于毫末:九层之台,起于垒土:千里之行,始于足下! 首先小编在这里分享一个基于Verilog语言的分频器设计,该分频器实现了奇数.偶数.小数(0.5)分频,可综合,能跑700M左右的时钟,基本能够满足大部分应用需求. 一:背景 前天,

[Verilog]任意整数(奇数,整数)分频器设计, 50%占空比

module div_clk(clk_in, divisor, clk_out); input clk_in; input divisor; output clk_out; reg clk_out = 0; wire clk_in; reg [7 : 0] count = 0; wire [7 : 0] divisor; wire odd; assign odd = divisor & 1; always @(clk_in) begin if (count == 0 && clk_

分频器的verilog设计

笔者最近由于实验室老师的任务安排重新又看了一下分频器的verilog实现,现总结如下,待以后查看之用(重点是查看计数器计到哪个值clk_out进行状态翻转) 1.偶数分频占空比为50% 其实质还是一个N计数器模块来实现,首先要有复位信号,这个复位信号的作用就是使计数器和分频输出clk_out刚开始有一个复位值,其次就是计数翻转了,注意这里是计到哪个值翻转,首先刚开始时reset复位时计数器赋初值为0,然后计数器计到N/2-1时进行clk-out状态翻转,即clk_out<=~clk_out,此时

基于verilog的分频器设计(奇偶分频原理及其电路实现:上)

在一个数字系统中往往需要多种频率的时钟脉冲作为驱动源,这样就需要对FPGA的系统时钟(频率太高)进行分频.分频器主要分为奇数分频,偶数分频,半整数分频和小数分频,在对时钟要求不是很严格的FPGA系统中,分频器通常都是通过计数器的循环来实现的. 偶数分频:假设为N分频,由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数.以此循环下去.这种方法可以实现任意的偶数分频.如图所示,两个D触发器级联实现四分频电路,原理:来一个

基于verilog的分频器设计(半整数分频,小数分频:下)

半整数分频器:计数器是通过上升沿触发,故在计数为N-1时对计数触发进行翻转,时钟的下降沿变为上升沿,因此计数值为0,所以每产生n+0.5分频时钟的周期,触发时钟都要翻转一次.如图所示,采用异或门和2分频模块设计脉冲扣除电路,脉冲扣除是输入频率和2分频输出相异或的结果. module fenpin(clk,rst_n,clk_out); input clk; input rst_n; output clk_out; reg clk_out2; wire clk_out1; reg [1:0] cn

基于Verilog的偶数、奇数、半整数分频以及任意分频器设计

在FPGA的学习过程中,最简单最基本的实验应该就是分频器了.由于FPGA的晶振频率都是固定值,只能产生固定频率的时序信号,但是实际工程中我们需要各种各样不同频率的信号,这时候就需要对晶振产生的频率进行分频.比如如果FPGA芯片晶振的频率为50MHz,而我们希望得到1MHz的方波信号,那么就需要对晶振产生的信号进行50分频. 分频器的设计虽然是FPGA学习过程中最简单的实验,但是真正想要把分频器的来龙去脉弄清楚,还是需要花费一番功夫的.下面先介绍一下最常见的几种分频器写法: 1.偶数分频器 相信大

Verilog HDL学习_1:分频器的实现

(一)参考学习资料 (二)实际操作 1. 相关变量计算:   First Initial Second Initial Upper case H X ASCII (Dec) 72 88 Lengths of the pulse     Mu Mu_1 2.5*105 Mu_2 2.5*105 k : mu ku_1 : mu_1 1.2812:3.7188 ku_2 : mu_2 1.3438:3.6562 nu nu_1 18 nu_2 18 Ku Ku_1 64060 Ku_2 67190

Verilog学习笔记简单功能实现(六)...............计数分频电路

在分频器电路中最重要的概念有两个:1)奇分频/偶分频:2)占空比. A)其中最简单的就是二分频电路,占空比为50%,其Verilog程序为 1 module half_clk(clr,clk_in,clk_out,out2); 2 input clr,clk_in; 3 output clk_out,out2; 4 reg clk_out,out2; 5 6 always @(posedge clk_in) 7 begin 8 if (clr==0) begin clk_out=0; out2=