打印

浅说FPGA我自己理解中的硬件描述编程

[复制链接]
1451|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoyuan_ly|  楼主 | 2011-3-27 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xiaoyuan_ly 于 2011-3-27 15:04 编辑

1、既然为硬件,那么就是可以变成实物的(或者说有相应的实物对应)。-这就是“综合”的意思。
2、既然为实物,那么就存在事实上的可能冲突。比如说我既要门开,又要门关--在现实世界中,你就会问你到底让我开门还是关门啊??!! 同样,在硬件的实现时,数据在传递过程中只有一个状态,“高”,“低”和“没有”,就相应为“高电平”,“低电平”,和"高阻”。所以说,当一条数据线上你如果产生了既要它高又让它低的情况产生,不好意思就会很可能损坏FPGA这东西,就别说数据传递的正确与否了。
3、当你进行硬件描述编程时,当编写一条或多条语句时,你应该明白它的“实物”是什么?如果你不明白它的“实物”是什么,那么请翻书或查资料了,如果有,哈哈,恭喜你那就是“可综合的”,如果没有(可能也是自己查的水平有限),那要看运气了,或许是“可综合”,但我的意见是:千万别写了,“不可综合”的成分见多(我就不相信你查的水平那么有限),再说如果真的是可综合的,我也不想让自己都不了解的东西存在-为自己的调试带来麻烦。
4、接下来说说组合电路和时序电路了。其实我的理解很简单:复杂的都是简单的堆在一起的表象。比如说吧:就说长江得了,长江上有100座水坝(有多少我不知道,没查过,呵呵),我们姑且给这100座水坝编号了1-100的号码,那么电路中的“时序”就是用寄存器来表现的,简单的说水坝就是寄存器,复杂的说水坝就是很多很多的寄存器的集合。那么电路中的“组合”是什么呢?? 组合就是用导线来表现的,简单的说一滴水就是一根导线,复杂的说水坝里的水就是很多很多的导线的集合。然后水坝里的水有不同的“状态”,这就是我们所谓的“算法”功能。还有就是水一直是流动的。既然“水”是流动的,那么什么时候停呢??!! 不好意思,到了水坝就停了,只有开闸了,才能往下“流”。流动的水就是我们“组合”电路的求得“结果”,开闸了就是我们的时钟信号,不管是同步时钟还是门控的,反正就是时钟信号,也不管它是上沿“开闸”还是“下沿”开闸,那都是你来决定的。
5、既然是“流动”的水,那么就有快慢之分,那就是我们说的“运算速度”。同样“开闸”也有时间间隔,那就是你的时钟频率。当你开闸的时候,你认为的要流过去的那些“流动的水”却没有过去,哈哈,恭喜你这说明你的水流的太慢了,你的算法速度不够,你的组合电路运算速度不够,没有把你要求的正确的“水”到达开闸时的指定位置。那么要达到你的要求,呵呵,1、开闸的你再延时开闸--降低时钟频率。2、让你的“水”流的再快点再快点--提高你的组合电路运算速度。
6、没有第6点了,我现在就想到了这些,以后再发。

相关帖子

沙发
李冬发| | 2011-3-27 15:46 | 只看该作者
你的那个比喻不妥呢,让人更迷糊的。

使用特权

评论回复
板凳
xiaoyuan_ly|  楼主 | 2011-3-27 16:14 | 只看该作者
哈哈,我是新手,请说说你的理解了。。。。。。 给点思路了

使用特权

评论回复
地板
acgean| | 2011-3-28 08:58 | 只看该作者
虽然我也感觉迷惑了. 但是楼主已经把一个抽象复杂的概念转化到自己认为的通俗概念来做理解了.
这本来就是一个好的学习方法. 值得提倡, 鼓励和推荐大家学习的.

使用特权

评论回复
5
李冬发| | 2011-3-28 18:30 | 只看该作者
FPGA,除了那些大块头的逻辑组件外,其它的就是“与”、“或”、“非”、“D触发器”。剩下的就是一堆的导线了。

使用特权

评论回复
6
abin0415| | 2011-3-28 21:31 | 只看该作者
偶是新手。看到楼主这么讲,也明白了一点。顶

使用特权

评论回复
7
Step1toStep5| | 2011-3-29 11:31 | 只看该作者
楼主不错啊 至少有一个自己的见解了。。。

使用特权

评论回复
8
xiaoyuan_ly|  楼主 | 2011-3-29 20:16 | 只看该作者
希望大家都说说自己的理解,再打字的过程中,应该能加深那种理解,你说呢??  欢迎多来说说,我也接触这个不久

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

284

帖子

1

粉丝