MBR0520LT3异步置零功能的D触发器
发布时间:2019/10/19 16:42:31 访问次数:1133
MBR0520LT3计数器的Verilog建模
下面通过3个实例介绍同步二进制计数器、异步二进制计数器和非二进制计数器的Vernog建模。
同步二进制计数器,例6.6.2中的模块描述了具有异步置零、并行置数功能的4位同步二进制计数器,完成的功能与图6.5.13所示74LVC161类似。在该模块中混合使用了assign语句和always语句,assign语句描述了组合电路中由与门产生的使能控制信号CE(中间节点)和进位输出信号TC,当计数器计数到最大值15时,TC=1。根据表6.5,6,always语句描述了计数器的逻辑功能,当CR信号跳变到低电平(由negedge CR描述)时,计数器的输出被置零;否则,当CR=1时,在CP的上升沿作用下,完成其他三种功能:同步置数、加1计数和保持原有状态不变。注意,iF-else语句隐含的优先级别与表6.5.6相同。
例6,6.2
///∶Binary counter、Vith para11el load and enable
//see Figure 6.5.13 and′rable 6.5.6
1nodule counter74x161 (CEP, CET,PE, D, CP, CR, Q,TC);
input CEP, CET,PE, CP, CR;
input[3:0]D; //Data input
output TC; //C)utput carry
output[3:0]Q; //Data。utput
reg[3:0]Q;
w1re CE;
assign CE = CEP&I CET;
assign TC=CET&(Q・==4’b1111);
always@(posedge CP or negedge CR)
iF(~CR)Q <=4’b0000;
ense if( ~PE)Q<=D.; //PE=0, synchronous load input
else iF(~CE)Q<=Q; //the output no change
else Q(=Q+1i bl;
endmodule
异步二进制计数器,异步计数器的结构化描述如例6.6.3所示。第一个模块通过4次调用第二个模块完成计数功能,第二个模块是带有异步置零功能的D触发器作为设计的底层。在第一个模块中,第1个触发器FFO的输出Q0经反相(用~Q0表示)后与D输入相连(在FFO中用~Q0取代D),构成r′触发器,其时钟接到外部输人CP。第2个触发器F1的输出Q1经反相后与D输人相连(在FF1中用~Q1取代D),其时钟接到前一个触发器的输出(用Q0取代CP)。类似地,将4个触发器级联在一起构成异步二进制计数器,其原理图与图6.5.8类似。需要注意的是,调用第二个模块时端口的排列顺序。
例6.6,3
//Ripple counter(Refer to Fig.6.5.8)
module ripplecounter(Q0,Q1,Q2,Q3,CP,CR);
output Q0,Q1,Q2,Q3;
input CP,CR;
//Instantiate D nip-n。p
D~FF FFO(Q0,~Q0,CP,~CR);
D FF FF1
D FF FF2
D FF FF3
endmodule
Q1,~Q1,Q0,~CR);
Q2,~Q2,Q1,~CR);
Q3,~Q3,Q2,~CR);
l`9
//module I)~FF、vith asynchronous reset
lllodule D~FF(Q,D,CP,Rd);
output Q;
input D,CP,R-;
reg Q;
always@( negedge CP or negedge Rd)
if(~Rd)Q<=1’bO;
else Q(=D;
MBR0520LT3计数器的Verilog建模
下面通过3个实例介绍同步二进制计数器、异步二进制计数器和非二进制计数器的Vernog建模。
同步二进制计数器,例6.6.2中的模块描述了具有异步置零、并行置数功能的4位同步二进制计数器,完成的功能与图6.5.13所示74LVC161类似。在该模块中混合使用了assign语句和always语句,assign语句描述了组合电路中由与门产生的使能控制信号CE(中间节点)和进位输出信号TC,当计数器计数到最大值15时,TC=1。根据表6.5,6,always语句描述了计数器的逻辑功能,当CR信号跳变到低电平(由negedge CR描述)时,计数器的输出被置零;否则,当CR=1时,在CP的上升沿作用下,完成其他三种功能:同步置数、加1计数和保持原有状态不变。注意,iF-else语句隐含的优先级别与表6.5.6相同。
例6,6.2
///∶Binary counter、Vith para11el load and enable
//see Figure 6.5.13 and′rable 6.5.6
1nodule counter74x161 (CEP, CET,PE, D, CP, CR, Q,TC);
input CEP, CET,PE, CP, CR;
input[3:0]D; //Data input
output TC; //C)utput carry
output[3:0]Q; //Data。utput
reg[3:0]Q;
w1re CE;
assign CE = CEP&I CET;
assign TC=CET&(Q・==4’b1111);
always@(posedge CP or negedge CR)
iF(~CR)Q <=4’b0000;
ense if( ~PE)Q<=D.; //PE=0, synchronous load input
else iF(~CE)Q<=Q; //the output no change
else Q(=Q+1i bl;
endmodule
异步二进制计数器,异步计数器的结构化描述如例6.6.3所示。第一个模块通过4次调用第二个模块完成计数功能,第二个模块是带有异步置零功能的D触发器作为设计的底层。在第一个模块中,第1个触发器FFO的输出Q0经反相(用~Q0表示)后与D输入相连(在FFO中用~Q0取代D),构成r′触发器,其时钟接到外部输人CP。第2个触发器F1的输出Q1经反相后与D输人相连(在FF1中用~Q1取代D),其时钟接到前一个触发器的输出(用Q0取代CP)。类似地,将4个触发器级联在一起构成异步二进制计数器,其原理图与图6.5.8类似。需要注意的是,调用第二个模块时端口的排列顺序。
例6.6,3
//Ripple counter(Refer to Fig.6.5.8)
module ripplecounter(Q0,Q1,Q2,Q3,CP,CR);
output Q0,Q1,Q2,Q3;
input CP,CR;
//Instantiate D nip-n。p
D~FF FFO(Q0,~Q0,CP,~CR);
D FF FF1
D FF FF2
D FF FF3
endmodule
Q1,~Q1,Q0,~CR);
Q2,~Q2,Q1,~CR);
Q3,~Q3,Q2,~CR);
l`9
//module I)~FF、vith asynchronous reset
lllodule D~FF(Q,D,CP,Rd);
output Q;
input D,CP,R-;
reg Q;
always@( negedge CP or negedge Rd)
if(~Rd)Q<=1’bO;
else Q(=D;