一种与16位微处理器应用系统连接的计数器ip核及其实现计数器计数控制的方法_6

文档序号:9396666阅读:来源:国知局
11,则进入步骤sll9 ;如果分频倍数的编码为0100, 则进入步骤sl20 ;如果分频倍数的编码为0101,则进入步骤sl21 ;如果分频倍数的编码为 0110,则进入步骤sl22 ;如果分频倍数的编码为0111,则进入步骤sl23 ;如果分频倍数的编 码为1000,则进入步骤sl24 ;如果分频倍数的编码为1001,则进入步骤sl25 ;如果分频倍 数的编码为1010,则进入步骤sl26 ;如果分频倍数的编码为1011,则进入步骤sl27 ;如果 分频倍数的编码为1100,则进入步骤sl28 ;如果分频倍数的编码为1101,则进入步骤sl29 ; 如果分频倍数的编码为1110,则进入步骤sl30 ;如果分频倍数的编码为1111,则进入步骤 sl31 ; sll7 :判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于100,如果 11(」)=100,则进入步骤8132,否则返回步骤8108; sll8 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于200,如果 11(]_)=200,则进入步骤8132,否则返回步骤8108; sll9 :判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于400,如果 11(]_)=400,则进入步骤8132,否则返回步骤8108; sl20 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于800,如果 11(]_)=800,则进入步骤8132,否则返回步骤8108; sl21 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于1000,如 果u(j)=1000,则进入步骤sl32,否则返回步骤sl08 ; sl22 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于1500,如 果u (j)= 1500,则进入步骤s 132,否则返回步骤s 108 ; sl23 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于2000,如 果u(j)=2000,则进入步骤sl32,否则返回步骤sl08 ; sl24 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于4000,如 果u(j)=4000,则进入步骤sl32,否则返回步骤sl08 ; sl25 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于8000,如 果u(j)=8000,则进入步骤sl32,否则返回步骤sl08 ; sl26 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于10000,如 果u(j)=10000,则进入步骤sl32,否则返回步骤sl08 ; sl27 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于15000,如 果u (j)= 15000,则进入步骤s 132,否则返回步骤s 108 ; sl28 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于20000,如 果u(j)=20000,则进入步骤sl32,否则返回步骤sl08 ; sl29 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于30000,如 果u(j)=30000,则进入步骤sl32,否则返回步骤sl08 ; sl30 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于40000,如 果u (j) =40000,则进入步骤sl32,否则返回步骤sl08 ; sl31 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于50000,如 果u(j)=50000,则进入步骤sl32,否则返回步骤sl08 ; sl32 :设置该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值等于0,进入步骤 sl33 ; sl33 :读入该16位计数器的计数输入端的值,V (j)左移一位,计数输入值进入V (j)的 第0位,进入步骤sl34 ; sl34 :判断该16位计数器V (j)的第0位是否与第1位数据相等,如果相等,进入步骤 sl35,否则返回步骤sl08 ; sl35 :判断该16位计数器V (j)的第2位是否与第3位数据相等,如果相等,进入步骤 sl36,否则返回步骤sl08 ; sl36 :判断该16位计数器V (j)的第0位是否与第3位数据相等,如果不相等,进入步 骤sl37,否则返回步骤sl08 ; sl37 :判断该16位计数器v (j)的第O位是否等于0,如果等于0,表示该16位计数器 的计数输入端产生了一个有效地计数脉冲,进入步骤sl38,否则返回步骤sl08 ; sl38 :读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位 计数当前值存储单元,进入步骤si39 ; sl39 :判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤sl40,否 则返回步骤s 108 ; sl40 :重新装载该16位计数器的16位计数参数,返回步骤sl08 ; sl41 :判断该32位计数器的分频倍数的编码,如果分频倍数的编码为0000,进入步骤 sl57 ;如果分频倍数的编码为0001,则进入步骤sl42 ;如果分频倍数的编码为0010,则进入 步骤sl43 ;如果分频倍数的编码为0011,则进入步骤sl44 ;如果分频倍数的编码为0100, 则进入步骤sl45 ;如果分频倍数的编码为0101,则进入步骤sl46 ;如果分频倍数的编码为 0110,则进入步骤sl47 ;如果分频倍数的编码为0111,则进入步骤sl48 ;如果分频倍数的编 码为1000,则进入步骤sl49 ;如果分频倍数的编码为1001,则进入步骤sl50 ;如果分频倍 数的编码为1010,则进入步骤sl51 ;如果分频倍数的编码为1011,则进入步骤sl52 ;如果 分频倍数的编码为1100,则进入步骤sl53 ;如果分频倍数的编码为1101,则进入步骤sl54 ; 如果分频倍数的编码为1110,则进入步骤sl55 ;如果分频倍数的编码为1111,则进入步骤 sl56 ; sl42 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于100,如果 u (j) =100,则进入步骤sl57,否则返回步骤si 15 ; sl43 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于200,如果 u (j) =200,则进入步骤sl57,否则返回步骤si 15 ; sl44 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于400,如果 u (j) =400,则进入步骤sl57,否则返回步骤si 15 ; sl45 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于800,如果 u (j) =800,则进入步骤sl57,否则返回步骤si 15 ; sl46 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于1000,如 果u (j)= 1000,则进入步骤s 157,否则返回步骤s 115 ; sl47 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于1500,如 果u (j)= 1500,则进入步骤s 157,否则返回步骤s 115 ; sl48 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于2000,如 果u(j)=2000,则进入步骤sl57,否则返回步骤sll5 ; sl49 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于4000,如 果u(j)=4000,则进入步骤sl57,否则返回步骤sll5 ; sl50 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于8000,如 果u(j)=8000,则进入步骤sl57,否则返回步骤sll5 ; sl51 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于10000,如 果u (j)= 10000,则进入步骤s 157,否则返回步骤s 115 ; sl52 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于15000,如 果u (j) = 15000,则进入步骤S157,否则返回步骤S115 ; sl53 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于20000,如 果u(j)=20000,则进入步骤sl57,否则返回步骤sll5 ; sl54 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于30000,如 果u(j)=30000,则进入步骤sl57,否则返回步骤sll5 ; sl55 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于40000,如 果u(j)=40000,则进入步骤sl57,否则返回步骤sll5 ; sl56 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于50000,如 果u(j)=50000,则进入步骤sl57,否则返回步骤sll5 ; sl57:设置该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤 sl58 ; sl58:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的 第0位,进入步骤sl59 ; sl59 :判断该32位计数器V (j)的第0位是否与第1位数据相等,如果相等,进入步骤 sl60,否则返回步骤sll5 ; sl60 :判断该32位计数器V (j)的第2位是否与第3位数据相等,如果相等,进入步骤 sl61,否则返回步骤sll5 ; sl61 :判断该32位计数器V (j)的第0位是否与第3位数据相等,如果不相等,进入步 骤sl62,否则返回步骤sll5 ; sl62 :判断该32位计数器V (j)的第0位是否等于0,如果等于0,表示该32位计数器 的计数输入端产生了一个有效地计数脉冲,进入步骤sl63,否则返回步骤sll5 ; sl63 :读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32 位计数当前值存储单元,进入步骤sl64 ; sl64:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤sl65,否 则返回步骤sll5 ; sl65 :重新装载该32位计数器的32位计数参数,返回步骤sll5。6. -种与16位微处理器应用系统连接的计数器IP核的计数器计数控制的方法,其特 征在于:它是运用权利要求4所述的一种与16位微处理器应用系统连接的计数器IP核来 实现计数器计数控制操作的另一种方法; 所述计数器计数控制操作的具体步骤为: SlOl :清滤波基准时钟脉冲的倍数u数组存储单元、移位V数组存储单元,计数器编号 值j ; sl〇2 :滤波基准时钟脉冲下降沿触发程序执行1次; sl03 :判断计数器编号值j是否等于或大于15,如果j的值等于或大于15,则进入步骤 sl04,否则进入sl05 ; sl〇4 :设置计数器编号值j=0,返回步骤sl02 ; S105 :判断启/停信号是否等于1,如果启/停信号=1,该计数器计数工作,进入步骤 sl〇9,否则该计数器处于停止计数工作状态,进入步骤sl06 ; sl06 :判断清计数当前值是否等于0,如果清计数当前值=0,则进入步骤sl07,否则进 入步骤S108 ; sl07 :清除该计数器计数存储单元的值,进入步骤sl08 ; sl08 :计数器编号值j加1,返回步骤sl03 ; sl09 :该计数器的滤波基准时钟脉冲分频倍数加I :u(j)= u(j)+l,进入步骤sllO ; SllO :判断该计数器工作模式,如果工作模式MlMO=IO,门控16位计数器,进入步 骤sill ;如果工作模式MlMO=OO,无门控的16位计数器,进入步骤sll6 ;如果工作模式 MlMO=Ol,无门控的32位计数器,进入步骤sll2 ;如果工作模式MlMO=Il,则选择门控的32 位计数器,进入步骤sll3; sill :判断该16位计数器的门控信号是否为0,如果门控信号等于0则返回步骤sl08, 否则进入步骤sll6 ; sll2 :判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤sl41, 否则返回步骤sl08 ; sll3 :判断该32位计数器编号j的低2位是否等于00,如果等于00则进入步骤sl41, 否则返回步骤sl08 ; sll4:判断该32位计数器的门控信号是否为0,如果门控信号等于0则进入步骤sl41, 否则进入步骤sll5 ; sll5 :计数器编号j加2 :j=j+2,返回步骤sl03 ; sll6 :判断该16位计数器的分频倍数的编码,如果分频倍数的编码为000,进入步骤 sl32 ;如果分频倍数的编码为001,则进入步骤sll7 ;如果分频倍数的编码为010,则进入步 骤sll8 ;如果分频倍数的编码为011,则进入步骤sll9 ;如果分频倍数的编码为100,则进 入步骤sl20 ;如果分频倍数的编码为101,则进入步骤sl21 ;如果分频倍数的编码为110, 则进入步骤sl22 ;如果分频倍数的编码为111,则进入步骤sl23 ; sll7 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于500,如果 11(]_)=500,则进入步骤8132,否则返回步骤8108; sll8 :判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于1000,如 果u(j)=1000,则进入步骤sl32,否则返回步骤sl08 ; sll9 :判断该16位计数器的滤波基准时钟脉冲分频倍数u(j)的值是否等于5000,如 果u(j)=5000,则进入步骤sl32,否则返回步骤sl08 ; sl20 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于10000,如 果u(j)=10000,则进入步骤sl32,否则返回步骤sl08 ; sl21 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于20000,如 果u(j)=20000,则进入步骤sl32,否则返回步骤sl08 ; sl22 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于30000,如 果u(j)=30000,则进入步骤sl32,否则返回步骤sl08 ; sl23 :判断该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于50000,如 果u(j)=50000,则进入步骤sl32,否则返回步骤sl08 ; sl32 :设置该16位计数器的滤波基准时钟脉冲分频倍数u (j)的值等于0,进入步骤 sl33 ; sl33 :读入该16位计数器的计数输入端的值,V (j)左移一位,计数输入值进入V (j)的 第O位,进入步骤sl34 ; sl34 :判断该16位计数器V (j)的第O位是否与第1位数据相等,如果相等,进入步骤 sl35,否则返回步骤sl08 ; sl35 :判断该16位计数器V (j)的第2位是否与第3位数据相等,如果相等,进入步骤 sl36,否则返回步骤sl08 ; sl36 :判断该16位计数器V (j)的第O位是否与第3位数据相等,如果不相等,进入步 骤sl37,否则返回步骤sl08 ; sl37 :判断该16位计数器V (j)的第O位是否等于0,如果等于0,表示该16位计数器 的计数输入端产生了一个有效地计数脉冲,进入步骤sl38,否则返回步骤sl08 ; sl38 :读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位 计数当前值存储单元,进入步骤si39 ; sl39 :判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤sl40,否 则返回步骤s 108 ; sl40 :重新装载该16位计数器的16位计数参数,返回步骤sl08 ; sl41 :判断该32位计数器的分频倍数的编码,如果分频倍数的编码为000,进入步骤 sl57 ;如果分频倍数的编码为001,则进入步骤sl42 ;如果分频倍数的编码为010,则进入步 骤sl43 ;如果分频倍数的编码为011,则进入步骤sl44 ;如果分频倍数的编码为100,则进 入步骤sl45 ;如果分频倍数的编码为101,则进入步骤sl46 ;如果分频倍数的编码为110, 则进入步骤sl47 ;如果分频倍数的编码为111,则进入步骤sl48 ; sl42 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于500,如果 u (j) =500,则进入步骤sl57,否则返回步骤si 15 ; sl43 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于1000,如 果u (j)= 1000,则进入步骤s 157,否则返回步骤s 115 ; sl44 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于5000,如 果u(j)=5000,则进入步骤sl57,否则返回步骤sll5 ; sl45 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于10000,如 果u (j)= 10000,则进入步骤s 157,否则返回步骤s 115 ; sl46 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于20000,如 果u(j)=20000,则进入步骤sl57,否则返回步骤sll5 ; sl47 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于30000,如 果u(j)=30000,则进入步骤sl57,否则返回步骤sll5 ; sl48 :判断该32位计数器的滤波基准时钟脉冲分频倍数u (j)的值是否等于50000,如 果u(j)=50000,则进入步骤sl57,否则返回步骤sll5 ; sl57:设置该32位计数器的滤波基准时钟脉冲分频倍数u(j)的值等于0,进入步骤 sl58 ; sl58:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的 第0位,进入步骤sl59 ; sl59 :判断该32位计数器V (j)的第0位是否与第1位数据相等,如果相等,进入步骤 sl60,否则返回步骤sll5 ; sl60 :判断该32位计数器v (j)的第2位是否与第3位数据相等,如果相等,进入步骤 sl61,否则返回步骤sll5 ; sl61 :判断该32位计数器V (j)的第O位是否与第3位数据相等,如果不相等,进入步 骤sl62,否则返回步骤sll5 ; sl62 :判断该32位计数器V (j)的第O位是否等于0,如果等于0,表示该32位计数器 的计数输入端产生了一个有效地计数脉冲,进入步骤sl63,否则返回步骤sll5 ; sl63 :读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32 位计数当前值存储单元,进入步骤sl64 ; sl64:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤sl65,否 则返回步骤sll5 ; sl65 :重新装载该32位计数器的32位计数参数,返回步骤sll5。
【专利摘要】一种与16位微处理器应用系统连接的计数器IP核,包括数据输入输出与命令字分解存储控制模块,脉冲200分频器,计数处理控制模块,计数器溢出标志控制模块和输入门控选择控制模块;本发明应用FPGA设计计数器IP核硬连接控制电路,计数器IP核有15个16位计数器,其中14个能够组成7个32位计数器,一个命令字设置一个计数器的工作模式,计数滤波基准时钟分频倍数,工作状态控制;本发明除16位微处理器对计数器进行功能和状态设置、计数参数传输、读计数当前值操作之外,不占用16位微处理器程序执行时间;每个16位/32位计数器具有自动重新装载计数参数功能;能够满足数量众多计数器计数与计数控制系统的需求。
【IPC分类】G06F9/30
【公开号】CN105117200
【申请号】CN201510377909
【发明人】蔡启仲, 潘绍明, 柯宝中, 李克俭
【申请人】广西科技大学
【公开日】2015年12月2日
【申请日】2015年6月30日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1