1024
我们看见在夏老师的代码里面,它的memory并没有全速运行,走走停停,走走停停。
其中非常重要的就是有shift四拍,就要停三拍。
而且它的节拍呢,没有压在时钟周期上,时分的。
这个呢,也代表了一种趋势。
早先的这个嵌入式系统呢,它的资源是有限的,有限的资源切换了以后,CPU是完全无事可干的,完全架空的。
这个时候CPU不能完全架空,CPU要给它让出资源来。
1025
两种方式,第一种方式呢,就是用其它的硬件的配置,内部的总线,CPU刚把它的加速器启动了以后,加速器获得资源以后,CPU因为并没有完全失去所有的资源,CPU并不会完全无事可干。
而是接管其它的资源。
第二种形式就是时分的,就是按时间片来划分。
现在夏老师这段代码就是按时间片来划分。
仍然是把资源判给了ACC,但是呢,ACC却不会百分之百地占用这个资源,它会按时间片,比方说,ACC它虽然获得了请求,但是ACC并没有访问这个资源。
1026
这个时候,仲裁器仍然可以把资源给CPU用,这个时候谁获得资源,你想用就可以用,你不想用,空余的时间仍然可以分配给其它资源用。
所以说用划时间片的方式来做,所以你看到时间周期都比较长,并且是CPU上会走走停停。
是这么个过程。
Shift_en也是在走走停停。
现在呢,把屏幕切到同学屏幕上。
1027
复制acc_long_zx1702v21文件夹,改名为acc_long_zx1702v22。
打开报告。
1028
修改更新日志。
1029
指导设计。
三、阅读和欣赏(原加速器代码分析)。
做标题三。
将发放的sobel_nativelink打包文件复制到acc_long_zx1702v22文件夹。
解压后删除打包文件。
1030
指导设计。
三、阅读和欣赏(原加速器代码分析)。
打开quartus。
进testbench。
1031
指导设计。
三、阅读和欣赏(原加速器代码分析)。
现在不是做设计,而是做分析。
这个呢也是必要的,我们做EDA工程的时候,很多情况下要分析研究已有的代码。
3.1 加速器架构。
回到代码上。
看一下都有哪些模型。
1032
指导设计。
三、阅读和欣赏(原加速器代码分析)。
129行,有sobel。
原来我们做的是长整嘛,现在才是sobel。
再往下,有cpu。
我们有长整,长整被sobel替代,CPU不用变。
它这个CPU也是个虚拟CPU。
在这个代码里面,它要做的是上电以后,置位以后,就是向它的从机发命令。
CPU后面有memory。
只不过memory的环境是testbench的环境。
还有仲裁器。
没了。
1033
指导设计。
三、阅读和欣赏(原加速器代码分析)。
它是用_o和_i来说明output和input。
我们是用_out和_in。
就这个区别。
我在白板上做,请这个同学在word上做,这样快一点。
首先从CPU开始,CPU是主机,是不是?
CPU有哪些端口?
都有主从,都有端口,我们学过。
数据,主从都有,是不是?
