说些什么
1
某个阳光很好的午后
我兴高采烈:“老师,我来啦”
老师:“不好意思,我放假了”
哦,原来清明节只有我不放假
于是和老师两周没见了…
2
你们真的好有趣啊,“岳麓山大小姐是我还没有联系方式的女朋友”这种话到底是怎么想出来的啊hhh
3
北航的复试要求出来了,然后看到了说如果CCF成绩的累计排名是前百分之五十的可以免机试,然后就去查了我的认证,发现是当次的前百分之九点多,累计的是前百分之十七点多
然后就在我很开心的时候,突然发现要求是选择编程语言为“C/C++”,而当时我们虽然只学了C++,但是老师说为了保险让我们选的是“ALL”,就挺难受的
然后看了一眼北航的成绩
哦,我考不上啊,那没事了
实验详情
第一部分代码
这部分代码是需要你加在module UM(XXXXXX);的XXXXXX里面的,就是增加了时间数量,总共数量和部分数量的定义,其中时间数量是27位宽的,另外两个都是32位宽的
//----------------LAB5 control------------------//output reg [26:0] time_num, //时间数量output reg [31:0] all_num, //总共数量output reg [31:0] part_num, //部分数量
解释一下为什么时间数量是27位宽的,因为硬件设备的硬件工作频率为125MHz,然后十进制的125’000’000转化为二进制是111’0111’0011’0101’1001’0100’0000,所以我们至少需要27位宽才可以保存全部
第二部分代码
每工作一次时间数量+1,然后加上这次工作的有效字节数,当时间数量为125’000’000的时候就代表过去了1秒,我们就将有效字节数(部分数量)转化成有效通过的数据位数(全部数量),即有效数据量字节数*8,之后将时间数量和部分数量归零
参考注释应该挺好理解代码的
//------------------LAB5宽带统计功能实验代码-----------//
always@(posedge clk or negedge reset)if(!reset)begintime_num<=27'b0;all_num<=30'b0;part_num<=30'b0;endelsebegintime_num<=time_num+1; //每工作一次,时间数量+1if(cdp2um_data_valid==1'b1)beginpart_num<=part_num+1'b1+cdp2um_data[135:132]; //part_num的意义和LAB4里字节计数器相同endif(time_num==27'd125000000) //硬件设备的硬件工作频率为125MHzbeginall_num<=part_num*8; //有效通过的数据位数=有效数据量字节数*8time_num<=27'b0;part_num<=30'b0;endend
编译结果

波形观察
添加节点time_num,all_num,part_num,具体操作参考
交换机/路由器实验:实验3信号的提取,这里就不赘述了
结果观察
结合交换机/路由器实验:保姆级别的iperf安装与使用教程来看吧