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

news2025/2/4 10:36:34

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.coloradmin.cn/o/1427256.html

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

相关文章

2024年美赛C题:Momentum in Tennis思路解析

Problem C: Momentum in Tennis 网球运动中的动力 【扫描下方二维码加入群聊,了解更多思路~】 中文题目: 在2023年温布尔登男子单打决赛中,20岁的西班牙新星卡洛斯阿尔卡拉斯击败了36岁的诺瓦克德约科维奇。这是德约科维奇自2013年以来在温布…

大数据StarRocks(九):资源隔离实战

前言 自 2.2 版本起,StarRocks 支持资源组管理,集群可以通过设置资源组(Resource Group)的方式限制查询对资源的消耗,实现多租户之间的资源隔离与合理利用。在 2.3 版本中,StarRocks 支持限制大查询&#…

如何使用 Supabase Auth 在您的应用程序中设置身份验证

在本文中,您将学习基本的关键概念,这些概念将帮助您掌握身份验证和授权的工作原理。 您将首先了解什么是身份验证和授权,然后了解如何使用 Supabase auth 在应用程序中实现身份验证。 (本文内容参考:java567.com&…

2020年CSP-J认证 CCF非专业级别软件能力认证第一轮真题--完善程序题

2020 CCF认证第一轮(CSP-J)真题 三、完善程序题 第一题 质因数分解 给出正整数n,请输出将n质因数分解的结果,结果从小 到大输出。 例如:输入n120程序应该输出2 2 2 3 5,表示1202 X 2 X 2 X 3 X 5输入保2≤n≤10^9提…

PostGIS空间数据库之空间数据融合实践

目录 前言 一、ST_Union()简介 1、方法说明 2、参数介绍 二、ST_Collect()简介 1、方法说明 2、参数介绍 3、两者区别 三、实际案例实践 1、不重叠融合 2、空间重叠融合 总结 前言 众所周知,熟悉GIS桌面软件的同学一定都知道,想要对空…

跟着pink老师前端入门教程-day13

品优购案例 一、品优购项目规划 1. 品优购项目整体介绍 项目名称:品优购 项目描述:品优购是一个电商网站,我们要完成 PC 端首页、列表页、注册页面的制作 2. 品优购项目学习目的 1. 电商类网站比较综合,里面需要大量的布…

【Linux C | I/O模型】Unix / Linux系统的5种IO模型 | 图文详解

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

oracle 19c上安装样例数据库

样例schema的分类 HR: Human Resources OE: Order Entry PM: Product Media IX: Information Exchange SH: Sales History BI: Business Intelligence 安装样例数据库 1:HR的安装,通过dbca时候 2:HR的安装,安装完数据库后&#…

面试经典 150 题 -- 矩阵 (总结)

总的链接 : 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台 36 . 有效的数独 模拟 : 用数组模拟哈希表来判断对应的行,列和当前元素所在的3*3方格中是否重复出现,是的话,直接return false…

vue3前端开发,element-plus前端框架探秘:scope对象

vue3前端开发,element-plus前端框架探秘:scope对象!我们经常需要对当前行的数据进行操作,比如增加,删除,编辑等,为此我们需要传递当前行所对应的唯一主键,通常情况下,当前行对应的业务主键是id属…

花瓣网美女图片爬取

爬虫基础案例01 花瓣网美女图片 网站url:https://huaban.com 图片爬取 import requests import json import os res requests.get(url "https://api.huaban.com/search/file?text%E7%BE%8E%E5%A5%B3&sortall&limit40&page1&positionsear…

【Linux-crontab】Linux 系统 crontab 执行定时任务

【Linux-crontab】Linux 系统 crontab 执行定时任务 1)crontab简介2)操作步骤3)知识扩展4)常见的分时任务格式 1)crontab简介 crond 是 Linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程&#xff0…

专有D区震撼上市,高性价比的稀缺大机型谁不爱?

有时候,你可能想要一台或数台大机器: 核数多点,100不算多吧 内存大点,2T、4T的 主频高点,3.5GHz 要么三合一,既要又要还要? 那么问题来了: 这些既多核心,又大内存&a…

初学者必会的100个Python编程代码,入门全套资料都给朋友们整理好了,文末免费领!

我记得刚开始接触编程的时候,觉得太难了。 也很好奇,写代码的那些人也太厉害了吧?全是英文的,他们的英文水平一定很好吧? 他们是怎么记住这么多代码格式的?而且错了一个标点符号,整个程序都会…

Unity SRP 管线【第七讲:URP LOD实现以及Reflections反射探针】

目录 一、URP LOD 组件1、LOD Group的使用2、LOD切换原理Cross Fade(淡入淡出)模式Animated Cross-Fading如果未设置Clip,并且Fade Transition Width不为0LOD物体烘培 SpeedTree 模式 二、反射探针1. 获取反射探针数据2. 环境光照明 IBL3. 反射探针(Refl…

创业公司的项目经理,如何有效争取股权激励

摘要:PM圆桌派,思考要快,行动要快。希赛聚集了一群有追求的PM校友,在一起谈天说地。在这里,我们无问对错,不论输赢,不分高下,每周四,一期一个话题battle,将真…

LeetCode--189

189. 轮转数组 提示 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转…

ele-h5项目使用vue3+vite开发:第一节、页面头部实现

实现页面 确认需求 顶部提示栏搜索框搜索提示 normalize.css:处理不同浏览器的默认样式 安装 npm i normalize.css 使用 src\App.vue<style scoped> import normalize.css;#app {/** 让字体抗锯齿&#xff0c;看起来更清晰 */-webkit-font-smoothing: antialiased;-moz-o…

面试中问到的算法题。————目录树生成

前言 我在面试中遇到了算法题&#xff0c;也是我第一次面试&#xff0c;也不知道是太紧张了还是太久没刷算法题了&#xff0c;感觉压有点懵的状态&#xff0c;所以当时面试的时候没有做出来或者说只做了一半没有做完。 面试完成后&#xff0c;我又重新审视了一下题目&#xff…

【送书福利-第三十一期】《区块链安全理论与实践(安全技术经典译丛)》

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…