PLL实验

news2024/9/27 17:32:45

PLL实验

开发板上面只有一个200MHz时钟输入,对于其它频率的时钟怎么办?

介绍

其实在很多 FPGA 芯片内部都集成了 PLL ,其他厂商可能不叫 PLL ,但是也有类似的功能模块,通过 PLL 可以倍频分频,产生其他很多时钟。
PLL(phase locked loop) ,即锁相环。

Clock Management Tiles(CMT) 提供了时钟合成 (Clock frequency),
倾斜矫正 ( deskew),过滤抖动 (jitter filtering) 功能。
每个 CMTs 包含一个 MMCM (mixed mode clock manager) 和一个 PLL 。

实验内容

本实验将通过使用PLL, 输出一个方波到开发板上的扩展口(接到一个LED灯)。

实验步骤

主要是使用PLL IP核来产生不同频率的时钟。

  1. 新建一个 pll_test 的工程,点击 Project Manager 界面下的 IP Catalog 。
  2. 再在 IP Catalog 界面里选择 FPGA Features and Design Clocking 下面的 Clocking Wizard ,双击打开配置界面。
  3. 配置时钟,Clocking Options和Output Clocks。
  4. 生成
  5. clk_wiz_0.xci 的 IP 会自动添加到我们的 pll_test 项目中 , 用户可以双击它来修改这个 IP 的配置。选择 IP Sources 这页,然后双击打开 clk_wiz_0.veo 文件,这个文件里提供了这个 IP 的 实例化模板 。
`timescale 1ns / 1ps 
module pll_test( 
    input sys_clk_p, //system clock 200Mhz on board 
    input sys_clk_n, //system clock 200Mhz on board 
    input rst_n, //reset ,low active 
    output reg led //led output
); 
wire locked; 
wire sys_clk ; 
reg[31:0] timer_cnt; 

clk_wiz_0 clk_wiz_0_inst ( 
    // Clock out ports 
    .clk_out1(), // output clk_out1 
    .clk_out2(sys_clk), // output clk_out2 
    .clk_out3(), // output clk_out3 
    .clk_out4(), // output clk_out4 
    // Status and control signals 
    .reset(~rst_n), // input reset 
    .locked(locked), // output locked 
    // Clock in ports 
    .clk_in1_p(sys_clk_p), // input clk_in1_p 
    .clk_in1_n(sys_clk_n)); // input clk_in1_n
always@(posedge sys_clk)
begin 
    if (!locked) 
    begin 
        led <= 1'b0 ; 
        timer_cnt <= 32'd0 ; 
    end 
    else if(timer_cnt >= 32'd99_999_999) //1 second counter, 100M-1=99999999 
    begin 
        led <= ~led; 
        timer_cnt <= 32'd0; 
    end 
    else 
    begin 
        led <= led; 
        timer_cnt <= timer_cnt + 32'd1; 
    end 
end 
endmodule

xdc 管脚约束文件

##################Compress Bitstream############################
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property PACKAGE_PIN AE5 [get_ports sys_clk_p]
set_property PACKAGE_PIN AE14 [get_ports rst_n]
set_property PACKAGE_PIN AE15 [get_ports led]
set_property IOSTANDARD LVCMOS33 [get_ports led]
set_property IOSTANDARD LVCMOS33 [get_ports rst_n]
set_property IOSTANDARD DIFF_SSTL12 [get_ports sys_clk_p]
create_clock -period 5.000 -name sys_clk_p -waveform {0.000 2.500} [get_ports sys_clk_p]

仿真

`timescale 1ns / 1ps 
// 
// Module Name: vtf_pll_test 
// 
module vtf_pll_test; 
// Inputs 
reg sys_clk_p; 
reg rst_n ; 
wire sys_clk_n; 
// Outputs 
wire led; 
// Instantiate the Unit Under Test (UUT) 
pll_test uut ( 
    .sys_clk_p(sys_clk_p), 
    .sys_clk_n(sys_clk_n), 
    .rst_n(rst_n), 
    .led(led) 
); 
initial 
begin 
// Initialize Inputs 
sys_clk_p = 0; 
rst_n = 0; 
// Wait for global reset to finish 
#1000; 
rst_n = 1; 
end
//Create clock 
always #2.5 sys_clk_p = ~ sys_clk_p; 
assign sys_clk_n = ~sys_clk_p ; 
endmodule

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131016.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch搭建yolov3网络

