无置数端+有置数端可变模计数器Cyclone4E FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module cnt_kb_1(clk,clr,m,q); input clk,clr; //输入时钟,清零端(1有效) input[6:0] m; //模值输入端,m只能由小到大变化,否则出错 output[6:0] q; //计数输出端 reg[6:0] q; //计数输出端寄存器 reg[6:0] md; //7位md寄存器 always@(posedge clk) //时钟上升沿触发 begin md<=m-7'b1; //将m减1赋予md if(clr) //判断clr是否有效 begin q<=0; //q清零 end else //当清零端无效时候 if(q==md) //判断q是否等于
占空比1:4的5分频奇数分频Cyclone4E FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module f_14(clk_50M,f_14); input clk_50M; //输入时钟,50M,20ns output f_14; //输出5分频,占空比为1:4 reg f_14; //分频寄存器 reg[2:0] cnt; //计数寄存器 always@(posedge clk_50M) //在每个时钟的上升沿触发 begin if(cnt==3'b100) //当cnt为4的时候,执行以下程序 begin f_14<=1'b1; //f_14置1 cnt<=3'b0; //cnt清0 end else begin cnt<=cnt+3'b1; //cnt自加1 f_14<=1'b0; //f_14置0
同步4位可逆计数器Cyclone4E FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module cnt_kn(clk,clr,s,en,updn,d,co,q); input clk,clr,s,en,updn; //输入时钟、清零端(高电平有效)、置数端(高电平有效)、使能端、计数器方向控制端 input[3:0] d; //预置数据端 output[3:0] q; //计数输出端 output co; //进位端 reg[3:0] q; //计数输出寄存器 reg co; //进位输出寄存器 always@(posedge clk) //时钟上升沿触发 begin if(clr) //判断清零端是否有效 begin q<=0; //q置0 end else begin if(s) //判断置数端是否有效 begin q<=d; //q置d中的数据 end else if(en) //判断使能端是否有效 begin if(updn) //判断方向寄存器是否为1 begin if(q==4'b1111) //判断q是否为15 begin q<=4'b0000; //q清0 co<=1; //co置1 end else //q还没到15 begin q<=q+1; //q自加1 co<=0; //co置0
同步24进制计数器FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module cnt_24(ten,one,co,clk,clr); input clk; //输入时钟 input clr; //清零输入端 output co; //进位输出端 output[3:0] ten,one; //十位输出,个位输出 reg co; //进位输出端寄存器 reg[3:0] ten,one; //十位输出寄存器,个位输出寄存器 always@(posedge clk) //时钟上升沿触发 begin if(clr) //判断清零信号是否有效,即为1 begin ten<=0; //十位清零 one<=0; //个位清零 end else begin if({ten,one}==8'b00100011) //判断是否计数到23 begin ten<=0; //十位清零 one<=0; //个位清零 co<=1; //进位置1 end else if(one==4'b1001) //判断各位是否为9 begin one<=0; //是的话个位置0 ten<=ten+4'b1; //十位自加1 co<=0; //进位置0 end else