由于日、时、分、秒计数器的结构除计数进制不同外,其他部分完全一样,因此图1中仅给出秒计数电路部分。本设计实例以其中的秒脉冲计数器为例,以lpm_counter元件为基础,设计一个可异步清零、可置数的60进制异步计数器.说明采用lpm_counter元件设计任意进制计数器的方法。
3.1 调入lpm_counter元件
首先打开MAX+plus II软件,然后建立图形输入文件“S_count60.gdf”,在图形编辑器的空白处双击鼠标左键,打开元件输入对话框。在对话框的Symbol Libraries窗口中双击X:maxplus2max21ibmega_lpm(X为MAX+plus II软件所在盘的盘符);在Symbol Files窗口中双击lpm_counter,得到LPM_COUNTER元件。
3.2 参数设置
从mega_lpm元件库调入的LPM_COUNTER元件,其缺省状态为二进制计数器,必须根据设计要求对其设置,得到符合设计要求的计数器。LPM_COUNTER元件的设置包括参数设置和引脚端设置两部分,下面分别加以说明:
(1)参数设置设计一个60进制的计数器,必须设置LPM_WIDTH(计数位宽)和LPM_MODULUS(计数模数)两个参数,LPM_MODULUS=60;又因为LPM_MODULUS必须小于2 LPM_WIDTH,因此必需满足LPM_WIDTH≥6,这里设置LPM_WIDTH=6。如果通过总线置计数器计数初值,则其他参数可不设置。
(2)引脚端设置 根据设计要求,该计数器为可异步清零、可置数60进制异步计数器,因此对外连接的引脚端应包括:clock、clk_en、data[]、aclr、aload、q[]端和进位端cout。此处data[]和q[]端位宽由LPM_WIDTH(计数位宽)参数决定。
(3)操作步骤在Symbol Files窗口中双击lpm_counter在得到LPM_COtINTER元件的同时,将打开如图2所示的参数设置对话框。
在对话框中的“Ports”区的“Name”窗口中选中所需引脚端,然后在“Port Status”区选择“Used”,重复上述过程,直到所需的引脚端全部设置完毕。在对话框中的“Parameters”区的“Name”窗口中选中需要设置的参数。然后在“ParametersValue”编辑窗口中填入相应的参数值,单击按钮“Change”,即可完成该参数的设置;重复上述过程,直到所需参数全部设置完毕,点击“OK”,退出LPM元件参数设置对话框。以上设置完成后,就可按常规图形输入方式给元件添加输入、输出引脚,并对引脚命名,从而完成整个设计。完成设计后的电路如图3所示。