2.3 程序在MAX+PLUS II环境下的分析
在此设计中我所采用的编程目标芯片是ALTERA公司的EPF10K10LC84-3.
2.3.1波形仿真
波形仿真图如图6所示:
图6
由于条件限制,数据给的太多,从图6上是看不出来的,所以,为了说明设计的正确性,只给出了一个数据。通过波形仿真图我们可以清楚的看到UART的工作原理。
2.3.2 时序分析
我对设计在没有优化的情况下做了分析,首要的目的是验证用FPGA/CPLD设计的正确性,次要的目的主要是与优化后的分析进行比较,以说明用FPGA/CPLD设计的优越性。
优化前的时序分析图如下:
图7、延时矩阵图
图8、建立/保持时序分析图
图9、延时路径及寄存器时钟特性图
对本设计采用MAX+PLUS II优化设计中的专门针对其ALTERA器件的优化。在逻辑综合类型中选择快速类型(Fast)。这种类型是对大部分的器件特殊结构进行优化,是对性能要求较高的设计采用的综合类型。但是编译适配要比普通类型(Normal)慢许多。对于适配FLEX/ACEX等系列器件,综合器会自动使用FLEX/ACEX中的级链、进位链结构(对于Normal是忽略的)。
优化后的时序分析图如下:
图10、优化后的延时矩阵图
图11、优化后的建立/保持时序分析图
图12、延时路径及寄存器时钟特性图
从时序分析我们可看到本设计基本满足设计要求。(上面的时序分析图中,某些图中只包含了部分数据)
对于优化前与优化后的数据比较来看,虽然在某些数据上优化后反而不如优化前的,这是正常的。因为优化不可能照顾到每一个信号。
2.3.3 资源利用
对于资源利用的情况,也分优化前和优化后进行比较。
优化前的资源分布图如下:
图13、资源利用分布图
由于FPGA/PLD的阵列结构,如果在设计中,将某些关联模块在适配的时候集中分配在一块,其性能会大大提高。因此,对本设计进行打包(Clique)(又称分组)。
优化后的资源分布图如下
图14、优化后资源利用分布图
从上面的比较中,我们很清楚的看到,优化后的资源利用率有了很大的提高。
3 总结
本设计由于采用了VHDL语言作为输入方式并结合FPGA/CPLD,大大缩短了设计周期,提高了设计的可靠性、灵活性,使用户可根据自己的需求,方便、高效地设计出适合的串行接口电路。