FPGA知识基础之--clocking wizard ip核的使用以及modelsim与vivado联合仿真
目录
- 前言
- 一、ip核是什么?
- 1.1 定义
- 1.2 分类
- 二、为什么使用ip核
- 2.1 ip核的优点
- 2.2 ip核的缺点
- 三、如何使用ip核(vivado)
- 四、举例(clocking wizard ip核)
- 4.1 简介
- 4.2 实验任务
- 4.3 程序设计
- 4.3.1 系统模块
- 4.3.2 波形绘制
- 4.3.3 ip核设置
- 4.3.4 代码编写
- RTL代码
- 仿真代码
- 4.4 仿真
- 4.4.1 vivado仿真
- 4.4.1 vivado和modelsim联合仿真(推荐)
前言
IP核,全称知识产权核(Intellectual Property core),是在集成电路(IC)设计中可重用的功能模块,其存在形式通常为逻辑单元或芯片设计的可重用模块。这些模块经过预先设计、验证并具备特定的功能,可以被授权给不同的设计者使用,以加速芯片设计过程,提高设计效率,并降低开发成本。
一、ip核是什么?
1.1 定义
IP核是半导体产业中用于ASIC(专用集成电路)或FPGA(现场可编程门阵列)中的预先设计好的电路功能模块。它们可以被视为构建复杂芯片设计的“积木”。
1.2 分类
根据产品交付方式和实现方法的不同,IP核主要分为三类:软核(Soft IP)、固核(Firm IP)和硬核(Hard IP)。
- 软核:以硬件描述语言(HDL)源文件的形式存在,如Verilog或VHDL。软核设计周期短,设计投入少,灵活性和适应性强,但后续工序可能需要一定程度的修正,且知识产权保护问题需要重视。
- 固核:介于软核和硬核之间,完成了综合的功能块,以网表形式交付。固核对时序要求严格的内核进行了优化,如预布线特定信号或分配特定的布线资源。
- 硬核:提供设计的最终阶段产品——掩膜(Mask),以经过完全布局布线的网表形式存在。硬核具有可预见性,针对特定工艺、功耗和尺寸进行了优化,易于实现IP保护,但灵活性和可移植性差。
二、为什么使用ip核
2.1 ip核的优点
- 提高开发效率,IP核将一些在数字电路中常用但比较复杂的功能块(如FIR滤波器、SDRAM控制器、PCI接口等)设计成可修改参数的模块,设计者可以直接调用这些预先设计好的功能模块,从而避免了重复劳动,大大提高了开发效率。
- 减少设计和调试时间:由于IP核已经过验证和优化,设计者在使用时可以直接集成到自己的设计中,无需从头开始设计和调试这些功能模块,从而显著减少了整体项目的设计和调试时间。
- 加速开发进程:随着CPLD/FPGA等可编程逻辑器件的规模越来越大,设计越来越复杂,设计者的主要任务是在规定的时间周期内完成复杂的设计。IP核的重用使得设计者能够更快速地完成设计任务,加速了产品的上市进程。
- 降低开发成本:虽然一些高价值的IP核可能需要额外的费用,但从整体开发成本来看,使用IP核仍然能够降低开发成本。因为IP核的重用减少了设计过程中的人力、物力和时间投入,降低了设计失败的风险,从而间接降低了开发成本。
- 增强设计的灵活性和适应性:软核和固核形式的IP核允许设计者在一定范围内对参数进行修改和定制,以适应不同的设计需求。这种灵活性使得设计者能够更好地应对市场变化和客户需求的多样性。
- 易于实现IP保护:硬核形式的IP核以经过完全的布局布线的网表形式提供,这种形式的IP核更易于实现知识产权的保护。因为硬核已经完成了所有的物理实现工作,设计者无法直接看到其内部的核心代码和电路结构,从而减少了知识产权被侵犯的风险。
综上所述IP核在提高开发效率、减少设计和调试时间、加速开发进程、降低开发成本、增强设计的灵活性和适应性以及易于实现IP保护等方面具有显著的优点。这些优点使得IP核在当前的EDA技术开发中得到了广泛的应用和推广。
2.2 ip核的缺点
- 可移植性差
- 功能调整空间小
- 部分需要付费使用
三、如何使用ip核(vivado)


以fifo举例

四、举例(clocking wizard ip核)
** ip核之PLL实验**
4.1 简介
在Xilinx FPGA中,特别是7系列FPGA,CMT(Clock Management Tile,时钟管理块)是一个关键组成部分,它对于实现高性能、低抖动的时钟网络至关重要。每个CMT都包含一个混合模式时钟管理器(MMCM)和一个锁相环(PLL)。这些模块共同提供时钟频率合成、抖动滤波以及时钟去斜等功能,以满足FPGA设计中复杂的时钟需求。

