首页 > 其他分享 >15.分频器设计--偶分频

15.分频器设计--偶分频

时间:2024-07-03 11:33:24浏览次数:20  
标签:reset 分频 分频器 set clk -- get property ports

设计一个六分频时钟信号

(1)visio视图:

(2)Verilog代码:

module divider_six(clk,reset_n,clk_out);

    input clk;
    input reset_n;
    
    output reg clk_out;
    
    reg [1:0]cnt;

//计数器模块设计   
    always@(posedge clk or negedge reset_n)
        if(!reset_n)
            cnt <= 2'd0;
        else if (cnt == 2'd2)
            cnt <= 2'd0;
        else    
            cnt <= cnt + 2'd1;

//clk_out信号设计
    always@(posedge clk or negedge reset_n)
        if(!reset_n)
            clk_out <= 1'd0;
        else if (cnt == 2'd2)
            clk_out <= ~clk_out;
        else 
            clk_out <= clk_out;
            

endmodule 

(3)RTL视图:

(4)仿真文件代码:

`timescale 1ns / 1ps

module divider_six_tb;

    reg clk;
    reg reset_n;
    
    wire clk_out;

    divider_six divider_six_inst(
        .clk(clk),
        .reset_n(reset_n),
        .clk_out(clk_out)
    );
    
    initial clk = 1'd1;
    always #10 clk = ~clk;
    
    initial begin
        reset_n = 1'd0;
        #20;
        reset_n = 1'd1;
        #2000
        $stop;
    end

endmodule

(5)仿真波形:

(6)引脚绑定:

set_property IOSTANDARD LVCMOS33 [get_ports clk_out]
set_property IOSTANDARD LVCMOS33 [get_ports reset_n]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property PACKAGE_PIN N15 [get_ports reset_n]
set_property PACKAGE_PIN W19 [get_ports clk]
set_property PACKAGE_PIN M13 [get_ports clk_out]

(7)实验现象:

(8)使用降频的方法实现八分频:

module ex_divider_eiht(clk,reset_n,clk_flag);

    input clk;
    input reset_n;
    
    output reg clk_flag;
    
    reg [2:0]cnt;
    
//计数器设计
    always@(posedge clk or negedge reset_n)
        if(!reset_n)
            cnt <= 3'd0;
        else 
            cnt <= cnt + 3'd1;

//clk_flag信号设计
    always@(posedge clk or negedge reset_n)
        if(!reset_n)
            clk_flag <= 1'd0;
        else if(cnt == 3'd6)
            clk_flag <= 1'd1;
        else 
            clk_flag <= 1'd0;
        

endmodule
`timescale 1ns / 1ps

module ex_divider_eiht_tb;

    reg clk;
    reg reset_n;
    
    wire clk_flag;

    ex_divider_eiht  ex_divider_eiht0(
        .clk(clk),
        .reset_n(reset_n),
        .clk_flag(clk_flag)
    );
    
    initial clk = 1'd1;
    always #10 clk = ~clk;
    
    initial begin
        reset_n <= 1'd0;
        #20
        reset_n <= 1'd1;
        #2000
        $stop;
    end
    
    
endmodule

set_property IOSTANDARD LVCMOS33 [get_ports reset_n]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk_flag]
set_property PACKAGE_PIN N15 [get_ports reset_n]
set_property PACKAGE_PIN W19 [get_ports clk]
set_property PACKAGE_PIN M13 [get_ports clk_flag]

标签:reset,分频,分频器,set,clk,--,get,property,ports
From: https://blog.csdn.net/2301_80417284/article/details/140129514

相关文章

  • 电脑数据丢失该怎么恢复?分享10款数据恢复神器
    在数字化时代,数据丢失的问题时有发生,无论是手机,还是电脑,总有误删、格式化等各种原因导致数据丢失。那么当电脑数据丢失后,我们除了从回收站中找回文件,还可以使用哪些方法找回文件呢?本文将为大家详细分析数据丢失的原因,介绍数据恢复的方法,并分享10款数据恢复神器,希望能帮助你......
  • 01 | 为什么MapReduce会被硅谷一线公司淘汰?
    今天我要与你分享的主题是“为什么MapReduce会被硅谷一线公司淘汰”。我有幸几次与来Google参观的同行进行交流,当谈起数据处理技术时,他们总是试图打探MapReduce方面的经验。这一点让我颇感惊讶,因为在硅谷,早已没有人去谈论MapReduce了。今天这一讲,我们就来聊聊为什么......
  • 手把手教你:如何在51建模网免费下载3D模型?
    作为国内领先的3D互动展示平台,51建模网不仅汇聚了庞大的3D模型资源库,供用户免费下载,更集成了在线编辑、格式转换、内嵌展示及互动体验等一站式功能,为3D创作者及爱好者搭建起梦想与现实的桥梁。如何在51建模网免费下载3D模型?按照下面几个步骤即可轻松下载:01、筛选可下载模型......
  • AGNN论文阅读笔记
    Attention-BasedGraphNeuralNetworkforNewsRecommendation论文阅读笔记Abstract存在的问题:​ 用户的历史点击序列信息对用户兴趣的影响也不尽相同,简单地将它们结合起来并不能反映这种差异。提出方法:​ 我们提出了一种基于注意力的图神经网络新闻推荐模型。在我们的模型......
  • Nginx实战书籍_220
    ......
  • 03 | 大规模数据处理初体验:怎样实现大型电商热销榜?
    今天要与你分享的主题是“怎样实现大型电商热销榜”。在Google面试过很多优秀的候选人,应对普通的编程问题coding能力很强,算法数据结构也应用得不错。可是当我追问数据规模变大时该怎么设计系统,他们却说不出所以然来。这说明他们缺乏必备的规模增长的技术思维(mindsetofs......
  • Nginx实战书籍_240
    ......
  • Nginx实战书籍_260
    ......
  • Nginx实战书籍_280
    ......
  • GIT - 一条命令把项目更新到远程仓库
    前言阅读本文大概需要3分钟说明更新项目到远程仓库只需要执行一条命令,相当的简便步骤第一步编辑配置文件vim~/.bash_profile第二步写入配置文件gsh(){localmsg="${1:-ADDCOMMITPUSH}"gitadd.&&gitcommit-m"$msg"&&gitpush}第三步......