ZYNQ AXI4(AXI-full)总线学习(二) 建立仿真_zynq axi full slave-程序员宅基地

技术标签: zynq学习记录  zynq axi 总线  vivado自定义axi IP  

1.简述

使用vivado自定义封装axi-full master IP,同时也封装一个slave IP方便仿真观察信号。

2.封装IP

1)打开vivado,进行如下操作
在这里插入图片描述
2)选择axi选项
在这里插入图片描述
3)改下名字
在这里插入图片描述
4)选择full类型,选择Master,点击next
在这里插入图片描述
5)最后默认选择将IP添加到IP库,现在不用编辑。在这里插入图片描述
6)slave的和上面一样流程,记得改名,最后设置如图默认。
在这里插入图片描述

3.建立bd工程

过程我就不说了,大家应该都会。
在这里插入图片描述

4.仿真激励

记得生成wrapper,然后将wrapper的端口例化到激励里面。

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2020/03/01 18:28:32
// Design Name: 
// Module Name: tb_sim
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module tb_sim();
    
 
 reg axi_ACLK;     // AXI 总线时钟
 reg axi_ARESETn; // 系统复位信号,低电平有效
 reg r_in_key;   // 模拟按键,正脉冲
 wire w_err;     // 状态指示,异常   
 wire axi_txn_done;
 
AXI_TEST_wrapper        AXI_TEST_wrapper_inst(
    .axi_error              (w_err          ),
    .axi_init_axi_txn       (r_in_key       ),
    .axi_txn_done           (axi_txn_done   ),
    .clk_100M               (axi_ACLK       ),
    .rst_n                  (axi_ARESETn    )

 );

parameter PERIOD = 2;
      
        always begin 
          #(PERIOD/2); 
          axi_ACLK = ~axi_ACLK;  
        end 
        
       initial
           begin
                axi_ACLK = 1'b0;
                axi_ARESETn = 1'b1;
                r_in_key = 1'b0;    
                
                 #(10*PERIOD);
                 axi_ARESETn = 1'b0;     
                 #(2*PERIOD);
                 axi_ARESETn = 1'b1;    
                 
                 #(4*PERIOD);
                 r_in_key = 1'b1;
                 #(2*PERIOD);
                 r_in_key  = 1'b0;            
           end  
endmodule

5.启动仿真

我是使用modelsim与vivado联合仿真。我们直接看仿真波形。
1)可以直接看出,master端一开始直接先写数据,然后再读数据。
在这里插入图片描述
2)如图,IP默认是16突发,所以先写入地址,再写入16个数据。
在这里插入图片描述
3)看看读,也和写一样,先写入地址,然后读入16个突发的数据,但是这个数据不是连续的,间隔了一个时钟周期。
在这里插入图片描述

6.总结

axi-full到这儿,算是很清晰了,下一步就要进行改造。

欢迎关注我的公众号:芯王国,有更多的FPGA&数字IC的技术分享,还可以获取开源FPGA项目!

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40377195/article/details/104660683

智能推荐

大数据平台一键安装OS【搭建脚本篇】-程序员宅基地

文章浏览阅读79次。定制化大数据平台一键安装OS大数据平台一键安装OS系列大数据平台一键安装OS【定制化OS镜像制作】搭建脚本篇脚本命名随便,只要能看懂就行镜像包说明os1.1.iso 用于安装服务端和客户端操作系统hdp.iso 用于安装hdp服务1.架构图:服务端客户端2.原理分析安装系统-安装本地yum源-安装http源-安装并配置ntp服务-配置秘钥-安装jdk-安装mysql-编译..._大数据平台一键安装

星火大模型,给国产ai长脸!-程序员宅基地

文章浏览阅读335次,点赞4次,收藏6次。每个分类下面都有许多助手,对编程有兴趣的朋友,想自学一下然后做出自用的小程序,也不用去麻烦其他大佬了,问AI还不会挨骂,同时还可以根据AI的思路自己探索,最重要的是与AI先交谈你能学到如何“正确提问”,这可是一个很重要的技能~现在国内各家的AI都在陆续更新中,讯飞星火大模型,一段时间不见,到今天也经历了多次大更新,增强了星火助手,增加了更多插件,还上线了一个现在比较潮的“智能体”友伴功能,下面就一起来玩玩看!用它的简历生成插件来生成一个模板,再提交给这个面试官来面试学习一下,完成求职闭环了属于是。

计算机导论论文含图,计算机导论(论文).doc-程序员宅基地

