定义了三个fifo,#8#9就是两个队列,build_phase里new了一下,main_phase里例化。#29和#30两个计数
notion image
#46用error会好一些,
#36~52行get apb monitor的端口的数据并进行比对。判断一下apb是wirte,并且地址是0,那就是从apb tx写进去数据由并转串,那就把数据push进队列里;
如果不等于0,那就是读,由rx接口,从队列里pop出来数据。
不是全双工的,只能由一侧读或者写,因为寄存器只有一份。
最后把读的值与写的值进行一个比较,如果一样的话,就是compare成功。1为success,0为error。
check_phase
notion image
notion image
notion image
 
为什么用三个fifo呢?
因为框架里面有三个port,一个是apb那边monitor的一个port,另外两个是uart那边的tx和rx的monitor的port,
notion image
在base_test的build_phase里面创建这些组件,scb用creat,而fifo用new,它不是component也不是object.
在connect——phase里面,把fifo的与这些scb和monitor的port的连接起来。3个fifo用6个连接。
notion image
notion image
写一个seq启动,先配制寄存器,从uart和apb各写进fifo中9个数据,在uart中写进去再读出来,再用apb写进去,在apb写进fifo中。
notion image
 
notion image
空读和满写会报错。
notion image
 
notion image
 
 
  • Twikoo
  • Waline
  • Giscus
  • Cusdis
  • Utterance
Conor
Conor
一个野生的技术宅
公告
type
status
date
slug
summary
tags
category
Property
Nov 25, 2023 06:32 AM
icon
password
属性
属性 1
描述
Origin
URL
🎉持续更新中🎉