1、Verilog定位手段:速率统计?
在IC设计中,有些模块的应用有速率的要求,因此在FPGA阶段以及样片测试阶段,需要针对应用场景对速率进行计算,如果在RTL设计阶段能够添加相关的统计寄存器,能够高效准确的计算出传输速率。如MAC,itlkn,DMA,都需要添加相应的统计计算器计算当前状态的速率的相关信息,方便计算速率。
2、如何添加速率统计?
常见方法是:
添加寄存器,记录一段时间内输入数据的个数,如itlkn、MAC
添加寄存器,记录传输一定数据量所需要的时钟周期数量,如DMA
以DMA为例,简单介绍DMA是如何添加速率统计寄存器的:
案例1:CPU主动发起请求:
添加寄存器cycle_num_cnt,统计时钟周期,从CPU发起请求开始、cycle_num_cnt开始每个周期加1,直到DMA模块将数据搬运完成,此时停止计数,此时记录的时机包含,DMA响应请求信号的时间、以及DMA模块搬运数据的时间。
案例解析:
DMA模块时钟为125MHz,每个周期为8ns,CPU发起DMA请求,数据量为1024*128bit,DMA搬运完成后,cycle_num_cnt保持为4812,此时平均传输速率为
1024*128 bit/4812*8ns=3.4Gbps
案例2:DMA主动发起请求
DMA主动发起请求传输数据,可以记录从发出第一个数据到最后一个数据所需要的时钟周期,一次搬运大量的数据,减少测量误差,也能获得准确的速率。