简单分频时序电路的设计(三分频)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单位:嵌入式系统实验室

姓名:汤晓东

内容:简单分频时序电路的设计(三分频)

时间:2010-7-7

3.练习三

模块源代码:

//-------------------文件名div3.v----------------------------------

module div3(clk_in,clk_out,reset

);

input clk_in,reset;

output clk_out;

wire clk_out;

integer n1,n2;

reg clk1,clk2;

always @(posedge clk_in or negedge reset) //检测clk_in的上升沿

begin

if (!reset)

begin

n1=0;

clk1<=1'b0; //clk1是对clk_in的三分频

end // 但是占空比为1/3 else if (n1==2)

begin

n1=0;

clk1<=1'b1;

end

else

begin

n1=n1+1;

clk1<=1'b0;

end

end

always @(negedge clk_in or negedge reset) //检测clk_in的下降沿

begin

if (!reset)

begin

n2=0;

clk2<=1'b0; //clk2也是对clk_in的三分频

end

else if (n2==2) //占空比为1/3,但是与clk1相差begin //半个时钟周期

n2=0;

clk2<=1'b1;

end

else

begin

n2=n2+1;

clk2<=1'b0;

end

end

assign clk_out= clk1 | clk2;

endmodule

//-------------------文件名div3_test.v------------------------------ `timescale 1ns/100ps

`define clk_cycle 50

module div3_test;

reg clk,reset;

wire clk_out;

always #`clk_cycle clk=~clk;

initial

begin

clk=0;

reset=1;

#10 reset=0;

#110 reset=1;

#100000 $stop;

end

div3 d0(.reset(reset),.clk_in(clk),.clk_out(clk_out)); endmodule

仿真波形图如下:

相关文档
最新文档