【芯片验证】验证的结构——实例1-1

实例1:MCDF(多通道数据整形器,Multi-Channel Data Formatter)

他可以将多个通道的上行数据经过内部的FIFO以数据包的形式送出。

设计结构:

1.上行数据的通道从端:负责接收上行数据,并存放在fifo中;

2.仲裁器:选择从不同的fifo中读取数据,将数据传给整形器;

3.整形器:将数据按照一定的接口时序送给下行数据端;

4.控制寄存器:有专用的寄存器读写接口,负责接收命令并修改MCDF的功能。

接口:

1.时钟:CLK;

2.复位:RSET。

 接口时序:

通道从端接口时序:valid拉高,写入数据。该时钟周期ready为高,表示已经将数据写入;当ready拉低,需等待ready拉高才可以将数据写入。

 整形器接口时序:按照数据包的形式发送数据的,数据包的可选长度有4、8、16、32。整形器必须完整发送某一个通道的数据包后,才可以转而准备发送下一个数据包,在发送数据包期间,fmt_chid和fmt_length应保持不变,知道数据包发送完毕。

        整形器准备发送数据包,先将fmt_req拉高,等待接收端的fmt_grant拉高,就在下一个时钟周期将fmt_req拉低。fmt_start在fmt_grant拉高下一个时钟周期之后拉高,且维持一个时钟周期。在fmt_start拉高的同一个周期,数据开始传送,数据间不允许有空闲周期,即应该连续发送数据,知道发完最后一个数据,fmt_end也应该在同一个周期拉高并保持一个周期。

控制寄存器接口时序: 需要在每个时钟周期解析cmd,当cmd为写指令时,需要把数据cmd_data_in写入到cmd_addr对应的寄存器中;当cmd为读指令时,需要从cmd_addr对应的寄存器中读取数据,并在下一个时钟周期,将数据驱动到cmd_data_out接口。

 疑问:为什么RD读取数据时第二个地址0x00对应cmd_data_out是D4而不是D1?

 至此以上是MCDF的功能描述。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值