集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 64757|回复: 226

跟李凡老师学FPGA图像加速器之D03:加速器基础(20170427课堂笔记)

[复制链接]
lcytms 发表于 2017-4-27 20:25:04 | 显示全部楼层 |阅读模式
李凡老师学FPGA图像加速器之D03:加速器基础(含长整加速器long_acc_zx1702)(20170427课堂笔记)

用笨笔头整理课堂笔记,用以备忘,温故而知新。
整理文稿的细节处未能一一体现李凡老师讲课精髓和独特风采,有待下一步补充完善。
感谢李凡老师博大精深的学识、孜孜不倦的教诲,并敬请李凡老师原谅本人拙劣的课堂笔记。

近期精彩课程安排如下图。
实际执行可能会有所调整,谨供参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-27 20:27:40 | 显示全部楼层
本帖最后由 lcytms 于 2017-4-27 20:29 编辑

0903
        我们这边没有用start,从置位以后开始。
        添加状态机FSM信号。
        小节拍0123。
  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-27 20:33:19 | 显示全部楼层
0904
        行的边界,到149,回到0。
        昨天我们并没有做到第二帧的计算。
        第二行。
        第三行。
        398行走到第3列。
        走到第3列以后,实际上后面没有做。
        它停下来了。
   

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-27 22:40:06 | 显示全部楼层
0905
        但是呢,并不影响我们这一帧。
        昨天我们布置的练习,是让大家处理第二帧。
        让它回到0。
        就相当于行为0,列为0。
        这个不难,很多同学都能完成。
        现在我们来看这一列,就是done。
        完成的这一拍,把它锁住。
        然后是置位的这一拍。也把它锁住。
        点击全局。
        现在两个红线之间所标志的时间段就是一帧。
        完整的一帧。
  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-27 22:42:24 | 显示全部楼层
0906
        但是这一帧呢,是包含了流水的过程。
        如果我们做两帧,连续做的话呢,就可以把流水的过程都排除掉。
        它会更快一些。
        总之,现在这个速度,实际的运行速度只可能比这个更高。
        这个速度是可以值得参照的。
        我们把它改成ms。
        4.77632ms。
        再显示出频率。
        209帧。
        我们知道,我们现在的电脑显示器是70帧,每秒显示是70帧。
        209帧。
        如果我们要支持现代高清,4K,1080的,那么做到对应的3维的控制。
        70帧,两幅就是140帧。
  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-27 22:44:36 | 显示全部楼层
0907
        209帧能不能做到,但是140帧应该没问题。
        但是我们现在做这个的是600*400,如果把它扩到1024*768,或者是1080p,或者是4K,这个时候速度可能还会提升。
        但是我们现在时钟是50M啊,我们还没有提升时钟的速度呢,时钟还有潜力。
        所以说这个可以在很高的速度下。
        这段代码可以称之为一段core,一段核。
        我们当初在写这个教材的时候,并没有用硬件逻辑,现在我们是用FPGA来实现,硬件逻辑来实现。
        每一拍都有一个动作。
        我们来看一下memory。
        我把memory调出来。
        因为在状态机里面也看得很清楚,是我们设计的嘛。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-27 22:45:55 | 显示全部楼层
0908
        但是要看全流水呢,最简单的就是看终点,看memory。
        Memory有没有空闲,大家可以看到,memory总线上是满满的,一拍都不空。
        读、写,我们是正逻辑。
        3拍读,1拍写。
        读和写正好是错开的。
        一拍都没停。
        在memory的总线上,每一个总线周期都用了,没有浪费。
        当然就快了。
        而为什么我们在做这个课程的时候,用CPU的方案解决不了。
        CPU无论如何怎么做,绝对保证不了memory上,连续的节拍。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-27 22:47:45 | 显示全部楼层
0909
        因为它有取指、执行,在取指的周期肯定memory要停下来,而指令要完成一个动作,需要若干个指令,所以说指令的本身,运行程序的过程要时钟段。
        而每一条指令的执行也有时间段。
        所以说CPU它虽然架构是固定的,它的架构需要换不同的程序,就可以执行不同的任务。
        这时称之为它的通用性。
        通用性虽然很强,阿兰图灵提出的CPU,通用性很强,成为今天世界的主流,但是它有非常重要的缺陷,就是它是用程序系统来完成的。
        程序系统就要走指令周期,要走程序周期。
        由此使得这种通用架构在完成指定任务的时候,效率很低。
 楼主| lcytms 发表于 2017-4-27 22:48:38 | 显示全部楼层
0910
        用CPU来做,它绝对不能看到,在访问存储器的总线上绝对不可能出现像我们这样的情况,每一拍memory都有事情做。
        它一定会走走停停,走走停停。
        因为它要取指啊、执行啊,即便流水线也是如此。
        以致呢,我们在写这篇教材的时候,即便使用到了美国德州性能比较高的DSP芯片,也没有办法满足H.264的压缩。
        720p,甚至是4K、8K的话,稍微好一点的是1080p,但是720p的时候就做不到。
        720p我们做到25帧。
        用DSP,用CPU的架构,用指令去做,都做不到。
        只能用硬件来做。
        这是用FPGA实现的这个理由。
 楼主| lcytms 发表于 2017-4-27 22:49:38 | 显示全部楼层
0911
        但是呢,我们的这个课程,这个30章,说到一个非常重要的问题,就是加速器。
        虽然FPGA的专用性很强,但是想想看,如果一个空中格斗系统,它应该是安装在一个什么样的环境下面呢?
        肯定是一个CPU的环境。
        它要执行各种不同的任务。
        它一定是在嵌入式的环境下面的,CPU的环境下面,由机载的计算机系统统一指挥。
        所以说通用性仍然不可或缺。
        现在的问题就是这样,如果我们能做成这样一个逻辑,就是做成我们现在仿真看见的210帧的一个图像边缘的检测。
        但是它仅仅是一个专用的功能,必须把它装到CPU里面,用CPU配合来使用。
        也代表了这个世界的方向。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-23 23:41 , Processed in 0.065615 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表