文档详情

《EDA技术及应用—Verilog HDL版》课件第3章.ppt

发布:2024-12-06约6.84万字共448页下载文档
文本预览下载声明

ql=4h0;

end

else

if(load) //同步置数

begin

qh=d[7:4];

ql=d[3:0];

end

elsebegin

if(ena) //模60的实现

if(ql==4h9)

begin

ql=4h0;

if(qh==4h5)

qh=4h0;

else //计数功能的实现

qh=qh+1;

end

elseql=ql+1;

end

end

//进位输出控制过程

always@(qhorqlorena)

if(qh==4h5ql==4h9ena==1b1)

co=4h1;

else

co=4h0;

endmodule【例3.47】由8个D触发器构成的异步计数器。

//D触发器d_ff1.v

moduled_ff1(clk,clr,d,q,qn);

inputclk,clr;

inputd;

outputq,qn;

regq,qn;

regq_in;

always@(posedgeclk)

begin

if(clr)begin

q=q_in;

qn=~q_in;

end

else

begin

q=d;

qn=~d;

end

end

endmodule//由8个D触发器构成的8位计数器dcnt8.v

moduledcnt8(clk,clr,cnt);

inputclk;

inputclr;

output[7:0]cnt;

wire[8:0]cnt;

wires1,s2,s3,s4,s5,s6,s7,s8;

d_ff1uut0(.clk(clk),.clr(clr),.d(s1),.q(cnt[0]),.qn(s1));

d_ff1uut1(.clk(s1),.clr(clr),.d(s2),.q(cnt[1]),.qn(s2));d_ff1uut2(.clk(s2),.clr(clr),.d(s3),.q(cnt[2]),.qn(s3));

d_ff1uut3(.clk(s3),.clr(clr),.d(s4),.q(cnt[3]),.qn(s4));

d_ff1uut4(.clk(s4),.clr(clr),.d(s5),.q(cnt[4]),.qn(s5));

d_ff1uut5(.clk(s5),.clr(clr),.d(s6),.q(cnt[5]),.qn(s6));

d_ff1uut6(.clk(s6),.clr(clr),.d(s7),.q(cnt[6]),.qn(s7));

d_ff1uut7(.clk(s7),.clr(clr),.d(s8),.q(cnt[7]),.qn(s8));

endmodule4.分频器

在基于EDA技术的数字电路系统设计中,分频电路应用得十分广泛,常常使用分频电路来得到数字系统中各种不同频率的控制信号。所谓分频电路,就是将一个给定的频率较高的数字输入信号,经过适当的处理后,产生一个或数个频率较低的数字输出信号。分频电路本质上是加法计数器的变种,其计数值由分频常数N=fin/fout决定,其输出不是一般计数器的计数结果,而是根据分频常数对输出信号的高、低电平进行控制。

【例3.48】将1?kHz的方波信号变为正、负周不等的50?Hz信号的非均匀分频电路。//将1kHz的信号变为50?Hz非均匀分频器fjydiv.v

modulefjydiv(clk_in,reset,clk_out);

inputclk_in,reset;

outputclk_out;

reg[4:0]cnt;

regclk_out;

parameterdivide_period=

显示全部
相似文档