MMCM在PLL的基础上加入了DCM的一部分以进行精细的位移,加上了相位动态调整功能
PLL(phase locked loop锁相环)是一种时钟反馈控制电路,特点是利用外部输入的参考信号控制环路内部振荡信号的频率和相位
4.2 实验任务
本次的实验任务是使用开发板输出4路不同频率或相位的时钟,时钟分别为100MHZ,100MHZ(相位偏移180度),50MHZ和25MHZ。将四路时钟分别输出至拓展口的端口,并通过示波器来测量输出结果是否正确
4.3 程序设计
4.3.1 系统模块

4.3.2 波形绘制

4.3.3 ip核设置
先在ip核库里找到clocking wizard

进行ip核第一项配置

第二项配置

后续都保持默认即可
4.3.4 代码编写
RTL代码
需要注意的是,使用ip核即只需编写顶层模块即可。
module ip_clk_wiz (
input sys_clk,
input sys_rst_n, output clk_100m,
output clk_100m_180deg,
output clk_50m,
output clk_25m
);wire locked;
wire rst_n;assign rst_n = sys_rst_n & locked;clk_wiz_0 u_clk_wiz_0(.clk_out1 (clk_100m), .clk_out2 (clk_100m_180deg), .clk_out3 (clk_50m), .clk_out4 (clk_25m), .reset (~sys_rst_n), .locked (locked), .clk_in1 (sys_clk)
);endmodule
仿真代码
`timescale 1ns/1ns
module tb_ip_clk_wiz();parameter CLK_PERIOD = 20;reg sys_clk;
reg sys_rst_n; wire clk_100m;
wire clk_100m_180deg;
wire clk_50m;
wire clk_25m;initial beginsys_clk <= 1'b0;sys_rst_n <=1'b0;#200 sys_rst_n <= 1'b1;
endalways #(CLK_PERIOD/2) sys_clk = ~sys_clk;ip_clk_wiz u_ip_clk_wiz (.sys_clk (sys_clk),.sys_rst_n (sys_rst_n),.clk_100m_180deg (clk_100m_180deg),.clk_50m (clk_50m),.clk_25m (clk_25m),.clk_100m (clk_100m));endmodule
4.4 仿真
4.4.1 vivado仿真
将设计文件和仿真文件导入vivado上后,即可直接开始仿真

需要注意的是,要将仿真时间设置的稍微长一些,笔者设置的是20us

点击开始仿真,即可观察到波形

观察波形后发现,和预设条件相符合
4.4.1 vivado和modelsim联合仿真(推荐)
首先生成vivado库



点击编译即可,过程需要等待半个小时左右
编译好之后即可打开工程


设置好之后,点击仿真,会自动跳转到modelsim进行仿真

符合预期!验证成功
相关文章:
FPGA知识基础之--clocking wizard ip核的使用以及modelsim与vivado联合仿真
目录 前言一、ip核是什么?1.1 定义1.2 分类 二、为什么使用ip核2.1 ip核的优点2.2 ip核的缺点 三、如何使用ip核(vivado)四、举例(clocking wizard ip核)4.1 简介4.2 实验任务4.3 程序设计4.3.1 系统模块4.3.2 波形绘制…...
Java中的分布式日志与追踪
随着微服务架构的流行,分布式系统变得越来越复杂。在分布式系统中,日志和追踪是两个关键的工具,用于监控系统的健康状态、故障排除和性能优化。本文将详细探讨Java中的分布式日志与追踪,介绍相关的技术和工具,并通过代…...
案例精选 | 某省级妇幼保健院自动化安全运营中心建设成功实践
某省级妇幼保健院,是一所集医疗、保健、教学、科研、预防、康复于一体的省级三级甲等妇幼保健机构,专注于为全省妇女儿童提供全方位、高质量的医疗保健服务。医院拥有4个院区,总建筑面积10万平米,开放床位700张,年门诊…...
数字化时代:传统行业的转型之路在何方?
在当前数字化时代的浪潮中,传统行业面临着新挑战与新机遇。为了在激烈的市场竞争中立足并谋求发展,传统行业的运营必须积极拥抱数字化转型。蚓链数字化解决方案帮助你总结如下。 数字化思维:开启转型之门的钥匙 数字化思维是传统行业转型的…...
【STM32系统】基于STM32设计的按键PWM控制舵机窗帘柜子门禁家居等控制系统——文末资料下载
演示视频 基于stm32设计的按键PWM控制舵机窗帘&柜子&门禁&家居等控制系统——完整资料下载 摘要 随着智能家居技术的不断发展,舵机在自动化家居设备中的应用变得越来越广泛。本文设计并实现了一种基于STM32单片机的按键PWM控制舵机系统。通过按键可以精…...
【生成式人工智能-八-大型语言模型的能力评估】
语言模型的能力评估 评估难度来自哪里输出没办法确定给出选择题本身就没标准答案 评估方法人力用语言模型来评估语言模型语言模型的偏爱 评估语言模型的数据集评估模型的不同能力阅读长文的能力心智测验道德性测试安全性测试 通常情况下我们想到的语言模型能力评估,…...
Qt ts文件详解
Qt ts文件(Translation Source file:翻译源文件)是Qt框架中用于存储翻译文本和相关上下文信息的一种特定格式文件,它是Qt Linguist(语言家)工具使用的基础。Qt Linguist是Qt开发工具包中的一个应用程序&…...
操作系统 IO 相关知识
操作系统 IO 相关知识 阻塞与非阻塞同步与异步IO 和系统调用传统的 IODMAmmap 内存映射sendfilesplice 常用的 IO 模型BIO:同步阻塞 IONIO:同步非阻塞 IOIO 多路复用信号驱动 IOAIO:异步 IO 模型 IO 就是计算机内部与外部进行数据传输的过程&…...
C++_手写share_ptr
以下是一个简化版的 shared_ptr 的实现: #include <iostream> template <typename T> class SimpleSharedPtr { public:// 构造函数explicit SimpleSharedPtr(T* ptr nullptr) : ptr_(ptr), count_(ptr ? new size_t(1) : nullptr) {}// 拷贝构造函数…...
【启明智显方案分享】6.86寸高清显示屏音频效果器解决方案
一、项目概述 本方案旨在设计一款集成6.86寸高清触摸显示屏的音频效果器,通过HMI(Human-Machine Interface)芯片Model 4驱动,实现高清晰度的视觉交互。该设备不仅支持音乐、麦克风及温响音量的精细控制,还内置丰富的预…...
vue设置每次加载页面时展示一个双开门效果
一、首先创建一个双开门的蒙层组件 <!-- DoorOverlay.vue --> <template><div v-if"isVisible" class"door-overlay"><div class"door left-door"></div><div class"door right-door"></div&…...
简单的docker学习 第8章 docker常用服务安装
第8章 常用服务安装 本章主要学习最常用的,也是安装起来稍有些麻烦的 MySQL 与 Redis 两种服务器的Docker 安装。至于其它服务器的 Docker 安装,大家可自行查找资料。只要 MySQL 与 Redis这两类服务器学会了安装,其它服务器的安装基本也不会…...
01、MySQL-DDL(数据定义语言)
目录 1、查询 2、创建 3、修改 4、删除 1、查询 1、查询所有数据库 show databases; 2、查询当前数据库 select database(); 3、查询当前数据库中所有的表(需要先进入这个数据库) use d1; show tables; 4、查询表结构 desc users; 5、查询指定表的建…...
RT-Thread 操作系统 之 线程间同步 IO设备模型
RT-Thread 操作系统 之 线程间同步 IO设备模型 一、线程间同步1.1、信号量1.1.1、信号量结构体1.1.2、信号量的使用和管理1.1.3、信号量同步例程 1.2、互斥量1.2.1、互斥量的使用和管理 1.3、事件集1.3.1、事件集使用和管理方法1.3.2、事件集三个线程同步实例 二、IO设备模型2.…...
力扣leetcode移动0(C++)
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出: […...
阿里云部署open-webui实现openai代理服务
一、 环境准备 1. 阿里云服务器,ubuntu22系统 2. 外网服务器,linux系统 3. openai API Key 二、实际操作记录(阿里云服务器端) 1. 根据官方文档安装open-webui服务端: 🚀 Getting Started | Open WebUI 1. 如果服务器配置比较低,…...
你的工作环境,选对劳保鞋了吗?守护安全,从脚下开始!
在众多的工作场所中,我们穿梭于不同的工作环境,从繁忙的工厂车间到复杂的建筑工地,再到需要精细操作的实验室……每一步都承载着对安全的期许和对效率的追求。但你是否意识到,脚下那双不起眼的劳保鞋,其实是守护你安全…...
【Linux】编译器gcc/g++ 、程序翻译过程、动静态库
目录 1.gcc/g Linux编译器1.1. gcc与g的安装1.2. gcc与g用法1.2.1.gcc用法1.2.2. g用法 1.3. 程序翻译的过程1.3.1. 前提知识:1.3.2. 预处理(语言种类不变)条件编译用途: 1.3.3. 编译(生成汇编语言)1.3.4. …...
通义灵码-阿里云推出的AI智能编码助手
通义灵码体验地址 标题通义灵码是什么? 通义灵码是由阿里巴巴推出的基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云…...
构建智能生态,视频监控/安防监控EasyCVR视频汇聚流媒体技术在智能分析领域的应用
随着5G、AI、物联网(IoT)、云计算等技术的快速发展,万物互联的时代已经到来,全新的行业生态AIoT正在引领一场深刻的变革。在这场变革中,EasyCVR视频流媒体技术以其强大的视频处理、汇聚与融合能力,在智能分…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...
