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