当前位置:网站首页>DesignWare_APB_GPIO模块DUT&Testbench仿真
DesignWare_APB_GPIO模块DUT&Testbench仿真
2022-08-08 06:24:00 【唐三.】
ip测试之DW_APB_GPIO模块DUT&Testbench仿真
Synopsys 的gpio是DesignWare高级外围总线(DW_apb)的一个component,confirm to ARM的AMBA规范2.0。。
1.学会读 DW_apb_gpio_databook(数据手册可于主页下载)
其实GPIO我们很熟悉,在ARM设备中用的比较多,在使用STM32或者树莓派时我们就开始使用它。是嵌入式最基本的接口,作为输入端口时,我们可以通过它们读入外部数据,作为输出端口时,我们可以通过它们输出高电平或低电平来控制连接的外围设备。通俗地说,GPIO就是用来控制引脚的。所以以往使用GPIO的经验在这里也一样适用,我们依然是通过寄存器操作GPIO。
1.1 Overview:
Synopsys的 DW_apb_gpio是DesignWare高级外设总线的一个组成部分,我们借着这个图分析一下gpio这个IP。
可以看到这些小IP都可以挂到APB总线上,APB高级外设总线,顾名思义主要用于低带宽的外设之间的连接,例如UART,GPIO都可以接到上面。高级外设总线不像高性能总线那样可以支持多个主模块,在APB里面唯一的主模块就是APB 桥。
再回到ip本身,配置一个IO需要用寄存器。按照经验,我们用配置寄存器选择引脚功能,用数据寄存器读/写端口数据。一般我们在用GPIO控制外设的时候,就是配置某个引脚为输出或是输入,再在数据寄存器中写入0或1让引脚输出高电平或者低电平。如果设置为输入的话一般用于地址控制。在adb_gpio中也一样,比如对于gpio_swporta_dr寄存器,若某些位设置为output,则寄存器的值将被输出。
1.2 Function:
DW_GPIO的特点包括: 1. APB与APB bridge之间的接口
2. 外部数据接口
3. 辅助硬件数据接口
4. 中断接口

最好可以生成workspace后APPLY,对照着src下面的component.v一起看,比如会生成什么信号。在代码里面看有多少生成的信号。然后他也会有注释,对于刚看这些IP的同学,如果对注释看不懂呢就结合databook一起,可能还要结合这个Block Diagram 一起看,其他IP的框图也和GPIO一样一般在手册的第一章,会有一个DW_apb_component Block Diagram。
1.3 Features:
DW_GPIO的特点包括:
1.有128个独立配置的信号
2. A到D四个端口,可单独配置
3. 每个信号都有单独的数据寄存器和数据方向寄存器
4. 每个信号位的可配置硬件和软件控制
5. 端口A的可配置中断模式
6. 可配置的去抖动逻辑,带有外部慢时钟,以消除抖动中断
7. GPIO组件类型寄存器
8. GPIO组件版本寄存器
9. 输出信号上的可配置重置值
2. 仿真
仿真之前做好准备工作,下载正版的Synopsys公司的软件coreConsultant。
2.1 Workspace Directory Contents:
了解一下代码结构,打开coreConsultant,建立Workspace后查看生成的代码结构。

这里我做了一个结构导图,大家可以看看:

2.2 Function Description:

GPIO这个IP可以分为软件控制模式和硬件控制模式,在软件控制模式下,外部I/O的Direction由Portx数据方向寄存器(gpio_swportx_ddr)的写入控制。而写入的数据被传输到DW_apb_gpio外围设备的输出信号gpio_portx_ddr上。外部数据通过外部数据信号gpio_ext_portx输入。根据gpio_ext_portx是配置为输入还是输出,确定是读取信号上的值还是读取Portx的数据寄存器。
在该模式下,会生成辅助数据输入信号(aux_portx_out)和方向控制信号(aux_portx_en)[0 = Input; 1 = Output],其中x为a、b、c或d。
2.3 Registers:

数据手册第6章记载了各种Registers的offset和对应描述,方便我们配置对应的寄存器。
我们来看一段代码:
应的offset然后去测试就好了。
2.4 仿真结果:
进入我们最关心的仿真环节,写好testbench,就可以利用coreConsultant测试了:
比如我们配置gpio_inttype_level和gpio_int_polarity这两个寄存器,

测试一下仿真结果

再试一下其他的Testcase:
没问题。。
以上就是我们测试小ip的过程,但是要跑通ARM与ASIC之间的连接,需要跑通各个ip的软件控制流程(ARM-AMBA连接测试),后面会用到DS5等软件,DS5的安装尤其细节,不过已经跑通,有时间可以写一篇分享。
DW_apb_gpio_databook的下载地址:
(https://download.csdn.net/download/weixin_49457347/86309521)
边栏推荐
- 3. MATPLOTLIB data visualization analysis tool
- 略解深度学习优化策略
- CUDA10 installs a version of tensorflow that supports gpu
- RCNN目标检测原文理解
- [WUSTCTF2020]CV Maker1
- Electronic payment market status quo of the study: 2022 volume is expected to increase to 314.1 billion yuan
- Write carousel pictures with native js (and realize manual and automatic switching of pictures)
- bugku 速度要快
- cybox靶机wp
- 基于深度学习的关系抽取
猜你喜欢

深度学习中的优化问题(Optimization)

3.多线程两种实现方式的区别

访问修饰符public、private、protected、default(默认不写) 区别
![[GWCTF 2019]我有一个数据库1](/img/03/46c1cc42414e37d0d98cd714e950c2.png)
[GWCTF 2019]我有一个数据库1

2022年天然橡胶市场供需与价格走势

Redis实战篇

TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking

Anaconda installation and use

MySQL----存储引擎

Paramenter-Efficient Transfer Learning for NLP
随机推荐
Variational Inference with Normalizing Flows
Mysql 事务
七.Redis 持久化之 AOF
TextCNN实现imdb数据集情感分类任务
内存, 泄漏,溢出
Redis实战篇
【Web】标准文档流
2.Explain详解与索引优化原则
Markdown语法快速入门(以Topyra为例)
Chemical Industry Research: Current Situation and Scale Analysis of Organic Silica Gel Market
3.SQL底层执行原理
Bugku faster
Refrigerator compressor market status research analysis and development prospect forecast
冰箱压缩机市场现状研究分析与发展前景预测
Flask study notes
Rose essential oil market research: the current market output value exceeds 2.3 billion yuan, and the market demand gap is about 10%
关系抽取论文阅读笔记
一个五位数,判断它是不是回文数
COSMIC: COmmonSense knowledge for eMotion Identification in Conversations
略解损失函数