文章浏览阅读198次。计算机导论(论文)计算机科学与技术学习报告如今社会快速发展,计算机已经走入千家万户,随着计算机的普及,它在生活中的作用越来越大。它的广泛使用促进了生产力的发展,逐步改变了人们的生活方式。使人们的工作、学习和生活变得非常便捷、舒适和高效。你大可不必浪费大量的时间去图书馆查找资料,你只需在网络上搜索一下便会出现大量的你想要的信息和资料;你也不必为没钱没机会买到足够的学习资源而发愁,在网络上你就可以看书..._计算机导论论文中的图表

2021/1/9-每日三题第16弹:没事都宅在家里,你知道 CSS 优先级如何计算吗 ???_css优先级算法如何计算2021-程序员宅基地

文章浏览阅读127次。前言:朋友们好啊,最近天气实在是太冷了,今天来给大家讲一个笑话,暖和暖和,小明对爸爸说:“爸爸我好冷啊”,爸爸说:“站到墙角就不冷了” 小明不明白,问:“为什么啊 ?” 爸爸说:“因为墙角有九十度啊。”,怎么样,是不是很好笑啊 !!!好了,话不多说,上题目!!!????????????题目:(题目1) display 有哪些值 ?说明它们的作用(题目2) 介绍一下标准的 CSS 的盒子模型 ?(题目3) CSS优先级算法如何计算 ?倒计时10min,开始计时,看看自己能做对几道题??????_css优先级算法如何计算2021

r语言的runmed函数_从零开始学习R语言(七)——函数-程序员宅基地

文章浏览阅读572次。函数是各种编程语言都很常见的功能,R语言有很多的内置函数,但通过自定义函数,我们可以创建能实现自己想要功能的函数。R语言自定义函数的结构func_name func_bodyreturn (value)}其中,func_name是自定义函数的名称,args为函数的参数(可选),func_body部分为函数的主体部分,函数最后一般以return (value)结束,当执行该函数时返回value(可选..._runmed函数

Kali Linux学习笔记—Windows缓冲区溢出攻击_kali 唯一字符串-程序员宅基地

文章浏览阅读3k次,点赞5次,收藏29次。重启后发生变化为true,不发生变化为falseOS 必须是true_kali 唯一字符串

随便推点

AWS的EC2云虚拟机使用root用户登录_亚马逊创建的ec2服务器,root密码是什么-程序员宅基地

文章浏览阅读978次。aws ec2默认是使用ec2-user账号登陆的,对很多文件夹是没有权限的。如何使用root账号执行命令就是一个问题了。很多大厂的云服务,是默认不给root权限的,需要下载下来一个密钥,然后导入ssh客户端里另外套路云需要手动设置一次密码解决办法如下:1、首先使用xshell登录到服务器:进入XShell,点左上角的新建“主机”那栏输入IP“用户身份验证”里填你的账号和密码,默认账号是ec2-user,密码是服务商给你的密码如果是密钥登录,需要在“方法”那把“密码”改成“公钥”,并选择你导_亚马逊创建的ec2服务器,root密码是什么

influxdb数据过期_Influxdb修改数据保留策略-程序员宅基地

文章浏览阅读2.2k次。retention policy: 存储策略,用于设置数据保留的时间,每个数据库刚开始会自动创建一个默认的存储策略 autogen,数据保留时间为永久,之后用户可以自己设置,例如保留最近2小时的数据。插入和查询数据时如果不指定存储策略,则使用默认存储策略,且默认存储策略可以修改。InfluxDB 会定期清除过期的数据。----------------------------------------..._influxdb 过期策略

2020最新Java 200+面试题(补充ThreadLocal 模块解析)-程序员宅基地

文章浏览阅读801次。前言:前部分.是ThreadLocal补充模块解析.后部分.200+面试题内容.1.ThreadLocal 是什么?ThreadLocal 是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,适用于各个线程不共享变量值的操作。2.ThreadLocal 工作原理是什么?ThreadLoc...

C#实现互斥锁同步执行两个线程函数(附完整源码)-程序员宅基地

文章浏览阅读15次。C#实现互斥锁同步执行两个线程函数(附完整源码)

echarts x轴一个数据;y轴左边数值,右边百分比。(柱状图)_echarts柱状图右侧带百分比-程序员宅基地

文章浏览阅读4.9k次,点赞2次,收藏9次。大概样子如下:配置代码如下:export const gateChartConfig = function() { return { color: '#ED7D31', xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], axisTick: { _echarts柱状图右侧带百分比

基于角色管理的系统访问控制 _访问控制使用的二元组是什么-程序员宅基地

文章浏览阅读1.4k次。1. 引言(Introduction) 1.1. 关键词定义(Definitions)有关定义说明如下:安全管理:计算机技术安全管理的范围很广,可以包括网络安全性、数据安全性、操作系统安全性以及应用程序安全性等。很多方面的安全性管理大都已经有成熟的产品了,我们只需根据自己需要有选择性的使用就_访问控制使用的二元组是什么

推荐文章

热门文章

相关标签