1020
算法的研发不在本合同范围之内。
还有项目的外形设计、工业设计不在这个范围之内。
比方说,还有功耗等等,把它列出来。
不做什么,做什么,列出来。
需求变更里面,还必须说明的一条,就是项目的维护,通常你完成了一个项目之后,往往会有一个维护期。
维护期,要载明,在需求分析里面载明。
发生什么样的情况,我们是要赔付的。
发生什么情况,是免费维护,发生什么情况之下,是收费维护的。
我们先休息十分钟。
(休息)
1028
这是传统的一个流程。
传统的设计选型之后,就可以开始总体的设计了。
总体设计之后,就可以开始PCB,元器件准备,固件,上位机软件,一系列的设计。
最后得到实际的硬件,完成装配,焊接调试之后,最后交付任务。
现代FPGA工程有所不同的在于,PCB设计,和PCB布线要滞后,要为FPGA的设计让路。
1029
我们在做反标,我们就可以看得到。
反标,不是任何的管脚都可以做的,它有非常严格的约束的条件。
如果我们先做的是总体的设计,先分配一个管脚,然后这边印制板已经布线了。
在工程里面,我们准备做一个八层板。
多层板的布线是很昂贵的,也很费时的。
这个时候,我们一做FPGA的反标,发现有问题,这个时候FPGA上再返工就得不偿失了。
就非常被动了。
所以说,现代的设计往往会要求在FPGA、ASIC这一块,要首先完成。
之后再进行原理图设计,后面都差不多。
这门课程我们准备向大家介绍工具呢,主要是用Altium Designer。
Altium是澳大利亚的公司。它的前期是Protel,国内用得比较多。
高速电路里面还有一些其它的软件,像Cadence现在用的人也挺多。
1030
Cadence在高速应用里面有它的独到之处,但是Altium现在也在补进。
都差不多。
只要学会了其中一个,其它都是差不多的。
我们准备做什么样的一个例子呢?
我们准备来试验一个DDR2,或者是DDR3的开发板。
因为我们做搬运嘛,我不知道有没有同学做DDR3的。
1031
如果做了DDR3会更好,因为DDR3上会有真差分,DDR2上还没有。
在DDR2的开发板上,我们引入一个外部晶振,50M的,至少留一个Jtag口,便于调试的。
我们现在的开发板上就有一个Jtag口。
Jtag口可以做什么呢?
可以做配置,可以做烧片,还可以接入signaltap,内置的逻辑分析仪。
我们至少留一组通信的接口。
做一组简单的232的接口,因为232的设计我们做过。
然后呢,我们放入至少一个DDR2的器件。
我们因为做过M16嘛,我们就挂M16的器件,这个器件就是BGA的封装。
然后呢,FPGA我们建议用Stratix来做。
因为Cyclone的比较低端,很可能是扁平封装,我们做BGA封装的。
1032
这就不是交通灯设计了,这个是做DDR2开发板的设计。
这样在顶层,自上而下地来做这个设计。
仍然是自上而下,它有外部晶振,器件的型号是叫FMO7,然后呢,我们再准备4个按键,并且有Jtag的连接口,有232的接口。
232是EIA的±12V的电平标准。
FPGA上面并没有这个标准,所以说我们必须外接一个由3.3V TTL/CMOS的标准,转EIA 232标准的接口转换的外围芯片,这个是不可或缺的。
这个我们建议大家用美信的MAX3232CUE这个芯片。
1033
然后呢,我们至少接一片DDR2,限于时间嘛,这一片能把它做好就可以了。
这片DDR2呢,就用我们现在做的MT47H32M16,16位的。
并且它有馈电,用三端稳压器的馈电,等等,这一系列。
我们现在看见的,左图的这个是晶振的实物。
我们选50M的晶振。
中间这张图呢,是晶振的接线参考图。
这张图往往是由厂家给出的。
晶振的厂家会给出一张图。
其中的电感L1是起退耦作用的,因为数字电路在工作的时候,电流上会有比较大的一个波动。
信号完整性要求,这个波动不要影响其它的外围的电路,所以说会用一个电感,做退耦。
1034
使得这一段同步翻转噪声不至于扩展出去,影响其它的电路。
R7是一个串行衰减电阻,由于我们已经做了50M了。
有了串行衰减电阻,可以有效地减少反射。
这个过程,我们会在FPGA工程的课程里面,用它工具本身自带的板级仿真看得到这个结果,不同的电阻对信号反射的影响。
第2脚是接地的。
10k是一个馈电的上拉端口,通过它加上一个正逻辑。
C38这个电容,是一个退耦电容,它是将电源端口上的电量及时进行补偿,因为这个电源端口会有信号完整性的波动。
信号完整性的波动,要么会使得它的内部逻辑受到噪声的干扰,要么使得外部受到干扰。
它对电量进行补偿。
这个电容就称之为退耦电容。
是0.1uF的。
1035
这个是它的原理图。
它有四个脚。
实物上有一个脚,是特殊的形状,带圆角的,标明是第一脚。
说明书上会说明标注的方法。
然后我们要做成印制板。
它的footprint,就是封装图。
四个按键,我们开发板上也有。
1036
这种按键,有的是带锁的,有的是不带锁的。
所谓带锁,就是按下去,滴答,锁住了。
再按下,滴答,抬起来。
我们现在设计上做的是带锁的,按下去就接触了。
不带锁的,手一松,它就会自己抬起来。
这个电路是如何构成的呢?
通常我们会用上拉的方式,它引入FPGA的部分,是通过上拉电阻接到VCC上。
也就是说按键没有按下去之前是高电平。
按下去了,才变成低电平。
所以说是负逻辑有效。
232呢,我们会用FPGA端口支持的TTL/CMOS的标准,通过外围的美信的芯片转成EIA的±12V的标准。
