From 0a4143bd7ce0284410242ef745d962824b2a5707 Mon Sep 17 00:00:00 2001 From: AxiBright Date: Fri, 31 Oct 2025 15:09:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 文章/学习之路/vivado_ip.md | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/文章/学习之路/vivado_ip.md b/文章/学习之路/vivado_ip.md index 75d2951..3875186 100644 --- a/文章/学习之路/vivado_ip.md +++ b/文章/学习之路/vivado_ip.md @@ -3,42 +3,42 @@ Vivado 20.2 ## 添加并配置IP核 1. 打开vivado,找到对应IP核,如下图 -![](./vivado_ip_img/IPCore01.png) +![](./vivado_ip_img/IPCore01.png) 2. 先双击除法器IP核进入配置页面,如下图 -![](./vivado_ip_img/IPCore02.png) -![](./vivado_ip_img/IPCore03.png) +![](./vivado_ip_img/IPCore02.png) +![](./vivado_ip_img/IPCore03.png) 除法器配置默认即可,点击OK;后弹出界面,点击Generate 如下图即配置完成 -![](./vivado_ip_img/IPCore04.png) +![](./vivado_ip_img/IPCore04.png) 3. 配置乘法器IP核 -![](./vivado_ip_img/IPCore05.png) +![](./vivado_ip_img/IPCore05.png) 上图使用十六位有符号数与十六位无符号数进行运算 -![](./vivado_ip_img/IPCore06.png) +![](./vivado_ip_img/IPCore06.png) 上图输出32位,间隔一个周期得到结果(电脑性能不佳可适当增加) 4. 如下图即配置完成 -![](./vivado_ip_img/IPCore07.png) +![](./vivado_ip_img/IPCore07.png) ## 添加并编写仿真代码文件 1. 选择一个文件夹,创建例如ipcore_test.v文件 2. 添加文件到vivado -![](./vivado_ip_img/IPCore08.png) -![](./vivado_ip_img/IPCore09.png) +![](./vivado_ip_img/IPCore08.png) +![](./vivado_ip_img/IPCore09.png) 找到自己创建的.v文件路径并添加 3. 完成如下图 -![](./vivado_ip_img/IPCore10.png) +![](./vivado_ip_img/IPCore10.png) 4. 复制示例代码 -![](./vivado_ip_img/IPCore11.png) +![](./vivado_ip_img/IPCore11.png) 双击打开.veo 示例代码文件 -![](./vivado_ip_img/IPCore12.png) +![](./vivado_ip_img/IPCore12.png) 复制上图红框中的代码到自己的仿真文件,如下图(我这是外部编辑器,vivado自带编辑器同理) -![](./vivado_ip_img/IPCore13.png) -上图的module与endmodule需要自己添加 +![](./vivado_ip_img/IPCore13.png) +上图的module与endmodule需要自己添加 如下图,可以看到,除法器IP核在你自己的代码文件之下,表示被正确调用 -![](./vivado_ip_img/IPCore14.png) +![](./vivado_ip_img/IPCore14.png) 乘法器同理,打开.veo文件复制代码 -![](./vivado_ip_img/IPCore15.png) -![](./vivado_ip_img/IPCore16.png) +![](./vivado_ip_img/IPCore15.png) +![](./vivado_ip_img/IPCore16.png) 示例代码复制完成后如下图,这里我更改了实例名称(u_ 开头,不改没影响) -![](./vivado_ip_img/IPCore17.png) +![](./vivado_ip_img/IPCore17.png) 5. 最后自己补全仿真代码,我这里这样写 ```verilog `timescale 1ns / 1ps @@ -105,8 +105,8 @@ endmodule 6. 结果分析 选中除B之外的所有变量,调整为有符号的十进制,B调整为无符号的十进制数 -![](./vivado_ip_img/IPCore19.png) +![](./vivado_ip_img/IPCore19.png) 下图可以看到,乘法器得到数据(一开始),在第一个周期得到结果,除法器得到数据,在第二十个周期得到结果 -![](./vivado_ip_img/IPCore18.png) +![](./vivado_ip_img/IPCore18.png)