FPGA知识基础之--clocking wizard ip核的使用以及modelsim与vivado联合仿真

news2024/11/15 5:11:45

目录

  • 前言
  • 一、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 begin
	sys_clk <= 1'b0;
	sys_rst_n <=1'b0;
	#200 
	sys_rst_n <= 1'b1;
end

always #(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进行仿真
在这里插入图片描述

符合预期!验证成功

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

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

相关文章

csm兼容性支持模块关闭还是开启_打开csm兼容性模式详细教程

现在新电脑中经常有网友看到bios中有一个csm选项&#xff0c;有些网友不知道是什么意思&#xff0c;其实电脑BIOS中的CSM Support英文全称Compatibility Support Module&#xff0c;翻译成中文就是兼容支持模块&#xff0c;主要是为不支持或不完全支持uefi的操作系统和Legacy模…

如何编写和发布 Python 包

编写和发布Python包是软件开发中非常常见的一项任务。通过创建Python包&#xff0c;开发者可以更好地组织代码&#xff0c;促进代码复用&#xff0c;并且便于共享和分发自己的代码库。 一、准备工作 在开始编写Python包之前&#xff0c;确保你已经安装了以下工具&#xff1a;…

Chainlit快速实现AI对话应用的界面定制化教程

前言 本文主要讲解如何自定义chainlit实现的网页界面的中的一些可以自定修改的样式的实现教程。比如修改自己的logo网站图标或者主题等 翻译 chainlit 默认网页界面显示的是英文&#xff0c;如果我们想显示为其他语言可以进行以下操作。 翻译文件位于项目根目录下的.chainli…

02 部署LVS-DR群集

2.1&#xff1a;直接路由模式&#xff08;LVS-DR&#xff09; 实验环境 关闭所有测试环境的防火墙 [rootbogon ~]# systemctl stop firewalld [rootbogon ~]# setenforce 0 1.配置LVS调速器 &#xff08;1&#xff09;配置虚拟IP地址VIP [rootlvs ~]# cd /etc/sysconfig/n…

53 程序控制结构精彩案例

1 输入若干成绩&#xff0c;求所有成绩的平均分。每输入一个成绩后询问是否继续输入下一个成绩&#xff0c;回答 yes 就继续输入下一个成绩&#xff0c;回答 no 就停止输入成绩。 scores [] # 使用列表存放临时数据 while True:x input(score: )try:scores.append(float(x)…

CEP 复杂事件处理引擎入门:初级高频量价因子策略的实现

高频交易&#xff08;High-Frequency Trading, HFT&#xff09;作为现代金融市场中的重要组成部分&#xff0c;以其高速、自动化和复杂的算法交易策略而著称。高频交易策略通过分析大量实时变化的市场数据&#xff0c;利用市场的微小价格波动迅速做出交易决策&#xff0c;从而在…

【游戏引擎之路】登神长阶(九)——《3D游戏编程大师技巧》:我想成为游戏之神!

5月20日-6月4日&#xff1a;攻克2D物理引擎。 6月4日-6月13日&#xff1a;攻克《3D数学基础》。 6月13日-6月20日&#xff1a;攻克《3D图形教程》。 6月21日-6月22日&#xff1a;攻克《Raycasting游戏教程》。 6月23日-7月1日&#xff1a;攻克《Windows游戏编程大师技巧》。 7月…

浅谈如何将本地代码提交至gitee

文章目录 一、下载git工具二、新建文件夹三、输入命令 [默认提交至master分支] 一、下载git工具 git官网 二、新建文件夹 随便在本机的任意位置新建一个文件夹都行。我以我本机的桌面新建一个文件夹为例&#xff0c;此文件夹可随意命名。 点击该文件夹&#xff0c;右键——…

大奖放送 | AI编程达人秀视频文章征集大赛来啦!

AI Coding&#xff0c;可以有多少种打开玩法&#xff1f;腾讯云AI代码助手是一款辅助编码工具&#xff0c;基于混元大模型&#xff0c;提供技术对话、代码补全、代码诊断和优化等能力&#xff0c;为你生成优质代码&#xff0c;帮你解决技术难题&#xff0c;提升编码效率。 我…

