3,4,5分频电路设计并仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1,使用原理图文件设计三分频电路:
仿真需要设置function功能,然后生成网表(processing)
仿真结果:
2,使用Verilog 程序设计三分频,四分频,五分频设计三分频:
module sanfp(clkin,clkout);
input clkin;
output clkout;
reg[1:0] step1,step;
always @(posedge clkin)
begin
case (step)
2'b00:step<=2'b01;
2'b01:step<=2'b10;
2'b10:step<=2'b00;
default:step<=2'b00;
endcase
end
always @(negedge clkin)
begin
case(step1)
2'b00:step1<=2'b01;
2'b01:step1<=2'b10;
2'b10:step1<=2'b00;
default:step1<=2'b00;
endcase
end
assign clkout=~(step1[1]|step[1]);
endmodule
四分频:
module sifenp(clkin, clkout); input clkin;
output clkout;
reg[1:0] count1;
always @(posedge clkin) begin
case (count1)
2'b00: count1<=2'b01;
2'b01: count1<=2'b10;
2'b10: count1<=2'b11;
2'b11: count1<=2'b00; default count1<=2'b00; endcase
end
assign clkout=count1[1]; endmodule
五分频:
module fivefp(clkin, clkout,clkout1,clkout2);
input clkin;
output clkout,clkout1,clkout2;
reg[2:0] cnt1, cnt2;
always @(posedge clkin)
begin
case (cnt1)
3'b000:cnt1<=3'b001;
3'b001:cnt1<=3'b010;
3'b010:cnt1<=3'b100;
3'b100:cnt1<=3'b101;
3'b101:cnt1<=3'b000;
default cnt1<=3'b000;
endcase
end
always @(negedge clkin)
begin
case (cnt2)
3'b000:cnt2<=3'b001;
3'b001:cnt2<=3'b010;
3'b010:cnt2<=3'b100;
3'b100:cnt2<=3'b101;
3'b101:cnt2<=3'b000;
default cnt2<=3'b000;
endcase
end
assign clkout=cnt1[2]|cnt2[2];
assign clkout1=cnt1[2];
assign clkout2=cnt2[2];
endmodule
采用2个计数器cnt1和cnt2
Cnt1需要在第3个clk上升沿时翻转,而且计数最高位要为1,即100.而后面计数需要保持2个周期的高,这样总共五个周期,只是占空比不为50%。
Cnt2 在第4个clk下降沿)时翻转,相对于cnt1延迟半个周期翻转。
仿真图如下图