Tco时候在干嘛?

Tsu指的是时钟上升沿到来之前数据保持稳定的时间,接下来是Tco,Tco期间寄存器在干嘛?

 

Tco从进程上分成两部分,前半部分对输入数据进行稳定,经过前半部分的数据稳定期后,后半部分根据前半部分稳定出的数据进行判断,根据条件产生逻辑对应的结果。

比如以下代码:

module t0531(

input clk,

input rst_n,

input tx_go,

output reg[7:0]cnt,

output reg en_tx

);

always@(posedge clk or negedge rst_n)

if(~rst_n)

 en_tx<=1'b0;

else if(tx_go)

 en_tx<=1'b1;

else if(cnt>=5)

 en_tx<=0;

always@(posedge clk or negedge rst_n)

if(~rst_n)

 cnt<=2'd0;

else if(en_tx)

begin

 cnt<=cnt+1'b1;

end 

endmodule  

cnt=5时,要对en_tx置零,en_tx=1时,cnt要加1。

那么,cnt==5时,cnt是否还要加一?

要的!以上就是Tco的作用,在Tco的前半阶段,对当前的数据进行稳定,稳定的结果为:

cnt=5,en_tx=1.

在后半部分,对于

else if(cnt>=5)

 en_tx<=0;

将en_tx=0.

对于:

cnt<=cnt+1'b1;

将cnt<=5+1=6

原文地址:https://www.cnblogs.com/luxinshuo/p/13546231.html