elasticsearch的学习(二):Java api操作elasticsearch

简介 使用Java api操作elasticsearch 创建maven项目 pom.xml文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi…

通过率100%!讯方技术河南经贸职业学院华为云计算HCIE订单班取得阶段性成果!

近日&#xff0c;由讯方技术与河南经贸职业学院计算机工程学院联合打造的华为云计算HCIE订单班传来喜讯。在该订单班中&#xff0c;首批参与HCIE实验考试的9名学生凭借扎实的专业知识和优秀的技能水平&#xff0c;全员顺利通过实验考试&#xff0c;通过率达到100%&#xff0c;体…

yolov8 剪枝

yolov8n 初始&#xff1a; YOLOv8n summary (fused): 185 layers, 3151904 parameters, 31936 gradients, 8.7 GFLOPs

正信晟锦:怎么追回欠债多年的钱

在这个世界上&#xff0c;最轻松的或许就是借钱时的许诺&#xff0c;而最难的&#xff0c;莫过于债务回收时的争取。尤其是在牵涉到追回那些欠债多年的旧账时&#xff0c;我们似乎总能更深地体会到“时间是把杀猪刀”的无奈。如何巧妙地追回这些遥不可及的欠款?这既是一场策略…

CSP - S 2024 模拟赛6补题报告

C S P − S 2024 模拟赛 6 补题报告 2024 年 8 月 5 日 − 2023 年 8 月 5 日 b y 邓时飏 CSP \ - \ S \ \ 2024 \ \ 模拟赛6 \ \ 补题报告 \\ 2024年8月5日 - 2023年8月5日 \\ by \ \ \ 邓时飏 CSP − S 2024 模拟赛6 补题报告2024年8月5日−2023年8月5日by 邓时飏 一、…

zotero安装与使用

文献管理工具&#xff09; Zotero软件官网https://www.zotero.org/download&#xff0c;不修改安装位置&#xff0c;默认安装就行&#xff1b;安装完成官网直接邮箱注册一个账号&#xff0c;软件登陆账号:编辑-首选项-同步 修改论文保存位置&#xff0c;有从其它电脑拷贝过来的…

强力巨彩又上新了!室内LED全彩显示屏尽“显”新体验

随着显示技术的进步和万物互联时代的到来&#xff0c;LED全彩显示屏在广告传媒、体育场馆、交通诱导、舞台演出等领域的应用持续扩大。强力巨彩更新迭代&#xff0c;室内LED全彩显示屏再次上新&#xff0c;其融合前沿GOB镀膜工艺&#xff0c;在防护性、成像质量、互动体验及设计…

视频美颜SDK与直播美颜插件在实时视频中的应用

视频美颜技术作为提升视频质量的重要手段&#xff0c;已经成为了许多视频和直播应用中不可或缺的一部分。本篇文章&#xff0c;笔者将探讨视频美颜SDK与直播美颜插件在实时视频中的应用&#xff0c;并分析其在用户体验和技术实现方面的重要性。 一、视频美颜SDK的应用场景 视…

el-tree懒加载状态下实现搜索筛选(纯前端)

1.效果图 &#xff08;1&#xff09;初始状态 &#xff08;2&#xff09;筛选后 2.代码 <template><div><el-inputplaceholder"输入关键字进行过滤"v-model"filterText"input"searchValue"></el-input><el-tree…

AI人工智能 时间序列数据介绍

AI人工智能 时间序列数据介绍 预测给定输入序列中的下一个是机器学习中的另一个重要概念。 本章为您提供有关分析时间序列数据的详细说明。 时间序列数据介绍 时间序列数据表示处于一系列特定时间间隔的数据。 如果我们想在机器学习中构建序列预测&#xff0c;那么必须处理连续…

DDei在线设计器-加载数据

加载数据 本示例演示了怎样加载已有的JSON到设计器中。 如需了解详细的API教程以及参数说明&#xff0c;请参考DDei文档 外部数据JSON demo.vue <script setup lang"ts"> import DDeiEditorView from "ddei-editor"; import { DDeiCoreStandLayou…