8线-3线编码器 优先编码器+八选一数据选择器 FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 module yxbm_83(y,eo,gs,i,ei); input [7:0] i; //8位输入i input ei; //使能输入端ei output eo,gs; //使能输出端eo,优先标志端gs output[2:0] y; //3位输出y reg[2:0] y; //3位输出寄存器y reg eo,gs; //使能输出寄存器, always@(i,ei) //电平触发方式,当i跟ei有改变的时候,执行以下操作 begin if(ei==1'b1) //当ei为1的时候 begin y<=3'b111; gs<=1'b1; eo<=1'b1; end else begin if(i[7]==1'b0) //当i的第8为0时候 begin y<=3'b000; gs<=1'b0; eo<=1'b1; end else if(i[6]==1'b0) //当i的第七位为0时候 begin y<=3'b001; gs<=1'b0; eo<=1'b1; end else if(i[5]==1'b0) //当i的第6位为0时候 begin y<=3'b010; gs<=1'b0; eo<=1'b1; end else if(i[4]==1'b0) //当i的第5位为0时候 begin y<=3'b011; gs<=1'b0; eo<=1'b1; end else if(i[3]==1'b0) //当i的第4位为0时候 begin y<=3'b100; gs<=1'b0; eo<=1'b1; end else if(i[2]==1'b0) //当i的第3位为0时候 begin y<=3'b101; gs<=1'b0; eo<=1'b1; end else if(i[1]==1'b0) //当i的第2位为0时候 begin y<=3'b110; gs<=1'b0; eo<=1'b1; end
36个Verilog设计基础代码移位寄存器编码器加法减法器分频器计数器逻辑源码Quartus工程文件合集, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 38decoder 4位串入串出移位寄存器 4位并入串出移位寄存器 5位串入并出移位寄存器 8线-3线优先编码器 8线-3线编码器 D触发器 FIFO JK触发器 RS触发器 T触发器 三态门 串行加法器 偶数分频 八选一数据选择器 减法计数器 半整数分频 双向移位寄存器 只读存储器(ROM) 可变模计数器 可逆计数器 同步计数器 四选一数据选择器 堆栈 奇数分频 异步计数器 流水线-加法器 简单运算单元ALU 随即存储器(RAM)
半整数分频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