Vivado自写分频模块的分频时钟的约束条件编写

这篇具有很好参考价值的文章主要介绍了Vivado自写分频模块的分频时钟的约束条件编写。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、原因

由于项目需要,整个工程需要在100kHz的时钟下运行,FPGA的clk:50MHz

二、方案分析

  1. 采用IP核得到分频时钟

clocking wizard

Vivado自写分频模块的分频时钟的约束条件编写

问题:MMCM和PLL都不能实现分频到100KHz这么低的频率

MMCM最小频率4.687MHz

PLL最小频率6.25MHz

Vivado自写分频模块的分频时钟的约束条件编写
  1. 自己写一个简单的分频模块

分频模块如下:

module divi_fre #(parameter DIVNUM=500,parameter WIDTH=9)(
input clk,
input rst_n,
output reg divi_clk
    );
reg [WIDTH-1:0] counter;
always @(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        counter <= 'd0; 
    end
    else begin
        counter <= counter + 1'b1;
        if(counter==DIVNUM/2-1)
            counter <= 'd0;
    end

end
always @(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        divi_clk <= 1'b0;
    end
    else begin
        if(counter == DIVNUM/2-1)begin
            divi_clk <= ~divi_clk;
        end
    end
end
    
endmodule

问题:自己写的分频模块直接使用是不可以的,需要在约束文件中进行时序约束

  1. 自写分频模块时钟时序约束

(1)打开implemented Design

查看分频模块的原理图

Vivado自写分频模块的分频时钟的约束条件编写
Vivado自写分频模块的分频时钟的约束条件编写
Vivado自写分频模块的分频时钟的约束条件编写

找到输出divi_clk

Vivado自写分频模块的分频时钟的约束条件编写
Vivado自写分频模块的分频时钟的约束条件编写

可以看到divi_clk_reg寄存器的C端口连接的是输入CLK(50MHz),Q端口连接的是divi_clk(100KHz)

(2)约束文件编写

create_clock -period 20.000 -name clk1 [get_ports clk]
create_generated_clock -name clk2 -source [get_pins u_divi_fre/divi_clk_reg/C] -divide_by 500 [get_pins u_divi_fre/divi_clk_reg/Q]
  1. clk1对应50MHz

20ns--->50MHz, get_ports对应clk

注:clk1和clk2只是随意取的名字,没有影响

  1. clk2对应100kHz

-divide_by后跟的是计算得到的分频值,50_000_000/100_000=500

-source后跟输入时钟,上面说到了divi_clk_reg寄存器的C端口连接的是输入CLK,注意这个定位到寄存器的时序约束需要从顶层一层一层传下来到管脚

[get_pins u_divi_fre/divi_clk_reg/Q]就输出的divi_clk了

其实应该直接get_ports到clk和divi也是可以的,但是因为我当时没这么写,后面改改文章来源地址https://www.toymoban.com/news/detail-469743.html

到了这里,关于Vivado自写分频模块的分频时钟的约束条件编写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • fpga时钟分频——奇数分频

    相比偶数分频,奇数分频相对复杂,下面我总结一下如何用verilog实现。以N(奇数)为例。 总结如下: a. 上升沿计数器和信号寄存器 : 设置一个计数长度为N的上升沿计数器(pos_cnt),并且设置一个信号寄存器(pos_clk)。 当上升沿计数器计数到时,信号寄存器翻转。 当上升沿计

    2024年04月17日
    浏览(62)
  • 时钟分频电路设计--verilog(2分频、3分频、4分频)

    module divider( input clk, input resetn, output reg clk_d2, output reg clk_d3_pos, output reg clk_d3_neg, output clk_d3, //reg型不能assign赋值? output reg clk_d4 ); reg [1:0]counter; reg [1:0]counter_3; always@(posedge clk or negedge resetn)begin //4分频计数器模块 if(~resetn) counter = 2’b0; else if(counter = 2’b11) counter = counter + 1’

    2024年02月06日
    浏览(45)
  • 分频时钟、使能时钟、门控时钟的概念和使用

            FPGA的时钟和时序以及功能息息相关,下面将介绍分频时钟,使能时钟以及门控时钟。         有些时候设计需要将主时钟进行分频以降低频率使用,对于有足够PLL和MMCM资源的FPGA,可以使用PLL或MMCM进行分频,但是没有这些资源的FPGA要想降低时钟频率就得靠逻辑来

    2024年02月12日
    浏览(70)
  • Verilog 时钟分频设计

    将触发器的反向输出端接到触发器的输入,可以构成简单二分频电路。 在此基础上,将二分频电路进行级联可以构成四分频,八分频电路。电路如下图所示:   对于任意偶数分频,或者系数较大的偶数分频,可以使用计数器循环计数来实现分频。当计数周期达到N/2(N为分频

    2024年02月11日
    浏览(45)
  • 如何实现时钟信号分频?

            在进行数字电路实验时,经常需要对时钟信号进行分频,以实现输出不同频率的时钟信号。         以下题为例:要求将50MHz的时钟信号进行分频,产生1MHz的时钟信号。其Verilog描述如下:                首先,精确理解一下50MHz的时钟频率究竟是什么概念?

    2024年02月11日
    浏览(43)
  • 时钟分频器

    8倍时钟分频器是一种电路或设备,用于将输入时钟信号的频率分成原来的1/8。它可以在数字电子系统中用于将高频时钟信号降低到较低的频率,以满足特定的系统需求。 在这个电路中,CLK是输入的时钟信号,CLK_OUT是输出的时钟信号。通过适当的电路设计,8倍时钟分频器将输

    2024年02月16日
    浏览(42)
  • FPGA代码实现分频和pll分频后的时钟的使用

    1、代码实现的分频时钟 假如 clk_out 输出信号是我们想要的分频后的信号,然后很多人会直接把这个信号当作新的低频时钟来使用,并实现了自己想要的功能。虽然最终实现的功能是成功的,但往往忽略了一些隐患的存在,这种做法所衍生的潜在问题在低速系统中不易察觉,

    2024年02月05日
    浏览(46)
  • Verilog-实现时钟分频(1KHZ、奇、偶分频,占空比为50%)

    代码如下 1khz分频代码 1khz分频-testbench 仿真图如下 通过计数器实现,进行N倍偶数分频,通过时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,以此循环下去。(占空比为50%) ,以下代码实现8分频,可根据实际需求改变参数输出需要的时钟。 代码如下 偶

    2024年02月08日
    浏览(51)
  • 几种常用时钟分频实现方法

    在我们学习中,常常需要对时钟进行分频处理,本文将介绍几种常用分频方法。 一、2的整数次幂分频 这种分频很简单,只需要设置一个计数器,对计数器进行计数,计数器的第i位则对应的2的i-1次幂分频。此方法适用于占空比为1/2,如果占空比不为1/2,则可用下面讲述的偶分

    2024年02月12日
    浏览(42)
  • 「Verilog学习笔记」时钟分频(偶数)

    专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包