4 需要特别说明的两个问题
(1)设计中直接使用了组合逻辑电路的输出来异步复位延时计数器 和连击标志寄存器,这有可能因为时序竞争而导致设计失败,在本IP核的实例化过程中,Quartus II软件的设计辅助工具(Design Assistant)会给出严重警告信息。当然,就CPLD/FPGA的开发原则来说,这种情况是应当极力避免的。但在本设计中,非但不会导致设计失败,相反正是巧妙地利用了这一点,既可靠地解决了按键去抖问题,又极大地简化了硬件的设计。首先,相对于硬件电路的反应速度(ns级)而言,可以认为多个按键被同时按下的情况是基本不存在的。显然,当组合逻辑电路的多个输入端每一时刻仅有一个信号发生改变时,不会导致时序竞争。其次,即使出现时序竞争导致延时计数器被复位,由于它多因按键的抖动引起,此时的复位操作正是去抖所需要的,也即本设计对此处的时序竞争是不敏感的。
(2)借助于IP核的使用特点和CPLD/FPGA器件的在系统编程(ISP)特性,在保证硬件扫描键盘控制器使用灵活性和通用性的基础上,避免了在设计中引入可编程的控制寄存器,从而进一步简化了设计,减小了硬件资源消耗。
与基于MPU的传统扫描键盘实现方案相比,硬件扫描键盘控制器工作时无需扫描程序配合,减轻了MPU负担,降低了系统功耗,同时也有效地缓解了I/O引脚短缺的问题。IP核的实现,大大增加了本设计的通用性、可移植性和可重复利用性;巧妙的设计,保证了例化后占用非常少的硬件资源。从而为在不增加硬件成本的基础上,简化大型系统的软硬件设计流程、缩短产品开发时间提供了一条新途径。
此外,更为重要的是,本文以一款结构经参数化的全功能硬件扫描键盘控制器的设计为例,从一般意义上阐述了IP核的设计方法、设计步骤与设计途径。文中给出的参数数据和用到的设计原则、设计方法与设计技巧对同类设计乃至大型设计都有很好的参考和借鉴意义。
参考文献
1 吴继华,王 诚.Altera FPGA/CPLD 设计(高级篇)[M].北京:人民邮电出版社,2005
2 Quartus II Version 5.0 Handbook[EB/OL]. www.altera.com. Altera Corporation, 2005
3 MAX 7000A Programmable Logic Device Data Sheet[EB/OL].www.altera.com. Altera Corporation,2003