CN105117200A - 一种与16位微处理器应用系统连接的计数器ip核及其实现计数器计数控制的方法 - Google Patents
一种与16位微处理器应用系统连接的计数器ip核及其实现计数器计数控制的方法 Download PDFInfo
- Publication number
- CN105117200A CN105117200A CN201510377909.3A CN201510377909A CN105117200A CN 105117200 A CN105117200 A CN 105117200A CN 201510377909 A CN201510377909 A CN 201510377909A CN 105117200 A CN105117200 A CN 105117200A
- Authority
- CN
- China
- Prior art keywords
- counter
- frequency division
- division multiple
- digit
- control module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Control Of Motors That Do Not Use Commutators (AREA)
Abstract
一种与16位微处理器应用系统连接的计数器IP核,包括数据输入输出与命令字分解存储控制模块,脉冲200分频器,计数处理控制模块,计数器溢出标志控制模块和输入门控选择控制模块;本发明应用FPGA设计计数器IP核硬连接控制电路,计数器IP核有15个16位计数器,其中14个能够组成7个32位计数器,一个命令字设置一个计数器的工作模式,计数滤波基准时钟分频倍数,工作状态控制;本发明除16位微处理器对计数器进行功能和状态设置、计数参数传输、读计数当前值操作之外,不占用16位微处理器程序执行时间;每个16位/32位计数器具有自动重新装载计数参数功能;能够满足数量众多计数器计数与计数控制系统的需求。
Description
技术领域
本发明涉及一种与16位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法,尤其涉及一种基于FPGA并行处理的特点,应用FPGA设计硬连接电路组成的能够与16位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法。
背景技术
在大规模计数控制或其它需要应用众多计数器的16位微处理器应用系统中,将使用大量的计数器,扩展计数器个数有三种实现方式:第一种方式是应用微处理器中的一个计数器的计数值作为基准计数值,采用计数中断方式编程,设置基准计数值的倍数变量,该计数值倍数变量也是扩展计数器的标识变量,编程方法主要有2种,第1种方法是执行一次计数器中断服务函数计数值倍数变量加1,并与设置的基准计数值的倍数值比较,如果计数值倍数变量已达到设置的基准计数值的倍数值,对计数值倍数变量清0,然后执行该扩展计数器计数值溢出的程序;或专门设置一个扩展计数器的标识变量,当计数值倍数变量已达到设置的基准计数值的倍数值时,对计数值倍数变量清0,置1计数器的标识变量,在主函数的程序中判断该计数器的标识变量是否为“1”,如果是,则清0该计数器的标识变量,执行一次该扩展计数器计数值溢出的处理函数;第二种方式是微处理器与计数器扩展芯片连接扩展16位计数器;
以上二种实现方式存在如下不足之处:
1.应用基准计数器的计数中断方法,CPU响应和退出基准计数器中断服务程序占用CPU运行时间;基准计数值越小,计数器系统需要扩展的计数器越多,将占用CPU运行时间越长,对其它程序模块的执行速度产生严重的影响;
2.第二种方式采用微处理器外扩专用计数器芯片,所需的计数器越多,外扩专用计数器芯片就越多,16位微处理器应用系统的电路规模就越大;
第三种方式是采用不可编程的硬件计数,其每个计数器用独立的硬件电路实现;采用这种方式实现计数功能,所需的计数器越多,电路规模就越大,且维护工作量大。
发明内容
本发明的目的在于充分应用FPGA的并行处理功能,提供一种基于FPGA的与16位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法,计数器IP核内部有15个16位计数器,也可以应用14个16位计数器设置成为7个32位计数器,每个16位计数器或32位计数器能够输出溢出信号,能够编程设置门控信号控制计数器的工作,计数器的工作模式,选择十六种计数输入脉冲的滤波参数,该计数器IP核只需要经过初始化编程的一条命令设置每个计数器的工作运行方式,计数时间到产生计数溢出信号时,计数器IP核能够自动重新装载计数参数;计数过程不占用16位微处理器程序执行的时间,能够实现对数量多达15个16位计数器或1个16位计数器和7个32位计数器的计数与计数控制等优点,以克服已有计数方式实现技术所存在的不足。
为解决上述技术问题,本发明采取的技术方案是:一种与16位微处理器应用系统连接的计数器IP核,其特征在于:该计数器IP核包括数据输入输出与命令字分解存储控制模块,脉冲200分频器,计数处理控制模块,计数器溢出标志控制模块,输入门控选择控制模块;
所述数据输入输出与命令字分解存储控制模块与16位微处理器应用系统、计数处理控制模块、计数器溢出标志控制模块和输入门控选择控制模块连接;
所述脉冲200分频器还与16位微处理器应用系统和计数处理控制模块连接;
所述计数处理控制模块还与16位微处理器应用系统、计数器溢出标志控制模块和输入门控选择控制模块连接;
所述数据输入输出与命令字分解存储控制模块在输入的片选信号为低电平的条件下,如果写信号有效,按照16位微处理器应用系统给定的计数器或计数器命令字的地址,获得计数器运行的工作模式分频倍数编码命令字,状态控制命令字,16位计数器或32位计数器的计数参数,并按照计数参数、计数器编号、工作模式分频倍数编码和状态控制分别予以存储和输出,还输出写工作模式分频倍数编码信号、写状态控制信号和写计数器参数信号;如果读信号有效向16位微处理器应用系统传输计数器实时计数值;
所述脉冲200分频器对16位微处理器应用系统的时钟脉冲进行分频,其输出作为计数处理控制模块的计数器计数控制操作的滤波基准时钟脉冲;
所述计数处理控制模块在写工作模式分频倍数编码信号的作用下,按照计数器编号存储该计数器的工作模式,滤波基准时钟分频倍数的编码值;在写状态控制信号的作用下,按照计数器编号存储该计数器的状态控制信号;在写计数器参数信号的作用下,按照计数器编号存储该计数器的计数参数;所述计数处理控制模块在计数器IP核外部输入的计数处理控制运行时钟脉冲CLKⅡ的作用下,控制计数处理控制模块的运行,按照脉冲200分频器输出的一个滤波基准时钟脉冲周期完成所有已启动计数器的一次处理,包括每个计数器的状态控制处理,工作模式的判断处理,当滤波基准时钟的个数达到一个16位/32位计数器所设置的滤波基准时钟倍数值时,从计数器IP核外部读入该计数器的计数输入信号,进行一次滤波处理,如果判断是一次有效地计数脉冲,则对该计数器的实时计数参数值进行加1操作,产生溢出时,对实时计数参数值自动重装载计数参数,并输出溢出标志信号;在数据输入输出与命令字分解存储控制模块输入的片选信号为低电平的条件下,如果读信号有效,按照16位微处理器应用系统给定的计数器的地址,直接读出该计数器的实时计数参数值经数据输入输出与命令字分解存储控制模块传输到16位微处理器应用系统的数据总线,一次能够读出16位计数器的实时计数参数,32位计数器的实时计数参数需要分时两次予以读出;在16位微处理器应用系统输出的复位信号作用下,停止所有计数器的计数操作;
所述计数器溢出标志控制模块输出16位/32位计数器的高电平为有效的溢出信号;计数处理控制模块输出的16位计数器的溢出信号由低电平变换为高电平时,存储该计数器溢出标志为高电平;如果该计数器溢出标志为高电平,清溢出标志由高电平转换为低电平,存储该计数器溢出标志为低电平;在写工作模式分频倍数编码信号的作用下,计数器溢出标志控制模块按照寄存器编号存储32位计数器工作模式的信息,封锁该32位计数器低16位的溢出信息保持为低电平;
所述输入门控选择控制模块在写工作模式分频倍数编码信号作用下,按照计数器编号存储该计数器的工作模式,根据该计数器工作模式所确定的门控功能要求和输入的门控电平,控制输入门控选择控制模块输出的门控信号。
其进一步技术方案是:所述数据输入输出与命令字分解存储控制模块包括16位双向数据选通三态门组,读写信号控制模块,计数参数寄存器,计数器编号寄存器,工作模式分频倍数编码寄存器,状态控制寄存器;
所述16位双向数据选通三态门组分别与16位微处理器应用系统、读写信号控制模块、计数参数寄存器、计数器编号寄存器,工作模式分频倍数编码寄存器,状态控制寄存器和计数处理控制模块连接;
所述读写信号控制模块还与16位微处理器应用系统、计数参数寄存器、计数器编号寄存器,工作模式分频倍数编码寄存器,状态控制寄存器、计数处理控制模块、计数器溢出标志控制模块和输入门控选择控制模块连接;
所述计数参数寄存器还与计数处理控制模块连接;
所述计数器编号寄存器还与16位微处理器应用系统、计数处理控制模块、计数器溢出标志控制模块和输入门控选择控制模块连接;
所述工作模式分频倍数编码寄存器还与16位微处理器应用系统、计数处理控制模块、计数器溢出标志控制模块和输入门控选择控制模块连接;
所述状态控制寄存器还与16位微处理器应用系统、计数处理控制模块和计数器溢出标志控制模块连接;
所述数据输入输出与命令字分解存储控制模块的读写信号控制模块在片选信号为低电平的条件下,如果写信号有效,发出16位双向数据选通三态门组写信号,选通16位微处理器应用系统数据总线的数据输入;产生写计数器编号信号,并判断输入的地址值,如果是计数器参数的地址值,将该地址值写入计数器编号寄存器,产生写计数器参数信号,将数据总线的16位数据写入计数参数寄存器;如果是计数器命令字地址,判断命令字的第15位是否为“0”,如果第15位是“0”,产生写计数器编号信号,将16位数据总线的第2位~第5位数据写入计数器编号寄存器,产生写工作模式分频倍数编码信号,将数据总线的第0位、第1位、第6位~第9位写入工作模式分频倍数编码寄存器,产生写状态控制信号,将16位数据总线的第10位、第11位和第14位写入状态控制寄存器;如果第15位是“1”,则计数器命令字是状态控制命令字,产生写计数器编号信号,将16位数据总线的第2位~第5位数据写入计数器编号寄存器,产生写状态控制信号,将数据总线的第10位、第11位和第14位写入状态控制寄存器;如果读信号有效,发出16位双向数据选通三态门组读信号,将计数处理控制模块的计数器IP核内部输出数据总线的数据传输到16位微处理器应用系统的数据总线。
其更进一步技术方案是:所述计数处理控制模块包括计数器计数控制操作模块,地址选通控制Ⅰ,16位计数参数双端口存储器,地址选通控制Ⅱ,16位计数实时参数双端口存储器,地址选通控制Ⅲ,6位工作模式分频倍数编码双端口存储器,地址选通控制Ⅳ,3位状态控制双端口存储器,6位计数滤波参数移位存储器;
所述计数器计数控制操作模块分别与脉冲200分频器、计数器溢出标志控制模块、输入门控选择控制模块、地址选通控制Ⅰ、16位计数参数双端口存储器、地址选通控制Ⅱ、16位计数实时参数双端口存储器、地址选通控制Ⅲ、6位工作模式分频倍数编码双端口存储器、地址选通控制Ⅳ、3位状态控制双端口存储器和4位计数滤波参数移位存储器,计数器IP核外部输入的计数输入信号和计数处理控制运行时钟脉冲CLKⅡ连接;
所述地址选通控制Ⅰ还与数据输入输出与命令字分解存储控制模块和16位计数参数双端口存储器连接;
所述16位计数参数双端口存储器还与数据输入输出与命令字分解存储控制模块和16位计数实时参数双端口存储器连接;
所述地址选通控制Ⅱ还与16位微处理器应用系统、数据输入输出与命令字分解存储控制模块和16位计数实时参数双端口存储器连接;
所述16位计数实时参数双端口存储器还与数据输入输出与命令字分解存储控制模块连接;
所述地址选通控制Ⅲ还与数据输入输出与命令字分解存储控制模块和6位工作模式分频倍数编码双端口存储器连接;
所述6位工作模式分频倍数编码双端口存储器还与数据输入输出与命令字分解存储控制模块连接;
所述地址选通控制Ⅳ还与数据输入输出与命令字分解存储控制模块和3位状态控制双端口存储器连接;
所述3位状态控制双端口存储器还与数据输入输出与命令字分解存储控制模块、16位微处理器应用系统的复位信号连接;如果输入的复位信号为有效的复位信号,复位3位状态控制双端口存储器,停止所有计数器的计数。
其再进一步技术方案是:所述计数器溢出标志控制模块包括非门,M0工作模式位寄存器组,溢出清零脉冲控制器,与非门Ⅰ,D触发器Ⅰ,与门Ⅰ,与非门Ⅱ,D触发器Ⅱ,与非门Ⅲ,D触发器Ⅲ,与门Ⅱ,与非门Ⅳ,D触发器Ⅳ,与非门Ⅴ,D触发器Ⅴ,与门Ⅲ,与非门Ⅵ,D触发器Ⅵ,与非门Ⅶ,D触发器Ⅶ,与门Ⅳ,与非门Ⅷ,D触发器Ⅷ,与非门Ⅸ,D触发器Ⅸ,与门Ⅴ,与非门Ⅹ,D触发器Ⅹ,与非门Ⅺ,D触发器Ⅺ,与门Ⅵ,与非门Ⅻ,D触发器Ⅻ,与非门ⅩⅢ,D触发器ⅩⅢ,与门Ⅶ,与非门ⅩⅣ,D触发器ⅩⅣ,与非门ⅩⅤ,D触发器ⅩⅤ;
所述非门的输入端与数据输入输出与命令字分解存储控制模块的状态控制寄存器的M0输出端连接,输出端与M0工作模式位寄存器组的一个输入端连接;
M0工作模式位寄存器组的另三个输入端分别与16位微处理器应用系统的复位信号输出端、数据输入输出与命令字分解存储控制模块的读写信号控制模块的写工作模式分频倍数编码信号输出端和计数器编号寄存器的计数器编号输出端连接,输出端分别与门Ⅰ、与门Ⅱ、与门Ⅲ、与门Ⅳ、与门Ⅴ、与门Ⅵ和与门Ⅶ的一个输入端连接;
溢出清零脉冲控制器的三个输入端分别与数据输入输出与命令字分解存储控制模块的读写信号控制模块的写状态控制信号输出端、状态控制寄存器的清溢出标志输出端和计数器编号寄存器的计数器编号输出端连接,输出端分别和与非门Ⅰ,与非门Ⅱ,与非门Ⅲ,与非门Ⅳ,与非门Ⅴ,与非门Ⅵ,与非门Ⅶ,与非门Ⅷ,与非门Ⅸ,与非门Ⅹ,与非门Ⅺ,与非门Ⅻ,与非门ⅩⅢ,与非门ⅩⅣ,与非门ⅩⅤ的一个输入端连接;输出端还和D触发器Ⅰ,D触发器Ⅱ,D触发器Ⅲ,D触发器Ⅳ,D触发器Ⅴ,D触发器Ⅵ,D触发器Ⅶ,D触发器Ⅷ,D触发器Ⅸ,D触发器Ⅹ,D触发器Ⅺ,D触发器Ⅻ,D触发器ⅩⅢ,D触发器ⅩⅣ和D触发器ⅩⅤ的数据输入端连接;
与非门Ⅰ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅰ的时钟信号输入端连接;
D触发器Ⅰ的数据输出端和与门Ⅰ的另一个输入端连接;
与门Ⅰ的输出端作为16位计数器0的溢出标志输出信号与16位微处理器应用系统连接;
与非门Ⅱ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅱ的时钟信号输入端连接;
D触发器Ⅱ的数据输出端作为16位计数器1/32位计数器0的溢出标志输出信号输出端与16位微处理器应用系统连接;
与非门Ⅲ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅲ的时钟信号输入端连接;
D触发器Ⅲ的数据输出端和与门Ⅱ的另一个输入端连接;
与门Ⅱ的输出端作为16位计数器2的溢出标志输出信号与16位微处理器应用系统连接;
与非门Ⅳ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅳ的时钟信号输入端连接;
D触发器Ⅳ的数据输出端作为16位计数器3/32位计数器1的溢出标志输出信号输出端与16位微处理器应用系统连接;
与非门Ⅴ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅴ的时钟信号输入端连接;
D触发器Ⅴ的数据输出端和与门Ⅲ的另一个输入端连接;
与门Ⅲ的输出端作为16位计数器4的溢出标志输出信号与16位微处理器应用系统连接;
与非门Ⅵ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅵ的时钟信号输入端连接;
D触发器Ⅵ的数据输出端作为16位计数器5/32位计数器2的溢出标志输出信号输出端与16位微处理器应用系统连接;
与非门Ⅶ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅶ的时钟信号输入端连接;
D触发器Ⅶ的数据输出端和与门Ⅳ的另一个输入端连接;
与门Ⅳ的输出端作为16位计数器6的溢出标志输出信号与16位微处理器应用系统连接;
与非门Ⅷ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅷ的时钟信号输入端连接;
D触发器Ⅷ的数据输出端作为16位计数器7/32位计数器3的溢出标志输出信号输出端与16位微处理器应用系统连接;
与非门Ⅸ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅸ的时钟信号输入端连接;
D触发器Ⅸ的数据输出端和与门Ⅴ的另一个输入端连接;
与门Ⅴ的输出端作为16位计数器8的溢出标志输出信号输出端与16位微处理器应用系统连接;
与非门Ⅹ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅹ的时钟信号输入端连接;
D触发器Ⅹ的数据输出端作为16位计数器9/32位计数器4的溢出标志输出信号输出端与16位微处理器应用系统连接;
与非门Ⅺ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅺ的时钟信号输入端连接;
D触发器Ⅺ的数据输出端和与门Ⅵ的另一个输入端连接;
与门Ⅵ的输出端作为16位计数器10的溢出标志输出信号与16位微处理器应用系统连接;
与非门Ⅻ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅻ的时钟信号输入端连接;
D触发器Ⅻ的数据输出端作为16位计数器11/32位计数器5的溢出标志输出信号输出端与16位微处理器应用系统连接;
与非门ⅩⅢ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器ⅩⅢ的时钟信号输入端连接;
D触发器ⅩⅢ的数据输出端和与门Ⅶ的另一个输入端连接;
与门Ⅶ的输出端作为16位计数器12的溢出标志输出信号输出端与16位微处理器应用系统连接;
与非门ⅩⅣ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器ⅩⅣ的时钟信号输入端连接;
D触发器ⅩⅣ的数据输出端作为16位计数器13/32位计数器6的溢出标志输出信号输出端与16位微处理器应用系统连接;
与非门ⅩⅤ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器ⅩⅤ的时钟信号输入端连接;
D触发器ⅩⅤ的数据输出端作为16位计数器14的溢出标志输出信号输出端与16位微处理器应用系统连接。
相关的另一技术方案是:一种与16位微处理器应用系统连接的计数器IP核的计数器计数控制操作的方法,它是运用本发明上述的一种与16位微处理器应用系统连接的计数器IP核的计数处理控制模块来实现计数器计数控制操作的方法;
所述计数器计数控制操作的具体步骤为:
s101:清滤波基准时钟脉冲的倍数u数组存储单元、移位v数组存储单元,计数器编号值j;
s102:滤波基准时钟脉冲下降沿触发程序执行1次;
s103:判断计数器编号值j是否等于或大于15,如果j的值等于或大于15,则进入步骤s104,否则进入s105;
s104:设置计数器编号值j=0,返回步骤s102;
s105:判断启/停信号是否等于1,如果启/停信号=1,该计数器计数工作,进入步骤s109,否则该计数器处于停止计数工作状态,进入步骤s106;
s106:判断清计数当前值是否等于0,如果清计数当前值=0,则进入步骤s107,否则进入步骤s108;
s107:清除该计数器计数存储单元的值,进入步骤s108;
s108:计数器编号值j加1,返回步骤s103;
s109:该计数器的滤波基准时钟脉冲分频倍数加1:u(j)=u(j)+1,进入步骤s110;
s110:判断该计数器工作模式,如果工作模式M1M0=10,门控16位计数器,进入步骤s111;如果工作模式M1M0=00,无门控的16位计数器,进入步骤s116;如果工作模式M1M0=01,无门控的32位计数器,进入步骤s112;如果工作模式M1M0=11,则选择门控的32位计数器,进入步骤s113;
s111:判断该16位计数器的门控信号是否为0,如果门控信号等于0则返回步骤s108,否则进入步骤s116;
s112:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s113:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s114:判断该32位计数器的门控信号是否为0,如果门控信号等于0则进入步骤s141,否则进入步骤s115;
s115:计数器编号j加2:j=j+2,返回步骤s103;
s116:判断该16位计数器的分频倍数的编码,如果分频倍数的编码为0000,进入步骤s132;如果分频倍数的编码为0001,则进入步骤s117;如果分频倍数的编码为0010,则进入步骤s118;如果分频倍数的编码为0011,则进入步骤s119;如果分频倍数的编码为0100,则进入步骤s120;如果分频倍数的编码为0101,则进入步骤s121;如果分频倍数的编码为0110,则进入步骤s122;如果分频倍数的编码为0111,则进入步骤s123;如果分频倍数的编码为1000,则进入步骤s124;如果分频倍数的编码为1001,则进入步骤s125;如果分频倍数的编码为1010,则进入步骤s126;如果分频倍数的编码为1011,则进入步骤s127;如果分频倍数的编码为1100,则进入步骤s128;如果分频倍数的编码为1101,则进入步骤s129;如果分频倍数的编码为1110,则进入步骤s130;如果分频倍数的编码为1111,则进入步骤s131;
s117:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s132,否则返回步骤s108;
s118:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于200,如果u(j)=200,则进入步骤s132,否则返回步骤s108;
s119:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于400,如果u(j)=400,则进入步骤s132,否则返回步骤s108;
s120:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于800,如果u(j)=800,则进入步骤s132,否则返回步骤s108;
s121:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s132,否则返回步骤s108;
s122:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1500,如果u(j)=1500,则进入步骤s132,否则返回步骤s108;
s123:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于2000,如果u(j)=2000,则进入步骤s132,否则返回步骤s108;
s124:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于4000,如果u(j)=4000,则进入步骤s132,否则返回步骤s108;
s125:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于8000,如果u(j)=8000,则进入步骤s132,否则返回步骤s108;
s126:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s132,否则返回步骤s108;
s127:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于15000,如果u(j)=15000,则进入步骤s132,否则返回步骤s108;
s128:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s132,否则返回步骤s108;
s129:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s132,否则返回步骤s108;
s130:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于40000,如果u(j)=40000,则进入步骤s132,否则返回步骤s108;
s131:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s132,否则返回步骤s108;
s132:设置该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s133;
s133:读入该16位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s134;
s134:判断该16位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s135,否则返回步骤s108;
s135:判断该16位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s136,否则返回步骤s108;
s136:判断该16位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s137,否则返回步骤s108;
s137:判断该16位计数器v(j)的第0位是否等于0,如果等于0,表示该16位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s138,否则返回步骤s108;
s138:读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位计数当前值存储单元,进入步骤s139;
s139:判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s140,否则返回步骤s108;
s140:重新装载该16位计数器的16位计数参数,返回步骤s108;
s141:判断该32位计数器的分频倍数的编码,如果分频倍数的编码为0000,进入步骤s157;如果分频倍数的编码为0001,则进入步骤s142;如果分频倍数的编码为0010,则进入步骤s143;如果分频倍数的编码为0011,则进入步骤s144;如果分频倍数的编码为0100,则进入步骤s145;如果分频倍数的编码为0101,则进入步骤s146;如果分频倍数的编码为0110,则进入步骤s147;如果分频倍数的编码为0111,则进入步骤s148;如果分频倍数的编码为1000,则进入步骤s149;如果分频倍数的编码为1001,则进入步骤s150;如果分频倍数的编码为1010,则进入步骤s151;如果分频倍数的编码为1011,则进入步骤s152;如果分频倍数的编码为1100,则进入步骤s153;如果分频倍数的编码为1101,则进入步骤s154;如果分频倍数的编码为1110,则进入步骤s155;如果分频倍数的编码为1111,则进入步骤s156;
s142:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s157,否则返回步骤s115;
s143:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于200,如果u(j)=200,则进入步骤s157,否则返回步骤s115;
s144:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于400,如果u(j)=400,则进入步骤s157,否则返回步骤s115;
s145:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于800,如果u(j)=800,则进入步骤s157,否则返回步骤s115;
s146:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s157,否则返回步骤s115;
s147:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1500,如果u(j)=1500,则进入步骤s157,否则返回步骤s115;
s148:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于2000,如果u(j)=2000,则进入步骤s157,否则返回步骤s115;
s149:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于4000,如果u(j)=4000,则进入步骤s157,否则返回步骤s115;
s150:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于8000,如果u(j)=8000,则进入步骤s157,否则返回步骤s115;
s151:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s157,否则返回步骤s115;
s152:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于15000,如果u(j)=15000,则进入步骤s157,否则返回步骤s115;
s153:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s157,否则返回步骤s115;
s154:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s157,否则返回步骤s115;
s155:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于40000,如果u(j)=40000,则进入步骤s157,否则返回步骤s115;
s156:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s157,否则返回步骤s115;
s157:设置该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s158;
s158:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s159;
s159:判断该32位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s160,否则返回步骤s115;
s160:判断该32位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s161,否则返回步骤s115;
s161:判断该32位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s162,否则返回步骤s115;
s162:判断该32位计数器v(j)的第0位是否等于0,如果等于0,表示该32位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s163,否则返回步骤s115;
s163:读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32位计数当前值存储单元,进入步骤s164;
s164:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s165,否则返回步骤s115;
s165:重新装载该32位计数器的32位计数参数,返回步骤s115。
相关的另一技术方案或是:一种与16位微处理器应用系统连接的计数器IP核的计数器计数控制操作的方法,它是运用本发明上述的一种与16位微处理器应用系统连接的计数器IP核的计数处理控制模块来实现计数器计数控制操作的另一种方法;
所述计数处理控制模块的计数器计数控制操作的具体步骤为:
s101:清滤波基准时钟脉冲的倍数u数组存储单元、移位v数组存储单元,计数器编号值j;
s102:滤波基准时钟脉冲下降沿触发程序执行1次;
s103:判断计数器编号值j是否等于或大于15,如果j的值等于或大于15,则进入步骤s104,否则进入s105;
s104:设置计数器编号值j=0,返回步骤s102;
s105:判断启/停信号是否等于1,如果启/停信号=1,该计数器计数工作,进入步骤s109,否则该计数器处于停止计数工作状态,进入步骤s106;
s106:判断清计数当前值是否等于0,如果清计数当前值=0,则进入步骤s107,否则进入步骤s108;
s107:清除该计数器计数存储单元的值,进入步骤s108;
s108:计数器编号值j加1,返回步骤s103;
s109:该计数器的滤波基准时钟脉冲分频倍数加1:u(j)=u(j)+1,进入步骤s110;
s110:判断该计数器工作模式,如果工作模式M1M0=10,门控16位计数器,进入步骤s111;如果工作模式M1M0=00,无门控的16位计数器,进入步骤s116;如果工作模式M1M0=01,无门控的32位计数器,进入步骤s112;如果工作模式M1M0=11,则选择门控的32位计数器,进入步骤s113;
s111:判断该16位计数器的门控信号是否为0,如果门控信号等于0则返回步骤s108,否则进入步骤s116;
s112:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s113:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s114:判断该32位计数器的门控信号是否为0,如果门控信号等于0则进入步骤s141,否则进入步骤s115;
s115:计数器编号j加2:j=j+2,返回步骤s103;
s116:判断该16位计数器的分频倍数的编码,如果分频倍数的编码为000,进入步骤s132;如果分频倍数的编码为001,则进入步骤s117;如果分频倍数的编码为010,则进入步骤s118;如果分频倍数的编码为011,则进入步骤s119;如果分频倍数的编码为100,则进入步骤s120;如果分频倍数的编码为101,则进入步骤s121;如果分频倍数的编码为110,则进入步骤s122;如果分频倍数的编码为111,则进入步骤s123;
s117:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于500,如果u(j)=500,则进入步骤s132,否则返回步骤s108;
s118:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s132,否则返回步骤s108;
s119:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于5000,如果u(j)=5000,则进入步骤s132,否则返回步骤s108;
s120:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s132,否则返回步骤s108;
s121:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s132,否则返回步骤s108;
s122:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s132,否则返回步骤s108;
s123:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s132,否则返回步骤s108;
s132:设置该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s133;
s133:读入该16位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s134;
s134:判断该16位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s135,否则返回步骤s108;
s135:判断该16位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s136,否则返回步骤s108;
s136:判断该16位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s137,否则返回步骤s108;
s137:判断该16位计数器v(j)的第0位是否等于0,如果等于0,表示该16位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s138,否则返回步骤s108;
s138:读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位计数当前值存储单元,进入步骤s139;
s139:判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s140,否则返回步骤s108;
s140:重新装载该16位计数器的16位计数参数,返回步骤s108;
s141:判断该32位计数器的分频倍数的编码,如果分频倍数的编码为000,进入步骤s157;如果分频倍数的编码为001,则进入步骤s142;如果分频倍数的编码为010,则进入步骤s143;如果分频倍数的编码为011,则进入步骤s144;如果分频倍数的编码为100,则进入步骤s145;如果分频倍数的编码为101,则进入步骤s146;如果分频倍数的编码为110,则进入步骤s147;如果分频倍数的编码为111,则进入步骤s148;
s142:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于500,如果u(j)=500,则进入步骤s157,否则返回步骤s115;
s143:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s157,否则返回步骤s115;
s144:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于5000,如果u(j)=5000,则进入步骤s157,否则返回步骤s115;
s145:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s157,否则返回步骤s115;
s146:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s157,否则返回步骤s115;
s147:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s157,否则返回步骤s115;
s148:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s157,否则返回步骤s115;
s157:设置该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s158;
s158:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s159;
s159:判断该32位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s160,否则返回步骤s115;
s160:判断该32位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s161,否则返回步骤s115;
s161:判断该32位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s162,否则返回步骤s115;
s162:判断该32位计数器v(j)的第0位是否等于0,如果等于0,表示该32位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s163,否则返回步骤s115;
s163:读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32位计数当前值存储单元,进入步骤s164;
s164:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s165,否则返回步骤s115;
s165:重新装载该32位计数器的32位计数参数,返回步骤s115。
由于采用以上结构,本发明之一种与16位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法具有以下有益效果:
1.与16位微处理器应用系统连接,编程控制便利
本发明的计数器IP核可以直接与16位微处理器应用系统连接,对计数器IP核中的每个计数器进行功能设置时,16位微处理器只需要向计数器IP核发送1个命令字即可确定该计数器的工作模式,滤波基准时钟脉冲分频倍数,启动该计数器的计数工作,以及是否清该计数器的溢出标志和是否清计数当前值;16位微处理器还能够专门发送状态控制命令,状态控制命令只对是否启动/停止计数工作,清溢出标志和清计数当前值进行设置;对于一个32位计数器,需要分两次传输32位计数参数;16位微处理器还可以按照计数器的地址直接读出该计数器的实时计数值,编程控制计数器便利。
2.适合数量众多计数器计数与计数控制的系统需求
本发明的计数器IP核内部有15个16位计数器,根据计数应用的需要设置命令字可以将2个16位计数器组成32位计数器,最多能够设置组成7个32位计数器,每个计数器能够选择设置十六种滤波基准时钟脉冲的分频倍数;计数时间到产生计数溢出信号时,本发明的计数器IP核能够自动重新装载计数参数,能够满足数量众多计数器计数与计数控制的系统需求。
3.FPGA并行处理计数,计数器IP核性价比高
本发明除16位微处理器对计数器进行功能设置、计数参数传输、软件清计数溢出标志,读出计数当前值,以及需要清计数当前值的操作之外,将不占用16位微处理器的程序执行时间;本发明应用FPGA设计硬连接电路组成的计数器IP核能够与16位微处理器应用系统连接,每一个计数器能够单独的选择时钟基准,能够自动重新装载计数参数,占用16位微处理器的程序执行的时间大为减少,将其用于开发数量众多计数器计数与计数控制的系统,可获很高的性价比。
下面结合附图和实施例对本发明之一种与16位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法的技术特征作进一步的说明。
附图说明
图1:本发明之一种与16位微处理器应用系统连接的计数器IP核的电路结构框图;
图2:本发明之一种与16位微处理器应用系统连接的计数器IP核的封装图;
图3:本发明之一种与16位微处理器应用系统连接的计数器IP核的数据输入输出与命令字分解存储控制模块的电路框图;
图4:本发明之一种与16位微处理器应用系统连接的计数器IP核的的计数处理控制模块的电路框图;
图5:本发明之一种与16位微处理器应用系统连接的计数器IP核的计数器溢出标志控制模块的电路框图;
图6_1~图6_3:本发明实施例一之一种与16位微处理器应用系统连接的计数器IP核的计数器计数控制操作程序流程图;
图7_1~图7_3:本发明实施例二之一种与16位微处理器应用系统连接的计数器IP核的计数器计数控制操作程序流程图。
图中:
Ⅰ—16位微处理器应用系统,Ⅱ—数据输入输出与命令字分解存储控制模块,Ⅲ—脉冲200分频器,Ⅳ—计数处理控制模块,Ⅴ—计数器溢出标志控制模块,Ⅵ—输入门控选择控制模块;
1—16位双向数据选通三态门组,2—读写信号控制模块,3—计数参数寄存器,4—计数器编号寄存器,5—工作模式分频倍数编码寄存器,6—状态控制寄存器,7—非门,8—M0工作模式位寄存器组,9—溢出清零脉冲控制器,10—与非门Ⅰ,11—D触发器Ⅰ,12—与门Ⅰ,13—与非门Ⅱ,14—D触发器Ⅱ,15—与非门Ⅲ,16—D触发器Ⅲ,17—与门Ⅱ,18—与非门Ⅳ,19—D触发器Ⅳ,20—与非门Ⅴ,21—D触发器Ⅴ,22—与门Ⅲ,23—与非门Ⅵ,24—D触发器Ⅵ,25—与非门Ⅶ,26—D触发器Ⅶ,27—与门Ⅳ,28—与非门Ⅷ,29—D触发器Ⅷ,30—与非门Ⅸ,31—D触发器Ⅸ,32—与门Ⅴ,33—与非门Ⅹ,34—D触发器Ⅹ,35—与非门Ⅺ,36—D触发器Ⅺ,37—与门Ⅵ,38—与非门Ⅻ,39—D触发器Ⅻ,40—与非门ⅩⅢ,41—D触发器ⅩⅢ,42—与门Ⅶ,43—与非门ⅩⅣ,44—D触发器ⅩⅣ,45—与非门ⅩⅤ,46—D触发器ⅩⅤ,47—计数器控制操作模块,48—地址选通控制Ⅰ,49—16位计数参数双端口存储器,50—地址选通控制Ⅱ,51—16位计数实时参数双端口存储器,52—地址选通控制Ⅲ,53—6位工作模式分频倍数编码双端口存储器,54—地址选通控制Ⅳ,55—3位状态控制双端口存储器;56—4位计数滤波参数移位存储器。
文中缩略语说明:
FPGA-FieldProgrammableGateArray,现场可编程门阵列;
RD-Read信号,读信号;
CS-ChipSelect信号,片选信号;
WR-Write,写信号;
RST-Reset,复位信号;
AB-AddressBus,地址总线;
DB-DataBus,数据总线;
CLK-Clockpulse,时钟脉冲;
TF-计数时间到的溢出标志输出信号;
GATE-门控输入信号;
M0-16/32位计数器编码,M0为“0”,16位计数器;M0为“1”,32位计数器;
M1-门控方式编码,M1为“0”,无门控输入信号控制计数器;M1为“1”,门控输入信号控制计数器;
DB_1-计数器IP核内部输入数据总线;
DB_2-计数器IP核内部输出数据总线;
RD_1-16位双向数据选通三态门组读信号;
RD_2-实时计数值读信号;
WR_1-16位双向数据选通三态门组写信号;
WR_2-写工作模式分频倍数编码信号;
WR_3-写状态控制信号;
WR_4-写计数器参数信号;
WR_5-写计数器编号信号;
CLKⅠ-时钟脉冲;
CLKⅡ-计数处理控制运行时钟脉冲;
S0、S1、S2-第0位、第1位、第2位计数器编号值;
S3-第3位计数器编号值;
GATE0~13-16位计数器0~13的门控输入信号,其中GATE1、GATE3、GATE5、GATE8、GATE10、GATE12分别对应32位计数器0~5的门控输入信号;
TF0~13-16位计数器0~13的计数时间到的溢出标志输出信号,其中TF1、TF3、TF5、TF8、TF10、TF12分别对应32位计数器0~5的计数时间到的溢出标志输出信号;
D触发器-Dataflip-flop;
D-Datainput,D触发器数据输入端;
Q-Dataoutput,D触发器数据输出端;
CP-ClockPulseinput,时钟信号输入端。
具体实施方式
实施例一:
一种与16位微处理器应用系统连接的计数器IP核
如图1所示,该计数器IP核包括数据输入输出与命令字分解存储控制模块Ⅱ,脉冲200分频器Ⅲ,计数处理控制模块Ⅳ,计数器溢出标志控制模块Ⅴ,输入门控选择控制模块Ⅵ;
所述数据输入输出与命令字分解存储控制模块Ⅱ与16位微处理器应用系统Ⅰ、计数处理控制模块Ⅳ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;
所述脉冲200分频器Ⅲ还与16位微处理器应用系统Ⅰ和计数处理控制模块Ⅳ连接;
所述计数处理控制模块Ⅳ还与16位微处理器应用系统Ⅰ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;
所述数据输入输出与命令字分解存储控制模块Ⅱ在输入的片选信号为低电平的条件下,如果写信号有效,按照16位微处理器应用系统Ⅰ给定的计数器或计数器命令字的地址,获得计数器运行的工作模式分频倍数编码命令字,状态控制命令字,16位计数器或32位计数器的计数参数,并按照计数参数、计数器编号、工作模式分频倍数编码和状态控制分别予以存储和输出,还输出写工作模式分频倍数编码信号、写状态控制信号和写计数器参数信号;如果读信号有效向16位微处理器应用系统Ⅰ传输计数器实时计数值;
所述脉冲200分频器Ⅲ对16位微处理器应用系统Ⅰ的时钟脉冲进行分频,其输出作为计数处理控制模块Ⅳ的计数器计数控制操作的滤波基准时钟脉冲;
所述计数处理控制模块Ⅳ在写工作模式分频倍数编码信号的作用下,按照计数器编号存储该计数器的工作模式,滤波基准时钟分频倍数的编码值;在写状态控制信号的作用下,按照计数器编号存储该计数器的状态控制信号;在写计数器参数信号的作用下,按照计数器编号存储该计数器的计数参数;所述计数处理控制模块Ⅳ在计数器IP核外部输入的计数处理控制运行时钟脉冲CLKⅡ的作用下,控制计数处理控制模块Ⅳ的运行,按照脉冲200分频器Ⅲ输出的一个滤波基准时钟脉冲周期完成所有已启动计数器的一次处理,包括每个计数器的状态控制处理,工作模式的判断处理,当滤波基准时钟的个数达到一个16位/32位计数器所设置的滤波基准时钟倍数值时,从计数器IP核外部读入该计数器的计数输入信号,进行一次滤波处理,如果判断是一次有效地计数脉冲,则对该计数器的实时计数参数值进行加1操作,产生溢出时,对实时计数参数值自动重装载计数参数,并输出溢出标志信号;在数据输入输出与命令字分解存储控制模块Ⅱ输入的片选信号为低电平的条件下,如果读信号有效,按照16位微处理器应用系统Ⅰ给定的计数器的地址,直接读出该计数器的实时计数参数值经数据输入输出与命令字分解存储控制模块Ⅱ传输到16位微处理器应用系统Ⅰ的数据总线,一次能够读出16位计数器的实时计数参数,32位计数器的实时计数参数需要分时两次予以读出;在16位微处理器应用系统Ⅰ输出的复位信号作用下,停止所有计数器的计数操作;
所述计数器溢出标志控制模块Ⅴ输出16位/32位计数器的高电平为有效的溢出信号;计数处理控制模块Ⅳ输出的16位计数器的溢出信号由低电平变换为高电平时,存储该计数器溢出标志为高电平;如果该计数器溢出标志为高电平,清溢出标志由高电平转换为低电平,存储该计数器溢出标志为低电平;在写工作模式分频倍数编码信号的作用下,计数器溢出标志控制模块Ⅴ按照寄存器编号存储32位计数器工作模式的信息,封锁该32位计数器低16位的溢出信息保持为低电平;
所述输入门控选择控制模块Ⅵ在写工作模式分频倍数编码信号作用下,按照计数器编号存储该计数器的工作模式,根据该计数器工作模式所确定的门控功能要求和输入的门控电平,控制输入门控选择控制模块Ⅵ输出的门控信号。
如图3所示,所述数据输入输出与命令字分解存储控制模块Ⅱ包括16位双向数据选通三态门组1,读写信号控制模块2,计数参数寄存器3,计数器编号寄存器4,工作模式分频倍数编码寄存器5,状态控制寄存器6;
所述16位双向数据选通三态门组1分别与16位微处理器应用系统Ⅰ、读写信号控制模块2、计数参数寄存器3、计数器编号寄存器4,工作模式分频倍数编码寄存器5,状态控制寄存器6和计数处理控制模块Ⅳ连接;
所述读写信号控制模块2还与16位微处理器应用系统Ⅰ、计数参数寄存器3、计数器编号寄存器4,工作模式分频倍数编码寄存器5,状态控制寄存器6、计数处理控制模块Ⅳ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;
所述计数参数寄存器3还与计数处理控制模块Ⅳ连接;
所述计数器编号寄存器4还与16位微处理器应用系统Ⅰ、计数处理控制模块Ⅳ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;
所述工作模式分频倍数编码寄存器5还与16位微处理器应用系统Ⅰ、计数处理控制模块Ⅳ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;
所述状态控制寄存器6还与16位微处理器应用系统Ⅰ、计数处理控制模块Ⅳ和计数器溢出标志控制模块Ⅴ连接;
所述数据输入输出与命令字分解存储控制模块Ⅱ的读写信号控制模块2在片选信号为低电平的条件下,如果写信号有效,发出16位双向数据选通三态门组1写信号,选通16位微处理器应用系统Ⅰ数据总线的数据输入;产生写计数器编号信号,并判断输入的地址值,如果是计数器参数的地址值,将该地址值写入计数器编号寄存器4,产生写计数器参数信号,将数据总线的16位数据写入计数参数寄存器3;如果是计数器命令字地址,判断命令字的第15位是否为“0”,如果第15位是“0”,产生写计数器编号信号,将16位数据总线的第2位~第5位数据写入计数器编号寄存器4,产生写工作模式分频倍数编码信号,将数据总线的第0位、第1位、第6位~第9位写入工作模式分频倍数编码寄存器5,产生写状态控制信号,将16位数据总线的第10位、第11位和第14位写入状态控制寄存器6;如果第15位是“1”,则计数器命令字是状态控制命令字,产生写计数器编号信号,将16位数据总线的第2位~第5位数据写入计数器编号寄存器4,产生写状态控制信号,将数据总线的第10位、第11位和第14位写入状态控制寄存器6;如果读信号有效,发出16位双向数据选通三态门组1读信号,将计数处理控制模块Ⅳ的计数器IP核内部输出数据总线的数据传输到16位微处理器应用系统Ⅰ的数据总线。
如图4所示,所述计数处理控制模块Ⅳ包括计数器计数控制操作模块47,地址选通控制Ⅰ48,16位计数参数双端口存储器49,地址选通控制Ⅱ50,16位计数实时参数双端口存储器51,地址选通控制Ⅲ52,6位工作模式分频倍数编码双端口存储器53,地址选通控制Ⅳ54,3位状态控制双端口存储器55,6位计数滤波参数移位存储器56;
所述计数器计数控制操作模块47分别与脉冲200分频器Ⅲ、计数器溢出标志控制模块Ⅴ、输入门控选择控制模块Ⅵ、地址选通控制Ⅰ48、16位计数参数双端口存储器49、地址选通控制Ⅱ50、16位计数实时参数双端口存储器51、地址选通控制Ⅲ52、6位工作模式分频倍数编码双端口存储器53、地址选通控制Ⅳ54、3位状态控制双端口存储器55和,4位计数滤波参数移位存储器56,计数器IP核外部输入的计数输入信号和计数处理控制运行时钟脉冲CLKⅡ连接;
所述地址选通控制Ⅰ48还与数据输入输出与命令字分解存储控制模块Ⅱ和16位计数参数双端口存储器49连接;
所述16位计数参数双端口存储器49还与数据输入输出与命令字分解存储控制模块Ⅱ和16位计数实时参数双端口存储器51连接;
所述地址选通控制Ⅱ50还与16位微处理器应用系统Ⅰ、数据输入输出与命令字分解存储控制模块Ⅱ和16位计数实时参数双端口存储器51连接;
所述16位计数实时参数双端口存储器51还与数据输入输出与命令字分解存储控制模块Ⅱ连接;
所述地址选通控制Ⅲ52还与数据输入输出与命令字分解存储控制模块Ⅱ和6位工作模式分频倍数编码双端口存储器53连接;
所述6位工作模式分频倍数编码双端口存储器53还与数据输入输出与命令字分解存储控制模块Ⅱ连接;
所述地址选通控制Ⅳ54还与数据输入输出与命令字分解存储控制模块Ⅱ和3位状态控制双端口存储器55连接;
所述3位状态控制双端口存储器55还与数据输入输出与命令字分解存储控制模块Ⅱ、16位微处理器应用系统Ⅰ的复位信号连接;如果输入的复位信号为有效的复位信号,复位3位状态控制双端口存储器55,停止所有计数器的计数。
如图5所示,所述计数器溢出标志控制模块Ⅴ包括非门7,M0工作模式位寄存器组8,溢出清零脉冲控制器9,与非门Ⅰ10,D触发器Ⅰ11,与门Ⅰ12,与非门Ⅱ13,D触发器Ⅱ14,与非门Ⅲ15,D触发器Ⅲ16,与门Ⅱ17,与非门Ⅳ18,D触发器Ⅳ19,与非门Ⅴ20,D触发器Ⅴ21,与门Ⅲ22,与非门Ⅵ23,D触发器Ⅵ24,与非门Ⅶ25,D触发器Ⅶ26,与门Ⅳ27,与非门Ⅷ28,D触发器Ⅷ29,与非门Ⅸ30,D触发器Ⅸ31,与门Ⅴ32,与非门Ⅹ33,D触发器Ⅹ34,与非门Ⅺ35,D触发器Ⅺ36,与门Ⅵ37,与非门Ⅻ38,D触发器Ⅻ39,与非门ⅩⅢ40,D触发器ⅩⅢ41,与门Ⅶ42,与非门ⅩⅣ43,D触发器ⅩⅣ44,与非门ⅩⅤ45,D触发器ⅩⅤ46;
所述非门7的输入端与数据输入输出与命令字分解存储控制模块Ⅱ的状态控制寄存器6的M0输出端连接,输出端与M0工作模式位寄存器组8的一个输入端连接;
M0工作模式位寄存器组8的另三个输入端分别与16位微处理器应用系统Ⅰ的复位信号输出端、数据输入输出与命令字分解存储控制模块Ⅱ的读写信号控制模块2的写工作模式分频倍数编码信号输出端和计数器编号寄存器4的计数器编号输出端连接,输出端分别与门Ⅰ12、与门Ⅱ17、与门Ⅲ22、与门Ⅳ27、与门Ⅴ32、与门Ⅵ37和与门Ⅶ42的一个输入端连接;
溢出清零脉冲控制器9的三个输入端分别与数据输入输出与命令字分解存储控制模块Ⅱ的读写信号控制模块2的写状态控制信号输出端、状态控制寄存器6的清溢出标志输出端和计数器编号寄存器4的计数器编号输出端连接,输出端分别和与非门Ⅰ10,与非门Ⅱ13,与非门Ⅲ15,与非门Ⅳ18,与非门Ⅴ20,与非门Ⅵ23,与非门Ⅶ25,与非门Ⅷ28,与非门Ⅸ30,与非门Ⅹ33,与非门Ⅺ35,与非门Ⅻ38,与非门ⅩⅢ40,与非门ⅩⅣ43,与非门ⅩⅤ45的一个输入端连接;输出端还和D触发器Ⅰ11,D触发器Ⅱ14,D触发器Ⅲ16,D触发器Ⅳ19,D触发器Ⅴ21,D触发器Ⅵ24,D触发器Ⅶ26,D触发器Ⅷ29,D触发器Ⅸ31,D触发器Ⅹ34,D触发器Ⅺ36,D触发器Ⅻ39,D触发器ⅩⅢ41,D触发器ⅩⅣ44和D触发器ⅩⅤ46的数据输入端连接;
与非门Ⅰ10的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅰ11的时钟信号输入端连接;
D触发器Ⅰ11的数据输出端和与门Ⅰ12的另一个输入端连接;
与门Ⅰ12的输出端作为16位计数器0的溢出标志输出信号与16位微处理器应用系统Ⅰ连接;
与非门Ⅱ13的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅱ14的时钟信号输入端连接;
D触发器Ⅱ14的数据输出端作为16位计数器1/32位计数器0的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接;
与非门Ⅲ15的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅲ16的时钟信号输入端连接;
D触发器Ⅲ16的数据输出端和与门Ⅱ17的另一个输入端连接;
与门Ⅱ17的输出端作为16位计数器2的溢出标志输出信号与16位微处理器应用系统Ⅰ连接;
与非门Ⅳ18的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅳ19的时钟信号输入端连接;
D触发器Ⅳ19的数据输出端作为16位计数器3/32位计数器1的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接;
与非门Ⅴ20的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅴ21的时钟信号输入端连接;
D触发器Ⅴ21的数据输出端和与门Ⅲ22的另一个输入端连接;
与门Ⅲ22的输出端作为16位计数器4的溢出标志输出信号与16位微处理器应用系统Ⅰ连接;
与非门Ⅵ23的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅵ24的时钟信号输入端连接;
D触发器Ⅵ24的数据输出端作为16位计数器5/32位计数器2的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接;
与非门Ⅶ25的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅶ26的时钟信号输入端连接;
D触发器Ⅶ26的数据输出端和与门Ⅳ27的另一个输入端连接;
与门Ⅳ27的输出端作为16位计数器6的溢出标志输出信号与16位微处理器应用系统Ⅰ连接;
与非门Ⅷ28的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅷ29的时钟信号输入端连接;
D触发器Ⅷ29的数据输出端作为16位计数器7/32位计数器3的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接;
与非门Ⅸ30的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅸ31的时钟信号输入端连接;
D触发器Ⅸ31的数据输出端和与门Ⅴ32的另一个输入端连接;
与门Ⅴ32的输出端作为16位计数器8的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接;
与非门Ⅹ33的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅹ34的时钟信号输入端连接;
D触发器Ⅹ34的数据输出端作为16位计数器9/32位计数器4的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接;
与非门Ⅺ35的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅺ36的时钟信号输入端连接;
D触发器Ⅺ36的数据输出端和与门Ⅵ37的另一个输入端连接;
与门Ⅵ37的输出端作为16位计数器10的溢出标志输出信号与16位微处理器应用系统Ⅰ连接;
与非门Ⅻ38的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅻ39的时钟信号输入端连接;
D触发器Ⅻ39的数据输出端作为16位计数器11/32位计数器5的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接;
与非门ⅩⅢ40的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器ⅩⅢ41的时钟信号输入端连接;
D触发器ⅩⅢ41的数据输出端和与门Ⅶ42的另一个输入端连接;
与门Ⅶ42的输出端作为16位计数器12的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接;
与非门ⅩⅣ43的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器ⅩⅣ44的时钟信号输入端连接;
D触发器ⅩⅣ44的数据输出端作为16位计数器13/32位计数器6的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接;
与非门ⅩⅤ45的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器ⅩⅤ46的时钟信号输入端连接;
D触发器ⅩⅤ46的数据输出端作为16位计数器14的溢出标志输出信号输出端与16位微处理器应用系统Ⅰ连接。
该计数器IP核有74个引脚,其封装图参见图2;
计数器与命令地址编码参见附表一《实施例一之与16位微处理器应用系统连接的计数器IP核的计数器与命令地址编码表》;
计数器命令字参见附表二:《实施例一之与16位微处理器应用系统连接的计数器IP核的计数器命令字》。
该与16位微处理器应用系统连接的计数器IP核用于实现计数器计数控制操作的方法之程序流程图参见图6-1~图6-3;其具体步骤为:
s101:清滤波基准时钟脉冲的倍数u数组存储单元、移位v数组存储单元,计数器编号值j;
s102:滤波基准时钟脉冲下降沿触发程序执行1次;
s103:判断计数器编号值j是否等于或大于15,如果j的值等于或大于15,则进入步骤s104,否则进入s105;
s104:设置计数器编号值j=0,返回步骤s102;
s105:判断启/停信号是否等于1,如果启/停信号=1,该计数器计数工作,进入步骤s109,否则该计数器处于停止计数工作状态,进入步骤s106;
s106:判断清计数当前值是否等于0,如果清计数当前值=0,则进入步骤s107,否则进入步骤s108;
s107:清除该计数器计数存储单元的值,进入步骤s108;
s108:计数器编号值j加1,返回步骤s103;
s109:该计数器的滤波基准时钟脉冲分频倍数加1:u(j)=u(j)+1,进入步骤s110;
s110:判断该计数器工作模式,如果工作模式M1M0=10,门控16位计数器,进入步骤s111;如果工作模式M1M0=00,无门控的16位计数器,进入步骤s116;如果工作模式M1M0=01,无门控的32位计数器,进入步骤s112;如果工作模式M1M0=11,则选择门控的32位计数器,进入步骤s113;
s111:判断该16位计数器的门控信号是否为0,如果门控信号等于0则返回步骤s108,否则进入步骤s116;
s112:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s113:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s114:判断该32位计数器的门控信号是否为0,如果门控信号等于0则进入步骤s141,否则进入步骤s115;
s115:计数器编号j加2:j=j+2,返回步骤s103;
s116:判断该16位计数器的分频倍数的编码,如果分频倍数的编码为0000,进入步骤s132;如果分频倍数的编码为0001,则进入步骤s117;如果分频倍数的编码为0010,则进入步骤s118;如果分频倍数的编码为0011,则进入步骤s119;如果分频倍数的编码为0100,则进入步骤s120;如果分频倍数的编码为0101,则进入步骤s121;如果分频倍数的编码为0110,则进入步骤s122;如果分频倍数的编码为0111,则进入步骤s123;如果分频倍数的编码为1000,则进入步骤s124;如果分频倍数的编码为1001,则进入步骤s125;如果分频倍数的编码为1010,则进入步骤s126;如果分频倍数的编码为1011,则进入步骤s127;如果分频倍数的编码为1100,则进入步骤s128;如果分频倍数的编码为1101,则进入步骤s129;如果分频倍数的编码为1110,则进入步骤s130;如果分频倍数的编码为1111,则进入步骤s131;
s117:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s132,否则返回步骤s108;
s118:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于200,如果u(j)=200,则进入步骤s132,否则返回步骤s108;
s119:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于400,如果u(j)=400,则进入步骤s132,否则返回步骤s108;
s120:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于800,如果u(j)=800,则进入步骤s132,否则返回步骤s108;
s121:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s132,否则返回步骤s108;
s122:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1500,如果u(j)=1500,则进入步骤s132,否则返回步骤s108;
s123:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于2000,如果u(j)=2000,则进入步骤s132,否则返回步骤s108;
s124:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于4000,如果u(j)=4000,则进入步骤s132,否则返回步骤s108;
s125:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于8000,如果u(j)=8000,则进入步骤s132,否则返回步骤s108;
s126:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s132,否则返回步骤s108;
s127:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于15000,如果u(j)=15000,则进入步骤s132,否则返回步骤s108;
s128:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s132,否则返回步骤s108;
s129:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s132,否则返回步骤s108;
s130:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于40000,如果u(j)=40000,则进入步骤s132,否则返回步骤s108;
s131:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s132,否则返回步骤s108;
s132:设置该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s133;
s133:读入该16位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s134;
s134:判断该16位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s135,否则返回步骤s108;
s135:判断该16位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s136,否则返回步骤s108;
s136:判断该16位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s137,否则返回步骤s108;
s137:判断该16位计数器v(j)的第0位是否等于0,如果等于0,表示该16位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s138,否则返回步骤s108;
s138:读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位计数当前值存储单元,进入步骤s139;
s139:判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s140,否则返回步骤s108;
s140:重新装载该16位计数器的16位计数参数,返回步骤s108;
s141:判断该32位计数器的分频倍数的编码,如果分频倍数的编码为0000,进入步骤s157;如果分频倍数的编码为0001,则进入步骤s142;如果分频倍数的编码为0010,则进入步骤s143;如果分频倍数的编码为0011,则进入步骤s144;如果分频倍数的编码为0100,则进入步骤s145;如果分频倍数的编码为0101,则进入步骤s146;如果分频倍数的编码为0110,则进入步骤s147;如果分频倍数的编码为0111,则进入步骤s148;如果分频倍数的编码为1000,则进入步骤s149;如果分频倍数的编码为1001,则进入步骤s150;如果分频倍数的编码为1010,则进入步骤s151;如果分频倍数的编码为1011,则进入步骤s152;如果分频倍数的编码为1100,则进入步骤s153;如果分频倍数的编码为1101,则进入步骤s154;如果分频倍数的编码为1110,则进入步骤s155;如果分频倍数的编码为1111,则进入步骤s156;
s142:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s157,否则返回步骤s115;
s143:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于200,如果u(j)=200,则进入步骤s157,否则返回步骤s115;
s144:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于400,如果u(j)=400,则进入步骤s157,否则返回步骤s115;
s145:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于800,如果u(j)=800,则进入步骤s157,否则返回步骤s115;
s146:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s157,否则返回步骤s115;
s147:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1500,如果u(j)=1500,则进入步骤s157,否则返回步骤s115;
s148:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于2000,如果u(j)=2000,则进入步骤s157,否则返回步骤s115;
s149:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于4000,如果u(j)=4000,则进入步骤s157,否则返回步骤s115;
s150:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于8000,如果u(j)=8000,则进入步骤s157,否则返回步骤s115;
s151:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s157,否则返回步骤s115;
s152:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于15000,如果u(j)=15000,则进入步骤s157,否则返回步骤s115;
s153:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s157,否则返回步骤s115;
s154:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s157,否则返回步骤s115;
s155:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于40000,如果u(j)=40000,则进入步骤s157,否则返回步骤s115;
s156:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s157,否则返回步骤s115;
s157:设置该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s158;
s158:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s159;
s159:判断该32位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s160,否则返回步骤s115;
s160:判断该32位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s161,否则返回步骤s115;
s161:判断该32位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s162,否则返回步骤s115;
s162:判断该32位计数器v(j)的第0位是否等于0,如果等于0,表示该32位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s163,否则返回步骤s115;
s163:读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32位计数当前值存储单元,进入步骤s164;
s164:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s165,否则返回步骤s115;
s165:重新装载该32位计数器的32位计数参数,返回步骤s115。
实施例二:
一种与16位微处理器应用系统连接的计数器IP核,该计数器IP核的每个计数器将实施例一的能够选择设置十六种滤波基准时钟脉冲的分频倍数变换为每个计数器能够选择设置八种滤波基准时钟脉冲的分频倍数,其基本结构同实施例一,所不同之处在于:其变换后的分频倍数以及计数器计数控制操作程序流程不同;
其变换后的分频倍数设置参见附表三:《实施例二与16位微处理器应用系统连接的计数器IP核的计数器命令字》;实施例一的图6_1~6_3计数器计数控制操作程序流程图变换为图7_1~7_3的计数器计数控制操作程序流程图,图6_1中的计数处理控制模块Ⅳ的计数器计数控制操作的s116变换为图7_1中的计数器计数控制操作的具体步骤s116:
s116:判断该16位计数器的分频倍数的编码,如果分频倍数的编码为000,进入步骤s132;如果分频倍数的编码为001,则进入步骤s117;如果分频倍数的编码为010,则进入步骤s118;如果分频倍数的编码为011,则进入步骤s119;如果分频倍数的编码为100,则进入步骤s120;如果分频倍数的编码为101,则进入步骤s121;如果分频倍数的编码为110,则进入步骤s122;如果分频倍数的编码为111,则进入步骤s123;
删除图6_1中的步骤s124~s131;步骤s117~s123变换为图7_1中的步骤s117~s123:
s117:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于500,如果u(j)=500,则进入步骤s132,否则返回步骤s108;
s118:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s132,否则返回步骤s108;
s119:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于5000,如果u(j)=5000,则进入步骤s132,否则返回步骤s108;
s120:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s132,否则返回步骤s108;
s121:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s132,否则返回步骤s108;
s122:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s132,否则返回步骤s108;
s123:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s132,否则返回步骤s108;
图6_2中的计数器计数控制操作的具体步骤s141变换为图7_2中的计数器计数控制操作的具体步骤s141:
s141:判断该32位计数器的分频倍数的编码,如果分频倍数的编码为000,进入步骤s157;如果分频倍数的编码为001,则进入步骤s142;如果分频倍数的编码为010,则进入步骤s143;如果分频倍数的编码为011,则进入步骤s144;如果分频倍数的编码为100,则进入步骤s145;如果分频倍数的编码为101,则进入步骤s146;如果分频倍数的编码为110,则进入步骤s147;如果分频倍数的编码为111,则进入步骤s148;
删除图6_3中的步骤s149~s156;步骤s142~s148变换为图7_3中的计数器计数控制操作的步骤s142~s148:
s142:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于500,如果u(j)=500,则进入步骤s157,否则返回步骤s115;
s143:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s157,否则返回步骤s115;
s144:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于5000,如果u(j)=5000,则进入步骤s157,否则返回步骤s115;
s145:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s157,否则返回步骤s115;
s146:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s157,否则返回步骤s115;
s147:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s157,否则返回步骤s115;
s148:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s157,否则返回步骤s115。
实施例三:
一种与16位微处理器应用系统连接的计数器IP核,图1中的脉冲200分频器Ⅲ确定了计数器IP核的滤波基准时钟,将脉冲200分频器Ⅲ变换为400分频器Ⅲ,适应16位微处理器的时钟频率大于50MHz的情况。
实施例四:
一种与16位微处理器应用系统连接的计数器IP核,图1中的脉冲200分频器Ⅲ确定了计数器IP核的滤波基准时钟,将脉冲200分频器Ⅲ变换为800分频器Ⅲ,适应16位微处理器的时钟频率大于200MHz的情况。
附表一:《实施例一之一种与16位微处理器应用系统连接的计数器IP核的计数器与命令地址编码表》
附表二:《实施例一之与16位微处理器应用系统连接的计数器IP核的计数器命令字》
附表三:《实施例二之与16位微处理器应用系统连接的计数器IP核的计数器命令字》
Claims (6)
1.一种与16位微处理器应用系统连接的计数器IP核,其特征在于:该计数器IP核包括数据输入输出与命令字分解存储控制模块(Ⅱ),脉冲200分频器(Ⅲ),计数处理控制模块(Ⅳ),计数器溢出标志控制模块(Ⅴ),输入门控选择控制模块(Ⅵ);
所述数据输入输出与命令字分解存储控制模块(Ⅱ)与16位微处理器应用系统(Ⅰ)、计数处理控制模块(Ⅳ)、计数器溢出标志控制模块(Ⅴ)和输入门控选择控制模块(Ⅵ)连接;
所述脉冲200分频器(Ⅲ)还与16位微处理器应用系统(Ⅰ)和计数处理控制模块(Ⅳ)连接;
所述计数处理控制模块(Ⅳ)还与16位微处理器应用系统(Ⅰ)、计数器溢出标志控制模块(Ⅴ)和输入门控选择控制模块(Ⅵ)连接;
所述数据输入输出与命令字分解存储控制模块(Ⅱ)在输入的片选信号为低电平的条件下,如果写信号有效,按照16位微处理器应用系统(Ⅰ)给定的计数器或计数器命令字的地址,获得计数器运行的工作模式分频倍数编码命令字,状态控制命令字,16位计数器或32位计数器的计数参数,并按照计数参数、计数器编号、工作模式分频倍数编码和状态控制分别予以存储和输出,还输出写工作模式分频倍数编码信号、写状态控制信号和写计数器参数信号;如果读信号有效向16位微处理器应用系统(Ⅰ)传输计数器实时计数值;
所述脉冲200分频器(Ⅲ)对16位微处理器应用系统(Ⅰ)的时钟脉冲进行分频,其输出作为计数处理控制模块(Ⅳ)的计数器计数控制操作的滤波基准时钟脉冲;
所述计数处理控制模块(Ⅳ)在写工作模式分频倍数编码信号的作用下,按照计数器编号存储该计数器的工作模式,滤波基准时钟分频倍数的编码值;在写状态控制信号的作用下,按照计数器编号存储该计数器的状态控制信号;在写计数器参数信号的作用下,按照计数器编号存储该计数器的计数参数;所述计数处理控制模块(Ⅳ)在计数器IP核外部输入的计数处理控制运行时钟脉冲CLKⅡ的作用下,控制计数处理控制模块(Ⅳ)的运行,按照脉冲200分频器(Ⅲ)输出的一个滤波基准时钟脉冲周期完成所有已启动计数器的一次处理,包括每个计数器的状态控制处理,工作模式的判断处理,当滤波基准时钟的个数达到一个16位/32位计数器所设置的滤波基准时钟倍数值时,从计数器IP核外部读入该计数器的计数输入信号,进行一次滤波处理,如果判断是一次有效地计数脉冲,则对该计数器的实时计数参数值进行加1操作,产生溢出时,对实时计数参数值自动重装载计数参数,并输出溢出标志信号;在数据输入输出与命令字分解存储控制模块(Ⅱ)输入的片选信号为低电平的条件下,如果读信号有效,按照16位微处理器应用系统(Ⅰ)给定的计数器的地址,直接读出该计数器的实时计数参数值经数据输入输出与命令字分解存储控制模块(Ⅱ)传输到16位微处理器应用系统(Ⅰ)的数据总线,一次能够读出16位计数器的实时计数参数,32位计数器的实时计数参数需要分时两次予以读出;在16位微处理器应用系统(Ⅰ)输出的复位信号作用下,停止所有计数器的计数操作;
所述计数器溢出标志控制模块(Ⅴ)输出16位/32位计数器的高电平为有效的溢出信号;计数处理控制模块(Ⅳ)输出的16位计数器的溢出信号由低电平变换为高电平时,存储该计数器溢出标志为高电平;如果该计数器溢出标志为高电平,清溢出标志由高电平转换为低电平,存储该计数器溢出标志为低电平;在写工作模式分频倍数编码信号的作用下,计数器溢出标志控制模块(Ⅴ)按照寄存器编号存储32位计数器工作模式的信息,封锁该32位计数器低16位的溢出信息保持为低电平;
所述输入门控选择控制模块(Ⅵ)在写工作模式分频倍数编码信号作用下,按照计数器编号存储该计数器的工作模式,根据该计数器工作模式所确定的门控功能要求和输入的门控电平,控制输入门控选择控制模块(Ⅵ)输出的门控信号。
2.如权利要求1所述的一种与16位微处理器应用系统连接的计数器IP核,其特征在于:所述数据输入输出与命令字分解存储控制模块(Ⅱ)包括16位双向数据选通三态门组(1),读写信号控制模块(2),计数参数寄存器(3),计数器编号寄存器(4),工作模式分频倍数编码寄存器(5),状态控制寄存器(6);
所述16位双向数据选通三态门组(1)分别与16位微处理器应用系统(Ⅰ)、读写信号控制模块(2)、计数参数寄存器(3)、计数器编号寄存器(4),工作模式分频倍数编码寄存器(5),状态控制寄存器(6)和计数处理控制模块(Ⅳ)连接;
所述读写信号控制模块(2)还与16位微处理器应用系统(Ⅰ)、计数参数寄存器(3)、计数器编号寄存器(4),工作模式分频倍数编码寄存器(5),状态控制寄存器(6)、计数处理控制模块(Ⅳ)、计数器溢出标志控制模块(Ⅴ)和输入门控选择控制模块(Ⅵ)连接;
所述计数参数寄存器(3)还与计数处理控制模块(Ⅳ)连接;
所述计数器编号寄存器(4)还与16位微处理器应用系统(Ⅰ)、计数处理控制模块(Ⅳ)、计数器溢出标志控制模块(Ⅴ)和输入门控选择控制模块(Ⅵ)连接;
所述工作模式分频倍数编码寄存器(5)还与16位微处理器应用系统(Ⅰ)、计数处理控制模块(Ⅳ)、计数器溢出标志控制模块(Ⅴ)和输入门控选择控制模块(Ⅵ)连接;
所述状态控制寄存器(6)还与16位微处理器应用系统(Ⅰ)、计数处理控制模块(Ⅳ)和计数器溢出标志控制模块(Ⅴ)连接;
所述数据输入输出与命令字分解存储控制模块(Ⅱ)的读写信号控制模块(2)在片选信号为低电平的条件下,如果写信号有效,发出16位双向数据选通三态门组(1)写信号,选通16位微处理器应用系统(Ⅰ)数据总线的数据输入;产生写计数器编号信号,并判断输入的地址值,如果是计数器参数的地址值,将该地址值写入计数器编号寄存器(4),产生写计数器参数信号,将数据总线的16位数据写入计数参数寄存器(3);如果是计数器命令字地址,判断命令字的第15位是否为“0”,如果第15位是“0”,产生写计数器编号信号,将16位数据总线的第2位~第5位数据写入计数器编号寄存器(4),产生写工作模式分频倍数编码信号,将数据总线的第0位、第1位、第6位~第9位写入工作模式分频倍数编码寄存器(5),产生写状态控制信号,将16位数据总线的第10位、第11位和第14位写入状态控制寄存器(6);如果第15位是“1”,则计数器命令字是状态控制命令字,产生写计数器编号信号,将16位数据总线的第2位~第5位数据写入计数器编号寄存器(4),产生写状态控制信号,将数据总线的第10位、第11位和第14位写入状态控制寄存器(6);如果读信号有效,发出16位双向数据选通三态门组(1)读信号,将计数处理控制模块(Ⅳ)的计数器IP核内部输出数据总线的数据传输到16位微处理器应用系统(Ⅰ)的数据总线。
3.如权利要求2所述的一种与16位微处理器应用系统连接的计数器IP核,其特征在于:所述计数处理控制模块(Ⅳ)包括计数器计数控制操作模块(47),地址选通控制Ⅰ(48),16位计数参数双端口存储器(49),地址选通控制Ⅱ(50),16位计数实时参数双端口存储器(51),地址选通控制Ⅲ(52),6位工作模式分频倍数编码双端口存储器(53),地址选通控制Ⅳ(54),3位状态控制双端口存储器(55),6位计数滤波参数移位存储器(56);
所述计数器计数控制操作模块(47)分别与脉冲200分频器(Ⅲ)、计数器溢出标志控制模块(Ⅴ)、输入门控选择控制模块(Ⅵ)、地址选通控制Ⅰ(48)、16位计数参数双端口存储器(49)、地址选通控制Ⅱ(50)、16位计数实时参数双端口存储器(51)、地址选通控制Ⅲ(52)、6位工作模式分频倍数编码双端口存储器(53)、地址选通控制Ⅳ(54)、3位状态控制双端口存储器(55)和,4位计数滤波参数移位存储器(56),计数器IP核外部输入的计数输入信号和计数处理控制运行时钟脉冲CLKⅡ连接;
所述地址选通控制Ⅰ(48)还与数据输入输出与命令字分解存储控制模块(Ⅱ)和16位计数参数双端口存储器(49)连接;
所述16位计数参数双端口存储器(49)还与数据输入输出与命令字分解存储控制模块(Ⅱ)和16位计数实时参数双端口存储器(51)连接;
所述地址选通控制Ⅱ(50)还与16位微处理器应用系统(Ⅰ)、数据输入输出与命令字分解存储控制模块(Ⅱ)和16位计数实时参数双端口存储器(51)连接;
所述16位计数实时参数双端口存储器(51)还与数据输入输出与命令字分解存储控制模块(Ⅱ)连接;
所述地址选通控制Ⅲ(52)还与数据输入输出与命令字分解存储控制模块(Ⅱ)和6位工作模式分频倍数编码双端口存储器(53)连接;
所述6位工作模式分频倍数编码双端口存储器(53)还与数据输入输出与命令字分解存储控制模块(Ⅱ)连接;
所述地址选通控制Ⅳ(54)还与数据输入输出与命令字分解存储控制模块(Ⅱ)和3位状态控制双端口存储器(55)连接;
所述3位状态控制双端口存储器(55)还与数据输入输出与命令字分解存储控制模块(Ⅱ)、16位微处理器应用系统(Ⅰ)的复位信号连接;如果输入的复位信号为有效的复位信号,复位3位状态控制双端口存储器(55),停止所有计数器的计数。
4.如权利要求3所述的一种与16位微处理器应用系统连接的计数器IP核,其特征在于:所述计数器溢出标志控制模块(Ⅴ)包括非门(7),M0工作模式位寄存器组(8),溢出清零脉冲控制器(9),与非门Ⅰ(10),D触发器Ⅰ(11),与门Ⅰ(12),与非门Ⅱ(13),D触发器Ⅱ(14),与非门Ⅲ(15),D触发器Ⅲ(16),与门Ⅱ(17),与非门Ⅳ(18),D触发器Ⅳ(19),与非门Ⅴ(20),D触发器Ⅴ(21),与门Ⅲ(22),与非门Ⅵ(23),D触发器Ⅵ(24),与非门Ⅶ(25),D触发器Ⅶ(26),与门Ⅳ(27),与非门Ⅷ(28),D触发器Ⅷ(29),与非门Ⅸ(30),D触发器Ⅸ(31),与门Ⅴ(32),与非门Ⅹ(33),D触发器Ⅹ(34),与非门Ⅺ(35),D触发器Ⅺ(36),与门Ⅵ(37),与非门Ⅻ(38),D触发器Ⅻ(39),与非门ⅩⅢ(40),D触发器ⅩⅢ(41),与门Ⅶ(42),与非门ⅩⅣ(43),D触发器ⅩⅣ(44),与非门ⅩⅤ(45),D触发器ⅩⅤ(46);
所述非门(7)的输入端与数据输入输出与命令字分解存储控制模块(Ⅱ)的状态控制寄存器(6)的M0输出端连接,输出端与M0工作模式位寄存器组(8)的一个输入端连接;
M0工作模式位寄存器组(8)的另三个输入端分别与16位微处理器应用系统(Ⅰ)的复位信号输出端、数据输入输出与命令字分解存储控制模块(Ⅱ)的读写信号控制模块(2)的写工作模式分频倍数编码信号输出端和计数器编号寄存器(4)的计数器编号输出端连接,输出端分别与门Ⅰ(12)、与门Ⅱ(17)、与门Ⅲ(22)、与门Ⅳ(27)、与门Ⅴ(32)、与门Ⅵ(37)和与门Ⅶ(42)的一个输入端连接;
溢出清零脉冲控制器(9)的三个输入端分别与数据输入输出与命令字分解存储控制模块(Ⅱ)的读写信号控制模块(2)的写状态控制信号输出端、状态控制寄存器(6)的清溢出标志输出端和计数器编号寄存器(4)的计数器编号输出端连接,输出端分别和与非门Ⅰ(10),与非门Ⅱ(13),与非门Ⅲ(15),与非门Ⅳ(18),与非门Ⅴ(20),与非门Ⅵ(23),与非门Ⅶ(25),与非门Ⅷ(28),与非门Ⅸ(30),与非门Ⅹ(33),与非门Ⅺ(35),与非门Ⅻ(38),与非门ⅩⅢ(40),与非门ⅩⅣ(43),与非门ⅩⅤ(45)的一个输入端连接;输出端还和D触发器Ⅰ(11),D触发器Ⅱ(14),D触发器Ⅲ(16),D触发器Ⅳ(19),D触发器Ⅴ(21),D触发器Ⅵ(24),D触发器Ⅶ(26),D触发器Ⅷ(29),D触发器Ⅸ(31),D触发器Ⅹ(34),D触发器Ⅺ(36),D触发器Ⅻ(39),D触发器ⅩⅢ(41),D触发器ⅩⅣ(44)和D触发器ⅩⅤ(46)的数据输入端连接;
与非门Ⅰ(10)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅰ(11)的时钟信号输入端连接;
D触发器Ⅰ(11)的数据输出端和与门Ⅰ(12)的另一个输入端连接;
与门Ⅰ(12)的输出端作为16位计数器0的溢出标志输出信号与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅱ(13)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅱ(14)的时钟信号输入端连接;
D触发器Ⅱ(14)的数据输出端作为16位计数器1/32位计数器0的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅲ(15)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅲ(16)的时钟信号输入端连接;
D触发器Ⅲ(16)的数据输出端和与门Ⅱ(17)的另一个输入端连接;
与门Ⅱ(17)的输出端作为16位计数器2的溢出标志输出信号与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅳ(18)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅳ(19)的时钟信号输入端连接;
D触发器Ⅳ(19)的数据输出端作为16位计数器3/32位计数器1的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅴ(20)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅴ(21)的时钟信号输入端连接;
D触发器Ⅴ(21)的数据输出端和与门Ⅲ(22)的另一个输入端连接;
与门Ⅲ(22)的输出端作为16位计数器4的溢出标志输出信号与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅵ(23)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅵ(24)的时钟信号输入端连接;
D触发器Ⅵ(24)的数据输出端作为16位计数器5/32位计数器2的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅶ(25)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅶ(26)的时钟信号输入端连接;
D触发器Ⅶ(26)的数据输出端和与门Ⅳ(27)的另一个输入端连接;
与门Ⅳ(27)的输出端作为16位计数器6的溢出标志输出信号与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅷ(28)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅷ(29)的时钟信号输入端连接;
D触发器Ⅷ(29)的数据输出端作为16位计数器7/32位计数器3的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅸ(30)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅸ(31)的时钟信号输入端连接;
D触发器Ⅸ(31)的数据输出端和与门Ⅴ(32)的另一个输入端连接;
与门Ⅴ(32)的输出端作为16位计数器8的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅹ(33)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅹ(34)的时钟信号输入端连接;
D触发器Ⅹ(34)的数据输出端作为16位计数器9/32位计数器4的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅺ(35)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅺ(36)的时钟信号输入端连接;
D触发器Ⅺ(36)的数据输出端和与门Ⅵ(37)的另一个输入端连接;
与门Ⅵ(37)的输出端作为16位计数器10的溢出标志输出信号与16位微处理器应用系统(Ⅰ)连接;
与非门Ⅻ(38)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器Ⅻ(39)的时钟信号输入端连接;
D触发器Ⅻ(39)的数据输出端作为16位计数器11/32位计数器5的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接;
与非门ⅩⅢ(40)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器ⅩⅢ(41)的时钟信号输入端连接;
D触发器ⅩⅢ(41)的数据输出端和与门Ⅶ(42)的另一个输入端连接;
与门Ⅶ(42)的输出端作为16位计数器12的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接;
与非门ⅩⅣ(43)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器ⅩⅣ(44)的时钟信号输入端连接;
D触发器ⅩⅣ(44)的数据输出端作为16位计数器13/32位计数器6的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接;
与非门ⅩⅤ(45)的另一个输入端与计数处理控制模块(Ⅳ)的溢出标志输出端连接,输出端与D触发器ⅩⅤ(46)的时钟信号输入端连接;
D触发器ⅩⅤ(46)的数据输出端作为16位计数器14的溢出标志输出信号输出端与16位微处理器应用系统(Ⅰ)连接。
5.一种与16位微处理器应用系统连接的计数器IP核的计数器计数控制操作的方法,其特征在于:它是运用权利要求4所述的一种与16位微处理器应用系统连接的计数器IP核来实现计数器计数控制操作的方法;
所述计数器计数控制操作的具体步骤为:
s101:清滤波基准时钟脉冲的倍数u数组存储单元、移位v数组存储单元,计数器编号值j;
s102:滤波基准时钟脉冲下降沿触发程序执行1次;
s103:判断计数器编号值j是否等于或大于15,如果j的值等于或大于15,则进入步骤s104,否则进入s105;
s104:设置计数器编号值j=0,返回步骤s102;
s105:判断启/停信号是否等于1,如果启/停信号=1,该计数器计数工作,进入步骤s109,否则该计数器处于停止计数工作状态,进入步骤s106;
s106:判断清计数当前值是否等于0,如果清计数当前值=0,则进入步骤s107,否则进入步骤s108;
s107:清除该计数器计数存储单元的值,进入步骤s108;
s108:计数器编号值j加1,返回步骤s103;
s109:该计数器的滤波基准时钟脉冲分频倍数加1:u(j)=u(j)+1,进入步骤s110;
s110:判断该计数器工作模式,如果工作模式M1M0=10,门控16位计数器,进入步骤s111;如果工作模式M1M0=00,无门控的16位计数器,进入步骤s116;如果工作模式M1M0=01,无门控的32位计数器,进入步骤s112;如果工作模式M1M0=11,则选择门控的32位计数器,进入步骤s113;
s111:判断该16位计数器的门控信号是否为0,如果门控信号等于0则返回步骤s108,否则进入步骤s116;
s112:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s113:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s114:判断该32位计数器的门控信号是否为0,如果门控信号等于0则进入步骤s141,否则进入步骤s115;
s115:计数器编号j加2:j=j+2,返回步骤s103;
s116:判断该16位计数器的分频倍数的编码,如果分频倍数的编码为0000,进入步骤s132;如果分频倍数的编码为0001,则进入步骤s117;如果分频倍数的编码为0010,则进入步骤s118;如果分频倍数的编码为0011,则进入步骤s119;如果分频倍数的编码为0100,则进入步骤s120;如果分频倍数的编码为0101,则进入步骤s121;如果分频倍数的编码为0110,则进入步骤s122;如果分频倍数的编码为0111,则进入步骤s123;如果分频倍数的编码为1000,则进入步骤s124;如果分频倍数的编码为1001,则进入步骤s125;如果分频倍数的编码为1010,则进入步骤s126;如果分频倍数的编码为1011,则进入步骤s127;如果分频倍数的编码为1100,则进入步骤s128;如果分频倍数的编码为1101,则进入步骤s129;如果分频倍数的编码为1110,则进入步骤s130;如果分频倍数的编码为1111,则进入步骤s131;
s117:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s132,否则返回步骤s108;
s118:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于200,如果u(j)=200,则进入步骤s132,否则返回步骤s108;
s119:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于400,如果u(j)=400,则进入步骤s132,否则返回步骤s108;
s120:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于800,如果u(j)=800,则进入步骤s132,否则返回步骤s108;
s121:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s132,否则返回步骤s108;
s122:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1500,如果u(j)=1500,则进入步骤s132,否则返回步骤s108;
s123:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于2000,如果u(j)=2000,则进入步骤s132,否则返回步骤s108;
s124:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于4000,如果u(j)=4000,则进入步骤s132,否则返回步骤s108;
s125:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于8000,如果u(j)=8000,则进入步骤s132,否则返回步骤s108;
s126:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s132,否则返回步骤s108;
s127:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于15000,如果u(j)=15000,则进入步骤s132,否则返回步骤s108;
s128:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s132,否则返回步骤s108;
s129:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s132,否则返回步骤s108;
s130:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于40000,如果u(j)=40000,则进入步骤s132,否则返回步骤s108;
s131:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s132,否则返回步骤s108;
s132:设置该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s133;
s133:读入该16位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s134;
s134:判断该16位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s135,否则返回步骤s108;
s135:判断该16位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s136,否则返回步骤s108;
s136:判断该16位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s137,否则返回步骤s108;
s137:判断该16位计数器v(j)的第0位是否等于0,如果等于0,表示该16位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s138,否则返回步骤s108;
s138:读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位计数当前值存储单元,进入步骤s139;
s139:判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s140,否则返回步骤s108;
s140:重新装载该16位计数器的16位计数参数,返回步骤s108;
s141:判断该32位计数器的分频倍数的编码,如果分频倍数的编码为0000,进入步骤s157;如果分频倍数的编码为0001,则进入步骤s142;如果分频倍数的编码为0010,则进入步骤s143;如果分频倍数的编码为0011,则进入步骤s144;如果分频倍数的编码为0100,则进入步骤s145;如果分频倍数的编码为0101,则进入步骤s146;如果分频倍数的编码为0110,则进入步骤s147;如果分频倍数的编码为0111,则进入步骤s148;如果分频倍数的编码为1000,则进入步骤s149;如果分频倍数的编码为1001,则进入步骤s150;如果分频倍数的编码为1010,则进入步骤s151;如果分频倍数的编码为1011,则进入步骤s152;如果分频倍数的编码为1100,则进入步骤s153;如果分频倍数的编码为1101,则进入步骤s154;如果分频倍数的编码为1110,则进入步骤s155;如果分频倍数的编码为1111,则进入步骤s156;
s142:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s157,否则返回步骤s115;
s143:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于200,如果u(j)=200,则进入步骤s157,否则返回步骤s115;
s144:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于400,如果u(j)=400,则进入步骤s157,否则返回步骤s115;
s145:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于800,如果u(j)=800,则进入步骤s157,否则返回步骤s115;
s146:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s157,否则返回步骤s115;
s147:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1500,如果u(j)=1500,则进入步骤s157,否则返回步骤s115;
s148:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于2000,如果u(j)=2000,则进入步骤s157,否则返回步骤s115;
s149:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于4000,如果u(j)=4000,则进入步骤s157,否则返回步骤s115;
s150:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于8000,如果u(j)=8000,则进入步骤s157,否则返回步骤s115;
s151:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s157,否则返回步骤s115;
s152:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于15000,如果u(j)=15000,则进入步骤s157,否则返回步骤s115;
s153:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s157,否则返回步骤s115;
s154:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s157,否则返回步骤s115;
s155:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于40000,如果u(j)=40000,则进入步骤s157,否则返回步骤s115;
s156:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s157,否则返回步骤s115;
s157:设置该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s158;
s158:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s159;
s159:判断该32位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s160,否则返回步骤s115;
s160:判断该32位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s161,否则返回步骤s115;
s161:判断该32位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s162,否则返回步骤s115;
s162:判断该32位计数器v(j)的第0位是否等于0,如果等于0,表示该32位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s163,否则返回步骤s115;
s163:读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32位计数当前值存储单元,进入步骤s164;
s164:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s165,否则返回步骤s115;
s165:重新装载该32位计数器的32位计数参数,返回步骤s115。
6.一种与16位微处理器应用系统连接的计数器IP核的计数器计数控制的方法,其特征在于:它是运用权利要求4所述的一种与16位微处理器应用系统连接的计数器IP核来实现计数器计数控制操作的另一种方法;
所述计数器计数控制操作的具体步骤为:
s101:清滤波基准时钟脉冲的倍数u数组存储单元、移位v数组存储单元,计数器编号值j;
s102:滤波基准时钟脉冲下降沿触发程序执行1次;
s103:判断计数器编号值j是否等于或大于15,如果j的值等于或大于15,则进入步骤s104,否则进入s105;
s104:设置计数器编号值j=0,返回步骤s102;
s105:判断启/停信号是否等于1,如果启/停信号=1,该计数器计数工作,进入步骤s109,否则该计数器处于停止计数工作状态,进入步骤s106;
s106:判断清计数当前值是否等于0,如果清计数当前值=0,则进入步骤s107,否则进入步骤s108;
s107:清除该计数器计数存储单元的值,进入步骤s108;
s108:计数器编号值j加1,返回步骤s103;
s109:该计数器的滤波基准时钟脉冲分频倍数加1:u(j)=u(j)+1,进入步骤s110;
s110:判断该计数器工作模式,如果工作模式M1M0=10,门控16位计数器,进入步骤s111;如果工作模式M1M0=00,无门控的16位计数器,进入步骤s116;如果工作模式M1M0=01,无门控的32位计数器,进入步骤s112;如果工作模式M1M0=11,则选择门控的32位计数器,进入步骤s113;
s111:判断该16位计数器的门控信号是否为0,如果门控信号等于0则返回步骤s108,否则进入步骤s116;
s112:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s113:判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤s141,否则返回步骤s108;
s114:判断该32位计数器的门控信号是否为0,如果门控信号等于0则进入步骤s141,否则进入步骤s115;
s115:计数器编号j加2:j=j+2,返回步骤s103;
s116:判断该16位计数器的分频倍数的编码,如果分频倍数的编码为000,进入步骤s132;如果分频倍数的编码为001,则进入步骤s117;如果分频倍数的编码为010,则进入步骤s118;如果分频倍数的编码为011,则进入步骤s119;如果分频倍数的编码为100,则进入步骤s120;如果分频倍数的编码为101,则进入步骤s121;如果分频倍数的编码为110,则进入步骤s122;如果分频倍数的编码为111,则进入步骤s123;
s117:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于500,如果u(j)=500,则进入步骤s132,否则返回步骤s108;
s118:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s132,否则返回步骤s108;
s119:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于5000,如果u(j)=5000,则进入步骤s132,否则返回步骤s108;
s120:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s132,否则返回步骤s108;
s121:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s132,否则返回步骤s108;
s122:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s132,否则返回步骤s108;
s123:判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s132,否则返回步骤s108;
s132:设置该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s133;
s133:读入该16位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s134;
s134:判断该16位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s135,否则返回步骤s108;
s135:判断该16位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s136,否则返回步骤s108;
s136:判断该16位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s137,否则返回步骤s108;
s137:判断该16位计数器v(j)的第0位是否等于0,如果等于0,表示该16位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s138,否则返回步骤s108;
s138:读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位计数当前值存储单元,进入步骤s139;
s139:判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s140,否则返回步骤s108;
s140:重新装载该16位计数器的16位计数参数,返回步骤s108;
s141:判断该32位计数器的分频倍数的编码,如果分频倍数的编码为000,进入步骤s157;如果分频倍数的编码为001,则进入步骤s142;如果分频倍数的编码为010,则进入步骤s143;如果分频倍数的编码为011,则进入步骤s144;如果分频倍数的编码为100,则进入步骤s145;如果分频倍数的编码为101,则进入步骤s146;如果分频倍数的编码为110,则进入步骤s147;如果分频倍数的编码为111,则进入步骤s148;
s142:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于500,如果u(j)=500,则进入步骤s157,否则返回步骤s115;
s143:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s157,否则返回步骤s115;
s144:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于5000,如果u(j)=5000,则进入步骤s157,否则返回步骤s115;
s145:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s157,否则返回步骤s115;
s146:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于20000,如果u(j)=20000,则进入步骤s157,否则返回步骤s115;
s147:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于30000,如果u(j)=30000,则进入步骤s157,否则返回步骤s115;
s148:判断该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于50000,如果u(j)=50000,则进入步骤s157,否则返回步骤s115;
s157:设置该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤s158;
s158:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s159;
s159:判断该32位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s160,否则返回步骤s115;
s160:判断该32位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s161,否则返回步骤s115;
s161:判断该32位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s162,否则返回步骤s115;
s162:判断该32位计数器v(j)的第0位是否等于0,如果等于0,表示该32位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s163,否则返回步骤s115;
s163:读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32位计数当前值存储单元,进入步骤s164;
s164:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s165,否则返回步骤s115;
s165:重新装载该32位计数器的32位计数参数,返回步骤s115。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510377909.3A CN105117200B (zh) | 2015-06-30 | 2015-06-30 | 一种与16位微处理器应用系统连接的计数器ip核及其实现计数器计数控制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510377909.3A CN105117200B (zh) | 2015-06-30 | 2015-06-30 | 一种与16位微处理器应用系统连接的计数器ip核及其实现计数器计数控制的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117200A true CN105117200A (zh) | 2015-12-02 |
CN105117200B CN105117200B (zh) | 2018-01-05 |
Family
ID=54665203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510377909.3A Expired - Fee Related CN105117200B (zh) | 2015-06-30 | 2015-06-30 | 一种与16位微处理器应用系统连接的计数器ip核及其实现计数器计数控制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105117200B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133192A (zh) * | 2017-05-11 | 2017-09-05 | 北方电子研究院安徽有限公司 | 一种SoC系统中的高速输入器和脉冲计数器电路 |
CN108717565A (zh) * | 2018-05-29 | 2018-10-30 | 宁波帝洲自动化科技有限公司 | 一种基于fpga的高速计数器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6876717B1 (en) * | 2004-08-19 | 2005-04-05 | Intel Corporation | Multi-stage programmable Johnson counter |
CN101557225A (zh) * | 2009-05-05 | 2009-10-14 | 复旦大学 | 一种应用于分数分频频率合成器的脉冲吞计数器 |
WO2011023030A1 (zh) * | 2009-08-28 | 2011-03-03 | 炬力集成电路设计有限公司 | 集成电路及在集成电路中获得基准时钟的方法 |
CN103746687A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 自适应精度的定时/计数逻辑系统及定时/计数器 |
-
2015
- 2015-06-30 CN CN201510377909.3A patent/CN105117200B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6876717B1 (en) * | 2004-08-19 | 2005-04-05 | Intel Corporation | Multi-stage programmable Johnson counter |
CN101557225A (zh) * | 2009-05-05 | 2009-10-14 | 复旦大学 | 一种应用于分数分频频率合成器的脉冲吞计数器 |
WO2011023030A1 (zh) * | 2009-08-28 | 2011-03-03 | 炬力集成电路设计有限公司 | 集成电路及在集成电路中获得基准时钟的方法 |
CN103746687A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 自适应精度的定时/计数逻辑系统及定时/计数器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133192A (zh) * | 2017-05-11 | 2017-09-05 | 北方电子研究院安徽有限公司 | 一种SoC系统中的高速输入器和脉冲计数器电路 |
CN108717565A (zh) * | 2018-05-29 | 2018-10-30 | 宁波帝洲自动化科技有限公司 | 一种基于fpga的高速计数器 |
Also Published As
Publication number | Publication date |
---|---|
CN105117200B (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117200A (zh) | 一种与16位微处理器应用系统连接的计数器ip核及其实现计数器计数控制的方法 | |
CN103345448A (zh) | 寻址与存储一体化两读出一写入存储控制器 | |
CN104571263B (zh) | 一种片上定时器 | |
CN102254218B (zh) | Arm+fpga组成的计数器装置及其实现方法 | |
CN103336750A (zh) | 寻址与存储单元一体化双端口存储控制器 | |
CN105183430B (zh) | 一种与8位微处理器应用系统连接的定时器ip核及其实现定时器定时控制的方法 | |
CN204856462U (zh) | 一种与16位微处理器应用系统连接的计数器ip核 | |
CN103218219A (zh) | 紧凑函数跟踪 | |
CN202632773U (zh) | 一种基于sd卡的便携式串行flash烧写装置 | |
CN105117357A (zh) | 一种与8位微处理器应用系统连接的计数器ip核及其实现计数器计数控制的方法 | |
CN105022608B (zh) | 一种与16位微处理器应用系统连接的定时器ip核及其实现定时器定时控制的方法 | |
CN204790973U (zh) | 一种与8位微处理器应用系统连接的计数器ip核 | |
CN108880531A (zh) | 一种偶数次格雷码计数器电路 | |
CN204790974U (zh) | 一种与16位微处理器应用系统连接的定时器ip核 | |
CN204965405U (zh) | 一种与8位微处理器应用系统连接的定时器ip核 | |
CN203746056U (zh) | 多操作数四则混合定点算术运算控制器 | |
CN103677742A (zh) | 多浮点操作数加/减运算控制器 | |
CN201021996Y (zh) | 一种8位复杂指令集计算机微控制器 | |
CN103645887A (zh) | 双指令多浮点操作数加/减、乘、除运算控制器 | |
CN203689501U (zh) | 多浮点操作数加/减运算控制器 | |
EP0012242B1 (en) | Digital data processor for word and character oriented processing | |
CN103645878B (zh) | 多操作数四则混合定点算术运算控制器 | |
CN101847090B (zh) | 一种rfid智能卡专用微控制器 | |
CN204597934U (zh) | 一种正交光电编码器的任意整数分频电路 | |
CN106647461A (zh) | 一种基于arm‑fpga的自动绕线机控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180105 Termination date: 20210630 |
|
CF01 | Termination of patent right due to non-payment of annual fee |