Vivado调用VIO核
文章目录
- 前言
- 一、IP核的介绍
- 二、VIO核
- 1.作用
- 2.调用方法
- 总结
前言
提示:本篇文章所使用的软件为Vivado2018.3:
以四选一数据选择器为例,使用verilog hdl语言以及Vivado自带的VIO,IP来实现功能
提示:以下是本篇文章正文内容,下面案例可供参考
一、IP核的介绍
IP核有三种不同的存在形式:HDL语言形式,网表形式、版图形式。分别对应我们常说的三类IP内核:软核、固核和硬核。软核就是RTL代码,方便修改。固核是综合后的网表,不宜修改。硬核就是经过完整后端设计的掩模,基本不能修改。
简单来说,就是相当于嵌入式开发调用的库文件。下面以VIO核为介绍,简单阐述IP的调用方法
二、VIO核
1.作用
VIO:Virtual input output,即虚拟IO。
主要用作虚拟IO使用;VIO的输出可以控制模块的输入,VIO的输入可以显示模块的输出值。 即在设置VIO的输入和输出时,将实际应用中的输入设置成VIO核中的输出,将实际应用中的输出设置成VIO核中的输入。
连接如下图:
代码如下(示例):
2.调用方法
1).添加源文件。
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/04/07 14:46:17
// Design Name: MoWenQi
// Module Name: MUX4_MWQ
// Project Name:
// Target Devices:
// Tool Versions:
// Description: 基于verilog hdl调用VIO核的四选一多路器
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module MUX4_MWQ(input sys_clk ); //定义一个输入时钟信号reg[3:0] out; //定义四位的一个输出wire[1:0] a, b, c, d; //定义四个2位的输入wire[1:0] sel; //定义一个两位的sel使能端always @(*) //always模块中的任何一个输入信号或电平发生变化时,该语句下方的模块将被执行。包括电平触发和时沿触发begin //自上而下,按照顺序逐个对分支表达式进行判断,如果这一分支表达式等于控制表达式的值,就执行其对应操作;均不相等时,执行default操作;case(sel) //判断条件为sel的值2'b00: out=a; //当sel为 00 时 把a的值赋值给out2'b01: out=b; //当sel为 01 时 把b的值赋值给out2'b10: out=c; //当sel为 10 时 把c的值赋值给out2'b11: out=d; //当sel为 11 时 把d的值赋值给outdefault: out=2'bx; //武上述条件时,把out赋值x不确定态endcaseend
endmodule
2).点击IP Catalog-搜索VIO进行添加(完成初始化配置)
3)对输入输出个数和位宽的配置
点击生成
4)例化
点击IP Sources-打开vio-0.evo文件
找到vio_0.evo文件中大概57行,拷贝到源文件中,将()里面的名称改成源文件的名称
vio_0 your_instance_name (.clk(clk), // input wire clk.probe_in0(probe_in0), // input wire [3 : 0] probe_in0.probe_out0(probe_out0), // output wire [1 : 0] probe_out0.probe_out1(probe_out1), // output wire [1 : 0] probe_out1.probe_out2(probe_out2), // output wire [1 : 0] probe_out2.probe_out3(probe_out3), // output wire [1 : 0] probe_out3.probe_out4(probe_out4) // output wire [1 : 0] probe_out4
);
再进行,分析综合,布局布线
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/04/07 14:46:17
// Design Name: MoWenQi
// Module Name: MUX4_MWQ
// Project Name:
// Target Devices:
// Tool Versions:
// Description: 基于verilog hdl调用VIO核的四选一多路器
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module MUX4_MWQ(input sys_clk ); //定义一个输入时钟信号reg[3:0] out; //定义四位的一个输出wire[1:0] a, b, c, d; //定义四个2位的输入wire[1:0] sel; //定义一个两位的sel使能端always @(*) //always模块中的任何一个输入信号或电平发生变化时,该语句下方的模块将被执行。包括电平触发和时沿触发begin //自上而下,按照顺序逐个对分支表达式进行判断,如果这一分支表达式等于控制表达式的值,就执行其对应操作;均不相等时,执行default操作;case(sel) //判断条件为sel的值2'b00: out=a; //当sel为 00 时 把a的值赋值给out2'b01: out=b; //当sel为 01 时 把b的值赋值给out2'b10: out=c; //当sel为 10 时 把c的值赋值给out2'b11: out=d; //当sel为 11 时 把d的值赋值给outdefault: out=2'bx; //武上述条件时,把out赋值x不确定态endcaseendvio_0 MUX4_MWQ (.clk(sys_clk), // input wire clk.probe_in0(out), // input wire [3 : 0] probe_in0.probe_out0(a), // output wire [1 : 0] probe_out0.probe_out1(b), // output wire [1 : 0] probe_out1.probe_out2(c), // output wire [1 : 0] probe_out2.probe_out3(d), // output wire [1 : 0] probe_out3.probe_out4(sel) // output wire [1 : 0] probe_out4
);
endmodule
添加约束文件,进行管脚分配
create_clock -period 20.00 -name clk [get_ports sys_clk]set_property -dict {PACKAGE_PIN R4 IOSTANDARD LVCMOS33} [get_ports sys_clk]
总结
后面测试部分等拿到板子再仿真测试
Vivado调用VIO核相关推荐
- FPGA设计中,Vivado 调用IP核详细操作步骤
FPGA设计中,Vivado 调用IP核详细操作步骤 今天给大侠带来了FPGA设计中,Vivado 调用IP核详细操作步骤,话不多说,手把手教学,请往下看. 首先咱们来了解一下vivado的IP核,I ...
- vivado调用IP核详细介绍
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...
- 弟中弟级,基于Vivado的IP核封装以及仿真调用,FPGA入门小玩
弟中弟级,基于Vivado的IP核封装以及仿真调用,FPGA入门小玩 IP核:知识产权核,指某一方提供的.形式为逻辑单元的可重用模块.IP核通常已经通过了设计验证,设计人员以IP核为基础进行设计,可以 ...
- 调用IP核、移植/复制IP核以及解决IP核被锁住/红锁问题(基于vivado)
在上一篇的文章中:https://blog.csdn.net/weixin_44502554/article/details/126228405?spm=1001.2014.3001.5502 讲述了 ...
- FPGA series # 关于ChipScope的ICON核、ILA核和VIO核
刚入门接触vivado其实是陌生的,陌生之处在于不了解历史.即使是日益更新的技术也是从最初那个0和1一点点垒起来的,每当看到类似于这就是可以这么做,你不用去知道它底层怎么跑的,只要知道怎么使用就行这种 ...
- Vivado 下 IP核 之ROM 读写
目录 Vivado 下 IP核 之ROM 读写 1.实验简介 2.ROM IP 核简介 3.ROM IP 核配置 3.1.创建 ROM 初始化文件 3.2.单端口 ROM 的配置 加载数据文件,将 . ...
- modelsim 独立仿真vivado fifo IP核
1.前言 vivado内自带仿真器,或者可以通过vivado启动第三方仿真工具,联合仿真.但是很多时候,我们希望脱离vivado,利用modelsim或者vcs等第三方仿真工具,高效地仿真.本文介绍如 ...
- Vivado FIFO IP核接口信号介绍
1.1 Vivado FIFO IP核接口信号介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Vivado FIFO IP核接口信号介绍: 5)结束语. 1.1.2 ...
- Vivado MMCM IP核接口信号介绍
1.1 Vivado MMCM IP核接口信号介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Vivado MMCM IP核接口信号介绍: 5)结束语. 1.1.2 ...
最新文章
- Application package 'AndroidManifest.xml' must have a minimum of 2 segments错误
- 阿里Sentinel控制台源码修改-对接Apollo规则持久化
- cxf 服务端soap报文_使用Apache CXF开发SOAP Web服务
- tcppwebbrower 关闭安全警报_【知识】锅炉与压力容器安全
- 数据结构实验之查找四:二分查找
- eclipse 取消置顶
- 百度图神经网络学习——day01
- 这是我的第一个用例图
- co88 sap 实际结算_SAP 物料帐的基本原理
- 怎么批量修改图片尺寸大小?
- VMWare安装Win10虚拟机详细教程
- 阿里云服务器哪个便宜?
- 《禅者的初心》读书笔记(3)
- Lync Server 2013 实战系列之七:标准版-测试内部登陆
- linux备份文件命令
- linux 嵌入式 快照_Linux下搭建Cortex-M嵌入式开发环境
- 【手把手教安装】VM16 Pro安装Win10!!!
- Fragment 可见性监听方案 - 完美兼容多种 case
- 私藏!认认真真推荐几个技术公众号
- 字符串判断相等和不相等