AHB GPIO验证环境搭建
仅为个人学习记录。有不足之处,请大家指正补充~~
听个响吧~
用凡人的视角
叙述我这平凡的一生
展开
-
AHB GPIO验证环境搭建——学习笔记(5)
通过观察design接口发和中断类型(如下图)发现,之所以边沿触发,上升有效(raise_adge)这个寄存器没有被配置的原因是,interrupt polarity和interrupt type被配置为01后,被自动清除了(即拉高了INTCLR信号),因为在set_and_clear中配置了clear,即遍历到中断Falling edge后,紧接着遍历Low-level中断了;接下来把inttype和intpolset每次都重新配置一下,配置如下,编译仿真后,四个中断成功按顺序遍历;原创 2023-06-01 19:36:15 · 455 阅读 · 0 评论 -
AHB GPIO验证环境搭建——学习笔记(4)
portin拉高后,随后拉低,清除当前中断,再对其他类型中断进行遍历,如电平触发,高电平有效;结果发现同一个地址无法映射到两个寄存器,通过修改寄存器名称,把编译通过,只是名称不同,其实还是映射到一个寄存器而已;分别对16bit中断进行遍历,也就是对每1bit位进行4种中断的组合,最后通过外部信号portin进行各个bit位触发中断,每一种中断被触发记录后,分别清除后(清除type和polarity),才能触发其他类型的中断,最后由信号GPIOINT和COMBINT来判断中断的当前状态;原创 2023-05-31 20:41:44 · 491 阅读 · 3 评论 -
AHB GPIO验证环境搭建——学习笔记(3)
对portout先做set,但并不是对全部bit位都做set,对简单寄存器地址访问的思路如上图,tb从AHB端写入,从portout读回;接下来对portout和portin做一个简单的compare,为了考虑bit位的翻转问题,设定初始值1,0,1;AHB端拿到portin之前需要等待3个周期,一拍做记录,两拍做同步(双触发器同步);masked bit过程,对于portin来说,当id > 0时,先需要暂存一下当前的bit id,把对应的id交出来,这样就完成了一个mask的过程;原创 2023-05-29 17:13:55 · 593 阅读 · 1 评论 -
AHB GPIO验证环境搭建——学习笔记(2)
通过Makefile对以上环境进行编译,编译顺利通过,但只是完成了各个组件的创建,必要的连接没有做,后面将把各个组件连接好,编译通过后,实现激励发送。base_sequence拿到ahb的VIP激励后,通过p_sequencer挂载到virtual sequencer后;把相关的信号放入gpio_if中;在tb中定义时钟、例化dut、连接gpio_if;在环境中完成组建的创建、例化和连接;原创 2023-05-28 18:14:33 · 503 阅读 · 0 评论 -
AHB GPIO验证环境搭建——学习笔记(1)
• 可编程中断生成能力。• 使用地址值的位掩码支持。• 具有引脚多路复用支持的备用功能切换寄存器。• 通过为控制寄存器提供单独的设置和清除地址实现线程安全操作。• 输入使用双触发器采样以避免亚稳态问题。其中FCLK与HCLK是same phase的,也就是它们的上升沿和下降沿在时间上保持对齐;此外,GPIO默认采用小端;就是把数值的高位字节放在内存的低位地址上,把数值的地位字节放在内存的高位地址上。就是把数字的高位字节放在高位的地址上,低位字节放在低位地址上。原创 2023-05-28 13:42:17 · 1185 阅读 · 3 评论