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

【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 / 1psmodule 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;   // 初始化
endalways #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 2024IO_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.lryc.cn/news/292247.html

相关文章:

  • 程控设备和电脑通信的总线和协议选择
  • 鸿蒙开发-UI-组件导航-Navigation
  • Codeforces Round 922 (Div. 2)(A~D)补题
  • Seata下载与配置、启动
  • 什么是TCP三次握手、四次挥手?
  • C++程序在开机自启和定时器执行时遇到的问题和解决方法
  • R17 extended DRX(eDRX)
  • Debezium发布历史102
  • 探索自然语言处理在改善搜索引擎、语音助手和机器翻译中的应用
  • echarts:获取省、市、区/县、镇的地图数据
  • Java_简单模拟实现ArrayList_学习ArrayList
  • 动手学深度学习(一)深度学习介绍2
  • vmware网络配置,VMware的三种网络模式详解与配置
  • 【Ubuntu】安装hbase
  • ubuntu16.04环境轻松安装和应用opencv4.9.0(基于源码编译)
  • FastBee开源物联网平台2.0开源版发布啦!!!
  • 【NeRF和NLP】一些观察感悟,碎碎念
  • Python程序设计 基础数据类型
  • 浅谈安科瑞智能照明系统在马来西亚国家石油公司项目的应用
  • Java面对对象
  • 代码随想录算法训练营|day24
  • 嵌入式学习日记 16
  • 【Vue.js设计与实现】第一篇:框架设计概览-阅读笔记(完结)
  • 数据结构—动态查找表
  • Hbase-2.4.11_hadoop-3.1.3集群_大数据集群_SSH修改默认端口22为其他端口---记录025_大数据工作笔记0185
  • c++学习第十四讲---STL常用容器---vector容器
  • 数据结构-内部排序
  • Qt加载网页崩溃 ASSERT:“m_adapterClient“ in file ...
  • 合约短线高胜率策略-扭转乾坤指标使用说明
  • DAY37:贪心算法738