半整数分频1.5小数分频的功能 FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module div_1_5(clk,div); input clk; //输入时钟信号 output div; //输出分频信号 reg count; //计数寄存器 reg div; //输出分频寄存器 reg clk_temp2,clk_temp3; //脉冲控制端2寄存器,脉冲控制端3寄存器 assign clk_temp1=clk^clk_temp2; //脉冲控制端1寄存器,等于clk与clk_temp2取异或运算 always@(posedge clk_temp1) //脉冲控制端的上升沿触发 begin if(count==1'b0) //判断count是否为0,是的话执行以下操作 begin count<=1'b1; //count置1 clk_temp3<=1'b1; //clk_temp3置1 div<=1'b1; //div置1 end else //否的话执行以下操作 begin count<=count-1'b1; //count自减1 clk_temp3<=1'b0; //clk_temp3置0 div<=1'b0; //div置0 end end
串行加法器4位全加器 FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module add4(a,b,ci,s,co); input [3:0] a,b; //输入四位数据a,b input ci; //输入进位ci output [3:0] s; //输出四位数据 s output co; //输出进位co assign {co,s}=a+b+ci; //把a、b、ci相加后的结果赋予co、s,其中co放最高位,s放低三位
Cyclone4E FPGA设计4位串入串出移位寄存器Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module yw_reg(clk,dout,din); input clk; //输入时钟 input din; //输入数据 output dout; //输出数据 reg dout; //输出数据寄存器 reg[3:0] q; //四位寄存器 always@(posedge clk) //clk的上升沿触发 begin q[0]<=din; //把输入放入q寄存器的第一位 q[3:1]<=q[2:0]; //把q寄存器的1到3位赋予2到4位 dout<=q[3]; //把q的第四位赋予输出寄存器
Cyclone4E FPGA设计5位串入并出移位寄存器Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module reg_cb(clk,din,clr,dout); input clk,din,clr; output[4:0] dout; reg[4:0] dout; always@(posedge clk) begin if(clr) begin dout<=0; end else begin dout<={dout,din}; end
模为60的BCD码加法计数器FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module cnt_60(clk,reset,cin,load,data,cout,qout); input clk,reset,cin,load; //输入时钟,复位,计数端,置数端 input[7:0] data; //预置数输入端 output cout; //输出进位信号端 output[7:0] qout; //计数输出端 reg[7:0] qout; //计数输出端寄存器 always@(posedge clk) //时钟上升沿触发 begin if(reset) //判断是否复位信号端为1 qout<=0; //计数输出端置0 else if(load) //判断置数端是否有效 qout<=data; //将预置数输入端数据赋予计数输出寄存器 else if(cin) //判断计数端是否有效 begin if(qout[3:0]==9) //判断qout的低位是否为9 begin qout[3:0]<=0; //qout低位清0 if(qout[7:4]==5) //判断qout高位是否为5 qout[7:4]<=0; //qout高位清0 else qout[7:4]<=qout[7:4]+4'b1; //高位自加1 end
同步十位减法计数器Cyclone4E FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module cnt_jf(clk,rst,q); input clk; //输入时钟 input rst; //输入复位信号,高电平有效 output[3:0] q; //输出计数端 reg[3:0] q; //输出计数端寄存器 always@(posedge clk) //时钟上升沿触发 begin if(rst) //判断rst是否有效 begin q<=0; //q清零 end else if(q==4'b0000) //q是否等于0 begin q<=4'b1001; //q置9 end else begin q<=q-4'b1; //q自减1
占空比1:1的2、4、8分频 偶数分频Cyclone4E FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module fengping_1(clk_50M,f_2,f_4,f_8); input clk_50M; //输入时钟,50M,周期为20ns output f_2,f_4,f_8; //输出分频时钟,分别为2分频,4分频,8分频 reg f_2,f_4,f_8; //输出分频寄存器 reg[2:0] cnt; //计数寄存器 always@(posedge clk_50M) //在每个时钟的上升沿触发,执行begin_end里面的语句 begin cnt<=cnt+3'b1; //每个时钟周期计数寄存器自加一 f_2<=cnt[0]; //把计数寄存器的最低位赋予f_2,输出即使2分频 f_4<=cnt[1]; //把计数寄存器的第2位赋予f_4,输出即使4分频
Cyclone4E FPGA设计4位并入串出移位寄存器Verilog逻辑源码Quartus工程文件.。Quartus11.0工程文件, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 **----------------------------文件信息-------------------------- ** 文件名称: reg_bc.v ** 创建日期: ** 功能描述:实现4位并入串出移位寄存器的功能 ** 硬件平台:大西瓜logic^3 FPGA开发板 ** 版权声明:本代码属个人知识产权,本代码仅供交流学习. **---------------------------修改文件的相关信息---------------- ** 修改人: ** 修改日期: ** 修改内容: *******************************************************************************/ module reg_bc(clk,clr,din,dout); input clk,clr; //输入时钟端,清零端(高电平有效) input[3:0] din; //数据输入端 output dout; //数据输出端 reg[1:0] cnt; reg[3:0] q; reg dout; always@(posedge clk) //时钟上升沿触发 begin cnt<=cnt+1; //cnt自加1 if(clr) //判断清零信号是否有效 begin q0) //判断cnt是否大于0 begin
无置数端+有置数端可变模计数器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