yolov3的整体网络结构 主要包含了两个部分。左边的Darknet-53主干特征提取网络主要用于提取特征。右边是一个FPN金字塔结构。 主干特征提取网络&#xff08;提取特征&#xff09; import math from collections import OrderedDict import torch.nn as nn#------------------…

MySQL事务相关知识

实践阅读&#xff1a;一文彻底读懂MySQL事务的四大隔离级别 1、什么是事务&#xff1f; 数据库事务&#xff08;简称&#xff1a;事务&#xff09;&#xff0c;是数据库管理系统执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成&#xff0c;这些操作要么全…

AcWing 4645. 选数异或(预处理小区间 + 二分优化找)

题目如下&#xff1a; 题解 or 思路 在 [l,r][l, r][l,r] 区间内找到两个数 a,ba, ba,b 使得 a ^ b x 通过异或的性质&#xff1a; a ^ b ^ b x ^ b > a x ^ b 我们可以通过 b 可以迅速找到 a, a x ^ b 我们可以现预处理出所有小区间(大区间可以不需要&#xff0c;因为…

win11怎么分回c盘空间

有网友反映自己的win11系统有多个分区&#xff0c;c盘分区的空间比较小&#xff0c;便想通过win11分盘功能&#xff0c;将临近的磁盘空间分给c盘。那么win11怎么分回c盘空间&#xff1f;下面就教下大家win11将其他盘空间分回c盘的方法步骤。 工具/原料&#xff1a; 系统版本&am…

最近几年-基于深度学习自然语言处理的推荐系统-必读论文整理分享

基于内容的推荐&#xff08;Content-based Recommendation&#xff09;是信息过滤技术的延续与发展&#xff0c;它是建立在项目的内容信息上作出推荐的&#xff0c;而不需要依据用户对项目的评价意见&#xff0c;更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用…

02-JVM堆里面的分区:Eden,survival (from+ to),老年代,各自的特点?

1.模型 堆里面分为新生代和老生代&#xff08;java8 取消了永久代&#xff0c;采用了 Metaspace&#xff09;&#xff0c;新生代包含 EdenSurvivor 区&#xff0c;survivor 区里面分为 from 和 to 区. 内存回收时&#xff0c;如果用的是复制算法&#xff0c;从 from 复制到 to…

项目实战之旅游网(十三)前台产品详情 前台收藏

目录 一.前台产品详情 1.查询产品 2.收藏按钮 二.前台收藏 本章的代码会统一放到最后。 一.前台产品详情 1.查询产品 即点击“查看详情”即可得到这个产品的详细描述。 并且项目运行起来之后&#xff0c;可以在后台新建新的产品&#xff0c;在前台可以实时查询到。 2.…

C工程与寄存器封装

目录 一、C语言工程简介 二、启动代码分析 三、C语言实现LED 四、寄存器的封装方式 五、寄存器操作的标准化 六、流水灯 一、C语言工程简介 先将工程模板解压 include里是.h文件 src里是.c文件 start里面是.s启动文件 ## NAME interface CROSS_COMPILE arm-no…

Fusion360 外壳开孔零件居中对齐的方法

DIY时需要根据从市场上采购的成品盒子进行开孔&#xff0c;通过3维软件进行开孔设计是比较方便的。Solidworks由于版权问题不易采用&#xff0c;Fusion360的个人版由于软件差异不像Solidworks方便约束定位。我通过尝试找到了适用方法。 先看成果。在一块板上居中位置开孔以便安…

电子学会2020年9月青少年软件编程(图形化)等级考试试卷(三级)答案解析

