vivado代码编写——分频

本文介绍了如何使用Verilog编写FPGA分频器,包括偶数分频和奇数分频的方法。对于偶数分频,如二分频和四分频,主要通过计数器和逻辑翻转实现。奇数分频如三分频则更复杂,需要在下降沿触发,并结合多个计数状态来生成分频信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要开始编写verilog代码了,以常用的分频为例,编写一个简单的代码。

FPGA设计中,分频分为偶数分频和奇数分频。

偶数分频只要计上升沿的个数,然后按照分频要求的不同计相应个数的上升沿并进行波形翻转即可。

例如二分频,每计到一个上升沿,波形翻转一次;

例如四分频,每计到两个上升沿,波形翻转一次。

奇数分频相对比较麻烦,因为奇数分频经常要在给出时钟的下降沿进行翻转,而Verilog本质上是硬件描述,设计的本质仍然是硬件设计。在综合设计时,Verilog代码必须映射到FPGA上的可用硬件上。

FPGA常用的电路是触发器,触发器是一个具有时钟且仅对该时钟的一个边沿敏感的器件。

always@(posedge clk)综合后映射到只对一个时钟边沿敏感的触发器,always@(posedge

clk or negedge rst)综合后映射到有一个异步控制端且仅对时钟的一个边沿敏感的触发器。

不管always@()综合后映射到哪种触发器,它都只能使用一个时钟沿触发。

奇数分频注定要比偶数分频复杂,可以采用这样的方式进行奇数分频:

假设要对给定的时钟进行2N+1分频:先计数;将计数分成N、N+1的两段;前一段将变量div1置0,后一段将变量div1置1;用一个下降沿触发的触发器,div1延迟半个时钟周期后输出,生成div2;div1和div2相与,即得到分频后的时钟。

module FreDivDou(

input  clk_i,

input  rst_n_i,

 

output div2_o,

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值