当前位置: 首页 > article >正文

【FPGA】高云FPGA之IP核的使用->PLL锁相环

FPGA开发流程

    • 1、设计定义
    • 2、设计输入
    • 3、分析和综合
    • 4、功能仿真
    • 5、布局布线
    • 6、时序仿真
    • 7、IO分配以及配置文件(bit流文件)的生成
    • 8、配置(烧录)FPGA
    • 9、在线调试

1、设计定义

使用高云内置IP核实现多路不同时钟输出
输入时钟50M由晶振提供

软件开发环境高云V1.99版本
硬件开发环境采用小梅哥ACG525(主芯片GW5A-LV25-UG324C2)
在这里插入图片描述

2、设计输入

创建好工程后我们点击IP核配置,然后搜索PLL,这里我们可以使用的模块是PLL_ADV
在这里插入图片描述

配置我们的输入时钟以及IP核心文件名字以及模块名字
在这里插入图片描述
然后依次在上方tab栏中设置需要输出的时钟频率
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后点击计算然后点击OK
在这里插入图片描述
添加到工程,然后在我们的顶层文件中实例化我们的IP核并连接输入输出信号

module clock_test(
    input clk_in_50m,
    output clk_out_10m,
    output clk_out_25m,
    output clk_out_75m,
    output clk_out_100m
);


myclock myclock_test(
        .clkout0(clk_out_10m), //output clkout0
        .clkout1(clk_out_25m), //output clkout1
        .clkout2(clk_out_75m), //output clkout2
        .clkout3(clk_out_100m), //output clkout3
        .clkin(clk_in_50m) //input clkin
    );

endmodule

3、分析和综合

当逻辑输入设计完成后需要对其进行验证,该部分由软件部分进行验证,如果逻辑输入有问题需要检查语法错误或则重新设计设计输入

在这里插入图片描述

4、功能仿真

当分析和综合通过后应该进行功能性验证,针对项目设计定义的功能使用设计的逻辑输入验证其功能能否实现,一般的做法都是通过功能仿真的方式进行验证,比如软件逻辑分析仪,modelsim、vivado等软件自带的仿真工具进行仿真验证

功能仿真也称为行为仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致。也可以叫做RTL仿真(test bench)

首先编写我们的仿真时序文件

`timescale 1ns / 1ps

module clock_test_tb();

reg sys_clk;
wire clk_out_10;
wire clk_out_25;
wire clk_out_75;
wire clk_out_100;

// 对pll_test_ds进行例化操作
clock_test Myclock(
        .clk_in_50m(sys_clk),           // 模拟50MHZ
        .clk_out_10m(clk_out_10),       // 模拟输出10MHZ
        .clk_out_25m(clk_out_25),       // 模拟输出25MHZ
        .clk_out_75m(clk_out_75),       // 模拟输出75MHZ
        .clk_out_100m(clk_out_100)      // 模拟输出100MHZ
    );

initial begin  
    sys_clk = 1'b0;   // 初始化
end

always #10 sys_clk = ~sys_clk;//10ns之后将时钟进行翻转(即说明20ns为一个周期) 1/20ns = 1/2*10^(-8) =  5*10^7 = 50MHz 产生50MHz的时钟

endmodule


创建我们的modsim文件进行时序查看,这里需要注意我们需要吧IP核生成的文件也添加进仿真工程编译
在这里插入图片描述
在这里插入图片描述

库这边需要选择安装时编译的高云库
在这里插入图片描述
然后我们查看波形
在这里插入图片描述
可以看到波形满足我们时序要求跟我们设定的频率在运行;

5、布局布线

当我们的IO可以开始分配了我们首先需要分配IO,如果当前还没到IO分配的时候我们可以将IO分配放在最后,当IO分配完成后我们就可以通过软件进行布局布线,在芯片内部生成芯片电路

在这里插入图片描述

6、时序仿真

时序仿真也称为布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,能较好地反映芯片的实际工作情况,当时序仿真不通过的时候可能还会设计到时序约束的一个过程(在比较复杂的设计中也需要用到);这个在上一个步骤(功能仿真中)我们已经完成了时序仿真的波形查看

7、IO分配以及配置文件(bit流文件)的生成

如果在布局布线时未进行IO分配在该步骤进行IO分配并生成BIT流文件,这里我们直接查看小梅哥给出的excel文档,填写我们需要输出的时钟引脚;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//Copyright (C)2014-2023 Gowin Semiconductor Corporation.
//All rights reserved. 
//File Title: Physical Constraints file
//Tool Version: V1.9.9 (64-bit)
//Part Number: GW5A-LV25UG324C2/I1
//Device: GW5A-25
//Device Version: A
//Created Time: Fri 02 02 09:37:52 2024

IO_LOC "clk_out_100m" C17;
IO_PORT "clk_out_100m" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "clk_out_75m" G14;
IO_PORT "clk_out_75m" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "clk_out_25m" F14;
IO_PORT "clk_out_25m" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "clk_out_10m" C18;
IO_PORT "clk_out_10m" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "clk_in_50m" T9;
IO_PORT "clk_in_50m" PULL_MODE=NONE BANK_VCCIO=3.3;

到这里软件的模拟仿真验证就完成了最后是烧录到板子上进行测试验证

8、配置(烧录)FPGA

时序通过了后需要通过硬件进行验证也就是最后一步的实物验证

在这里插入图片描述

9、在线调试

当系统出现问题运行不正常我们可以通过外部硬件示波器或者逻辑分析仪进行实际引脚信号抓取分析

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述


http://www.kler.cn/a/229991.html

相关文章:

  • C++设计模式——Singleton单例模式
  • 道可云人工智能元宇宙每日资讯|第三届京西地区发展论坛成功召开
  • 苹果系统中利用活动监视器来终止进程
  • 10、PyTorch autograd使用教程
  • 利用Docker容器技术部署发布web应用程序
  • 路由传参、搜索、多选框勾选、新增/编辑表单复用
  • 解决C#中无限递归导致的System.StackOverflowException异常
  • 通过无线打通两个路由器
  • React 错误边界组件 react-error-boundary 源码解析
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • ubuntu22.04 安装部署01:禁用内核更新
  • N-143基于springboot博客系统
  • Java学习笔记2024/2/5
  • arch linux python venv
  • 使用MATLAB驱动USRP-N320实现OFDM自收自发
  • 112 C++ STL 函数对象回顾,系统函数对象以及范例
  • 微服务限流(漏桶算法、令牌桶算法)
  • 时间序列(Time-Series)FourierCorrelation.py代码解析
  • MongoDB 字段中数据类型不一致序列化异常排查与处理
  • 20240206在WIN10下下载安装RX580的驱动程序
  • 新概念英语第二册(56)
  • leetcode(双指针)283.移动零(C++)DAY3
  • C++多线程:this_thread 命名空间
  • 瑞_23种设计模式_原型模式
  • 京东广告算法架构体系建设--大规模稀疏场景高性能训练方案演变
  • UE5 虚幻游戏报错常用解决方法(幻兽帕鲁UE5报错)