一个前辈对FPGA的理解
接下来对比一下我原来和现在对于FPG A的认识:原来从单片机转型
到FPG A时,并没有摸清这趟河水的深浅,而在不知深浅的情况下,我已
经开始下水了。当时我认为FPG A和单片机一样,它是由一个超级经典的
硬核架构起来的IC,通过编写程序来实现FPG A对外围的控制。但是现在
想来,当初的想法是大错特错了,现在想来我的上半年FPG A学习进度基
本为零也就是意料之中的事情了。我重新对FPG A的认识是这样的:首
先,FPG A是纯硬件,现在我所写的‘程序’也就不能称之为程序,如果
非要给它起一个名字,我感觉‘代码’也许是比较恰当的;其次,单片
机和FPG A实现信息处理发出控制信号的方式不同,单片机和嵌入式是通
过主函数或者操作系统实现任务调度的途径来响应各种外部条件触发,
并通过‘软件’输出相应的状态来实现电子系统的正常工作,然而FPG A
是通过纯硬件来实现各种激励的相应的,与单片机实现控制的根本方法
不同。最后,单片机和嵌入式的软件设计会有盲点,再快的软件相应在
现实应用中也会有出现盲点的时候,简单的说就是系统不能及时响应或
者漏掉某些激励的现象,然而硬件不会,它以强大的并行方式来响应所
有的信号激励,但硬件也不是万能的,FPG A这类的纯硬件最大的克星就
是亚稳态以及竞争冒险等等,通俗的讲就是输出及其短暂的不稳定现
象,虽然不稳定状态出现的时间及其短,甚至到了皮秒级别(1秒等于10
的十二次方皮秒)但也就是这么短暂的不稳定也可能会给设计带来致命
的危险。这是有硬件的特性决定的,是在设计中永远无法避免的,对于
冒险和亚稳态,我们只能想尽一切办法去解决他们。一个信号处理逻辑
机制优劣将决定一个项目的好坏。这就是我暂时对FPG A的一些认识和感
悟
一个前辈对FPGA的理解的更多相关文章
- 用一个简单的例子来理解python高阶函数
============================ 用一个简单的例子来理解python高阶函数 ============================ 最近在用mailx发送邮件, 写法大致如 ...
- 一个小白对auth的理解
---恢复内容开始--- PS:最近需要做一个验证用户权限的功能,在官方和百度看了下,发现大家都是用auth来做验证,官方有很多auth的使用教程,但是都不全面,我也提问了几个关于auth的问题 也没 ...
- 一个demo让你彻底理解Android触摸事件的并发
注:本文涉及的demo的地址:https://github.com/absfree/TouchDispatch 1. 触摸动作及事件序列 (1)触摸事件的动作 触摸动作一共有三种:ACTION_DOW ...
- 一个新人对HTML的理解
首先 HTML里面包含的东西是什么? 在HTML里面 注释的表示方式是 <!--注释内容--> 注释 HTML初始默认包含了两大部分: 一部分是 <head>< ...
- 一个demo让你彻底理解Android中触摸事件的分发
注:本文涉及的demo的地址:https://github.com/absfree/TouchDispatch 1. 触摸动作及事件序列 (1)触摸事件的动作 触摸动作一共有三种:ACTION_DOW ...
- 用一个时钟在FPGA中计算直方图
直方图对数字数据的分析通常是一种有用的工具.不过,要从一个直方图获得可靠的结果,必须获得大量数据,通常是要10万到100万个点.如果需要分析一个ADC的数字输出,可以采用一片FPGA(图1). 图中显 ...
- 《Fluent Python》---一个关于memoryview例子的理解过程
近日,在阅读<Fluent Python>的第2.9.2节时,有一个关于内存视图的例子,当时看的一知半解,后来查了一些资料,现在总结一下,以备后续查询: 示例复述 添加了一些额外的代码,便 ...
- mvp(2)一个简单示例,加深理解
参考: http://www.cnblogs.com/liuling/p/mvp-pattern-android.html 架构图: 1.View层 public interface NewsView ...
- 一个小白对Arguments的理解
1.Arguments是一个类似数组的实参队列,译为:论据,论点,姑且译作参数(实参): 2.Arguments与形参保持不同的存储空间,只有当形参被赋值之后两者才会相等 3.传说在严格模式下函数内自 ...
随机推荐
- 发掘odoo.cli.server.Server的秘密,OpenERP的第三根线头儿
command.py调用了server command 在server.py中,主函数main使用了外层模块传递来的args def main(args): check_root_user() odo ...
- php iquery
<?php/** * */function iQuery($sql) { $dbcon = mysqli_connect("localhost", "root&qu ...
- js 日期按年月日加减
<script> function isleapyear(year) { if(parseInt(year)%4==0 && parseInt(year)%100!=0)r ...
- Node调试之道-----JSHint
Node调试之道-----JSHint Node的优势我就不再乱吹捧了,它让javascript统一web的前后台成为了可能.但是对于新手来说,server端的JS代码可能不像client端的代码那么 ...
- linux 下 文件权限和文件主
文件与文件夹的权限和所有者 1.chmod -R 755 file 777 含义与来源: 777含义:分别为:所有者.同组用户.其他用户 7的来源:文件有三种操作模式:读4.写2.执行1,分别值为42 ...
- My Package
一.新建一文件夹,名称为MyBase,存放Java的基本类. 二.在MyBase包中创建基本类Base.java. package MyBase; public class Base { public ...
- [IIS]IIS扫盲(六)
一:聊天室 聊天室的种类有很多,免费的聊天室也有很多,这些聊天室的ASP源码从网上都可以下载得到,我们就以毒爱聊天室为版本来教大家做.好,大家先下载毒爱聊天室,当然,本站软件下载里就有下载,下载的是 ...
- uboot和内核波特率不同
uboot和内核波特率不同,在uboot启动后,修改uboot参数: set bootargs 'noinitrd root=/dev/mtdblock3 init=/linuxrc console= ...
- HDU5878
http://acm.hdu.edu.cn/showproblem.php?pid=5878 给出你一个数字,让你求出大于这个数字n并且是形如2^a*3^b*5^c*7^d的最小的数: 就是用打表法求 ...
- jsp 错误码debug记录与总结
500: 编码错误: 无法向cookie中写入中文字符串 需要使用URLEncoder.Encode()在写入处进行转码,使用URLDecoder.decoder()在读取处进行解码 或者使用requ ...