CPU



AXI-CROSSBAR





DEBUG



意思
AXI
















就是说master是请求发出的那一端,然后slave是接受的一端,
对于请求发出的一方,其信号是valid,接受的一方,确认这个信号,就是向发出的那一方发出握手信号ready,当请求发接收到来自slave的ready后,就正式发出请求地址
即握手过程为:master先发出第一个握手信号,valid,表示要发出请求
然后slave收到第一个握手信号后,向master发出第二个握手信号,ready,表示可以接受请求
之后master接受到后,就直接发送请求了;
对于读请求,slave是提供数据的那一方,在第一次握手互换流程结束,即第二个握手信号ready发出后,在slave端查找,然后在查找完后返回数据
在这个读请求过程中,占据AR和R通道;master占据AR,不过只有开始的那一会;然后slave应该是要持续一直占据R通道的?直到这个请求被完整响应,即所需数据全部返回。
然后对于写请求,是在master完成第一次握手互换流程后,开始写数据,这次数据是由master提供的,通过W通道传输要写到达数据
然后slave端通过B通道返回写的响应
这是两段握手过程
在握手时,那个地址是随着valid一起传输的吗?即是valid和数据(读地址,写地址,写数据等)一起到达,还是说在slave端返回ready后才发送
即是1.valid(AR) 2.ready(AR) 3.data(R)
还是1. valid data(AR,R) 2. ready?(R)
以及对于写请求是
1.vaild(AW) 2. ready(AW) 3.wdataAdr(AW) 4.wdata(W) 5.wok(B)
??


那如果数据在ready握手信号传来之前就发生了,那就意味着slave端是可以接受到valid信号和数据的,那它返回ready给master确认的意义在哪?
现在认为的意义就是,在确认有能力接受后,不用再等待master传输数据了,可以加快一点,以及让master知道数据已经被接受了;就是说,当slave端知道valid和data后,就已经可以直接利用,然后开始查找了;那你说的那个"传输发生"是什么意思,是发生在哪端?我现在理解的就是当data和vaild在总线上时,传输就已经完成了,slave看到后,就直接发送ready,表示已经接受,即是数据传输的结束,而非开始。







运行
修改verliog代码后,重新编译,然后再运行
scripts/build_func.sh
vvp build/func_tb.vvp +loadmem
timeout 10s vvp build/func_tb.vvp +loadmem


Review
1340
就是说当前点可以向左右移动,但是必须保证在移动途中,不能遇到比自己大或相等的数
那么最低的点哪也去不了,最高的点哪都可以去,不过受限于移动距离d
然后DP【i]表示当前下标i所能移动的最多次数
然后依据高度,对下标做排序
然后自高度的从低向高遍历,这样当前的下标,比当前点低的所有点都是已经被处理过的;
1871滑动窗口
这个是说,转换成当前位置i,是可能由前面的一个窗口里的0所跳转过来的
所以就检查,当前位置是否是0,以及窗口内是否有0
然后窗口就是i-max,i-min
当i向前移动时,i-max-1出窗口,i-min是新进入窗口的
然后窗口内部维护一个值,就是能到达的0的数量
检查i-max-1是否为0,以及是否能到到,如果都满足,就让cnt--
再检查新入窗口的,是否为0,以及是否能到达,
这时的"是否能到达"一定是确定的,因为是在当前i之前的数据
最后再确定当前i的flag
即
