FPGA与大脑

      前段时间,我很愉快地学上了FPGA。本人一直感觉FPGA有一种思维模式很我的思维模式很吻合,或者说和一般人的思维模式很吻合。这种思维模式我暂且定义为触发式的思维模式吧。FPGA的编程和MCU和CPU的很不一样,用术语来说一个是硬件描述,一个软件编写。我不喜欢术语的这种区分,用我的观点是,你在进行FPGA编程的时候你是在创造一个工作者或者几个工作者,它们有各自的特性,有的在各种脉冲触发下进行工作,有的按照时钟循环往复地工作。而进行MCU和CPU的编程的时候,你只是在输入一连串的操作。因为MCU和CPU内部只有一个工作者,他很强大,有类似于办工作的寄存器组,还类似于书架的内存条,甚至有类似于书库的硬盘。他还有眼睛和手,他的眼睛用来一条一条读取你输入的指令,这些指令用来告诉他干些什么事情,而一连串的指令也就是告诉他操作顺序。虽然它阅读会分支会跳转,但终究也是想玩飞行棋一样进行一个一个地操作。对了,差点忘说了,他有一双手,用来将数据从一个空间搬运到另一个空间,然后呢,他有一些操作工具,比如加法器和乘法器等等,最常用的是加法器。

      多说了几句MCU和CPU,我还是主要来说FPGA吧。FPGA里面虽没有那么强大的工作者,但是你可以在那里创造这个工作者,行话说是设计IP内核。既然你连这个工作者都能创建,那么什么加法器乘法器啊之类的什么都是浮云。其实我最喜欢FPGA的地方不是这种高度的定制能力,而是触发式的工作。verilog最常用也是最强悍的语句就是always@(...),它不同于for和while,前者是当条件满足就执行一次,后者是条件满足就一直执行,一直执行到条件不满足。说到触发,人脑的工作模式就是触发的方式,比如人的记忆,他不同于电脑的记忆。只要电脑内部存有的东西它总可以检索的到,而人脑并不是检索,而是触发,有时候你看到某个东西就突然想到某件事情。而当考试的时候,明明知道某个问题问什么,但就是想不起来具体是什么,你再什么翻阅你的大脑也没有用。更绝的是你考完后突然有什么东西一触发,你大脑噼里啪啦地泛出那个问题的相关内容。刚才我说的翻阅不是正真的翻阅,而是联想,由某个事情想到另一个事情,其实这还是触发式的机制。触发的机制是最节能的机制,不需要你时时关注某个东西,而是当某个东西来临的时候你自然会去响应,正所谓兵来将挡,水来土掩。当然,MCU和CPU也有触发机制,但他们都是外触发,也就是外部信号产生一个触发中断内部指令的执行。之所以要这样做,主要还是那个强悍的工作者是个书痴,两耳不闻窗外事,一心只读圣贤书的书痴,当然,它不是读圣贤书而是读指令。所以设置外部触发,强制它理一理外事。FPGA的触发不仅仅是外触发还有内触发,因为它内部可以定制很多工作者,这些工作者之间可以靠内触发来联系。人脑也类似,不对,应该说FPGA类似人脑。人脑有内触发,就比如联想吧,大部分联想的节点是在你思维的内部,只有刚开始的联想是从外部触发进入你的思维。

        FPGA和大脑有很多相似之处,但还有很多不及大脑。FPGA在编好程配完置后,就不能在改动了,它内部的工作就机械地运行。而人的大脑出生后一直都在自我修改,自我完善。大脑内部的触发是可以修改的,比如你小时候看到糖,于是触发你的唾液神经产生哈喇子。当你长大后你知道这样不雅于是修改了这条触发,改成摸口袋了。这对于FPGA是不能实现的,除非你在编写的时候就考虑到FPGA会长大的问题,然后引入时钟管理,当时间达到几年后,将原始的触发禁用,开启后一个触发。靠这样岂不是累死我们,况且浪费了很多单元。如果说我们的思维是上帝编写的话,那么它绝不会考虑这么多,因为我们的大脑可以自我修改,以适应新的环境。FPGA还有一点不如大脑。人的大脑工作目的性很强,当要做某件事情的时候,基本上会把所有的相关的东西准备好,然后逐步进行,在进行过程中还可以再获取其他初期未准备好的东西。这有点类似于MCU和CPU程序的流程,当然MCU和CPU还没强大到人脑那个程度。而FPGA基本没有流程式的工作,而是走到哪里就到哪里,率性而为,这主要还是因为它一旦配置好就不能修改的原因。

       基于上述问题,我想提个建议,将FPGA和MCU之类的结合起来。其实这两者已经有很多人在结合着用。但我所说的结合起来是这样结合的,让MCU配置FPGA,而具体工作还是FPGA工作,MCU只是管理FPGA内部逻辑资源,并监控FPGA的工作进程和效果。在实际工作过程中,MCU可根据实际需要从内存中调用一块FPGA的模块代码,这块代码进入FPGA中就形成了一个工作者,如果工作进行的不够理想,MCU再从内存中调入一个模块代码放入FPGA中,现在FPGA中有两个工作者在工作,效果可想而知。如果工作任务改变了,MCU将刚才的FPGA的逻辑资源收回,同时那两个工作者就消失了。收回后,MCU调入另一种模块放入FPGA中。我想如果FPGA能发展成这样,至少可以解决两个问题,一是再也不用担心FPGA内部资源不够用了;二是FPGA不再是那么傻傻的一个,它可以根据具体情况改变自身的逻辑形态,内部触发的修改也不在话下了。但是有一点,作为开发者要编写FPGA上那个用来管理的MCU的程序了。但我希望有一天会有一个通用的管理程序用于MCU进行逻辑资源管理,就像时下PC机上的操作系统一样。如果还有进一步的发展的话,FPGA将成为最接近人脑的一种人工智能机。那时,我们将会成为最接近上帝的人了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值