一、验证思路
上次只对4种中断的一种电平触发型,低电平有效进行了测试,接下来对剩下的三种中断进行测试,由协议中的中断类型可以由此配置不同portin,寄存器类型配置的时候,应该先配置type后,再去配置polarity,具体配置和遍历测试如下:
二、时序分析
由波形可以看到,4中组合的中断随着portin的配置,除了边沿触发,上升有效(raise_edge)一直为0外,其他的中断都有按顺序被遍历到:
通过观察design接口发和中断类型(如下图)发现,之所以边沿触发,上升有效(raise_adge)这个寄存器没有被配置的原因是,interrupt polarity和interrupt type被配置为01后,被自动清除了(即拉高了INTCLR信号),因为在set_and_clear中配置了clear,即遍历到中断Falling edge后,紧接着遍历Low-level中断了;
接下来把inttype和intpolset每次都重新配置一下,配置如下,编译仿真后,四个中断成功按顺序遍历;