异步复位,指的是复位信号到来,所有寄存器输出清零。
T出发器的功能,是当T=1时,寄存器输出=计数状态;当T=0时,寄存器输出=保持状态。
特征方程:Qn+1 * = T Qn ' +T ' Qn=T⊕Qn;
根据特征方程可知,T触发器可用D触发器实现其功能;
两个电路为串联,是指前一级的输出是后一级的输入。
寄存器输出的功能实现,采用时钟同步实现,所以时钟clk统一接到寄存器的时钟脉冲端。
方法1:
T触发器可用一个异或门和一个D触发器来实现其功能。
reg data_1;
always @(posedge clk or negedge rst) begin
if(!rst)
data_1 <=1'b0;
else
data_1<=data^data_1;
end
always@(posedge clk or negedge rst) begin
if(!rst)
q<=1'b0;
else
q<=data_1^q;
end
方法2:
always @(posedge clk or negedge rst) begin
if(!rst)
data_1 <=1'b0;
else
data_1<=data^data_1;
end
always@(posedge clk or negedge rst) begin
if(!rst)
q<=1'b0;
else
q<=data_1^q;
end
方法2:
添加选择条件,如果数据选择是1,则寄存器计数,否则保持。
reg q1;
always@(posedge clk or negedge rst)
if(~rst) begin
q1<=1'b0;
q<=1'b0;
end
else begin
if(data)begin //对应的映射电路中就是选择器CE。
q1<=!q1;
end
if(q1) begin
q<=!q;
end
end
always@(posedge clk or negedge rst)
if(~rst) begin
q1<=1'b0;
q<=1'b0;
end
else begin
if(data)begin //对应的映射电路中就是选择器CE。
q1<=!q1;
end
if(q1) begin
q<=!q;
end
end