【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、在线调试

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PostgreSQL内核学习(二十六) —— (共享数据缓冲区)】

共享数据缓冲区 概述共享数据缓冲区管理共享缓冲区管理的核心功能包括: 共享数据缓冲区的组织结构初始化共享缓冲池BufferDesc 结构体InitBufferPool 函数 如何确定请求的数据页面是否在缓冲区中?BufferTag 结构体RelFileNode 结构体ForkNumber 结构体Re…

高速接口PCB布局指南(二)通用高速信号布线

高速接口PCB布局指南(二)通用高速信号布线 1.PCB材料编织2.高速信号布线长度3.高速信号布线长度匹配4.高速信号参考平面 tips:资料主要来自网络,仅供学习使用。 1.PCB材料编织 在常见的 PCB 材料上为差分信号布线时,…

【Iceberg学习二】Branch和Tag在Iceberg中的应用

Iceberg 表元数据保持一个快照日志,记录了对表所做的更改。快照在 Iceberg 中至关重要,因为它们是读者隔离和时间旅行查询的基础。为了控制元数据大小和存储成本,Iceberg 提供了快照生命周期管理程序,如 expire_snapshots&#xf…

知识图谱问答:构建人机自然交互的桥梁

目录 前言1 基本概念1.1 图灵测试1.2 特定领域的问答系统1.3 知识图谱问答1.4 典型应用与系统 2 智能问答系统分类2.1 问句类型分类2.2 系统来源分类 3 实现知识图谱问答主要技术方法3.1 基于问句模板的方法3.2 基于语义解析的方法3.3 基于检索排序的方法3.4 基于深度学习的方法…

代码随想录算法训练营第十二天 | 239. 滑动窗口最大值,347.前 K 个高频元素 [栈与队列篇]

代码随想录算法训练营第十二天 LeetCode 239. 滑动窗口最大值题目描述思路参考代码总结 LeetCode 347.前 K 个高频元素题目描述思路参考代码 LeetCode 239. 滑动窗口最大值 题目链接:239. 滑动窗口最大值 文章讲解:代码随想录#239. 滑动窗口最大值 视频讲…

现货黄金突破2050美元 后续还会涨吗?

一两个月以前,受美联储降息预期影响,现货黄金价格一度强势上涨,并且刷新历史新高。随后,市场不断消化降息预期,金价逐步回落,盘中一度下探2000大关。在今年的一季度,行情再度发生变化&#xff0…

华为5G沸沸扬扬!那你知道三防平板网络是什么类型呢!

近日,华为在5G的事件在热搜上可是着实的火了一把啊!让小编想起一款来自亿道信息EM-I22K-5G的一款三防平板产品,你知道是什么网络类型的呢? EM-I22K-5G 不知道?没关系呀!小编可以为你普及亿道信息EM-I22K-5G…

寒假作业-day5

TCP和UDP区别 TCP ----稳定 1、提供面向连接的,可靠的数据传输服务; 2、传输过程中,数据无误、数据无丢失、数据无失序、数据无重复; 3、数据传输效率低,耗费资源多; 4、数据收发是不同步的; UD…

软件价值8-站点连通性检查

站点连通性检查,即看网站是否能访问得通,实用价值不大,不过用来作软件应用入门还不错。 代码: import urllib.request import tkinter as tkdef test_connectivity():window tk.Tk()window.geometry(600x400)window.resizable(F…

性能实测:分布式存储 ZBS 与集中式存储 HDS 在 Oracle 数据库场景表现如何

作者:深耕行业的 SmartX 金融团队 金鑫 在金融客户的基础架构环境中,HDS 是一种被广泛使用的存储解决方案。作为集中式存储的代表之一,HDS 拥有高性能、高可用性和可扩展性的企业级存储特点,适用于实时数据处理、虚拟化和灾难备份…

阿里云游戏服务器一年费用多少?

阿里云游戏服务器租用价格表:4核16G服务器26元1个月、146元半年,游戏专业服务器8核32G配置90元一个月、271元3个月,阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价: 阿里云游戏服务器租用价格表 阿…

论文阅读-Transformer-based language models for software vulnerability detection

「分享了一批文献给你,请您通过浏览器打开 https://www.ivysci.com/web/share/biblios/D2xqz52xQJ4RKceFXAFaDU/ 您还可以一键导入到 ivySCI 文献管理软件阅读,并在论文中引用 」 本文主旨:本文提出了一个系统的框架来利用基于Transformer的语…

JavaScript常用技巧专题七

文章目录 一、提炼函数1.1、好处1.2、示例 二、合并重复的条件片段三、把条件分支语句提炼成函数四、合理使用循环五、提前让函数退出代替嵌套条件分支六、传递对象参数代替过长的参数列表七、少用三目运算符八、合理使用链式调用8.1、优点8.2、缺点 九、纯函数9.1、不属于纯函…

2-2 动手学深度学习v2-损失函数-笔记

损失函数,用来衡量预测值和真实值之间的区别。是机器学习里面一个非常重要的概念。 三个常用的损失函数 L2 loss、L1 loss、Huber’s Robust loss 均方损失 L2 Loss l ( y , y ′ ) 1 2 ( y − y ′ ) 2 l(y,y^{\prime})\frac{1}{2}(y-y^{\prime})^{2} l(y,y′)21…

火山引擎ByteHouse:如何为OLAP设计高性能向量检索能力?

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 背景 随着 LLM 技术应用及落地,数据库需要提高向量分析以及 AI 支持能力,向量数据库及向量检索等能力“异军突起”,迎来业界持续…

第七届西湖论剑·中国杭州网络安全技能大赛 AI 回声海螺 WP

第七届西湖论剑中国杭州网络安全技能大赛-AI-回声海螺 开题,提示输入密码给FLAG。 这个回声海螺应该是个AI,就是复读机,应该是想办法从中骗出密码。 感觉这题不像是AI,也没用啥模型,应该是WEB。或者是说类似于AI的提示…

第八讲:详解第1套真题

第八讲:详解第1套真题 基本编程题【15 分】简单应用题【25 分】综合应用题【20 分】**问题一**【5分】问题二【5 分】问题二【10 分】小结基本编程题【15 分】 考生文件夹下存在一个文件 PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:【5 分】键盘输入正整数 n…

【从0上手Cornerstone3D】如何使用CornerstoneTools中的工具之同步器

同步器(Synchronizers)可以使多个视图同步响应同一个工具的操作,例如我们在MPR视图下,同步操作三个视图的缩放程度、windowLevel等等 一个同步器必须需要以下几个部分才可以执行 一个监听事件(什么情况下触发同步&…

【日志记录】——单片机可执行文件合并

一:需求场景 现在有一片单片机,执行程序包括自定义boot和应用程序app, 在将打包好的固件给到生产时有以下问题,由于要通过jlink烧录boot,然后上电启动boot,通过boot烧录初始化程序,过程过于复杂&#xff0…

蓝桥杯省赛无忧 课件125 线段树-标记永久化

前置知识 线段树 01 什么是标记永久化 02 如何标记永久化 03 标记永久化的优势