3,4,5分频电路设计并仿真

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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延迟半个周期翻转。

仿真图如下图

相关文档
最新文档