目录 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 二、判断题&#xff08;共10题&#xff0c;每题2分&#xff0c;共20分&#xff09; 三、编程题【该题由测评师线下评分】&#xff08;共3题&#xff0c;共30分&#xff09; 青少年软件…

阶段性回顾(4)与四道题目

TIPS 1. 当创建数组的时候&#xff0c;如果没有指定数组的元素个数也没关系&#xff0c;编译器会根据你初始化的内容来自行确定。 2. 在逻辑表达式当中&#xff0c;如果为真&#xff0c;就以1作为结果&#xff0c;如果为假&#xff0c;就以0作为结果。 3. 输入字符串的时候&…

VUE实例的组件的生命周期和数据共享和ref的使用方法(建议直接看ref)

目录VUE实例的组件的生命周期和数据共享组件间的数据共享ref的使用方法使用ref操作dom使用ref引用组件this.$nextTick(cb)方法的使用VUE实例的组件的生命周期和数据共享 生命周期和生命周期函数 这个是我学校vue书籍阿里云盘地址,有需要可以点击看看 生命周期&#xff08;Life…

对Java中异常的认识

文章目录一、异常的概念与体系结构1.异常的概念2.异常的体系结构3.异常的分类二、异常的处理1.防御式编程2. 异常的抛出3.异常的捕获4.异常处理流程总结三、自定义异常类一、异常的概念与体系结构 1.异常的概念 在生活中&#xff0c;当我们发现朋友表现出不舒服的情况&#x…

LabVIEW ​​单​进程​共享​变量​与​​全局​变量

LabVIEW ​​单​进程​共享​变量​与​​全局​变量 单​进程​共享​变量​与​LabVIEW​全局​变量​相似。​事实​上&#xff0c;​单​进程​共享​变量​的​实现​是在​LabVIEW​全局​变量​的​基础​上​增加​了​时间​标识​功能。 ​为了​比较​单​进程​…

《终身成长》读书笔记

文章目录书籍信息思维模式思维模式解析关于能力和成就的真相体育&#xff1a;冠军的思维模式商业&#xff1a;思维模式和领导力人际关系&#xff1a;关于相处的思维模式父母、老师与教练&#xff1a;思维模式的传播改变思维模式书籍信息 书名&#xff1a;《终身成长》 作者&am…

Java算法_LeetCode26:删除排序数组中的重复项

LeetCode26&#xff1a;删除排序数组中的重复项 给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度&a…

设计模式-责任链模式之**动态配置责任链**

正在参加2022年度博客之星评选&#xff0c;大家帮我点个五星好评。有投必会 责任链的优势劣势我就不说&#xff0c;百度上很多。 1、怎么&#xff1a;动态配置责任链 通过配置文件yml来指定你的责任链的执行顺序。 地址 配置文件如何配置&#xff0c;怎么读取 为什么&#x…

HTTP协议详解 - 通过C++实现HTTP服务剖析HTTP协议

前言 C/C程序员一般很少会接触到HTTP服务端的东西&#xff0c;所以对HTTP的理解一般停留在理论。 本文章实现通过C实现了一个http服务&#xff0c;可以通过代码对HTTP协议有更深的理解&#xff0c;并且通过抓包工具对HTTP协议进行更为详细的分析。 HTTP协议简介 HTTP(hypert…

Linux--多线程

目录1. 什么是线程2. 创建线程3. 线程等待3.1 pthread_join函数3.2 线程分离3.2 线程终止的方案4. 线程ID1. 什么是线程 Linux中没有专门为线程设计TCB&#xff0c;而是用进程的PCB来模拟进程。 这也是为什么有种观点会说Linux下没有真正意义上的线程。 对于线程来说&#xf…

Elasticsearch搜索引擎(二)——SpringData Elasticsearch

SpringData Elasticsearch SpringData介绍 Spring Data是一个用于简化数据库访问&#xff0c;并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷&#xff0c;并支持map-reduce框架和云计算数据服务。 Spring Data可以极大的简化JPA的写法&#xff0c;可以在…