《计数器模块程序(2).ppt》由会员分享,可在线阅读,更多相关《计数器模块程序(2).ppt(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计数器设计计数器设计16进制计数器的进制计数器的Verilog HDL源程序如下:源程序如下:module cnt4e(clk,clr,ena,cout,q);input clk,clr,ena;output 3:0 q;outputcout;reg 3:0 q;always(posedge clr or posedge clk)begin if(clr)q=b0000;else if(ena)q=q+1;end assign cout=&q;endmodule 2022/12/292 集成芯片的设计集成芯片的设计1、十进制同步计数器(异步清除)、十进制同步计数器(异步清除)CT74160在十
2、进制同步计数器(异步清除)在十进制同步计数器(异步清除)CT74160的设计中,的设计中,D3、D2、D1和和D0是并行数据输入端;是并行数据输入端;CP是时钟输入端,上升沿有效;是时钟输入端,上升沿有效;Q3、Q2、Q1和和Q0是计数器的状态输出端,是计数器的状态输出端,Q3、Q2、Q1和和Q0的权值依次为的权值依次为23、22、21和和20;CRN是异步复位输入端,低电平有效,当是异步复位输入端,低电平有效,当CRN=0时,计数器的状态被时,计数器的状态被复位(清除),复位(清除),Q3Q2Q1Q0=0000,这种不考虑时钟,这种不考虑时钟CP的清除称为异步的清除称为异步清除;清除;LDN
3、是预置控制输入端,低电平有效,当是预置控制输入端,低电平有效,当LDN=0且且CP到来一个上升沿到来一个上升沿时,计数器被预置为并行数据输入的状态,即时,计数器被预置为并行数据输入的状态,即Q3Q2Q1Q0=D3D2D1D0;EP和和ET是使能控制输入端,高电平有效,当是使能控制输入端,高电平有效,当EP和和ET均为高电平时,均为高电平时,计数器工作,否则计数器处于保持状态(不计数);计数器工作,否则计数器处于保持状态(不计数);OC是进位输出端,当是进位输出端,当Q3Q2Q1Q0=1001且且ET=1时,时,OC=1。2022/12/293moduleCT74160(LDN,D3,D2,D1
4、,D0,CP,CRN,EP,ET,Q3,Q2,Q1,Q0,OC);inputLDN,D3,D2,D1,D0,CP,CRN,EP,ET;outputQ3,Q2,Q1,Q0,OC;regQ3,Q2,Q1,Q0,OC;reg3:0 Q_TEMP;always(posedge CP or negedge CRN)begin if(CRN)Q_TEMP=4b0000;else if(LDN)Q_TEMP=D3,D2,D1,D0;else if(EP&ET)if(Q_TEMP 4b1001)Q_TEMP=Q_TEMP+1;else Q_TEMP=4b0000;else Q_TEMP=Q_TEMP;enda
5、lways begin if(Q_TEMP=4b1001&ET=1b1)OC=1b1;else OC=1b0;Q3,Q2,Q1,Q0=Q_TEMP;endendmodule2022/12/294 2、4位二进制同步加位二进制同步加/减计数器减计数器CT74191 在在4位二进制同步加位二进制同步加/减计数器减计数器CT74191的设计中,的设计中,D3、D2、D1和和D0是并行数据输入端;是并行数据输入端;CP是时钟输入端,上升沿有效;是时钟输入端,上升沿有效;Q3、Q2、Q1和和Q0是计数器的状态输出端,是计数器的状态输出端,Q3、Q2、Q1和和Q0的权值依次为的权值依次为23、22、21和
6、和20;M是加是加/减控制输入端,当减控制输入端,当M=0时控制计数器进行加计数,当时控制计数器进行加计数,当M=1时控制计数时控制计数器进行减计数;器进行减计数;LDN是预置控制输入端,低电平有效,当是预置控制输入端,低电平有效,当LDN=0且且CP到来一个上升沿时,计到来一个上升沿时,计数器被预置为并行数据输入的状态,即数器被预置为并行数据输入的状态,即Q3Q2Q1Q0=D3D2D1D0;SN是使能控制输入端,低电平有效,当是使能控制输入端,低电平有效,当SN=0时,计数器工作,否则计数器处时,计数器工作,否则计数器处于保持状态;于保持状态;OC_OB是进位是进位/借位输出端,进行加法计数
7、时,当借位输出端,进行加法计数时,当Q3Q2Q1Q0=1111时,时,OC_OB=1;进行减法计数时,当;进行减法计数时,当Q3Q2Q1Q0=0000时,时,OC_OB=1。OCN是是OC_OB的反相输出端,而且输出脉冲宽度为半个时钟周期。的反相输出端,而且输出脉冲宽度为半个时钟周期。图图6.45 CT74191设计电路的仿真波形图设计电路的仿真波形图2022/12/295moduleCT74191(LDN,D3,D2,D1,D0,CP,M,SN,Q3,Q2,Q1,Q0,OC_OB,OCN);inputLDN,D3,D2,D1,D0,CP,M,SN;outputQ3,Q2,Q1,Q0,OC_O
8、B,OCN;regQ3,Q2,Q1,Q0,OC_OB,OCN;reg3:0Q_TEMP;always(posedge CP)beginif(LDN)Q_TEMP=D3,D2,D1,D0;else if(SN)if(M)Q_TEMP=Q_TEMP+1;else Q_TEMP=Q_TEMP-1;else Q_TEMP=Q_TEMP;endalways begin if(Q_TEMP=4b1111&M=1b0)begin OC_OB=1b1;OCN=(OC_OB&CP);end else if(Q_TEMP=4b0000&M=1b1)begin OC_OB=1b1;OCN=(OC_OB&CP);end else OC_OB=1b0;Q3,Q2,Q1,Q0=Q_TEMP;endendmodule