IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【FPGA学习笔记】如何调用FPGA的PLL IP core 模块 -> 正文阅读

[网络协议]【FPGA学习笔记】如何调用FPGA的PLL IP core 模块

一、简介

  • PLL(Phase-locked loop)即锁相环。是 FPGA 中的重要资源。由于一个复杂的 FPGA 系统往往需要多个不同频率,相位的时钟信号。所以,一个 FPGA 芯片中 PLL 的数量是衡量 FPGA 芯片能力的重要指标。FPGA 的设计中,时钟系统的 FPGA 高速的设计极其重要,一个低抖动, 低延迟的系统时钟会增加 FPGA 设计的成功率。
  • 数字锁相环(PLL):主要用于频率综合。使用一个 PLL 可以从一个输入时钟信号生成多个时钟
    信号。
  • List item

二、PLL IP Core调用
Vivado软件操作为例

1、新建一个 工程,点击 Project Manager 界面下的 IP Catalog
在这里插入图片描述
2、在IP Catalog中搜索clock,打开下面的 Clocking Wizard,双击打开配置界面。
在这里插入图片描述
配置界面

3、 Clocking Wizard 的名字可以修改, 这里我不做修改。在第一个界面 Clocking Options 里, 我们选择 PLL 资源,输入的时钟频率为 50Mhz。
在这里插入图片描述
4、 在 Output Clocks 界面里选择时钟输出,这里我选择 clk_out1~clk_out4 四个时钟的输出,频率分别为 100Mhz, 75Mhz, 50Mhz, 25Mhz。这里还可以设置时钟输出的相位,我们不做设置,保留默认相位,点击 OK 完成,(我们可以在左侧预览)
在这里插入图片描述
5、在弹出的对话框中点击 Generate 按钮生成 PLL IP 的设计文件。
1
6、这时一个 clk_wiz_0.xci 的 IP 会自动添加到我们的 项目中, 可以双击它来修改这个 IP 的配置
选择 IP Sources 这页,然后双击打开 clk_wiz_0.veo 文件,这个文件里提供了这个 IP 的实例化模板。我们只需要把框框的中内容拷贝到我们 verilog 程序中,对 IP 进行实例化。
在这里插入图片描述
7、下面新建一个顶层文件,并将pll 实例化模板copy进去,做一些修改
在这里插入图片描述
在这里插入图片描述
代码如下:

`timescale 1ns / 1ps

module pll_test(
 input      sys_clk,            //system clock 50Mhz on board
input       rst_n,             //reset ,low active
output      clk_out_100M,           //pll clock output 
output      clk_out_75M,           //pll clock output 
output      clk_out_50M,           //pll clock output 
output      clk_out_25M           //pll clock output 

    );
    
wire        locked;

/PLL IP call
clk_wiz_0 clk_wiz_0_inst
   (// Clock in ports
    .clk_in1(sys_clk),            // IN 50Mhz
    // Clock out ports
    .clk_out1(clk_out_100M),                // OUT 200Mhz
    .clk_out2(clk_out_75M),               // OUT 100Mhz
    .clk_out3(clk_out_50M),              // OUT 50Mhz
    .clk_out4(clk_out_25M),    // OUT 25Mhz	 
    // Status and control signals	 
    .reset(~rst_n),        // pll reset, high-active
    .locked(locked));     // OUT

endmodule


仿真文件如下:

`timescale 1ns / 1ps
//
// Module Name: vtf_led_test
//

module vtf_pll_test;
	// Inputs
	reg sys_clk;
	reg rst_n;

	// Outputs
    wire clk_out;

	// Instantiate the Unit Under Test (UUT)
	pll_test uut (
	.sys_clk(sys_clk),            //system clock 50Mhz on board
    .rst_n(rst_n),             //reset ,low active
    .clk_out_100M(clk_out_100M),           //pll clock output 
    .clk_out_75M(clk_out_75M),           //pll clock output 
    .clk_out_50M(clk_out_50M),           //pll clock output 
    .clk_out_25M(clk_out_25M)           //pll clock output 
	);

	initial begin
		// Initialize Inputs
		sys_clk = 0;
		rst_n = 0;

		// Wait 100 ns for global reset to finish
		#100;
          rst_n = 1;        
		// Add stimulus here
		#20000;
      //  $stop;
	 end
   
    always #10 sys_clk = ~ sys_clk;   //5ns一个周期,产生50MHz时钟源
   
endmodule


仿真在这里插入图片描述

结果:

在这里插入图片描述
在这里插入图片描述

有问题可以留言私信,看到必回

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 23:25:33  更:2022-01-29 23:25:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:25:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码